PDAModuleLogic.cs 405 KB

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