PDAModuleLogic.cs 408 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:PDAModuleLogic.cs
  5. * 2.功能描述:PDA相关处理。
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 陈晓野 2014/09/16 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.Drawing.Imaging;
  15. using System.IO;
  16. using System.Text;
  17. using System.Reflection;
  18. using Dongke.IBOSS.PRD.Basics.BaseResources;
  19. using Dongke.IBOSS.PRD.Basics.DataAccess;
  20. using Dongke.IBOSS.PRD.Basics.Library;
  21. using Dongke.IBOSS.PRD.Service.DataModels;
  22. using Dongke.IBOSS.PRD.WCF.DataModels;
  23. using Dongke.IBOSS.PRD.WCF.DataModels.HRModule;
  24. using Dongke.IBOSS.PRD.WCF.DataModels.PCModule;
  25. using Dongke.IBOSS.PRD.WCF.DataModels.PMModule;
  26. using Oracle.ManagedDataAccess.Client;
  27. using Newtonsoft.Json.Linq;
  28. using Dongke.IBOSS.PRD.WCF.DataModels.PDAModule;
  29. namespace Dongke.IBOSS.PRD.Service.PDAModuleLogic
  30. {
  31. /// <summary>
  32. /// PDA
  33. /// </summary>
  34. public partial class PDAModuleLogic
  35. {
  36. #region PDA端登陆
  37. /// <summary>
  38. /// PDA端登陆
  39. /// </summary>
  40. /// <returns></returns>
  41. public static PDALoginResult DoPDALogin(LoginRequestEntity requestEntity)
  42. {
  43. PDALoginResult pdaResult = new PDALoginResult();
  44. LoginResultEntity resultEntity = DKIBOSSPRDLogic.DKIBOSSPRDLogic.DoLogin(requestEntity, "2");
  45. pdaResult.Status = resultEntity.LoginStatus;
  46. //pdaResult.Message = resultEntity.LoginMessage;
  47. if (pdaResult.Status != 0)
  48. {
  49. switch (pdaResult.Status)
  50. {
  51. case 0:
  52. pdaResult.Message = "登录成功";
  53. break;
  54. case 1:
  55. pdaResult.Message = "帐套不存在";
  56. break;
  57. case 2:
  58. pdaResult.Message = "该帐套不存在该用户";
  59. break;
  60. case 3:
  61. pdaResult.Message = "用户密码不正确";
  62. break;
  63. case 4:
  64. pdaResult.Message = "MAC地址错误";
  65. break;
  66. case 5:
  67. pdaResult.Message = "登录时间错误";
  68. break;
  69. case 6:
  70. pdaResult.Message = "用户停用";
  71. break;
  72. case 7:
  73. pdaResult.Message = "用户被锁死";
  74. break;
  75. case 8:
  76. pdaResult.Message = "此用户不能在移动端登录";
  77. break;
  78. case 9:
  79. pdaResult.Message = "APP版本需要更新";
  80. break;
  81. case 10:
  82. pdaResult.Message = Constant.PDA_RESULT_SYSTEMDATEERROR;
  83. break;
  84. case 11:
  85. pdaResult.Message = "没有找到加服务器密锁";
  86. break;
  87. case 12:
  88. pdaResult.Message = "服务器加密锁不是东科的加密锁";
  89. break;
  90. case 13:
  91. pdaResult.Message = "读取服务器锁内客户编码内容失败";
  92. break;
  93. case 21:
  94. //pdaResult.Message = "没有找到license文件";
  95. pdaResult.Message = Messages.MSG_SYS_W011;
  96. break;
  97. case 22:
  98. //pdaResult.Message = "license文件损坏";
  99. pdaResult.Message = Messages.MSG_SYS_W012;
  100. break;
  101. case 23:
  102. //pdaResult.Message = "license文件内容不正确";
  103. pdaResult.Message = Messages.MSG_SYS_W013;
  104. break;
  105. case 31:
  106. pdaResult.Message = "服务器加密锁的内容和license文件的内容不相符";
  107. break;
  108. case 32:
  109. //pdaResult.Message = "临时的License已经过期";
  110. pdaResult.Message = Messages.MSG_SYS_W015;
  111. break;
  112. case 41:
  113. pdaResult.Message = "打开客户端加密锁失败";
  114. break;
  115. case 42:
  116. pdaResult.Message = "没有找到客户端加密锁";
  117. break;
  118. case 43:
  119. pdaResult.Message = "客户端加密锁不是东科的加密锁";
  120. break;
  121. case 44:
  122. pdaResult.Message = "读取加密锁信息失败(硬件损坏、管理密码错误等)";
  123. break;
  124. case 45:
  125. pdaResult.Message = "加密锁的内容和license内容不一致";
  126. break;
  127. default:
  128. pdaResult.Message = "登录失败";
  129. break;
  130. }
  131. }
  132. else
  133. {
  134. pdaResult.SessionKey = resultEntity.CurrentUserEntity.SessionKey;
  135. pdaResult.AccountID = resultEntity.CurrentUserEntity.AccountID;
  136. pdaResult.UserID = resultEntity.CurrentUserEntity.UserID;
  137. pdaResult.UserName = resultEntity.CurrentUserEntity.UserName;
  138. pdaResult.IsGroutingWorker = resultEntity.CurrentUserEntity.IsGroutingWorker.ToString();
  139. //pdaResult.Message = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("WCFSetting", "ServerName");
  140. pdaResult.ServerName = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("WCFSetting", "ServerName");
  141. if (resultEntity.LicenseInfo != null)
  142. {
  143. DateTime vEnd = Convert.ToDateTime(resultEntity.LicenseInfo.Tables["Info"].Rows[0]["ValidityEnd"]);
  144. pdaResult.ValidityEnd = vEnd.ToString("yyyy-MM-dd");
  145. // TODO message -1 登录成功,显示消息(确定);-2 登录成功,显示消息(不确定);
  146. }
  147. pdaResult.AppVersion = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("VersionSetting", "AndroidVersion");//System.Configuration.ConfigurationManager.AppSettings["AndroidVersion"];
  148. string ApkPath = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("PathSetting", "UpgradeAPKPath");
  149. ApkPath = System.AppDomain.CurrentDomain.BaseDirectory + ApkPath;
  150. if (File.Exists(ApkPath))
  151. {
  152. //pdaResult.Rights = userEntity.UserRightData;
  153. FileStream file = File.OpenRead(ApkPath);
  154. pdaResult.ApkSize = file.Length;
  155. file.Close();
  156. }
  157. else
  158. {
  159. pdaResult.ApkSize = -1;//APK文件不存在
  160. }
  161. }
  162. return pdaResult;
  163. }
  164. /// <summary>
  165. /// 获取Apk信息
  166. /// </summary>
  167. /// <returns></returns>
  168. public static ServiceResultEntity GetApkInfo(int sdk)
  169. {
  170. ServiceResultEntity sre = new ServiceResultEntity();
  171. Dictionary<string, object> appInfo = new Dictionary<string, object>();
  172. string ApkPath = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("PathSetting", "UpgradeAPKPath");
  173. string ApkPath14 = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("PathSetting", "UpgradeAPKPath14");
  174. ApkPath = System.AppDomain.CurrentDomain.BaseDirectory + ApkPath;
  175. if (sdk >= 34)
  176. {
  177. ApkPath = System.AppDomain.CurrentDomain.BaseDirectory + ApkPath14;
  178. }
  179. appInfo.Add("AppVersion", INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("VersionSetting", "AndroidVersion"));
  180. appInfo.Add("ApkPath", ApkPath);
  181. if (File.Exists(ApkPath))
  182. {
  183. //pdaResult.Rights = userEntity.UserRightData;
  184. FileStream file = File.OpenRead(ApkPath);
  185. appInfo.Add("ApkSize", file.Length);
  186. file.Close();
  187. }
  188. else
  189. {
  190. appInfo.Add("ApkSize", -1);//APK文件不存在
  191. sre.Message = "APK文件不存在";
  192. }
  193. sre.Result = appInfo;
  194. return sre;
  195. }
  196. /// <summary>
  197. /// 获取Apk信息
  198. /// </summary>
  199. /// <returns></returns>
  200. public static ServiceResultEntity GetApkInfo()
  201. {
  202. ServiceResultEntity sre = new ServiceResultEntity();
  203. Dictionary<string, object> appInfo = new Dictionary<string, object>();
  204. string ApkPath = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("PathSetting", "UpgradeAPKPath");
  205. ApkPath = System.AppDomain.CurrentDomain.BaseDirectory + ApkPath;
  206. appInfo.Add("AppVersion", INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("VersionSetting", "AndroidVersion"));
  207. appInfo.Add("ApkPath", ApkPath);
  208. if (File.Exists(ApkPath))
  209. {
  210. //pdaResult.Rights = userEntity.UserRightData;
  211. FileStream file = File.OpenRead(ApkPath);
  212. appInfo.Add("ApkSize", file.Length);
  213. file.Close();
  214. }
  215. else
  216. {
  217. appInfo.Add("ApkSize", -1);//APK文件不存在
  218. sre.Message = "APK文件不存在";
  219. }
  220. sre.Result = appInfo;
  221. return sre;
  222. }
  223. #endregion
  224. #region 获得显示数据
  225. /// <summary>
  226. /// 获得生产线菜单
  227. /// </summary>
  228. /// <param name="sUserInfo">用户信息</param>
  229. /// <returns>DataTable</returns>
  230. /// <remarks>
  231. /// 陈冰 2014.09.23 新建
  232. /// </remarks>
  233. public static DataTable GetProductionLineMenu(SUserInfo sUserInfo)
  234. {
  235. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  236. try
  237. {
  238. con.Open();
  239. OracleParameter[] paras = new OracleParameter[]{
  240. new OracleParameter("in_userID",OracleDbType.Int32,
  241. sUserInfo.UserID,ParameterDirection.Input),
  242. new OracleParameter("out_result",OracleDbType.RefCursor,ParameterDirection.Output),
  243. };
  244. DataSet dsResult = con.ExecStoredProcedure("PRO_PDA_GetProductionLineMenu", paras);
  245. if (dsResult != null && dsResult.Tables.Count > Constant.INT_IS_ZERO)
  246. {
  247. //dsResult.Tables[0].Columns.Add("IsGlazeChange");
  248. if (!dsResult.Tables[0].Columns.Contains("IsGlazeChange"))
  249. {
  250. dsResult.Tables[0].Columns.Add("IsGlazeChange");
  251. }
  252. return dsResult.Tables[0];
  253. }
  254. return null;
  255. }
  256. catch (Exception ex)
  257. {
  258. throw ex;
  259. }
  260. finally
  261. {
  262. if (con.ConnState == ConnectionState.Open)
  263. {
  264. con.Close();
  265. }
  266. }
  267. }
  268. #endregion
  269. #region 统计
  270. /// <summary>
  271. /// 统计当日计数数量
  272. /// </summary>
  273. /// <param name="procedureID">当前工序ID</param>
  274. /// <param name="sUserInfo"></param>
  275. /// <returns></returns>
  276. public static DataSet StatisticsCollectBarcode(int procedureID, SUserInfo sUserInfo)
  277. {
  278. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  279. try
  280. {
  281. con.Open();
  282. // string sql = @"select tuser.UserCode, goods.GoodsCode, goods.GoodsName, goodscount.Count
  283. // from (select Goodsid, count(Goodsid) count, UserID
  284. // from tp_pm_productiondata
  285. // where ProcedureID = :procedureID
  286. // and CreateUserID = :createUserID
  287. // and AccountDate = fun_cmn_getaccountdate(accountid)
  288. // group by Goodsid, UserID) goodscount
  289. // inner join tp_mst_goods goods on goods.goodsid = goodscount.goodsid
  290. // inner join tp_mst_user tuser on tuser.userid = goodscount.userid
  291. // order by tuser.usercode, goods.goodscode";
  292. //tp_pm_productiondata.UserCode,
  293. // string sql = @" select
  294. // decode(GoodsCode,'小计','-',UserCode) as UserCode,
  295. //
  296. // decode(UserCode,'合计','合计',GoodsCode) as GoodsCode,
  297. // count
  298. // from
  299. // (
  300. //
  301. // select
  302. //
  303. // decode(tp_pm_productiondata.GoodsCode,'合计','-',tp_pm_productiondata.UserCode) as UserCode,
  304. // tp_pm_productiondata.GoodsCode,
  305. //
  306. // tp_pm_productiondata.count
  307. // from (
  308. // select
  309. //
  310. //
  311. // decode(grouping(tuser.UserCode),1,'合计',tuser.UserCode) UserCode,
  312. // decode(grouping(goods.GoodsCode),1,'小计',goods.GoodsCode) GoodsCode,
  313. //
  314. // count(tp_pm_productiondata.goodsid) count
  315. // from
  316. // tp_pm_productiondata
  317. // inner join tp_mst_goods goods
  318. // on tp_pm_productiondata.goodsid = goods.goodsid
  319. // and tp_pm_productiondata.procedureid=:procedureID
  320. // and tp_pm_productiondata.createUserID=:createUserID
  321. // and tp_pm_productiondata.AccountDate = trunc(sysdate)
  322. // inner join tp_mst_user tuser on tuser.userid = tp_pm_productiondata.userid
  323. //
  324. // group by rollup(tuser.UserCode,goods.GoodsCode)
  325. //
  326. // ) tp_pm_productiondata
  327. //
  328. // )
  329. //
  330. // ";
  331. string sql = @" select
  332. decode(GoodsCode,'小计','-',UserCode) as UserCode,
  333. decode(UserCode,'合计','合计',GoodsCode) as GoodsCode,
  334. count
  335. from
  336. (
  337. select
  338. decode(tp_pm_productiondata.GoodsCode,'合计','-',tp_pm_productiondata.UserCode) as UserCode,
  339. tp_pm_productiondata.GoodsCode,
  340. tp_pm_productiondata.count
  341. from (
  342. select
  343. decode(grouping(UserCode),1,'合计',UserCode) UserCode,
  344. decode(grouping(GoodsCode),1,'小计',GoodsCode) GoodsCode,
  345. count(tp_pm_productiondata.goodsid) count
  346. from
  347. tp_pm_productiondata
  348. where
  349. tp_pm_productiondata.procedureid=:procedureID
  350. and tp_pm_productiondata.createUserID=:createUserID
  351. and tp_pm_productiondata.AccountDate = trunc(sysdate)
  352. and tp_pm_productiondata.valueflag=1
  353. group by rollup(UserCode,GoodsCode)
  354. ) tp_pm_productiondata
  355. )
  356. ";
  357. // 陈冰 2014-11-24
  358. // and tp_pm_productiondata.userid=:createUserID 改成 tp_pm_productiondata.createUserID = :createUserID
  359. // and tp_pm_productiondata.AccountDate = fun_cmn_getaccountdate(tp_pm_productiondata.accountid)
  360. // 改成 and tp_pm_productiondata.AccountDate =trunc(sysdate)
  361. OracleParameter[] paras = new OracleParameter[]{
  362. new OracleParameter(":procedureID",OracleDbType.Int32,
  363. procedureID,ParameterDirection.Input),
  364. new OracleParameter(":createUserID",OracleDbType.Int32,
  365. sUserInfo.UserID,ParameterDirection.Input),
  366. };
  367. DataSet dsResult = con.GetSqlResultToDs(sql, paras);
  368. return dsResult;
  369. }
  370. catch (Exception ex)
  371. {
  372. throw ex;
  373. }
  374. finally
  375. {
  376. if (con.ConnState == ConnectionState.Open)
  377. {
  378. con.Close();
  379. }
  380. }
  381. }
  382. /// <summary>
  383. /// 使用存储过程PRO_PM_StatisticsKilnCar统计当前用户下工序的窑车产品数据
  384. /// </summary>
  385. /// <param name="procedureID">工序</param>
  386. /// <returns></returns>
  387. public static DataSet StatisticsKilnCar(int procedureID, SUserInfo sUserInfo)
  388. {
  389. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  390. string procsql = "PRO_PM_StatisticsKilnCar";
  391. try
  392. {
  393. IDataParameter[] paras = new OracleParameter[]
  394. {
  395. new OracleParameter("in_procedureid", OracleDbType.Int32,procedureID, ParameterDirection.Input),
  396. new OracleParameter("in_userid", OracleDbType.Int32,sUserInfo.UserID, ParameterDirection.Input),
  397. new OracleParameter("rs_result", OracleDbType.RefCursor, ParameterDirection.Output)
  398. };
  399. oracleConn.Open();
  400. DataSet returnDs = oracleConn.ExecStoredProcedure(procsql, paras);
  401. return returnDs;
  402. }
  403. catch (Exception ex)
  404. {
  405. throw ex;
  406. }
  407. finally
  408. {
  409. if (oracleConn.ConnState == ConnectionState.Open)
  410. {
  411. oracleConn.Close();
  412. }
  413. }
  414. }
  415. /// <summary>
  416. /// 使用存储过程PRO_PM_StatisticsProductTrack统计当前条码所有工序
  417. /// </summary>
  418. /// <param name="procedureID">工序</param>
  419. /// <returns></returns>
  420. public static ProductionDataEntity StatisticsProductTrack(string barcode, SUserInfo sUserInfo)
  421. {
  422. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  423. string procsql = "PRO_PM_StatisticsProductTrack";
  424. try
  425. {
  426. IDataParameter[] paras = new OracleParameter[]
  427. {
  428. new OracleParameter("in_barcode", OracleDbType.Varchar2,barcode, ParameterDirection.Input),
  429. new OracleParameter("in_accountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  430. new OracleParameter("out_goodsCode", OracleDbType.Varchar2,100,null, ParameterDirection.Output),
  431. new OracleParameter("out_groutingUserCode", OracleDbType.Varchar2,100,null, ParameterDirection.Output),
  432. new OracleParameter("out_mouldCode", OracleDbType.Varchar2,100,null, ParameterDirection.Output),
  433. new OracleParameter("out_groutingNum", OracleDbType.Varchar2,100,null, ParameterDirection.Output),
  434. new OracleParameter("out_goodsEnding", OracleDbType.Varchar2,100,null, ParameterDirection.Output),
  435. new OracleParameter("rs_result", OracleDbType.RefCursor, ParameterDirection.Output)
  436. };
  437. oracleConn.Open();
  438. DataSet returnDs = oracleConn.ExecStoredProcedure(procsql, paras);
  439. ProductionDataEntity[] productionDataEntitys = new ProductionDataEntity[1];
  440. ProductionDataEntity productionDataEntity = new ProductionDataEntity();
  441. productionDataEntity.Barcode = paras[0].Value != null ? paras[0].Value.ToString() : "";
  442. productionDataEntity.GoodsCode = paras[2].Value != null ? paras[2].Value.ToString() : "";
  443. productionDataEntity.GroutingUserCode = paras[3].Value != null ? paras[3].Value.ToString() : "";
  444. productionDataEntity.MouldCode = paras[4].Value != null ? paras[4].Value.ToString() : "";
  445. string GroutingNum = paras[5].Value != null ? paras[5].Value.ToString() : "";
  446. productionDataEntity.GroutingNum = Convert.ToInt32((GroutingNum == "" || GroutingNum.ToString() == "null") ? "0" : GroutingNum);
  447. productionDataEntity.GoodsEnding = paras[6].Value != null ? paras[6].Value.ToString() : "";
  448. if (returnDs != null && returnDs.Tables[0].Rows.Count > 0)
  449. {
  450. //ProductionDataEntity[] productionDataEntitys = new ProductionDataEntity[returnDs.Tables[0].Rows.Count];
  451. List<ProductionProcedureListEntity> productionProcedureListEntitys = new List<ProductionProcedureListEntity>();
  452. for (int i = 0; i < returnDs.Tables[0].Rows.Count; i++)
  453. {
  454. ProductionProcedureListEntity productionProcedureListEntity = new ProductionProcedureListEntity();
  455. productionProcedureListEntity.ProcedureName = returnDs.Tables[0].Rows[i]["ProcedureName"].ToString();
  456. productionProcedureListEntity.ProductionUserCode = returnDs.Tables[0].Rows[i]["ProductionUserCode"].ToString();
  457. productionProcedureListEntity.Usercode = returnDs.Tables[0].Rows[i]["CreateUserCode"].ToString();
  458. productionProcedureListEntity.Createtime = Convert.ToDateTime(returnDs.Tables[0].Rows[i]["Createtime"].ToString());
  459. productionProcedureListEntitys.Add(productionProcedureListEntity);
  460. // productionDataEntitys[i].ProcedureDataList = productionProcedureListEntitys;
  461. }
  462. productionDataEntity.ProcedureDataList = new List<ProductionProcedureListEntity>();
  463. productionDataEntity.ProcedureDataList = productionProcedureListEntitys;
  464. }
  465. return productionDataEntity;
  466. }
  467. catch (Exception ex)
  468. {
  469. ex.HelpLink = "barcode:" + barcode; //为了看哪个条码出现的问题
  470. throw ex;
  471. }
  472. finally
  473. {
  474. if (oracleConn.ConnState == ConnectionState.Open)
  475. {
  476. oracleConn.Close();
  477. }
  478. }
  479. }
  480. #endregion
  481. #region 文件上传下载
  482. #region 保存PDA图片
  483. /// <summary>
  484. /// 保存临时图片
  485. /// </summary>
  486. /// <param name="mageStream"></param>
  487. /// <returns></returns>
  488. public static string SaveImg(Stream mageStream)
  489. {
  490. try
  491. {
  492. // 路径不存在 需要创建
  493. if (!Directory.Exists(Constant.SYSTEM_TEMP_PATH))
  494. {
  495. Directory.CreateDirectory(Constant.SYSTEM_TEMP_PATH);
  496. }
  497. string path = Constant.SYSTEM_TEMP_PATH + "/" + System.Guid.NewGuid().ToString().ToUpper() + Constant.SYSTEM_IMAGE_FORMAT;
  498. Image img = Bitmap.FromStream(mageStream);
  499. img.Save(System.AppDomain.CurrentDomain.BaseDirectory + path);
  500. return path;
  501. }
  502. catch (Exception ex)
  503. {
  504. throw ex;
  505. }
  506. }
  507. public static Stream GetImg(string path)
  508. {
  509. Image image = Image.FromFile(path);//这是你图片文件的
  510. MemoryStream stream = new MemoryStream();
  511. image.Save(stream, ImageFormat.Jpeg); //把图片保存到流中。
  512. return stream;
  513. }
  514. #endregion
  515. /// <summary>
  516. /// PAD自动更新
  517. /// </summary>
  518. /// <returns></returns>
  519. public static Stream AutoUpgrade(int sdk)
  520. {
  521. try
  522. {
  523. string path = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("PathSetting", "UpgradeAPKPath");//System.Configuration.ConfigurationManager.AppSettings["UpgradeAPKPath"].Trim();
  524. string path14 = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("PathSetting", "UpgradeAPKPath14");//System.Configuration.ConfigurationManager.AppSettings["UpgradeAPKPath"].Trim();
  525. path = System.AppDomain.CurrentDomain.BaseDirectory + path;
  526. if (sdk >= 34)
  527. {
  528. path = System.AppDomain.CurrentDomain.BaseDirectory + path14;
  529. }
  530. FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
  531. return fileStream;
  532. }
  533. catch (Exception ex)
  534. {
  535. throw ex;
  536. }
  537. }
  538. /// <summary>
  539. /// PAD自动更新
  540. /// </summary>
  541. /// <returns></returns>
  542. public static Stream AutoUpgrade()
  543. {
  544. try
  545. {
  546. string path = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("PathSetting", "UpgradeAPKPath");//System.Configuration.ConfigurationManager.AppSettings["UpgradeAPKPath"].Trim();
  547. path = System.AppDomain.CurrentDomain.BaseDirectory + path;
  548. FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
  549. return fileStream;
  550. }
  551. catch (Exception ex)
  552. {
  553. throw ex;
  554. }
  555. }
  556. #endregion
  557. /// <summary>
  558. /// 由产品条码获取注浆信息
  559. /// </summary>
  560. /// <param name="barcode"></param>
  561. /// <returns></returns>
  562. public static DataSet GetGroutingProducttByBarCode(string barcode)
  563. {
  564. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  565. try
  566. {
  567. con.Open();
  568. string sqlString = @"select
  569. TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
  570. TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
  571. TP_PM_GroutingDailyDetail.GroutingMouldCode as MouldCode,
  572. (select tp_pm_inproduction.ispublicbody from
  573. tp_pm_inproduction where tp_pm_inproduction.BarCode=:barcode) as ispublicbody,
  574. (select tp_pm_inproductiontrash.ispublicbody from
  575. tp_pm_inproductiontrash where tp_pm_inproductiontrash.BarCode=:barcode) as ispublicbodyTrach,
  576. TP_PM_GroutingDailyDetail.Groutingdate
  577. from TP_PM_GroutingDailyDetail
  578. where TP_PM_GroutingDailyDetail.BarCode=:barcode";
  579. OracleParameter[] paras = new OracleParameter[]{
  580. new OracleParameter(":barcode",barcode),
  581. };
  582. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  583. return ds;
  584. }
  585. catch (Exception ex)
  586. {
  587. throw ex;
  588. }
  589. finally
  590. {
  591. if (con.ConnState == ConnectionState.Open)
  592. {
  593. con.Close();
  594. }
  595. }
  596. }
  597. /// <summary>
  598. /// 获取工号下的所有工种信息
  599. /// </summary>
  600. /// <param name="UserID">工号ID</param>
  601. /// <param name="sUserInfo">获取系统账套信息</param>
  602. /// <returns>数据集</returns>
  603. public static DataSet GetAllJobsByUserID(int UserID, SUserInfo sUserInfo)
  604. {
  605. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  606. try
  607. {
  608. con.Open();
  609. string sqlString = @"select
  610. TP_MST_UserJobs.Userid,
  611. TP_MST_Jobs.JobsID as Jobs,
  612. TP_MST_Jobs.JobsName,
  613. TP_MST_Jobs.JobsCode
  614. from TP_MST_UserJobs
  615. left join TP_MST_Jobs
  616. on TP_MST_UserJobs.JobsID=TP_MST_Jobs.JobsID
  617. where TP_MST_UserJobs.Userid=:UserId and TP_MST_Jobs.Accountid=:Accountid
  618. order by TP_MST_Jobs.JobsCode
  619. ";
  620. OracleParameter[] paras = new OracleParameter[]{
  621. new OracleParameter(":Accountid",sUserInfo.AccountID),
  622. new OracleParameter(":UserId",UserID),
  623. };
  624. DataSet dsUserIsWorker = con.GetSqlResultToDs(sqlString, paras);
  625. return dsUserIsWorker;
  626. }
  627. catch (Exception ex)
  628. {
  629. throw ex;
  630. }
  631. finally
  632. {
  633. if (con.ConnState == ConnectionState.Open)
  634. {
  635. con.Close();
  636. }
  637. }
  638. }
  639. /// <summary>
  640. /// 根据所选工号对应的工种,查出缺陷责任员工
  641. /// </summary>
  642. /// <param name="jobs">工种ID</param>
  643. /// <returns></returns>
  644. public static DataSet GetDutyStaffByUserID(int jobs, SUserInfo sUserInfo)
  645. {
  646. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  647. try
  648. {
  649. con.Open();
  650. string sqlString = @"select
  651. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as SJobsID
  652. from TP_MST_UserStaff
  653. left join TP_HR_Staff
  654. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  655. where TP_MST_UserStaff.Ujobsid=:jobs and TP_HR_Staff.StaffStatus in (1,2)
  656. order by TP_HR_Staff.StaffCode
  657. ";
  658. //and TP_PM_Producer.UserID=:UserID and TP_PM_Producer.UJobsID=:JobsID
  659. OracleParameter[] paras = new OracleParameter[]{
  660. new OracleParameter(":jobs",OracleDbType.Int32, jobs,ParameterDirection.Input),
  661. };
  662. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  663. return ds;
  664. }
  665. catch (Exception ex)
  666. {
  667. throw ex;
  668. }
  669. finally
  670. {
  671. if (con.ConnState == ConnectionState.Open)
  672. {
  673. con.Close();
  674. }
  675. }
  676. }
  677. /// <summary>
  678. /// 根据所选工号,查出漏检责任员工
  679. /// </summary>
  680. /// <param name="userid">工号</param>
  681. /// <returns></returns>
  682. public static DataSet GetMissedStaffByUserID(int userid, SUserInfo sUserInfo)
  683. {
  684. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  685. try
  686. {
  687. con.Open();
  688. string sqlString = @"select
  689. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as UJobsID,TP_HR_Staff.Jobs as SJobsID
  690. from TP_MST_UserStaff
  691. left join TP_HR_Staff
  692. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  693. where TP_MST_UserStaff.Userid=:userid
  694. ";
  695. OracleParameter[] paras = new OracleParameter[]{
  696. new OracleParameter(":userid",OracleDbType.Int32, userid,ParameterDirection.Input),
  697. };
  698. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  699. return ds;
  700. }
  701. catch (Exception ex)
  702. {
  703. throw ex;
  704. }
  705. finally
  706. {
  707. if (con.ConnState == ConnectionState.Open)
  708. {
  709. con.Close();
  710. }
  711. }
  712. }
  713. /// <summary>
  714. /// 查询产品信息
  715. /// </summary>
  716. /// <param name="requestEntity">请求信息</param>
  717. /// <param name="goodsEntity">产品信息</param>
  718. /// <returns></returns>
  719. /// <remarks>
  720. /// 王鑫 2014.12.09 新建
  721. /// </remarks>
  722. public static DataSet SerachGoods(SUserInfo sUserInfo, GoodsEntity goodsEntity)
  723. {
  724. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  725. try
  726. {
  727. con.Open();
  728. OracleParameter[] paras = new OracleParameter[]{
  729. new OracleParameter("account",OracleDbType.Int32,
  730. sUserInfo.AccountID,ParameterDirection.Input),
  731. new OracleParameter("goodsID",OracleDbType.Int32,
  732. goodsEntity.GoodsID,ParameterDirection.Input),
  733. new OracleParameter("goodsCode",OracleDbType.NVarchar2,
  734. goodsEntity.GoodsCode,ParameterDirection.Input),
  735. new OracleParameter("goodsName",OracleDbType.NVarchar2,
  736. goodsEntity.GoodsName,ParameterDirection.Input),
  737. new OracleParameter("goodsSpecification",OracleDbType.NVarchar2,
  738. goodsEntity.GoodsSpecification,ParameterDirection.Input),
  739. new OracleParameter("goodsModel",OracleDbType.NVarchar2,
  740. goodsEntity.GoodsModel,ParameterDirection.Input),
  741. new OracleParameter("goodsTypeCode",OracleDbType.NVarchar2,
  742. goodsEntity.GoodsTypeCode,ParameterDirection.Input),
  743. new OracleParameter("glazeTypeID",OracleDbType.Int32,
  744. goodsEntity.GlazeTypeID,ParameterDirection.Input),
  745. new OracleParameter("ceaseFlag",OracleDbType.NVarchar2,
  746. goodsEntity.CeaseFlag,ParameterDirection.Input),
  747. new OracleParameter("remarks",OracleDbType.NVarchar2,
  748. goodsEntity.Remarks,ParameterDirection.Input),
  749. new OracleParameter("valueFlag",OracleDbType.NVarchar2,
  750. goodsEntity.ValueFlag,ParameterDirection.Input),
  751. new OracleParameter("rs_result",OracleDbType.RefCursor,ParameterDirection.Output),
  752. new OracleParameter("rs_result_img",OracleDbType.RefCursor,ParameterDirection.Output),
  753. };
  754. foreach (OracleParameter item in paras)
  755. {
  756. if (item.Value + "" == "")
  757. {
  758. item.Value = DBNull.Value;
  759. }
  760. }
  761. DataSet ds = con.ExecStoredProcedure("PRO_MST_SerachGoods", paras);
  762. return ds;
  763. }
  764. catch (Exception ex)
  765. {
  766. throw ex;
  767. }
  768. finally
  769. {
  770. if (con.ConnState == ConnectionState.Open)
  771. {
  772. con.Close();
  773. }
  774. }
  775. }
  776. /// <summary>
  777. /// 获取用户列表
  778. /// </summary>
  779. /// <param name="requestEntity">用户实体</param>
  780. /// <param name="webUserInfo">获取系统账套信息</param>
  781. /// <returns>数据集</returns>
  782. public static DataSet SearchUserData(SUserEntity requestEntity, SUserInfo sUserInfo)
  783. {
  784. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  785. try
  786. {
  787. con.Open();
  788. OracleParameter[] paras = new OracleParameter[]{
  789. new OracleParameter("in_accountID",sUserInfo.AccountID),
  790. new OracleParameter("in_userID",sUserInfo.UserID),
  791. new OracleParameter("in_userCode",requestEntity.UserCode),
  792. new OracleParameter("in_userName",requestEntity.UserName),
  793. new OracleParameter("in_organizationID",requestEntity.OrganizationID),
  794. new OracleParameter("in_remarks",requestEntity.Remarks),
  795. new OracleParameter("in_limitMAC",requestEntity.LimitMAC),
  796. new OracleParameter("in_isWorker",requestEntity.IsWorker),
  797. new OracleParameter("rs_result",OracleDbType.RefCursor),
  798. new OracleParameter("in_ValueFlag",requestEntity.IsValueFlag),
  799. new OracleParameter("in_IsLocked",requestEntity.IsLocked),
  800. };
  801. paras[8].Direction = ParameterDirection.Output;
  802. DataSet ds = con.ExecStoredProcedure("PRO_MST_SearchUser", paras);
  803. return ds;
  804. }
  805. catch (Exception ex)
  806. {
  807. throw ex;
  808. }
  809. finally
  810. {
  811. if (con.ConnState == ConnectionState.Open)
  812. {
  813. con.Close();
  814. }
  815. }
  816. }
  817. /// <summary>
  818. /// 获取数据字典管理的数据
  819. /// </summary>
  820. /// <param name="Pvalue">显示停用标识</param>
  821. /// <param name="dictionaryType">字典类别</param>
  822. /// <returns></returns>
  823. /// <remarks>
  824. /// 2014.12.03 新建
  825. /// </remarks>
  826. public static DataSet GetDictionaryData(byte Pvalue, string dictionaryType, SUserInfo sUserInfo)
  827. {
  828. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  829. try
  830. {
  831. string sqlString = String.Empty;
  832. Oracle.ManagedDataAccess.Client.OracleParameter[] oracleParameter = null;
  833. if (Pvalue.ToString() == Constant.INT_IS_ONE.ToString())
  834. {
  835. sqlString = "Select DictionaryID,DictionaryType,DictionaryValue,DisplayNo,Remarks,AccountID,ValueFlag,CreateTime,CreateUserID,UpdateTime,"
  836. + "UpdateUserID,OPTimeStamp from TP_MST_DataDictionary where DictionaryType = :DictionaryType and AccountID = :AccountID";
  837. oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  838. {
  839. new Oracle.ManagedDataAccess.Client.OracleParameter(":AccountID",sUserInfo.AccountID),
  840. new Oracle.ManagedDataAccess.Client.OracleParameter(":DictionaryType",dictionaryType)
  841. };
  842. }
  843. else if (Pvalue.ToString() == Constant.INT_IS_ZERO.ToString())
  844. {
  845. sqlString = "Select DictionaryID,DictionaryType,DictionaryValue,DisplayNo,Remarks,AccountID,ValueFlag,CreateTime,CreateUserID,UpdateTime,"
  846. + "UpdateUserID,OPTimeStamp from TP_MST_DataDictionary where valueflag = :valueflag and DictionaryType = :DictionaryType and AccountID = :AccountID";
  847. oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  848. {
  849. new Oracle.ManagedDataAccess.Client.OracleParameter(":valueflag",Constant.INT_IS_ONE.ToString()),
  850. new Oracle.ManagedDataAccess.Client.OracleParameter(":AccountID",sUserInfo.AccountID),
  851. new Oracle.ManagedDataAccess.Client.OracleParameter(":DictionaryType",dictionaryType)
  852. };
  853. }
  854. oracleConn.Open();
  855. DataSet result = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  856. oracleConn.Close();
  857. return result;
  858. }
  859. catch (Exception ex)
  860. {
  861. if (oracleConn.ConnState == ConnectionState.Open)
  862. {
  863. oracleConn.Close();
  864. }
  865. throw ex;
  866. }
  867. finally
  868. {
  869. if (oracleConn.ConnState == ConnectionState.Open)
  870. {
  871. oracleConn.Close();
  872. }
  873. }
  874. }
  875. /// <summary>
  876. /// 使用存储过程PRO_PM_GetProductionData获取生产工序计件数据
  877. /// </summary>
  878. /// <param name="searchEntity">生产数据实体类</param>
  879. /// <param name="user">用户基本信息</param>
  880. /// <returns>DataTable</returns>
  881. public static DataTable GetProductionData(SearchProductionDataEntity searchEntity, SUserInfo user)
  882. {
  883. //IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  884. //string procsql = "PRO_PM_GetProductionDataPDA";
  885. //try
  886. //{
  887. // IDataParameter[] paras = new OracleParameter[]
  888. // {
  889. // new OracleParameter("in_procedureID",OracleDbType.Int32, searchEntity.ProcedureID, ParameterDirection.Input),
  890. // new OracleParameter("in_barCode", OracleDbType.Varchar2,searchEntity.BarCode, ParameterDirection.Input),
  891. // new OracleParameter("in_goodsCode", OracleDbType.Varchar2,searchEntity.GoodsCode, ParameterDirection.Input),
  892. // new OracleParameter("in_goodsName", OracleDbType.Varchar2,searchEntity.GoodsName, ParameterDirection.Input),
  893. // new OracleParameter("in_userCode", OracleDbType.Varchar2,searchEntity.UserCode, ParameterDirection.Input),
  894. // new OracleParameter("in_organizationID", OracleDbType.Int32,searchEntity.OrganizationID, ParameterDirection.Input),
  895. // new OracleParameter("in_remarks", OracleDbType.Varchar2,searchEntity.Remarks, ParameterDirection.Input),
  896. // new OracleParameter("in_isReworked", OracleDbType.Varchar2,searchEntity.IsRework, ParameterDirection.Input),
  897. // new OracleParameter("in_begindate", OracleDbType.Date,searchEntity.BeginDate, ParameterDirection.Input),
  898. // new OracleParameter("in_enddate", OracleDbType.Date,searchEntity.EndDate, ParameterDirection.Input),
  899. // new OracleParameter("in_accountID", OracleDbType.Int32,user.AccountID, ParameterDirection.Input),
  900. // new OracleParameter("in_userID", OracleDbType.Int32,user.UserID, ParameterDirection.Input),
  901. // new OracleParameter("in_kilnCode", OracleDbType.Varchar2,searchEntity.KilnCode, ParameterDirection.Input),
  902. // new OracleParameter("in_kilnCarCode", OracleDbType.Varchar2,searchEntity.KilnCarCode, ParameterDirection.Input),
  903. // new OracleParameter("in_kilnCarPosition", OracleDbType.Int32,searchEntity.KilnCarPosition, ParameterDirection.Input),
  904. // new OracleParameter("in_currentUserID", OracleDbType.Int32,user.UserID, ParameterDirection.Input),
  905. // new OracleParameter("out_result", OracleDbType.RefCursor, ParameterDirection.Output),
  906. // new OracleParameter("in_goodsTypeCode", OracleDbType.Varchar2,searchEntity.GoodsTypeCode, ParameterDirection.Input),
  907. // };
  908. // oracleConn.Open();
  909. // DataSet returnDs = oracleConn.ExecStoredProcedure(procsql, paras);
  910. // if (returnDs != null && returnDs.Tables.Count > 0)
  911. // {
  912. // return returnDs.Tables[0];
  913. // }
  914. // else
  915. // {
  916. // return null;
  917. // }
  918. //}
  919. //catch (Exception ex)
  920. //{
  921. // throw ex;
  922. //}
  923. //finally
  924. //{
  925. // if (oracleConn.ConnState == ConnectionState.Open)
  926. // {
  927. // oracleConn.Close();
  928. // }
  929. //}
  930. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  931. string procsql = "";//PRO_PM_GetProductionDataPDA
  932. procsql = @"SELECT TP_PM_ProductionDataIn.ProductionDataID FROM TP_PM_ProductionDataIn where 1=1 and ProcedureID=" + searchEntity.ProcedureID + " and barcode='" + searchEntity.BarCode + "' order by TP_PM_ProductionDataIn.ProductionDataid desc";
  933. try
  934. {
  935. //IDataParameter[] paras = new OracleParameter[]
  936. //{
  937. // new OracleParameter("in_procedureID",OracleDbType.Int32, searchEntity.ProcedureID, ParameterDirection.Input),
  938. // new OracleParameter("in_barCode", OracleDbType.Varchar2,searchEntity.BarCode, ParameterDirection.Input),
  939. // new OracleParameter("in_goodsCode", OracleDbType.Varchar2,searchEntity.GoodsCode, ParameterDirection.Input),
  940. // new OracleParameter("in_goodsName", OracleDbType.Varchar2,searchEntity.GoodsName, ParameterDirection.Input),
  941. // new OracleParameter("in_userCode", OracleDbType.Varchar2,searchEntity.UserCode, ParameterDirection.Input),
  942. // new OracleParameter("in_organizationID", OracleDbType.Int32,searchEntity.OrganizationID, ParameterDirection.Input),
  943. // new OracleParameter("in_remarks", OracleDbType.Varchar2,searchEntity.Remarks, ParameterDirection.Input),
  944. // new OracleParameter("in_isReworked", OracleDbType.Varchar2,searchEntity.IsRework, ParameterDirection.Input),
  945. // new OracleParameter("in_begindate", OracleDbType.Date,searchEntity.BeginDate, ParameterDirection.Input),
  946. // new OracleParameter("in_enddate", OracleDbType.Date,searchEntity.EndDate, ParameterDirection.Input),
  947. // new OracleParameter("in_accountID", OracleDbType.Int32,user.AccountID, ParameterDirection.Input),
  948. // new OracleParameter("in_userID", OracleDbType.Int32,user.UserID, ParameterDirection.Input),
  949. // new OracleParameter("in_kilnCode", OracleDbType.Varchar2,searchEntity.KilnCode, ParameterDirection.Input),
  950. // new OracleParameter("in_kilnCarCode", OracleDbType.Varchar2,searchEntity.KilnCarCode, ParameterDirection.Input),
  951. // new OracleParameter("in_kilnCarPosition", OracleDbType.Int32,searchEntity.KilnCarPosition, ParameterDirection.Input),
  952. // new OracleParameter("in_currentUserID", OracleDbType.Int32,user.UserID, ParameterDirection.Input),
  953. // new OracleParameter("out_result", OracleDbType.RefCursor, ParameterDirection.Output),
  954. // new OracleParameter("in_goodsTypeCode", OracleDbType.Varchar2,searchEntity.GoodsTypeCode, ParameterDirection.Input),
  955. //};
  956. oracleConn.Open();
  957. DataSet returnDs = oracleConn.GetSqlResultToDs(procsql);
  958. if (returnDs != null && returnDs.Tables.Count > 0)
  959. {
  960. return returnDs.Tables[0];
  961. }
  962. else
  963. {
  964. return null;
  965. }
  966. }
  967. catch (Exception ex)
  968. {
  969. throw ex;
  970. }
  971. finally
  972. {
  973. if (oracleConn.ConnState == ConnectionState.Open)
  974. {
  975. oracleConn.Close();
  976. }
  977. }
  978. }
  979. /// <summary>
  980. /// xuwei add 2020-03-23 此方法用于成检后 回收 再次成检 获取正确ID
  981. /// </summary>
  982. /// <param name="searchEntity">生产数据实体类</param>
  983. /// <param name="user">用户基本信息</param>
  984. /// <returns>DataTable</returns>
  985. public static DataTable GetProductionDataCheckID(SearchProductionDataEntity searchEntity, SUserInfo user)
  986. {
  987. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  988. //string procsql = $@"
  989. //SELECT
  990. // NVL(MAX( T.PRODUCTIONDATAID ),0) AS PRODUCTIONDATAID
  991. //FROM
  992. // TP_PM_PRODUCTIONDATAIN T
  993. // INNER JOIN TP_PM_INPRODUCTION INP ON INP.BARCODE = T.BARCODE
  994. // AND T.KILNCARBATCHNO = INP.KILNCARBATCHNO
  995. //WHERE
  996. // T.MODELTYPE =- 1
  997. // AND T.VALUEFLAG = '1'
  998. // AND T.BARCODE = '{searchEntity.BarCode}'
  999. //";
  1000. // 取最新的窑炉批次号
  1001. string sqlString2 = @"
  1002. SELECT KILNCARBATCHNO
  1003. FROM TP_PM_PRODUCTIONDATA
  1004. WHERE KILNCARBATCHNO IS NOT NULL
  1005. AND BARCODE = '{searchEntity.BarCode}'
  1006. ORDER BY CREATETIME DESC";
  1007. object kilncarbatchno = oracleConn.GetSqlResultToObj(sqlString2);
  1008. string procsql = $@"
  1009. SELECT * FROM (
  1010. SELECT
  1011. T.PRODUCTIONDATAID, T.PROCEDUREID
  1012. FROM
  1013. TP_PM_PRODUCTIONDATAIN T
  1014. WHERE
  1015. T.MODELTYPE in(-1,-4,-5)
  1016. AND T.VALUEFLAG = '1'
  1017. AND T.FINISHEDPROCEDUREID IS NULL
  1018. AND T.BARCODE = '{searchEntity.BarCode}'
  1019. AND T.kilncarbatchno = '{kilncarbatchno}'
  1020. ORDER BY
  1021. T.PRODUCTIONDATAID DESC
  1022. ) T
  1023. WHERE
  1024. ROWNUM=1
  1025. ";
  1026. try
  1027. {
  1028. oracleConn.Open();
  1029. DataTable returnDs = oracleConn.GetSqlResultToDt(procsql);
  1030. //xuwei fix 2020-04-24 取消null值 这可能会引起前端序列化json异常
  1031. return returnDs;
  1032. //if (returnDs != null && returnDs.Tables.Count > 0)
  1033. //{
  1034. // return returnDs.Tables[0];
  1035. //}
  1036. //else
  1037. //{
  1038. // return null;
  1039. //}
  1040. }
  1041. catch (Exception ex)
  1042. {
  1043. throw ex;
  1044. }
  1045. finally
  1046. {
  1047. if (oracleConn.ConnState == ConnectionState.Open)
  1048. {
  1049. oracleConn.Close();
  1050. }
  1051. }
  1052. }
  1053. /// <summary>
  1054. /// 根据所选生产数据ID,显示成检数据信息
  1055. /// </summary>
  1056. /// <param name="productionDataID">生产数据ID</param>
  1057. /// <returns>DataSet</returns>
  1058. public static DataSet GetProductionDataByID(int productionDataID)
  1059. {
  1060. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1061. try
  1062. {
  1063. con.Open();
  1064. DataSet dsReturn = new DataSet();
  1065. string sqlString = @"select
  1066. TP_PM_ProductionDataIn.Barcode as BarCode,
  1067. TP_PM_ProductionDataIn.Goodsid as GoodsID,
  1068. TP_PM_ProductionDataIn.Goodscode as GoodsCode,
  1069. TP_PM_ProductionDataIn.Goodsname as GoodsName,
  1070. TP_PM_ProductionDataIn.GoodsLevelID as DefectFlagID,
  1071. TP_PM_ProductionDataIn.Reworkprocedureid as ReworkProcedureID,
  1072. TP_PM_ProductionDataIn.Remarks as Remarks,
  1073. TP_PM_ProductionDataIn.Userid as UserID,
  1074. TP_PM_ProductionDataIn.UserCode as UserCode,
  1075. TP_PM_ProductionDataIn.UserName as UserName,
  1076. TP_PM_ProductionDataIn.Goodsleveltypeid as GoodsLevelTypeID,
  1077. TP_PM_ProductionDataIn.SpecialRepairflag,
  1078. TP_PM_ProductionDataIn.IsReFire,
  1079. TP_PM_ProductionDataIn.IsLengBu,
  1080. TP_PM_ProductionDataIn.KilnCode,
  1081. TP_PM_ProductionDataIn.KilnCarCode,
  1082. TP_PM_ProductionDataIn.GroutingUserCode,
  1083. TP_PM_ProductionDataIn.GroutingMouldCode as MouldCode,
  1084. TP_PM_ProductionDataIn.GroutingNum,
  1085. TP_PM_ProductionDataIn.GroutingDate,
  1086. TP_PM_ProductionDataIn.IsPublicBody,
  1087. TP_MST_Logo.logoid,
  1088. TP_MST_Logo.logocode,
  1089. TP_MST_Logo.logoname,
  1090. TP_PM_ProductionDataIn.CreateTime,
  1091. TP_PM_ProductionDataIn.CheckTime,
  1092. dd.DICTIONARYVALUE as GLAZEName,
  1093. gdd.LEAKFLAG1,
  1094. gdd.LEAKFLAG2,
  1095. gdd.LEAKFLAG3,
  1096. decode(TP_PM_ProductionDataIn.SpecialRepairFlag,'1','是','0','否') as SpecialRepairflagName,
  1097. decode(TP_PM_ProductionDataIn.IsReFire,'6','是','0','否') as IsReFireName,
  1098. decode(gdd.LEAKFLAG1,'1','合格','0','不合格','未检测') as LEAKFLAG1Name,
  1099. decode(gdd.LEAKFLAG2,'1','合格','0','不合格','未检测') as LEAKFLAG2Name,
  1100. decode(gdd.LEAKFLAG3,'1','合格','0','不合格','未检测') as LEAKFLAG3Name
  1101. from TP_PM_ProductionDataIn
  1102. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd
  1103. on gdd.BARCODE = TP_PM_ProductionDataIn.BARCODE
  1104. left join TP_MST_DATADICTIONARY dd on dd.DICTIONARYID = gdd.GLAZETYPEID
  1105. left join TP_MST_Logo
  1106. on gdd.logoid=TP_MST_Logo.logoid
  1107. where
  1108. TP_PM_ProductionDataIn.Productiondataid=:ProductionDataID
  1109. ";
  1110. string sqlString2 = @"
  1111. select
  1112. TP_PM_Defect.ProductionDefectID as ProductionDefectID,
  1113. TP_PM_Defect.Barcode as BarCode,
  1114. TP_PM_Defect.DefectID as DefectID,
  1115. TP_PM_Defect.Defectname as DefectName,
  1116. TP_PM_Defect.Defectcode as DefectCode,
  1117. TP_PM_Defect.Defectpositionid as DefectPositionID,
  1118. TP_PM_Defect.Defectpositionname as DefectPositionName,
  1119. TP_PM_Defect.Defectpositioncode as DefectPositionCode,
  1120. TP_PM_Defect.Defectprocedureid as DefectProcedureID,
  1121. TP_PM_Defect.Defectprocedurename as DefectProcedureName,
  1122. TP_PM_Defect.Defectprocedurecode as DefectProcedureCode,
  1123. TP_PM_Defect.Defectuserid as DefectUserID,
  1124. TP_PM_Defect.Defectusername as DefectUserName,
  1125. TP_PM_Defect.Defectusercode as DefectUserCode,
  1126. TP_PM_Defect.DefectJobs as Jobs,
  1127. nvl(TP_PM_Defect.MissedUserID,-1) as MissedUserID,
  1128. TP_PM_Defect.MissedUserCode,
  1129. TP_PM_Defect.MissedUserName,
  1130. TP_MST_Jobs.Jobsname as JobsText,
  1131. TP_PM_Defect.Remarks as DefectRemarks,
  1132. TP_PM_Defect.Productiondataid as ProductionDataID,
  1133. nvl(TP_PM_Defect.DefectProductionDataID,0) as DefectProductionDataID,
  1134. TP_PM_Defect.Defectfine as DefectFineID,
  1135. TP_MST_DefectFine.DefectFineCode as DefectFineValue,
  1136. TP_PM_Defect.SpecialDefect,
  1137. TP_PM_Defect.DefectDeductionNum,
  1138. TP_PM_Defect.CheckTime
  1139. from TP_PM_Defect
  1140. left join TP_MST_Jobs
  1141. on TP_PM_Defect.Defectjobs=TP_MST_Jobs.JobsID
  1142. left join TP_MST_DefectFine
  1143. on TP_PM_Defect.Defectfine= TP_MST_DefectFine.DefectFineid
  1144. where TP_PM_Defect.Productiondataid =:ProductionDataID";
  1145. string sqlString3 = @"select
  1146. TP_PM_DefectResponsible.ProductionDefectID as ProductionDefectID,
  1147. TP_PM_DefectResponsible.Staffid as StaffID,
  1148. TP_HR_Staff.Staffcode as StaffCode,
  1149. TP_HR_Staff.Staffname as StaffName,
  1150. TP_PM_DefectResponsible.Staffstatus as StaffStatus,
  1151. TP_PM_DefectResponsible.UJobsID,
  1152. TP_PM_DefectResponsible.SJobsID
  1153. from TP_PM_DefectResponsible
  1154. left join TP_HR_Staff
  1155. on TP_PM_DefectResponsible.StaffID=TP_HR_Staff.Staffid
  1156. where TP_PM_DefectResponsible.Productiondefectid in
  1157. (
  1158. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1159. )";
  1160. string sqlString4 = @" select
  1161. TP_PM_DefectImage.ProductionDefectID,
  1162. TP_PM_DefectImage.Thumbnailpath,
  1163. TP_PM_DefectImage.Imagepath
  1164. from TP_PM_DefectImage
  1165. where TP_PM_DefectImage.Productiondefectid in
  1166. (
  1167. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1168. )";
  1169. string sqlString5 = @"select
  1170. TP_PM_DefectMissedResponsible.ProductionDefectID as ProductionDefectID,
  1171. TP_PM_DefectMissedResponsible.Staffid as StaffID,
  1172. TP_HR_Staff.Staffcode as StaffCode,
  1173. TP_HR_Staff.Staffname as StaffName,
  1174. TP_PM_DefectMissedResponsible.Staffstatus as StaffStatus,
  1175. TP_PM_DefectMissedResponsible.UJobsID,
  1176. TP_PM_DefectMissedResponsible.SJobsID
  1177. from TP_PM_DefectMissedResponsible
  1178. left join TP_HR_Staff
  1179. on TP_PM_DefectMissedResponsible.StaffID=TP_HR_Staff.Staffid
  1180. where TP_PM_DefectMissedResponsible.Productiondefectid in
  1181. (
  1182. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1183. )";
  1184. OracleParameter[] paras = new OracleParameter[]{
  1185. new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
  1186. };
  1187. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1188. ds.Tables[0].TableName = "TP_PM_ProductionData";
  1189. DataSet ds2 = con.GetSqlResultToDs(sqlString2, paras);
  1190. ds2.Tables[0].TableName = "TP_PM_Defect";
  1191. DataSet ds3 = con.GetSqlResultToDs(sqlString3, paras);
  1192. ds3.Tables[0].TableName = "TP_PM_DefectResponsible";
  1193. DataSet ds4 = con.GetSqlResultToDs(sqlString4, paras);
  1194. ds4.Tables[0].TableName = "TP_PM_DefectImage";
  1195. DataSet ds5 = con.GetSqlResultToDs(sqlString5, paras);
  1196. ds5.Tables[0].TableName = "TP_PM_DefectMissedResponsible";
  1197. dsReturn.Tables.Add(ds.Tables[0].Copy());
  1198. dsReturn.Tables.Add(ds2.Tables[0].Copy());
  1199. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  1200. dsReturn.Tables.Add(ds4.Tables[0].Copy());
  1201. dsReturn.Tables.Add(ds5.Tables[0].Copy());
  1202. return dsReturn;
  1203. }
  1204. catch (Exception ex)
  1205. {
  1206. throw ex;
  1207. }
  1208. finally
  1209. {
  1210. if (con.ConnState == ConnectionState.Open)
  1211. {
  1212. con.Close();
  1213. }
  1214. }
  1215. }
  1216. /// <summary>
  1217. /// 绑定图片
  1218. /// </summary>
  1219. /// <returns></returns>
  1220. public static Stream BindDefectImage(string imagePath)
  1221. {
  1222. try
  1223. {
  1224. FileStream fileStream = new FileStream(System.AppDomain.CurrentDomain.BaseDirectory + imagePath, FileMode.Open, FileAccess.Read, FileShare.Read);
  1225. return fileStream;
  1226. }
  1227. catch (Exception ex)
  1228. {
  1229. throw ex;
  1230. }
  1231. }
  1232. /// <summary>
  1233. /// 根据所选工号对应的工种,查出缺陷责任员工
  1234. /// </summary>
  1235. /// <param name="jobs">工种ID</param>
  1236. /// <param name="userid">用户ID</param>
  1237. /// <param name="sUserInfo">用户基本信息</param>
  1238. /// <returns>DataSet</returns>
  1239. public static DataSet GetDutyStaffByUserJobsID(int jobs, SUserInfo sUserInfo, int userid)
  1240. {
  1241. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1242. try
  1243. {
  1244. List<OracleParameter> paras = new List<OracleParameter>();
  1245. con.Open();
  1246. string sqlString = @"select
  1247. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as SJobsID
  1248. from TP_MST_UserStaff
  1249. inner join TP_HR_Staff
  1250. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  1251. where TP_MST_UserStaff.Userid=:userid
  1252. and TP_HR_Staff.valueflag = '1' and TP_HR_Staff.StaffStatus in (1,2) ";
  1253. paras.Add(new OracleParameter(":userid", OracleDbType.Int32, userid, ParameterDirection.Input));
  1254. if (jobs > 0)
  1255. {
  1256. sqlString += " and TP_MST_UserStaff.Ujobsid=:jobs";
  1257. paras.Add(new OracleParameter(":jobs", OracleDbType.Int32, jobs, ParameterDirection.Input));
  1258. }
  1259. //OracleParameter[] paras = new OracleParameter[]{
  1260. // new OracleParameter(":jobs",OracleDbType.Int32, jobs,ParameterDirection.Input),
  1261. // new OracleParameter(":userid",OracleDbType.Int32, userid,ParameterDirection.Input),
  1262. //};
  1263. DataSet ds = con.GetSqlResultToDs(sqlString, paras.ToArray());
  1264. return ds;
  1265. }
  1266. catch (Exception ex)
  1267. {
  1268. throw ex;
  1269. }
  1270. finally
  1271. {
  1272. if (con.ConnState == ConnectionState.Open)
  1273. {
  1274. con.Close();
  1275. }
  1276. }
  1277. }
  1278. #region 产品报废
  1279. /// <summary>
  1280. /// 验证废弃产品唯一性
  1281. /// </summary>
  1282. /// <param name="BarCode">产品条码</param>
  1283. /// <returns>int</returns>
  1284. public static string ScrapProductChack(string BarCode, SUserInfo sUserInfo)
  1285. {
  1286. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1287. try
  1288. {
  1289. con.Open();
  1290. // 当前工号是否有条码所在工序的操作权限
  1291. string sqlString =
  1292. "SELECT inp.procedureid\n" +
  1293. " ,p.procedurename\n" +
  1294. " ,p.MODELTYPE\n" +
  1295. " ,(SELECT 1\n" +
  1296. " FROM tp_mst_userpurview t\n" +
  1297. " WHERE t.purviewtype = 10\n" +
  1298. " AND t.userid = :userid\n" +
  1299. " AND (t.purviewid = -1 OR t.purviewid = inp.procedureid)\n" +
  1300. " AND rownum = 1) userpurview\n" +
  1301. " FROM tp_pm_inproduction inp\n" +
  1302. " LEFT JOIN tp_pc_procedure p\n" +
  1303. " ON p.procedureid = inp.procedureid\n" +
  1304. " WHERE inp.barcode = :barcode";
  1305. OracleParameter[] paras = new OracleParameter[]{
  1306. new OracleParameter(":userid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  1307. new OracleParameter(":barcode",OracleDbType.Varchar2, BarCode,ParameterDirection.Input),
  1308. };
  1309. DataTable dt = con.GetSqlResultToDt(sqlString, paras);
  1310. if (dt == null || dt.Rows.Count == 0)
  1311. {
  1312. // 条码不在产。
  1313. return "2";
  1314. }
  1315. object userpurview = dt.Rows[0]["userpurview"];
  1316. if (userpurview == null || userpurview == DBNull.Value)
  1317. {
  1318. return "3:" + dt.Rows[0]["procedurename"];
  1319. }
  1320. int MODELTYPE = Convert.ToInt32(dt.Rows[0]["MODELTYPE"]);
  1321. if (MODELTYPE == 1 ||
  1322. MODELTYPE == 2 ||
  1323. MODELTYPE == 3 ||
  1324. MODELTYPE == 6)
  1325. {
  1326. return "4:该产品处于无法报损的特殊工序中";
  1327. }
  1328. /*
  1329. string strSql = @"Select * from TP_PM_ScrapProduct where ValueFlag=1
  1330. and BarCode='" + BarCode + "' and (AuditStatus=1)"; //AuditStatus=0 or
  1331. DataSet dsReturn = con.GetSqlResultToDs(strSql);
  1332. if (dsReturn.Tables[0].Rows.Count == 0)
  1333. {
  1334. return 1;
  1335. }
  1336. else
  1337. {
  1338. return 0;
  1339. }
  1340. */
  1341. #region 判断产品是否被挂起
  1342. sqlString = "SELECT 1 AS RES\n" +
  1343. " FROM TP_PM_PRODUCTSUSPEND PS\n" +
  1344. " INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD\n" +
  1345. " ON GDD.GROUTINGDAILYDETAILID = PS.GROUTINGDAILYDETAILID\n" +
  1346. " WHERE GDD.BARCODE = :Barcode";
  1347. OracleParameter[] pars = new OracleParameter[]
  1348. {
  1349. new OracleParameter(":Barcode",OracleDbType.NVarchar2, BarCode,ParameterDirection.Input),
  1350. };
  1351. object objResult = con.GetSqlResultToObj(sqlString, pars);
  1352. if (objResult != null)
  1353. {
  1354. return "4:该产品被挂起";
  1355. }
  1356. #endregion
  1357. string strSql = "select GoodsLevelTypeID,AuditStatus from TP_PM_ScrapProduct "
  1358. + " where BarCode='" + BarCode + "'and CreateTime=(select max(CreateTime) "
  1359. + " from TP_PM_ScrapProduct "
  1360. + " where BarCode='" + BarCode + "' and ValueFlag=1 and (AuditStatus = 0 or AuditStatus = 1) and recyclingflag=0)"
  1361. + " and ValueFlag=1 and (AuditStatus = 0 or AuditStatus = 1) and recyclingflag=0";
  1362. DataSet dsReturn = con.GetSqlResultToDs(strSql);
  1363. if (dsReturn.Tables[0].Rows.Count == 0)
  1364. {
  1365. return "1";
  1366. }
  1367. else
  1368. {
  1369. if (dsReturn.Tables[0].Rows[0]["GOODSLEVELTYPEID"].ToString().Equals("9") && dsReturn.Tables[0].Rows[0]["AUDITSTATUS"].ToString().Equals("1"))
  1370. {
  1371. return "1";
  1372. }
  1373. else if (dsReturn.Tables[0].Rows[0]["GOODSLEVELTYPEID"].ToString() != "9" && dsReturn.Tables[0].Rows[0]["AUDITSTATUS"].ToString().Equals("1"))
  1374. {
  1375. return "0";
  1376. }
  1377. else
  1378. {
  1379. return "1";
  1380. }
  1381. }
  1382. }
  1383. catch (Exception ex)
  1384. {
  1385. throw ex;
  1386. }
  1387. finally
  1388. {
  1389. if (con.ConnState == ConnectionState.Open)
  1390. {
  1391. con.Close();
  1392. }
  1393. }
  1394. }
  1395. /// <summary>
  1396. /// 根据条码获取该产品的在产信息以及生产数据
  1397. /// </summary>
  1398. /// <param name="Barcode">产品条码</param>
  1399. /// <returns>装有两个DataTable的数据集,第一个是在产信息,第二个是生产数据</returns>
  1400. public static DataSet GetInProductionAndProductionData(string BarCode, SUserInfo sUserInfo)
  1401. {
  1402. DataSet dsList = new DataSet();
  1403. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1404. try
  1405. {
  1406. con.Open();
  1407. StringBuilder sbSql = new StringBuilder();
  1408. ////sbSql.Append("Select inp.*,pt.ProcedureModelTypeID from TP_PM_InProduction inp ");
  1409. ////sbSql.Append(" Inner join TP_PC_Procedure p");
  1410. //////sbSql.Append(" On inp.CompleteProcedureID = p.ProcedureID");
  1411. ////sbSql.Append(" On inp.FlowProcedureID = p.ProcedureID");
  1412. ////sbSql.Append(" Inner join TP_SYS_ProcedureModelType pt");
  1413. ////sbSql.Append(" On p.ModelType = pt.ProcedureModelTypeID");
  1414. ////sbSql.Append(" where inp.Barcode=:Barcode and inp.ValueFlag=1");
  1415. //sbSql.Append("Select inp.*,inp.ModelType as ProcedureModelTypeID,1 as endmode from TP_PM_InProduction inp ");
  1416. //sbSql.Append(" where inp.Barcode=:Barcode and inp.ValueFlag=1");
  1417. sbSql.Append("Select inp.*, p.ProcedureCode,p.ProcedureName, inp.ModelType as ProcedureModelTypeID,1 as endmode from TP_PM_InProduction inp ");
  1418. sbSql.Append(" inner join tp_pc_Procedure p on p.ProcedureID = inp.ProcedureID ");
  1419. sbSql.Append(" where inp.Barcode=:Barcode and inp.ValueFlag=1");
  1420. OracleParameter[] Paras = new OracleParameter[]{
  1421. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  1422. BarCode,ParameterDirection.Input),
  1423. };
  1424. DataTable dtProduction = con.GetSqlResultToDt(sbSql.ToString(), Paras);
  1425. if (dtProduction != null)
  1426. {
  1427. if (dtProduction.Rows.Count != 0)
  1428. {
  1429. dsList.Tables.Add(dtProduction);
  1430. }
  1431. else
  1432. {
  1433. //在产产品不存在的话,看看是不是变成了成品
  1434. sbSql.Clear();
  1435. sbSql.Append("Select fp.*,2 as endmode from TP_PM_FinishedProduct fp ");
  1436. sbSql.Append(" where fp.Barcode=:Barcode and fp.ValueFlag=1");
  1437. dtProduction = con.GetSqlResultToDt(sbSql.ToString(), Paras);
  1438. if (dtProduction != null)
  1439. {
  1440. dsList.Tables.Add(dtProduction);
  1441. }
  1442. }
  1443. }
  1444. else
  1445. {
  1446. return null;
  1447. }
  1448. //sbSql.Clear();
  1449. //sbSql.Append("Select distinct ProductionDataID,ProcedureID,ProcedureName,ProcedureCode from TP_PM_ProductionDataIn where Barcode=:Barcode and ValueFlag=1 order by ProductionDataid");
  1450. DataSet sysSetting = CommonModuleLogic.CommonModuleLogic.GetSysSettingBySettingType("S_PM_015", sUserInfo);
  1451. string spm015 = null;
  1452. if (sysSetting != null && sysSetting.Tables.Count > 0 && sysSetting.Tables[0].Rows.Count > 0)
  1453. {
  1454. spm015 = sysSetting.Tables[0].Rows[0]["SettingValue"] + "";
  1455. }
  1456. sbSql.Clear();
  1457. sbSql.Append("Select ProductionDataID,ProcedureID,ProcedureName,ProcedureCode from TP_PM_ProductionDataIn where Barcode=:Barcode and ValueFlag=1 ");
  1458. // 报损不能选成型责任
  1459. if ("0" == spm015)
  1460. {
  1461. sbSql.Append(" and MODELTYPE <> 5");
  1462. }
  1463. sbSql.Append(" order by ProductionDataid");
  1464. DataTable dtProductionData = con.GetSqlResultToDt(sbSql.ToString(), Paras);
  1465. if (dtProductionData != null)
  1466. {
  1467. dsList.Tables.Add(dtProductionData);
  1468. }
  1469. else
  1470. {
  1471. return null;
  1472. }
  1473. return dsList;
  1474. }
  1475. catch (Exception ex)
  1476. {
  1477. throw ex;
  1478. }
  1479. finally
  1480. {
  1481. if (con.ConnState == ConnectionState.Open)
  1482. {
  1483. con.Close();
  1484. }
  1485. }
  1486. }
  1487. /// <summary>
  1488. /// 根据工号查询员工档案信息
  1489. /// </summary>
  1490. /// <param name="userId">员工ID</param>
  1491. /// <param name="sUserInfo">用户基本信息</param>
  1492. /// <returns>DataSet</returns>
  1493. /// <remarks>
  1494. /// 作者 日期 内容
  1495. /// 冯雪 2014-9-23 新建
  1496. /// </remarks>
  1497. public static DataSet SearchHrStaffInfo(int userId, SUserInfo sUserInfo)
  1498. {
  1499. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1500. try
  1501. {
  1502. con.Open();
  1503. string strSql = " SELECT TUser.userid,Staff.Staffid,Staff.Staffname,Staff.Organizationid,"
  1504. + " Staff.Jobs,Staff.Staffstatus,Staff.Staffcode,'' Remarks,"
  1505. + " (CASE Staff.staffStatus"
  1506. + " WHEN 0 THEN '未入职'"
  1507. + " WHEN 1 THEN '试用 '"
  1508. + " WHEN 2 THEN '转正'"
  1509. + " WHEN 3 THEN '离职'"
  1510. + " ELSE '' END) AS staffStatusName,"
  1511. + " Jobs.Jobsname,Org.Organizationname,TUser.UserCode,TUserJobs.Jobsname as UJobsName,TUserJobs.JobsId as UJobsId"
  1512. + " FROM TP_HR_Staff Staff "
  1513. + " LEFT JOIN TP_MST_Jobs Jobs ON Jobs.Jobsid = Staff.Jobs "
  1514. + " LEFT JOIN TP_MST_Organization Org ON Org.Organizationid = Staff.Organizationid "
  1515. + " LEFT JOIN TP_MST_UserStaff TUserStaff on TUserStaff.StaffID = Staff.StaffID "
  1516. + " LEFT JOIN TP_MST_User TUser on TUserStaff.Userid = TUser.Userid"
  1517. + " LEFT JOIN TP_MST_Jobs TUserJobs on TUserJobs.Jobsid = TUserStaff.Ujobsid"
  1518. + " WHERE Staff.Accountid = :accountID "
  1519. + " AND TUser.Userid = :userId"
  1520. + " AND Staff.Staffstatus in(1,2)";
  1521. OracleParameter[] paras = new OracleParameter[]{
  1522. new OracleParameter(":accountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  1523. new OracleParameter(":userId", OracleDbType.Int32, userId, ParameterDirection.Input),
  1524. };
  1525. DataSet ds = con.GetSqlResultToDs(strSql, paras);
  1526. return ds;
  1527. }
  1528. catch (Exception ex)
  1529. {
  1530. throw ex;
  1531. }
  1532. finally
  1533. {
  1534. if (con.ConnState == ConnectionState.Open)
  1535. {
  1536. con.Close();
  1537. }
  1538. }
  1539. }
  1540. /// <summary>
  1541. /// 添加废弃产品记录
  1542. /// </summary>
  1543. /// <param name="SProductEntity">废弃产品实体</param>
  1544. /// <param name="RProcedureEntity">废弃责任工序实体</param>
  1545. /// <param name="SResponsibleList">责任者集合</param>
  1546. /// <param name="userInfo">用户基本信息</param>
  1547. /// <returns>int结果返回值</returns>
  1548. /// <remarks>
  1549. /// 庄天威 2014.09.24 新建
  1550. /// </remarks>
  1551. public static int AddScrapProduct(ScrapProductEntity SProductEntity,
  1552. ResponProcedureEntity RProcedureEntity,
  1553. ScrapResponsibleEntity[] SResponsibleList, SUserInfo userInfo)
  1554. {
  1555. int ll = 0;
  1556. int returnRows = 0;
  1557. int sresponsibleReturnRows = 0;
  1558. int rprocedureReturn = 0;
  1559. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  1560. try
  1561. {
  1562. oracleTrConn.Connect();
  1563. //#region 判断产品是否被挂起
  1564. //string sqlString = "SELECT 1 AS RES\n" +
  1565. // " FROM TP_PM_PRODUCTSUSPEND PS\n" +
  1566. // " INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD\n" +
  1567. // " ON GDD.GROUTINGDAILYDETAILID = PS.GROUTINGDAILYDETAILID\n" +
  1568. // " WHERE GDD.BARCODE = :Barcode";
  1569. //OracleParameter[] pars = new OracleParameter[]
  1570. //{
  1571. // new OracleParameter(":Barcode",OracleDbType.NVarchar2, SProductEntity.BarCode,ParameterDirection.Input),
  1572. //};
  1573. //object objResult = oracleTrConn.GetSqlResultToObj(sqlString, pars);
  1574. //if (objResult != null)
  1575. //{
  1576. // return Constant.INT_IS_NEGATIE_ONE;
  1577. //}
  1578. //#endregion
  1579. object result = DBNull.Value;
  1580. ll = 1;
  1581. if (SProductEntity.AuditStatus != 0)
  1582. {
  1583. ll = 2;
  1584. //string strSql1 = "select FUN_CMN_GetAccountDate(:accountId) From DUAL";
  1585. string strSql1 = "select sysdate from dual";
  1586. // Oracle.ManagedDataAccess.Client.OracleParameter[] paras1 = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  1587. //{
  1588. // new Oracle.ManagedDataAccess.Client.OracleParameter(":accountId",userInfo.AccountID)
  1589. //};
  1590. object strResult = oracleTrConn.GetSqlResultToObj(strSql1);
  1591. if (strResult == null || strResult == DBNull.Value)
  1592. {
  1593. // 服务器时间错误
  1594. throw new Exception("SystemDateTimeError");
  1595. }
  1596. result = Convert.ToDateTime(strResult);
  1597. }
  1598. ll = 3;
  1599. // wangx 20156/01/13
  1600. int? ProductionDataID = null;
  1601. int? completeProcdureID = null;
  1602. string completeProcdureName = string.Empty;
  1603. string completeProcdureCode = string.Empty;
  1604. //string sqlProductionDataID = @"select tp_pm_inproduction.productiondataid,
  1605. // tp_pc_procedure.procedureid,
  1606. // tp_pc_procedure.procedurename,
  1607. // tp_pc_procedure.procedurecode
  1608. // from tp_pm_inproduction
  1609. // left join tp_pc_procedure
  1610. // on tp_pm_inproduction.procedureid=tp_pc_procedure.procedureid
  1611. // where tp_pm_inproduction.barcode = :barcode
  1612. // union
  1613. // select tp_pm_inproductiontrash.productiondataid,
  1614. // tp_pc_procedure.procedureid,
  1615. // tp_pc_procedure.procedurename,
  1616. // tp_pc_procedure.procedurecode
  1617. // from tp_pm_inproductiontrash
  1618. // left join tp_pc_procedure
  1619. // on tp_pm_inproductiontrash.procedureid=tp_pc_procedure.procedureid
  1620. // where tp_pm_inproductiontrash.barcode = :barcode
  1621. // ";
  1622. string sqlProductionDataID = @"select tp_pm_inproduction.productiondataid,
  1623. tp_pc_procedure.procedureid,
  1624. tp_pc_procedure.procedurename,
  1625. tp_pc_procedure.procedurecode, tp_pm_inproduction.InScrapFlag
  1626. from tp_pm_inproduction
  1627. left join tp_pc_procedure
  1628. on tp_pm_inproduction.procedureid=tp_pc_procedure.procedureid
  1629. where tp_pm_inproduction.barcode = :barcode
  1630. for update";
  1631. OracleParameter[] ParasProductionDataID = new OracleParameter[] {
  1632. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  1633. SProductEntity.BarCode,ParameterDirection.Input),
  1634. };
  1635. ll = 4;
  1636. DataSet dsProductionDataID = oracleTrConn.GetSqlResultToDs(sqlProductionDataID, ParasProductionDataID);
  1637. if (dsProductionDataID != null && dsProductionDataID.Tables[0].Rows.Count > 0)
  1638. {
  1639. ProductionDataID = Convert.ToInt32(dsProductionDataID.Tables[0].Rows[0]["productiondataid"]);
  1640. completeProcdureID = Convert.ToInt32(dsProductionDataID.Tables[0].Rows[0]["procedureid"]);
  1641. completeProcdureName = dsProductionDataID.Tables[0].Rows[0]["procedurename"].ToString();
  1642. completeProcdureCode = dsProductionDataID.Tables[0].Rows[0]["procedurecode"].ToString();
  1643. string InScrapFlag = dsProductionDataID.Tables[0].Rows[0]["InScrapFlag"].ToString();
  1644. if (InScrapFlag == "1")
  1645. {
  1646. return Constant.RETURN_IS_DATACHANGED;
  1647. }
  1648. }
  1649. else
  1650. {
  1651. return Constant.RETURN_IS_DATACHANGED;
  1652. }
  1653. // end
  1654. ll = 5;
  1655. // 如果完成工序ID发生变化,则返回提示;
  1656. if (completeProcdureID != SProductEntity.ProcedureID)
  1657. {
  1658. return Constant.RETURN_IS_DATACHANGED;
  1659. }
  1660. //首先添加废弃产品主体信息
  1661. StringBuilder sbSql = new StringBuilder();
  1662. //获取序列ID
  1663. sbSql.Clear();
  1664. sbSql.Append("select SEQ_PM_ScrapProduct_ID.nextval from dual");
  1665. int id = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
  1666. sbSql.Clear();
  1667. sbSql.Append("Insert into TP_PM_ScrapProduct");
  1668. sbSql.Append("(ScrapProductID,Barcode,ProductionLineID,ProductionLineCode,ProductionLineName,");
  1669. sbSql.Append("GoodsID,GoodsCode,GoodsName,GroutingDailyID,GroutingDailyDetailID,");
  1670. sbSql.Append("GroutingDate,GroutingLineID,GroutingLineCode,GroutingLineName,");
  1671. sbSql.Append("GMouldTypeID,GroutingLineDetailID,GroutingMouldCode,MouldCode,");
  1672. sbSql.Append("GoodsLevelID,GoodsLevelTypeID,ResponType,ScrapDate,Rreason,");
  1673. sbSql.Append("Remarks,AuditStatus,");
  1674. sbSql.Append("SettlementFlag,AccountID,ValueFlag,CreateTime,CreateUserID,");
  1675. sbSql.Append("UpdateTime,UpdateUserID,OPTimeStamp,GroutingUserID,GroutingUserCode,GroutingNum,IsPublicBody,IsReFire,ScrapFine,Auditor,AuditDate,SpecialRepairflag,Procedureid,ProcedureName,ProcedureCode,logoid,ProductionDataID)");
  1676. sbSql.Append("values(:ScrapProductID,:Barcode,:ProductionLineID,:ProductionLineCode,:ProductionLineName,");
  1677. sbSql.Append(":GoodsID,:GoodsCode,:GoodsName,:GroutingDailyID,:GroutingDailyDetailID,");
  1678. sbSql.Append(":GroutingDate,:GroutingLineID,:GroutingLineCode,:GroutingLineName,");
  1679. sbSql.Append(":GMouldTypeID,:GroutingLineDetailID,:GroutingMouldCode,:MouldCode,");
  1680. sbSql.Append(":GoodsLevelID,:GoodsLevelTypeID,:ResponType,:ScrapDate,:Rreason,");
  1681. sbSql.Append(":Remarks,:AuditStatus,");
  1682. sbSql.Append("0,:AccountID,1,sysdate,:CreateUserID,");
  1683. sbSql.Append("sysdate,:UpdateUserID,systimestamp,:GroutingUserID,:GroutingUserCode,:GroutingNum,:IsPublicBody,:IsReFire,:ScrapFine,:Auditor,:AuditlDate,:SpecialRepairflag,:Procedureid,:ProcedureName,:ProcedureCode,:logoid,:ProductionDataID)");
  1684. OracleParameter[] Paras = new OracleParameter[] {
  1685. new OracleParameter(":ScrapProductID",OracleDbType.Int32,
  1686. id,ParameterDirection.Input),
  1687. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  1688. SProductEntity.BarCode,ParameterDirection.Input),
  1689. new OracleParameter(":ProductionLineID",OracleDbType.Int32,
  1690. SProductEntity.ProductionLineID,ParameterDirection.Input),
  1691. new OracleParameter(":ProductionLineCode",OracleDbType.NVarchar2,
  1692. SProductEntity.ProductionLineCode,ParameterDirection.Input),
  1693. new OracleParameter(":ProductionLineName",OracleDbType.NVarchar2,
  1694. SProductEntity.ProductionLineName,ParameterDirection.Input),
  1695. new OracleParameter(":GoodsID",OracleDbType.Int32,
  1696. SProductEntity.GoodsID,ParameterDirection.Input),
  1697. new OracleParameter(":GoodsCode",OracleDbType.NVarchar2,
  1698. SProductEntity.GoodsCode,ParameterDirection.Input),
  1699. new OracleParameter(":GoodsName",OracleDbType.NVarchar2,
  1700. SProductEntity.GoodsName,ParameterDirection.Input),
  1701. new OracleParameter(":GroutingDailyID",OracleDbType.Int32,
  1702. SProductEntity.GroutingDailyID,ParameterDirection.Input),
  1703. new OracleParameter(":GroutingDailyDetailID",OracleDbType.Int32,
  1704. SProductEntity.GroutingDailyDetailID,ParameterDirection.Input),
  1705. new OracleParameter(":GroutingDate",OracleDbType.Date,
  1706. Convert.ToDateTime(SProductEntity.GroutingDatePDA),ParameterDirection.Input),
  1707. new OracleParameter(":GroutingLineID",OracleDbType.Int32,
  1708. SProductEntity.GroutingLineID,ParameterDirection.Input),
  1709. new OracleParameter(":GroutingLineCode",OracleDbType.NVarchar2,
  1710. SProductEntity.GroutingLineCode,ParameterDirection.Input),
  1711. new OracleParameter(":GroutingLineName",OracleDbType.NVarchar2,
  1712. SProductEntity.GroutingLineName,ParameterDirection.Input),
  1713. new OracleParameter(":GMouldTypeID",OracleDbType.Int32,
  1714. SProductEntity.GMouldTypeID,ParameterDirection.Input),
  1715. new OracleParameter(":GroutingLineDetailID",OracleDbType.Int32,
  1716. SProductEntity.GroutingLineDetailID,ParameterDirection.Input),
  1717. new OracleParameter(":GroutingMouldCode",OracleDbType.NVarchar2,
  1718. SProductEntity.GroutingMouldCode,ParameterDirection.Input),
  1719. new OracleParameter(":MouldCode",OracleDbType.NVarchar2,
  1720. SProductEntity.MouldCode,ParameterDirection.Input),
  1721. new OracleParameter(":GoodsLevelID",OracleDbType.Int32,
  1722. SProductEntity.GoodsLevelID,ParameterDirection.Input),
  1723. new OracleParameter(":GoodsLevelTypeID",OracleDbType.Int32,
  1724. SProductEntity.GoodsLevelTypeID,ParameterDirection.Input),
  1725. new OracleParameter(":ResponType",OracleDbType.Int32,
  1726. Convert.ToInt32(SProductEntity.ResponType),ParameterDirection.Input),
  1727. new OracleParameter(":ScrapDate",OracleDbType.Date,
  1728. Convert.ToDateTime(SProductEntity.ScrapDatePDA),ParameterDirection.Input),
  1729. new OracleParameter(":Rreason",OracleDbType.NVarchar2,
  1730. SProductEntity.Rreason,ParameterDirection.Input),
  1731. new OracleParameter(":Remarks",OracleDbType.NVarchar2,
  1732. SProductEntity.Remarks,ParameterDirection.Input),
  1733. new OracleParameter(":AuditStatus",OracleDbType.Int32,
  1734. SProductEntity.AuditStatus,ParameterDirection.Input),
  1735. new OracleParameter(":AccountID",OracleDbType.Int32,
  1736. userInfo.AccountID,ParameterDirection.Input),
  1737. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  1738. userInfo.UserID,ParameterDirection.Input),
  1739. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  1740. userInfo.UserID,ParameterDirection.Input),
  1741. new OracleParameter(":GroutingUserID",OracleDbType.Int32,
  1742. SProductEntity.GroutingUserID,ParameterDirection.Input),
  1743. new OracleParameter(":GroutingUserCode",OracleDbType.NVarchar2,
  1744. SProductEntity.GroutingUserCode,ParameterDirection.Input),
  1745. new OracleParameter(":GroutingNum",OracleDbType.Decimal,
  1746. SProductEntity.GroutingNum,ParameterDirection.Input),
  1747. new OracleParameter(":IsPublicBody",OracleDbType.Int32,
  1748. SProductEntity.IsPublicBody,ParameterDirection.Input),
  1749. new OracleParameter(":IsReFire",OracleDbType.Int32,
  1750. SProductEntity.IsReFire,ParameterDirection.Input),
  1751. new OracleParameter(":ScrapFine",OracleDbType.Decimal,
  1752. SProductEntity.ScrapFine,ParameterDirection.Input),
  1753. new OracleParameter(":Auditor",OracleDbType.Int32,
  1754. userInfo.UserID,ParameterDirection.Input),
  1755. new OracleParameter(":AuditlDate",OracleDbType.Date,
  1756. result,ParameterDirection.Input),
  1757. new OracleParameter(":SpecialRepairflag",OracleDbType.Int32,
  1758. SProductEntity.SpecialRepairflag==null?0:SProductEntity.SpecialRepairflag,ParameterDirection.Input),//SpecialRepairflag
  1759. new OracleParameter(":Procedureid",OracleDbType.Int32,
  1760. completeProcdureID,ParameterDirection.Input),
  1761. new OracleParameter(":ProcedureName",OracleDbType.Varchar2,
  1762. completeProcdureName,ParameterDirection.Input),
  1763. new OracleParameter(":ProcedureCode",OracleDbType.Varchar2,
  1764. completeProcdureCode,ParameterDirection.Input),
  1765. new OracleParameter(":logoid",OracleDbType.Int32,
  1766. SProductEntity.LogoID==0?null:SProductEntity.LogoID,ParameterDirection.Input),
  1767. new OracleParameter(":ProductionDataID",OracleDbType.Int32,
  1768. ProductionDataID,ParameterDirection.Input),
  1769. };
  1770. ll = 6;
  1771. returnRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), Paras);
  1772. ll = 7;
  1773. //如果是直接审批通过 wangxin 2015-03-24
  1774. if (SProductEntity.AuditStatus == 1)
  1775. {
  1776. ll = 8;
  1777. int DeleteRows = 0;
  1778. string sqlInsert = @"insert into TP_PM_InProductionTrash
  1779. (
  1780. BarCode,
  1781. ProductionLineID,
  1782. ProductionLineCode,
  1783. ProductionLineName,
  1784. ProcedureModel,
  1785. ModelType,
  1786. DefectFlag,
  1787. ReworkProcedureID,
  1788. IsPublicBody,
  1789. IsReFire,
  1790. GoodsLevelID,
  1791. GoodsLevelTypeID,
  1792. GoodsID,
  1793. GoodsCode,
  1794. GoodsName,
  1795. UserID,
  1796. GroutingDailyID,
  1797. GroutingDailyDetailID,
  1798. GroutingDate,
  1799. GroutingLineID,
  1800. GroutingLineCode,
  1801. GroutingLineName,
  1802. GMouldTypeID,
  1803. CanManyTimes,
  1804. GroutingLineDetailID,
  1805. GroutingMouldCode,
  1806. MouldCode,
  1807. GroutingUserID,
  1808. GroutingUserCode,
  1809. GroutingNum,
  1810. Remarks,
  1811. KilnID,
  1812. KilnCode,
  1813. KilnName,
  1814. KilnCarID,
  1815. KilnCarCode,
  1816. KilnCarName,
  1817. KilnCarBatchNo,
  1818. KilnCarPosition,
  1819. AccountID,
  1820. ValueFlag,
  1821. CreateUserID,
  1822. UpdateUserID,
  1823. SpecialRepairflag,
  1824. FlowProcedureID,
  1825. FlowProcedureTime,
  1826. ProcedureID,
  1827. ProcedureTime,
  1828. ProductionDataID,
  1829. logoid, ISREWORKFLAG, SEMICHECKID
  1830. )
  1831. select
  1832. BarCode,
  1833. ProductionLineID,
  1834. ProductionLineCode,
  1835. ProductionLineName,
  1836. ProcedureModel,
  1837. ModelType,
  1838. DefectFlag,
  1839. ReworkProcedureID,
  1840. IsPublicBody,
  1841. IsReFire,
  1842. GoodsLevelID,
  1843. GoodsLevelTypeID,
  1844. GoodsID,
  1845. GoodsCode,
  1846. GoodsName,
  1847. UserID,
  1848. GroutingDailyID,
  1849. GroutingDailyDetailID,
  1850. GroutingDate,
  1851. GroutingLineID,
  1852. GroutingLineCode,
  1853. GroutingLineName,
  1854. GMouldTypeID,
  1855. CanManyTimes,
  1856. GroutingLineDetailID,
  1857. GroutingMouldCode,
  1858. MouldCode,
  1859. GroutingUserID,
  1860. GroutingUserCode,
  1861. GroutingNum,
  1862. Remarks,
  1863. KilnID,
  1864. KilnCode,
  1865. KilnName,
  1866. KilnCarID,
  1867. KilnCarCode,
  1868. KilnCarName,
  1869. KilnCarBatchNo,
  1870. KilnCarPosition,
  1871. AccountID,
  1872. ValueFlag,
  1873. :CreateUserID,
  1874. :UpdateUserID,
  1875. SpecialRepairflag,
  1876. FlowProcedureID,
  1877. FlowProcedureTime,
  1878. ProcedureID,
  1879. ProcedureTime,
  1880. ProductionDataID,
  1881. logoid, ISREWORKFLAG, SEMICHECKID
  1882. from TP_PM_InProduction
  1883. where barcode='" + SProductEntity.BarCode + "'";
  1884. OracleParameter[] Paras2 = new OracleParameter[] {
  1885. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  1886. userInfo.UserID,ParameterDirection.Input),
  1887. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  1888. userInfo.UserID,ParameterDirection.Input),
  1889. new OracleParameter(":GoodsLevelID",OracleDbType.Int32,
  1890. SProductEntity.GoodsLevelID,ParameterDirection.Input),
  1891. new OracleParameter(":GoodsLevelTypeID",OracleDbType.Int32,
  1892. SProductEntity.GoodsLevelTypeID,ParameterDirection.Input)
  1893. };
  1894. ll = 9;
  1895. DeleteRows = oracleTrConn.ExecuteNonQuery(sqlInsert, Paras2);
  1896. //20150714 modify wangx
  1897. ll = 10;
  1898. if (SProductEntity.ProcedureID != null)//在生产线上报废的,
  1899. {
  1900. sbSql.Clear();
  1901. sbSql.Append("update TP_PM_InProduction set inscrapflag='0' where BarCode='" + SProductEntity.BarCode + "'");
  1902. DeleteRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  1903. }
  1904. //20150714 modify wangx end
  1905. ll = 11;
  1906. sbSql.Clear();
  1907. sbSql.Append("Delete from TP_PM_InProduction where BarCode='" + SProductEntity.BarCode + "'");
  1908. DeleteRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  1909. //如果没有删除在产产品,那么要去删除成品表
  1910. if (DeleteRows == 0)
  1911. {
  1912. sbSql.Clear();
  1913. sbSql.Append("Update TP_PM_FinishedProduct set ValueFlag = 0 where BarCode='" + SProductEntity.BarCode + "'");
  1914. DeleteRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  1915. }
  1916. //并且要把该产品的生产数据的最终状态添加上
  1917. //sbSql.Clear();
  1918. //sbSql.Append("Update TP_PM_ProductionData set GoodsEnding=8 where BarCode='" + SProductEntity.BarCode + "'");
  1919. //UpdateRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  1920. }
  1921. else
  1922. {
  1923. ll = 12;
  1924. if (SProductEntity.ProcedureID != null)//在生产线上报废的,
  1925. {
  1926. sbSql.Clear();
  1927. if (SProductEntity.AuditStatus == 0) //待审核
  1928. {
  1929. sbSql.Append("update TP_PM_InProduction set inscrapflag='1' where BarCode='" + SProductEntity.BarCode + "'");
  1930. }
  1931. else
  1932. {
  1933. sbSql.Append("update TP_PM_InProduction set inscrapflag='0' where BarCode='" + SProductEntity.BarCode + "'");
  1934. }
  1935. oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  1936. }
  1937. }
  1938. ll = 13;
  1939. //判断一下责任类型,如果是责任工序的话,则添加责任工序信息
  1940. if (Convert.ToInt32(SProductEntity.ResponType) == 3)
  1941. {
  1942. //插入产品废弃责任工序
  1943. sbSql.Clear();
  1944. sbSql.Append("select SEQ_PM_ResponProcedure_ID.nextval from dual");
  1945. RProcedureEntity.ResponProcedureID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
  1946. sbSql.Clear();
  1947. sbSql.Append("Insert into TP_PM_ResponProcedure");
  1948. sbSql.Append("(ResponProcedureID,ScrapProductID,Barcode,ProductionDataID,ProductionLineID,");
  1949. sbSql.Append("ProductionLineCode,ProductionLineName,");
  1950. sbSql.Append("ProcedureID,ProcedureCode,ProcedureName,UserID,UserCode,UserName,Remarks,AccountID,");
  1951. sbSql.Append("ValueFlag,CreateTime,CreateUserID,UpdateTime,UpdateUserID,OPTimeStamp)");
  1952. sbSql.Append("Values(:ResponProcedureID,:ScrapProductID,:Barcode,:ProductionDataID,:ProductionLineID,");
  1953. sbSql.Append(":ProductionLineCode,:ProductionLineName,");
  1954. sbSql.Append(":ProcedureID,:ProcedureCode,:ProcedureName,:UserID,:UserCode,:UserName,:Remarks,");
  1955. sbSql.Append(":AccountID,1,sysdate,:CreateUserID,sysdate,:UpdateUserID,systimestamp)");
  1956. OracleParameter[] RPParas = new OracleParameter[]
  1957. {
  1958. new OracleParameter(":ResponProcedureID",OracleDbType.NVarchar2,
  1959. RProcedureEntity.ResponProcedureID,ParameterDirection.Input),
  1960. new OracleParameter(":ScrapProductID",OracleDbType.Int32,
  1961. id,ParameterDirection.Input),
  1962. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  1963. RProcedureEntity.BarCode,ParameterDirection.Input),
  1964. new OracleParameter(":ProductionDataID",OracleDbType.NVarchar2,
  1965. RProcedureEntity.ProductionDataID,ParameterDirection.Input),
  1966. new OracleParameter(":ProductionLineID",OracleDbType.NVarchar2,
  1967. RProcedureEntity.ProductionLineID,ParameterDirection.Input),
  1968. new OracleParameter(":ProductionLineCode",OracleDbType.NVarchar2,
  1969. RProcedureEntity.ProductionLineCode,ParameterDirection.Input),
  1970. new OracleParameter(":ProductionLineName",OracleDbType.NVarchar2,
  1971. RProcedureEntity.ProductionLineName,ParameterDirection.Input),
  1972. new OracleParameter(":ProcedureID",OracleDbType.NVarchar2,
  1973. RProcedureEntity.ProcedureID,ParameterDirection.Input),
  1974. new OracleParameter(":ProcedureCode",OracleDbType.NVarchar2,
  1975. RProcedureEntity.ProcedureCode,ParameterDirection.Input),
  1976. new OracleParameter(":ProcedureName",OracleDbType.NVarchar2,
  1977. RProcedureEntity.ProcedureName,ParameterDirection.Input),
  1978. new OracleParameter(":UserID",OracleDbType.NVarchar2,
  1979. RProcedureEntity.UserID,ParameterDirection.Input),
  1980. new OracleParameter(":UserCode",OracleDbType.NVarchar2,
  1981. RProcedureEntity.UserCode,ParameterDirection.Input),
  1982. new OracleParameter(":UserName",OracleDbType.NVarchar2,
  1983. RProcedureEntity.UserName,ParameterDirection.Input),
  1984. new OracleParameter(":Remarks",OracleDbType.NVarchar2,
  1985. RProcedureEntity.Remarks,ParameterDirection.Input),
  1986. new OracleParameter(":AccountID",OracleDbType.NVarchar2,
  1987. userInfo.AccountID,ParameterDirection.Input),
  1988. new OracleParameter(":CreateUserID",OracleDbType.NVarchar2,
  1989. userInfo.UserID,ParameterDirection.Input),
  1990. new OracleParameter(":UpdateUserID",OracleDbType.NVarchar2,
  1991. userInfo.UserID,ParameterDirection.Input)
  1992. };
  1993. ll = 14;
  1994. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), RPParas);
  1995. #region 更新废弃责任工序的生产工序ID
  1996. string sql = "UPDATE TP_PM_SCRAPPRODUCT SP\n" +
  1997. " SET (SP.RESPONPROCEDUREPROCEDUREID) =\n" +
  1998. " (SELECT RP.PROCEDUREID\n" +
  1999. " FROM TP_PM_RESPONPROCEDURE RP\n" +
  2000. " WHERE RP.SCRAPPRODUCTID = SP.SCRAPPRODUCTID)\n" +
  2001. " WHERE SP.SCRAPTYPE IN (0, 2, 3)\n" +
  2002. " AND SP.SCRAPPRODUCTID = :SCRAPPRODUCTID";
  2003. RPParas = new OracleParameter[]
  2004. {
  2005. new OracleParameter(":SCRAPPRODUCTID",OracleDbType.Int32,id,ParameterDirection.Input),
  2006. };
  2007. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sql, RPParas);
  2008. #endregion
  2009. }
  2010. ll = 15;
  2011. if (Convert.ToInt32(SProductEntity.ResponType) != 1)
  2012. {
  2013. //计算每个责任人的报废扣罚
  2014. decimal scrapfine = 0;
  2015. if (SResponsibleList.Length > 0)
  2016. {
  2017. scrapfine = SProductEntity.ScrapFine / SResponsibleList.Length;
  2018. }
  2019. //循环插入产品废弃责任者
  2020. OracleParameter[] SPParas;
  2021. foreach (ScrapResponsibleEntity spFor in SResponsibleList)
  2022. {
  2023. sbSql.Clear();
  2024. sbSql.Append("select SEQ_PM_ScrapResponsible_ID.nextval from dual");
  2025. spFor.ResponsibleID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
  2026. int? ResponProcedureID = null;
  2027. if (RProcedureEntity != null)
  2028. {
  2029. ResponProcedureID = RProcedureEntity.ResponProcedureID;
  2030. }
  2031. sbSql.Clear();
  2032. sbSql.Append("Insert into TP_PM_ScrapResponsible");
  2033. sbSql.Append("(ResponsibleID,ScrapProductID,ResponType,ResponProcedureID,Barcode,StaffID,UserID,UserCode,UJobsID,SJobsID,");
  2034. sbSql.Append("StaffStatus,AccountID,CreateTime,CreateUserID,");
  2035. sbSql.Append("UpdateTime,UpdateUserID,OPTimeStamp,Scrapfine)");
  2036. sbSql.Append("values(:ResponsibleID,:ScrapProductID,:ResponType,:ResponProcedureID,:Barcode,:StaffID,:UserID,:UserCode,:UJobsID,:SJobsID,");
  2037. sbSql.Append(":StaffStatus,:AccountID,sysdate,:CreateUserID,");
  2038. sbSql.Append("sysdate,:UpdateUserID,systimestamp,:Scrapfine)");
  2039. SPParas = new OracleParameter[]
  2040. {
  2041. new OracleParameter(":ResponsibleID",OracleDbType.Int32,
  2042. spFor.ResponsibleID,ParameterDirection.Input),
  2043. new OracleParameter(":ScrapProductID",OracleDbType.Int32,
  2044. id,ParameterDirection.Input),
  2045. new OracleParameter(":ResponType",OracleDbType.Int32,
  2046. Convert.ToInt32(SProductEntity.ResponType),ParameterDirection.Input),
  2047. new OracleParameter(":ResponProcedureID",OracleDbType.NVarchar2,
  2048. ResponProcedureID,ParameterDirection.Input),
  2049. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  2050. spFor.BarCode,ParameterDirection.Input),
  2051. new OracleParameter(":StaffID",OracleDbType.Int32,
  2052. spFor.StaffID,ParameterDirection.Input),
  2053. new OracleParameter(":UserID",OracleDbType.Int32,
  2054. spFor.UserID,ParameterDirection.Input),
  2055. new OracleParameter(":UserCode",OracleDbType.NVarchar2,
  2056. spFor.UserCode,ParameterDirection.Input),
  2057. new OracleParameter(":UJobsID",OracleDbType.Int32,
  2058. spFor.UJobsID,ParameterDirection.Input),
  2059. new OracleParameter(":SJobsID",OracleDbType.Int32,
  2060. spFor.SJobsID,ParameterDirection.Input),
  2061. new OracleParameter(":StaffStatus",OracleDbType.Int32,
  2062. spFor.StaffStatus,ParameterDirection.Input),
  2063. new OracleParameter(":AccountID",OracleDbType.Int32,
  2064. userInfo.AccountID,ParameterDirection.Input),
  2065. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  2066. userInfo.UserID,ParameterDirection.Input),
  2067. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  2068. userInfo.UserID,ParameterDirection.Input),
  2069. new OracleParameter(":Scrapfine",OracleDbType.Decimal,
  2070. scrapfine,ParameterDirection.Input)
  2071. };
  2072. sresponsibleReturnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), SPParas);
  2073. }
  2074. #region 更新废弃责任工序的责任者ID和编码
  2075. string sql = "UPDATE TP_PM_SCRAPPRODUCT SP\n" +
  2076. " SET (SP.RESPONSIBLEUSERID, SP.RESPONSIBLEUSERCODE) =\n" +
  2077. " (SELECT SR.USERID, SR.USERCODE\n" +
  2078. " FROM TP_PM_SCRAPRESPONSIBLE SR\n" +
  2079. " WHERE SR.SCRAPPRODUCTID = SP.SCRAPPRODUCTID\n" +
  2080. " GROUP BY SR.USERID, SR.USERCODE)\n" +
  2081. " WHERE SP.SCRAPTYPE IN (0, 2, 3)\n" +
  2082. " AND SP.SCRAPPRODUCTID = :SCRAPPRODUCTID";
  2083. SPParas = new OracleParameter[]
  2084. {
  2085. new OracleParameter(":SCRAPPRODUCTID",OracleDbType.Int32,id,ParameterDirection.Input),
  2086. };
  2087. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sql, SPParas);
  2088. #endregion
  2089. }
  2090. ll = 16;
  2091. if (returnRows == 0)
  2092. {
  2093. oracleTrConn.Rollback();
  2094. oracleTrConn.Disconnect();
  2095. }
  2096. else
  2097. {
  2098. oracleTrConn.Commit();
  2099. oracleTrConn.Disconnect();
  2100. }
  2101. }
  2102. catch (Exception ex)
  2103. {
  2104. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  2105. {
  2106. oracleTrConn.Rollback();
  2107. oracleTrConn.Disconnect();
  2108. }
  2109. throw new Exception(ll.ToString(), ex);
  2110. }
  2111. finally
  2112. {
  2113. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  2114. {
  2115. oracleTrConn.Disconnect();
  2116. }
  2117. }
  2118. return returnRows;
  2119. }
  2120. /// <summary>
  2121. /// 获取登陆帐户有无报损权限
  2122. /// </summary>
  2123. /// <param name="usercode">工号编码</param>
  2124. /// <returns></returns>
  2125. public static int GetScrapFuntion(string usercode, SUserInfo userInfo)
  2126. {
  2127. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2128. try
  2129. {
  2130. con.Open();
  2131. string strSql = "";
  2132. if (usercode.ToUpper() == "SYSTEM")
  2133. {
  2134. strSql = @"SELECT Functionlevel,
  2135. FunctionCode,
  2136. FunctionName,
  2137. FullName,
  2138. FunctionFlag,
  2139. FunctionButtonFlag,
  2140. FormName,
  2141. ButtonName
  2142. FROM TP_SYS_Function
  2143. WHERE ValueFlag = 1
  2144. AND FunctionCode = '01'
  2145. OR FunctionCode = '0101'
  2146. OR FunctionCode = '010101'";
  2147. }
  2148. else if (usercode.ToUpper() == "ADMIN")
  2149. {
  2150. strSql = @" SELECT Functionlevel,
  2151. FunctionCode,
  2152. FunctionName,
  2153. FullName,
  2154. FunctionFlag,
  2155. FunctionButtonFlag,
  2156. FormName,
  2157. ButtonName
  2158. FROM TP_SYS_Function WHERE ValueFlag = 1
  2159. AND FunctionCode LIKE '01%'
  2160. AND FunctionCode <> '0101'
  2161. AND FunctionCode <> '010101'";
  2162. }
  2163. else
  2164. {
  2165. strSql = @"SELECT F.Functionlevel,
  2166. F.FunctionCode,
  2167. F.FunctionName,
  2168. F.FullName,
  2169. F.FunctionFlag,
  2170. F.FunctionButtonFlag,
  2171. F.FormName,
  2172. F.ButtonName
  2173. FROM TP_MST_UserRight R LEFT OUTER JOIN
  2174. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  2175. WHERE F.ValueFlag = 1
  2176. AND F.FunctionCode NOT LIKE '0101%'
  2177. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '060401') = 1";
  2178. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  2179. }
  2180. DataSet ds = con.GetSqlResultToDs(strSql);
  2181. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2182. {
  2183. return 1;
  2184. }
  2185. return 0;
  2186. }
  2187. catch (Exception ex)
  2188. {
  2189. throw ex;
  2190. }
  2191. finally
  2192. {
  2193. if (con.ConnState == ConnectionState.Open)
  2194. {
  2195. con.Close();
  2196. }
  2197. }
  2198. }
  2199. /// <summary>
  2200. /// 获取是否存在报损未审核产品
  2201. /// </summary>
  2202. /// <param name="BarCode">产品条码</param>
  2203. /// <returns>int</returns>
  2204. public static int GetScrapProductAuditStatus(string BarCode)
  2205. {
  2206. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2207. try
  2208. {
  2209. con.Open();
  2210. // wangx modify 2015/07/14
  2211. string strSql = "select inscrapflag from TP_PM_INPRODUCTION where barcode='" + BarCode + "'";
  2212. DataSet dsReturn = con.GetSqlResultToDs(strSql);
  2213. if (dsReturn != null && dsReturn.Tables[0].Rows.Count > 0)
  2214. {
  2215. if (dsReturn.Tables[0].Rows[0]["inscrapflag"].ToString() == "0")
  2216. {
  2217. return 0;
  2218. }
  2219. else
  2220. {
  2221. strSql = @"Select ScrapProductID from TP_PM_ScrapProduct where ValueFlag=1
  2222. and BarCode='" + BarCode + "' and (AuditStatus=0 or AuditStatus=2) order by ScrapProductid desc "; //AuditStatus=0 or
  2223. dsReturn = con.GetSqlResultToDs(strSql);
  2224. if (dsReturn.Tables[0].Rows.Count == 0)
  2225. {
  2226. return 0;
  2227. }
  2228. else
  2229. {
  2230. return Convert.ToInt32(dsReturn.Tables[0].Rows[0]["ScrapProductID"]);
  2231. }
  2232. }
  2233. }
  2234. else
  2235. {
  2236. return 0;
  2237. }
  2238. // wangx modify 2015/07/14 end
  2239. //string strSql = @"Select * from TP_PM_ScrapProduct where ValueFlag=1
  2240. // strSql = @"Select ScrapProductID from TP_PM_ScrapProduct where ValueFlag=1
  2241. // and BarCode='" + BarCode + "' and (AuditStatus=0 or AuditStatus=2) order by ScrapProductid desc "; //AuditStatus=0 or
  2242. // dsReturn = con.GetSqlResultToDs(strSql);
  2243. // if (dsReturn.Tables[0].Rows.Count == 0)
  2244. // {
  2245. // return 0;
  2246. // }
  2247. // else
  2248. // {
  2249. // return Convert.ToInt32(dsReturn.Tables[0].Rows[0]["ScrapProductID"]);
  2250. // }
  2251. }
  2252. catch (Exception ex)
  2253. {
  2254. throw ex;
  2255. }
  2256. finally
  2257. {
  2258. if (con.ConnState == ConnectionState.Open)
  2259. {
  2260. con.Close();
  2261. }
  2262. }
  2263. }
  2264. /// <summary>
  2265. /// 获取产品报损明细
  2266. /// </summary>
  2267. /// <param name="usercode">工号编码</param>
  2268. /// <returns></returns>
  2269. public static DataSet GetScrapProductInfo(string usercode, SUserInfo userInfo)
  2270. {
  2271. return null;
  2272. }
  2273. #endregion
  2274. /// <summary>
  2275. /// 修改废弃产品记录
  2276. /// </summary>
  2277. /// <param name="UpdateSProductEntity">修改的废弃产品实体</param>
  2278. /// <param name="UpdateRProcedureEntity">修改的废弃责任工序实体</param>
  2279. /// <param name="UpdateSResponsibleList">修改的废弃责任人实体</param>
  2280. /// <param name="YSResponsibleList">修改前的废弃责任人实体</param>
  2281. /// <param name="userInfo">用户基本信息</param>
  2282. /// <returns>int结果返回值</returns>
  2283. /// <remarks>
  2284. /// 庄天威 2014.09.24 新建
  2285. /// </remarks>
  2286. public static int UpdateScrapProduct(ScrapProductEntity UpdateSProductEntity,
  2287. ResponProcedureEntity UpdateRProcedureEntity,
  2288. ScrapResponsibleEntity[] UpdateSResponsibleList, ScrapResponsibleEntity[] YSResponsibleList,
  2289. SUserInfo userInfo)
  2290. {
  2291. int returnRows = 0;
  2292. int sresponsibleReturnRows = 0;
  2293. int rprocedureReturn = 0;
  2294. int deleteRprocedureReturn = 0;
  2295. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2296. try
  2297. {
  2298. oracleTrConn.Connect();
  2299. //首先修改废弃产品主体信息
  2300. StringBuilder sbSql = new StringBuilder();
  2301. sbSql.Append("update TP_PM_ScrapProduct");
  2302. sbSql.Append(" set ScrapDate=to_date(:ScrapDate,'yyyy-mm-dd hh24:mi:ss'),");
  2303. sbSql.Append(" Rreason=:Rreason,");
  2304. sbSql.Append(" Remarks=:Remarks,");
  2305. sbSql.Append(" ResponType=:ResponType,");
  2306. sbSql.Append(" UpdateUserID=:UpdateUserID,");
  2307. sbSql.Append(" ScrapFine=:ScrapFine");
  2308. if (UpdateSProductEntity.AuditStatus != null)
  2309. {
  2310. sbSql.Append(" ,AuditStatus=" + UpdateSProductEntity.AuditStatus);
  2311. }
  2312. if (UpdateSProductEntity.AuditStatus == 0) //待审批
  2313. {
  2314. sbSql.Append(" ,AuditDate=null,Auditor=null");
  2315. }
  2316. else
  2317. {
  2318. //2021年12月6日10:58:08 by fy modify 取系统时间
  2319. //object result = DBNull.Value;
  2320. //string strSql1 = "select FUN_CMN_GetAccountDate(:accountId) From DUAL";
  2321. //Oracle.ManagedDataAccess.Client.OracleParameter[] paras1 = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  2322. //{
  2323. // new Oracle.ManagedDataAccess.Client.OracleParameter(":accountId",userInfo.AccountID)
  2324. //};
  2325. //object strResult = oracleTrConn.GetSqlResultToObj(strSql1, paras1);
  2326. //if (strResult == null || strResult == DBNull.Value)
  2327. //{
  2328. // // 服务器时间错误
  2329. // throw new Exception("SystemDateTimeError");
  2330. //}
  2331. //result = Convert.ToDateTime(strResult);
  2332. //sbSql.Append(string.Format(" ,AuditDate=to_date('{0}','yyyy-mm-dd hh24:mi:ss'),Auditor={1}", result.ToString().Replace("/", "-"), userInfo.UserID));
  2333. sbSql.Append(string.Format(" ,AuditDate=sysdate,Auditor={0},AccountDate=trunc(sysdate)", userInfo.UserID));
  2334. }
  2335. sbSql.Append(" where ScrapProductID=:ScrapProductID");
  2336. OracleParameter[] Paras = new OracleParameter[] {
  2337. new OracleParameter(":ScrapDate",OracleDbType.NVarchar2,
  2338. UpdateSProductEntity.ScrapDatePDA.ToString(),ParameterDirection.Input),
  2339. new OracleParameter(":Rreason",OracleDbType.NVarchar2,
  2340. UpdateSProductEntity.Rreason,ParameterDirection.Input),
  2341. new OracleParameter(":Remarks",OracleDbType.NVarchar2,
  2342. UpdateSProductEntity.Remarks,ParameterDirection.Input),
  2343. new OracleParameter(":ResponType",OracleDbType.Int32,
  2344. UpdateSProductEntity.ResponType,ParameterDirection.Input),
  2345. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  2346. userInfo.UserID,ParameterDirection.Input),
  2347. new OracleParameter(":ScrapProductID",OracleDbType.NVarchar2,
  2348. UpdateSProductEntity.ScrapProductID,ParameterDirection.Input),
  2349. new OracleParameter(":ScrapFine",OracleDbType.Decimal,
  2350. UpdateSProductEntity.ScrapFine,ParameterDirection.Input)
  2351. };
  2352. returnRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), Paras);
  2353. //如果是直接审批通过 wangxin 2015-03-24
  2354. if (UpdateSProductEntity.AuditStatus == 1)
  2355. {
  2356. int DeleteRows = 0;
  2357. string sqlInsert = @"insert into TP_PM_InProductionTrash
  2358. (
  2359. BarCode,
  2360. ProductionLineID,
  2361. ProductionLineCode,
  2362. ProductionLineName,
  2363. ProcedureModel,
  2364. ModelType,
  2365. DefectFlag,
  2366. ReworkProcedureID,
  2367. IsPublicBody,
  2368. IsReFire,
  2369. GoodsLevelID,
  2370. GoodsLevelTypeID,
  2371. GoodsID,
  2372. GoodsCode,
  2373. GoodsName,
  2374. UserID,
  2375. GroutingDailyID,
  2376. GroutingDailyDetailID,
  2377. GroutingDate,
  2378. GroutingLineID,
  2379. GroutingLineCode,
  2380. GroutingLineName,
  2381. GMouldTypeID,
  2382. CanManyTimes,
  2383. GroutingLineDetailID,
  2384. GroutingMouldCode,
  2385. MouldCode,
  2386. GroutingUserID,
  2387. GroutingUserCode,
  2388. GroutingNum,
  2389. Remarks,
  2390. KilnID,
  2391. KilnCode,
  2392. KilnName,
  2393. KilnCarID,
  2394. KilnCarCode,
  2395. KilnCarName,
  2396. KilnCarBatchNo,
  2397. KilnCarPosition,
  2398. AccountID,
  2399. ValueFlag,
  2400. CreateUserID,
  2401. UpdateUserID,
  2402. SpecialRepairflag,
  2403. FlowProcedureID,
  2404. FlowProcedureTime,
  2405. ProcedureID,
  2406. ProcedureTime,
  2407. ProductionDataID,
  2408. logoid, ISREWORKFLAG, SEMICHECKID
  2409. )
  2410. select
  2411. BarCode,
  2412. ProductionLineID,
  2413. ProductionLineCode,
  2414. ProductionLineName,
  2415. ProcedureModel,
  2416. ModelType,
  2417. DefectFlag,
  2418. ReworkProcedureID,
  2419. IsPublicBody,
  2420. IsReFire,
  2421. GoodsLevelID,
  2422. GoodsLevelTypeID,
  2423. GoodsID,
  2424. GoodsCode,
  2425. GoodsName,
  2426. UserID,
  2427. GroutingDailyID,
  2428. GroutingDailyDetailID,
  2429. GroutingDate,
  2430. GroutingLineID,
  2431. GroutingLineCode,
  2432. GroutingLineName,
  2433. GMouldTypeID,
  2434. CanManyTimes,
  2435. GroutingLineDetailID,
  2436. GroutingMouldCode,
  2437. MouldCode,
  2438. GroutingUserID,
  2439. GroutingUserCode,
  2440. GroutingNum,
  2441. Remarks,
  2442. KilnID,
  2443. KilnCode,
  2444. KilnName,
  2445. KilnCarID,
  2446. KilnCarCode,
  2447. KilnCarName,
  2448. KilnCarBatchNo,
  2449. KilnCarPosition,
  2450. AccountID,
  2451. ValueFlag,
  2452. :CreateUserID,
  2453. :UpdateUserID,
  2454. SpecialRepairflag,
  2455. FlowProcedureID,
  2456. FlowProcedureTime,
  2457. ProcedureID,
  2458. ProcedureTime,
  2459. ProductionDataID,
  2460. logoid, ISREWORKFLAG, SEMICHECKID
  2461. from TP_PM_InProduction
  2462. where barcode='" + UpdateSProductEntity.BarCode + "'";
  2463. OracleParameter[] Paras2 = new OracleParameter[] {
  2464. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  2465. userInfo.UserID,ParameterDirection.Input),
  2466. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  2467. userInfo.UserID,ParameterDirection.Input),
  2468. new OracleParameter(":GoodsLevelID",OracleDbType.Int32,
  2469. UpdateSProductEntity.GoodsLevelID,ParameterDirection.Input),
  2470. new OracleParameter(":GoodsLevelTypeID",OracleDbType.Int32,
  2471. UpdateSProductEntity.GoodsLevelTypeID,ParameterDirection.Input)
  2472. };
  2473. DeleteRows = oracleTrConn.ExecuteNonQuery(sqlInsert, Paras2);
  2474. //20150714 modify wangx
  2475. if (UpdateSProductEntity.ProcedureID != null)//在生产线上报废的,
  2476. {
  2477. sbSql.Clear();
  2478. sbSql.Append("update TP_PM_InProduction set inscrapflag='0' where BarCode='" + UpdateSProductEntity.BarCode + "'");
  2479. DeleteRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  2480. }
  2481. //20150714 modify wangx end
  2482. sbSql.Clear();
  2483. sbSql.Append("Delete from TP_PM_InProduction where BarCode='" + UpdateSProductEntity.BarCode + "'");
  2484. DeleteRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  2485. //如果没有删除在产产品,那么要去删除成品表
  2486. if (DeleteRows == 0)
  2487. {
  2488. sbSql.Clear();
  2489. sbSql.Append("Update TP_PM_FinishedProduct set ValueFlag = 0 where BarCode='" + UpdateSProductEntity.BarCode + "'");
  2490. DeleteRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  2491. }
  2492. //并且要把该产品的生产数据的最终状态添加上
  2493. //sbSql.Clear();
  2494. //sbSql.Append("Update TP_PM_ProductionData set GoodsEnding=8 where BarCode='" + UpdateSProductEntity.BarCode + "'");
  2495. //UpdateRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  2496. }
  2497. else
  2498. {
  2499. //if (UpdateSProductEntity.ProcedureID != null)//在生产线上报废的,
  2500. //{
  2501. sbSql.Clear();
  2502. if (UpdateSProductEntity.AuditStatus == 0) //待审核
  2503. {
  2504. sbSql.Append("update TP_PM_InProduction set inscrapflag='1' where BarCode='" + UpdateSProductEntity.BarCode + "'");
  2505. }
  2506. else
  2507. {
  2508. sbSql.Append("update TP_PM_InProduction set inscrapflag='0' where BarCode='" + UpdateSProductEntity.BarCode + "'");
  2509. }
  2510. oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  2511. //}
  2512. }
  2513. //无论如何,要把原始的责任者数据删除
  2514. if (YSResponsibleList != null)
  2515. {
  2516. foreach (ScrapResponsibleEntity spFor in YSResponsibleList)
  2517. {
  2518. sbSql.Clear();
  2519. sbSql.Append("delete from TP_PM_ScrapResponsible");
  2520. sbSql.Append(" where ResponsibleID=:ResponsibleID ");
  2521. OracleParameter[] SPParas = new OracleParameter[] {
  2522. new OracleParameter(":ResponsibleID",OracleDbType.Int32,
  2523. spFor.ResponsibleID,ParameterDirection.Input)
  2524. };
  2525. deleteRprocedureReturn += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), SPParas);
  2526. }
  2527. }
  2528. //判断一下责任类型,如果有责任工序的话,则修改责任工序信息
  2529. if (Convert.ToInt32(UpdateSProductEntity.ResponType) == 3)
  2530. {
  2531. if (UpdateRProcedureEntity != null)
  2532. {
  2533. if (UpdateRProcedureEntity.ResponProcedureID != null)
  2534. {
  2535. sbSql.Clear();
  2536. sbSql.Append("update TP_PM_ResponProcedure");
  2537. sbSql.Append(" set ProcedureID=:ProcedureID,");
  2538. sbSql.Append(" ProcedureCode=:ProcedureCode,");
  2539. sbSql.Append(" ProcedureName=:ProcedureName,");
  2540. sbSql.Append(" UserID=:UserID,");
  2541. sbSql.Append(" UserCode=:UserCode,");
  2542. sbSql.Append(" UserName=:UserName,");
  2543. sbSql.Append(" UpdateUserID=:UpdateUserID");
  2544. sbSql.Append(" where ResponProcedureID=:ResponProcedureID");
  2545. OracleParameter[] RPParas = new OracleParameter[] {
  2546. new OracleParameter(":ProcedureID",OracleDbType.NVarchar2,
  2547. UpdateRProcedureEntity.ProcedureID,ParameterDirection.Input),
  2548. new OracleParameter(":ProcedureCode",OracleDbType.NVarchar2,
  2549. UpdateRProcedureEntity.ProcedureCode,ParameterDirection.Input),
  2550. new OracleParameter(":ProcedureName",OracleDbType.NVarchar2,
  2551. UpdateRProcedureEntity.ProcedureName,ParameterDirection.Input),
  2552. new OracleParameter(":UserID",OracleDbType.NVarchar2,
  2553. UpdateRProcedureEntity.UserID,ParameterDirection.Input),
  2554. new OracleParameter(":UserCode",OracleDbType.NVarchar2,
  2555. UpdateRProcedureEntity.UserCode,ParameterDirection.Input),
  2556. new OracleParameter(":UserName",OracleDbType.NVarchar2,
  2557. UpdateRProcedureEntity.UserName,ParameterDirection.Input),
  2558. new OracleParameter(":UpdateUserID",OracleDbType.NVarchar2,
  2559. userInfo.UserID,ParameterDirection.Input),
  2560. new OracleParameter(":ResponProcedureID",OracleDbType.Int32,
  2561. UpdateRProcedureEntity.ResponProcedureID,ParameterDirection.Input)
  2562. };
  2563. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), RPParas);
  2564. }
  2565. else
  2566. {
  2567. //插入产品废弃责任工序
  2568. sbSql.Clear();
  2569. sbSql.Append("select SEQ_PM_ResponProcedure_ID.nextval from dual");
  2570. UpdateRProcedureEntity.ResponProcedureID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
  2571. sbSql.Clear();
  2572. sbSql.Append("Insert into TP_PM_ResponProcedure");
  2573. sbSql.Append("(ResponProcedureID,ScrapProductID,Barcode,ProductionDataID,ProductionLineID,");
  2574. sbSql.Append("ProductionLineCode,ProductionLineName,");
  2575. sbSql.Append("ProcedureID,ProcedureCode,ProcedureName,UserID,UserCode,UserName,Remarks,AccountID,");
  2576. sbSql.Append("ValueFlag,CreateTime,CreateUserID,UpdateTime,UpdateUserID,OPTimeStamp)");
  2577. sbSql.Append("Values(:ResponProcedureID,:ScrapProductID,:Barcode,:ProductionDataID,:ProductionLineID,");
  2578. sbSql.Append(":ProductionLineCode,:ProductionLineName,");
  2579. sbSql.Append(":ProcedureID,:ProcedureCode,:ProcedureName,:UserID,:UserCode,:UserName,:Remarks,");
  2580. sbSql.Append(":AccountID,1,sysdate,:CreateUserID,sysdate,:UpdateUserID,systimestamp)");
  2581. OracleParameter[] RPParas = new OracleParameter[] {
  2582. new OracleParameter(":ResponProcedureID",OracleDbType.NVarchar2,
  2583. UpdateRProcedureEntity.ResponProcedureID,ParameterDirection.Input),
  2584. new OracleParameter(":ScrapProductID",OracleDbType.Int32,
  2585. UpdateSProductEntity.ScrapProductID,ParameterDirection.Input),
  2586. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  2587. UpdateRProcedureEntity.BarCode,ParameterDirection.Input),
  2588. new OracleParameter(":ProductionDataID",OracleDbType.NVarchar2,
  2589. UpdateRProcedureEntity.ProductionDataID,ParameterDirection.Input),
  2590. new OracleParameter(":ProductionLineID",OracleDbType.NVarchar2,
  2591. UpdateRProcedureEntity.ProductionLineID,ParameterDirection.Input),
  2592. new OracleParameter(":ProductionLineCode",OracleDbType.NVarchar2,
  2593. UpdateRProcedureEntity.ProductionLineCode,ParameterDirection.Input),
  2594. new OracleParameter(":ProductionLineName",OracleDbType.NVarchar2,
  2595. UpdateRProcedureEntity.ProductionLineName,ParameterDirection.Input),
  2596. new OracleParameter(":ProcedureID",OracleDbType.NVarchar2,
  2597. UpdateRProcedureEntity.ProcedureID,ParameterDirection.Input),
  2598. new OracleParameter(":ProcedureCode",OracleDbType.NVarchar2,
  2599. UpdateRProcedureEntity.ProcedureCode,ParameterDirection.Input),
  2600. new OracleParameter(":ProcedureName",OracleDbType.NVarchar2,
  2601. UpdateRProcedureEntity.ProcedureName,ParameterDirection.Input),
  2602. new OracleParameter(":UserID",OracleDbType.NVarchar2,
  2603. UpdateRProcedureEntity.UserID,ParameterDirection.Input),
  2604. new OracleParameter(":UserCode",OracleDbType.NVarchar2,
  2605. UpdateRProcedureEntity.UserCode,ParameterDirection.Input),
  2606. new OracleParameter(":UserName",OracleDbType.NVarchar2,
  2607. UpdateRProcedureEntity.UserName,ParameterDirection.Input),
  2608. new OracleParameter(":Remarks",OracleDbType.NVarchar2,
  2609. UpdateRProcedureEntity.Remarks,ParameterDirection.Input),
  2610. new OracleParameter(":AccountID",OracleDbType.NVarchar2,
  2611. userInfo.AccountID,ParameterDirection.Input),
  2612. new OracleParameter(":CreateUserID",OracleDbType.NVarchar2,
  2613. userInfo.UserID,ParameterDirection.Input),
  2614. new OracleParameter(":UpdateUserID",OracleDbType.NVarchar2,
  2615. userInfo.UserID,ParameterDirection.Input)
  2616. };
  2617. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), RPParas);
  2618. }
  2619. }
  2620. }
  2621. else //责任类型改为不存在责任工序了,要把原来的删除
  2622. {
  2623. if (UpdateRProcedureEntity != null) //本来就没有的话就不用删了
  2624. {
  2625. if (UpdateRProcedureEntity.ValueFlag == 0) //直接删除即可
  2626. {
  2627. sbSql.Clear();
  2628. sbSql.Append("Delete from TP_PM_ResponProcedure");
  2629. sbSql.Append(" where ResponProcedureID=:ResponProcedureID");
  2630. OracleParameter[] RPParas = new OracleParameter[] {
  2631. new OracleParameter(":ResponProcedureID",OracleDbType.Int32,
  2632. UpdateRProcedureEntity.ResponProcedureID,ParameterDirection.Input)
  2633. };
  2634. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), RPParas);
  2635. }
  2636. }
  2637. }
  2638. //如果存在修改的产品废弃责任者
  2639. if (Convert.ToInt32(UpdateSProductEntity.ResponType) != 1)
  2640. {
  2641. //计算每个责任人的报废扣罚
  2642. decimal scrapfine = 0;
  2643. if (UpdateSResponsibleList.Length > 0)
  2644. {
  2645. scrapfine = UpdateSProductEntity.ScrapFine / UpdateSResponsibleList.Length;
  2646. }
  2647. //循环插入产品废弃责任者
  2648. foreach (ScrapResponsibleEntity spFor in UpdateSResponsibleList)
  2649. {
  2650. sbSql.Clear();
  2651. sbSql.Append("select SEQ_PM_ScrapResponsible_ID.nextval from dual");
  2652. spFor.ResponsibleID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
  2653. int? ResponProcedureID = null;
  2654. if (UpdateRProcedureEntity != null)
  2655. {
  2656. if (UpdateRProcedureEntity.ValueFlag != 0)
  2657. {
  2658. ResponProcedureID = UpdateRProcedureEntity.ResponProcedureID;
  2659. }
  2660. }
  2661. sbSql.Clear();
  2662. sbSql.Append("Insert into TP_PM_ScrapResponsible");
  2663. sbSql.Append("(ResponsibleID,ResponType,ResponProcedureID,Barcode,ScrapProductID,StaffID,UserID,UserCode,UJobsID,SJobsID,");
  2664. sbSql.Append("StaffStatus,AccountID,CreateTime,CreateUserID,");
  2665. sbSql.Append("UpdateTime,UpdateUserID,OPTimeStamp,Scrapfine)");
  2666. sbSql.Append("values(:ResponsibleID,:ResponType,:ResponProcedureID,:Barcode,:ScrapProductID,:StaffID,:UserID,:UserCode,:UJobsID,:SJobsID,");
  2667. sbSql.Append(":StaffStatus,:AccountID,sysdate,:CreateUserID,");
  2668. sbSql.Append("sysdate,:UpdateUserID,systimestamp,:Scrapfine)");
  2669. OracleParameter[] SPParas = new OracleParameter[] {
  2670. new OracleParameter(":ResponsibleID",OracleDbType.Int32,
  2671. spFor.ResponsibleID,ParameterDirection.Input),
  2672. new OracleParameter(":ResponType",OracleDbType.Int32,
  2673. Convert.ToInt32(UpdateSProductEntity.ResponType),ParameterDirection.Input),
  2674. new OracleParameter(":ResponProcedureID",OracleDbType.NVarchar2,
  2675. ResponProcedureID,ParameterDirection.Input),
  2676. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  2677. spFor.BarCode,ParameterDirection.Input),
  2678. new OracleParameter(":ScrapProductID",OracleDbType.Int32,
  2679. UpdateSProductEntity.ScrapProductID,ParameterDirection.Input),
  2680. new OracleParameter(":StaffID",OracleDbType.Int32,
  2681. spFor.StaffID,ParameterDirection.Input),
  2682. new OracleParameter(":UserID",OracleDbType.Int32,
  2683. spFor.UserID,ParameterDirection.Input),
  2684. new OracleParameter(":UserCode",OracleDbType.NVarchar2,
  2685. spFor.UserCode,ParameterDirection.Input),
  2686. new OracleParameter(":UJobsID",OracleDbType.Int32,
  2687. spFor.UJobsID,ParameterDirection.Input),
  2688. new OracleParameter(":SJobsID",OracleDbType.Int32,
  2689. spFor.SJobsID,ParameterDirection.Input),
  2690. new OracleParameter(":StaffStatus",OracleDbType.Int32,
  2691. spFor.StaffStatus,ParameterDirection.Input),
  2692. new OracleParameter(":AccountID",OracleDbType.Int32,
  2693. userInfo.AccountID,ParameterDirection.Input),
  2694. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  2695. userInfo.UserID,ParameterDirection.Input),
  2696. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  2697. userInfo.UserID,ParameterDirection.Input),
  2698. new OracleParameter(":Scrapfine",OracleDbType.Decimal,
  2699. scrapfine,ParameterDirection.Input)
  2700. };
  2701. sresponsibleReturnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), SPParas);
  2702. }
  2703. }
  2704. #region 更新废弃责任工序的生产工序ID
  2705. string sql = "UPDATE TP_PM_SCRAPPRODUCT SP\n" +
  2706. " SET (SP.RESPONPROCEDUREPROCEDUREID) =\n" +
  2707. " (SELECT RP.PROCEDUREID\n" +
  2708. " FROM TP_PM_RESPONPROCEDURE RP\n" +
  2709. " WHERE RP.SCRAPPRODUCTID = SP.SCRAPPRODUCTID)\n" +
  2710. " WHERE SP.SCRAPTYPE IN (0, 2, 3)\n" +
  2711. " AND SP.SCRAPPRODUCTID = :SCRAPPRODUCTID";
  2712. Paras = new OracleParameter[]
  2713. {
  2714. new OracleParameter(":SCRAPPRODUCTID",OracleDbType.Int32,UpdateSProductEntity.ScrapProductID,ParameterDirection.Input),
  2715. };
  2716. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sql, Paras);
  2717. #endregion
  2718. #region 更新废弃责任工序的责任者ID和编码
  2719. sql = "UPDATE TP_PM_SCRAPPRODUCT SP\n" +
  2720. " SET (SP.RESPONSIBLEUSERID, SP.RESPONSIBLEUSERCODE) =\n" +
  2721. " (SELECT SR.USERID, SR.USERCODE\n" +
  2722. " FROM TP_PM_SCRAPRESPONSIBLE SR\n" +
  2723. " WHERE SR.SCRAPPRODUCTID = SP.SCRAPPRODUCTID\n" +
  2724. " GROUP BY SR.USERID, SR.USERCODE)\n" +
  2725. " WHERE SP.SCRAPTYPE IN (0, 2, 3)\n" +
  2726. " AND SP.SCRAPPRODUCTID = :SCRAPPRODUCTID";
  2727. Paras = new OracleParameter[]
  2728. {
  2729. new OracleParameter(":SCRAPPRODUCTID",OracleDbType.Int32,UpdateSProductEntity.ScrapProductID,ParameterDirection.Input),
  2730. };
  2731. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sql, Paras);
  2732. #endregion
  2733. if (returnRows == 0)
  2734. {
  2735. oracleTrConn.Rollback();
  2736. oracleTrConn.Disconnect();
  2737. }
  2738. else
  2739. {
  2740. oracleTrConn.Commit();
  2741. oracleTrConn.Disconnect();
  2742. }
  2743. }
  2744. catch (Exception ex)
  2745. {
  2746. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  2747. {
  2748. oracleTrConn.Rollback();
  2749. oracleTrConn.Disconnect();
  2750. }
  2751. throw ex;
  2752. }
  2753. finally
  2754. {
  2755. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  2756. {
  2757. oracleTrConn.Disconnect();
  2758. }
  2759. }
  2760. return returnRows;
  2761. }
  2762. /// <summary>
  2763. /// 获取窑炉管理的全部数据
  2764. /// </summary>
  2765. /// <param name="sUserInfo">用户基本信息</param>
  2766. /// <returns>DataSet</returns>
  2767. /// <remarks>
  2768. /// 2014.10.31 任海 新建
  2769. /// </remarks>
  2770. public static DataSet GetAllKilntInfo(SUserInfo sUserInfo)
  2771. {
  2772. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2773. try
  2774. {
  2775. //获取窑炉管理数据
  2776. string sqlString = "Select KilnID,KilnCode,KilnName,KilnType,Remarks,AccountID,ValueFlag,CreateTime,CreateUserID,UpdateTime,UpdateUserID,OPTimeStamp "
  2777. + "from TP_MST_Kiln where AccountID = :AccountID and valueflag=1";
  2778. Oracle.ManagedDataAccess.Client.OracleParameter[] oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  2779. {
  2780. new Oracle.ManagedDataAccess.Client.OracleParameter(":AccountID",sUserInfo.AccountID)
  2781. };
  2782. oracleConn.Open();
  2783. DataSet result = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  2784. oracleConn.Close();
  2785. return result;
  2786. }
  2787. catch (Exception ex)
  2788. {
  2789. throw ex;
  2790. }
  2791. finally
  2792. {
  2793. if (oracleConn.ConnState == ConnectionState.Open)
  2794. {
  2795. oracleConn.Close();
  2796. }
  2797. }
  2798. }
  2799. /// <summary>
  2800. /// 获取次品产品条码允许编辑
  2801. /// </summary>
  2802. /// <param name="barcode">产品条码</param>
  2803. /// <returns>Datase</returns>
  2804. public static DataSet GetSubstandardInfo(string barcode)
  2805. {
  2806. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2807. try
  2808. {
  2809. //获取窑炉管理数据
  2810. string sqlString = "Select barcode from TP_PM_InProductionTrash where barcode=:barcode";
  2811. Oracle.ManagedDataAccess.Client.OracleParameter[] oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  2812. {
  2813. new Oracle.ManagedDataAccess.Client.OracleParameter(":barcode",barcode)
  2814. };
  2815. oracleConn.Open();
  2816. DataSet result = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  2817. oracleConn.Close();
  2818. return result;
  2819. }
  2820. catch (Exception ex)
  2821. {
  2822. if (oracleConn.ConnState == ConnectionState.Open)
  2823. {
  2824. oracleConn.Close();
  2825. }
  2826. throw ex;
  2827. }
  2828. finally
  2829. {
  2830. if (oracleConn.ConnState == ConnectionState.Open)
  2831. {
  2832. oracleConn.Close();
  2833. }
  2834. }
  2835. }
  2836. /// <summary>
  2837. /// 获取产品条码是否重烧
  2838. /// </summary>
  2839. /// <param name="barcode">产品条码</param>
  2840. /// <returns>Datase</returns>
  2841. public static DataSet GetReFine(string barcode)
  2842. {
  2843. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2844. try
  2845. {
  2846. string sqlString = "select IsReFire from tp_PM_ProductionData where ProductionDataid=(select max(ProductionDataid) from tp_PM_ProductionData where barcode=:barcode)";
  2847. //获取窑炉管理数据
  2848. //string sqlString = "Select IsReFire from TP_PM_InProduction where barcode=:barcode";
  2849. Oracle.ManagedDataAccess.Client.OracleParameter[] oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  2850. {
  2851. new Oracle.ManagedDataAccess.Client.OracleParameter(":barcode",barcode)
  2852. };
  2853. oracleConn.Open();
  2854. DataSet result = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  2855. oracleConn.Close();
  2856. return result;
  2857. }
  2858. catch (Exception ex)
  2859. {
  2860. if (oracleConn.ConnState == ConnectionState.Open)
  2861. {
  2862. oracleConn.Close();
  2863. }
  2864. throw ex;
  2865. }
  2866. finally
  2867. {
  2868. if (oracleConn.ConnState == ConnectionState.Open)
  2869. {
  2870. oracleConn.Close();
  2871. }
  2872. }
  2873. }
  2874. /// <summary>
  2875. /// 获取登陆帐户有无报损权限
  2876. /// </summary>
  2877. /// <param name="usercode">工号编码</param>
  2878. /// <returns></returns>
  2879. public static int GetFinishedProductEditFuntion(SUserInfo userInfo)
  2880. {
  2881. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2882. try
  2883. {
  2884. con.Open();
  2885. string strSql = "";
  2886. strSql = @"SELECT F.Functionlevel,
  2887. F.FunctionCode,
  2888. F.FunctionName,
  2889. F.FullName,
  2890. F.FunctionFlag,
  2891. F.FunctionButtonFlag,
  2892. F.FormName,
  2893. F.ButtonName
  2894. FROM TP_MST_UserRight R LEFT OUTER JOIN
  2895. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  2896. WHERE F.ValueFlag = 1
  2897. AND F.FunctionCode NOT LIKE '0101%'
  2898. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '060701') = 1 /*F.FunctionCode='060701'*/";
  2899. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  2900. DataSet ds = con.GetSqlResultToDs(strSql);
  2901. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2902. {
  2903. return 1;
  2904. }
  2905. return 0;
  2906. }
  2907. catch (Exception ex)
  2908. {
  2909. throw ex;
  2910. }
  2911. finally
  2912. {
  2913. if (con.ConnState == ConnectionState.Open)
  2914. {
  2915. con.Close();
  2916. }
  2917. }
  2918. }
  2919. /// <summary>
  2920. /// 获取登陆帐户有无报损审批权限
  2921. /// </summary>
  2922. /// <param name="usercode">工号编码</param>
  2923. /// <returns></returns>
  2924. public static int GetScrapProductFuntion(SUserInfo userInfo)
  2925. {
  2926. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2927. try
  2928. {
  2929. con.Open();
  2930. string strSql = "";
  2931. strSql = @"SELECT F.Functionlevel,
  2932. F.FunctionCode,
  2933. F.FunctionName,
  2934. F.FullName,
  2935. F.FunctionFlag,
  2936. F.FunctionButtonFlag,
  2937. F.FormName,
  2938. F.ButtonName
  2939. FROM TP_MST_UserRight R LEFT OUTER JOIN
  2940. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  2941. WHERE F.ValueFlag = 1
  2942. AND F.FunctionCode NOT LIKE '0101%'
  2943. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '06040103') = 1 /*F.FunctionCode='06040103'*/";
  2944. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  2945. DataSet ds = con.GetSqlResultToDs(strSql);
  2946. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2947. {
  2948. return 1;
  2949. }
  2950. return 0;
  2951. }
  2952. catch (Exception ex)
  2953. {
  2954. throw ex;
  2955. }
  2956. finally
  2957. {
  2958. if (con.ConnState == ConnectionState.Open)
  2959. {
  2960. con.Close();
  2961. }
  2962. }
  2963. }
  2964. /// <summary>
  2965. /// 获取登陆帐户有变更条码权限
  2966. /// </summary>
  2967. /// <returns></returns>
  2968. public static int GetBarCodeRecordFuntion(SUserInfo userInfo)
  2969. {
  2970. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2971. try
  2972. {
  2973. con.Open();
  2974. string strSql = "";
  2975. strSql = @"SELECT F.Functionlevel,
  2976. F.FunctionCode,
  2977. F.FunctionName,
  2978. F.FullName,
  2979. F.FunctionFlag,
  2980. F.FunctionButtonFlag,
  2981. F.FormName,
  2982. F.ButtonName
  2983. FROM TP_MST_UserRight R LEFT OUTER JOIN
  2984. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  2985. WHERE F.ValueFlag = 1
  2986. AND F.FunctionCode NOT LIKE '0101%'
  2987. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '060202') = 1 /*F.FunctionCode='060202'*/";
  2988. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  2989. DataSet ds = con.GetSqlResultToDs(strSql);
  2990. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2991. {
  2992. return 1;
  2993. }
  2994. return 0;
  2995. }
  2996. catch (Exception ex)
  2997. {
  2998. throw ex;
  2999. }
  3000. finally
  3001. {
  3002. if (con.ConnState == ConnectionState.Open)
  3003. {
  3004. con.Close();
  3005. }
  3006. }
  3007. }
  3008. /// <summary>
  3009. /// 成检-校验生产工号
  3010. /// </summary>
  3011. /// <returns></returns>
  3012. public static DataSet GetUserCode(string usercode, SUserInfo userInfo)
  3013. {
  3014. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3015. try
  3016. {
  3017. con.Open();
  3018. DataSet dsReturn = new DataSet();
  3019. string strSql = "";
  3020. strSql = @"select userid,username,usercode from tp_mst_user where tp_mst_user.isworker=1 and valueflag=1 and accountid=:accountid and usercode=:usercode";
  3021. Oracle.ManagedDataAccess.Client.OracleParameter[] oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  3022. {
  3023. new Oracle.ManagedDataAccess.Client.OracleParameter(":accountid",userInfo.AccountID),
  3024. new Oracle.ManagedDataAccess.Client.OracleParameter(":usercode",usercode)
  3025. };
  3026. DataSet ds = con.GetSqlResultToDs(strSql, oracleParameter);
  3027. ds.Tables[0].TableName = "TUser";
  3028. //strSql = "Select DictionaryID,DictionaryValue"
  3029. // + " from TP_MST_DataDictionary where valueflag = 1 and DictionaryType = 'ASE002' and AccountID = :AccountID";
  3030. //oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  3031. // {
  3032. // new Oracle.ManagedDataAccess.Client.OracleParameter(":AccountID",userInfo.AccountID),
  3033. // };
  3034. //DataSet ds2 = con.GetSqlResultToDs(strSql, oracleParameter);
  3035. //ds2.Tables[0].TableName = "TDataDictionary";
  3036. if (!dsReturn.Tables.Contains("TUser"))
  3037. {
  3038. dsReturn.Tables.Add(ds.Tables[0].Copy());
  3039. }
  3040. //if (!dsReturn.Tables.Contains("TDataDictionary"))
  3041. //{
  3042. // dsReturn.Tables.Add(ds2.Tables[0].Copy());
  3043. //}
  3044. return dsReturn;
  3045. }
  3046. catch (Exception ex)
  3047. {
  3048. throw ex;
  3049. }
  3050. finally
  3051. {
  3052. if (con.ConnState == ConnectionState.Open)
  3053. {
  3054. con.Close();
  3055. }
  3056. }
  3057. }
  3058. /// <summary>
  3059. /// 保存班次配置信息
  3060. /// </summary>
  3061. /// <param name="setEntity">班次配置实体</param>
  3062. /// <param name="dtClassesSetting">班次配置明细table</param>
  3063. /// <param name="sUserInfo">用户基本信息</param>
  3064. /// <returns>>0 保存成功 else 失败</returns>
  3065. /// <remarks>
  3066. /// 作者 日期 内容
  3067. /// 冯雪 2014-9-24 新建
  3068. /// </remarks>
  3069. public static int SaveClassesSetting(ClassesSettingEntity setEntity, ClassesDetailSettingEntity[] setDetailEntity, SUserInfo sUserInfo)
  3070. {
  3071. int returnRows = 0;
  3072. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  3073. try
  3074. {
  3075. oracleTrConn.Connect();
  3076. // 查询新插入的生产数据ID
  3077. string sqlText = "SELECT SEQ_PC_ClassesSetting_ID.NextVAL FROM dual";
  3078. int classesSettingID = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
  3079. // 插入班次配置表
  3080. string sqlString1 = " INSERT INTO TP_PC_ClassesSetting "
  3081. + " (ClassesSettingID,AccountDate,UserID,UserCode, "
  3082. + " Remarks,AccountID,CreateTime,CreateUserID,UpdateUserID) "
  3083. + " VALUES (:ClassesSettingID,:AccountDate,:userID,:userCode, "
  3084. + " :remarks,:accountID,sysdate,:createUserID,:updateUserID)";
  3085. OracleParameter[] parmeters1 = new OracleParameter[]
  3086. {
  3087. new OracleParameter(":ClassesSettingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
  3088. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  3089. new OracleParameter(":userID",OracleDbType.Int32,setEntity.UserID,ParameterDirection.Input),
  3090. new OracleParameter(":userCode",OracleDbType.Varchar2,setEntity.UserCode,ParameterDirection.Input),
  3091. new OracleParameter(":AccountDate",OracleDbType.Date,Convert.ToDateTime(setEntity.AccountDatePDA),ParameterDirection.Input),
  3092. new OracleParameter(":remarks",OracleDbType.Varchar2,setEntity.Remarks,ParameterDirection.Input),
  3093. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  3094. new OracleParameter(":createUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  3095. new OracleParameter(":updateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  3096. };
  3097. returnRows = oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
  3098. #region 保存班次配置明细信息
  3099. foreach (ClassesDetailSettingEntity entity in setDetailEntity)
  3100. {
  3101. if (entity.UJobsId.ToString() == "" && entity.StaffCode.ToString() == "")
  3102. {
  3103. continue;
  3104. }
  3105. string sqlInsertString = "INSERT INTO TP_PC_ClassesDetail "
  3106. + " (ClassesSettingID,AccountDate,userid,usercode,ujobsid,staffid,sjobsid,staffstatus,"
  3107. + " remarks,accountid,createtime,createuserid,UpdateUserID,UJobsNum) "
  3108. + "VALUES (:settingID,:AccountDate,:userid,:usercode,:ujobsid,:staffid,:sjobsid,:staffstatus,"
  3109. + " :remarks,:accountid,sysdate,:createuserid,:updateUserID,:uJobsNum)";
  3110. int UJobsNum = 0;//默认一个
  3111. foreach (ClassesDetailSettingEntity entitycount in setDetailEntity)
  3112. {
  3113. if (entitycount.UJobsId.ToString() == entity.UJobsId.ToString())
  3114. {
  3115. UJobsNum++;
  3116. }
  3117. }
  3118. OracleParameter[] oracleParameter = new OracleParameter[]
  3119. {
  3120. new OracleParameter(":settingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
  3121. new OracleParameter(":userid",OracleDbType.Int32,entity.Userid.ToString(),ParameterDirection.Input),
  3122. new OracleParameter(":usercode",OracleDbType.Varchar2,entity.Usercode.ToString(),ParameterDirection.Input),
  3123. new OracleParameter(":ujobsid",OracleDbType.Int32,entity.UJobsId.ToString(),ParameterDirection.Input),
  3124. new OracleParameter(":staffid",OracleDbType.Int32,entity.Staffid.ToString(),ParameterDirection.Input),
  3125. new OracleParameter(":sjobsid",OracleDbType.Int32,entity.Jobs.ToString(),ParameterDirection.Input),
  3126. new OracleParameter(":staffstatus",OracleDbType.Int32,entity.Staffstatus.ToString(),ParameterDirection.Input),
  3127. new OracleParameter(":remarks",OracleDbType.Varchar2,entity.Remarks,ParameterDirection.Input),
  3128. new OracleParameter(":AccountDate",OracleDbType.Date,Convert.ToDateTime(setEntity.AccountDatePDA),ParameterDirection.Input),
  3129. new OracleParameter(":accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  3130. new OracleParameter(":createuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  3131. new OracleParameter(":updateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  3132. new OracleParameter(":uJobsNum",OracleDbType.Decimal,UJobsNum,ParameterDirection.Input)
  3133. };
  3134. returnRows = oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameter);
  3135. }
  3136. #endregion
  3137. oracleTrConn.Commit();
  3138. oracleTrConn.Disconnect();
  3139. return returnRows;
  3140. }
  3141. catch (Exception ex)
  3142. {
  3143. oracleTrConn.Rollback();
  3144. oracleTrConn.Disconnect();
  3145. throw ex;
  3146. }
  3147. finally
  3148. {
  3149. // 释放资源
  3150. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  3151. {
  3152. oracleTrConn.Disconnect();
  3153. }
  3154. }
  3155. }
  3156. /// <summary>
  3157. /// 获取登陆帐户有班次配置权限
  3158. /// </summary>
  3159. /// <returns></returns>
  3160. public static int GetClassesSettingFuntion(SUserInfo userInfo)
  3161. {
  3162. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3163. try
  3164. {
  3165. con.Open();
  3166. string strSql = "";
  3167. strSql = @"SELECT F.Functionlevel,
  3168. F.FunctionCode,
  3169. F.FunctionName,
  3170. F.FullName,
  3171. F.FunctionFlag,
  3172. F.FunctionButtonFlag,
  3173. F.FormName,
  3174. F.ButtonName
  3175. FROM TP_MST_UserRight R LEFT OUTER JOIN
  3176. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  3177. WHERE F.ValueFlag = 1
  3178. AND F.FunctionCode NOT LIKE '0101%'
  3179. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '0404') = 1 /*F.FunctionCode='0404'*/";
  3180. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  3181. DataSet ds = con.GetSqlResultToDs(strSql);
  3182. if (ds != null && ds.Tables[0].Rows.Count > 0)
  3183. {
  3184. return 1;
  3185. }
  3186. return 0;
  3187. }
  3188. catch (Exception ex)
  3189. {
  3190. throw ex;
  3191. }
  3192. finally
  3193. {
  3194. if (con.ConnState == ConnectionState.Open)
  3195. {
  3196. con.Close();
  3197. }
  3198. }
  3199. }
  3200. #region PDA报表
  3201. /// <summary>
  3202. /// 取得RPT040104画面(产成品质量分析表)的查询数据
  3203. /// </summary>
  3204. /// <param name="user">登录用户信息</param>
  3205. /// <param name="se">查询条件</param>
  3206. /// <returns>查询结果</returns>
  3207. public static ServiceResultEntity GetRPT040104SData(SUserInfo user, RPT040104_SE se)
  3208. {
  3209. IDBConnection conn = null;
  3210. try
  3211. {
  3212. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3213. List<OracleParameter> parameters = new List<OracleParameter>();
  3214. string sql = PDAModuleLogic.GetRPT040104SSQL(user, se, ref parameters);
  3215. DataTable data = conn.GetSqlResultToDt(sql, parameters.ToArray());
  3216. ServiceResultEntity sre = new ServiceResultEntity();
  3217. if (data == null || data.Rows.Count == 0)
  3218. {
  3219. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3220. return sre;
  3221. }
  3222. sre.Data = new DataSet();
  3223. sre.Data.Tables.Add(data.Copy());
  3224. return sre;
  3225. }
  3226. catch (Exception ex)
  3227. {
  3228. throw ex;
  3229. }
  3230. finally
  3231. {
  3232. if (conn != null &&
  3233. conn.ConnState == ConnectionState.Open)
  3234. {
  3235. conn.Close();
  3236. }
  3237. }
  3238. }
  3239. /// <summary>
  3240. /// 获取RPT040104画面(产成品质量分析表)的查询sql
  3241. /// </summary>
  3242. /// <returns>sql</returns>
  3243. private static string GetRPT040104SSQL(SUserInfo user, RPT040104_SE se, ref List<OracleParameter> parameters)
  3244. {
  3245. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  3246. parameters.Add(new OracleParameter(":in_rptSprocedureId", OracleDbType.Int32, se.RptSProcedureID, ParameterDirection.Input));
  3247. // 2015-06-16 modify by chenxy
  3248. string sqlString = "\n" +
  3249. "select qdgroup.gid,\n" +
  3250. //" decode(qdgroup.gid, 7, '总计', 0, qdgroup.productionlinename, '--') productionlinename,\n" +
  3251. " decode(qdgroup.gid, 3, '总计', 1, '合计', qdgroup.kilncode) kilncode,\n" +
  3252. //" decode(qdgroup.gid, 1, '小计', 0, qdgroup.goodstypename2, '--') goodstypename2,\n" +
  3253. " decode(qdgroup.gid, 0, qdgroup.goodstypename2, '') subgoodstypecode,\n" +
  3254. //" decode(qdgroup.gid, 0, qdgroup.goodstypename, '--') goodstypename,\n" +
  3255. //" decode(qdgroup.gid, 0, qdgroup.goodscode, '--') goodscode,\n" +
  3256. " to_char(qdgroup.OutKilnCount) OutKilnCount,\n" +
  3257. //" qdgroup.GoodCount,\n" +
  3258. // 质量是合格率(正品+副品)
  3259. //" to_char((qdgroup.GoodCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent\n" +
  3260. " to_char(((qdgroup.GoodCount + qdgroup.BadCount) / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent\n" +
  3261. //" qdgroup.SubstandardCount,\n" +
  3262. //" to_char((qdgroup.SubstandardCount / qdgroup.OutKilnCount) * 100,\n" +
  3263. //" '990.00') || '%' SubstandardPercent,\n" +
  3264. //" qdgroup.BadCount\n" +
  3265. //" to_char((qdgroup.BadCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' BadPercent,\n" +
  3266. //" qdgroup.ReFireCount,\n" +
  3267. //" to_char((qdgroup.ReFireCount / qdgroup.OutKilnCount) * 100,\n" +
  3268. //" '990.00') || '%' ReFirePercent\n" +
  3269. " from (select grouping_id(--pcpl.productionlinename,\n" +
  3270. " mstkiln.kilncode,\n" +
  3271. " mstgoodstype2.goodstypename) gid,\n" +
  3272. //" mstgoodstype.goodstypename,\n" +
  3273. //" mstgoods.goodscode) gid,\n" +
  3274. //" pcpl.productionlinename,\n" +
  3275. " --qd.kilnid,\n" +
  3276. " mstkiln.kilncode,\n" +
  3277. " mstgoodstype2.goodstypename goodstypename2,\n" +
  3278. //" mstgoodstype.goodstypename,\n" +
  3279. //" mstgoods.goodscode,\n" +
  3280. " sum(qd.OutKilnCount) OutKilnCount,\n" +
  3281. " sum(qd.GoodCount) GoodCount,\n" +
  3282. //" sum(qd.SubstandardCount) SubstandardCount,\n" +
  3283. " sum(qd.BadCount) BadCount\n" +
  3284. //" sum(qd.ReFireCount) ReFireCount\n" +
  3285. " from (select --pdbc.barcode,\n" +
  3286. //" pdbc.productionlineid,\n" +
  3287. " pdbc.goodsid,\n" +
  3288. " pdbc.kilnid,\n" +
  3289. " --pdbc.kilncarid,\n" +
  3290. " --pdbc.kilncarbatchno,\n" +
  3291. " 1 OutKilnCount,\n" +
  3292. " case\n" +
  3293. " when glt.goodsleveltypeid in (5, 6, 7) then\n" +
  3294. " 0\n" +
  3295. " else\n" +
  3296. " 1\n" +
  3297. " end GoodCount,\n" +
  3298. //" case\n" +
  3299. //" when glt.goodsleveltypeid = 7 then\n" +
  3300. //" 1\n" +
  3301. //" else\n" +
  3302. //" 0\n" +
  3303. //" end SubstandardCount,\n" +
  3304. //" case\n" +
  3305. //" when glt.goodsleveltypeid = 6 then\n" +
  3306. //" 1\n" +
  3307. //" else\n" +
  3308. //" 0\n" +
  3309. //" end ReFireCount,\n" +
  3310. " case\n" +
  3311. " when glt.goodsleveltypeid = 5 then\n" +
  3312. " 1\n" +
  3313. " else\n" +
  3314. " 0\n" +
  3315. " end BadCount\n" +
  3316. " from (select distinct pd.barcode,\n" +
  3317. " pd.productionlineid,\n" +
  3318. " pd.goodsid,\n" +
  3319. " pd.kilnid,\n" +
  3320. " --pd.kilncarid,\n" +
  3321. " pd.kilncarbatchno\n" +
  3322. " from tp_pm_productiondata pd\n" +
  3323. " where pd.valueflag = '1'\n" +
  3324. " and pd.procedureid = :in_rptSprocedureId \n" +
  3325. " and pd.AccountID = :AccountID\n";
  3326. StringBuilder selSql = new StringBuilder(sqlString);
  3327. if (se.CreateTimeStart.HasValue)
  3328. {
  3329. selSql.Append(" AND pd.createtime >= :CreateTimeStart\n");
  3330. parameters.Add(new OracleParameter(":CreateTimeStart", OracleDbType.Date, se.CreateTimeStart.Value, ParameterDirection.Input));
  3331. }
  3332. if (se.CreateTimeEnd.HasValue)
  3333. {
  3334. selSql.Append(" AND pd.createtime < :CreateTimeEnd\n");
  3335. parameters.Add(new OracleParameter(":CreateTimeEnd", OracleDbType.Date, se.CreateTimeEnd.Value, ParameterDirection.Input));
  3336. }
  3337. //if (!string.IsNullOrEmpty(se.GoodsIDS))
  3338. //{
  3339. // selSql.Append(" AND instr(','||:GoodsIDS||',', ','||pd.GoodsId||',') > 0\n");
  3340. // parameters.Add(new OracleParameter(":GoodsIDS", OracleDbType.NVarchar2, se.GoodsIDS, ParameterDirection.Input));
  3341. //}
  3342. //if (se.ProductionLineID.HasValue)
  3343. //{
  3344. // selSql.Append(" AND pd.ProductionLineId = :ProductionLineID\n");
  3345. // parameters.Add(new OracleParameter(":ProductionLineID", OracleDbType.Int32, se.ProductionLineID, ParameterDirection.Input));
  3346. //}
  3347. //if (!string.IsNullOrEmpty(se.GroutingUserIDS))
  3348. //{
  3349. // selSql.Append(" AND instr(','||:GroutingUserIDS||',', ','||pd.groutinguserid||',') > 0\n");
  3350. // parameters.Add(new OracleParameter(":GroutingUserIDS", OracleDbType.NVarchar2, se.GroutingUserIDS, ParameterDirection.Input));
  3351. //}
  3352. //if (!string.IsNullOrEmpty(se.GroutingLineIDS))
  3353. //{
  3354. // selSql.Append(" AND instr(','||:GroutingLineIDS||',', ','||pd.groutinglineid||',') > 0\n");
  3355. // parameters.Add(new OracleParameter(":GroutingLineIDS", OracleDbType.NVarchar2, se.GroutingLineIDS, ParameterDirection.Input));
  3356. //}
  3357. //selSql.Append(" AND exists (Select 1 from TP_MST_UserPurview up where up.PurviewType= 7 and up.UserID = :UserID and (up.PurviewID=-1 or up.PurviewID= pd.ProductionLineId))");
  3358. //parameters.Add(new OracleParameter(":UserID", OracleDbType.NVarchar2, user.UserID, ParameterDirection.Input));
  3359. //if (se.KilnID.HasValue)
  3360. //{
  3361. // selSql.Append(" AND pd.KilnID = :KilnID\n");
  3362. // parameters.Add(new OracleParameter(":KilnID", OracleDbType.Int32, se.KilnID, ParameterDirection.Input));
  3363. //}
  3364. sqlString =
  3365. " ) pdbc\n" +
  3366. " left join (select kcbc.barcode, kcbc.kilncarbatchno, kcbc.goodsleveltypeid\n" +
  3367. " from (select pd.barcode,\n" +
  3368. " pd.kilncarbatchno,\n" +
  3369. " pd.goodsleveltypeid,\n" +
  3370. " pd.productiondataid,\n" +
  3371. " ROW_NUMBER() OVER(PARTITION BY pd.barcode, pd.kilncarbatchno ORDER BY pd.productiondataid desc) AS dataid\n" +
  3372. " from tp_pm_productiondata pd\n" +
  3373. " where pd.valueflag = '1'\n" +
  3374. " and pd.AccountID = :AccountID\n" +
  3375. " and length(pd.kilncarbatchno) > 0\n" +
  3376. " AND pd.createtime >= :CreateTimeStart\n" +
  3377. " and pd.modeltype = -1) kcbc\n" +
  3378. " where kcbc.dataid = 1) glt\n" +
  3379. " on pdbc.kilncarbatchno = glt.kilncarbatchno\n" +
  3380. " and pdbc.barcode = glt.barcode) qd\n" +
  3381. //" inner join tp_pc_productionline pcpl\n" +
  3382. //" on pcpl.productionlineid = qd.productionlineid\n" +
  3383. " inner join tp_mst_kiln mstkiln\n" +
  3384. " on mstkiln.kilnid = qd.kilnid\n" +
  3385. " inner join tp_mst_goods mstgoods\n" +
  3386. " on mstgoods.goodsid = qd.goodsid\n" +
  3387. " inner join tp_mst_goodstype mstgoodstype\n" +
  3388. " on mstgoodstype.goodstypeid = mstgoods.goodstypeid\n" +
  3389. " and mstgoodstype.accountid = mstgoods.accountid\n" +
  3390. " inner join tp_mst_goodstype mstgoodstype2\n" +
  3391. " on mstgoodstype2.goodstypecode =\n" +
  3392. " substr(mstgoodstype.goodstypecode, 0, 6)\n" +
  3393. " and mstgoodstype.accountid = mstgoodstype2.accountid\n" +
  3394. //" where 1=1\n";
  3395. //selSql.Append(sqlString);
  3396. //if (!string.IsNullOrEmpty(se.GoodsTypeIDS))
  3397. //{
  3398. // selSql.Append(" AND instr(','||:GoodsTypeIDS||',', ','||mstgoods.GOODSTYPEId||',') > 0\n");
  3399. // parameters.Add(new OracleParameter(":GoodsTypeIDS", OracleDbType.NVarchar2, se.GoodsTypeIDS, ParameterDirection.Input));
  3400. //}
  3401. //sqlString =
  3402. " group by grouping sets((mstkiln.kilncode,\n" +
  3403. " mstgoodstype2.goodstypename),\n" +
  3404. " mstkiln.kilncode,())\n" +
  3405. " order by --pcpl.productionlinename,\n" +
  3406. " mstkiln.kilncode,\n" +
  3407. " mstgoodstype2.goodstypename\n" +
  3408. " ) qdgroup\n";
  3409. selSql.Append(sqlString);
  3410. return selSql.ToString();
  3411. }
  3412. /// <summary>
  3413. /// 取得FP00002画面(工号产量质量分析表)的查询数据
  3414. /// </summary>
  3415. /// <param name="user">登录用户信息</param>
  3416. /// <param name="se">查询条件</param>
  3417. /// <returns>查询结果</returns>
  3418. public static ServiceResultEntity GetFP00002Data(SUserInfo user, int rptSProcedureID, string usercode, DateTime date)
  3419. {
  3420. //if(string.IsNullOrWhiteSpace(usercode))
  3421. //{
  3422. // ServiceResultEntity sre = new ServiceResultEntity();
  3423. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3424. // return sre;
  3425. //}
  3426. IDBConnection conn = null;
  3427. try
  3428. {
  3429. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3430. List<OracleParameter> parameters = new List<OracleParameter>();
  3431. date = date.Date;
  3432. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  3433. parameters.Add(new OracleParameter(":CreateTimeStart", OracleDbType.Date, date, ParameterDirection.Input));
  3434. parameters.Add(new OracleParameter(":CreateTimeEnd", OracleDbType.Date, date.AddDays(1), ParameterDirection.Input));
  3435. parameters.Add(new OracleParameter(":Usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  3436. // 产量
  3437. string sqlString = "\n" +
  3438. "select qdgroup.gid,\n" +
  3439. //" decode(qdgroup.gid, 7, '总计', 0, qdgroup.productionlinename, '--') productionlinename,\n" +
  3440. " decode(qdgroup.gid, 3, '总计', 1, '合计', 0, qdgroup.procedurename, '') procedurename,\n" +
  3441. //" decode(qdgroup.gid, 1, '小计', 0, qdgroup.goodstypename2, '--') goodstypename2,\n" +
  3442. //" --decode(qdgroup.gid, 0, qdgroup.usercode, '--') usercode,\n" +
  3443. //" decode(qdgroup.gid, 0, qdgroup.goodstypename, '--') goodstypename,\n" +
  3444. " decode(qdgroup.gid, 0, qdgroup.goodscode, '') goodscode,\n" +
  3445. " to_char(qdgroup.production) production\n" +
  3446. " from (select grouping_id(--pcpl.productionlinename,\n" +
  3447. " pcp.procedurename,\n" +
  3448. //" mstgoodstype2.goodstypename,\n" +
  3449. //" --qd.usercode,\n" +
  3450. " mstgoods.goodscode) gid,\n" +
  3451. //" pcpl.productionlinename,\n" +
  3452. " pcp.procedurename,\n" +
  3453. //" mstgoodstype2.goodstypename goodstypename2,\n" +
  3454. " --qd.usercode,\n" +
  3455. //" mstgoodstype.goodstypename,\n" +
  3456. " mstgoods.goodscode,\n" +
  3457. " sum(qd.production) production\n" +
  3458. " from (select --pd.barcode,\n" +
  3459. //" pd.productionlineid,\n" +
  3460. " pd.procedureid,\n" +
  3461. " pd.goodsid,\n" +
  3462. " --pd.userid,\n" +
  3463. " --pd.usercode,\n" +
  3464. " 1 production\n" +
  3465. " from tp_pm_productiondata pd\n" +
  3466. " where pd.valueflag = '1'\n" +
  3467. " and ((pd.modeltype <> 5) or\n" +
  3468. " (pd.modeltype = 5 and pd.SpecialRepairFlag = '0'))\n" +
  3469. " and pd.Usercode = :Usercode\n" +
  3470. " and pd.AccountID = :AccountID\n" +
  3471. " AND pd.createtime >= :CreateTimeStart\n" +
  3472. " AND pd.createtime < :CreateTimeEnd) qd\n" +
  3473. //" left join tp_pc_productionline pcpl\n" +
  3474. //" on pcpl.productionlineid = qd.productionlineid\n" +
  3475. " left join tp_pc_procedure pcp\n" +
  3476. " on pcp.procedureid = qd.procedureid\n" +
  3477. " left join tp_mst_goods mstgoods\n" +
  3478. " on mstgoods.goodsid = qd.goodsid\n" +
  3479. //" left join tp_mst_goodstype mstgoodstype\n" +
  3480. //" on mstgoodstype.goodstypeid = mstgoods.goodstypeid\n" +
  3481. //" left join tp_mst_goodstype mstgoodstype2\n" +
  3482. //" on mstgoodstype2.goodstypecode =\n" +
  3483. //" substr(mstgoodstype.goodstypecode, 0, 6)\n" +
  3484. " group by grouping sets((--pcpl.productionlinename,\n" +
  3485. " pcp.procedurename,\n" +
  3486. //" mstgoodstype2.goodstypename,\n" +
  3487. //" --qd.usercode,\n" +
  3488. //" mstgoodstype.goodstypename,\n" +
  3489. " mstgoods.goodscode),\n" +
  3490. " pcp.procedurename,())\n" +
  3491. " order by --pcpl.productionlinename,\n" +
  3492. " pcp.procedurename,\n" +
  3493. //" mstgoodstype2.goodstypename,\n" +
  3494. //" --qd.usercode,\n" +
  3495. //" mstgoodstype.goodstypename,\n" +
  3496. " mstgoods.goodscode) qdgroup";
  3497. DataTable data = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  3498. ServiceResultEntity sre = new ServiceResultEntity();
  3499. if (data == null || data.Rows.Count == 0)
  3500. {
  3501. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3502. return sre;
  3503. }
  3504. sre.Data = new DataSet();
  3505. sre.Data.Tables.Add(data);
  3506. parameters.Add(new OracleParameter(":in_rptSprocedureId", OracleDbType.Int32, rptSProcedureID, ParameterDirection.Input));
  3507. string sqlString1 = "\n" +
  3508. "select qdgroup.gid,\n" +
  3509. //" decode(qdgroup.gid, 0, qdgroup.productionlinename, '--') productionlinename,\n" +
  3510. " decode(qdgroup.gid, 7, '总计', 3, '合计', 0, qdgroup.procedurename, '') procedurename,\n" +
  3511. " decode(qdgroup.gid, 1, '小计', 0, qdgroup.kilncode, '') kilncode,\n" +
  3512. //" decode(qdgroup.gid, 1, '小计', 0, qdgroup.goodstypename2, '--') goodstypename2,\n" +
  3513. " decode(qdgroup.gid, 0, qdgroup.goodstypename2, '') goodstypename2,\n" +
  3514. //" --decode(qdgroup.gid, 0, qdgroup.usercode, '--') usercode,\n" +
  3515. //" decode(qdgroup.gid, 0, qdgroup.goodstypename, '--') goodstypename,\n" +
  3516. //" decode(qdgroup.gid, 0, qdgroup.goodscode, '--') goodscode,\n" +
  3517. " to_char(qdgroup.OutKilnCount) OutKilnCount,\n" +
  3518. //" qdgroup.GoodCount,\n" +
  3519. // 合格率(正品+副品)
  3520. //" to_char((qdgroup.GoodCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent\n" +
  3521. " to_char(((qdgroup.GoodCount +qdgroup.BadCount) / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent\n" +
  3522. //" qdgroup.SubstandardCount,\n" +
  3523. //" to_char((qdgroup.SubstandardCount / qdgroup.OutKilnCount) * 100,\n" +
  3524. //" '990.00') || '%' SubstandardPercent,\n" +
  3525. //" qdgroup.BadCount,\n" +
  3526. //" to_char((qdgroup.BadCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' BadPercent,\n" +
  3527. //" qdgroup.ReFireCount,\n" +
  3528. //" to_char((qdgroup.ReFireCount / qdgroup.OutKilnCount) * 100,\n" +
  3529. //" '990.00') || '%' ReFirePercent\n" +
  3530. " from (select grouping_id(--pcpl.productionlinename,\n" +
  3531. " pcp.procedurename,\n" +
  3532. " mstkiln.kilncode,\n" +
  3533. " mstgoodstype2.goodstypename) gid,\n" +
  3534. //" --qd.usercode,\n" +
  3535. //" mstgoods.goodscode) gid,\n" +
  3536. //" pcpl.productionlinename,\n" +
  3537. " pcp.procedurename,\n" +
  3538. " mstkiln.kilncode,\n" +
  3539. " mstgoodstype2.goodstypename goodstypename2,\n" +
  3540. //" --qd.usercode,\n" +
  3541. //" mstgoodstype.goodstypename,\n" +
  3542. //" mstgoods.goodscode,\n" +
  3543. " sum(qd.OutKilnCount) OutKilnCount,\n" +
  3544. " sum(qd.GoodCount) GoodCount,\n" +
  3545. //" sum(qd.SubstandardCount) SubstandardCount,\n" +
  3546. " sum(qd.BadCount) BadCount\n" +
  3547. //" sum(qd.ReFireCount) ReFireCount\n" +
  3548. " from (select --pdbc.barcode,\n" +
  3549. //" pdbc.productionlineid,\n" +
  3550. " pdata.procedureid,\n" +
  3551. //" --pdata.usercode,\n" +
  3552. " pdbc.goodsid,\n" +
  3553. " pdbc.kilnid,\n" +
  3554. " 1 OutKilnCount,\n" +
  3555. " case\n" +
  3556. " when defect.defectprocedureid is not null and glt.goodsleveltypeid in (5, 6, 7) then\n" +
  3557. " 0\n" +
  3558. " else\n" +
  3559. " 1\n" +
  3560. " end GoodCount,\n" +
  3561. //" case\n" +
  3562. //" when defect.defectprocedureid is not null and glt.goodsleveltypeid = 7 then\n" +
  3563. //" 1\n" +
  3564. //" else\n" +
  3565. //" 0\n" +
  3566. //" end SubstandardCount,\n" +
  3567. //" case\n" +
  3568. //" when defect.defectprocedureid is not null and glt.goodsleveltypeid = 6 then\n" +
  3569. //" 1\n" +
  3570. //" else\n" +
  3571. //" 0\n" +
  3572. //" end ReFireCount,\n" +
  3573. " case\n" +
  3574. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 5 then\n" +
  3575. " 1\n" +
  3576. " else\n" +
  3577. " 0\n" +
  3578. " end BadCount\n" +
  3579. " from (select distinct pd.barcode,\n" +
  3580. //" pd.productionlineid,\n" +
  3581. " pd.goodsid,\n" +
  3582. " pd.kilnid,\n" +
  3583. " pd.kilncarbatchno\n" +
  3584. " from tp_pm_productiondata pd\n" +
  3585. " where pd.valueflag = '1'\n" +
  3586. " and pd.procedureid = :in_rptSprocedureId \n" +
  3587. " and pd.AccountID = :AccountID\n" +
  3588. " and pd.createtime >= :CreateTimeStart\n" +
  3589. " and pd.createtime < :CreateTimeEnd\n" +
  3590. " ) pdbc\n" +
  3591. " inner join (select pd.barcode,\n" +
  3592. //" --pd.userid,\n" +
  3593. //" --pd.usercode,\n" +
  3594. " pd.procedureid\n" +
  3595. " from tp_pm_productiondata pd\n" +
  3596. " where pd.valueflag = '1'\n" +
  3597. " and pd.AccountID = :AccountID\n" +
  3598. " and pd.usercode = :Usercode\n" +
  3599. // 公坯、干补不算交坯工序的质量。
  3600. //" and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.IsPublicBody = '0' and pd.SpecialRepairFlag = '0')) \n" +
  3601. // 干补不算交坯工序的质量。
  3602. " and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.SpecialRepairFlag = '0')) \n" +
  3603. " ) pdata\n" +
  3604. " on pdata.barcode = pdbc.barcode\n" +
  3605. " left join (select kcbc.barcode, kcbc.kilncarbatchno, kcbc.goodsleveltypeid, kcbc.productiondataid\n" +
  3606. " from (select pd.barcode,\n" +
  3607. " pd.kilncarbatchno,\n" +
  3608. " pd.goodsleveltypeid,\n" +
  3609. " pd.productiondataid,\n" +
  3610. " ROW_NUMBER() OVER(PARTITION BY pd.barcode, pd.kilncarbatchno ORDER BY pd.productiondataid desc) AS dataid\n" +
  3611. " from tp_pm_productiondata pd\n" +
  3612. " where pd.valueflag = '1'\n" +
  3613. " and pd.AccountID = :AccountID\n" +
  3614. " and length(pd.kilncarbatchno) > 0\n" +
  3615. " AND pd.createtime >= :CreateTimeStart\n" +
  3616. " and pd.modeltype = -1) kcbc\n" +
  3617. " where kcbc.dataid = 1) glt\n" +
  3618. " on pdbc.kilncarbatchno = glt.kilncarbatchno\n" +
  3619. " and pdbc.barcode = glt.barcode\n" +
  3620. " left join (select distinct productiondataid, defectprocedureid" +
  3621. " from tp_pm_defect def " +
  3622. " where def.valueflag='1'" +
  3623. " and def.AccountID = :AccountID\n" +
  3624. " AND def.createtime >= :CreateTimeStart) defect\n" +
  3625. " on defect.productiondataid = glt.productiondataid\n" +
  3626. " and pdata.procedureid = defect.defectprocedureid) qd\n" +
  3627. //" inner join tp_pc_productionline pcpl\n" +
  3628. //" on pcpl.productionlineid = qd.productionlineid\n" +
  3629. " inner join tp_pc_procedure pcp\n" +
  3630. " on pcp.procedureid = qd.procedureid\n" +
  3631. " inner join tp_mst_kiln mstkiln\n" +
  3632. " on mstkiln.kilnid = qd.kilnid\n" +
  3633. " inner join tp_mst_goods mstgoods\n" +
  3634. " on mstgoods.goodsid = qd.goodsid\n" +
  3635. " inner join tp_mst_goodstype mstgoodstype\n" +
  3636. " on mstgoodstype.goodstypeid = mstgoods.goodstypeid\n" +
  3637. " inner join tp_mst_goodstype mstgoodstype2\n" +
  3638. " on mstgoodstype2.goodstypecode =\n" +
  3639. " substr(mstgoodstype.goodstypecode, 0, 6)\n" +
  3640. " and mstgoodstype.AccountID = mstgoodstype2.AccountID\n" +
  3641. " group by grouping sets((--pcpl.productionlinename,\n" +
  3642. " pcp.procedurename,\n" +
  3643. " mstkiln.kilncode,\n" +
  3644. " mstgoodstype2.goodstypename),\n" +
  3645. //" --qd.usercode,\n" +
  3646. //" mstgoodstype.goodstypename,\n" +
  3647. //" mstgoods.goodscode),\n" +
  3648. " (--pcpl.productionlinename,\n" +
  3649. " pcp.procedurename,\n" +
  3650. " mstkiln.kilncode),\n" +
  3651. //" mstgoodstype2.goodstypename),\n" +
  3652. " (--pcpl.productionlinename,\n" +
  3653. " pcp.procedurename),\n" +
  3654. //" mstkiln.kilncode),\n" +
  3655. " ())\n" +
  3656. " order by --pcpl.productionlinename,\n" +
  3657. " pcp.procedurename,\n" +
  3658. " mstkiln.kilncode,\n" +
  3659. " mstgoodstype2.goodstypename\n" +
  3660. //" --qd.usercode,\n" +
  3661. //" mstgoodstype.goodstypename,\n" +
  3662. //" mstgoods.goodscode\n" +
  3663. " ) qdgroup\n";
  3664. DataTable data1 = conn.GetSqlResultToDt(sqlString1, parameters.ToArray());
  3665. if (data1 == null || data1.Rows.Count == 0)
  3666. {
  3667. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3668. return sre;
  3669. }
  3670. sre.Data.Tables.Add(data1);
  3671. return sre;
  3672. }
  3673. catch (Exception ex)
  3674. {
  3675. throw ex;
  3676. }
  3677. finally
  3678. {
  3679. if (conn != null &&
  3680. conn.ConnState == ConnectionState.Open)
  3681. {
  3682. conn.Close();
  3683. }
  3684. }
  3685. }
  3686. /// <summary>
  3687. /// 取得FP00002_1画面(工号产量质量分析表-中陶)的查询数据
  3688. /// </summary>
  3689. /// <param name="user">登录用户信息</param>
  3690. /// <param name="se">查询条件</param>
  3691. /// <returns>查询结果</returns>
  3692. public static ServiceResultEntity GetFP00002_1Data(SUserInfo user, int rptSProcedureID, string usercode, DateTime date, string goodscode)
  3693. {
  3694. //if(string.IsNullOrWhiteSpace(usercode))
  3695. //{
  3696. // ServiceResultEntity sre = new ServiceResultEntity();
  3697. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3698. // return sre;
  3699. //}
  3700. IDBConnection conn = null;
  3701. try
  3702. {
  3703. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3704. List<OracleParameter> parameters = new List<OracleParameter>();
  3705. date = date.Date;
  3706. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  3707. parameters.Add(new OracleParameter(":CreateTimeStart", OracleDbType.Date, date, ParameterDirection.Input));
  3708. parameters.Add(new OracleParameter(":CreateTimeEnd", OracleDbType.Date, date.AddDays(1), ParameterDirection.Input));
  3709. parameters.Add(new OracleParameter(":Usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  3710. parameters.Add(new OracleParameter(":goodscode", OracleDbType.Varchar2, goodscode, ParameterDirection.Input));
  3711. #region
  3712. // 产量
  3713. string sqlString = "\n" +
  3714. "select qdgroup.gid,\n" +
  3715. //" decode(qdgroup.gid, 7, '总计', 0, qdgroup.productionlinename, '--') productionlinename,\n" +
  3716. " decode(qdgroup.gid, 3, '总计', 1, '合计', 0, qdgroup.procedurename, '') procedurename,\n" +
  3717. //" decode(qdgroup.gid, 1, '小计', 0, qdgroup.goodstypename2, '--') goodstypename2,\n" +
  3718. //" --decode(qdgroup.gid, 0, qdgroup.usercode, '--') usercode,\n" +
  3719. //" decode(qdgroup.gid, 0, qdgroup.goodstypename, '--') goodstypename,\n" +
  3720. " decode(qdgroup.gid, 0, qdgroup.goodscode, '') goodscode,\n" +
  3721. " to_char(qdgroup.production) production\n" +
  3722. " from (select grouping_id(--pcpl.productionlinename,\n" +
  3723. " pcp.procedurename,\n" +
  3724. //" mstgoodstype2.goodstypename,\n" +
  3725. //" --qd.usercode,\n" +
  3726. " mstgoods.goodscode) gid,\n" +
  3727. //" pcpl.productionlinename,\n" +
  3728. " pcp.procedurename,\n" +
  3729. //" mstgoodstype2.goodstypename goodstypename2,\n" +
  3730. " --qd.usercode,\n" +
  3731. //" mstgoodstype.goodstypename,\n" +
  3732. " mstgoods.goodscode,\n" +
  3733. " sum(qd.production) production\n" +
  3734. " from (select --pd.barcode,\n" +
  3735. //" pd.productionlineid,\n" +
  3736. " pd.procedureid,\n" +
  3737. " pd.goodsid,\n" +
  3738. " --pd.userid,\n" +
  3739. " --pd.usercode,\n" +
  3740. " 1 production\n" +
  3741. " from tp_pm_productiondata pd\n" +
  3742. " where pd.valueflag = '1'\n" +
  3743. " and ((pd.modeltype <> 5) or\n" +
  3744. " (pd.modeltype = 5 and pd.SpecialRepairFlag = '0'))\n" +
  3745. " and pd.Usercode = :Usercode\n" +
  3746. " and (:goodscode is null or instr(pd.goodscode, :goodscode) > 0)\n" +
  3747. " and pd.AccountID = :AccountID\n" +
  3748. " AND pd.createtime >= :CreateTimeStart\n" +
  3749. " AND pd.createtime < :CreateTimeEnd) qd\n" +
  3750. //" left join tp_pc_productionline pcpl\n" +
  3751. //" on pcpl.productionlineid = qd.productionlineid\n" +
  3752. " left join tp_pc_procedure pcp\n" +
  3753. " on pcp.procedureid = qd.procedureid\n" +
  3754. " left join tp_mst_goods mstgoods\n" +
  3755. " on mstgoods.goodsid = qd.goodsid\n" +
  3756. //" left join tp_mst_goodstype mstgoodstype\n" +
  3757. //" on mstgoodstype.goodstypeid = mstgoods.goodstypeid\n" +
  3758. //" left join tp_mst_goodstype mstgoodstype2\n" +
  3759. //" on mstgoodstype2.goodstypecode =\n" +
  3760. //" substr(mstgoodstype.goodstypecode, 0, 6)\n" +
  3761. " group by grouping sets((--pcpl.productionlinename,\n" +
  3762. " pcp.procedurename,\n" +
  3763. //" mstgoodstype2.goodstypename,\n" +
  3764. //" --qd.usercode,\n" +
  3765. //" mstgoodstype.goodstypename,\n" +
  3766. " mstgoods.goodscode),\n" +
  3767. " pcp.procedurename,())\n" +
  3768. " order by --pcpl.productionlinename,\n" +
  3769. " pcp.procedurename,\n" +
  3770. //" mstgoodstype2.goodstypename,\n" +
  3771. //" --qd.usercode,\n" +
  3772. //" mstgoodstype.goodstypename,\n" +
  3773. " mstgoods.goodscode) qdgroup";
  3774. DataTable data = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  3775. ServiceResultEntity sre = new ServiceResultEntity();
  3776. if (data == null)
  3777. {
  3778. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3779. return sre;
  3780. }
  3781. sre.Data = new DataSet();
  3782. sre.Data.Tables.Add(data);
  3783. #endregion
  3784. parameters.Add(new OracleParameter(":in_rptSprocedureId", OracleDbType.Int32, rptSProcedureID, ParameterDirection.Input));
  3785. #region
  3786. string sqlString1 = "\n" +
  3787. "select qdgroup.gid,\n" +
  3788. //" decode(qdgroup.gid, 0, qdgroup.productionlinename, '--') productionlinename,\n" +
  3789. " decode(qdgroup.gid, 7, '总计', 3, '合计', 0, qdgroup.procedurename, '') procedurename,\n" +
  3790. " decode(qdgroup.gid, 1, '小计', 0, qdgroup.kilncode, '') kilncode,\n" +
  3791. //" decode(qdgroup.gid, 1, '小计', 0, qdgroup.goodstypename2, '--') goodstypename2,\n" +
  3792. //" decode(qdgroup.gid, 0, qdgroup.goodstypename2, '') goodstypename2,\n" +
  3793. //" --decode(qdgroup.gid, 0, qdgroup.usercode, '--') usercode,\n" +
  3794. //" decode(qdgroup.gid, 0, qdgroup.goodstypename, '--') goodstypename,\n" +
  3795. " decode(qdgroup.gid, 0, qdgroup.goodscode, '--') goodscode,\n" +
  3796. " to_char(qdgroup.OutKilnCount) OutKilnCount,\n" +
  3797. //" qdgroup.GoodCount,\n" +
  3798. // 合格率(正品+副品)
  3799. //" to_char((qdgroup.GoodCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent\n" +
  3800. " to_char(((qdgroup.GoodCount +qdgroup.BadCount) / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent\n" +
  3801. //" qdgroup.SubstandardCount,\n" +
  3802. //" to_char((qdgroup.SubstandardCount / qdgroup.OutKilnCount) * 100,\n" +
  3803. //" '990.00') || '%' SubstandardPercent,\n" +
  3804. //" qdgroup.BadCount,\n" +
  3805. //" to_char((qdgroup.BadCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' BadPercent,\n" +
  3806. //" qdgroup.ReFireCount,\n" +
  3807. //" to_char((qdgroup.ReFireCount / qdgroup.OutKilnCount) * 100,\n" +
  3808. //" '990.00') || '%' ReFirePercent\n" +
  3809. " from (select grouping_id(--pcpl.productionlinename,\n" +
  3810. " pcp.procedurename,\n" +
  3811. " mstkiln.kilncode,\n" +
  3812. //" mstgoodstype2.goodstypename) gid,\n" +
  3813. //" --qd.usercode,\n" +
  3814. " mstgoods.goodscode) gid,\n" +
  3815. //" pcpl.productionlinename,\n" +
  3816. " pcp.procedurename,\n" +
  3817. " mstkiln.kilncode,\n" +
  3818. //" mstgoodstype2.goodstypename goodstypename2,\n" +
  3819. //" --qd.usercode,\n" +
  3820. //" mstgoodstype.goodstypename,\n" +
  3821. " mstgoods.goodscode,\n" +
  3822. " sum(qd.OutKilnCount) OutKilnCount,\n" +
  3823. " sum(qd.GoodCount) GoodCount,\n" +
  3824. //" sum(qd.SubstandardCount) SubstandardCount,\n" +
  3825. " sum(qd.BadCount) BadCount\n" +
  3826. //" sum(qd.ReFireCount) ReFireCount\n" +
  3827. " from (select --pdbc.barcode,\n" +
  3828. //" pdbc.productionlineid,\n" +
  3829. " pdata.procedureid,\n" +
  3830. //" --pdata.usercode,\n" +
  3831. " pdbc.goodsid,\n" +
  3832. " pdbc.kilnid,\n" +
  3833. " 1 OutKilnCount,\n" +
  3834. " case\n" +
  3835. " when defect.defectprocedureid is not null and glt.goodsleveltypeid in (5, 6, 7) then\n" +
  3836. " 0\n" +
  3837. " else\n" +
  3838. " 1\n" +
  3839. " end GoodCount,\n" +
  3840. //" case\n" +
  3841. //" when defect.defectprocedureid is not null and glt.goodsleveltypeid = 7 then\n" +
  3842. //" 1\n" +
  3843. //" else\n" +
  3844. //" 0\n" +
  3845. //" end SubstandardCount,\n" +
  3846. //" case\n" +
  3847. //" when defect.defectprocedureid is not null and glt.goodsleveltypeid = 6 then\n" +
  3848. //" 1\n" +
  3849. //" else\n" +
  3850. //" 0\n" +
  3851. //" end ReFireCount,\n" +
  3852. " case\n" +
  3853. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 5 then\n" +
  3854. " 1\n" +
  3855. " else\n" +
  3856. " 0\n" +
  3857. " end BadCount\n" +
  3858. " from (select distinct pd.barcode,\n" +
  3859. //" pd.productionlineid,\n" +
  3860. " pd.goodsid,\n" +
  3861. " pd.kilnid,\n" +
  3862. " pd.kilncarbatchno\n" +
  3863. " from tp_pm_productiondata pd\n" +
  3864. " where pd.valueflag = '1'\n" +
  3865. " and pd.procedureid = :in_rptSprocedureId \n" +
  3866. " and pd.AccountID = :AccountID\n" +
  3867. " and (:goodscode is null or instr(pd.goodscode, :goodscode) > 0)\n" +
  3868. " and pd.checktime >= :CreateTimeStart\n" +
  3869. " and pd.checktime < :CreateTimeEnd\n" +
  3870. " ) pdbc\n" +
  3871. " inner join (select pd.barcode,\n" +
  3872. //" --pd.userid,\n" +
  3873. //" --pd.usercode,\n" +
  3874. " pd.procedureid\n" +
  3875. " from tp_pm_productiondata pd\n" +
  3876. " where pd.valueflag = '1'\n" +
  3877. " and pd.AccountID = :AccountID\n" +
  3878. " and pd.usercode = :Usercode\n" +
  3879. " and (:goodscode is null or instr(pd.goodscode, :goodscode) > 0)\n" +
  3880. // 公坯、干补不算交坯工序的质量。
  3881. //" and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.IsPublicBody = '0' and pd.SpecialRepairFlag = '0')) \n" +
  3882. // 干补不算交坯工序的质量。
  3883. " and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.SpecialRepairFlag = '0')) \n" +
  3884. " ) pdata\n" +
  3885. " on pdata.barcode = pdbc.barcode\n" +
  3886. " left join (select kcbc.barcode, kcbc.kilncarbatchno, kcbc.goodsleveltypeid, kcbc.productiondataid\n" +
  3887. " from (select pd.barcode,\n" +
  3888. " pd.kilncarbatchno,\n" +
  3889. " pd.goodsleveltypeid,\n" +
  3890. " pd.productiondataid,\n" +
  3891. " ROW_NUMBER() OVER(PARTITION BY pd.barcode, pd.kilncarbatchno ORDER BY pd.productiondataid desc) AS dataid\n" +
  3892. " from tp_pm_productiondata pd\n" +
  3893. " where pd.valueflag = '1'\n" +
  3894. " and pd.AccountID = :AccountID\n" +
  3895. " and (:goodscode is null or instr(pd.goodscode, :goodscode) > 0)\n" +
  3896. " and length(pd.kilncarbatchno) > 0\n" +
  3897. " AND pd.createtime >= :CreateTimeStart\n" +
  3898. " and pd.modeltype = -1) kcbc\n" +
  3899. " where kcbc.dataid = 1) glt\n" +
  3900. " on pdbc.kilncarbatchno = glt.kilncarbatchno\n" +
  3901. " and pdbc.barcode = glt.barcode\n" +
  3902. " left join (select distinct productiondataid, defectprocedureid" +
  3903. " from tp_pm_defect def " +
  3904. " where def.valueflag='1'" +
  3905. " and def.AccountID = :AccountID\n" +
  3906. " and (:goodscode is null or instr(def.goodscode, :goodscode) > 0)\n" +
  3907. " AND def.createtime >= :CreateTimeStart) defect\n" +
  3908. " on defect.productiondataid = glt.productiondataid\n" +
  3909. " and pdata.procedureid = defect.defectprocedureid) qd\n" +
  3910. //" inner join tp_pc_productionline pcpl\n" +
  3911. //" on pcpl.productionlineid = qd.productionlineid\n" +
  3912. " inner join tp_pc_procedure pcp\n" +
  3913. " on pcp.procedureid = qd.procedureid\n" +
  3914. " inner join tp_mst_kiln mstkiln\n" +
  3915. " on mstkiln.kilnid = qd.kilnid\n" +
  3916. " inner join tp_mst_goods mstgoods\n" +
  3917. " on mstgoods.goodsid = qd.goodsid\n" +
  3918. //" inner join tp_mst_goodstype mstgoodstype\n" +
  3919. //" on mstgoodstype.goodstypeid = mstgoods.goodstypeid\n" +
  3920. //" inner join tp_mst_goodstype mstgoodstype2\n" +
  3921. //" on mstgoodstype2.goodstypecode =\n" +
  3922. //" substr(mstgoodstype.goodstypecode, 0, 6)\n" +
  3923. //" and mstgoodstype.AccountID = mstgoodstype2.AccountID\n" +
  3924. " group by grouping sets((--pcpl.productionlinename,\n" +
  3925. " pcp.procedurename,\n" +
  3926. " mstkiln.kilncode,\n" +
  3927. //" mstgoodstype2.goodstypename),\n" +
  3928. //" --qd.usercode,\n" +
  3929. //" mstgoodstype.goodstypename,\n" +
  3930. " mstgoods.goodscode),\n" +
  3931. " (--pcpl.productionlinename,\n" +
  3932. " pcp.procedurename,\n" +
  3933. " mstkiln.kilncode),\n" +
  3934. //" mstgoodstype2.goodstypename),\n" +
  3935. " (--pcpl.productionlinename,\n" +
  3936. " pcp.procedurename),\n" +
  3937. //" mstkiln.kilncode),\n" +
  3938. " ())\n" +
  3939. " order by --pcpl.productionlinename,\n" +
  3940. " pcp.procedurename,\n" +
  3941. " mstkiln.kilncode,\n" +
  3942. //" mstgoodstype2.goodstypename\n" +
  3943. //" --qd.usercode,\n" +
  3944. //" mstgoodstype.goodstypename,\n" +
  3945. " mstgoods.goodscode\n" +
  3946. " ) qdgroup\n";
  3947. DataTable data1 = conn.GetSqlResultToDt(sqlString1, parameters.ToArray());
  3948. if (data1 == null)
  3949. {
  3950. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3951. return sre;
  3952. }
  3953. sre.Data.Tables.Add(data1);
  3954. return sre;
  3955. #endregion
  3956. }
  3957. catch (Exception ex)
  3958. {
  3959. throw ex;
  3960. }
  3961. finally
  3962. {
  3963. if (conn != null &&
  3964. conn.ConnState == ConnectionState.Open)
  3965. {
  3966. conn.Close();
  3967. }
  3968. }
  3969. }
  3970. /// <summary>
  3971. /// 取得RPT000001画面(半检数据统计表)的查询数据
  3972. /// </summary>
  3973. /// <param name="user">登录用户信息</param>
  3974. /// <param name="se">查询条件</param>
  3975. /// <returns>查询结果</returns>
  3976. public static ServiceResultEntity GetPDARPT000001Data(SUserInfo user, string usercode, DateTime datebegin, DateTime dateend)
  3977. {
  3978. IDBConnection conn = null;
  3979. try
  3980. {
  3981. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3982. List<OracleParameter> parameters = new List<OracleParameter>();
  3983. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  3984. parameters.Add(new OracleParameter(":datebegin", OracleDbType.Date, datebegin, ParameterDirection.Input));
  3985. parameters.Add(new OracleParameter(":dateend", OracleDbType.Date, dateend, ParameterDirection.Input));
  3986. parameters.Add(new OracleParameter(":usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  3987. // 返工
  3988. string sqlString =
  3989. "SELECT p.procedurename, op.procedurename overprocedurename, sc.goodscode, COUNT(sc.semicheckid) reworkcount\n" +
  3990. " FROM TP_PM_SemiCheck sc\n" +
  3991. " INNER JOIN tp_pc_procedure p\n" +
  3992. " ON p.procedureid = sc.ReworkProcedureID\n" +
  3993. " INNER JOIN tp_pc_procedure op\n" +
  3994. " ON op.procedureid = sc.ProcedureID\n" +
  3995. " WHERE sc.accountid = :accountid\n" +
  3996. " AND sc.ValueFlag = '1'\n" +
  3997. " AND sc.BackOutFlag = '0'\n" +
  3998. " AND sc.SemiCheckType = 1\n" +
  3999. " AND (:usercode IS NULL OR sc.reworkusercode = :usercode)\n" +
  4000. " AND (:datebegin IS NULL OR sc.semichecktime >= :datebegin)\n" +
  4001. " AND (:dateend IS NULL OR sc.semichecktime <= :dateend)\n" +
  4002. " GROUP BY p.procedurename, op.procedurename, p.displayno, sc.goodscode, sc.goodsid\n" +
  4003. " ORDER BY p.displayno, sc.goodscode";
  4004. DataTable data = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  4005. ServiceResultEntity sre = new ServiceResultEntity();
  4006. //if (data == null || data.Rows.Count == 0)
  4007. //{
  4008. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4009. // return sre;
  4010. //}
  4011. data.TableName = "rework";
  4012. sre.Data = new DataSet();
  4013. sre.Data.Tables.Add(data);
  4014. // 复检
  4015. string sqlString1 =
  4016. "SELECT p.procedurename, op.procedurename overprocedurename\n" +
  4017. " ,sc.goodscode\n" +
  4018. " ,SUM(decode(sc.ReSemiCheckType, 1, 1, 0)) qcount\n" +
  4019. " ,SUM(decode(sc.ReSemiCheckType, 2, 1, 0)) unqcount\n" +
  4020. " FROM TP_PM_SemiCheck sc\n" +
  4021. " INNER JOIN tp_pc_procedure p\n" +
  4022. " ON p.procedureid = sc.ReworkProcedureID\n" +
  4023. " INNER JOIN tp_pc_procedure op\n" +
  4024. " ON op.procedureid = sc.ProcedureID\n" +
  4025. " WHERE sc.accountid = :accountid\n" +
  4026. " AND sc.ValueFlag = '1'\n" +
  4027. " AND sc.BackOutFlag = '0'\n" +
  4028. " AND sc.SemiCheckType = 1\n" +
  4029. " AND sc.ReSemiCheckType <> 0\n" +
  4030. " AND (:usercode IS NULL OR sc.reworkusercode = :usercode)\n" +
  4031. " AND (:datebegin IS NULL OR sc.semichecktime >= :datebegin)\n" +
  4032. " AND (:dateend IS NULL OR sc.semichecktime <= :dateend)\n" +
  4033. " GROUP BY p.procedurename, op.procedurename, p.displayno, sc.goodscode\n" +
  4034. " ORDER BY p.displayno, sc.goodscode";
  4035. DataTable data1 = conn.GetSqlResultToDt(sqlString1, parameters.ToArray());
  4036. //if (data1 == null || data1.Rows.Count == 0)
  4037. //{
  4038. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4039. // return sre;
  4040. //}
  4041. data1.TableName = "ReSemiCheck";
  4042. sre.Data.Tables.Add(data1);
  4043. // 未复检(总)
  4044. string sqlString2 =
  4045. "SELECT p.procedurename, op.procedurename overprocedurename\n" +
  4046. " ,sc.goodscode\n" +
  4047. //" ,SUM(decode(sc.ReSemiCheckType, 1, 1, 0)) qcount\n" +
  4048. //" ,SUM(decode(sc.ReSemiCheckType, 2, 1, 0)) unqcount\n" +
  4049. " ,COUNT(sc.semicheckid) renocountsum\n" +
  4050. " FROM TP_PM_SemiCheck sc\n" +
  4051. " INNER JOIN tp_pc_procedure p\n" +
  4052. " ON p.procedureid = sc.ReworkProcedureID\n" +
  4053. " INNER JOIN tp_pc_procedure op\n" +
  4054. " ON op.procedureid = sc.ProcedureID\n" +
  4055. " WHERE sc.accountid = :accountid\n" +
  4056. " AND sc.ValueFlag = '1'\n" +
  4057. " AND sc.BackOutFlag = '0'\n" +
  4058. " AND sc.SemiCheckType = 1\n" +
  4059. " AND sc.ReSemiCheckType = 0\n" +
  4060. " AND (:usercode IS NULL OR sc.reworkusercode = :usercode)\n" +
  4061. //" AND (:datebegin IS NULL OR sc.semichecktime >= :datebegin)\n" +
  4062. //" AND (:dateend IS NULL OR sc.semichecktime <= :dateend)\n" +
  4063. " GROUP BY p.procedurename, op.procedurename, p.displayno, sc.goodscode\n" +
  4064. " ORDER BY p.displayno, sc.goodscode";
  4065. parameters.Clear();
  4066. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  4067. //parameters.Add(new OracleParameter(":datebegin", OracleDbType.Date, datebegin, ParameterDirection.Input));
  4068. //parameters.Add(new OracleParameter(":dateend", OracleDbType.Date, dateend, ParameterDirection.Input));
  4069. parameters.Add(new OracleParameter(":usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  4070. DataTable data2 = conn.GetSqlResultToDt(sqlString2, parameters.ToArray());
  4071. //if (data1 == null || data1.Rows.Count == 0)
  4072. //{
  4073. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4074. // return sre;
  4075. //}
  4076. data2.TableName = "NoReSemiCheck";
  4077. sre.Data.Tables.Add(data2);
  4078. // 半检不合格
  4079. string sqlString3 =
  4080. "SELECT scdp.procedurename, op.procedurename overprocedurename\n" +
  4081. " ,sc.goodscode\n" +
  4082. " ,COUNT(distinct sc.semicheckid) badcountsum\n" +
  4083. " FROM TP_PM_SemiCheck sc\n" +
  4084. //" INNER JOIN tp_pc_procedure p\n" +
  4085. //" ON p.procedureid = sc.ReworkProcedureID\n" +
  4086. " INNER JOIN tp_pc_procedure op\n" +
  4087. " ON op.procedureid = sc.ProcedureID\n" +
  4088. " LEFT JOIN TP_PM_SemiCheckDefect scd\n" +
  4089. " ON sc.semicheckid = scd.semicheckid\n" +
  4090. " LEFT JOIN tp_pc_procedure scdp\n" +
  4091. " ON scdp.procedureid = scd.defectprocedureid\n" +
  4092. " WHERE sc.accountid = :accountid\n" +
  4093. " AND sc.ValueFlag = '1'\n" +
  4094. " AND sc.BackOutFlag = '0'\n" +
  4095. " AND sc.SemiCheckType = 2\n" +
  4096. " AND sc.ReSemiCheckType = 0\n" +
  4097. //" AND (:usercode IS NULL OR sc.reworkusercode = :usercode)\n" +
  4098. " AND (:usercode IS NULL OR scd.defectusercode = :usercode)\n" +
  4099. " AND (:datebegin IS NULL OR sc.semichecktime >= :datebegin)\n" +
  4100. " AND (:dateend IS NULL OR sc.semichecktime <= :dateend)\n" +
  4101. " GROUP BY scdp.procedurename, op.procedurename, scdp.displayno, sc.goodscode\n" +
  4102. " ORDER BY scdp.displayno, sc.goodscode";
  4103. parameters.Clear();
  4104. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  4105. parameters.Add(new OracleParameter(":datebegin", OracleDbType.Date, datebegin, ParameterDirection.Input));
  4106. parameters.Add(new OracleParameter(":dateend", OracleDbType.Date, dateend, ParameterDirection.Input));
  4107. parameters.Add(new OracleParameter(":usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  4108. DataTable data3 = conn.GetSqlResultToDt(sqlString3, parameters.ToArray());
  4109. //if (data1 == null || data1.Rows.Count == 0)
  4110. //{
  4111. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4112. // return sre;
  4113. //}
  4114. data3.TableName = "SemiCheckBad";
  4115. sre.Data.Tables.Add(data3);
  4116. return sre;
  4117. }
  4118. catch (Exception ex)
  4119. {
  4120. throw ex;
  4121. }
  4122. finally
  4123. {
  4124. if (conn != null &&
  4125. conn.ConnState == ConnectionState.Open)
  4126. {
  4127. conn.Close();
  4128. }
  4129. }
  4130. }
  4131. /// <summary>
  4132. /// 取得RPT000002画面(工号质量统计表)的查询数据
  4133. /// </summary>
  4134. /// <param name="user">登录用户信息</param>
  4135. /// <param name="se">查询条件</param>
  4136. /// <returns>查询结果</returns>
  4137. public static ServiceResultEntity GetPDARPT000002Data(SUserInfo user, int rptSProcedureID, string usercode, DateTime datebegin, DateTime dateend)
  4138. {
  4139. IDBConnection conn = null;
  4140. try
  4141. {
  4142. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4143. List<OracleParameter> parameters = new List<OracleParameter>();
  4144. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  4145. parameters.Add(new OracleParameter(":DateBegin", OracleDbType.Date, datebegin, ParameterDirection.Input));
  4146. parameters.Add(new OracleParameter(":DateEnd", OracleDbType.Date, dateend, ParameterDirection.Input));
  4147. parameters.Add(new OracleParameter(":Usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  4148. parameters.Add(new OracleParameter(":in_rptSprocedureId", OracleDbType.Int32, rptSProcedureID, ParameterDirection.Input));
  4149. string sqlString1 =
  4150. "select qdgroup.GoodsCode,\n" +
  4151. " qdgroup.OutKilnCount OutKilnCount,\n" +
  4152. // 合格品(正品+副品)
  4153. " qdgroup.GoodCount + qdgroup.BadCount as pcount,\n" +
  4154. // 合格率(正品+副品)
  4155. " to_char(((qdgroup.GoodCount +qdgroup.BadCount) / qdgroup.OutKilnCount) * 100, '990.00') || '%' PPercent,\n" +
  4156. // 正品
  4157. " qdgroup.GoodCount,\n" +
  4158. " to_char((qdgroup.GoodCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent,\n" +
  4159. // 副品
  4160. " qdgroup.BadCount,\n" +
  4161. " to_char((qdgroup.BadCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' BadPercent,\n" +
  4162. // 次品
  4163. " qdgroup.SubstandardCount,\n" +
  4164. " to_char((qdgroup.SubstandardCount / qdgroup.OutKilnCount) * 100,\n" +
  4165. " '990.00') || '%' SubstandardPercent,\n" +
  4166. // 重烧
  4167. " qdgroup.ReFireCount,\n" +
  4168. " to_char((qdgroup.ReFireCount / qdgroup.OutKilnCount) * 100,\n" +
  4169. " '990.00') || '%' ReFirePercent\n" +
  4170. " from (select qd.goodscode || '【' || pcp.procedurename || '】' as GoodsCode,\n" +
  4171. //" pcp.procedurename,\n" +
  4172. " sum(qd.OutKilnCount) OutKilnCount,\n" +
  4173. " sum(qd.GoodCount) GoodCount,\n" +
  4174. " sum(qd.SubstandardCount) SubstandardCount,\n" +
  4175. " sum(qd.BadCount) BadCount,\n" +
  4176. " sum(qd.ReFireCount) ReFireCount\n" +
  4177. " from (select --pdbc.barcode,\n" +
  4178. " pdata.procedureid,\n" +
  4179. " pdbc.goodscode,\n" +
  4180. " 1 OutKilnCount,\n" +
  4181. " case\n" +
  4182. " when defect.defectprocedureid is not null and glt.goodsleveltypeid in (5, 6, 7) then\n" +
  4183. " 0\n" +
  4184. " else\n" +
  4185. " 1\n" +
  4186. " end GoodCount,\n" +
  4187. " case\n" +
  4188. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 7 then\n" +
  4189. " 1\n" +
  4190. " else\n" +
  4191. " 0\n" +
  4192. " end SubstandardCount,\n" +
  4193. " case\n" +
  4194. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 6 then\n" +
  4195. " 1\n" +
  4196. " else\n" +
  4197. " 0\n" +
  4198. " end ReFireCount,\n" +
  4199. " case\n" +
  4200. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 5 then\n" +
  4201. " 1\n" +
  4202. " else\n" +
  4203. " 0\n" +
  4204. " end BadCount\n" +
  4205. " from (select distinct pd.barcode,\n" +
  4206. " pd.goodscode,\n" +
  4207. " pd.kilncarbatchno\n" +
  4208. " from tp_pm_productiondata pd\n" +
  4209. " where pd.valueflag = '1'\n" +
  4210. " and pd.procedureid = :in_rptSprocedureId \n" +
  4211. " and pd.AccountID = :AccountID\n" +
  4212. " and pd.createtime >= :DateBegin\n" +
  4213. " and pd.createtime <= :DateEnd\n" +
  4214. " ) pdbc\n" +
  4215. " inner join (select pd.barcode,\n" +
  4216. " pd.procedureid\n" +
  4217. " from tp_pm_productiondata pd\n" +
  4218. " where pd.valueflag = '1'\n" +
  4219. " and pd.AccountID = :AccountID\n" +
  4220. " and pd.usercode = :Usercode\n" +
  4221. // 公坯、干补不算交坯工序的质量。
  4222. //" and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.IsPublicBody = '0' and pd.SpecialRepairFlag = '0')) \n" +
  4223. // 干补不算交坯工序的质量。
  4224. " and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.SpecialRepairFlag = '0')) \n" +
  4225. " ) pdata\n" +
  4226. " on pdata.barcode = pdbc.barcode\n" +
  4227. " left join (select kcbc.barcode, kcbc.kilncarbatchno, kcbc.goodsleveltypeid, kcbc.productiondataid\n" +
  4228. " from (select pd.barcode,\n" +
  4229. " pd.kilncarbatchno,\n" +
  4230. " pd.goodsleveltypeid,\n" +
  4231. " pd.productiondataid,\n" +
  4232. " ROW_NUMBER() OVER(PARTITION BY pd.barcode, pd.kilncarbatchno ORDER BY pd.productiondataid desc) AS dataid\n" +
  4233. " from tp_pm_productiondata pd\n" +
  4234. " where pd.valueflag = '1'\n" +
  4235. " and pd.AccountID = :AccountID\n" +
  4236. " and length(pd.kilncarbatchno) > 0\n" +
  4237. " AND pd.createtime >= :DateBegin\n" +
  4238. " and pd.modeltype = -1) kcbc\n" +
  4239. " where kcbc.dataid = 1) glt\n" +
  4240. " on pdbc.kilncarbatchno = glt.kilncarbatchno\n" +
  4241. " and pdbc.barcode = glt.barcode\n" +
  4242. " left join (select distinct productiondataid, defectprocedureid\n" +
  4243. " from tp_pm_defect def\n" +
  4244. " where def.valueflag='1'\n" +
  4245. " and def.AccountID = :AccountID\n" +
  4246. " AND def.createtime >= :DateBegin) defect\n" +
  4247. " on defect.productiondataid = glt.productiondataid\n" +
  4248. " and pdata.procedureid = defect.defectprocedureid) qd\n" +
  4249. " inner join tp_pc_procedure pcp\n" +
  4250. " on pcp.procedureid = qd.procedureid\n" +
  4251. " group by qd.goodscode, pcp.procedurename, pcp.displayno\n" +
  4252. " order by pcp.displayno,\n" +
  4253. " qd.goodscode\n" +
  4254. " ) qdgroup\n";
  4255. ServiceResultEntity sre = new ServiceResultEntity();
  4256. sre.Data = new DataSet();
  4257. DataTable data1 = conn.GetSqlResultToDt(sqlString1, parameters.ToArray());
  4258. //if (data1 == null || data1.Rows.Count == 0)
  4259. //{
  4260. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4261. // return sre;
  4262. //}
  4263. sre.Data.Tables.Add(data1);
  4264. return sre;
  4265. }
  4266. catch (Exception ex)
  4267. {
  4268. throw ex;
  4269. }
  4270. finally
  4271. {
  4272. if (conn != null &&
  4273. conn.ConnState == ConnectionState.Open)
  4274. {
  4275. conn.Close();
  4276. }
  4277. }
  4278. }
  4279. /// <summary>
  4280. /// 取得RPT000003画面(损坯数据统计表)的查询数据
  4281. /// </summary>
  4282. /// <param name="user">登录用户信息</param>
  4283. /// <param name="se">查询条件</param>
  4284. /// <returns>查询结果</returns>
  4285. public static ServiceResultEntity GetPDARPT000003Data(SUserInfo user, string usercode, DateTime datebegin, DateTime dateend)
  4286. {
  4287. IDBConnection conn = null;
  4288. try
  4289. {
  4290. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4291. List<OracleParameter> parameters = new List<OracleParameter>();
  4292. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  4293. parameters.Add(new OracleParameter(":datebegin", OracleDbType.Date, datebegin, ParameterDirection.Input));
  4294. parameters.Add(new OracleParameter(":dateend", OracleDbType.Date, dateend, ParameterDirection.Input));
  4295. parameters.Add(new OracleParameter(":usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  4296. // 本工号损坯
  4297. string sqlString =
  4298. "SELECT spp.procedurename sppname\n" +
  4299. " ,rpp.procedurename rppname\n" +
  4300. " ,sp.goodscode\n" +
  4301. " ,COUNT(sp.barcode) scount\n" +
  4302. " FROM TP_PM_ScrapProduct sp\n" +
  4303. " INNER JOIN tp_pc_procedure spp\n" +
  4304. " ON spp.ProcedureID = sp.procedureid\n" +
  4305. " LEFT JOIN TP_PM_ResponProcedure rp\n" +
  4306. " ON rp.scrapproductid = sp.scrapproductid\n" +
  4307. " LEFT JOIN tp_pc_procedure rpp\n" +
  4308. " ON rp.procedureid = rpp.procedureid\n" +
  4309. " WHERE sp.accountid = :accountid\n" +
  4310. " AND sp.auditstatus = 1\n" +
  4311. " AND sp.valueflag = '1'\n" +
  4312. " AND sp.GoodsLevelTypeID IN (8, 9)\n" +
  4313. " AND sp.ScrapType = '0'\n" +
  4314. // 重烧后报损,不算后道损
  4315. //" AND sp.IsReFire = '0'\n" +
  4316. " AND EXISTS (SELECT 1\n" +
  4317. " FROM TP_PM_ScrapResponsible sr\n" +
  4318. " WHERE sr.scrapproductid = sp.scrapproductid\n" +
  4319. " AND sr.usercode = :usercode)\n" +
  4320. " AND sp.AuditDate >= :datebegin\n" +
  4321. " AND sp.AuditDate <= :dateend\n" +
  4322. " GROUP BY spp.procedurename\n" +
  4323. " ,rpp.procedurename\n" +
  4324. " ,spp.displayno\n" +
  4325. " ,rpp.displayno\n" +
  4326. " ,sp.goodscode\n" +
  4327. " ORDER BY spp.displayno, rpp.displayno, sp.goodscode";
  4328. DataTable data = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  4329. ServiceResultEntity sre = new ServiceResultEntity();
  4330. //if (data == null || data.Rows.Count == 0)
  4331. //{
  4332. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4333. // return sre;
  4334. //}
  4335. data.TableName = "this";
  4336. sre.Data = new DataSet();
  4337. sre.Data.Tables.Add(data);
  4338. // 后道损坯
  4339. // 后道工序损坯,应该经本工序生产后,非本工序责任损坯
  4340. string sqlString1 =
  4341. "SELECT spp.procedurename sppname\n" +
  4342. " ,rpp.procedurename rppname\n" +
  4343. " ,sp.goodscode\n" +
  4344. " ,COUNT(DISTINCT sp.barcode) scount\n" +
  4345. " FROM TP_PM_ScrapProduct sp\n" +
  4346. " INNER JOIN tp_pc_procedure spp\n" +
  4347. " ON spp.ProcedureID = sp.procedureid\n" +
  4348. " LEFT JOIN TP_PM_ResponProcedure rp\n" +
  4349. " ON rp.scrapproductid = sp.scrapproductid\n" +
  4350. " LEFT JOIN tp_pc_procedure rpp\n" +
  4351. " ON rp.procedureid = rpp.procedureid\n" +
  4352. " WHERE sp.accountid = :accountid\n" +
  4353. " AND sp.auditstatus = 1\n" +
  4354. " AND sp.valueflag = '1'\n" +
  4355. " AND sp.GoodsLevelTypeID IN (8, 9)\n" +
  4356. " AND sp.ScrapType = '0'\n" +
  4357. // 重烧后报损,不算后道损
  4358. " AND sp.IsReFire = '0'\n" +
  4359. // 非本工序责任损坯
  4360. " AND NOT EXISTS (SELECT 1\n" +
  4361. " FROM TP_PM_ScrapResponsible sr\n" +
  4362. " WHERE sr.scrapproductid = sp.scrapproductid\n" +
  4363. " AND sr.usercode = :usercode)\n" +
  4364. // 经本工序生产后
  4365. " AND EXISTS (SELECT 1\n" +
  4366. " FROM tp_pm_productiondata pd\n" +
  4367. " WHERE pd.barcode = sp.barcode\n" +
  4368. " AND pd.productiondataid <= sp.productiondataid\n" +
  4369. " AND pd.usercode = :usercode)\n" +
  4370. " AND sp.AuditDate >= :datebegin\n" +
  4371. " AND sp.AuditDate <= :dateend\n" +
  4372. " GROUP BY spp.procedurename\n" +
  4373. " ,rpp.procedurename\n" +
  4374. " ,spp.displayno\n" +
  4375. " ,rpp.displayno\n" +
  4376. " ,sp.goodscode\n" +
  4377. " ORDER BY spp.displayno, rpp.displayno, sp.goodscode";
  4378. DataTable data1 = conn.GetSqlResultToDt(sqlString1, parameters.ToArray());
  4379. //if (data1 == null || data1.Rows.Count == 0)
  4380. //{
  4381. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4382. // return sre;
  4383. //}
  4384. data1.TableName = "next";
  4385. sre.Data.Tables.Add(data1);
  4386. return sre;
  4387. }
  4388. catch (Exception ex)
  4389. {
  4390. throw ex;
  4391. }
  4392. finally
  4393. {
  4394. if (conn != null &&
  4395. conn.ConnState == ConnectionState.Open)
  4396. {
  4397. conn.Close();
  4398. }
  4399. }
  4400. }
  4401. #endregion
  4402. /// <summary>
  4403. /// 获取用户是否有统计产成品权限
  4404. /// </summary>
  4405. /// <returns></returns>
  4406. public static int GetStatisticsFinishedProductFuntion(SUserInfo userInfo)
  4407. {
  4408. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4409. try
  4410. {
  4411. con.Open();
  4412. string strSql = "";
  4413. strSql = @"SELECT F.Functionlevel,
  4414. F.FunctionCode,
  4415. F.FunctionName,
  4416. F.FullName,
  4417. F.FunctionFlag,
  4418. F.FunctionButtonFlag,
  4419. F.FormName,
  4420. F.ButtonName
  4421. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4422. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  4423. WHERE F.ValueFlag = 1
  4424. AND F.FunctionCode NOT LIKE '0101%'
  4425. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '070205') = 1 /*F.FunctionCode='070205'*/";
  4426. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4427. DataSet ds = con.GetSqlResultToDs(strSql);
  4428. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4429. {
  4430. return 1;
  4431. }
  4432. return 0;
  4433. }
  4434. catch (Exception ex)
  4435. {
  4436. throw ex;
  4437. }
  4438. finally
  4439. {
  4440. if (con.ConnState == ConnectionState.Open)
  4441. {
  4442. con.Close();
  4443. }
  4444. }
  4445. }
  4446. /// <summary>
  4447. /// 获取用户是否有盘点权限
  4448. /// </summary>
  4449. /// <returns></returns>
  4450. public static int GetInCheckedFuntion(SUserInfo userInfo)
  4451. {
  4452. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4453. try
  4454. {
  4455. con.Open();
  4456. string strSql = "";
  4457. strSql = @"SELECT F.Functionlevel,
  4458. F.FunctionCode,
  4459. F.FunctionName,
  4460. F.FullName,
  4461. F.FunctionFlag,
  4462. F.FunctionButtonFlag,
  4463. F.FormName,
  4464. F.ButtonName
  4465. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4466. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  4467. WHERE F.ValueFlag = 1
  4468. AND F.FunctionCode NOT LIKE '0101%'
  4469. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '060802') = 1 /*F.FunctionCode='060802'*/";
  4470. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4471. DataSet ds = con.GetSqlResultToDs(strSql);
  4472. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4473. {
  4474. return 1;
  4475. }
  4476. return 0;
  4477. }
  4478. catch (Exception ex)
  4479. {
  4480. throw ex;
  4481. }
  4482. finally
  4483. {
  4484. if (con.ConnState == ConnectionState.Open)
  4485. {
  4486. con.Close();
  4487. }
  4488. }
  4489. }
  4490. /// <summary>
  4491. /// 获取主表盘点信息
  4492. /// </summary>
  4493. /// <param name="entity">盘点类</param>
  4494. /// <param name="sUserInfo">用户基本信息</param>
  4495. /// <returns></returns>
  4496. public static DataSet GetAllInChecked(InCheckedEntity entity, SUserInfo sUserInfo)
  4497. {
  4498. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4499. try
  4500. {
  4501. oracleConn.Open();
  4502. OracleParameter[] paras = new OracleParameter[]{
  4503. new OracleParameter("in_inCheckedNo",OracleDbType.NVarchar2, entity.InCheckedNo,ParameterDirection.Input),
  4504. new OracleParameter("in_inCheckedName",OracleDbType.NVarchar2, entity.InCheckedName,ParameterDirection.Input),
  4505. new OracleParameter("in_remarks",OracleDbType.NVarchar2, entity.Remarks,ParameterDirection.Input),
  4506. new OracleParameter("in_begindate",OracleDbType.Date, entity.BeginDate,ParameterDirection.Input),
  4507. new OracleParameter("in_enddate",OracleDbType.Date,entity.EndDate,ParameterDirection.Input),
  4508. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  4509. new OracleParameter("in_accountID",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  4510. new OracleParameter("in_userID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  4511. };
  4512. DataSet returnDataSet = oracleConn.ExecStoredProcedure("PRO_PM_GetInCheckedPDA", paras);
  4513. return returnDataSet;
  4514. }
  4515. catch (Exception ex)
  4516. {
  4517. throw ex;
  4518. }
  4519. finally
  4520. {
  4521. if (oracleConn.ConnState == ConnectionState.Open)
  4522. {
  4523. oracleConn.Close();
  4524. }
  4525. }
  4526. }
  4527. /// <summary>
  4528. /// 根据查询非工号下的员工档案信息
  4529. /// </summary>
  4530. /// <param name="searchStaffEntity">员工查询实体</param>
  4531. /// <param name="sUserInfo">用户基本信息</param>
  4532. /// <returns>DataSet</returns>
  4533. public static DataSet SearchStaffInfo(SearchStaffEntity searchStaffEntity, SUserInfo sUserInfo)
  4534. {
  4535. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4536. try
  4537. {
  4538. con.Open();
  4539. string strSql = " SELECT Staff.Staffid,Staff.Staffname,Staff.Organizationid,"
  4540. + " Staff.Jobs,Staff.Staffstatus,Staff.Staffcode, Staff.Post,"
  4541. + " (CASE Staff.staffStatus"
  4542. + " WHEN 0 THEN '未入职'"
  4543. + " WHEN 1 THEN '试用 '"
  4544. + " WHEN 2 THEN '转正'"
  4545. + " WHEN 3 THEN '离职'"
  4546. + " ELSE '' END) AS staffStatusName,"
  4547. + " Jobs.Jobsname,Org.Organizationname,Org.OrganizationFullName,Post.PostName,0 Sel"
  4548. + " FROM TP_HR_Staff Staff"
  4549. + " LEFT JOIN TP_MST_Jobs Jobs ON Jobs.Jobsid = Staff.Jobs "
  4550. + " LEFT JOIN TP_MST_Organization Org ON Org.Organizationid = Staff.Organizationid "
  4551. + " LEFT JOIN TP_MST_Post Post on Post.Postid = Staff.Post "
  4552. + " WHERE Staff.Accountid = :accountID "
  4553. + " AND Staff.Staffstatus in(1,2)"
  4554. + " AND (Staff.Jobs = :jobs OR :jobs is null)";
  4555. if (!string.IsNullOrEmpty(searchStaffEntity.StaffCode))
  4556. {
  4557. //strSql += " AND Staff.Staffcode like '%" + searchStaffEntity.StaffCode + "%'";
  4558. strSql += " AND Staff.Staffcode ='" + searchStaffEntity.StaffCode + "'";
  4559. }
  4560. if (!string.IsNullOrEmpty(searchStaffEntity.StaffName))
  4561. {
  4562. strSql += " AND Staff.Staffname like '%" + searchStaffEntity.StaffName + "%'";
  4563. }
  4564. OracleParameter[] paras = new OracleParameter[]{
  4565. new OracleParameter(":accountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  4566. new OracleParameter(":jobs", OracleDbType.Int32, searchStaffEntity.Jobs, ParameterDirection.Input),
  4567. new OracleParameter(":jobs", OracleDbType.Int32, searchStaffEntity.Jobs, ParameterDirection.Input),
  4568. };
  4569. DataSet ds = con.GetSqlResultToDs(strSql, paras);
  4570. return ds;
  4571. }
  4572. catch (Exception ex)
  4573. {
  4574. throw ex;
  4575. }
  4576. finally
  4577. {
  4578. if (con.ConnState == ConnectionState.Open)
  4579. {
  4580. con.Close();
  4581. }
  4582. }
  4583. }
  4584. /// <summary>
  4585. /// 根据条件查询是否存在班次配置
  4586. /// </summary>
  4587. /// <param name="userCode">工号编码</param>
  4588. /// <param name="sUserInfo">用户基本信息</param>
  4589. /// <returns>DataSet</returns>
  4590. public static DataSet GetClassesSetting(string uCode, SUserInfo sUserInfo)
  4591. {
  4592. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4593. try
  4594. {
  4595. con.Open();
  4596. DataSet dsReturn = new DataSet();
  4597. string strSql = @"select userid,username,usercode,fun_cmn_getaccountdate(:accountid) as accountdate,
  4598. (select tp_pc_classessetting.remarks from tp_pc_classessetting where tp_pc_classessetting.classessettingid in
  4599. (select nvl(max(classessettingID),0) classessettingID from tp_pc_classessetting where tp_pc_classessetting.usercode=:usercode
  4600. and tp_pc_classessetting.accountdate=fun_cmn_getaccountdate(:accountid))) as remarks
  4601. from tp_mst_user where usercode=:usercode and accountid=:accountid";
  4602. OracleParameter[] paras = new OracleParameter[]{
  4603. new OracleParameter(":accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  4604. new OracleParameter(":usercode",OracleDbType.Varchar2,uCode,ParameterDirection.Input),
  4605. };
  4606. DataSet ds = con.GetSqlResultToDs(strSql, paras);
  4607. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4608. {
  4609. ds.Tables[0].TableName = "Table1";
  4610. dsReturn.Tables.Add(ds.Tables[0].Copy());
  4611. }
  4612. strSql = " SELECT classesDetail.ClassesSettingID,"
  4613. + " classesDetail.StaffID,classesDetail.Createtime,"
  4614. + " classesDetail.UjobsId UjobsId,classesDetail.SjobsId jobs,classesDetail.Remarks,classesDetail.CreateUserID,"
  4615. + " classesDetail.UpdateTime,CUser.Username createUserName,"
  4616. + " Jobs.Jobsname,Muser.Organizationid,Org.Organizationname,Staff.Staffname,Staff.Staffcode,"
  4617. + " status.staffstatusname AS staffStatusName,classesDetail.staffStatus,UJobs.JobsName as UJobsName,classesDetail.Ujobsid as UJobsId "
  4618. + " FROM TP_PC_ClassesDetail classesDetail "
  4619. + " LEFT JOIN TP_MST_User MUser ON MUser.UserId = classesDetail.UserID "
  4620. + " LEFT JOIN TP_MST_User CUser ON CUser.UserId = classesDetail.CreateUserID "
  4621. + " LEFT JOIN TP_MST_Jobs Jobs ON Jobs.Jobsid = classesDetail.SjobsId "
  4622. + " LEFT JOIN TP_MST_Organization Org ON Org.Organizationid = Muser.Organizationid "
  4623. + " LEFT JOIN TP_HR_Staff Staff ON staff.staffid = classesDetail.Staffid "
  4624. + " LEFT JOIN TP_MST_UserStaff userStaff ON classesDetail.STAFFID = userStaff.Staffid and classesDetail.Userid = userStaff.UserId"
  4625. + " LEFT JOIN TP_MST_JOBS UJobs ON classesDetail.Ujobsid = UJobs.Jobsid"
  4626. + " Inner JOIN TP_SYS_StaffStatus status on classesDetail.Staffstatus = status.staffstatusid"
  4627. + " WHERE classesDetail.AccountID = :accountID "
  4628. + " AND classesDetail.ClassesSettingID = (select nvl(max(classessettingID),0) classessettingID from tp_pc_classessetting where tp_pc_classessetting.usercode=:usercode and tp_pc_classessetting.accountdate=fun_cmn_getaccountdate(:accountID))";
  4629. paras = new OracleParameter[]{
  4630. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  4631. new OracleParameter(":usercode",OracleDbType.Varchar2,uCode,ParameterDirection.Input),
  4632. };
  4633. ds = con.GetSqlResultToDs(strSql, paras);
  4634. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4635. {
  4636. ds.Tables[0].TableName = "Table2";
  4637. dsReturn.Tables.Add(ds.Tables[0].Copy());
  4638. return dsReturn;
  4639. }
  4640. strSql = " SELECT Staff.Staffid,Staff.Staffname,Staff.Organizationid,"
  4641. + " Staff.Jobs,Staff.Staffstatus,Staff.Staffcode,'' Remarks,"
  4642. + " (CASE Staff.staffStatus"
  4643. + " WHEN 0 THEN '未入职'"
  4644. + " WHEN 1 THEN '试用 '"
  4645. + " WHEN 2 THEN '转正'"
  4646. + " WHEN 3 THEN '离职'"
  4647. + " ELSE '' END) AS staffStatusName,"
  4648. + " Jobs.Jobsname,Org.Organizationname,TUserJobs.Jobsname as UJobsName,TUserJobs.JobsId as UJobsId"
  4649. + " FROM TP_HR_Staff Staff "
  4650. + " LEFT JOIN TP_MST_Jobs Jobs ON Jobs.Jobsid = Staff.Jobs "
  4651. + " LEFT JOIN TP_MST_Organization Org ON Org.Organizationid = Staff.Organizationid "
  4652. + " LEFT JOIN TP_MST_UserStaff TUserStaff on TUserStaff.StaffID = Staff.StaffID "
  4653. + " LEFT JOIN TP_MST_User TUser on TUserStaff.Userid = TUser.Userid"
  4654. + " LEFT JOIN TP_MST_Jobs TUserJobs on TUserJobs.Jobsid = TUserStaff.Ujobsid"
  4655. + " WHERE Staff.Accountid = :accountID "
  4656. + " AND TUser.UserCode = :UserCode"
  4657. + " AND Staff.Staffstatus in(1,2)";
  4658. paras = new OracleParameter[]{
  4659. new OracleParameter(":accountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  4660. new OracleParameter(":UserCode", OracleDbType.Varchar2, uCode, ParameterDirection.Input),
  4661. };
  4662. ds = con.GetSqlResultToDs(strSql, paras);
  4663. ds.Tables[0].TableName = "Table2";
  4664. dsReturn.Tables.Add(ds.Tables[0].Copy());
  4665. return dsReturn;
  4666. }
  4667. catch (Exception ex)
  4668. {
  4669. throw ex;
  4670. }
  4671. finally
  4672. {
  4673. if (con.ConnState == ConnectionState.Open)
  4674. {
  4675. con.Close();
  4676. }
  4677. }
  4678. }
  4679. /*
  4680. /// <summary>
  4681. /// 获取用户是否有撤销包装权限
  4682. /// </summary>
  4683. /// <returns></returns>
  4684. public static int GetChancelFinishedproductFuntion(SUserInfo userInfo)
  4685. {
  4686. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4687. try
  4688. {
  4689. con.Open();
  4690. string strSql = "";
  4691. strSql = @"SELECT F.Functionlevel,
  4692. F.FunctionCode,
  4693. F.FunctionName,
  4694. F.FullName,
  4695. F.FunctionFlag,
  4696. F.FunctionButtonFlag,
  4697. F.FormName,
  4698. F.ButtonName
  4699. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4700. TP_SYS_Function F ON R.FunctionCode = F.FunctionCode
  4701. WHERE F.ValueFlag = 1
  4702. AND F.FunctionCode NOT LIKE '0101%'
  4703. AND F.FunctionCode NOT LIKE '0102%' and F.FunctionCode='0609'";
  4704. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4705. DataSet ds = con.GetSqlResultToDs(strSql);
  4706. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4707. {
  4708. return 1;
  4709. }
  4710. return 0;
  4711. }
  4712. catch (Exception ex)
  4713. {
  4714. throw ex;
  4715. }
  4716. finally
  4717. {
  4718. if (con.ConnState == ConnectionState.Open)
  4719. {
  4720. con.Close();
  4721. }
  4722. }
  4723. }
  4724. /// <summary>
  4725. /// 获取用户是否有撤销权限
  4726. /// </summary>
  4727. /// <returns></returns>
  4728. public static int GetCancelScrapProductionFuntion(SUserInfo userInfo)
  4729. {
  4730. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4731. try
  4732. {
  4733. con.Open();
  4734. string strSql = "";
  4735. strSql = @"SELECT F.Functionlevel,
  4736. F.FunctionCode,
  4737. F.FunctionName,
  4738. F.FullName,
  4739. F.FunctionFlag,
  4740. F.FunctionButtonFlag,
  4741. F.FormName,
  4742. F.ButtonName
  4743. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4744. TP_SYS_Function F ON R.FunctionCode = F.FunctionCode
  4745. WHERE F.ValueFlag = 1
  4746. AND F.FunctionCode NOT LIKE '0101%'
  4747. AND F.FunctionCode NOT LIKE '0102%' and F.FunctionCode='0610'";
  4748. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4749. DataSet ds = con.GetSqlResultToDs(strSql);
  4750. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4751. {
  4752. return 1;
  4753. }
  4754. return 0;
  4755. }
  4756. catch (Exception ex)
  4757. {
  4758. throw ex;
  4759. }
  4760. finally
  4761. {
  4762. if (con.ConnState == ConnectionState.Open)
  4763. {
  4764. con.Close();
  4765. }
  4766. }
  4767. }
  4768. /// <summary>
  4769. /// 获取用户是否有公坯设定权限
  4770. /// </summary>
  4771. /// <returns></returns>
  4772. public static int GetPublicBodyProductFuntion(SUserInfo userInfo)
  4773. {
  4774. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4775. try
  4776. {
  4777. con.Open();
  4778. string strSql = "";
  4779. strSql = @"SELECT F.Functionlevel,
  4780. F.FunctionCode,
  4781. F.FunctionName,
  4782. F.FullName,
  4783. F.FunctionFlag,
  4784. F.FunctionButtonFlag,
  4785. F.FormName,
  4786. F.ButtonName
  4787. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4788. TP_SYS_Function F ON R.FunctionCode = F.FunctionCode
  4789. WHERE F.ValueFlag = 1
  4790. AND F.FunctionCode NOT LIKE '0101%'
  4791. AND F.FunctionCode NOT LIKE '0102%' and F.FunctionCode='0611'";
  4792. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4793. DataSet ds = con.GetSqlResultToDs(strSql);
  4794. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4795. {
  4796. return 1;
  4797. }
  4798. return 0;
  4799. }
  4800. catch (Exception ex)
  4801. {
  4802. throw ex;
  4803. }
  4804. finally
  4805. {
  4806. if (con.ConnState == ConnectionState.Open)
  4807. {
  4808. con.Close();
  4809. }
  4810. }
  4811. }
  4812. */
  4813. /// <summary>
  4814. /// 获取用户是否有公坯设定权限
  4815. /// </summary>
  4816. /// <returns></returns>
  4817. public static DataSet GetUserAllFunction(SUserInfo userInfo)
  4818. {
  4819. // 产品报损
  4820. if (userInfo.UserCode.ToUpper() == "SYSTEM" ||
  4821. userInfo.UserCode.ToUpper() == "ADMIN")
  4822. {
  4823. return null;
  4824. }
  4825. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4826. try
  4827. {
  4828. con.Open();
  4829. OracleParameter[] parameters = new OracleParameter[]
  4830. {
  4831. new OracleParameter(":UserID", OracleDbType.Int32, userInfo.UserID, ParameterDirection.Input),
  4832. };
  4833. string strSql =
  4834. "SELECT F.FunctionCode, f.functionlevel, " +
  4835. " CASE WHEN F.FunctionCode='060401' THEN '产品报损'" +
  4836. " WHEN F.FunctionCode='060202' THEN '条码变更'" +
  4837. " WHEN F.FunctionCode='0404' THEN '班次配置'" +
  4838. " WHEN F.FunctionCode='060802' THEN '在产盘点'" +
  4839. " WHEN F.FunctionCode='06230103' THEN '成型盘点'" +
  4840. " WHEN F.FunctionCode='0609' THEN '成品撤销'" +
  4841. " WHEN F.FunctionCode='0610' THEN '损坯撤销'" +
  4842. " WHEN F.FunctionCode='0611' THEN '公坯设定'" +
  4843. " WHEN F.FunctionCode='070205' THEN '产成品质量分析表'" +
  4844. " WHEN F.FunctionCode='0615' THEN '计件撤销'" +
  4845. " WHEN F.FunctionCode='061601' THEN '交坯撤销'" +
  4846. " WHEN F.FunctionCode='070205' THEN '产成品质量分析表'" +
  4847. " WHEN F.FunctionCode='060203' THEN '商标设定'" +
  4848. " WHEN F.FunctionCode='062001' THEN '半成品检验'" +
  4849. " WHEN F.FunctionCode='06200101' THEN '半检登记'" +
  4850. " WHEN F.FunctionCode='06200102' THEN '复检登记'" +
  4851. " WHEN F.FunctionCode='06200103' THEN '撤销复检'" +
  4852. " WHEN F.FunctionCode='0614' THEN '条码恢复'" +
  4853. " WHEN F.FunctionCode='0622' THEN '产成品交接'" +
  4854. " WHEN F.FunctionCode='062201' THEN '交接'" +
  4855. " WHEN F.FunctionCode='062202' THEN '撤销'" +
  4856. " WHEN F.FunctionCode='062203' THEN '变更单号'" +
  4857. " WHEN F.FunctionCode='060204' THEN '条码补打'" +
  4858. " WHEN F.FunctionCode='0626' THEN '抽查记录'" +
  4859. " WHEN F.FunctionCode='062601' THEN '品保抽查'" +
  4860. " ELSE to_char(f.functionname) END functionname " +
  4861. " FROM TP_SYS_Function F " +
  4862. "WHERE F.ValueFlag = '1'" +
  4863. " AND F.IS_PDA = '1' " +
  4864. " AND EXISTS (SELECT 1" +
  4865. " FROM TP_MST_UserRight R" +
  4866. " WHERE R.UserID = :UserID" +
  4867. //" AND (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]'))" +
  4868. " AND (instr(R.FunctionCode , F.FunctionCode) = 1 OR R.FunctionCode = '[ALL]'))" +
  4869. //" AND (F.FunctionCode='060401'" +
  4870. //" OR F.FunctionCode='060202'" +
  4871. //" OR F.FunctionCode='0404'" +
  4872. //" OR F.FunctionCode='060802'" +
  4873. //" OR F.FunctionCode='06230103'" +
  4874. //" OR F.FunctionCode='0609'" +
  4875. //" OR F.FunctionCode='0610'" +
  4876. //" OR F.FunctionCode='0611'" +
  4877. //" OR F.FunctionCode='070205'" +
  4878. //" OR F.FunctionCode='0615'" +
  4879. //" OR F.FunctionCode='061601'" +
  4880. //" OR F.FunctionCode='070205'" +
  4881. //" OR F.FunctionCode='060203'" +
  4882. //" OR F.FunctionCode='062001'" +
  4883. //" OR F.FunctionCode='06200101'" +
  4884. //" OR F.FunctionCode='06200102'" +
  4885. //" OR F.FunctionCode='06200103'" +
  4886. //" OR F.FunctionCode='0614'" +
  4887. //" OR F.FunctionCode='0622'" +
  4888. //" OR F.FunctionCode='062201'" +
  4889. //" OR F.FunctionCode='062202'" +
  4890. //" OR F.FunctionCode='062203'" +
  4891. //" OR F.FunctionCode='060204'" +
  4892. //// 成型报损,撤销报损
  4893. //" OR F.FunctionCode='060106'" +
  4894. //" OR F.FunctionCode='060107'" +
  4895. //// 模具管理相关
  4896. //" OR F.FunctionCode in ('M04','M0401','M040103','M040104','M040105','M040106','M040107','M040108','M0402')" +
  4897. //" OR F.FunctionCode='070303'" +
  4898. //" OR F.FunctionCode='0402'" +
  4899. //" OR F.FunctionCode in ('0624', '062401', '062402', '070713','0625','9001','9002')" +
  4900. //" OR F.FunctionCode in ('0626','062601')" +
  4901. //" OR F.FunctionCode like 'PDA%'" +
  4902. //" )" +
  4903. " Order by f.functionlevel";
  4904. DataSet ds = con.GetSqlResultToDs(strSql, parameters);
  4905. return ds;
  4906. //if (ds != null && ds.Tables[0].Rows.Count > 0)
  4907. //{
  4908. // return 1;
  4909. //}
  4910. //return 0;
  4911. }
  4912. catch (Exception ex)
  4913. {
  4914. throw ex;
  4915. }
  4916. finally
  4917. {
  4918. if (con.ConnState == ConnectionState.Open)
  4919. {
  4920. con.Close();
  4921. }
  4922. }
  4923. }
  4924. /// <summary>
  4925. /// 获取登陆帐户有无入窑前检验数据编辑权限
  4926. /// </summary>
  4927. /// <param name="usercode">工号编码</param>
  4928. /// <returns></returns>
  4929. public static int GetIntoKilnCheckEditFuntion(SUserInfo userInfo)
  4930. {
  4931. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4932. try
  4933. {
  4934. con.Open();
  4935. string strSql = "";
  4936. strSql = @"SELECT F.Functionlevel,
  4937. F.FunctionCode,
  4938. F.FunctionName,
  4939. F.FullName,
  4940. F.FunctionFlag,
  4941. F.FunctionButtonFlag,
  4942. F.FormName,
  4943. F.ButtonName
  4944. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4945. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  4946. WHERE F.ValueFlag = 1
  4947. AND F.FunctionCode NOT LIKE '0101%'
  4948. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '061801') = 1 /*F.FunctionCode='061801'*/";
  4949. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4950. DataSet ds = con.GetSqlResultToDs(strSql);
  4951. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4952. {
  4953. return 1;
  4954. }
  4955. return 0;
  4956. }
  4957. catch (Exception ex)
  4958. {
  4959. throw ex;
  4960. }
  4961. finally
  4962. {
  4963. if (con.ConnState == ConnectionState.Open)
  4964. {
  4965. con.Close();
  4966. }
  4967. }
  4968. }
  4969. /// <summary>
  4970. /// 获取登陆帐户有无半检验数据编辑权限
  4971. /// </summary>
  4972. /// <param name="usercode">工号编码</param>
  4973. /// <returns></returns>
  4974. public static int GetNormalCheckEditFuntion(SUserInfo userInfo)
  4975. {
  4976. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4977. try
  4978. {
  4979. con.Open();
  4980. string strSql = "";
  4981. strSql = @"SELECT F.Functionlevel,
  4982. F.FunctionCode,
  4983. F.FunctionName,
  4984. F.FullName,
  4985. F.FunctionFlag,
  4986. F.FunctionButtonFlag,
  4987. F.FormName,
  4988. F.ButtonName
  4989. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4990. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  4991. WHERE F.ValueFlag = 1
  4992. AND F.FunctionCode NOT LIKE '0101%'
  4993. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '061901') = 1 /*F.FunctionCode='061901'*/";
  4994. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4995. DataSet ds = con.GetSqlResultToDs(strSql);
  4996. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4997. {
  4998. return 1;
  4999. }
  5000. return 0;
  5001. }
  5002. catch (Exception ex)
  5003. {
  5004. throw ex;
  5005. }
  5006. finally
  5007. {
  5008. if (con.ConnState == ConnectionState.Open)
  5009. {
  5010. con.Close();
  5011. }
  5012. }
  5013. }
  5014. #region 质量登记
  5015. /// <summary>
  5016. /// 通过条码查出责任工序
  5017. /// </summary>
  5018. /// <param name="barcode">产品条码</param>
  5019. /// <param name="defectid">缺陷ID</param>
  5020. /// <returns>DataSet</returns>
  5021. public static DataSet GetDutyProcedureByBarCode(string barcode, int defectid, int accountid)
  5022. {
  5023. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5024. try
  5025. {
  5026. con.Open();
  5027. DataSet dsReturn = new DataSet();
  5028. string sqlString =
  5029. "SELECT pdin.ProductionDataID\n" +
  5030. " ,pdin.ProcedureID AS DutyProcedureID\n" +
  5031. " ,pdin.ProcedureCode AS DutyProcedureCode\n" +
  5032. " ,pdin.ProcedureName AS DutyProcedureName\n" +
  5033. " ,pdin.NodeType\n" +
  5034. " ,pdin.ModelType\n" +
  5035. " ,pdin.classessettingid\n" +
  5036. " ,pdin.userid\n" +
  5037. " ,pdin.usercode\n" +
  5038. " ,pdin.username\n" +
  5039. " FROM TP_PM_ProductionDataIn pdin\n" +
  5040. " WHERE pdin.valueflag = '1'\n" +
  5041. " AND pdin.accountid = :accountid\n" +
  5042. " AND pdin.Barcode = :Barcode\n" +
  5043. " AND EXISTS (SELECT 1\n" +
  5044. " FROM TP_PC_DefectProcedureJobs dpJobs\n" +
  5045. " WHERE dpJobs.DefectID = :DefectID\n" +
  5046. " AND pdin.ProcedureID = dpJobs.ProcedureID)\n" +
  5047. " ORDER BY pdin.ProductionDataID";
  5048. OracleParameter[] paras = new OracleParameter[]{
  5049. new OracleParameter(":accountid",OracleDbType.Int32, accountid,ParameterDirection.Input),
  5050. new OracleParameter(":Barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  5051. new OracleParameter(":DefectID",OracleDbType.Int32, defectid,ParameterDirection.Input),
  5052. };
  5053. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  5054. ds.Tables[0].TableName = "TProcedure";
  5055. //sqlString = "Select DictionaryID,DictionaryValue"
  5056. // + " from TP_MST_DataDictionary where valueflag = 1 and DictionaryType = 'ASE002' and AccountID = :AccountID";
  5057. //paras = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  5058. // {
  5059. // new Oracle.ManagedDataAccess.Client.OracleParameter(":AccountID",accountid),
  5060. // };
  5061. //DataSet ds2 = con.GetSqlResultToDs(sqlString, paras);
  5062. //ds2.Tables[0].TableName = "TDataDictionary";
  5063. sqlString = "select procedureid,jobsid from TP_PC_DefectProcedureJobs where TP_PC_DefectProcedureJobs.Defectid=:Defectid";
  5064. paras = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  5065. {
  5066. new Oracle.ManagedDataAccess.Client.OracleParameter(":Defectid",defectid),
  5067. };
  5068. DataSet ds3 = con.GetSqlResultToDs(sqlString, paras);
  5069. ds3.Tables[0].TableName = "TP_PC_DefectProcedureJobs";
  5070. if (!dsReturn.Tables.Contains("TProcedure"))
  5071. {
  5072. dsReturn.Tables.Add(ds.Tables[0].Copy());
  5073. }
  5074. //if (!dsReturn.Tables.Contains("TDataDictionary"))
  5075. //{
  5076. // dsReturn.Tables.Add(ds2.Tables[0].Copy());
  5077. //}
  5078. if (!dsReturn.Tables.Contains("TP_PC_DefectProcedureJobs"))
  5079. {
  5080. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  5081. }
  5082. return dsReturn;
  5083. }
  5084. catch (Exception ex)
  5085. {
  5086. throw ex;
  5087. }
  5088. finally
  5089. {
  5090. if (con.ConnState == ConnectionState.Open)
  5091. {
  5092. con.Close();
  5093. }
  5094. }
  5095. }
  5096. /// <summary>
  5097. /// 获取责任工种
  5098. /// </summary>
  5099. /// <param name="classesSettingID"></param>
  5100. /// <param name="defectid"></param>
  5101. /// <param name="procedureID"></param>
  5102. /// <returns></returns>
  5103. public static DataSet GetDutyJobsCodeByUser(int classesSettingID, int defectid, int procedureID)
  5104. {
  5105. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5106. try
  5107. {
  5108. con.Open();
  5109. string sqlString = "SELECT DISTINCT cd.UserID, jobs.JobsID, jobs.JobsName, jobs.JobsCode\n" +
  5110. " FROM TP_PC_DefectProcedureJobs dpjobs\n" +
  5111. " INNER JOIN tp_pc_classesdetail cd\n" +
  5112. " ON cd.ujobsid = dpjobs.jobsid AND cd.valueflag = '1'\n" +
  5113. " LEFT JOIN TP_MST_Jobs jobs\n" +
  5114. " ON cd.UJobsID = jobs.JobsID\n" +
  5115. " WHERE dpjobs.procedureid = :procedureid\n" +
  5116. " AND dpjobs.defectid = :defectid\n" +
  5117. " AND cd.classessettingid = :classessettingid\n" +
  5118. " order by jobs.JobsCode";
  5119. OracleParameter[] paras = new OracleParameter[]{
  5120. new OracleParameter(":procedureid",OracleDbType.Int32, procedureID,ParameterDirection.Input),
  5121. new OracleParameter(":defectid",OracleDbType.Int32, defectid,ParameterDirection.Input),
  5122. new OracleParameter(":classessettingid",OracleDbType.Int32, classesSettingID,ParameterDirection.Input),
  5123. };
  5124. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  5125. // 如果该工序对应该缺陷没有配置对应工种,则查询该班次下所有工号工种
  5126. if (ds.Tables[0].Rows.Count == 0)
  5127. {
  5128. sqlString = "SELECT DISTINCT cd.UserID, jobs.JobsID, jobs.JobsName, jobs.JobsCode\n" +
  5129. " FROM TP_PC_DefectProcedureJobs dpjobs\n" +
  5130. " INNER JOIN tp_pc_classesdetail cd\n" +
  5131. " ON cd.ujobsid = dpjobs.jobsid AND cd.valueflag = '1'\n" +
  5132. " LEFT JOIN TP_MST_Jobs jobs\n" +
  5133. " ON cd.UJobsID = jobs.JobsID\n" +
  5134. " WHERE cd.classessettingid = :classessettingid\n" +
  5135. " order by jobs.JobsCode";
  5136. paras = new OracleParameter[]
  5137. {
  5138. new OracleParameter(":classessettingid",OracleDbType.Int32, classesSettingID,ParameterDirection.Input),
  5139. };
  5140. ds = con.GetSqlResultToDs(sqlString, paras);
  5141. }
  5142. return ds;
  5143. }
  5144. catch (Exception ex)
  5145. {
  5146. throw ex;
  5147. }
  5148. finally
  5149. {
  5150. if (con.ConnState == ConnectionState.Open)
  5151. {
  5152. con.Close();
  5153. }
  5154. }
  5155. }
  5156. /// <summary>
  5157. /// 获取责任员工
  5158. /// </summary>
  5159. /// <param name="productionDataID">生产数据ID</param>
  5160. /// <param name="userID">用户ID</param>
  5161. /// <param name="jobs">工种ID</param>
  5162. /// <returns>DataSet</returns>
  5163. public static DataSet GetDutyStaffByUserIDAndJobs(int classesSettingID, int jobsID)
  5164. {
  5165. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5166. try
  5167. {
  5168. List<OracleParameter> paras = new List<OracleParameter>();
  5169. con.Open();
  5170. string sqlString = @"select TP_HR_Staff.StaffID,
  5171. TP_HR_Staff.StaffCode,
  5172. TP_HR_Staff.StaffName,
  5173. TP_HR_Staff.StaffStatus,
  5174. tp_pc_classesdetail.SJobsID
  5175. from tp_pc_classesdetail
  5176. inner join TP_HR_Staff on tp_pc_classesdetail.StaffID =
  5177. TP_HR_Staff.StaffID
  5178. where tp_pc_classesdetail.ClassesSettingID=:classesSettingID
  5179. and tp_pc_classesdetail.valueflag = '1'
  5180. and TP_HR_Staff.valueflag = '1'";
  5181. // --and TP_HR_Staff.StaffStatus in (1,2)
  5182. paras.Add(new OracleParameter(":classesSettingID",OracleDbType.Int32, classesSettingID,ParameterDirection.Input));
  5183. //OracleParameter[] paras = new OracleParameter[]{
  5184. // new OracleParameter(":classesSettingID",OracleDbType.Int32, classesSettingID,ParameterDirection.Input),
  5185. // new OracleParameter(":JobsID",OracleDbType.Int32, jobsID,ParameterDirection.Input),
  5186. //};
  5187. if (jobsID > 0)
  5188. {
  5189. sqlString += " and tp_pc_classesdetail.UJobsID = :JobsID";
  5190. paras.Add(new OracleParameter(":JobsID", OracleDbType.Int32, jobsID, ParameterDirection.Input));
  5191. }
  5192. sqlString += " order by TP_HR_Staff.StaffCode";
  5193. DataSet ds = con.GetSqlResultToDs(sqlString, paras.ToArray());
  5194. return ds;
  5195. }
  5196. catch (Exception ex)
  5197. {
  5198. throw ex;
  5199. }
  5200. finally
  5201. {
  5202. if (con.ConnState == ConnectionState.Open)
  5203. {
  5204. con.Close();
  5205. }
  5206. }
  5207. }
  5208. #endregion
  5209. #region 注浆盘点
  5210. /// <summary>
  5211. /// 获取注浆盘点信息
  5212. /// </summary>
  5213. /// <param name="entity">盘点类</param>
  5214. /// <param name="sUserInfo">用户基本信息</param>
  5215. /// <returns></returns>
  5216. public static DataSet GetAllGBChecked(InCheckedEntity entity, SUserInfo sUserInfo)
  5217. {
  5218. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5219. try
  5220. {
  5221. oracleConn.Open();
  5222. string sqlString =
  5223. "SELECT gbc.GBCheckedID\n" +
  5224. " ,gbc.GBCheckedNo\n" +
  5225. " ,gbc.GBcheckname\n" +
  5226. " ,gbc.AccountDate\n" +
  5227. " ,gbc.Remarks\n" +
  5228. " ,gbc.CreateTime\n" +
  5229. " ,u.UserName AS CreateUserName\n" +
  5230. " ,u.UserCode AS CreateUserCode\n" +
  5231. " FROM Tp_Pm_Groutingchecked gbc\n" +
  5232. " LEFT JOIN TP_MST_USER u\n" +
  5233. " ON gbc.Createuserid = u.userid\n" +
  5234. " WHERE gbc.valueflag = '1'\n" +
  5235. " AND gbc.accountid = :accountid\n" +
  5236. " AND (:CheckedNo IS NULL OR instr(gbc.GBCheckedNo, :CheckedNo) > 0)\n" +
  5237. " AND gbc.CreateTime >= :begindate\n" +
  5238. " AND gbc.CreateTime <= :enddate\n" +
  5239. " AND (:CheckedName IS NULL OR instr(gbc.gbcheckname, :CheckedName) > 0)\n" +
  5240. " AND (:remarks IS NULL OR instr(gbc.remarks, :remarks) > 0)\n" +
  5241. " AND EXISTS (SELECT 1\n" +
  5242. " FROM tp_pm_gbcheckeduser\n" +
  5243. " WHERE userid = :userid\n" +
  5244. " AND GBCheckedID = gbc.gbCheckedID)\n" +
  5245. " ORDER BY gbc.gbCheckedID DESC";
  5246. OracleParameter[] paras = new OracleParameter[]{
  5247. new OracleParameter(":CheckedNo",OracleDbType.NVarchar2, entity.InCheckedNo,ParameterDirection.Input),
  5248. new OracleParameter(":CheckedName",OracleDbType.NVarchar2, entity.InCheckedName,ParameterDirection.Input),
  5249. new OracleParameter(":remarks",OracleDbType.NVarchar2, entity.Remarks,ParameterDirection.Input),
  5250. new OracleParameter(":begindate",OracleDbType.Date, entity.BeginDate,ParameterDirection.Input),
  5251. new OracleParameter(":enddate",OracleDbType.Date,entity.EndDate,ParameterDirection.Input),
  5252. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  5253. new OracleParameter(":userid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  5254. };
  5255. DataSet returnDataSet = oracleConn.GetSqlResultToDs(sqlString, paras);
  5256. return returnDataSet;
  5257. }
  5258. catch (Exception ex)
  5259. {
  5260. throw ex;
  5261. }
  5262. finally
  5263. {
  5264. if (oracleConn.ConnState == ConnectionState.Open)
  5265. {
  5266. oracleConn.Close();
  5267. }
  5268. }
  5269. }
  5270. #endregion
  5271. #region 模具盘点
  5272. /// <summary>
  5273. /// 获取模具盘点信息
  5274. /// </summary>
  5275. /// <param name="entity">盘点类</param>
  5276. /// <param name="sUserInfo">用户基本信息</param>
  5277. /// <returns></returns>
  5278. public static DataSet GetAllMouldChecked(InCheckedEntity entity, SUserInfo sUserInfo)
  5279. {
  5280. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5281. try
  5282. {
  5283. oracleConn.Open();
  5284. string sqlString =
  5285. "SELECT gbc.CheckedID\n" +
  5286. " ,gbc.CheckedNo\n" +
  5287. " ,gbc.checkname\n" +
  5288. " ,gbc.AccountDate\n" +
  5289. " ,gbc.Remarks\n" +
  5290. " ,gbc.CreateTime\n" +
  5291. " ,u.UserName AS CreateUserName\n" +
  5292. " ,u.UserCode AS CreateUserCode\n" +
  5293. " FROM tp_pc_mouldchecked gbc\n" +
  5294. " LEFT JOIN TP_MST_USER u\n" +
  5295. " ON gbc.Createuserid = u.userid\n" +
  5296. " WHERE gbc.valueflag = '1'\n" +
  5297. " AND gbc.accountid = :accountid\n" +
  5298. " AND (:CheckedNo IS NULL OR instr(gbc.CheckedNo, :CheckedNo) > 0)\n" +
  5299. " AND gbc.CreateTime >= :begindate\n" +
  5300. " AND gbc.CreateTime <= :enddate\n" +
  5301. " AND (:CheckedName IS NULL OR instr(gbc.checkname, :CheckedName) > 0)\n" +
  5302. " AND (:remarks IS NULL OR instr(gbc.remarks, :remarks) > 0)\n" +
  5303. " AND EXISTS (SELECT 1\n" +
  5304. " FROM tp_pc_mouldcheckeduser\n" +
  5305. " WHERE userid = :userid\n" +
  5306. " AND CheckedID = gbc.CheckedID)\n" +
  5307. " ORDER BY gbc.CheckedID DESC";
  5308. OracleParameter[] paras = new OracleParameter[]{
  5309. new OracleParameter(":CheckedNo",OracleDbType.NVarchar2, entity.InCheckedNo,ParameterDirection.Input),
  5310. new OracleParameter(":CheckedName",OracleDbType.NVarchar2, entity.InCheckedName,ParameterDirection.Input),
  5311. new OracleParameter(":remarks",OracleDbType.NVarchar2, entity.Remarks,ParameterDirection.Input),
  5312. new OracleParameter(":begindate",OracleDbType.Date, entity.BeginDate,ParameterDirection.Input),
  5313. new OracleParameter(":enddate",OracleDbType.Date,entity.EndDate,ParameterDirection.Input),
  5314. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  5315. new OracleParameter(":userid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  5316. };
  5317. DataSet returnDataSet = oracleConn.GetSqlResultToDs(sqlString, paras);
  5318. return returnDataSet;
  5319. }
  5320. catch (Exception ex)
  5321. {
  5322. throw ex;
  5323. }
  5324. finally
  5325. {
  5326. if (oracleConn.ConnState == ConnectionState.Open)
  5327. {
  5328. oracleConn.Close();
  5329. }
  5330. }
  5331. }
  5332. #endregion
  5333. #region 模具管理
  5334. /// <summary>
  5335. /// 验证模具管理生产工号
  5336. /// </summary>
  5337. /// <param name="sUserInfo"></param>
  5338. /// <returns></returns>
  5339. public static DataTable GetUserCodeOnMould(SUserInfo sUserInfo, string userCode)
  5340. {
  5341. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5342. try
  5343. {
  5344. con.Open();
  5345. string sqlString = "SELECT g.userid, g.usercode\n" +
  5346. " FROM tp_mst_user g\n" +
  5347. " WHERE g.usercode = :usercode";
  5348. OracleParameter[] parameters = new OracleParameter[]
  5349. {
  5350. new OracleParameter(":usercode", OracleDbType.NVarchar2,
  5351. userCode, ParameterDirection.Input),
  5352. };
  5353. return con.GetSqlResultToDt(sqlString, parameters);
  5354. }
  5355. catch (Exception ex)
  5356. {
  5357. throw ex;
  5358. }
  5359. finally
  5360. {
  5361. if (con.ConnState == ConnectionState.Open)
  5362. {
  5363. con.Close();
  5364. }
  5365. }
  5366. }
  5367. /// <summary>
  5368. /// 获取模具编辑信息
  5369. /// </summary>
  5370. /// <param name="sUserInfo"></param>
  5371. /// <returns></returns>
  5372. public static DataTable GetMouldEditInfo(SUserInfo sUserInfo, string mouldbarcode)
  5373. {
  5374. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5375. try
  5376. {
  5377. con.Open();
  5378. string sqlString = "SELECT m.mouldid\n" +
  5379. " ,m.mouldbarcode\n" +
  5380. " ,m.mouldtype\n" +
  5381. " ,dd.dictionaryvalue mouldtypeName\n" +
  5382. " ,m.materialsupplier\n" +
  5383. " ,mms.suppliername\n" +
  5384. " ,ms.mouldstatusname\n" +
  5385. " ,m.productiondate\n" +
  5386. " ,m.goodsid\n" +
  5387. " ,m.goodscode\n" +
  5388. " ,m.userid\n" +
  5389. " ,m.usercode\n" +
  5390. " ,m.weight\n" +
  5391. " ,m.cost\n" +
  5392. " ,m.standardgroutingnum\n" +
  5393. " ,m.remarks\n" +
  5394. " FROM tp_pc_mould m\n" +
  5395. " LEFT JOIN tp_mst_datadictionary dd\n" +
  5396. " ON dd.dictionaryid = m.mouldtype\n" +
  5397. " LEFT JOIN tp_mst_mouldmaterialsuppliers mms\n" +
  5398. " ON mms.supplierid = m.materialsupplier\n" +
  5399. " LEFT JOIN tp_sys_mouldstatus ms\n" +
  5400. " ON ms.mouldstatusid = m.mouldstatus\n" +
  5401. " WHERE m.mouldbarcode = :mouldbarcode";
  5402. OracleParameter[] parameters = new OracleParameter[]
  5403. {
  5404. new OracleParameter(":mouldbarcode", OracleDbType.Varchar2, mouldbarcode, ParameterDirection.Input),
  5405. };
  5406. return con.GetSqlResultToDt(sqlString, parameters);
  5407. }
  5408. catch (Exception ex)
  5409. {
  5410. throw ex;
  5411. }
  5412. finally
  5413. {
  5414. if (con.ConnState == ConnectionState.Open)
  5415. {
  5416. con.Close();
  5417. }
  5418. }
  5419. }
  5420. #endregion
  5421. #region 成型模具管理
  5422. /// <summary>
  5423. /// 获取当前用户成型线模具管理权限
  5424. /// </summary>
  5425. /// <param name="sUserInfo"></param>
  5426. /// <param name="mouldbarcode"></param>
  5427. /// <returns></returns>
  5428. public static DataTable GetGMouldStatusRight(SUserInfo sUserInfo)
  5429. {
  5430. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5431. try
  5432. {
  5433. con.Open();
  5434. string sqlString =
  5435. "SELECT f.functioncode, f.functionname\n" +
  5436. " FROM tp_sys_function f\n" +
  5437. " WHERE f.valueflag = '1'\n" +
  5438. " AND f.functionprogram = '1'\n" +
  5439. " AND f.functionflag = '0'\n" +
  5440. " AND f.functionbuttonflag = '1'\n" +
  5441. " AND f.functioncode LIKE '0402%'\n" +
  5442. " AND EXISTS (SELECT 1\n" +
  5443. " FROM tp_mst_userright ur\n" +
  5444. " WHERE (ur.functioncode = '[ALL]' OR\n" +
  5445. " f.functioncode = ur.functioncode)\n" +
  5446. " AND ur.userid = :userid)\n" +
  5447. " ORDER BY f.functionlevel";
  5448. OracleParameter[] parameters = new OracleParameter[]
  5449. {
  5450. new OracleParameter(":userid", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
  5451. };
  5452. return con.GetSqlResultToDt(sqlString, parameters);
  5453. }
  5454. catch (Exception ex)
  5455. {
  5456. throw ex;
  5457. }
  5458. finally
  5459. {
  5460. if (con.ConnState == ConnectionState.Open)
  5461. {
  5462. con.Close();
  5463. }
  5464. }
  5465. }
  5466. /// <summary>
  5467. /// 获取成型线状态等信息,和成型模具信息
  5468. /// </summary>
  5469. /// <param name="sUserInfo"></param>
  5470. /// <param name="mouldbarcode"></param>
  5471. /// <returns></returns>
  5472. public static DataSet GetGroutingLineMould(SUserInfo sUserInfo, string groutingLineCode, int? groutingLineID)
  5473. {
  5474. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5475. try
  5476. {
  5477. con.Open();
  5478. string sqlString =
  5479. "SELECT gl.groutinglineid\n" +
  5480. " ,gl.groutinglinecode\n" +
  5481. " ,gl.gmouldstatus GroutingLineStatus\n" +
  5482. " ,gs.gmouldstatusname GroutingLineStatusName\n" +
  5483. " ,to_char(gl.optimestamp, 'yyyy-mm-dd hh24:mi:ss.ff') LineOPTimeStamp\n" +
  5484. " FROM tp_pc_groutingline gl\n" +
  5485. " INNER JOIN tp_sys_gmouldstatus gs\n" +
  5486. " ON gs.gmouldstatusid = gl.gmouldstatus\n" +
  5487. " WHERE gl.valueflag = '1'\n" +
  5488. " AND gl.gmouldstatus > 0\n" +
  5489. " AND ((:lineID IS NULL AND gl.groutinglinecode = :lineCode) OR\n" +
  5490. " gl.groutinglineid = :lineID)";
  5491. OracleParameter[] parameters = new OracleParameter[]
  5492. {
  5493. new OracleParameter(":lineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input),
  5494. new OracleParameter(":lineCode", OracleDbType.Varchar2, groutingLineCode, ParameterDirection.Input),
  5495. };
  5496. DataTable line = con.GetSqlResultToDt(sqlString, parameters);
  5497. if (line == null || line.Rows.Count == 0)
  5498. {
  5499. return null;
  5500. }
  5501. if (groutingLineID == null)
  5502. {
  5503. groutingLineID = Convert.ToInt32(line.Rows[0]["groutinglineid"]);
  5504. }
  5505. sqlString =
  5506. "SELECT gld.groutinglinedetailid GLineDetailID\n" +
  5507. " ,gld.groutinglineid\n" +
  5508. " ,gld.groutingmouldcode GLineDetailCode\n" +
  5509. " ,gld.MouldID\n" +
  5510. " ,gld.MouldCode\n" +
  5511. " ,nvl(gld.MouldOutputNo,0) MouldOutputNo\n" +
  5512. " ,m.MouldBarcode\n" +
  5513. " ,gld.GMouldStatus\n" +
  5514. " ,gms.GMouldStatusName\n" +
  5515. " ,gld.goodsid\n" +
  5516. " ,g.goodscode\n" +
  5517. " ,g.GOODSSPECIFICATION\n" +
  5518. " ,gld.standardgroutingcount\n" +
  5519. " ,gld.groutingcount\n" +
  5520. " ,gld.beginuseddate\n" +
  5521. " ,gld.remarks DetailRemarks\n" +
  5522. " ,gmr.remarks RecordRemarks\n" +
  5523. " ,to_char(gld.optimestamp, 'yyyy-mm-dd hh24:mi:ss.ff') OPTimeStamp\n" +
  5524. " FROM tp_pc_groutinglinedetail gld\n" +
  5525. " INNER JOIN tp_mst_goods g\n" +
  5526. " ON g.goodsid = gld.goodsid\n" +
  5527. " LEFT JOIN tp_pc_mould m\n" +
  5528. " ON (gld.mouldid is not null and gld.mouldid = m.mouldid) or (gld.mouldcode = m.mouldcode)\n" +
  5529. " INNER JOIN tp_sys_gmouldstatus gms\n" +
  5530. " ON gms.gmouldstatusid = gld.gmouldstatus\n" +
  5531. " LEFT JOIN tp_pc_gmouldrecord gmr\n" +
  5532. " ON gmr.gmouldrecordid = gld.lastgmouldrecordid\n" +
  5533. " WHERE gld.valueflag = '1'\n" +
  5534. " AND gld.groutinglineid = :lineID\n" +
  5535. " ORDER BY gld.groutingmouldcode";
  5536. parameters = new OracleParameter[]
  5537. {
  5538. new OracleParameter(":lineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input),
  5539. };
  5540. DataTable lineDetail = con.GetSqlResultToDt(sqlString, parameters);
  5541. DataSet ds = new DataSet();
  5542. line.TableName = "GroutingLineInfo";
  5543. lineDetail.TableName = "GMouldInfo";
  5544. ds.Tables.Add(line);
  5545. ds.Tables.Add(lineDetail);
  5546. return ds;
  5547. }
  5548. catch (Exception ex)
  5549. {
  5550. throw ex;
  5551. }
  5552. finally
  5553. {
  5554. if (con.ConnState == ConnectionState.Open)
  5555. {
  5556. con.Close();
  5557. }
  5558. }
  5559. }
  5560. /// <summary>
  5561. /// 获取成型线状态等信息,和成型模具信息
  5562. /// </summary>
  5563. /// <param name="sUserInfo"></param>
  5564. /// <param name="mouldbarcode"></param>
  5565. /// <returns></returns>
  5566. public static DataTable GetGroutingMouldOperationInit(SUserInfo sUserInfo, int groutingMouldOperationType)
  5567. {
  5568. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5569. try
  5570. {
  5571. con.Open();
  5572. // 结束换模、结束变产
  5573. if (groutingMouldOperationType == 6)
  5574. {
  5575. string sqlString =
  5576. "SELECT s.settingcode, s.settingvalue\n" +
  5577. " FROM tp_mst_systemsetting s\n" +
  5578. " WHERE s.accountid = :accountid\n" +
  5579. " AND s.settingcode = :settingcode";
  5580. OracleParameter[] parameters = new OracleParameter[]
  5581. {
  5582. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5583. new OracleParameter(":settingcode", OracleDbType.Varchar2, "S_PC_001", ParameterDirection.Input),
  5584. };
  5585. return con.GetSqlResultToDt(sqlString, parameters);
  5586. }
  5587. return null;
  5588. }
  5589. catch (Exception ex)
  5590. {
  5591. throw ex;
  5592. }
  5593. finally
  5594. {
  5595. if (con.ConnState == ConnectionState.Open)
  5596. {
  5597. con.Close();
  5598. }
  5599. }
  5600. }
  5601. #endregion
  5602. #region 成型月度结算表
  5603. /// <summary>
  5604. /// 成型月度结算表(总表)
  5605. /// </summary>
  5606. /// <returns></returns>
  5607. public static ServiceResultEntity GetGroutingSettlementInfo(SUserInfo sUserInfo, DateTime month, int currentMonth)
  5608. {
  5609. IDBTransaction tran = null;
  5610. try
  5611. {
  5612. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5613. tran.Connect();
  5614. // 只限成型工查询
  5615. string sqlString = "select u.userid, u.isgroutingworker from tp_mst_user u where u.AccountID = :AccountID and u.usercode = :usercode";
  5616. OracleParameter[] paraUser = new OracleParameter[]
  5617. {
  5618. new OracleParameter(":AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5619. new OracleParameter(":usercode", OracleDbType.NVarchar2, sUserInfo.UserCode, ParameterDirection.Input),
  5620. };
  5621. DataTable dt = tran.GetSqlResultToDt(sqlString, paraUser);
  5622. if (dt == null || dt.Rows.Count == 0)
  5623. {
  5624. ServiceResultEntity sreUser = new ServiceResultEntity();
  5625. sreUser.Status = Constant.ServiceResultStatus.Other;
  5626. sreUser.Message = "系统中不存在此成型工号";
  5627. return sreUser;
  5628. }
  5629. if ("1" != (dt.Rows[0]["isgroutingworker"] + ""))
  5630. {
  5631. ServiceResultEntity sreUser = new ServiceResultEntity();
  5632. sreUser.Status = Constant.ServiceResultStatus.Other;
  5633. sreUser.Message = "此工号不是成型工号";
  5634. return sreUser;
  5635. }
  5636. OracleParameter[] parameters = new OracleParameter[]
  5637. {
  5638. new OracleParameter("in_AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5639. new OracleParameter("in_UserCode", OracleDbType.NVarchar2, sUserInfo.UserCode, ParameterDirection.Input),
  5640. new OracleParameter("in_MonthBegin", OracleDbType.Date, month, ParameterDirection.Input),
  5641. new OracleParameter("in_NextMonth", OracleDbType.Date, month.AddMonths(1), ParameterDirection.Input),
  5642. new OracleParameter("out_DataM", OracleDbType.RefCursor, null, ParameterDirection.Output),
  5643. };
  5644. DataSet data = new DataSet();
  5645. //当月
  5646. if (currentMonth == 1)
  5647. {
  5648. data = tran.ExecStoredProcedure("PRO_P2_GetGUserPInfoByMonth", parameters);
  5649. }
  5650. else
  5651. {
  5652. data = tran.ExecStoredProcedure("PRO_P2_GetGUserPInfoByLastMonth", parameters);
  5653. }
  5654. ServiceResultEntity sre = new ServiceResultEntity();
  5655. if (data != null)
  5656. {
  5657. data.Tables[0].TableName = "DataM";
  5658. }
  5659. tran.Commit();
  5660. sre.Data = data;
  5661. return sre;
  5662. }
  5663. catch (Exception ex)
  5664. {
  5665. //if (tran != null)
  5666. //{
  5667. // tran.Rollback();
  5668. //}
  5669. throw ex;
  5670. }
  5671. finally
  5672. {
  5673. if (tran != null &&
  5674. tran.ConnState == ConnectionState.Open)
  5675. {
  5676. tran.Disconnect();
  5677. }
  5678. }
  5679. }
  5680. /// <summary>
  5681. /// 成型月度结算表(明细)
  5682. /// </summary>
  5683. /// <returns></returns>
  5684. public static ServiceResultEntity GetGroutingSettlementDetail(SUserInfo sUserInfo, DateTime month, string goodsCode, DateTime? date,int currentMonth)
  5685. {
  5686. IDBTransaction tran = null;
  5687. try
  5688. {
  5689. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5690. tran.Connect();
  5691. // 只限成型工查询
  5692. string sqlString = "select u.userid, u.isgroutingworker from tp_mst_user u where u.AccountID = :AccountID and u.usercode = :usercode";
  5693. OracleParameter[] paraUser = new OracleParameter[]
  5694. {
  5695. new OracleParameter(":AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5696. new OracleParameter(":usercode", OracleDbType.NVarchar2, sUserInfo.UserCode, ParameterDirection.Input),
  5697. };
  5698. DataTable dt = tran.GetSqlResultToDt(sqlString, paraUser);
  5699. if (dt == null || dt.Rows.Count == 0)
  5700. {
  5701. ServiceResultEntity sreUser = new ServiceResultEntity();
  5702. sreUser.Status = Constant.ServiceResultStatus.Other;
  5703. sreUser.Message = "系统中不存在此成型工号";
  5704. return sreUser;
  5705. }
  5706. if ("1" != (dt.Rows[0]["isgroutingworker"] + ""))
  5707. {
  5708. ServiceResultEntity sreUser = new ServiceResultEntity();
  5709. sreUser.Status = Constant.ServiceResultStatus.Other;
  5710. sreUser.Message = "此工号不是成型工号";
  5711. return sreUser;
  5712. }
  5713. OracleParameter[] parameters = new OracleParameter[]
  5714. {
  5715. new OracleParameter("in_AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5716. new OracleParameter("in_UserCode", OracleDbType.NVarchar2, sUserInfo.UserCode, ParameterDirection.Input),
  5717. new OracleParameter("in_GoodsCode", OracleDbType.NVarchar2, goodsCode, ParameterDirection.Input),
  5718. new OracleParameter("in_MonthBegin", OracleDbType.Date, (date != null ? date.Value : month), ParameterDirection.Input),
  5719. new OracleParameter("in_NextMonth", OracleDbType.Date, (date != null ? date.Value.AddDays(1) :month.AddMonths(1)), ParameterDirection.Input),
  5720. new OracleParameter("out_DataCC", OracleDbType.RefCursor, null, ParameterDirection.Output),
  5721. new OracleParameter("out_DataNS", OracleDbType.RefCursor, null, ParameterDirection.Output),
  5722. new OracleParameter("out_DataSC", OracleDbType.RefCursor, null, ParameterDirection.Output),
  5723. new OracleParameter("out_DataRC", OracleDbType.RefCursor, null, ParameterDirection.Output),
  5724. };
  5725. //,out_DataCC OUT SYS_REFCURSOR -- 成检明细
  5726. //,out_DataNS OUT SYS_REFCURSOR -- 后损明细
  5727. //,out_DataSC OUT SYS_REFCURSOR -- 半检不合格
  5728. //,out_DataRC OUT SYS_REFCURSOR -- 返工合格
  5729. DataSet data = new DataSet();
  5730. //当月
  5731. if (currentMonth == 1)
  5732. {
  5733. data = tran.ExecStoredProcedure("PRO_P2_GetGUserPInfoByDetail", parameters);
  5734. }
  5735. else
  5736. {
  5737. data = tran.ExecStoredProcedure("PRO_P2_GetGUserPInfoByLastDetail", parameters);
  5738. }
  5739. ServiceResultEntity sre = new ServiceResultEntity();
  5740. if (data != null)
  5741. {
  5742. data.Tables[0].TableName = "DataCC"; // 成检明细
  5743. data.Tables[1].TableName = "DataNS"; // 后损明细
  5744. data.Tables[2].TableName = "DataSC"; // 半检不合格
  5745. data.Tables[3].TableName = "DataRC"; // 返工合格
  5746. }
  5747. tran.Commit();
  5748. sre.Data = data;
  5749. return sre;
  5750. }
  5751. catch (Exception ex)
  5752. {
  5753. //if (tran != null)
  5754. //{
  5755. // tran.Rollback();
  5756. //}
  5757. throw ex;
  5758. }
  5759. finally
  5760. {
  5761. if (tran != null &&
  5762. tran.ConnState == ConnectionState.Open)
  5763. {
  5764. tran.Disconnect();
  5765. }
  5766. }
  5767. }
  5768. #endregion
  5769. #region 产成品质量改判
  5770. /// <summary>
  5771. /// 获取产成品信息及缺陷数据
  5772. /// </summary>
  5773. /// <param name="barcode"></param>
  5774. /// <param name="sUserInfo"></param>
  5775. /// <returns></returns>
  5776. public static ServiceResultEntity GetDefectData(string barcode, SUserInfo sUserInfo)
  5777. {
  5778. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5779. try
  5780. {
  5781. oracleConn.Open();
  5782. ServiceResultEntity sre = new ServiceResultEntity();
  5783. string gbarcode = null;
  5784. #region 数据验证
  5785. // 1、获得注浆条码
  5786. string sqlString = @"select FUN_CMN_GetBarCode(:barcode, null, :accountid) From DUAL";
  5787. OracleParameter[] paras = new OracleParameter[]
  5788. {
  5789. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  5790. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input)
  5791. };
  5792. DataSet dsResult = oracleConn.GetSqlResultToDs(sqlString, paras);
  5793. if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
  5794. {
  5795. gbarcode = dsResult.Tables[0].Rows[0][0].ToString();
  5796. }
  5797. // 2.判断产品是否在产成品表中
  5798. sqlString = @"SELECT 1 FROM TP_PM_FINISHEDPRODUCT F WHERE F.VALUEFLAG = 1 AND F.GOODSLEVELTYPEID IN(4,5) AND F.BARCODE = :BARCODE";
  5799. paras = new OracleParameter[]
  5800. {
  5801. new OracleParameter(":BARCODE", OracleDbType.NVarchar2, gbarcode, ParameterDirection.Input)
  5802. };
  5803. dsResult = oracleConn.GetSqlResultToDs(sqlString, paras);
  5804. if (dsResult == null || dsResult.Tables.Count == 0 || dsResult.Tables[0].Rows.Count == 0)
  5805. {
  5806. sre.Status = Constant.ServiceResultStatus.Other;
  5807. sre.OtherStatus = -11;
  5808. sre.Message = "条码【" + barcode + "】,不符合条件";
  5809. return sre;
  5810. }
  5811. #endregion
  5812. #region 查询产品相关信息
  5813. // 查询总表
  5814. sqlString = "SELECT GD.BARCODE,\n" +
  5815. " GOODSTYPE.GOODSTYPENAME,\n" +
  5816. " GD.GOODSID,\n" +
  5817. " GD.GOODSCODE,\n" +
  5818. " L.LOGONAME || '[' || L.LOGOCODE || ']' AS LOGONAME,\n" +
  5819. " TO_CHAR(GD.GROUTINGDATE, 'yyyy-mm-dd') || '(' || GD.GROUTINGBATCHNO || ')' AS GROUTINGDATE,\n" +
  5820. " GD.USERCODE,\n" +
  5821. " GD.GROUTINGMOULDCODE\n" +
  5822. " FROM TP_PM_GROUTINGDAILYDETAIL GD\n" +
  5823. " INNER JOIN TP_MST_LOGO L\n" +
  5824. " ON GD.LOGOID = L.LOGOID\n" +
  5825. " INNER JOIN TP_MST_GOODS GOODS\n" +
  5826. " ON GD.GOODSID = GOODS.GOODSID\n" +
  5827. " INNER JOIN TP_MST_GOODSTYPE GOODSTYPE\n" +
  5828. " ON GOODSTYPE.GOODSTYPEID = GOODS.GOODSTYPEID\n" +
  5829. " WHERE GD.VALUEFLAG = '1'\n" +
  5830. " AND GD.BARCODE = :BARCODE";
  5831. dsResult = oracleConn.GetSqlResultToDs(sqlString, paras);
  5832. // 查询缺陷
  5833. if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
  5834. {
  5835. PDADefectData defectData = new PDADefectData();
  5836. defectData.PDAGoodsDataTotal = dsResult.Tables[0];
  5837. sqlString = "SELECT PD.PRODUCTIONDATAID,\n" +
  5838. " PD.PROCEDUREID,\n" +
  5839. " PD.PROCEDURENAME,\n" +
  5840. " PD.USERCODE AS PROCEDUREUSERCODE,\n" +
  5841. " TO_CHAR(PD.CREATETIME, 'yyyy-mm-dd') AS PROCEDURETIME,\n" +
  5842. " GLT.GOODSLEVELTYPENAME,\n" +
  5843. " PD.ISREFIRE,\n" +
  5844. " PD.SPECIALREPAIRFLAG\n" +
  5845. " FROM TP_PM_PRODUCTIONDATA PD\n" +
  5846. " LEFT JOIN TP_SYS_GOODSLEVELTYPE GLT\n" +
  5847. " ON PD.GOODSLEVELTYPEID = GLT.GOODSLEVELTYPEID\n" +
  5848. " WHERE PD.MODELTYPE = -1\n" +
  5849. " AND PD.VALUEFLAG = '1'\n" +
  5850. " AND PD.GOODSLEVELTYPEID IN (5, 6)\n" +
  5851. " AND PD.BARCODE = :BARCODE";
  5852. dsResult = oracleConn.GetSqlResultToDs(sqlString, paras);
  5853. // 查询缺陷明细
  5854. if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
  5855. {
  5856. PDADefectDataDetail defectDataDetail;
  5857. foreach (DataRow row in dsResult.Tables[0].Rows)
  5858. {
  5859. // 转实体
  5860. defectDataDetail = DataConvert.DataRowConvertToObject<PDADefectDataDetail>(row);
  5861. sqlString = "SELECT D.PRODUCTIONDEFECTID,\n" +
  5862. " D.DEFECTID,\n" +
  5863. " D.DEFECTCODE,\n" +
  5864. " D.DEFECTNAME,\n" +
  5865. " D.DEFECTPOSITIONID,\n" +
  5866. " D.DEFECTPOSITIONCODE,\n" +
  5867. " D.DEFECTPOSITIONNAME,\n" +
  5868. " D.DEFECTPROCEDUREID,\n" +
  5869. " D.DEFECTPROCEDURECODE,\n" +
  5870. " D.DEFECTPROCEDURENAME,\n" +
  5871. " D.DEFECTUSERID,\n" +
  5872. " D.DEFECTUSERCODE,\n" +
  5873. " D.DEFECTUSERNAME,\n" +
  5874. " D.DEFECTJOBS,\n" +
  5875. " J.JOBSNAME AS DEFECTJOBSNAME,\n" +
  5876. " D.DEFECTFINE,\n" +
  5877. " DF.DEFECTFINECODE,\n" +
  5878. " D.DEFECTDEDUCTIONNUM,\n" +
  5879. " D.SPECIALDEFECT\n" +
  5880. " FROM TP_PM_PRODUCTIONDATA PD\n" +
  5881. " INNER JOIN TP_PM_DEFECT D\n" +
  5882. " ON PD.PRODUCTIONDATAID = D.PRODUCTIONDATAID\n" +
  5883. " LEFT JOIN TP_MST_JOBS J\n" +
  5884. " ON J.JOBSID = D.DEFECTJOBS\n" +
  5885. " LEFT JOIN TP_MST_DEFECTFINE DF\n" +
  5886. " ON DF.DEFECTFINEID = D.DEFECTFINE\n" +
  5887. " WHERE PD.MODELTYPE = -1\n" +
  5888. " AND PD.VALUEFLAG = '1'\n" +
  5889. " AND PD.GOODSLEVELTYPEID IN (4, 5, 6)\n" +
  5890. " AND PD.PRODUCTIONDATAID = :PRODUCTIONDATAID";
  5891. paras = new OracleParameter[]
  5892. {
  5893. new OracleParameter(":PRODUCTIONDATAID", OracleDbType.NVarchar2, defectDataDetail.ProductionDataID, ParameterDirection.Input)
  5894. };
  5895. DataTable dtResult = oracleConn.GetSqlResultToDt(sqlString, paras);
  5896. defectDataDetail.ProductionDefects = DataConvert.TableConvertToObject<PDADefectEntity>(dtResult);
  5897. // 查询缺陷责任者和缺陷图片
  5898. if (dtResult != null && dtResult.Rows.Count > 0)
  5899. {
  5900. int productionDefectID = 0;
  5901. List<PDADefectEntity> productionDefects = new List<PDADefectEntity>();
  5902. PDADefectEntity productionDefect;
  5903. for (int i = 0; i < dtResult.Rows.Count; i++)
  5904. {
  5905. productionDefect = new PDADefectEntity();
  5906. productionDefectID = int.Parse(dtResult.Rows[i]["PRODUCTIONDEFECTID"] + "");
  5907. sqlString = "SELECT D.PRODUCTIONDEFECTID,\n" +
  5908. " D.STAFFID,\n" +
  5909. " S.STAFFNAME,\n" +
  5910. " D.USERID,\n" +
  5911. " D.USERCODE,\n" +
  5912. " D.STAFFSTATUS,\n" +
  5913. " D.UJOBSID,\n" +
  5914. " D.SJOBSID\n" +
  5915. " FROM TP_PM_DEFECTRESPONSIBLE D\n" +
  5916. " LEFT JOIN TP_HR_STAFF S\n" +
  5917. " ON D.STAFFID = S.STAFFID\n" +
  5918. " WHERE PRODUCTIONDEFECTID = :PRODUCTIONDEFECTID";
  5919. paras = new OracleParameter[]
  5920. {
  5921. new OracleParameter(":PRODUCTIONDEFECTID", OracleDbType.Int32, productionDefectID, ParameterDirection.Input)
  5922. };
  5923. DataTable dtDefectResponsible = oracleConn.GetSqlResultToDt(sqlString, paras);
  5924. defectDataDetail.ProductionDefects[i].DefectResponsibles = DataConvert.TableConvertToObject<DefectResponsibleEntity>(dtDefectResponsible);
  5925. }
  5926. }
  5927. defectData.PDADefectDataDetailList.Add(defectDataDetail);
  5928. }
  5929. sre.Status = Constant.ServiceResultStatus.Success;
  5930. sre.Message = "条码【" + barcode + "】,查询成功";
  5931. }
  5932. sre.Result = defectData;
  5933. }
  5934. else
  5935. {
  5936. sre.Status = Constant.ServiceResultStatus.Other;
  5937. sre.OtherStatus = -12;
  5938. sre.Message = "条码【" + barcode + "】,未查到相应的产品信息";
  5939. return sre;
  5940. }
  5941. #endregion
  5942. return sre;
  5943. }
  5944. catch (Exception ex)
  5945. {
  5946. throw ex;
  5947. }
  5948. finally
  5949. {
  5950. if (oracleConn.ConnState == ConnectionState.Open)
  5951. {
  5952. oracleConn.Close();
  5953. }
  5954. }
  5955. }
  5956. /// <summary>
  5957. /// 成品改判
  5958. /// </summary>
  5959. /// <param name="procedureID">工序ID</param>
  5960. /// <param name="productionDataEntitys">生产数据集</param>
  5961. /// <param name="sUserInfo">用户基本信息</param>
  5962. /// <returns>string</returns>
  5963. public static ServiceResultEntity SaveDefectData(ProductionDataEntity productionDataEntity, SUserInfo sUserInfo)
  5964. {
  5965. string errMsg = "";
  5966. ServiceResultEntity sre = new ServiceResultEntity();
  5967. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5968. try
  5969. {
  5970. oracleTrConn.Connect();
  5971. #region 验证数据是否已经被修改
  5972. string sqlString = "SELECT 1 FROM TP_PM_PRODUCTIONDATA PD WHERE PD.VALUEFLAG = '1' AND PD.PRODUCTIONDATAID = :PRODUCTIONDATAID";
  5973. OracleParameter[] paras = new OracleParameter[]
  5974. {
  5975. new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32, productionDataEntity.ProductionDataID,ParameterDirection.Input)
  5976. };
  5977. DataSet dsResult = oracleTrConn.GetSqlResultToDs(sqlString, paras);
  5978. if (dsResult == null || dsResult.Tables.Count == 0 || dsResult.Tables[0].Rows.Count == 0)
  5979. {
  5980. sre.Status = Constant.ServiceResultStatus.Other;
  5981. sre.Message = "【此条码生产数据已被修改,请重新扫描此条码】";
  5982. return sre;
  5983. }
  5984. #endregion
  5985. #region 查询新插入的生产数据ID
  5986. sqlString = "SELECT SEQ_PM_PRODUCTIONDATA_ID.NEXTVAL FROM DUAL";
  5987. string idStr = oracleTrConn.GetSqlResultToStr(sqlString);
  5988. int newProductionDataID = 0;
  5989. if (string.IsNullOrEmpty(idStr) || !int.TryParse(idStr, out newProductionDataID))
  5990. {
  5991. sre.Status = Constant.ServiceResultStatus.Other;
  5992. sre.Message = string.Format(Messages.MSG_CMN_W001, "条码", "保存");
  5993. return sre;
  5994. }
  5995. #endregion
  5996. #region 插入生产数据
  5997. sqlString =
  5998. " SELECT BARCODE,\n" +
  5999. " CENTRALIZEDBATCHNO,\n" +
  6000. " PRODUCTIONLINEID,\n" +
  6001. " PRODUCTIONLINECODE,\n" +
  6002. " PRODUCTIONLINENAME,\n" +
  6003. " PROCEDUREID,\n" +
  6004. " PROCEDURECODE,\n" +
  6005. " PROCEDURENAME,\n" +
  6006. " PROCEDUREMODEL,\n" +
  6007. " MODELTYPE,\n" +
  6008. " PIECETYPE,\n" +
  6009. " ISREWORKED,\n" +
  6010. " NODETYPE,\n" +
  6011. " ISPUBLICBODY,\n" +
  6012. " ISREFIRE,\n" +
  6013. " ORGANIZATIONID,\n" +
  6014. " GOODSID,\n" +
  6015. " GOODSCODE,\n" +
  6016. " GOODSNAME,\n" +
  6017. " KILNID,\n" +
  6018. " KILNCODE,\n" +
  6019. " KILNNAME,\n" +
  6020. " KILNCARID,\n" +
  6021. " KILNCARCODE,\n" +
  6022. " KILNCARNAME,\n" +
  6023. " KILNCARBATCHNO,\n" +
  6024. " KILNCARPOSITION,\n" +
  6025. " REWORKPROCEDUREID,\n" +
  6026. " REWORKPROCEDURECODE,\n" +
  6027. " REWORKPROCEDURENAME,\n" +
  6028. " REMARKS,\n" +
  6029. " ACCOUNTDATE,\n" +
  6030. " SETTLEMENTFLAG,\n" +
  6031. " ACCOUNTID,\n" +
  6032. " CREATETIME,\n" +
  6033. " UPDATETIME,\n" +
  6034. " GOODSLEVELID,\n" +
  6035. " GOODSLEVELTYPEID,\n" +
  6036. " GROUTINGDATE,\n" +
  6037. " GROUTINGMOULDCODE,\n" +
  6038. " MOULDCODE,\n" +
  6039. " GROUTINGUSERID,\n" +
  6040. " GROUTINGUSERCODE,\n" +
  6041. " GROUTINGNUM,\n" +
  6042. " GROUTINGDAILYID,\n" +
  6043. " GROUTINGDAILYDETAILID,\n" +
  6044. " GROUTINGLINEID,\n" +
  6045. " GROUTINGLINECODE,\n" +
  6046. " GROUTINGLINENAME,\n" +
  6047. " GMOULDTYPEID,\n" +
  6048. " CANMANYTIMES,\n" +
  6049. " GROUTINGLINEDETAILID,\n" +
  6050. " SPECIALREPAIRFLAG,\n" +
  6051. " CLASSESSETTINGID,\n" +
  6052. " LOGOID,\n" +
  6053. " BACKOUTTIME,\n" +
  6054. " BACKOUTUSERID,\n" +
  6055. " BACKOUTUSERCODE,\n" +
  6056. " CHECKTIME\n" +
  6057. " FROM TP_PM_PRODUCTIONDATA\n" +
  6058. " WHERE VALUEFLAG = '1'\n" +
  6059. " AND PRODUCTIONDATAID = :PRODUCTIONDATAID";
  6060. paras = new OracleParameter[]
  6061. {
  6062. new OracleParameter(":PRODUCTIONDATAID", OracleDbType.Int32, productionDataEntity.ProductionDataID,ParameterDirection.Input)
  6063. };
  6064. DataTable data = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  6065. if (data == null || data.Rows.Count == 0)
  6066. {
  6067. errMsg = "无成检数据";
  6068. sre.Status = Constant.ServiceResultStatus.Other;
  6069. sre.Message = errMsg;
  6070. return sre;
  6071. }
  6072. #region
  6073. /*
  6074. sqlString = "INSERT INTO TP_PM_PRODUCTIONDATA(\n" +
  6075. " PRODUCTIONDATAID,\n" +
  6076. " BARCODE,\n" +
  6077. " CENTRALIZEDBATCHNO,\n" +
  6078. " PRODUCTIONLINEID,\n" +
  6079. " PRODUCTIONLINECODE,\n" +
  6080. " PRODUCTIONLINENAME,\n" +
  6081. " PROCEDUREID,\n" +
  6082. " PROCEDURECODE,\n" +
  6083. " PROCEDURENAME,\n" +
  6084. " PROCEDUREMODEL,\n" +
  6085. " MODELTYPE,\n" +
  6086. " PIECETYPE,\n" +
  6087. " ISREWORKED,\n" +
  6088. " NODETYPE,\n" +
  6089. " ISPUBLICBODY,\n" +
  6090. " ISREFIRE,\n" +
  6091. " ORGANIZATIONID,\n" +
  6092. " GOODSID,\n" +
  6093. " GOODSCODE,\n" +
  6094. " GOODSNAME,\n" +
  6095. " USERID,\n" +
  6096. " USERCODE,\n" +
  6097. " USERNAME,\n" +
  6098. " KILNID,\n" +
  6099. " KILNCODE,\n" +
  6100. " KILNNAME,\n" +
  6101. " KILNCARID,\n" +
  6102. " KILNCARCODE,\n" +
  6103. " KILNCARNAME,\n" +
  6104. " KILNCARBATCHNO,\n" +
  6105. " KILNCARPOSITION,\n" +
  6106. " REWORKPROCEDUREID,\n" +
  6107. " REWORKPROCEDURECODE,\n" +
  6108. " REWORKPROCEDURENAME,\n" +
  6109. " REMARKS,\n" +
  6110. " ACCOUNTDATE,\n" +
  6111. " SETTLEMENTFLAG,\n" +
  6112. " ACCOUNTID,\n" +
  6113. " VALUEFLAG,\n" +
  6114. " CREATETIME,\n" +
  6115. " CREATEUSERID,\n" +
  6116. " UPDATETIME,\n" +
  6117. " UPDATEUSERID,\n" +
  6118. //" OPTIMESTAMP,\n" +
  6119. " GOODSLEVELID,\n" +
  6120. " GOODSLEVELTYPEID,\n" +
  6121. " GROUTINGDATE,\n" +
  6122. " GROUTINGMOULDCODE,\n" +
  6123. " MOULDCODE,\n" +
  6124. " GROUTINGUSERID,\n" +
  6125. " GROUTINGUSERCODE,\n" +
  6126. " GROUTINGNUM,\n" +
  6127. " GROUTINGDAILYID,\n" +
  6128. " GROUTINGDAILYDETAILID,\n" +
  6129. " GROUTINGLINEID,\n" +
  6130. " GROUTINGLINECODE,\n" +
  6131. " GROUTINGLINENAME,\n" +
  6132. " GMOULDTYPEID,\n" +
  6133. " CANMANYTIMES,\n" +
  6134. " GROUTINGLINEDETAILID,\n" +
  6135. " SPECIALREPAIRFLAG,\n" +
  6136. " CLASSESSETTINGID,\n" +
  6137. " LOGOID,\n" +
  6138. " BACKOUTTIME,\n" +
  6139. " BACKOUTUSERID,\n" +
  6140. " BACKOUTUSERCODE,\n" +
  6141. " CHECKTIME,\n" +
  6142. " TAMPERTIME)\n" +
  6143. " SELECT :NEWPRODUCTIONDATAID,\n" +
  6144. " BARCODE,\n" +
  6145. " CENTRALIZEDBATCHNO,\n" +
  6146. " PRODUCTIONLINEID,\n" +
  6147. " PRODUCTIONLINECODE,\n" +
  6148. " PRODUCTIONLINENAME,\n" +
  6149. " PROCEDUREID,\n" +
  6150. " PROCEDURECODE,\n" +
  6151. " PROCEDURENAME,\n" +
  6152. " PROCEDUREMODEL,\n" +
  6153. " MODELTYPE,\n" +
  6154. " PIECETYPE,\n" +
  6155. " ISREWORKED,\n" +
  6156. " NODETYPE,\n" +
  6157. " ISPUBLICBODY,\n" +
  6158. " ISREFIRE,\n" +
  6159. " ORGANIZATIONID,\n" +
  6160. " GOODSID,\n" +
  6161. " GOODSCODE,\n" +
  6162. " GOODSNAME,\n" +
  6163. " :USERID,\n" +
  6164. " :USERCODE,\n" +
  6165. " :USERNAME,\n" +
  6166. " KILNID,\n" +
  6167. " KILNCODE,\n" +
  6168. " KILNNAME,\n" +
  6169. " KILNCARID,\n" +
  6170. " KILNCARCODE,\n" +
  6171. " KILNCARNAME,\n" +
  6172. " KILNCARBATCHNO,\n" +
  6173. " KILNCARPOSITION,\n" +
  6174. " REWORKPROCEDUREID,\n" +
  6175. " REWORKPROCEDURECODE,\n" +
  6176. " REWORKPROCEDURENAME,\n" +
  6177. " REMARKS,\n" +
  6178. " ACCOUNTDATE,\n" +
  6179. " SETTLEMENTFLAG,\n" +
  6180. " ACCOUNTID,\n" +
  6181. " '1',\n" +
  6182. " CREATETIME,\n" +
  6183. " :CREATEUSERID,\n" +
  6184. " UPDATETIME,\n" +
  6185. " :UPDATEUSERID,\n" +
  6186. //" OPTIMESTAMP,\n" +
  6187. " GOODSLEVELID,\n" +
  6188. " GOODSLEVELTYPEID,\n" +
  6189. " GROUTINGDATE,\n" +
  6190. " GROUTINGMOULDCODE,\n" +
  6191. " MOULDCODE,\n" +
  6192. " GROUTINGUSERID,\n" +
  6193. " GROUTINGUSERCODE,\n" +
  6194. " GROUTINGNUM,\n" +
  6195. " GROUTINGDAILYID,\n" +
  6196. " GROUTINGDAILYDETAILID,\n" +
  6197. " GROUTINGLINEID,\n" +
  6198. " GROUTINGLINECODE,\n" +
  6199. " GROUTINGLINENAME,\n" +
  6200. " GMOULDTYPEID,\n" +
  6201. " CANMANYTIMES,\n" +
  6202. " GROUTINGLINEDETAILID,\n" +
  6203. " SPECIALREPAIRFLAG,\n" +
  6204. " CLASSESSETTINGID,\n" +
  6205. " LOGOID,\n" +
  6206. " BACKOUTTIME,\n" +
  6207. " BACKOUTUSERID,\n" +
  6208. " BACKOUTUSERCODE,\n" +
  6209. " CHECKTIME,\n" +
  6210. " SYSDATE\n" +
  6211. " FROM TP_PM_PRODUCTIONDATA\n" +
  6212. " WHERE VALUEFLAG = '1'\n" +
  6213. " AND PRODUCTIONDATAID = :PRODUCTIONDATAID";
  6214. paras = new OracleParameter[]
  6215. {
  6216. new OracleParameter(":NEWPRODUCTIONDATAID",OracleDbType.Int32, newProductionDataID,ParameterDirection.Input),
  6217. new OracleParameter(":USERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6218. new OracleParameter(":USERCODE",OracleDbType.Varchar2, sUserInfo.UserCode,ParameterDirection.Input),
  6219. new OracleParameter(":USERNAME",OracleDbType.Varchar2, sUserInfo.UserCode,ParameterDirection.Input),
  6220. new OracleParameter(":CREATEUSERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6221. new OracleParameter(":UPDATEUSERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6222. new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32, productionDataEntity.ProductionDataID,ParameterDirection.Input)
  6223. };*/
  6224. #endregion
  6225. sqlString = "INSERT INTO TP_PM_PRODUCTIONDATA(\n" +
  6226. " PRODUCTIONDATAID,\n" +
  6227. " BARCODE,\n" +
  6228. " CENTRALIZEDBATCHNO,\n" +
  6229. " PRODUCTIONLINEID,\n" +
  6230. " PRODUCTIONLINECODE,\n" +
  6231. " PRODUCTIONLINENAME,\n" +
  6232. " PROCEDUREID,\n" +
  6233. " PROCEDURECODE,\n" +
  6234. " PROCEDURENAME,\n" +
  6235. " PROCEDUREMODEL,\n" +
  6236. " MODELTYPE,\n" +
  6237. " PIECETYPE,\n" +
  6238. " ISREWORKED,\n" +
  6239. " NODETYPE,\n" +
  6240. " ISPUBLICBODY,\n" +
  6241. " ISREFIRE,\n" +
  6242. " ORGANIZATIONID,\n" +
  6243. " GOODSID,\n" +
  6244. " GOODSCODE,\n" +
  6245. " GOODSNAME,\n" +
  6246. " USERID,\n" +
  6247. " USERCODE,\n" +
  6248. " USERNAME,\n" +
  6249. " KILNID,\n" +
  6250. " KILNCODE,\n" +
  6251. " KILNNAME,\n" +
  6252. " KILNCARID,\n" +
  6253. " KILNCARCODE,\n" +
  6254. " KILNCARNAME,\n" +
  6255. " KILNCARBATCHNO,\n" +
  6256. " KILNCARPOSITION,\n" +
  6257. " REWORKPROCEDUREID,\n" +
  6258. " REWORKPROCEDURECODE,\n" +
  6259. " REWORKPROCEDURENAME,\n" +
  6260. " REMARKS,\n" +
  6261. " ACCOUNTDATE,\n" +
  6262. " SETTLEMENTFLAG,\n" +
  6263. " ACCOUNTID,\n" +
  6264. " VALUEFLAG,\n" +
  6265. " CREATETIME,\n" +
  6266. " CREATEUSERID,\n" +
  6267. " UPDATETIME,\n" +
  6268. " UPDATEUSERID,\n" +
  6269. //" OPTIMESTAMP,\n" +
  6270. " GOODSLEVELID,\n" +
  6271. " GOODSLEVELTYPEID,\n" +
  6272. " GROUTINGDATE,\n" +
  6273. " GROUTINGMOULDCODE,\n" +
  6274. " MOULDCODE,\n" +
  6275. " GROUTINGUSERID,\n" +
  6276. " GROUTINGUSERCODE,\n" +
  6277. " GROUTINGNUM,\n" +
  6278. " GROUTINGDAILYID,\n" +
  6279. " GROUTINGDAILYDETAILID,\n" +
  6280. " GROUTINGLINEID,\n" +
  6281. " GROUTINGLINECODE,\n" +
  6282. " GROUTINGLINENAME,\n" +
  6283. " GMOULDTYPEID,\n" +
  6284. " CANMANYTIMES,\n" +
  6285. " GROUTINGLINEDETAILID,\n" +
  6286. " SPECIALREPAIRFLAG,\n" +
  6287. " CLASSESSETTINGID,\n" +
  6288. " LOGOID,\n" +
  6289. " BACKOUTTIME,\n" +
  6290. " BACKOUTUSERID,\n" +
  6291. " BACKOUTUSERCODE,\n" +
  6292. " CHECKTIME,\n" +
  6293. " TAMPERTIME)\n" +
  6294. " VALUES( :NEWPRODUCTIONDATAID,\n" +
  6295. " :BARCODE,\n" +
  6296. " :CENTRALIZEDBATCHNO,\n" +
  6297. " :PRODUCTIONLINEID,\n" +
  6298. " :PRODUCTIONLINECODE,\n" +
  6299. " :PRODUCTIONLINENAME,\n" +
  6300. " :PROCEDUREID,\n" +
  6301. " :PROCEDURECODE,\n" +
  6302. " :PROCEDURENAME,\n" +
  6303. " :PROCEDUREMODEL,\n" +
  6304. " :MODELTYPE,\n" +
  6305. " :PIECETYPE,\n" +
  6306. " :ISREWORKED,\n" +
  6307. " :NODETYPE,\n" +
  6308. " :ISPUBLICBODY,\n" +
  6309. " :ISREFIRE,\n" +
  6310. " :ORGANIZATIONID,\n" +
  6311. " :GOODSID,\n" +
  6312. " :GOODSCODE,\n" +
  6313. " :GOODSNAME,\n" +
  6314. " :USERID,\n" +
  6315. " :USERCODE,\n" +
  6316. " :USERNAME,\n" +
  6317. " :KILNID,\n" +
  6318. " :KILNCODE,\n" +
  6319. " :KILNNAME,\n" +
  6320. " :KILNCARID,\n" +
  6321. " :KILNCARCODE,\n" +
  6322. " :KILNCARNAME,\n" +
  6323. " :KILNCARBATCHNO,\n" +
  6324. " :KILNCARPOSITION,\n" +
  6325. " :REWORKPROCEDUREID,\n" +
  6326. " :REWORKPROCEDURECODE,\n" +
  6327. " :REWORKPROCEDURENAME,\n" +
  6328. " :REMARKS,\n" +
  6329. " :ACCOUNTDATE,\n" +
  6330. " :SETTLEMENTFLAG,\n" +
  6331. " :ACCOUNTID,\n" +
  6332. " '1',\n" +
  6333. " :CREATETIME,\n" +
  6334. " :CREATEUSERID,\n" +
  6335. " :UPDATETIME,\n" +
  6336. " :UPDATEUSERID,\n" +
  6337. //" OPTIMESTAMP,\n" +
  6338. " :GOODSLEVELID,\n" +
  6339. " :GOODSLEVELTYPEID,\n" +
  6340. " :GROUTINGDATE,\n" +
  6341. " :GROUTINGMOULDCODE,\n" +
  6342. " :MOULDCODE,\n" +
  6343. " :GROUTINGUSERID,\n" +
  6344. " :GROUTINGUSERCODE,\n" +
  6345. " :GROUTINGNUM,\n" +
  6346. " :GROUTINGDAILYID,\n" +
  6347. " :GROUTINGDAILYDETAILID,\n" +
  6348. " :GROUTINGLINEID,\n" +
  6349. " :GROUTINGLINECODE,\n" +
  6350. " :GROUTINGLINENAME,\n" +
  6351. " :GMOULDTYPEID,\n" +
  6352. " :CANMANYTIMES,\n" +
  6353. " :GROUTINGLINEDETAILID,\n" +
  6354. " :SPECIALREPAIRFLAG,\n" +
  6355. " :CLASSESSETTINGID,\n" +
  6356. " :LOGOID,\n" +
  6357. " :BACKOUTTIME,\n" +
  6358. " :BACKOUTUSERID,\n" +
  6359. " :BACKOUTUSERCODE,\n" +
  6360. " :CHECKTIME,\n" +
  6361. " SYSDATE)\n";
  6362. DataRow row = data.Rows[0];
  6363. paras = new OracleParameter[]
  6364. {
  6365. new OracleParameter(":NEWPRODUCTIONDATAID",OracleDbType.Int32, newProductionDataID,ParameterDirection.Input),
  6366. new OracleParameter(":USERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6367. new OracleParameter(":USERCODE",OracleDbType.Varchar2, sUserInfo.UserCode,ParameterDirection.Input),
  6368. new OracleParameter(":USERNAME",OracleDbType.Varchar2, sUserInfo.UserName,ParameterDirection.Input),
  6369. new OracleParameter(":CREATEUSERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6370. new OracleParameter(":UPDATEUSERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6371. //new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32, productionDataEntity.ProductionDataID,ParameterDirection.Input)
  6372. new OracleParameter(":BARCODE",OracleDbType.NVarchar2, row["BARCODE"],ParameterDirection.Input),
  6373. new OracleParameter(":CENTRALIZEDBATCHNO",OracleDbType.Varchar2, row["CENTRALIZEDBATCHNO"],ParameterDirection.Input),
  6374. new OracleParameter(":PRODUCTIONLINEID",OracleDbType.Int32, row["PRODUCTIONLINEID"],ParameterDirection.Input),
  6375. new OracleParameter(":PRODUCTIONLINECODE",OracleDbType.NVarchar2, row["PRODUCTIONLINECODE"],ParameterDirection.Input),
  6376. new OracleParameter(":PRODUCTIONLINENAME",OracleDbType.NVarchar2, row["PRODUCTIONLINENAME"],ParameterDirection.Input),
  6377. new OracleParameter(":PROCEDUREID",OracleDbType.Int32, row["PROCEDUREID"],ParameterDirection.Input),
  6378. new OracleParameter(":PROCEDURECODE",OracleDbType.NVarchar2, row["PROCEDURECODE"],ParameterDirection.Input),
  6379. new OracleParameter(":PROCEDURENAME",OracleDbType.NVarchar2, row["PROCEDURENAME"],ParameterDirection.Input),
  6380. new OracleParameter(":PROCEDUREMODEL",OracleDbType.Char, row["PROCEDUREMODEL"],ParameterDirection.Input),
  6381. new OracleParameter(":MODELTYPE",OracleDbType.Int32, row["MODELTYPE"],ParameterDirection.Input),
  6382. new OracleParameter(":PIECETYPE",OracleDbType.Char, row["PIECETYPE"],ParameterDirection.Input),
  6383. new OracleParameter(":ISREWORKED",OracleDbType.Char, row["ISREWORKED"],ParameterDirection.Input),
  6384. new OracleParameter(":NODETYPE",OracleDbType.Char, row["NODETYPE"],ParameterDirection.Input),
  6385. new OracleParameter(":ISPUBLICBODY",OracleDbType.Char, row["ISPUBLICBODY"],ParameterDirection.Input),
  6386. new OracleParameter(":ISREFIRE",OracleDbType.Char, row["ISREFIRE"],ParameterDirection.Input),
  6387. new OracleParameter(":ORGANIZATIONID",OracleDbType.Int32, row["ORGANIZATIONID"],ParameterDirection.Input),
  6388. new OracleParameter(":GOODSID",OracleDbType.Int32, row["GOODSID"],ParameterDirection.Input),
  6389. new OracleParameter(":GOODSCODE",OracleDbType.NVarchar2, row["GOODSCODE"],ParameterDirection.Input),
  6390. new OracleParameter(":GOODSNAME",OracleDbType.NVarchar2, row["GOODSNAME"],ParameterDirection.Input),
  6391. new OracleParameter(":KILNID",OracleDbType.Int32, row["KILNID"],ParameterDirection.Input),
  6392. new OracleParameter(":KILNCODE",OracleDbType.NVarchar2, row["KILNCODE"],ParameterDirection.Input),
  6393. new OracleParameter(":KILNNAME",OracleDbType.NVarchar2, row["KILNNAME"],ParameterDirection.Input),
  6394. new OracleParameter(":KILNCARID",OracleDbType.Int32, row["KILNCARID"],ParameterDirection.Input),
  6395. new OracleParameter(":KILNCARCODE",OracleDbType.NVarchar2, row["KILNCARCODE"],ParameterDirection.Input),
  6396. new OracleParameter(":KILNCARNAME",OracleDbType.NVarchar2, row["KILNCARNAME"],ParameterDirection.Input),
  6397. new OracleParameter(":KILNCARBATCHNO",OracleDbType.NVarchar2, row["KILNCARBATCHNO"],ParameterDirection.Input),
  6398. new OracleParameter(":KILNCARPOSITION",OracleDbType.Int32, row["KILNCARPOSITION"],ParameterDirection.Input),
  6399. new OracleParameter(":REWORKPROCEDUREID",OracleDbType.Int32, row["REWORKPROCEDUREID"],ParameterDirection.Input),
  6400. new OracleParameter(":REWORKPROCEDURECODE",OracleDbType.NVarchar2, row["REWORKPROCEDURECODE"],ParameterDirection.Input),
  6401. new OracleParameter(":REWORKPROCEDURENAME",OracleDbType.NVarchar2, row["REWORKPROCEDURENAME"],ParameterDirection.Input),
  6402. new OracleParameter(":REMARKS",OracleDbType.NVarchar2, row["REMARKS"],ParameterDirection.Input),
  6403. new OracleParameter(":ACCOUNTDATE",OracleDbType.Date, row["ACCOUNTDATE"],ParameterDirection.Input),
  6404. new OracleParameter(":SETTLEMENTFLAG",OracleDbType.Char, row["SETTLEMENTFLAG"],ParameterDirection.Input),
  6405. new OracleParameter(":ACCOUNTID",OracleDbType.Int32, row["ACCOUNTID"],ParameterDirection.Input),
  6406. new OracleParameter(":CREATETIME",OracleDbType.Date, row["CREATETIME"],ParameterDirection.Input),
  6407. new OracleParameter(":UPDATETIME",OracleDbType.Date, row["UPDATETIME"],ParameterDirection.Input),
  6408. new OracleParameter(":GOODSLEVELID",OracleDbType.Int32, row["GOODSLEVELID"],ParameterDirection.Input),
  6409. new OracleParameter(":GOODSLEVELTYPEID",OracleDbType.Int32, row["GOODSLEVELTYPEID"],ParameterDirection.Input),
  6410. new OracleParameter(":GROUTINGDATE",OracleDbType.Date, row["GROUTINGDATE"],ParameterDirection.Input),
  6411. new OracleParameter(":GROUTINGMOULDCODE",OracleDbType.NVarchar2, row["GROUTINGMOULDCODE"],ParameterDirection.Input),
  6412. new OracleParameter(":MOULDCODE",OracleDbType.NVarchar2, row["MOULDCODE"],ParameterDirection.Input),
  6413. new OracleParameter(":GROUTINGUSERID",OracleDbType.Int32, row["GROUTINGUSERID"],ParameterDirection.Input),
  6414. new OracleParameter(":GROUTINGUSERCODE",OracleDbType.NVarchar2, row["GROUTINGUSERCODE"],ParameterDirection.Input),
  6415. new OracleParameter(":GROUTINGNUM",OracleDbType.Decimal, row["GROUTINGNUM"],ParameterDirection.Input),
  6416. new OracleParameter(":GROUTINGDAILYID",OracleDbType.Int32, row["GROUTINGDAILYID"],ParameterDirection.Input),
  6417. new OracleParameter(":GROUTINGDAILYDETAILID",OracleDbType.Int32, row["GROUTINGDAILYDETAILID"],ParameterDirection.Input),
  6418. new OracleParameter(":GROUTINGLINEID",OracleDbType.Int32, row["GROUTINGLINEID"],ParameterDirection.Input),
  6419. new OracleParameter(":GROUTINGLINECODE",OracleDbType.NVarchar2, row["GROUTINGLINECODE"],ParameterDirection.Input),
  6420. new OracleParameter(":GROUTINGLINENAME",OracleDbType.NVarchar2, row["GROUTINGLINENAME"],ParameterDirection.Input),
  6421. new OracleParameter(":GMOULDTYPEID",OracleDbType.Int32, row["GMOULDTYPEID"],ParameterDirection.Input),
  6422. new OracleParameter(":CANMANYTIMES",OracleDbType.Char, row["CANMANYTIMES"],ParameterDirection.Input),
  6423. new OracleParameter(":GROUTINGLINEDETAILID",OracleDbType.Int32, row["GROUTINGLINEDETAILID"],ParameterDirection.Input),
  6424. new OracleParameter(":SPECIALREPAIRFLAG",OracleDbType.Char, row["SPECIALREPAIRFLAG"],ParameterDirection.Input),
  6425. new OracleParameter(":CLASSESSETTINGID",OracleDbType.Int32, row["CLASSESSETTINGID"],ParameterDirection.Input),
  6426. new OracleParameter(":LOGOID",OracleDbType.Int32, row["LOGOID"],ParameterDirection.Input),
  6427. new OracleParameter(":BACKOUTTIME",OracleDbType.Date, row["BACKOUTTIME"],ParameterDirection.Input),
  6428. new OracleParameter(":BACKOUTUSERID",OracleDbType.Int32, row["BACKOUTUSERID"],ParameterDirection.Input),
  6429. new OracleParameter(":BACKOUTUSERCODE",OracleDbType.NVarchar2, row["BACKOUTUSERCODE"],ParameterDirection.Input),
  6430. new OracleParameter(":CHECKTIME",OracleDbType.Date, row["CHECKTIME"],ParameterDirection.Input),
  6431. };
  6432. int returnRows = oracleTrConn.ExecuteNonQuery(sqlString, paras);
  6433. #endregion
  6434. #region 查询刚插入得数据
  6435. sqlString = "SELECT * FROM TP_PM_PRODUCTIONDATA PD WHERE PD.VALUEFLAG = '1' AND PD.PRODUCTIONDATAID = :PRODUCTIONDATAID";
  6436. paras = new OracleParameter[]
  6437. {
  6438. new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32, newProductionDataID,ParameterDirection.Input)
  6439. };
  6440. DataTable dtResult = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  6441. ProductionDataEntity newProductionDataEntity;
  6442. if (dtResult != null && dtResult.Rows.Count > 0)
  6443. {
  6444. newProductionDataEntity = DataConvert.DataRowConvertToObject<ProductionDataEntity>(dtResult.Rows[0]);
  6445. }
  6446. else
  6447. {
  6448. sre.Status = Constant.ServiceResultStatus.Other;
  6449. sre.Message = "【此条码生产数据已被修改,请重新扫描此条码】";
  6450. return sre;
  6451. }
  6452. #endregion
  6453. #region 删除原数据
  6454. // 删除生产数据
  6455. sqlString = "UPDATE TP_PM_PRODUCTIONDATA\n" +
  6456. " SET VALUEFLAG = '0'\n" +
  6457. " , BACKOUTTIME = sysdate\n" +
  6458. " , BACKOUTUSERID = " + sUserInfo.UserID + "\n" +
  6459. " , BACKOUTUSERCODE = '"+ sUserInfo.UserCode+ "'\n" +
  6460. " WHERE PRODUCTIONDATAID = :PRODUCTIONDATAID";
  6461. paras = new OracleParameter[]
  6462. {
  6463. new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32, productionDataEntity.ProductionDataID,ParameterDirection.Input)
  6464. };
  6465. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  6466. // 删除缺陷
  6467. sqlString = "UPDATE TP_PM_DEFECT\n" +
  6468. " SET VALUEFLAG = '0'\n" +
  6469. " WHERE PRODUCTIONDATAID = :PRODUCTIONDATAID";
  6470. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  6471. // 删除缺陷责任人
  6472. sqlString = "UPDATE TP_PM_DEFECTRESPONSIBLE A\n" +
  6473. " SET A.VALUEFLAG = '0'\n" +
  6474. " WHERE A.PRODUCTIONDEFECTID IN\n" +
  6475. " (SELECT PRODUCTIONDEFECTID\n" +
  6476. " FROM TP_PM_DEFECT\n" +
  6477. " WHERE PRODUCTIONDATAID = :PRODUCTIONDATAID)";
  6478. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  6479. #endregion
  6480. #region 条码有缺陷
  6481. // 存在缺陷 插入缺陷表
  6482. if (productionDataEntity.ProductionDefects != null)
  6483. {
  6484. #region 查询工序信息
  6485. ProcedureEntity procedure = GetProcedurByID(oracleTrConn, productionDataEntity.ProcedureID);
  6486. #endregion
  6487. #region 取最近一条缺陷记录
  6488. sqlString = "SELECT PRODUCTIONDEFECTID\n" +
  6489. " FROM TP_PM_DEFECT\n" +
  6490. " WHERE PRODUCTIONDATAID = :PRODUCTIONDATAID\n" +
  6491. " ORDER BY PRODUCTIONDEFECTID DESC";
  6492. paras = new OracleParameter[]
  6493. {
  6494. new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32, productionDataEntity.ProductionDataID,ParameterDirection.Input)
  6495. };
  6496. string productionDefectID = oracleTrConn.GetSqlResultToStr(sqlString, paras);
  6497. int originalProductionDefectID = 0;
  6498. if (!string.IsNullOrEmpty(productionDefectID))
  6499. {
  6500. originalProductionDefectID = int.Parse(productionDefectID);
  6501. }
  6502. #endregion
  6503. foreach (ProductionDefectEntity productionDefect in productionDataEntity.ProductionDefects)
  6504. {
  6505. #region 保存缺陷
  6506. productionDefect.ProductionDataID = newProductionDataID;
  6507. productionDefect.BarCode = newProductionDataEntity.Barcode;
  6508. productionDefect.ProductionLineID = procedure.ProductionLineID;
  6509. productionDefect.ProductionLineCode = procedure.ProductionlineCode;
  6510. productionDefect.ProductionLineName = procedure.ProductionlineName;
  6511. productionDefect.ProcedureID = procedure.ProcedureID;
  6512. productionDefect.ProcedureCode = procedure.ProcedureCode;
  6513. productionDefect.ProcedureName = procedure.ProcedureName;
  6514. productionDefect.UserID = newProductionDataEntity.UserID;
  6515. productionDefect.UserCode = newProductionDataEntity.UserCode;
  6516. productionDefect.UserName = newProductionDataEntity.UserName;
  6517. productionDefect.GoodsID = newProductionDataEntity.GoodsID;
  6518. productionDefect.GoodsCode = newProductionDataEntity.GoodsCode;
  6519. productionDefect.GoodsName = newProductionDataEntity.GoodsName;
  6520. productionDefect.Remarks = newProductionDataEntity.Remarks;
  6521. productionDefect.ScrapResponFlag
  6522. = string.IsNullOrEmpty(productionDefect.ScrapResponFlag) ? "0" : productionDefect.ScrapResponFlag;
  6523. productionDefect.ProductionDefectID = productionDefect.ProductionDefectID == 0 ?
  6524. originalProductionDefectID : productionDefect.ProductionDefectID;
  6525. productionDefect.CreateTime = newProductionDataEntity.CreateTime == null
  6526. ? DateTime.Now : DateTime.Parse(newProductionDataEntity.CreateTime + "");
  6527. productionDefect.CheckTime = newProductionDataEntity.CheckTime;
  6528. // 保存缺陷
  6529. errMsg = AddDefect(oracleTrConn, productionDefect, sUserInfo);
  6530. if (!string.IsNullOrEmpty(errMsg))
  6531. {
  6532. sre.Status = Constant.ServiceResultStatus.Other;
  6533. sre.Message = errMsg;
  6534. return sre;
  6535. }
  6536. #endregion
  6537. }
  6538. }
  6539. #endregion
  6540. // 没有错误 提交事务
  6541. if (string.IsNullOrEmpty(errMsg))
  6542. {
  6543. oracleTrConn.Commit();
  6544. }
  6545. else
  6546. {
  6547. oracleTrConn.Rollback();
  6548. }
  6549. }
  6550. catch (Exception ex)
  6551. {
  6552. oracleTrConn.Rollback();
  6553. throw ex;
  6554. }
  6555. finally
  6556. {
  6557. // 释放资源
  6558. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  6559. {
  6560. oracleTrConn.Disconnect();
  6561. }
  6562. }
  6563. return sre;
  6564. }
  6565. /// <summary>
  6566. /// 查询工序信息
  6567. /// </summary>
  6568. /// <param name="oracleTrConn">连接对象</param>
  6569. /// <param name="procedureID">工序ID</param>
  6570. /// <returns>工序实体</returns>
  6571. private static ProcedureEntity GetProcedurByID(IDBTransaction oracleTrConn, int procedureID)
  6572. {
  6573. ProcedureEntity procedureEntity = new ProcedureEntity();
  6574. string procsql = "pro_pm_searchProcedurbyID";
  6575. try
  6576. {
  6577. IDataParameter[] paras = new OracleParameter[]
  6578. {
  6579. new OracleParameter("in_procedureID", OracleDbType.Int32, procedureID, ParameterDirection.Input),
  6580. new OracleParameter("out_result", OracleDbType.RefCursor, ParameterDirection.Output)
  6581. };
  6582. DataSet returnDs = oracleTrConn.ExecStoredProcedure(procsql, paras);
  6583. if (returnDs != null
  6584. && returnDs.Tables.Count > Constant.INT_IS_ZERO
  6585. && returnDs.Tables[0].Rows.Count > Constant.INT_IS_ZERO)
  6586. {
  6587. DataRow row = returnDs.Tables[0].Rows[0];
  6588. // 转实体
  6589. procedureEntity = DataConvert.DataRowConvertToObject<ProcedureEntity>(row);
  6590. return procedureEntity;
  6591. }
  6592. else
  6593. {
  6594. return null;
  6595. }
  6596. }
  6597. catch (Exception ex)
  6598. {
  6599. throw ex;
  6600. }
  6601. }
  6602. /// <summary>
  6603. /// 保存缺陷
  6604. /// </summary>
  6605. /// <param name="oracleTrConn">连接对象</param>
  6606. /// <param name="productionDefect">缺陷数据</param>
  6607. /// <param name="sUserInfo">用户基本信息</param>
  6608. /// <returns>string</returns>
  6609. private static string AddDefect(IDBTransaction oracleTrConn, ProductionDefectEntity productionDefect, SUserInfo sUserInfo)
  6610. {
  6611. // 查询新插入的生产缺陷ID
  6612. string sqlString = "select SEQ_PM_Defect_DefectID.nextval from dual";
  6613. string idStr = oracleTrConn.GetSqlResultToStr(sqlString);
  6614. int newProductionDefectID = 0;
  6615. if (!string.IsNullOrEmpty(idStr))
  6616. {
  6617. newProductionDefectID = int.Parse(idStr);
  6618. }
  6619. else
  6620. {
  6621. return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
  6622. }
  6623. OracleParameter[] paras = null;
  6624. if (productionDefect.ProductionDefectID != 0)
  6625. {
  6626. #region SQL
  6627. sqlString = "INSERT INTO TP_PM_DEFECT\n" +
  6628. " (PRODUCTIONDEFECTID,\n" +
  6629. " PRODUCTIONDATAID,\n" +
  6630. " BARCODE,\n" +
  6631. " PRODUCTIONLINEID,\n" +
  6632. " PRODUCTIONLINECODE,\n" +
  6633. " PRODUCTIONLINENAME,\n" +
  6634. " PROCEDUREID,\n" +
  6635. " PROCEDURECODE,\n" +
  6636. " PROCEDURENAME,\n" +
  6637. " USERID,\n" +
  6638. " USERCODE,\n" +
  6639. " USERNAME,\n" +
  6640. " GOODSID,\n" +
  6641. " GOODSCODE,\n" +
  6642. " GOODSNAME,\n" +
  6643. " DEFECTID,\n" +
  6644. " DEFECTCODE,\n" +
  6645. " DEFECTNAME,\n" +
  6646. " DEFECTPOSITIONID,\n" +
  6647. " DEFECTPOSITIONCODE,\n" +
  6648. " DEFECTPOSITIONNAME,\n" +
  6649. " DEFECTPRODUCTIONDATAID,\n" +
  6650. " DEFECTPROCEDUREID,\n" +
  6651. " DEFECTPROCEDURECODE,\n" +
  6652. " DEFECTPROCEDURENAME,\n" +
  6653. " DEFECTUSERID,\n" +
  6654. " DEFECTUSERCODE,\n" +
  6655. " DEFECTUSERNAME,\n" +
  6656. " DEFECTJOBS,\n" +
  6657. " REMARKS,\n" +
  6658. " ACCOUNTID,\n" +
  6659. " VALUEFLAG,\n" +
  6660. " CREATETIME,\n" +
  6661. " CREATEUSERID,\n" +
  6662. " UPDATETIME,\n" +
  6663. " UPDATEUSERID,\n" +
  6664. " SCRAPRESPONFLAG,\n" +
  6665. " DEFECTFINE,\n" +
  6666. " MISSEDUSERID,\n" +
  6667. " MISSEDUSERCODE,\n" +
  6668. " MISSEDUSERNAME,\n" +
  6669. " SPECIALDEFECT,\n" +
  6670. " DEFECTDEDUCTIONNUM,\n" +
  6671. " CHECKTIME)\n" +
  6672. " SELECT :NEWPRODUCTIONDEFECTID,\n" +
  6673. " :PRODUCTIONDATAID,\n" +
  6674. " BARCODE,\n" +
  6675. " PRODUCTIONLINEID,\n" +
  6676. " PRODUCTIONLINECODE,\n" +
  6677. " PRODUCTIONLINENAME,\n" +
  6678. " PROCEDUREID,\n" +
  6679. " PROCEDURECODE,\n" +
  6680. " PROCEDURENAME,\n" +
  6681. " USERID,\n" +
  6682. " USERCODE,\n" +
  6683. " USERNAME,\n" +
  6684. " GOODSID,\n" +
  6685. " GOODSCODE,\n" +
  6686. " GOODSNAME,\n" +
  6687. " :DEFECTID,\n" +
  6688. " :DEFECTCODE,\n" +
  6689. " :DEFECTNAME,\n" +
  6690. " :DEFECTPOSITIONID,\n" +
  6691. " :DEFECTPOSITIONCODE,\n" +
  6692. " :DEFECTPOSITIONNAME,\n" +
  6693. " DEFECTPRODUCTIONDATAID,\n" +
  6694. " :DEFECTPROCEDUREID,\n" +
  6695. " :DEFECTPROCEDURECODE,\n" +
  6696. " :DEFECTPROCEDURENAME,\n" +
  6697. " :DEFECTUSERID,\n" +
  6698. " :DEFECTUSERCODE,\n" +
  6699. " :DEFECTUSERNAME,\n" +
  6700. " :DEFECTJOBS,\n" +
  6701. " REMARKS,\n" +
  6702. " ACCOUNTID,\n" +
  6703. " '1',\n" +
  6704. " CREATETIME,\n" +
  6705. " :CREATEUSERID,\n" +
  6706. " UPDATETIME,\n" +
  6707. " :UPDATEUSERID,\n" +
  6708. " SCRAPRESPONFLAG,\n" +
  6709. " :DEFECTFINE,\n" +
  6710. " MISSEDUSERID,\n" +
  6711. " MISSEDUSERCODE,\n" +
  6712. " MISSEDUSERNAME,\n" +
  6713. " SPECIALDEFECT,\n" +
  6714. " :DEFECTDEDUCTIONNUM,\n" +
  6715. " CHECKTIME\n" +
  6716. " FROM TP_PM_DEFECT\n" +
  6717. " WHERE PRODUCTIONDEFECTID = :PRODUCTIONDEFECTID";
  6718. #endregion
  6719. #region 参数
  6720. paras = new OracleParameter[]
  6721. {
  6722. new OracleParameter(":NEWPRODUCTIONDEFECTID",OracleDbType.Int32,newProductionDefectID,ParameterDirection.Input),
  6723. new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32,productionDefect.ProductionDataID,ParameterDirection.Input),
  6724. new OracleParameter(":DEFECTID",OracleDbType.Int32,productionDefect.DefectID,ParameterDirection.Input),
  6725. new OracleParameter(":DEFECTCODE",OracleDbType.Varchar2,productionDefect.DefectCode,ParameterDirection.Input),
  6726. new OracleParameter(":DEFECTNAME",OracleDbType.Varchar2,productionDefect.DefectName,ParameterDirection.Input),
  6727. new OracleParameter(":DEFECTPOSITIONID",OracleDbType.Int32,productionDefect.DefectPositionID,ParameterDirection.Input),
  6728. new OracleParameter(":DEFECTPOSITIONCODE",OracleDbType.Varchar2,productionDefect.DefectPositionCode,ParameterDirection.Input),
  6729. new OracleParameter(":DEFECTPOSITIONNAME",OracleDbType.Varchar2,productionDefect.DefectPositionName,ParameterDirection.Input),
  6730. new OracleParameter(":DEFECTPROCEDUREID",OracleDbType.Int32,productionDefect.DefectProcedureID,ParameterDirection.Input),
  6731. new OracleParameter(":DEFECTPROCEDURECODE",OracleDbType.Varchar2,productionDefect.DefectProcedureCode,ParameterDirection.Input),
  6732. new OracleParameter(":DEFECTPROCEDURENAME",OracleDbType.Varchar2,productionDefect.DefectProcedureName,ParameterDirection.Input),
  6733. new OracleParameter(":DEFECTUSERID",OracleDbType.Int32,productionDefect.DefectUserID,ParameterDirection.Input),
  6734. new OracleParameter(":DEFECTUSERCODE",OracleDbType.Varchar2,productionDefect.DefectUserCode,ParameterDirection.Input),
  6735. new OracleParameter(":DEFECTUSERNAME",OracleDbType.Varchar2,productionDefect.DefectUserName,ParameterDirection.Input),
  6736. new OracleParameter(":DEFECTJOBS",OracleDbType.Int32,productionDefect.DefectJobs,ParameterDirection.Input),
  6737. new OracleParameter(":CREATEUSERID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  6738. new OracleParameter(":UPDATEUSERID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  6739. new OracleParameter(":DEFECTFINE",OracleDbType.Int32,productionDefect.DefectFine,ParameterDirection.Input),
  6740. new OracleParameter(":DefectDeductionNum",OracleDbType.Decimal,productionDefect.DefectDeductionNum==null?0:productionDefect.DefectDeductionNum,ParameterDirection.Input),
  6741. new OracleParameter(":PRODUCTIONDEFECTID",OracleDbType.Int32,productionDefect.ProductionDefectID,ParameterDirection.Input)
  6742. };
  6743. #endregion
  6744. }
  6745. else
  6746. {
  6747. #region SQL
  6748. sqlString = "insert into tp_pm_defect"
  6749. + " ( ProductionDefectID,"
  6750. + " productiondataid,"
  6751. + " barcode,"
  6752. + " productionlineid,"
  6753. + " productionlinecode,"
  6754. + " productionlinename,"
  6755. + " procedureid,"
  6756. + " procedurecode,"
  6757. + " procedurename,"
  6758. + " userid,"
  6759. + " usercode,"
  6760. + " username,"
  6761. + " goodsid,"
  6762. + " goodscode,"
  6763. + " goodsname,"
  6764. + " defectid,"
  6765. + " defectcode,"
  6766. + " defectname,"
  6767. + " defectpositionid,"
  6768. + " defectpositioncode,"
  6769. + " defectpositionname,"
  6770. + " scrapResponFlag,"
  6771. + " defectproductiondataid,"
  6772. + " defectprocedureid,"
  6773. + " defectprocedurecode,"
  6774. + " defectprocedurename,"
  6775. + " defectuserid,"
  6776. + " defectusercode,"
  6777. + " defectusername,"
  6778. + " defectjobs,"
  6779. + " remarks,"
  6780. + " accountid,"
  6781. + " createuserid,"
  6782. + " CREATETIME,"
  6783. + " defectfine,"
  6784. + " misseduserid,"
  6785. + " missedusercode,"
  6786. + " missedusername,"
  6787. + " updateuserid,SpecialDefect,DefectDeductionNum,CheckTime)"
  6788. + " values"
  6789. + " ("
  6790. + " :ProductionDefectID,"
  6791. + " :productiondataid,"
  6792. + " :barcode,"
  6793. + " :productionlineid,"
  6794. + " :productionlinecode,"
  6795. + " :productionlinename,"
  6796. + " :procedureid,"
  6797. + " :procedurecode,"
  6798. + " :procedurename,"
  6799. + " :userid,"
  6800. + " :usercode,"
  6801. + " :username,"
  6802. + " :goodsid,"
  6803. + " :goodscode,"
  6804. + " :goodsname,"
  6805. + " :defectid,"
  6806. + " :defectcode,"
  6807. + " :defectname,"
  6808. + " :defectpositionid,"
  6809. + " :defectpositioncode,"
  6810. + " :defectpositionname,"
  6811. + " :scrapResponFlag,"
  6812. + " :defectproductiondataid,"
  6813. + " :defectprocedureid,"
  6814. + " :defectprocedurecode,"
  6815. + " :defectprocedurename,"
  6816. + " :defectuserid,"
  6817. + " :defectusercode,"
  6818. + " :defectusername,"
  6819. + " :defectjobs,"
  6820. + " :remarks,"
  6821. + " :accountid,"
  6822. + " :createuserid,"
  6823. + " :createtime,"
  6824. + " :defectfine,"
  6825. + " :misseduserid,"
  6826. + " :missedusercode,"
  6827. + " :missedusername,"
  6828. + " :updateuserid,:SpecialDefect,:DefectDeductionNum,:CheckTime)";
  6829. #endregion
  6830. #region 参数
  6831. paras = new OracleParameter[]
  6832. {
  6833. new OracleParameter(":ProductionDefectID",newProductionDefectID),
  6834. new OracleParameter(":productiondataid",productionDefect.ProductionDataID),
  6835. new OracleParameter(":barcode",productionDefect.BarCode),
  6836. new OracleParameter(":productionlineid",productionDefect.ProductionLineID),
  6837. new OracleParameter(":productionlinecode",productionDefect.ProductionLineCode),
  6838. new OracleParameter(":productionlinename",productionDefect.ProductionLineName),
  6839. new OracleParameter(":procedureid",productionDefect.ProcedureID),
  6840. new OracleParameter(":procedurecode",productionDefect.ProcedureCode),
  6841. new OracleParameter(":procedurename",productionDefect.ProcedureName),
  6842. new OracleParameter(":userid",productionDefect.UserID),
  6843. new OracleParameter(":usercode",productionDefect.UserCode),
  6844. new OracleParameter(":username",productionDefect.UserName),
  6845. new OracleParameter(":goodsid",productionDefect.GoodsID),
  6846. new OracleParameter(":goodscode",productionDefect.GoodsCode),
  6847. new OracleParameter(":goodsname",productionDefect.GoodsName),
  6848. new OracleParameter(":defectid",productionDefect.DefectID),
  6849. new OracleParameter(":defectcode",productionDefect.DefectCode),
  6850. new OracleParameter(":defectname",productionDefect.DefectName),
  6851. new OracleParameter(":defectpositionid",productionDefect.DefectPositionID),
  6852. new OracleParameter(":defectpositioncode",productionDefect.DefectPositionCode),
  6853. new OracleParameter(":defectpositionname",productionDefect.DefectPositionName),
  6854. new OracleParameter(":scrapResponFlag",productionDefect.ScrapResponFlag),
  6855. new OracleParameter(":defectproductiondataid",productionDefect.DefectProductionDataID),
  6856. new OracleParameter(":defectprocedureid",productionDefect.DefectProcedureID),
  6857. new OracleParameter(":defectprocedurecode",productionDefect.DefectProcedureCode),
  6858. new OracleParameter(":defectprocedurename",productionDefect.DefectProcedureName),
  6859. new OracleParameter(":defectuserid",productionDefect.DefectUserID),
  6860. new OracleParameter(":defectusercode",productionDefect.DefectUserCode),
  6861. new OracleParameter(":defectusername",productionDefect.DefectUserName),
  6862. new OracleParameter(":defectjobs",productionDefect.DefectJobs),
  6863. new OracleParameter(":remarks",productionDefect.Remarks),
  6864. new OracleParameter(":accountid",sUserInfo.AccountID),
  6865. new OracleParameter(":createuserid",sUserInfo.UserID),
  6866. new OracleParameter(":createtime",productionDefect.CreateTime),
  6867. new OracleParameter(":defectfine",productionDefect.DefectFine),
  6868. new OracleParameter(":misseduserid",productionDefect.MissedUserID),
  6869. new OracleParameter(":missedusercode",productionDefect.MissedUserCode),
  6870. new OracleParameter(":missedusername",productionDefect.MissedUserName),
  6871. new OracleParameter(":updateuserid",sUserInfo.UserID),
  6872. new OracleParameter(":SpecialDefect",productionDefect.SpecialDefect==null?"0":productionDefect.SpecialDefect),
  6873. new OracleParameter(":DefectDeductionNum",productionDefect.DefectDeductionNum==null?0:productionDefect.DefectDeductionNum),
  6874. new OracleParameter(":CheckTime",productionDefect.CheckTime)
  6875. };
  6876. #endregion
  6877. }
  6878. int result = oracleTrConn.ExecuteNonQuery(sqlString, paras);
  6879. // 保存失败
  6880. if (result < 1)
  6881. {
  6882. return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
  6883. }
  6884. #region 插入生产缺陷责任者
  6885. if (productionDefect.DefectResponsibles != null)
  6886. {
  6887. foreach (DefectResponsibleEntity DefectResponsible in productionDefect.DefectResponsibles)
  6888. {
  6889. #region SQL
  6890. sqlString = "insert into tp_pm_defectresponsible"
  6891. + " (productiondefectid,"
  6892. + " staffid,"
  6893. + " userid,"
  6894. + " usercode,"
  6895. + " Ujobsid,"
  6896. + " SJobsID,"
  6897. + " staffstatus,"
  6898. + " accountid,"
  6899. + " createuserid,"
  6900. + " updateuserid)"
  6901. + " values"
  6902. + " (:productiondefectid,"
  6903. + " :staffid,"
  6904. + " :userid,"
  6905. + " :usercode,"
  6906. + " :ujobsid,"
  6907. + " :sjobsid,"
  6908. + " :staffstatus,"
  6909. + " :accountid,"
  6910. + " :createuserid,"
  6911. + " :updateuserid)";
  6912. #endregion
  6913. #region 参数
  6914. paras = new OracleParameter[]
  6915. {
  6916. new OracleParameter(":productiondefectid",OracleDbType.Int32,newProductionDefectID,ParameterDirection.Input),
  6917. new OracleParameter(":staffid",OracleDbType.Int32,DefectResponsible.StaffID,ParameterDirection.Input),
  6918. new OracleParameter(":userid",OracleDbType.Int32,DefectResponsible.UserID,ParameterDirection.Input),
  6919. new OracleParameter(":usercode",OracleDbType.Varchar2,DefectResponsible.UserCode,ParameterDirection.Input),
  6920. new OracleParameter(":ujobsid",OracleDbType.Int32,DefectResponsible.UJobsID,ParameterDirection.Input),
  6921. new OracleParameter(":sjobsid",OracleDbType.Int32,DefectResponsible.SJobsID,ParameterDirection.Input),
  6922. new OracleParameter(":staffstatus",OracleDbType.Int32,DefectResponsible.StaffStatus,ParameterDirection.Input),
  6923. new OracleParameter(":accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  6924. new OracleParameter(":createuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  6925. new OracleParameter(":updateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input)
  6926. };
  6927. #endregion
  6928. result = oracleTrConn.ExecuteNonQuery(sqlString, paras);
  6929. // 保存失败
  6930. if (result < 1)
  6931. {
  6932. return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
  6933. }
  6934. }
  6935. }
  6936. #endregion
  6937. return null;
  6938. }
  6939. /// <summary>
  6940. /// 通过条码查出责任工序(成品改判用)
  6941. /// </summary>
  6942. /// <param name="barcode">产品条码</param>
  6943. /// <param name="defectid">缺陷ID</param>
  6944. /// <returns>DataSet</returns>
  6945. public static ServiceResultEntity GetDutyProcedureByBarCodeForTamper(string barcode, int defectid, int accountid)
  6946. {
  6947. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6948. try
  6949. {
  6950. con.Open();
  6951. ServiceResultEntity sre = new ServiceResultEntity();
  6952. DataSet dsReturn = new DataSet();
  6953. //string sqlString = "SELECT pdin.ProductionDataID\n" +
  6954. // " ,pdin.ProcedureID AS DutyProcedureID\n" +
  6955. // " ,pdin.ProcedureCode AS DutyProcedureCode\n" +
  6956. // " ,pdin.ProcedureName AS DutyProcedureName\n" +
  6957. // " ,pdin.NodeType\n" +
  6958. // " ,pdin.ModelType\n" +
  6959. // " ,pdin.classessettingid\n" +
  6960. // " ,pdin.userid\n" +
  6961. // " ,pdin.usercode\n" +
  6962. // " ,pdin.username\n" +
  6963. // " FROM TP_PM_ProductionData pdin\n" +
  6964. // " WHERE pdin.valueflag = '1'\n" +
  6965. // " AND pdin.accountid = :accountid\n" +
  6966. // " AND pdin.Barcode = :Barcode\n" +
  6967. // " AND EXISTS (SELECT 1\n" +
  6968. // " FROM TP_PC_DefectProcedureJobs dpJobs\n" +
  6969. // " WHERE dpJobs.DefectID = :DefectID\n" +
  6970. // " AND pdin.ProcedureID = dpJobs.ProcedureID)\n" +
  6971. // " ORDER BY pdin.ProductionDataID";
  6972. // 去掉重复工序(取最后一个)
  6973. string sqlString = "select pdin.ProductionDataID\n" +
  6974. " ,pdin.ProcedureID as DutyProcedureID\n" +
  6975. " ,pdin.ProcedureCode as DutyProcedureCode\n" +
  6976. " ,pdin.ProcedureName as DutyProcedureName\n" +
  6977. " ,pdin.NodeType\n" +
  6978. " ,pdin.ModelType\n" +
  6979. " ,pdin.classessettingid\n" +
  6980. " ,pdin.userid\n" +
  6981. " ,pdin.usercode\n" +
  6982. " ,pdin.username\n" +
  6983. " from TP_PM_ProductionDataIn pdin\n" +
  6984. " where pdin.productiondataid in\n" +
  6985. " (select max(pdi.productiondataid) pdid\n" +
  6986. " from TP_PM_ProductionDataIn pdi\n" +
  6987. " where pdi.valueflag = '1'\n" +
  6988. " and pdi.accountid = :accountid\n" +
  6989. " and pdi.Barcode = :Barcode\n" +
  6990. " and exists\n" +
  6991. " (select 1\n" +
  6992. " from TP_PC_DefectProcedureJobs dpJobs\n" +
  6993. " where dpJobs.DefectID = :DefectID\n" +
  6994. " and pdi.ProcedureID = dpJobs.ProcedureID)\n" +
  6995. " group by pdi.ProcedureID)\n" +
  6996. " order by pdin.ProductionDataID";
  6997. OracleParameter[] paras = new OracleParameter[]{
  6998. new OracleParameter(":accountid",OracleDbType.Int32, accountid,ParameterDirection.Input),
  6999. new OracleParameter(":Barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  7000. new OracleParameter(":DefectID",OracleDbType.Int32, defectid,ParameterDirection.Input),
  7001. };
  7002. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  7003. ds.Tables[0].TableName = "TProcedure";
  7004. sqlString = "select procedureid,jobsid from TP_PC_DefectProcedureJobs where TP_PC_DefectProcedureJobs.Defectid=:Defectid";
  7005. paras = new OracleParameter[]
  7006. {
  7007. new OracleParameter(":Defectid",defectid),
  7008. };
  7009. DataSet ds3 = con.GetSqlResultToDs(sqlString, paras);
  7010. ds3.Tables[0].TableName = "TP_PC_DefectProcedureJobs";
  7011. if (!dsReturn.Tables.Contains("TProcedure"))
  7012. {
  7013. dsReturn.Tables.Add(ds.Tables[0].Copy());
  7014. }
  7015. if (!dsReturn.Tables.Contains("TP_PC_DefectProcedureJobs"))
  7016. {
  7017. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  7018. }
  7019. sre.Status = Constant.ServiceResultStatus.Success;
  7020. sre.Data = dsReturn;
  7021. return sre;
  7022. }
  7023. catch (Exception ex)
  7024. {
  7025. throw ex;
  7026. }
  7027. finally
  7028. {
  7029. if (con.ConnState == ConnectionState.Open)
  7030. {
  7031. con.Close();
  7032. }
  7033. }
  7034. }
  7035. #endregion
  7036. #region 水效标识
  7037. public static ServiceResultEntity GetGoodsByBarCode(string barcode, SUserInfo sUserInfo)
  7038. {
  7039. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  7040. try
  7041. {
  7042. oracleConn.Open();
  7043. ServiceResultEntity sre = new ServiceResultEntity();
  7044. string gbarcode = null;
  7045. #region 获得注浆条码
  7046. string sqlString = @"select FUN_CMN_GetBarCode(:barcode, null, :accountid) From DUAL";
  7047. OracleParameter[] paras = new OracleParameter[]
  7048. {
  7049. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  7050. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input)
  7051. };
  7052. DataTable dtResult = oracleConn.GetSqlResultToDt(sqlString, paras);
  7053. if (dtResult != null && dtResult.Rows.Count > 0)
  7054. {
  7055. gbarcode = dtResult.Rows[0][0].ToString();
  7056. }
  7057. else
  7058. {
  7059. sre.Status = Constant.ServiceResultStatus.Other;
  7060. sre.OtherStatus = -11;
  7061. sre.Message = "条码【" + barcode + "】,不符合条件。";
  7062. return sre;
  7063. }
  7064. //// 2.判断产品是否在产成品表中
  7065. //sqlString = @"SELECT 1 FROM TP_PM_FINISHEDPRODUCT F WHERE F.VALUEFLAG = 1 AND F.GOODSLEVELTYPEID IN(4,5) AND F.BARCODE = :BARCODE";
  7066. //paras = new OracleParameter[]
  7067. //{
  7068. // new OracleParameter(":BARCODE", OracleDbType.NVarchar2, gbarcode, ParameterDirection.Input)
  7069. //};
  7070. //dtResult = oracleConn.GetSqlResultToDt(sqlString, paras);
  7071. //if (dtResult != null && dtResult.Rows.Count > 0)
  7072. //{
  7073. // sre.Status = Constant.ServiceResultStatus.Other;
  7074. // sre.OtherStatus = -11;
  7075. // sre.Message = "条码【" + barcode + "】,已经是产成品。";
  7076. // return sre;
  7077. //}
  7078. #endregion
  7079. #region 查询产品相关信息
  7080. sqlString = @"
  7081. SELECT GD.BARCODE,
  7082. NVL(GD.OUTLABELCODE
  7083. ,(GOODS.MATERIALCODE || (SELECT A.WORKCODE FROM TP_MST_ACCOUNT A WHERE A.ACCOUNTID = GD.ACCOUNTID)
  7084. || L.TAGCODE || GD.ONLYCODE)) AS FINISHEDBARCODE,
  7085. L.LOGONAME || '[' || L.LOGOCODE || ']' AS LOGONAME,
  7086. GD.GOODSCODE,
  7087. GOODS.GOODSMODEL,
  7088. NVL((SELECT GLS.WATERLABELCODE
  7089. FROM TP_MST_GOODSLOGOSAP GLS
  7090. WHERE GLS.GOODSID = GD.GOODSID
  7091. AND GLS.LOGOID = GD.LOGOID)
  7092. ,GOODS.WATERLABELCODE) AS WATERLABELCODE,
  7093. NVL((SELECT GLS.CERTIFICATECODE
  7094. FROM TP_MST_GOODSLOGOSAP GLS
  7095. WHERE GLS.GOODSID = GD.GOODSID
  7096. AND GLS.LOGOID = GD.LOGOID)
  7097. ,GOODS.CERTIFICATECODE) AS CERTIFICATECODE
  7098. FROM TP_PM_GROUTINGDAILYDETAIL GD
  7099. INNER JOIN TP_MST_LOGO L
  7100. ON GD.LOGOID = L.LOGOID
  7101. INNER JOIN TP_MST_GOODS GOODS
  7102. ON GD.GOODSID = GOODS.GOODSID
  7103. WHERE GD.VALUEFLAG = '1'
  7104. AND GD.BARCODE = :BARCODE ";
  7105. paras = new OracleParameter[]
  7106. {
  7107. new OracleParameter(":BARCODE", OracleDbType.NVarchar2, gbarcode, ParameterDirection.Input)
  7108. };
  7109. dtResult = oracleConn.GetSqlResultToDt(sqlString, paras);
  7110. if (dtResult != null && dtResult.Rows.Count > 0)
  7111. {
  7112. sre.Status = Constant.ServiceResultStatus.Success;
  7113. sre.Result = dtResult;
  7114. }
  7115. else
  7116. {
  7117. sre.Status = Constant.ServiceResultStatus.Other;
  7118. sre.OtherStatus = -11;
  7119. sre.Message = "条码【" + barcode + "】,不符合条件。";
  7120. }
  7121. #endregion
  7122. return sre;
  7123. }
  7124. catch (Exception ex)
  7125. {
  7126. throw ex;
  7127. }
  7128. finally
  7129. {
  7130. if (oracleConn.ConnState == ConnectionState.Open)
  7131. {
  7132. oracleConn.Close();
  7133. }
  7134. }
  7135. }
  7136. #endregion
  7137. #region 注浆绑码时,验证成型线是否能绑码
  7138. public static ServiceResultEntity CheckGroutingLine(string groutingLineCode)
  7139. {
  7140. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  7141. try
  7142. {
  7143. ServiceResultEntity sre = new ServiceResultEntity();
  7144. oracleConn.Open();
  7145. string sqlString =
  7146. "SELECT 1\n" +
  7147. " FROM tp_pc_groutingline gl\n" +
  7148. " WHERE (gl.h_lineindex IS NULL OR gl.h_lineindex = 1)\n" +
  7149. " AND gl.groutinglinecode = :groutinglinecode";
  7150. OracleParameter[] paras = new OracleParameter[]
  7151. {
  7152. new OracleParameter(":groutinglinecode", groutingLineCode)
  7153. };
  7154. object isExists = oracleConn.GetSqlResultToObj(sqlString, paras);
  7155. if (isExists == null)
  7156. {
  7157. sre.OtherStatus = -1;
  7158. sre.Message = "该成型线不允许绑码";
  7159. return sre;
  7160. }
  7161. return sre;
  7162. }
  7163. catch (Exception ex)
  7164. {
  7165. throw ex;
  7166. }
  7167. finally
  7168. {
  7169. if (oracleConn.ConnState == ConnectionState.Open)
  7170. {
  7171. oracleConn.Close();
  7172. }
  7173. }
  7174. }
  7175. #endregion
  7176. #region 产品分级(3车间)
  7177. /// <summary>
  7178. /// 验证产品分级(3车间)
  7179. /// </summary>
  7180. /// <param name="barcode"></param>
  7181. /// <returns></returns>
  7182. public static ServiceResultEntity CheckOneLevelType(string barcode)
  7183. {
  7184. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  7185. try
  7186. {
  7187. ServiceResultEntity sre = new ServiceResultEntity();
  7188. oracleConn.Open();
  7189. string sqlString =
  7190. "SELECT gdd.barcode\n" +
  7191. " ,g.goodscode\n" +
  7192. " ,l.logoname\n" +
  7193. " ,gdd.goodsleveltypeid as oneleveltypeid\n" +
  7194. " ,gdd.oneleveltypeid as oneleveltypeid1\n" +
  7195. " ,decode(gdd.leakflag1, '1', '合格', '0', '不合格', '未检测') AS leakflag1name\n" +
  7196. " ,decode(gdd.leakflag2, '1', '合格', '0', '不合格', '未检测') AS leakflag2name\n" +
  7197. " ,decode(gdd.leakflag3, '1', '合格', '0', '不合格', '未检测') AS leakflag3name\n" +
  7198. " ,decode(ip.specialrepairflag, '1', '是', '0', '否') AS specialrepairflagname\n" +
  7199. " ,decode(ip.isrefire, '6', '是', '0', '否') AS isrefirename\n" +
  7200. " FROM tp_pm_inproduction ip\n" +
  7201. " LEFT JOIN tp_pm_groutingdailydetail gdd\n" +
  7202. " ON gdd.groutingdailydetailid = ip.groutingdailydetailid\n" +
  7203. " LEFT JOIN tp_mst_logo l\n" +
  7204. " ON gdd.logoid = l.logoid\n" +
  7205. " LEFT JOIN tp_mst_goods g\n" +
  7206. " ON g.goodsid = ip.goodsid\n" +
  7207. " WHERE ip.barcode = :barcode";
  7208. OracleParameter[] paras = new OracleParameter[]
  7209. {
  7210. new OracleParameter(":barcode", barcode)
  7211. };
  7212. DataSet ds = oracleConn.GetSqlResultToDs(sqlString, paras);
  7213. if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
  7214. {
  7215. sre.OtherStatus = -1;
  7216. sre.Message = "无效条码";
  7217. return sre;
  7218. }
  7219. if (string.IsNullOrEmpty(ds.Tables[0].Rows[0]["oneleveltypeid1"] +""))
  7220. {
  7221. sre.OtherStatus = -1;
  7222. sre.Message = "该条码未进行成检交接,不能进行产品分级";
  7223. return sre;
  7224. }
  7225. sre.Data = ds;
  7226. return sre;
  7227. }
  7228. catch (Exception ex)
  7229. {
  7230. throw ex;
  7231. }
  7232. finally
  7233. {
  7234. if (oracleConn.ConnState == ConnectionState.Open)
  7235. {
  7236. oracleConn.Close();
  7237. }
  7238. }
  7239. }
  7240. /// <summary>
  7241. /// 保存产品分级(3车间)
  7242. /// </summary>
  7243. /// <param name="levelTypeID"></param>
  7244. /// <param name="barcode"></param>
  7245. /// <returns></returns>
  7246. public static ServiceResultEntity SaveOneLevelType(int? levelTypeID, string barcode)
  7247. {
  7248. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  7249. try
  7250. {
  7251. oracleTrConn.Connect();
  7252. ServiceResultEntity sre = new ServiceResultEntity();
  7253. string sqlString =
  7254. "UPDATE tp_pm_groutingdailydetail gdd\n" +
  7255. " SET gdd.goodsleveltypeid = :leveltypeid\n" +
  7256. " WHERE gdd.barcode = :barcode";
  7257. OracleParameter[] paras = new OracleParameter[]
  7258. {
  7259. new OracleParameter(":leveltypeid", levelTypeID),
  7260. new OracleParameter(":barcode", barcode)
  7261. };
  7262. sre.OtherStatus = oracleTrConn.ExecuteNonQuery(sqlString, paras);
  7263. oracleTrConn.Commit();
  7264. return sre;
  7265. }
  7266. catch (Exception ex)
  7267. {
  7268. throw ex;
  7269. }
  7270. finally
  7271. {
  7272. if (oracleTrConn.ConnState == ConnectionState.Open)
  7273. {
  7274. oracleTrConn.Disconnect();
  7275. }
  7276. }
  7277. }
  7278. /// <summary>
  7279. /// 注浆绑码选批次查询最小启用的模具编码
  7280. /// </summary>
  7281. /// <param name="GetGroutingMouldByBatchNo"></param>
  7282. /// <param name="groutingLineCode"></param>
  7283. /// <param name="groutingDay"></param>
  7284. /// <param name="groutingBatchNo"></param>
  7285. /// <param name="sUser"></param>
  7286. /// <returns></returns>
  7287. public static ServiceResultEntity GetGroutingMouldByBatchNo(string groutingMouldCode, string groutingLineCode, string groutingDay, string groutingBatchNo)
  7288. {
  7289. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  7290. string sqlStr = "";
  7291. string sqlStr0 = "";
  7292. try
  7293. {
  7294. ServiceResultEntity sre = new ServiceResultEntity();
  7295. oracleConn.Open();
  7296. sqlStr0 = $@"
  7297. SELECT
  7298. count(BARCODE)
  7299. FROM
  7300. TP_PM_GROUTINGDAILYDETAIL
  7301. WHERE
  7302. GROUTINGFLAG = '1'
  7303. and VALUEFLAG = '1'
  7304. and GROUTINGBATCHNO = :groutingBatchNo
  7305. and GROUTINGLINECODE = :groutingLineCode
  7306. AND GROUTINGDATE = TO_DATE(:groutingDay , 'yyyy-MM-dd')
  7307. and BARCODE is not null
  7308. ";
  7309. OracleParameter[] paras0 = new OracleParameter[]
  7310. {
  7311. new OracleParameter(":groutingBatchNo", Convert.ToInt32(groutingBatchNo)),
  7312. new OracleParameter(":groutingLineCode", groutingLineCode),
  7313. new OracleParameter(":groutingDay", groutingDay)
  7314. };
  7315. string result0 = oracleConn.GetSqlResultToStr(sqlStr0, paras0);
  7316. if (Convert.ToInt32(result0) > 0) {
  7317. sre.Status = Constant.ServiceResultStatus.Success;
  7318. sre.Result = Convert.ToInt32(groutingMouldCode.Substring(groutingMouldCode.Length - 3, 3));
  7319. return sre;
  7320. }
  7321. sqlStr = $@"
  7322. SELECT
  7323. substr(MIN(GROUTINGMOULDCODE),-3,3)
  7324. FROM
  7325. TP_PM_GROUTINGDAILYDETAIL
  7326. WHERE
  7327. GROUTINGFLAG = '1'
  7328. and VALUEFLAG = '1'
  7329. and GROUTINGBATCHNO = :groutingBatchNo
  7330. and GROUTINGLINECODE = :groutingLineCode
  7331. AND GROUTINGDATE = TO_DATE(:groutingDay , 'yyyy-MM-dd')
  7332. -- AND GROUTINGDATE = DATE :groutingDay
  7333. ";
  7334. OracleParameter[] paras = new OracleParameter[]
  7335. {
  7336. new OracleParameter(":groutingBatchNo", Convert.ToInt32(groutingBatchNo)),
  7337. new OracleParameter(":groutingLineCode", groutingLineCode),
  7338. new OracleParameter(":groutingDay", groutingDay)
  7339. };
  7340. DataTable dtResult = oracleConn.GetSqlResultToDt(sqlStr, paras);
  7341. if (dtResult != null && dtResult.Rows.Count > 0)
  7342. {
  7343. sre.Status = Constant.ServiceResultStatus.Success;
  7344. sre.Result = Convert.ToInt32(dtResult.Rows[0][0].ToString());
  7345. }
  7346. else
  7347. {
  7348. sre.Status = Constant.ServiceResultStatus.Other;
  7349. sre.OtherStatus = -11;
  7350. sre.Message = "没有查询结果";
  7351. }
  7352. return sre;
  7353. }
  7354. catch (Exception ex)
  7355. {
  7356. throw ex;
  7357. }
  7358. finally
  7359. {
  7360. if (oracleConn.ConnState == ConnectionState.Open)
  7361. {
  7362. oracleConn.Close();
  7363. }
  7364. }
  7365. }
  7366. #endregion
  7367. }
  7368. }