PMModuleLogic.cs 308 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:PMModuleLogic.cs
  5. * 2.功能描述:生产管理
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 陈冰 2014/09/3 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.IO;
  15. using System.Text;
  16. using Dongke.IBOSS.PRD.Basics.BaseResources;
  17. using Dongke.IBOSS.PRD.Basics.DataAccess;
  18. using Dongke.IBOSS.PRD.Basics.Library;
  19. using Dongke.IBOSS.PRD.Service.DataModels;
  20. using Dongke.IBOSS.PRD.WCF.DataModels;
  21. using Dongke.IBOSS.PRD.WCF.DataModels.PMModule;
  22. using Oracle.ManagedDataAccess.Client;
  23. namespace Dongke.IBOSS.PRD.Service.PMModuleLogic
  24. {
  25. /// <summary>
  26. /// 生产管理
  27. /// </summary>
  28. public partial class PMModuleLogic
  29. {
  30. /// <summary>
  31. /// 构建 计数/检验时返回的信息
  32. /// </summary>
  33. /// <returns></returns>
  34. public static DataTable CreateBarCodeResultTable()
  35. {
  36. // 注意:更新表字段时,一定把后续引用的字段全部更新一遍
  37. DataTable barCodeResultTable = new DataTable("BarCodeTable");
  38. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_errMsg.ToString());
  39. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_goodsID.ToString());
  40. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_goodsCode.ToString());
  41. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_goodsName.ToString());
  42. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_groutingUserCode.ToString());
  43. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_groutingUserName.ToString());
  44. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_groutingUserID.ToString());
  45. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_groutingNum.ToString());
  46. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_mouldCode.ToString());
  47. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_ispublicbody.ToString());
  48. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_ispublicbodyTrach.ToString());
  49. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_groutingdate.ToString());
  50. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_specialRepairFlag.ToString());
  51. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_isReFire.ToString());
  52. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_isLengBu.ToString());
  53. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_missFlag.ToString());
  54. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_logoID.ToString());
  55. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_logoCode.ToString());
  56. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_logoName.ToString());
  57. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_MaterialCode.ToString());
  58. //xuwei add 2020-03-04 添加釉料属性
  59. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_glazeName.ToString());
  60. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_deliverLimitCycle.ToString());
  61. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_barcode.ToString());
  62. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_WaterLabelCode.ToString());
  63. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_CodeCheckFlag.ToString());
  64. //漏气标识 内漏标识 xuwei add 2020-06-11
  65. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_LeakFlag1.ToString());
  66. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_LeakFlag2.ToString());
  67. //增加重烧名称等相关列 fubin add 2020-06-30
  68. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_LeakFlag3.ToString());
  69. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_specialRepairFlagName.ToString());
  70. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_isReFireName.ToString());
  71. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_LeakFlag1Name.ToString());
  72. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_LeakFlag2Name.ToString());
  73. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_LeakFlag3Name.ToString());
  74. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_lengBuName.ToString());
  75. //增加冷补返工工序
  76. //barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_ReworkProcedureId.ToString());
  77. barCodeResultTable.Columns.Add("out_ReworkProcedureId", typeof(string));
  78. //养水标识 试水标识 qq add 2022-12-28
  79. barCodeResultTable.Columns.Add("out_LeakFlag4", typeof(string));
  80. barCodeResultTable.Columns.Add("out_LeakFlag5", typeof(string));
  81. barCodeResultTable.Columns.Add("out_LeakFlag4Name", typeof(string));
  82. barCodeResultTable.Columns.Add("out_LeakFlag5Name", typeof(string));
  83. // 包装装板用
  84. barCodeResultTable.Columns.Add("GOODSMODELforCheck");
  85. // 最大装板数量
  86. barCodeResultTable.Columns.Add("PlateLimitNum", typeof(int));
  87. barCodeResultTable.Columns.Add("DefectFlagID", typeof(int));
  88. barCodeResultTable.Columns.Add("pdid", typeof(int));
  89. barCodeResultTable.Columns.Add("InspectionLevel", typeof(string));
  90. barCodeResultTable.Columns.Add("PackingDefect", typeof(string));
  91. barCodeResultTable.Columns.Add("InspectionGoodsLevel", typeof(string));
  92. barCodeResultTable.Columns.Add("offlineFlag", typeof(string));
  93. barCodeResultTable.Columns.Add("recyclingFlag", typeof(string));
  94. barCodeResultTable.Columns.Add("waterLabelCode", typeof(string));
  95. //修磨
  96. barCodeResultTable.Columns.Add("out_LeakFlag7", typeof(string));
  97. barCodeResultTable.Columns.Add("out_LeakFlag7Name", typeof(string));
  98. //重烧接收产品
  99. barCodeResultTable.Columns.Add("refireflag", typeof(int));
  100. //高压标识
  101. barCodeResultTable.Columns.Add("goodsLineType", typeof(int));
  102. return barCodeResultTable;
  103. }
  104. /// <summary>
  105. /// 构建 校验窑车号时返回的信息
  106. /// </summary>
  107. /// <returns></returns>
  108. public static DataTable CreateKilnCarResultTable()
  109. {
  110. // 注意:更新表字段时,一定把后续引用的字段全部更新一遍
  111. DataTable kilnCarResultTable = new DataTable("KilnCarTable");
  112. kilnCarResultTable.Columns.Add(Constant.KilnCarResultTableColumns.out_errMsg.ToString());
  113. kilnCarResultTable.Columns.Add(Constant.KilnCarResultTableColumns.out_kilnCarID.ToString());
  114. kilnCarResultTable.Columns.Add(Constant.KilnCarResultTableColumns.out_kilnCarName.ToString());
  115. kilnCarResultTable.Columns.Add(Constant.KilnCarResultTableColumns.out_kilnID.ToString());
  116. kilnCarResultTable.Columns.Add(Constant.KilnCarResultTableColumns.out_kilnCode.ToString());
  117. kilnCarResultTable.Columns.Add(Constant.KilnCarResultTableColumns.out_kilnName.ToString());
  118. return kilnCarResultTable;
  119. }
  120. /// <summary>
  121. /// 校验窑车是否可用
  122. /// </summary>
  123. /// <param name="pProcedureId">工序ID</param>
  124. /// <param name="kilnCarCode">窑车号</param>
  125. /// <param name="pModelType">类别</param>
  126. /// <param name="sUserInfo">用户基本信息</param>
  127. /// <returns>CheckKilnCarResultEntity实体类</returns>
  128. /// <remarks>
  129. /// 陈冰 2014.09.26 新建
  130. /// </remarks>
  131. public static CheckKilnCarResultEntity CheckKilnCar(int pProcedureId, string kilnCarCode, int pModelType, SUserInfo sUserInfo)
  132. {
  133. CheckKilnCarResultEntity kilnCarResultEntity = new CheckKilnCarResultEntity();
  134. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  135. try
  136. {
  137. oracleConn.Open();
  138. OracleParameter[] paras = new OracleParameter[]{
  139. new OracleParameter("in_accountID",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  140. new OracleParameter("in_kilnCarCode",OracleDbType.NVarchar2, kilnCarCode,ParameterDirection.Input),
  141. new OracleParameter("in_modelType",OracleDbType.Int32, pModelType,ParameterDirection.Input),
  142. new OracleParameter("out_errMsg",OracleDbType.NVarchar2,2000,null,ParameterDirection.Output),
  143. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  144. new OracleParameter("in_procedureid",OracleDbType.Int32, pProcedureId,ParameterDirection.Input),
  145. // 验证能否卸窑
  146. new OracleParameter("in_UserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  147. };
  148. DataSet returnDataSet = oracleConn.ExecStoredProcedure("PRO_PM_CheckKilnCar", paras);
  149. kilnCarResultEntity.ErrMsg = paras[3].Value.ToString() == "null" ? string.Empty : paras[3].Value.ToString().Replace("\\n\\r", "\n\r");
  150. if (returnDataSet == null || returnDataSet.Tables.Count <= 0)
  151. {
  152. kilnCarResultEntity.KilnCarInfos = new List<KilnCarInfo>();
  153. }
  154. else
  155. {
  156. kilnCarResultEntity.KilnCarInfos = DataConvert.TableConvertToObject<KilnCarInfo>(returnDataSet.Tables[0]);
  157. }
  158. return kilnCarResultEntity;
  159. }
  160. catch (Exception ex)
  161. {
  162. throw ex;
  163. }
  164. finally
  165. {
  166. if (oracleConn.ConnState == ConnectionState.Open)
  167. {
  168. oracleConn.Close();
  169. }
  170. }
  171. }
  172. /// <summary>
  173. /// 由工序获取产缺陷列表
  174. /// </summary>
  175. /// <param name="procedureID">工序ID</param>
  176. /// <returns>DataSet</returns>
  177. public static DataSet GetDefectByProcedure(int procedureID)
  178. {
  179. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  180. try
  181. {
  182. con.Open();
  183. string sqlString = @"select TP_MST_Defect.DefectID as DefectFlagID,TP_MST_Defect.DefectCode,
  184. TP_MST_Defect.DefectName as ViewDefectFlagName,
  185. concat(TP_MST_Defect.DefectCode||'->',TP_MST_Defect.DefectName) as DefectFlagName
  186. from TP_PC_ProcedureDefect
  187. left join TP_MST_Defect on TP_PC_ProcedureDefect.DefectID=TP_MST_Defect.DefectID
  188. where TP_MST_Defect.valueflag = '1' and TP_PC_ProcedureDefect.procedureID=" + procedureID;
  189. DataSet ds = con.GetSqlResultToDs(sqlString);
  190. return ds;
  191. }
  192. catch (Exception ex)
  193. {
  194. throw ex;
  195. }
  196. finally
  197. {
  198. if (con.ConnState == ConnectionState.Open)
  199. {
  200. con.Close();
  201. }
  202. }
  203. }
  204. /// <summary>
  205. /// 由当前检验工序ID和缺陷Code获取缺陷数据
  206. /// </summary>
  207. /// <param name="procedureID">当前检验工序ID</param>
  208. /// <param name="defectCode">缺陷Code</param>
  209. /// <returns>object</returns>
  210. /// <remarks>
  211. /// 陈冰 2014.10.04 新建
  212. /// </remarks>
  213. public static object GetDefectByProcedureIDAndDefectCode(int procedureID, string defectCode)
  214. {
  215. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  216. try
  217. {
  218. con.Open();
  219. string sqlString = @"select TP_MST_Defect.DefectID,
  220. TP_MST_Defect.DefectName,
  221. TP_PC_ProcedureDefect.procedureID
  222. from TP_MST_Defect
  223. left join TP_PC_ProcedureDefect on TP_MST_Defect.DefectID =
  224. TP_PC_ProcedureDefect.DefectID
  225. and TP_PC_ProcedureDefect.procedureID = :procedureID
  226. where TP_MST_Defect.DefectCode = :defectCode and TP_MST_Defect.Valueflag='1'";
  227. OracleParameter[] paras = new OracleParameter[] {
  228. new OracleParameter(":procedureID",procedureID),
  229. new OracleParameter(":defectCode",defectCode),
  230. };
  231. DataSet resultds = con.GetSqlResultToDs(sqlString, paras);
  232. if (resultds != null && resultds.Tables.Count > Constant.INT_IS_ZERO)
  233. {
  234. string errMsg = string.Empty;
  235. int defectID = 0;
  236. string defectName = string.Empty;
  237. if (resultds.Tables[0].Rows.Count == Constant.INT_IS_ZERO)
  238. {
  239. errMsg = "缺陷在系统中不存在";
  240. }
  241. else
  242. {
  243. if (string.IsNullOrEmpty(resultds.Tables[0].Rows[0]["ProcedureID"].ToString()))
  244. {
  245. errMsg = "当前工序没有配置该缺陷";
  246. }
  247. else
  248. {
  249. defectID = int.Parse(resultds.Tables[0].Rows[0]["DefectID"].ToString());
  250. defectName = resultds.Tables[0].Rows[0]["DefectName"].ToString();
  251. }
  252. }
  253. return new { ErrMsg = errMsg, DefectID = defectID, DefectName = defectName };
  254. }
  255. else
  256. {
  257. return null;
  258. }
  259. }
  260. catch (Exception ex)
  261. {
  262. throw ex;
  263. }
  264. finally
  265. {
  266. if (con.ConnState == ConnectionState.Open)
  267. {
  268. con.Close();
  269. }
  270. }
  271. }
  272. /// <summary>
  273. /// 根据产品ID查出缺陷位置
  274. /// </summary>
  275. /// <param name="goodsID">产品ID</param>
  276. /// <returns>DataSet</returns>
  277. public static DataSet GetDefectLocaionByGoodsID(int goodsID)
  278. {
  279. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  280. try
  281. {
  282. con.Open();
  283. string sqlString = @"select TP_MST_DEFECTPOSITION.DEFECTPOSITIONID,TP_MST_DEFECTPOSITION.DEFECTPOSITIONCODE,TP_MST_DEFECTPOSITION.DEFECTPOSITIONNAME
  284. ,concat(TP_MST_DEFECTPOSITION.DEFECTPOSITIONCODE||'->',TP_MST_DEFECTPOSITION.DEFECTPOSITIONNAME) as DEFECTPOSITIONCODEANDNAME from tp_mst_goodsdefectposition left join TP_MST_DEFECTPOSITION
  285. on tp_mst_goodsdefectposition.defectpositionid=TP_MST_DEFECTPOSITION.defectpositionid
  286. where tp_mst_goodsdefectposition.goodsid=" + goodsID;
  287. DataSet ds = con.GetSqlResultToDs(sqlString);
  288. return ds;
  289. }
  290. catch (Exception ex)
  291. {
  292. throw ex;
  293. }
  294. finally
  295. {
  296. if (con.ConnState == ConnectionState.Open)
  297. {
  298. con.Close();
  299. }
  300. }
  301. }
  302. /// <summary>
  303. /// 根据缺陷位置
  304. /// </summary>
  305. /// <param name="sUserInfo">用户基本信息</param>
  306. /// <returns>DataSet</returns>
  307. public static DataSet GetDefectLocaion(SUserInfo sUserInfo)
  308. {
  309. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  310. try
  311. {
  312. con.Open();
  313. string sqlString = @"select DEFECTPOSITIONID,
  314. DEFECTPOSITIONCODE,
  315. DEFECTPOSITIONNAME,
  316. concat(DEFECTPOSITIONCODE||'->',DEFECTPOSITIONNAME) as DEFECTPOSITIONCODEANDNAME
  317. from TP_MST_DEFECTPOSITION
  318. where AccountID=:accountID and ValueFlag=1";
  319. OracleParameter[] paras = new OracleParameter[]{
  320. new OracleParameter(":accountID",sUserInfo.AccountID),
  321. };
  322. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  323. return ds;
  324. }
  325. catch (Exception ex)
  326. {
  327. throw ex;
  328. }
  329. finally
  330. {
  331. if (con.ConnState == ConnectionState.Open)
  332. {
  333. con.Close();
  334. }
  335. }
  336. }
  337. /// <summary>
  338. /// 根据产品ID查出缺陷位置
  339. /// </summary>
  340. /// <param name="goodsID">产品ID</param>
  341. /// <param name="positionCode">位置编码</param>
  342. /// <returns>object</returns>
  343. public static object GetDefectPositionByGoodsIDAndPositionCode(int goodsID, string positionCode)
  344. {
  345. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  346. try
  347. {
  348. con.Open();
  349. string sqlString = @"select tp_mst_defectposition.defectpositionid,
  350. tp_mst_defectposition.defectpositionname,
  351. tp_mst_goodsdefectposition.goodsid
  352. from tp_mst_defectposition
  353. left join tp_mst_goodsdefectposition on tp_mst_goodsdefectposition.defectpositionid =
  354. tp_mst_defectposition.defectpositionid
  355. and tp_mst_goodsdefectposition.goodsid =:goodsid
  356. where tp_mst_defectposition.defectpositioncode = :defectpositioncode and tp_mst_defectposition.Valueflag='1'";
  357. OracleParameter[] paras = new OracleParameter[] {
  358. new OracleParameter(":goodsid",goodsID),
  359. new OracleParameter(":defectpositioncode",positionCode),
  360. };
  361. DataSet resultds = con.GetSqlResultToDs(sqlString, paras);
  362. if (resultds != null && resultds.Tables.Count > Constant.INT_IS_ZERO)
  363. {
  364. string errMsg = string.Empty;
  365. int defectPositionID = 0;
  366. string defectpositionname = string.Empty;
  367. if (resultds.Tables[0].Rows.Count == Constant.INT_IS_ZERO)
  368. {
  369. errMsg = "缺陷位置在系统中不存在";
  370. }
  371. else
  372. {
  373. if (string.IsNullOrEmpty(resultds.Tables[0].Rows[0]["goodsid"].ToString()))
  374. {
  375. errMsg = "当前产品没有配置该缺陷位置";
  376. }
  377. else
  378. {
  379. defectPositionID = int.Parse(resultds.Tables[0].Rows[0]["defectPositionID"].ToString());
  380. defectpositionname = resultds.Tables[0].Rows[0]["defectpositionname"].ToString();
  381. }
  382. }
  383. return new { ErrMsg = errMsg, DefectPositionID = defectPositionID, DefectPositionName = defectpositionname };
  384. }
  385. else
  386. {
  387. return null;
  388. }
  389. }
  390. catch (Exception ex)
  391. {
  392. throw ex;
  393. }
  394. finally
  395. {
  396. if (con.ConnState == ConnectionState.Open)
  397. {
  398. con.Close();
  399. }
  400. }
  401. }
  402. /// <summary>
  403. /// 通过条码查出责任工序
  404. /// </summary>
  405. /// <param name="barcode">产品条码</param>
  406. /// <param name="defectid">缺陷ID</param>
  407. /// <returns>DataSet</returns>
  408. public static DataSet GetDutyProcedureByBarCode(string barcode, int defectid, int accountid, int procedureid = 0)
  409. {
  410. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  411. try
  412. {
  413. con.Open();
  414. DataSet dsReturn = new DataSet();
  415. // string sqlString = @"select TP_PM_ProductionDataIn.ProductionDataID, DutyProcedureID,DutyProcedureCode,DutyProcedureName,NodeType,ModelType from
  416. // (
  417. // select TP_PM_ProductionDataIn.ProductionDataID,TP_PM_ProductionDataIn.ProcedureID as DutyProcedureID,
  418. // TP_PM_ProductionDataIn.ProcedureCode as DutyProcedureCode,
  419. // TP_PM_ProductionDataIn.ProcedureName as DutyProcedureName,
  420. // TP_PM_ProductionDataIn.NodeType,
  421. // TP_PM_ProductionDataIn.ModelType
  422. // from TP_PM_ProductionDataIn
  423. // where valueflag = '1' and TP_PM_ProductionDataIn.Barcode=:Barcode
  424. // order by TP_PM_ProductionDataIn.ProductionDataID
  425. // ) TP_PM_ProductionDataIn
  426. // where exists
  427. // (
  428. // select
  429. // TP_PC_DefectProcedureJobs.DefectID,
  430. // TP_PC_DefectProcedureJobs.ProductionLineID,
  431. // TP_PC_DefectProcedureJobs.ProcedureID,
  432. // TP_PC_DefectProcedureJobs.NodeNo,
  433. // TP_PC_DefectProcedureJobs.JobsID
  434. // from TP_PC_DefectProcedureJobs
  435. // where TP_PC_DefectProcedureJobs.DefectID=:DefectID
  436. // and TP_PM_ProductionDataIn.DutyProcedureID=TP_PC_DefectProcedureJobs.ProcedureID
  437. // )";
  438. //string sqlString =
  439. //"SELECT pdin.ProductionDataID\n" +
  440. //" ,pdin.ProcedureID AS DutyProcedureID\n" +
  441. //" ,pdin.ProcedureCode AS DutyProcedureCode\n" +
  442. //" ,pdin.ProcedureName AS DutyProcedureName\n" +
  443. //" ,pdin.NodeType\n" +
  444. //" ,pdin.ModelType\n" +
  445. //" ,pdin.classessettingid\n" +
  446. //" ,pdin.userid\n" +
  447. //" ,pdin.usercode\n" +
  448. //" ,pdin.username\n" +
  449. //" FROM TP_PM_ProductionDataIn pdin\n" +
  450. //" WHERE pdin.valueflag = '1'\n" +
  451. //" AND pdin.accountid = :accountid\n" +
  452. //" AND pdin.Barcode = :Barcode\n" +
  453. //" AND EXISTS (SELECT 1\n" +
  454. //" FROM TP_PC_DefectProcedureJobs dpJobs\n" +
  455. //" WHERE dpJobs.DefectID = :DefectID\n" +
  456. //" AND pdin.ProcedureID = dpJobs.ProcedureID)\n" +
  457. //" ORDER BY pdin.ProductionDataID";
  458. // 去掉重复工序(取最后一个)
  459. string sqlString = "select pdin.ProductionDataID\n" +
  460. " ,pdin.ProcedureID as DutyProcedureID\n" +
  461. " ,pdin.ProcedureCode as DutyProcedureCode\n" +
  462. " ,pdin.ProcedureName as DutyProcedureName\n" +
  463. " ,pdin.NodeType\n" +
  464. " ,pdin.ModelType\n" +
  465. " ,pdin.classessettingid\n" +
  466. " ,pdin.userid\n" +
  467. " ,pdin.usercode\n" +
  468. " ,pdin.username\n" +
  469. " from TP_PM_ProductionDataIn pdin\n" +
  470. " where pdin.productiondataid in\n" +
  471. " (select max(pdi.productiondataid) pdid\n" +
  472. " from TP_PM_ProductionDataIn pdi\n" +
  473. " where pdi.valueflag = '1'\n" +
  474. " and pdi.accountid = :accountid\n" +
  475. " and pdi.Barcode = :Barcode\n";
  476. // 如果是3#半检一检或者3#半检二检,则只能选择交坯工序
  477. if (procedureid == 89 || procedureid == 95)
  478. {
  479. sqlString += " and pdi.modeltype = 5 ";
  480. }
  481. sqlString +=
  482. " and exists\n" +
  483. " (select 1\n" +
  484. " from TP_PC_DefectProcedureJobs dpJobs\n" +
  485. " where dpJobs.DefectID = :DefectID\n" +
  486. " and pdi.ProcedureID = dpJobs.ProcedureID)\n" +
  487. " group by pdi.ProcedureID)\n" +
  488. " order by pdin.ProductionDataID";
  489. OracleParameter[] paras = new OracleParameter[]{
  490. new OracleParameter(":accountid",OracleDbType.Int32, accountid,ParameterDirection.Input),
  491. new OracleParameter(":Barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  492. new OracleParameter(":DefectID",OracleDbType.Int32, defectid,ParameterDirection.Input),
  493. };
  494. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  495. ds.Tables[0].TableName = "TProcedure";
  496. //sqlString = "Select DictionaryID,DictionaryValue"
  497. // + " from TP_MST_DataDictionary where valueflag = 1 and DictionaryType = 'ASE002' and AccountID = :AccountID";
  498. //paras = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  499. // {
  500. // new Oracle.ManagedDataAccess.Client.OracleParameter(":AccountID",accountid),
  501. // };
  502. //DataSet ds2 = con.GetSqlResultToDs(sqlString, paras);
  503. //ds2.Tables[0].TableName = "TDataDictionary";
  504. string classessettingids = "";
  505. for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  506. {
  507. classessettingids = classessettingids + ds.Tables[0].Rows[i]["classessettingid"] + ",";
  508. }
  509. if (classessettingids.Length > 0)
  510. {
  511. classessettingids = classessettingids.Substring(0, classessettingids.Length - 1);
  512. sqlString = "select j.procedureid,j.jobsid from TP_PC_DefectProcedureJobs j where j.Defectid=:Defectid " +
  513. " and exists (SELECT * FROM tp_pc_classesdetail c where c.classessettingid IN(" + classessettingids + ") and c.ujobsid = j.jobsid ) ";
  514. //sqlString = "select j.procedureid,j.jobsid from TP_PC_DefectProcedureJobs j where j.Defectid=:Defectid ";
  515. paras = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  516. {
  517. new Oracle.ManagedDataAccess.Client.OracleParameter(":Defectid",defectid),
  518. };
  519. DataSet ds3 = con.GetSqlResultToDs(sqlString, paras);
  520. ds3.Tables[0].TableName = "TP_PC_DefectProcedureJobs";
  521. if (!dsReturn.Tables.Contains("TP_PC_DefectProcedureJobs"))
  522. {
  523. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  524. }
  525. }
  526. else
  527. {
  528. sqlString = "select j.procedureid,j.jobsid from TP_PC_DefectProcedureJobs j where j.Defectid=:Defectid ";
  529. paras = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  530. {
  531. new Oracle.ManagedDataAccess.Client.OracleParameter(":Defectid",defectid),
  532. };
  533. DataSet ds3 = con.GetSqlResultToDs(sqlString, paras);
  534. ds3.Tables[0].TableName = "TP_PC_DefectProcedureJobs";
  535. if (!dsReturn.Tables.Contains("TP_PC_DefectProcedureJobs"))
  536. {
  537. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  538. }
  539. }
  540. if (!dsReturn.Tables.Contains("TProcedure"))
  541. {
  542. dsReturn.Tables.Add(ds.Tables[0].Copy());
  543. }
  544. //if (!dsReturn.Tables.Contains("TDataDictionary"))
  545. //{
  546. // dsReturn.Tables.Add(ds2.Tables[0].Copy());
  547. //}
  548. return dsReturn;
  549. }
  550. catch (Exception ex)
  551. {
  552. throw ex;
  553. }
  554. finally
  555. {
  556. if (con.ConnState == ConnectionState.Open)
  557. {
  558. con.Close();
  559. }
  560. }
  561. }
  562. /// <summary>
  563. /// 通过条码与工序查出责任工号
  564. /// </summary>
  565. /// <param name="barcode">产品条码</param>
  566. /// <param name="dutyProcedureID">责任工序</param>
  567. /// <returns>DataSet</returns>
  568. public static DataSet GetDutyProcedureCodeByBarCode(string barcode, int dutyProcedureID)
  569. {
  570. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  571. try
  572. {
  573. con.Open();
  574. string sqlString = @"select UserID,UserCode,UserName,Remarks,ProductionDataID from TP_PM_ProductionDataIn
  575. where Barcode=:Barcode and ProcedureID=:ProcedureID and valueflag=1";
  576. OracleParameter[] paras = new OracleParameter[]{
  577. new OracleParameter(":Barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  578. new OracleParameter(":ProcedureID",OracleDbType.Int32, dutyProcedureID,ParameterDirection.Input),
  579. };
  580. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  581. return ds;
  582. }
  583. catch (Exception ex)
  584. {
  585. throw ex;
  586. }
  587. finally
  588. {
  589. if (con.ConnState == ConnectionState.Open)
  590. {
  591. con.Close();
  592. }
  593. }
  594. }
  595. /// <summary>
  596. /// 责任工序查出工号根据生产数据ID
  597. /// </summary>
  598. /// <param name="ProductionDataID"></param>
  599. /// <returns></returns>
  600. public static DataSet GetDutyProcedureCodeByProductionDataID(int ProductionDataID)
  601. {
  602. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  603. try
  604. {
  605. con.Open();
  606. string sqlString = @"select UserID,UserCode,UserName,Remarks,ProductionDataID from TP_PM_ProductionDataIn
  607. where ProductionDataID=:ProductionDataID";
  608. OracleParameter[] paras = new OracleParameter[]{
  609. new OracleParameter(":ProductionDataID",OracleDbType.Int32, ProductionDataID,ParameterDirection.Input),
  610. };
  611. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  612. return ds;
  613. }
  614. catch (Exception ex)
  615. {
  616. throw ex;
  617. }
  618. finally
  619. {
  620. if (con.ConnState == ConnectionState.Open)
  621. {
  622. con.Close();
  623. }
  624. }
  625. }
  626. /// <summary>
  627. /// 根据所选工序默认查出工种信息
  628. /// </summary>
  629. /// <param name="userID">工号ID</param>
  630. /// <param name="productionDataID">生产数据ID</param>
  631. /// <returns>DataSet</returns>
  632. public static DataSet GetDutyJobsCodeByUser(int userID, int productionDataID)
  633. {
  634. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  635. try
  636. {
  637. con.Open();
  638. // string sqlString = @"select distinct
  639. // TP_PM_Producer.UserID,TP_MST_Jobs.JobsID,TP_MST_Jobs.JobsName,TP_MST_Jobs.JobsCode
  640. // from TP_PM_Producer
  641. // left join TP_MST_Jobs
  642. // on TP_PM_Producer.UJobsID=TP_MST_Jobs.JobsID
  643. // where TP_PM_Producer.UserID=:UserID
  644. // and TP_PM_Producer.UJobsID in
  645. // (
  646. // select
  647. // JobsID
  648. // from TP_PC_DefectProcedureJobs where ProcedureID=
  649. // (
  650. // Select ProcedureID from TP_PM_ProductionDataIn where ProductionDataID=:ProductionDataID
  651. // )
  652. // )";
  653. string sqlString = @"select distinct tp_pc_classesdetail.UserID,
  654. TP_MST_Jobs.JobsID,
  655. TP_MST_Jobs.JobsName,
  656. TP_MST_Jobs.JobsCode
  657. from tp_pc_classesdetail
  658. left join TP_MST_Jobs on tp_pc_classesdetail.UJobsID = TP_MST_Jobs.JobsID
  659. where tp_pc_classesdetail.UserID = :UserID
  660. and tp_pc_classesdetail.UJobsID in
  661. (select JobsID
  662. from TP_PC_DefectProcedureJobs
  663. where ProcedureID =
  664. (Select ProcedureID
  665. from TP_PM_ProductionDataIn
  666. where ProductionDataID = :ProductionDataID)
  667. )";
  668. OracleParameter[] paras = new OracleParameter[]{
  669. new OracleParameter(":UserID",OracleDbType.Int32, userID,ParameterDirection.Input),
  670. new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
  671. };
  672. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  673. return ds;
  674. }
  675. catch (Exception ex)
  676. {
  677. throw ex;
  678. }
  679. finally
  680. {
  681. if (con.ConnState == ConnectionState.Open)
  682. {
  683. con.Close();
  684. }
  685. }
  686. }
  687. /// <summary>
  688. /// 根据所选生产数据ID,用户ID及工种选出责任员工
  689. /// </summary>
  690. /// <param name="productionDataID">生产数据ID</param>
  691. /// <param name="userID">用户ID</param>
  692. /// <param name="jobs">工种ID</param>
  693. /// <returns>DataSet</returns>
  694. public static DataSet GetDutyStaffByUserIDAndJobs(int productionDataID, int userID, int jobs)
  695. {
  696. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  697. try
  698. {
  699. con.Open();
  700. // string sqlString = @"select TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_PM_Producer.SJobsID
  701. // from TP_PM_Producer
  702. // left join TP_HR_Staff on TP_PM_Producer.StaffID=TP_HR_Staff.StaffID
  703. // where TP_PM_Producer.ProductionDataID=:ProductionDataID
  704. // and TP_PM_Producer.UserID=:UserID and TP_PM_Producer.UJobsID=:JobsID
  705. // ";
  706. string sqlString = @"select TP_HR_Staff.StaffID,
  707. TP_HR_Staff.StaffCode,
  708. TP_HR_Staff.StaffName,
  709. TP_HR_Staff.StaffStatus,
  710. tp_pc_classesdetail.SJobsID
  711. from tp_pc_classesdetail
  712. left join TP_HR_Staff on tp_pc_classesdetail.StaffID =
  713. TP_HR_Staff.StaffID
  714. where tp_pc_classesdetail.ClassesSettingID=(select ClassesSettingID from tp_pm_productiondatain where productiondataid=:ProductionDataID)
  715. and tp_pc_classesdetail.UserID = :UserID
  716. and tp_pc_classesdetail.UJobsID = :JobsID
  717. ";
  718. OracleParameter[] paras = new OracleParameter[]{
  719. new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
  720. new OracleParameter(":UserID",OracleDbType.Int32, userID,ParameterDirection.Input),
  721. new OracleParameter(":JobsID",OracleDbType.Int32, jobs,ParameterDirection.Input),
  722. };
  723. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  724. return ds;
  725. }
  726. catch (Exception ex)
  727. {
  728. throw ex;
  729. }
  730. finally
  731. {
  732. if (con.ConnState == ConnectionState.Open)
  733. {
  734. con.Close();
  735. }
  736. }
  737. }
  738. /// <summary>
  739. /// 根据传入的实体获取进度考核奖惩信息
  740. /// </summary>
  741. /// <param name="searchAdminRAPEntity">查询实体</param>
  742. /// <param name="sUserInfo">用户基本信息</param>
  743. /// <returns>DataSet进度考核奖惩信息表</returns>
  744. public static DataSet SearcStaffAdminRAPInfo(SearchProgressRAPEntity searchProgressRAPEntity, SUserInfo sUserInfo)
  745. {
  746. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  747. try
  748. {
  749. string strIdList = string.Empty;
  750. if (searchProgressRAPEntity.IDList != null && searchProgressRAPEntity.IDList.Length > 0)
  751. {
  752. strIdList = DataConvert.ConvertListToSqlInWhere(searchProgressRAPEntity.IDList);
  753. }
  754. con.Open();
  755. OracleParameter[] paras = new OracleParameter[]{
  756. new OracleParameter("in_accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  757. new OracleParameter("in_staffID",OracleDbType.Int32,searchProgressRAPEntity.StaffID,ParameterDirection.Input),
  758. new OracleParameter("in_rapType",OracleDbType.Double,searchProgressRAPEntity.RAPType,ParameterDirection.Input),
  759. new OracleParameter("in_startRAPDate",OracleDbType.Date,searchProgressRAPEntity.StartRAPDate,ParameterDirection.Input),
  760. new OracleParameter("in_endRAPDate",OracleDbType.Date,searchProgressRAPEntity.EndRAPDate,ParameterDirection.Input),
  761. new OracleParameter("in_startRAPAmount",OracleDbType.Double,searchProgressRAPEntity.StartRAPAmount,ParameterDirection.Input),
  762. new OracleParameter("in_endRAPAmount",OracleDbType.Double,searchProgressRAPEntity.EndRAPAmount,ParameterDirection.Input),
  763. new OracleParameter("in_auditStatus",OracleDbType.Int32,searchProgressRAPEntity.AuditStatus,ParameterDirection.Input),
  764. new OracleParameter("in_settlementFlag",OracleDbType.Char,searchProgressRAPEntity.SettlementFlag,ParameterDirection.Input),
  765. new OracleParameter("in_valueFlag",OracleDbType.Char,searchProgressRAPEntity.ValueFlag,ParameterDirection.Input),
  766. new OracleParameter("in_sIDList",OracleDbType.Varchar2,strIdList,ParameterDirection.Input),
  767. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  768. };
  769. return con.ExecStoredProcedure("PRO_PM_StaffProgressRAP", paras);
  770. }
  771. catch (Exception ex)
  772. {
  773. throw ex;
  774. }
  775. finally
  776. {
  777. if (con.ConnState == ConnectionState.Open)
  778. {
  779. con.Close();
  780. }
  781. }
  782. }
  783. /// <summary>
  784. /// 根据条码获取窑炉窑车信息
  785. /// </summary>
  786. /// <param name="barcode">产品条码</param>
  787. /// <returns>DataSet</returns>
  788. public static DataSet GetKilnCarByBarCode(string barcode)
  789. {
  790. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  791. try
  792. {
  793. con.Open();
  794. // string sqlString = @"
  795. // select
  796. // TP_MST_KilnCar.KilnCarCode,
  797. // TP_MST_Kiln.KilnCode,
  798. // TP_MST_DataDictionary.Dictionaryvalue
  799. // from TP_PM_KilnCarGoods
  800. // left join TP_MST_KilnCar
  801. // on TP_PM_KilnCarGoods.KilnCarID=TP_MST_KilnCar.Kilncarid
  802. // left join TP_MST_Kiln
  803. // on TP_MST_KilnCar.Kilnid=TP_MST_Kiln.Kilnid
  804. // left join TP_MST_DataDictionary
  805. // on TP_PM_KilnCarGoods.KilnCarPosition=TP_MST_DataDictionary.DictionaryID
  806. // where TP_PM_KilnCarGoods.Barcode=:Barcode
  807. // ";
  808. string sqlString = @"
  809. select
  810. TP_PM_InProduction.KilnCarCode,
  811. TP_PM_InProduction.KilnCode,
  812. TP_MST_DataDictionary.Dictionaryvalue
  813. from TP_PM_InProduction
  814. inner join TP_MST_DataDictionary
  815. on TP_PM_InProduction.KilnCarPosition=TP_MST_DataDictionary.DictionaryID
  816. where TP_PM_InProduction.Barcode=:Barcode
  817. ";
  818. OracleParameter[] paras = new OracleParameter[]{
  819. new OracleParameter(":Barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  820. };
  821. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  822. return ds;
  823. }
  824. catch (Exception ex)
  825. {
  826. throw ex;
  827. }
  828. finally
  829. {
  830. if (con.ConnState == ConnectionState.Open)
  831. {
  832. con.Close();
  833. }
  834. }
  835. }
  836. #region 生产数据
  837. /// <summary>
  838. /// 查询在产产品数据
  839. /// </summary>
  840. /// <param name="searchInProductionEntity">在产产品数据实体</param>
  841. /// <param name="sUserInfo">用户基本信息</param>
  842. /// <returns>DataSet在产产品数据信息表</returns>
  843. public static DataSet GetInProductionData(SearchInProductionEntity searchInProductionEntity, SUserInfo sUserInfo)
  844. {
  845. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  846. try
  847. {
  848. con.Open();
  849. OracleParameter[] paras = new OracleParameter[]{
  850. new OracleParameter("in_barCode",OracleDbType.Varchar2,searchInProductionEntity.BarCode,ParameterDirection.Input),
  851. new OracleParameter("in_productionLineId",OracleDbType.Varchar2,searchInProductionEntity.ProductionLineIDS,ParameterDirection.Input),
  852. new OracleParameter("in_completeProcedureId",OracleDbType.Varchar2,searchInProductionEntity.ProcedureIDS,ParameterDirection.Input),
  853. new OracleParameter("in_goodsId",OracleDbType.Varchar2,searchInProductionEntity.GoodsIDS,ParameterDirection.Input),
  854. new OracleParameter("in_userId",OracleDbType.Varchar2,searchInProductionEntity.UserIDS,ParameterDirection.Input),
  855. new OracleParameter("in_groutingLineId",OracleDbType.Varchar2,searchInProductionEntity.GroutingLineIDS,ParameterDirection.Input),
  856. new OracleParameter("in_gMouldTypeId",OracleDbType.Varchar2,searchInProductionEntity.GMouldTypeIDS,ParameterDirection.Input),
  857. new OracleParameter("in_accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  858. new OracleParameter("in_createTimeStart",OracleDbType.Varchar2,searchInProductionEntity.CreateTimeStart,ParameterDirection.Input),
  859. new OracleParameter("in_createTimeEnd",OracleDbType.Varchar2,searchInProductionEntity.CreateTimeEnd,ParameterDirection.Input),
  860. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  861. };
  862. DataSet dsInproduction = con.ExecStoredProcedure("PRO_PM_GetInProductionData", paras);
  863. return dsInproduction;
  864. }
  865. catch (Exception ex)
  866. {
  867. throw ex;
  868. }
  869. finally
  870. {
  871. if (con.ConnState == ConnectionState.Open)
  872. {
  873. con.Close();
  874. }
  875. }
  876. }
  877. /// <summary>
  878. /// 查询成品数据
  879. /// </summary>
  880. /// <param name="searchInProductionEntity">产成品数据实体</param>
  881. /// <param name="sUserInfo">用户基本信息</param>
  882. /// <returns>DataSet产成品数据信息表</returns>
  883. public static DataSet GetFinishedProductionData(SearchFinishedProductEntity searchFinishedProductionEntity, SUserInfo sUserInfo)
  884. {
  885. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  886. try
  887. {
  888. con.Open();
  889. OracleParameter[] paras = new OracleParameter[]{
  890. new OracleParameter("in_barCode",OracleDbType.Varchar2,searchFinishedProductionEntity.BarCode,ParameterDirection.Input),
  891. new OracleParameter("in_productionLineId",OracleDbType.Varchar2,searchFinishedProductionEntity.ProductionLineIDS,ParameterDirection.Input),
  892. new OracleParameter("in_goodsId",OracleDbType.Varchar2,searchFinishedProductionEntity.GoodsIDS,ParameterDirection.Input),
  893. new OracleParameter("in_groutingLineId",OracleDbType.Varchar2,searchFinishedProductionEntity.GroutingLineIDS,ParameterDirection.Input),
  894. new OracleParameter("in_gMouldTypeId",OracleDbType.Varchar2,searchFinishedProductionEntity.GMouldTypeIDS,ParameterDirection.Input),
  895. new OracleParameter("in_accountDateStart",OracleDbType.Varchar2,searchFinishedProductionEntity.AccountDateStart,ParameterDirection.Input),
  896. new OracleParameter("in_accountDateEnd",OracleDbType.Varchar2,searchFinishedProductionEntity.AccountDateEnd,ParameterDirection.Input),
  897. new OracleParameter("in_createTimeStart",OracleDbType.Varchar2,searchFinishedProductionEntity.CreateTimeStart,ParameterDirection.Input),
  898. new OracleParameter("in_createTimeEnd",OracleDbType.Varchar2,searchFinishedProductionEntity.CreateTimeEnd,ParameterDirection.Input),
  899. new OracleParameter("in_accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  900. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  901. };
  902. DataSet dsInproduction = con.ExecStoredProcedure("PRO_PM_GetFinishdProductData", paras);
  903. return dsInproduction;
  904. }
  905. catch (Exception ex)
  906. {
  907. throw ex;
  908. }
  909. finally
  910. {
  911. if (con.ConnState == ConnectionState.Open)
  912. {
  913. con.Close();
  914. }
  915. }
  916. }
  917. /// <summary>
  918. /// 查询半检数据一览
  919. /// </summary>
  920. /// <param name="SearchSemiTestDetailEntity">查询半检数据明细实体类</param>
  921. /// <param name="sUserInfo">用户基本信息</param>
  922. /// <returns>DataSet</returns>
  923. public static DataSet GetSearchSemiTestListModule(SemiTestDetailEntity semiTestDetailEntity, SUserInfo sUserInfo)
  924. {
  925. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  926. try
  927. {
  928. con.Open();
  929. OracleParameter[] paras = new OracleParameter[]{
  930. new OracleParameter("in_goodsId",OracleDbType.Varchar2,semiTestDetailEntity.GoodsIDS,ParameterDirection.Input),
  931. new OracleParameter("in_testUserID",OracleDbType.Varchar2,semiTestDetailEntity.TestUserIDS,ParameterDirection.Input),
  932. new OracleParameter("in_groutingUserID",OracleDbType.Varchar2,semiTestDetailEntity.GroutingUserIDS,ParameterDirection.Input),
  933. new OracleParameter("in_semitesttype",OracleDbType.Int32,semiTestDetailEntity.SemiTestType,ParameterDirection.Input),
  934. new OracleParameter("in_remarks",OracleDbType.Varchar2,semiTestDetailEntity.Remarks,ParameterDirection.Input),
  935. new OracleParameter("in_userPurviews",OracleDbType.Varchar2,semiTestDetailEntity.UserPurviews,ParameterDirection.Input),
  936. new OracleParameter("in_semiTestDateStart",OracleDbType.Varchar2,semiTestDetailEntity.SemiTestDateStart,ParameterDirection.Input),
  937. new OracleParameter("in_semiTestDateEnd",OracleDbType.Varchar2,semiTestDetailEntity.SemiTestDateEnd,ParameterDirection.Input),
  938. new OracleParameter("in_accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  939. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  940. };
  941. DataSet dsSearchReport = con.ExecStoredProcedure("PRO_PM_GetSemiTestList", paras);
  942. return dsSearchReport;
  943. }
  944. catch (Exception ex)
  945. {
  946. throw ex;
  947. }
  948. finally
  949. {
  950. if (con.ConnState == ConnectionState.Open)
  951. {
  952. con.Close();
  953. }
  954. }
  955. }
  956. #endregion
  957. #region 校验条码是否可以下车
  958. /// <summary>
  959. /// 校验条码是否可以下车
  960. /// </summary>
  961. /// <param name="procedureID">当前工序</param>
  962. /// <param name="barcode">产品条码</param>
  963. /// <param name="sUserInfo">用户基本信息</param>
  964. /// <returns>CheckCancelLoadCar</returns>
  965. public static CheckCancelLoadCar CheckCancelLoadCar(int procedureID, string barcode, SUserInfo sUserInfo)
  966. {
  967. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  968. try
  969. {
  970. oracleConn.Open();
  971. OracleParameter[] paras = new OracleParameter[]{
  972. new OracleParameter("in_barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
  973. new OracleParameter("in_procedureid",OracleDbType.Int32,procedureID,ParameterDirection.Input),
  974. new OracleParameter("in_accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  975. new OracleParameter("out_errMsg",OracleDbType.NVarchar2,200,null,ParameterDirection.Output),
  976. new OracleParameter("out_goodscode",OracleDbType.NVarchar2,50,null,ParameterDirection.Output),
  977. new OracleParameter("out_goodsname",OracleDbType.NVarchar2,50,null,ParameterDirection.Output),
  978. new OracleParameter("out_kilncarcode",OracleDbType.NVarchar2,50,null,ParameterDirection.Output),
  979. };
  980. oracleConn.ExecStoredProcedure("PRO_PM_CheckCancelLoadCar", paras);
  981. CheckCancelLoadCar checkCancelLoadCar = new CheckCancelLoadCar();
  982. checkCancelLoadCar.ErrMsg = paras[3].Value.ToString() == "null" ? "" : paras[3].Value.ToString().Replace("\\n\\r", "\n\r");
  983. checkCancelLoadCar.GoodsCode = paras[4].Value.ToString() == "null" ? "" : paras[4].Value.ToString();
  984. checkCancelLoadCar.GoodsName = paras[5].Value.ToString() == "null" ? "" : paras[5].Value.ToString();
  985. checkCancelLoadCar.KilnCarCode = paras[6].Value.ToString() == "null" ? "" : paras[6].Value.ToString();
  986. return checkCancelLoadCar;
  987. }
  988. catch (Exception ex)
  989. {
  990. throw ex;
  991. }
  992. finally
  993. {
  994. if (oracleConn.ConnState == ConnectionState.Open)
  995. {
  996. oracleConn.Close();
  997. }
  998. }
  999. }
  1000. #endregion
  1001. /// <summary>
  1002. /// 根据所选生产数据ID,显示成检数据信息
  1003. /// </summary>
  1004. /// <param name="productionDataID">生产数据ID</param>
  1005. /// <returns>DataSet</returns>
  1006. public static DataSet GetProductionDataByID(int productionDataID)
  1007. {
  1008. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1009. try
  1010. {
  1011. con.Open();
  1012. DataSet dsReturn = new DataSet();
  1013. string sqlString = @"select
  1014. TP_PM_ProductionData.Barcode as BarCode,
  1015. TP_PM_ProductionData.Goodsid as GoodsID,
  1016. TP_PM_ProductionData.Goodscode as GoodsCode,
  1017. TP_PM_ProductionData.Goodsname as GoodsName,
  1018. TP_PM_ProductionData.GoodsLevelID as DefectFlagID,
  1019. TP_PM_ProductionData.Reworkprocedureid as ReworkProcedureID,
  1020. TP_PM_ProductionData.Remarks as Remarks,
  1021. TP_PM_ProductionData.Userid as UserID,
  1022. TP_PM_ProductionData.UserCode as UserCode,
  1023. TP_PM_ProductionData.UserName as UserName,
  1024. TP_PM_ProductionData.Goodsleveltypeid as GoodsLevelTypeID,
  1025. TP_PM_ProductionData.SpecialRepairflag,
  1026. TP_PM_ProductionData.UserCode,
  1027. TP_PM_ProductionData.KilnCode,
  1028. TP_PM_ProductionData.KilnCarCode,
  1029. TP_PM_ProductionData.GroutingUserCode,
  1030. TP_PM_ProductionData.GroutingMouldCode as MouldCode,
  1031. TP_PM_ProductionData.GroutingNum,
  1032. TP_PM_ProductionData.GroutingDate,
  1033. TP_MST_DataDictionary.Dictionaryvalue,
  1034. TP_PM_ProductionData.IsPublicBody,
  1035. TP_MST_Logo.logoid,
  1036. TP_MST_Logo.logocode,
  1037. TP_MST_Logo.logoname,
  1038. TP_PM_ProductionData.CreateTime,
  1039. TP_PM_ProductionData.CheckTime
  1040. from TP_PM_ProductionData
  1041. left join TP_MST_DataDictionary
  1042. on TP_PM_ProductionData.KilnCarPosition=TP_MST_DataDictionary.DictionaryID
  1043. left join TP_MST_Logo
  1044. on TP_PM_ProductionData.logoid=TP_MST_Logo.logoid
  1045. where
  1046. TP_PM_ProductionData.Productiondataid=:ProductionDataID
  1047. ";
  1048. string sqlString2 = @"
  1049. select
  1050. TP_PM_Defect.ProductionDefectID as ProductionDefectID,
  1051. TP_PM_Defect.Barcode as BarCode,
  1052. TP_PM_Defect.DefectID as DefectID,
  1053. TP_PM_Defect.Defectname as DefectName,
  1054. TP_PM_Defect.Defectcode as DefectCode,
  1055. TP_PM_Defect.Defectpositionid as DefectPositionID,
  1056. TP_PM_Defect.Defectpositionname as DefectPositionName,
  1057. TP_PM_Defect.Defectpositioncode as DefectPositionCode,
  1058. TP_PM_Defect.Defectprocedureid as DefectProcedureID,
  1059. TP_PM_Defect.Defectprocedurename as DefectProcedureName,
  1060. TP_PM_Defect.Defectprocedurecode as DefectProcedureCode,
  1061. TP_PM_Defect.Defectuserid as DefectUserID,
  1062. TP_PM_Defect.Defectusername as DefectUserName,
  1063. TP_PM_Defect.Defectusercode as DefectUserCode,
  1064. TP_PM_Defect.DefectJobs as Jobs,
  1065. nvl(TP_PM_Defect.MissedUserID,-1) as MissedUserID,
  1066. TP_PM_Defect.MissedUserCode,
  1067. TP_PM_Defect.MissedUserName,
  1068. TP_MST_Jobs.Jobsname as JobsText,
  1069. TP_PM_Defect.Remarks as DefectRemarks,
  1070. TP_PM_Defect.Productiondataid as ProductionDataID,
  1071. nvl(TP_PM_Defect.DefectProductionDataID,0) as DefectProductionDataID,
  1072. TP_PM_Defect.Defectfine as DefectFineID,
  1073. TP_MST_DefectFine.DefectFineCode as DefectFineValue,
  1074. TP_PM_Defect.SpecialDefect,
  1075. TP_PM_Defect.DefectDeductionNum,
  1076. TP_PM_Defect.CheckTime
  1077. from TP_PM_Defect
  1078. left join TP_MST_Jobs
  1079. on TP_PM_Defect.Defectjobs=TP_MST_Jobs.JobsID
  1080. left join TP_MST_DefectFine
  1081. on TP_PM_Defect.Defectfine= TP_MST_DefectFine.DefectFineid
  1082. where TP_PM_Defect.Productiondataid =:ProductionDataID";
  1083. string sqlString3 = @"select
  1084. TP_PM_DefectResponsible.ProductionDefectID as ProductionDefectID,
  1085. TP_PM_DefectResponsible.Staffid as StaffID,
  1086. TP_HR_Staff.Staffcode as StaffCode,
  1087. TP_HR_Staff.Staffname as StaffName,
  1088. TP_PM_DefectResponsible.Staffstatus as StaffStatus
  1089. from TP_PM_DefectResponsible
  1090. left join TP_HR_Staff
  1091. on TP_PM_DefectResponsible.StaffID=TP_HR_Staff.Staffid
  1092. where TP_PM_DefectResponsible.Productiondefectid in
  1093. (
  1094. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1095. )";
  1096. string sqlString4 = @" select
  1097. TP_PM_DefectImage.ProductionDefectID,
  1098. TP_PM_DefectImage.Thumbnailpath,
  1099. TP_PM_DefectImage.Imagepath
  1100. from TP_PM_DefectImage
  1101. where TP_PM_DefectImage.Productiondefectid in
  1102. (
  1103. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1104. )";
  1105. string sqlString5 = @"select
  1106. TP_PM_DefectMissedResponsible.ProductionDefectID as ProductionDefectID,
  1107. TP_PM_DefectMissedResponsible.Staffid as StaffID,
  1108. TP_HR_Staff.Staffcode as StaffCode,
  1109. TP_HR_Staff.Staffname as StaffName,
  1110. TP_PM_DefectMissedResponsible.Staffstatus as StaffStatus,
  1111. TP_PM_DefectMissedResponsible.UJobsID,
  1112. TP_PM_DefectMissedResponsible.SJobsID
  1113. from TP_PM_DefectMissedResponsible
  1114. left join TP_HR_Staff
  1115. on TP_PM_DefectMissedResponsible.StaffID=TP_HR_Staff.Staffid
  1116. where TP_PM_DefectMissedResponsible.Productiondefectid in
  1117. (
  1118. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1119. )";
  1120. OracleParameter[] paras = new OracleParameter[]{
  1121. new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
  1122. };
  1123. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1124. ds.Tables[0].TableName = "TP_PM_ProductionData";
  1125. DataSet ds2 = con.GetSqlResultToDs(sqlString2, paras);
  1126. ds2.Tables[0].TableName = "TP_PM_Defect";
  1127. DataSet ds3 = con.GetSqlResultToDs(sqlString3, paras);
  1128. ds3.Tables[0].TableName = "TP_PM_DefectResponsible";
  1129. DataSet ds4 = con.GetSqlResultToDs(sqlString4, paras);
  1130. ds4.Tables[0].TableName = "TP_PM_DefectImage";
  1131. DataSet ds5 = con.GetSqlResultToDs(sqlString5, paras);
  1132. ds5.Tables[0].TableName = "TP_PM_DefectMissedResponsible";
  1133. dsReturn.Tables.Add(ds.Tables[0].Copy());
  1134. dsReturn.Tables.Add(ds2.Tables[0].Copy());
  1135. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  1136. dsReturn.Tables.Add(ds4.Tables[0].Copy());
  1137. dsReturn.Tables.Add(ds5.Tables[0].Copy());
  1138. dsReturn.Tables["TP_PM_DefectImage"].Columns.Add("SourcePathByte", typeof(byte[]));
  1139. for (int i = 0; i < dsReturn.Tables["TP_PM_DefectImage"].Rows.Count; i++)
  1140. {
  1141. string saveAllFilePath = AppDomain.CurrentDomain.BaseDirectory + dsReturn.Tables["TP_PM_DefectImage"].Rows[i]["ImagePath"].ToString();
  1142. if (File.Exists(saveAllFilePath))
  1143. {
  1144. FileInfo file = new FileInfo(saveAllFilePath);
  1145. Image PicImage = Image.FromStream(file.OpenRead());
  1146. byte[] smallbuffer = null;
  1147. using (MemoryStream ms = new MemoryStream())
  1148. {
  1149. PicImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
  1150. ms.Position = 0;
  1151. smallbuffer = new byte[ms.Length];
  1152. ms.Read(smallbuffer, 0, Convert.ToInt32(ms.Length));
  1153. ms.Flush();
  1154. }
  1155. dsReturn.Tables["TP_PM_DefectImage"].Rows[i]["SourcePathByte"] = smallbuffer;
  1156. }
  1157. }
  1158. return dsReturn;
  1159. }
  1160. catch (Exception ex)
  1161. {
  1162. throw ex;
  1163. }
  1164. finally
  1165. {
  1166. if (con.ConnState == ConnectionState.Open)
  1167. {
  1168. con.Close();
  1169. }
  1170. }
  1171. }
  1172. /// <summary>
  1173. /// 获取产品完成工序的ID
  1174. /// </summary>
  1175. /// <param name="barcode">产品条码</param>
  1176. /// <returns>int</returns>
  1177. public static int GetCompleteProcedureID(string barcode)
  1178. {
  1179. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1180. try
  1181. {
  1182. con.Open();
  1183. string sqlString = @"select
  1184. FlowProcedureID as
  1185. CompleteProcedureID,
  1186. ProductionDataID,
  1187. ProcedureID
  1188. from TP_PM_InProduction
  1189. where
  1190. TP_PM_InProduction.BarCode=:BarCode
  1191. union
  1192. select
  1193. FlowProcedureID as
  1194. CompleteProcedureID,
  1195. ProductionDataID,
  1196. ProcedureID
  1197. from Tp_Pm_Inproductiontrash
  1198. where
  1199. Tp_Pm_Inproductiontrash.BarCode=:BarCode
  1200. ";
  1201. OracleParameter[] paras = new OracleParameter[]{
  1202. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1203. };
  1204. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1205. if (ds != null && ds.Tables[0].Rows.Count > 0)
  1206. {
  1207. return Convert.ToInt32(ds.Tables[0].Rows[0]["CompleteProcedureID"]);
  1208. }
  1209. else
  1210. {
  1211. sqlString = @"select
  1212. BarCode
  1213. from TP_PM_FinishedProduct
  1214. where
  1215. TP_PM_FinishedProduct.BarCode=:BarCode
  1216. ";
  1217. paras = new OracleParameter[]{
  1218. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1219. };
  1220. DataSet ds2 = con.GetSqlResultToDs(sqlString, paras);
  1221. if (ds2 != null && ds2.Tables[0].Rows.Count > 0)
  1222. {
  1223. return -2;
  1224. }
  1225. else
  1226. {
  1227. return -1;
  1228. }
  1229. }
  1230. }
  1231. catch (Exception ex)
  1232. {
  1233. throw ex;
  1234. }
  1235. finally
  1236. {
  1237. if (con.ConnState == ConnectionState.Open)
  1238. {
  1239. con.Close();
  1240. }
  1241. }
  1242. }
  1243. /// <summary>
  1244. /// 编辑后删除生产数据
  1245. /// </summary>
  1246. /// <param name="productionDataID">生产数据ID</param>
  1247. /// <returns>int</returns>
  1248. public static int DeleteProductionDataByID(int productionDataID)
  1249. {
  1250. int deleteRow = 0;
  1251. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  1252. try
  1253. {
  1254. oracleTrConn.Connect();
  1255. string sqlString5 = @"update TP_PM_DefectMissedResponsible set ValueFlag=0
  1256. where TP_PM_DefectMissedResponsible.Productiondefectid in
  1257. (
  1258. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1259. )";
  1260. string sqlString4 = @"update TP_PM_ProductionData set ValueFlag=0
  1261. where
  1262. TP_PM_ProductionData.Productiondataid=:ProductionDataID
  1263. ";
  1264. string sqlString3 = @"update TP_PM_Defect set ValueFlag=0
  1265. where TP_PM_Defect.Productiondataid =:ProductionDataID";
  1266. string sqlString2 = @"update TP_PM_DefectResponsible set ValueFlag=0
  1267. where TP_PM_DefectResponsible.Productiondefectid in
  1268. (
  1269. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1270. )";
  1271. string sqlString = @"update TP_PM_DefectImage set ValueFlag=0
  1272. where TP_PM_DefectImage.Productiondefectid in
  1273. (
  1274. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1275. )";
  1276. OracleParameter[] paras = new OracleParameter[]{
  1277. new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
  1278. };
  1279. deleteRow += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  1280. deleteRow += oracleTrConn.ExecuteNonQuery(sqlString2, paras);
  1281. deleteRow += oracleTrConn.ExecuteNonQuery(sqlString3, paras);
  1282. deleteRow += oracleTrConn.ExecuteNonQuery(sqlString4, paras);
  1283. deleteRow += oracleTrConn.ExecuteNonQuery(sqlString5, paras);
  1284. // 没有错误 提交事务
  1285. if (deleteRow > 0)
  1286. {
  1287. oracleTrConn.Commit();
  1288. }
  1289. else
  1290. {
  1291. oracleTrConn.Rollback();
  1292. }
  1293. }
  1294. catch (Exception ex)
  1295. {
  1296. oracleTrConn.Rollback();
  1297. throw ex;
  1298. }
  1299. finally
  1300. {
  1301. // 释放资源
  1302. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  1303. {
  1304. oracleTrConn.Disconnect();
  1305. }
  1306. }
  1307. return deleteRow;
  1308. }
  1309. /// <summary>
  1310. /// 由产品条码获取注浆信息
  1311. /// </summary>
  1312. /// <param name="barcode">产品条码</param>
  1313. /// <returns>DataSet</returns>
  1314. public static DataSet GetGroutingProducttByBarCode(string barcode)
  1315. {
  1316. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1317. try
  1318. {
  1319. con.Open();
  1320. string sqlString = @"select
  1321. TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
  1322. TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
  1323. TP_PM_GroutingDailyDetail.GroutingMouldCode as MouldCode,
  1324. TP_MST_Logo.logoid,
  1325. TP_MST_Logo.logocode,
  1326. TP_MST_Logo.logoname,
  1327. (select tp_pm_inproduction.ispublicbody from
  1328. tp_pm_inproduction where tp_pm_inproduction.BarCode=:barcode) as ispublicbody,
  1329. (select tp_pm_inproductiontrash.ispublicbody from
  1330. tp_pm_inproductiontrash where tp_pm_inproductiontrash.BarCode=:barcode) as ispublicbodyTrach,
  1331. TP_PM_GroutingDailyDetail.Groutingdate
  1332. from TP_PM_GroutingDailyDetail
  1333. left join TP_MST_Logo
  1334. on TP_PM_GroutingDailyDetail.logoid=TP_MST_Logo.logoid
  1335. where TP_PM_GroutingDailyDetail.BarCode=:barcode";
  1336. OracleParameter[] paras = new OracleParameter[]{
  1337. new OracleParameter(":barcode",barcode),
  1338. };
  1339. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1340. return ds;
  1341. }
  1342. catch (Exception ex)
  1343. {
  1344. throw ex;
  1345. }
  1346. finally
  1347. {
  1348. if (con.ConnState == ConnectionState.Open)
  1349. {
  1350. con.Close();
  1351. }
  1352. }
  1353. }
  1354. /// <summary>
  1355. /// 根据所选工号对应的工种,查出缺陷责任员工
  1356. /// </summary>
  1357. /// <param name="jobs">工种ID</param>
  1358. /// <param name="sUserInfo">用户基本信息</param>
  1359. /// <returns>DataSet</returns>
  1360. public static DataSet GetDutyStaffByUserID(int jobs, SUserInfo sUserInfo)
  1361. {
  1362. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1363. try
  1364. {
  1365. con.Open();
  1366. string sqlString = @"select
  1367. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as SJobsID
  1368. from TP_MST_UserStaff
  1369. left join TP_HR_Staff
  1370. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  1371. where TP_MST_UserStaff.Ujobsid=:jobs and TP_HR_Staff.StaffStatus in (1,2)
  1372. order by TP_HR_Staff.StaffCode
  1373. ";
  1374. OracleParameter[] paras = new OracleParameter[]{
  1375. new OracleParameter(":jobs",OracleDbType.Int32, jobs,ParameterDirection.Input),
  1376. };
  1377. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1378. return ds;
  1379. }
  1380. catch (Exception ex)
  1381. {
  1382. throw ex;
  1383. }
  1384. finally
  1385. {
  1386. if (con.ConnState == ConnectionState.Open)
  1387. {
  1388. con.Close();
  1389. }
  1390. }
  1391. }
  1392. /// <summary>
  1393. /// 根据所选工号,查出漏检责任员工
  1394. /// </summary>
  1395. /// <param name="userid">工号</param>
  1396. /// <param name="sUserInfo">用户基本信息</param>
  1397. /// <returns>DataSet</returns>
  1398. public static DataSet GetMissedStaffByUserID(int userid, SUserInfo sUserInfo)
  1399. {
  1400. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1401. try
  1402. {
  1403. con.Open();
  1404. string sqlString = @"select
  1405. 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
  1406. from TP_MST_UserStaff
  1407. left join TP_HR_Staff
  1408. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  1409. where TP_MST_UserStaff.Userid=:userid
  1410. ";
  1411. OracleParameter[] paras = new OracleParameter[]{
  1412. new OracleParameter(":userid",OracleDbType.Int32, userid,ParameterDirection.Input),
  1413. };
  1414. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1415. return ds;
  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="jobs">工种ID</param>
  1433. /// <param name="userid">用户ID</param>
  1434. /// <param name="sUserInfo">用户基本信息</param>
  1435. /// <returns>DataSet</returns>
  1436. public static DataSet GetDutyStaffByUserJobsID(int jobs, SUserInfo sUserInfo, int userid)
  1437. {
  1438. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1439. try
  1440. {
  1441. con.Open();
  1442. string sqlString = @"select
  1443. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as SJobsID
  1444. from TP_MST_UserStaff
  1445. left join TP_HR_Staff
  1446. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  1447. where TP_MST_UserStaff.Ujobsid=:jobs and TP_MST_UserStaff.Userid=:userid
  1448. ";
  1449. OracleParameter[] paras = new OracleParameter[]{
  1450. new OracleParameter(":jobs",OracleDbType.Int32, jobs,ParameterDirection.Input),
  1451. new OracleParameter(":userid",OracleDbType.Int32, userid,ParameterDirection.Input),
  1452. };
  1453. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1454. return ds;
  1455. }
  1456. catch (Exception ex)
  1457. {
  1458. throw ex;
  1459. }
  1460. finally
  1461. {
  1462. if (con.ConnState == ConnectionState.Open)
  1463. {
  1464. con.Close();
  1465. }
  1466. }
  1467. }
  1468. /// <summary>
  1469. /// 获取干补标识
  1470. /// </summary>
  1471. /// <param name="barcode">产品条码</param>ram>
  1472. /// <returns>int</returns>
  1473. public static int GetSpecialRepairflagByBarcode(string barcode, SUserInfo sUserInfo)
  1474. {
  1475. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1476. try
  1477. {
  1478. con.Open();
  1479. string sqlString = @"select
  1480. SpecialRepairflag
  1481. from tp_pm_inproduction where barcode=:barcode
  1482. union
  1483. select
  1484. SpecialRepairflag from
  1485. tp_pm_inproductiontrash where barcode=:barcode
  1486. union
  1487. select
  1488. SpecialRepairflag from
  1489. tp_pm_finishedproduct where barcode=:barcode
  1490. ";
  1491. OracleParameter[] paras = new OracleParameter[]{
  1492. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1493. };
  1494. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1495. if (ds != null && ds.Tables[0].Rows.Count > 0)
  1496. {
  1497. return Convert.ToInt32(ds.Tables[0].Rows[0]["SpecialRepairflag"]);
  1498. }
  1499. return 0;
  1500. }
  1501. catch (Exception ex)
  1502. {
  1503. throw ex;
  1504. }
  1505. finally
  1506. {
  1507. if (con.ConnState == ConnectionState.Open)
  1508. {
  1509. con.Close();
  1510. }
  1511. }
  1512. }
  1513. /// <summary>
  1514. /// 获取窑车对应产品列表
  1515. /// <param name="KilnCarID">窑车ID</param>
  1516. /// </summary>
  1517. /// <returns>DataSet</returns>
  1518. public static DataSet GetKilnCarGoodsByKilnCarID(int KilnCarID)
  1519. {
  1520. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1521. try
  1522. {
  1523. con.Open();
  1524. string sqlString = @"select distinct
  1525. TP_PM_KilnCarGoods.Barcode,
  1526. TP_MST_Goods.Goodsid,
  1527. TP_MST_Goods.Goodscode,
  1528. TP_MST_Goods.Goodsname,
  1529. TP_PM_KilnCarGoods.Userid,
  1530. TP_PM_KilnCarGoods.Usercode,
  1531. TP_PM_KilnCarGoods.Username,
  1532. TP_MST_KilnCar.Kilncarname,
  1533. TP_MST_KilnCar.Kilncarcode,
  1534. TP_MST_Kiln.KilnName,
  1535. TP_MST_Kiln.KilnCode,
  1536. TP_MST_KilnCar.Kilnid,
  1537. TP_MST_KilnCar.KilnCarid,
  1538. TP_PM_KilnCarGoods.KilnCarPosition,
  1539. TP_MST_DataDictionary.Dictionaryvalue,
  1540. TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
  1541. TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
  1542. TP_PM_GroutingDailyDetail.GroutingMouldCode as MouldCode,
  1543. (select max(tp_pm_inproduction.ispublicbody) from
  1544. tp_pm_inproduction where tp_pm_inproduction.BarCode=TP_PM_KilnCarGoods.Barcode) as ispublicbody,
  1545. TP_PM_GroutingDailyDetail.Groutingdate,
  1546. tp_mst_logo.logoid,
  1547. tp_mst_logo.logocode,
  1548. tp_mst_logo.logoname
  1549. from
  1550. TP_PM_KilnCarGoods
  1551. left join TP_MST_Goods
  1552. on TP_PM_KilnCarGoods.Goodsid=TP_MST_Goods.Goodsid
  1553. left join TP_MST_KilnCar
  1554. on TP_PM_KilnCarGoods.Kilncarid=TP_MST_KilnCar.Kilncarid
  1555. left join TP_MST_Kiln
  1556. on TP_MST_KilnCar.Kilnid=TP_MST_Kiln.Kilnid
  1557. left join TP_MST_DataDictionary
  1558. on TP_PM_KilnCarGoods.KilnCarPosition=TP_MST_DataDictionary.Dictionaryid
  1559. left join TP_PM_GroutingDailyDetail
  1560. on TP_PM_KilnCarGoods.Barcode=TP_PM_GroutingDailyDetail.BarCode
  1561. left join tp_mst_logo
  1562. on TP_PM_GroutingDailyDetail.logoid=tp_mst_logo.logoid
  1563. where TP_PM_KilnCarGoods.KilnCarID=:KilnCarID
  1564. ";
  1565. OracleParameter[] paras = new OracleParameter[]{
  1566. new OracleParameter(":KilnCarID",OracleDbType.Int32, KilnCarID,ParameterDirection.Input),
  1567. };
  1568. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1569. return ds;
  1570. }
  1571. catch (Exception ex)
  1572. {
  1573. throw ex;
  1574. }
  1575. finally
  1576. {
  1577. if (con.ConnState == ConnectionState.Open)
  1578. {
  1579. con.Close();
  1580. }
  1581. }
  1582. }
  1583. /// <summary>
  1584. /// 获取未在生产线上报损的注浆信息
  1585. /// <param name="barcode">产品条码</param>
  1586. /// </summary>
  1587. /// <returns>DataSet</returns>
  1588. public static DataSet GetBarCodeInGroutingDailyDetail(string barcode)
  1589. {
  1590. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1591. try
  1592. {
  1593. con.Open();
  1594. // 首先查看条码是否有效
  1595. string sqlString = @"select TP_PM_GroutingDailyDetail.GoodsID,TP_PM_GroutingDailyDetail.GoodsCode,TP_PM_GroutingDailyDetail.GoodsName
  1596. ,TP_PM_GroutingDailyDetail.GroutingDailyID,TP_PM_GroutingDailyDetail.GroutingDailyDetailID
  1597. ,TP_PM_GroutingDailyDetail.GroutingDate,TP_PM_GroutingDailyDetail.GroutingLineID,TP_PM_GroutingDailyDetail.GroutingLineCode
  1598. ,TP_PM_GroutingDailyDetail.GroutingLineName
  1599. ,TP_PM_GroutingDailyDetail.GroutingLineDetailID,TP_PM_GroutingDailyDetail.GroutingMouldCode,TP_PM_GroutingDailyDetail.MouldCode
  1600. ,TP_PM_GroutingDailyDetail.UserID as GroutingUserID
  1601. ,TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode
  1602. ,TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum
  1603. ,0 as IsPublicBody
  1604. ,0 as IsReFire
  1605. ,TP_PC_GroutingLine.GMouldTypeID
  1606. ,TP_PM_GroutingDailyDetail.SpecialRepairFlag
  1607. from TP_PM_GroutingDailyDetail
  1608. left join TP_PC_GroutingLine
  1609. on TP_PM_GroutingDailyDetail.GroutingLineID=TP_PC_GroutingLine.GroutingLineID
  1610. where TP_PM_GroutingDailyDetail.barcode=:barcode";
  1611. OracleParameter[] paras = new OracleParameter[]{
  1612. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1613. };
  1614. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1615. return ds;
  1616. }
  1617. catch (Exception ex)
  1618. {
  1619. throw ex;
  1620. }
  1621. finally
  1622. {
  1623. if (con.ConnState == ConnectionState.Open)
  1624. {
  1625. con.Close();
  1626. }
  1627. }
  1628. }
  1629. /// <summary>
  1630. /// 获取编辑的生产数据ID与列表所选生产数据ID做比较
  1631. /// </summary>
  1632. /// <param name="barcode">产品条码</param>
  1633. /// <returns>int</returns>
  1634. public static int GetCompleteProductionDataID(string barcode)
  1635. {
  1636. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1637. try
  1638. {
  1639. con.Open();
  1640. string sqlString = @"select
  1641. ProductionDataID
  1642. from TP_PM_InProduction
  1643. where
  1644. TP_PM_InProduction.BarCode=:BarCode
  1645. union
  1646. select
  1647. ProductionDataID
  1648. from Tp_Pm_Inproductiontrash
  1649. where
  1650. Tp_Pm_Inproductiontrash.BarCode=:BarCode
  1651. ";
  1652. OracleParameter[] paras = new OracleParameter[]{
  1653. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1654. };
  1655. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1656. if (ds != null && ds.Tables[0].Rows.Count > 0)
  1657. {
  1658. return Convert.ToInt32(ds.Tables[0].Rows[0]["ProductionDataID"]);
  1659. }
  1660. else
  1661. {
  1662. return 0;
  1663. }
  1664. }
  1665. catch (Exception ex)
  1666. {
  1667. throw ex;
  1668. }
  1669. finally
  1670. {
  1671. if (con.ConnState == ConnectionState.Open)
  1672. {
  1673. con.Close();
  1674. }
  1675. }
  1676. }
  1677. /// <summary>
  1678. /// 获取在产产品的信息标识列表
  1679. /// </summary>
  1680. /// <param name="barcode">产品条码</param>
  1681. /// <returns>int</returns>
  1682. public static DataSet GetInProductionDataList(string barcode)
  1683. {
  1684. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1685. try
  1686. {
  1687. con.Open();
  1688. string sqlString = @"select
  1689. BarCode,
  1690. FlowProcedureID,
  1691. FlowProcedureTime,
  1692. ProcedureID,
  1693. ProcedureTime,
  1694. ProductionDataID,
  1695. IsReFire,
  1696. IsLengBu,
  1697. SpecialRepairFlag
  1698. from TP_PM_InProduction
  1699. where
  1700. TP_PM_InProduction.BarCode=:BarCode
  1701. ";
  1702. OracleParameter[] paras = new OracleParameter[]{
  1703. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1704. };
  1705. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1706. return ds;
  1707. }
  1708. catch (Exception ex)
  1709. {
  1710. throw ex;
  1711. }
  1712. finally
  1713. {
  1714. if (con.ConnState == ConnectionState.Open)
  1715. {
  1716. con.Close();
  1717. }
  1718. }
  1719. }
  1720. /// <summary>
  1721. /// 成检时获取此条码是否报损
  1722. /// <param name="barcode">产品条码</param>
  1723. /// </summary>
  1724. /// <returns>int</returns>
  1725. public static int CheckScrapProduct(string barcode)
  1726. {
  1727. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1728. try
  1729. {
  1730. con.Open();
  1731. string sqlString = @"select auditstatus from tp_pm_scrapproduct where auditstatus in(0,1) and valueflag=1 and goodsleveltypeid=8 and barcode=:barcode and recyclingflag=0";
  1732. OracleParameter[] paras = new OracleParameter[]{
  1733. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1734. };
  1735. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1736. if (ds != null && ds.Tables[0].Rows.Count > 0)
  1737. {
  1738. return Convert.ToInt32(ds.Tables[0].Rows[0]["auditstatus"]);
  1739. }
  1740. return -100;
  1741. }
  1742. catch (Exception ex)
  1743. {
  1744. throw ex;
  1745. }
  1746. finally
  1747. {
  1748. if (con.ConnState == ConnectionState.Open)
  1749. {
  1750. con.Close();
  1751. }
  1752. }
  1753. }
  1754. /// <summary>
  1755. /// 获取产品完成工序的ID(PDA)
  1756. /// </summary>
  1757. /// <param name="barcode">产品条码</param>
  1758. /// <returns>int</returns>
  1759. public static DataSet GetCompleteProcedureIDPDA(string barcode)
  1760. {
  1761. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1762. try
  1763. {
  1764. con.Open();
  1765. string sqlString = @"select
  1766. FlowProcedureID as
  1767. CompleteProcedureID,
  1768. ProductionDataID,
  1769. ProcedureID,
  1770. OPTimeStamp,
  1771. to_char(OPTimeStamp,'DD-MM-YYHH12.MI.SS.FFAM') as ConvertOPTimeStamp
  1772. from TP_PM_InProduction
  1773. where
  1774. TP_PM_InProduction.BarCode=:BarCode
  1775. union
  1776. select
  1777. FlowProcedureID as
  1778. CompleteProcedureID,
  1779. ProductionDataID,
  1780. ProcedureID,
  1781. OPTimeStamp,
  1782. to_char(OPTimeStamp,'DD-MM-YYHH12.MI.SS.FFAM') as ConvertOPTimeStamp
  1783. from Tp_Pm_Inproductiontrash
  1784. where
  1785. Tp_Pm_Inproductiontrash.BarCode=:BarCode
  1786. ";
  1787. OracleParameter[] paras = new OracleParameter[]{
  1788. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1789. };
  1790. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1791. return ds;
  1792. }
  1793. catch (Exception ex)
  1794. {
  1795. throw ex;
  1796. }
  1797. finally
  1798. {
  1799. if (con.ConnState == ConnectionState.Open)
  1800. {
  1801. con.Close();
  1802. }
  1803. }
  1804. }
  1805. /// <summary>
  1806. /// 成检时获取条码的产品信息(成检(正品)--报损-->干补-->成检)
  1807. /// </summary>
  1808. /// <param name="barcode">产品条码</param>
  1809. /// <returns>int</returns>
  1810. public static DataSet GetGoodsInfoBybarcode(string barcode)
  1811. {
  1812. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1813. try
  1814. {
  1815. con.Open();
  1816. string sqlString = @"select
  1817. GoodsID,GoodsCode,GoodsName,
  1818. (
  1819. select
  1820. TP_PM_InProduction.SpecialRepairFlag
  1821. from TP_PM_InProduction
  1822. where TP_PM_InProduction.BarCode=:BarCode
  1823. ) SpecialRepairFlag,
  1824. (
  1825. select
  1826. TP_PM_InProduction.IsReFire
  1827. from TP_PM_InProduction
  1828. where TP_PM_InProduction.BarCode=:BarCode
  1829. ) IsReFire,
  1830. tp_mst_logo.logoid,
  1831. tp_mst_logo.logocode,
  1832. tp_mst_logo.logoname,
  1833. TP_PM_GroutingDailyDetail.UserCode,
  1834. TP_PM_GroutingDailyDetail.GroutingMouldCode as MouldCode,
  1835. TP_PM_GroutingDailyDetail.GroutingCount,
  1836. TP_PM_GroutingDailyDetail.GroutingDate
  1837. from TP_PM_GroutingDailyDetail
  1838. left join tp_mst_logo
  1839. on TP_PM_GroutingDailyDetail.logoid=tp_mst_logo.logoid
  1840. where
  1841. TP_PM_GroutingDailyDetail.BarCode=:BarCode
  1842. ";
  1843. OracleParameter[] paras = new OracleParameter[]{
  1844. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1845. };
  1846. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1847. return ds;
  1848. }
  1849. catch (Exception ex)
  1850. {
  1851. throw ex;
  1852. }
  1853. finally
  1854. {
  1855. if (con.ConnState == ConnectionState.Open)
  1856. {
  1857. con.Close();
  1858. }
  1859. }
  1860. }
  1861. /// <summary>
  1862. /// 生成盘点明细
  1863. /// </summary>
  1864. /// <param name="ProcedureIDS">工序ID集</param>
  1865. /// <param name="sUserInfo">用户基本信息</param>
  1866. /// <returns></returns>
  1867. public static DataSet GetInCheckedDetail(string ProcedureIDS, SUserInfo sUserInfo)
  1868. {
  1869. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1870. try
  1871. {
  1872. con.Open();
  1873. string sqlString = @"select
  1874. TP_PM_InProduction.BarCode,
  1875. TP_PM_InProduction.ProductionLineID,
  1876. TP_PM_InProduction.ProductionLineCode,
  1877. TP_PM_InProduction.ProductionLineName,
  1878. TP_PM_InProduction.FlowProcedureID,
  1879. TP_PM_InProduction.ProcedureID,
  1880. TP_PM_InProduction.ProcedureModel,
  1881. TP_PM_InProduction.ModelType,
  1882. TP_PM_InProduction.GoodsID,
  1883. TP_PM_InProduction.GoodsCode,
  1884. TP_PM_InProduction.GoodsName,
  1885. TP_PM_InProduction.GroutingDate,
  1886. TP_PM_InProduction.GroutingLineCode,
  1887. TP_PM_InProduction.GroutingLineName,
  1888. TP_PM_InProduction.GroutingMouldCode,
  1889. TP_PM_InProduction.GroutingUserCode,
  1890. TP_PM_InProduction.GroutingNum,
  1891. TP_PM_InProduction.KilnCode,
  1892. TP_PM_InProduction.KilnName,
  1893. TP_PM_InProduction.KilnCarCode,
  1894. TP_PM_InProduction.KilnCarName,
  1895. TP_PM_InProduction.IsPublicBody,
  1896. TP_PM_InProduction.IsReFire,
  1897. TP_PM_InProduction.SpecialRepairFlag,
  1898. TP_PC_Procedure.ProcedureName
  1899. from TP_PM_InProduction
  1900. left join TP_PC_Procedure
  1901. on TP_PM_InProduction.FlowProcedureID=TP_PC_Procedure.ProcedureID where TP_PM_InProduction.accountid=:accountid
  1902. ";
  1903. List<OracleParameter> parameters = new List<OracleParameter>();
  1904. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  1905. // 工序IDS
  1906. if (!string.IsNullOrEmpty(ProcedureIDS))
  1907. {
  1908. sqlString += "AND instr(','||:ProcedureIDS||',',','||TP_PM_InProduction.FlowProcedureID||',')>0 ";
  1909. parameters.Add(new OracleParameter(":ProcedureIDS", OracleDbType.NVarchar2, ProcedureIDS, ParameterDirection.Input));
  1910. }
  1911. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  1912. return ds;
  1913. }
  1914. catch (Exception ex)
  1915. {
  1916. throw ex;
  1917. }
  1918. finally
  1919. {
  1920. if (con.ConnState == ConnectionState.Open)
  1921. {
  1922. con.Close();
  1923. }
  1924. }
  1925. }
  1926. /// <summary>
  1927. /// 获取盘点单列表
  1928. /// </summary>
  1929. /// <param name="sUserInfo"></param>
  1930. /// <returns></returns>
  1931. public static DataSet GetInCheckedList(SUserInfo sUserInfo)
  1932. {
  1933. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1934. try
  1935. {
  1936. con.Open();
  1937. string sqlString = @"select InCheckedID,InCheckedNo,AccountDate from TP_PM_InChecked where accountid=:accountid and ValueFlag=1";
  1938. List<OracleParameter> parameters = new List<OracleParameter>();
  1939. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  1940. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  1941. return ds;
  1942. }
  1943. catch (Exception ex)
  1944. {
  1945. throw ex;
  1946. }
  1947. finally
  1948. {
  1949. if (con.ConnState == ConnectionState.Open)
  1950. {
  1951. con.Close();
  1952. }
  1953. }
  1954. }
  1955. /// <summary>
  1956. /// 获取盘点单工号列表
  1957. /// </summary>
  1958. /// <param name="sUserInfo"></param>
  1959. /// <returns></returns>
  1960. public static DataSet GetInCheckedUserList(int InCheckedID, SUserInfo sUserInfo)
  1961. {
  1962. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1963. try
  1964. {
  1965. con.Open();
  1966. string sqlString = @"select tp_pm_incheckeduser.InCheckedID,tp_pm_incheckeduser.UserID,tp_pm_incheckeduser.UserCode,
  1967. tp_mst_user.UserName from tp_pm_incheckeduser
  1968. left join tp_mst_user on tp_pm_incheckeduser.userid=tp_mst_user.userid
  1969. where tp_pm_incheckeduser.InCheckedID=:InCheckedID";
  1970. List<OracleParameter> parameters = new List<OracleParameter>();
  1971. parameters.Add(new OracleParameter(":InCheckedID", OracleDbType.Int32, InCheckedID, ParameterDirection.Input));
  1972. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  1973. return ds;
  1974. }
  1975. catch (Exception ex)
  1976. {
  1977. throw ex;
  1978. }
  1979. finally
  1980. {
  1981. if (con.ConnState == ConnectionState.Open)
  1982. {
  1983. con.Close();
  1984. }
  1985. }
  1986. }
  1987. /// <summary>
  1988. /// 获取主表盘点信息
  1989. /// </summary>
  1990. /// <param name="entity">盘点类</param>
  1991. /// <param name="sUserInfo">用户基本信息</param>
  1992. /// <returns></returns>
  1993. public static DataSet GetAllInChecked(InCheckedEntity entity, SUserInfo sUserInfo)
  1994. {
  1995. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1996. try
  1997. {
  1998. oracleConn.Open();
  1999. OracleParameter[] paras = new OracleParameter[]{
  2000. new OracleParameter("in_inCheckedNo",OracleDbType.NVarchar2, entity.InCheckedNo,ParameterDirection.Input),
  2001. new OracleParameter("in_inCheckedName",OracleDbType.NVarchar2, entity.InCheckedName,ParameterDirection.Input),
  2002. new OracleParameter("in_remarks",OracleDbType.NVarchar2, entity.Remarks,ParameterDirection.Input),
  2003. new OracleParameter("in_begindate",OracleDbType.Date, entity.BeginDate,ParameterDirection.Input),
  2004. new OracleParameter("in_enddate",OracleDbType.Date,entity.EndDate,ParameterDirection.Input),
  2005. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  2006. new OracleParameter("in_accountID",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  2007. new OracleParameter("in_userID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  2008. };
  2009. DataSet returnDataSet = oracleConn.ExecStoredProcedure("PRO_PM_GetInChecked", paras);
  2010. return returnDataSet;
  2011. }
  2012. catch (Exception ex)
  2013. {
  2014. throw ex;
  2015. }
  2016. finally
  2017. {
  2018. if (oracleConn.ConnState == ConnectionState.Open)
  2019. {
  2020. oracleConn.Close();
  2021. }
  2022. }
  2023. }
  2024. /// <summary>
  2025. /// 获取盘点单名细信息
  2026. /// </summary>
  2027. /// <param name="InCheckedID">盘点单号</param>
  2028. /// <returns></returns>
  2029. public static DataSet GetAllInCheckedDetail(int inCheckedID)
  2030. {
  2031. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2032. try
  2033. {
  2034. oracleConn.Open();
  2035. string sql = @"select
  2036. TP_PM_InCheckedDetail.InCheckedID,
  2037. 0 as Sel,
  2038. TP_PM_InCheckedDetail.BarCode,
  2039. TP_PM_InCheckedDetail.InCheckedNo,
  2040. TP_PM_InCheckedDetail.ProductionLineCode,
  2041. TP_PM_InCheckedDetail.ProductionLineName,
  2042. TP_PC_Procedure.ProcedureName,
  2043. decode(TP_PM_InCheckedDetail.ProcedureModel, '1', '计件模型' , '检验模型') as ProcedureModel,
  2044. decode(TP_PM_InCheckedDetail.DefectFlag, '1', '无缺陷' , '有缺陷') as DefectFlag,
  2045. TP_PM_InCheckedDetail.IsPublicBody,
  2046. TP_PM_InCheckedDetail.IsReFire,
  2047. TP_PM_InCheckedDetail.SpecialRepairFlag,
  2048. TP_PM_InCheckedDetail.GoodsCode,
  2049. TP_PM_InCheckedDetail.GoodsName,
  2050. TP_PM_InCheckedDetail.GroutingDate,
  2051. TP_PM_InCheckedDetail.GroutingLineCode,
  2052. TP_PM_InCheckedDetail.GroutingLineName,
  2053. TP_PM_InCheckedDetail.GroutingMouldCode,
  2054. TP_PM_InCheckedDetail.GroutingUserCode,
  2055. TP_PM_InCheckedDetail.GroutingNum,
  2056. TP_PM_InCheckedDetail.KilnCode,
  2057. TP_PM_InCheckedDetail.KilnName,
  2058. TP_PM_InCheckedDetail.KilnCarCode,
  2059. TP_PM_InCheckedDetail.KilnCarName,
  2060. decode(TP_PM_InCheckedDetail.InCheckedFlag, '0', '未盘点' , '1','已盘点','盘盈') as InCheckedFlagName,
  2061. TP_PM_InCheckedDetail.InCheckedFlag,
  2062. TP_PM_InCheckedDetail.CheckedDate,
  2063. Tp_mst_user.usercode CheckedUserCode,
  2064. u.usercode,
  2065. inpu.usercode cusercode,
  2066. TP_PM_InCheckedDetail.ProcedureTime,
  2067. TP_PM_InCheckedDetail.IsReworkFlag,
  2068. TP_PM_InCheckedDetail.InScrapFlag,
  2069. --xuwei add 2021-01-31
  2070. CASE TP_PM_InCheckedDetail.GOODSLEVELTYPEID
  2071. when 1 then '无缺陷'
  2072. when 2 then '有缺陷'
  2073. when 4 then '正品'
  2074. when 5 then '副品'
  2075. when 6 then '重烧'
  2076. when 9 then '干补'
  2077. else ''
  2078. END AS GOODSLEVELTYPE,
  2079. decode(sp.SCRAPPRODUCTID, null, 0, 1) SCRAPPRODUCTID,
  2080. su.usercode susercode,
  2081. spin.CREATETIME sdatetime,
  2082. decode(spin.AUDITSTATUS,1, au.usercode , null) ausercode,
  2083. spin.AUDITDATE adatetime,gt.goodstypename
  2084. --,inpp.procedurename currentprocedurename
  2085. --,inp.proceduretime currentproceduretime" + "\n" +
  2086. " ,case when inp.barcode is not null then to_char(inpp.procedurename) " +
  2087. " when sp.barcode is not null then to_char(glt.goodsleveltypename) " +
  2088. " when fp.barcode is not null then '生产完成' else '' end currentprocedurename -- 当前工序\n" +
  2089. " ,case when inp.barcode is not null then inp.PROCEDURETIME " +
  2090. " when sp.barcode is not null then sp.auditdate " +
  2091. " when fp.barcode is not null then fp.createtime else null end currentproceduretime -- 当前工序时间\n" +
  2092. //2021年12月21日13:18:31 by fy modify 次品、不合格、不合格(返)、损坯 增加一列【报废工序】
  2093. //begin
  2094. " ,case when sp.barcode is not null and sp.goodsleveltypeid in (7,8,13,14) then sp.procedurename else null end scrapprocedurename\n" +
  2095. //end
  2096. @"from TP_PM_InCheckedDetail
  2097. left join tp_mst_goods g on TP_PM_InCheckedDetail.goodsid = g.goodsid
  2098. left join tp_mst_goodstype gt on gt.goodstypeid = g.goodstypeid
  2099. left join TP_PC_Procedure
  2100. on TP_PM_InCheckedDetail.ProcedureID=TP_PC_Procedure.ProcedureID
  2101. left join Tp_mst_user
  2102. on TP_PM_InCheckedDetail.CheckedUserID=Tp_mst_user.userid
  2103. left join Tp_mst_user u
  2104. on TP_PM_InCheckedDetail.UserID=u.userid
  2105. left join TP_PM_SCRAPPRODUCT spin
  2106. -- on spin.barcode = TP_PM_InCheckedDetail.BarCode
  2107. on spin.groutingdailydetailid = TP_PM_InCheckedDetail.groutingdailydetailid
  2108. and spin.GOODSLEVELTYPEID = 8 and spin.AUDITSTATUS in (0,1)
  2109. and spin.valueflag = '1' and spin.RECYCLINGFLAG = '0'
  2110. left join Tp_mst_user su on su.userid = spin.CREATEUSERID
  2111. left join Tp_mst_user au on au.userid = spin.AUDITOR
  2112. LEFT JOIN Tp_Pm_Inproduction inp
  2113. --ON inp.barcode = TP_PM_InCheckedDetail.Barcode
  2114. ON inp.groutingdailydetailid = TP_PM_InCheckedDetail.groutingdailydetailid" +
  2115. // 完成 groutingdailydetailid
  2116. " LEFT JOIN tp_pm_finishedproduct fp \n" +
  2117. //" ON inp.barcode is null and fp.barcode = TP_PM_InCheckedDetail.barcode\n" +
  2118. " ON inp.barcode is null and fp.groutingdailydetailid = TP_PM_InCheckedDetail.groutingdailydetailid\n" +
  2119. // 损坯
  2120. " LEFT JOIN tp_pm_scrapproduct sp \n" +
  2121. //" ON inp.barcode is null and fp.barcode is null and sp.barcode = TP_PM_InCheckedDetail.barcode\n" +
  2122. " ON inp.barcode is null and fp.barcode is null and sp.groutingdailydetailid = TP_PM_InCheckedDetail.groutingdailydetailid\n" +
  2123. " AND sp.valueflag = '1'\n" +
  2124. " AND sp.auditstatus = 1\n" +
  2125. " AND sp.goodsleveltypeid <> 9\n" +
  2126. " AND sp.RECYCLINGFLAG = '0'\n" +
  2127. " LEFT JOIN tp_sys_goodsleveltype glt \n" +
  2128. " ON glt.goodsleveltypeid = sp.goodsleveltypeid\n" +
  2129. @"LEFT JOIN tp_pc_procedure inpp
  2130. ON inpp.procedureid = inp.procedureid
  2131. left join Tp_mst_user inpu
  2132. on inp.UserID=inpu.userid
  2133. where InCheckedID=:InCheckedID and TP_PM_InCheckedDetail.valueflag=1 and TP_PM_InCheckedDetail.InCheckedFlag = :InCheckedFlag
  2134. ";
  2135. OracleParameter[] paras = new OracleParameter[]{
  2136. new OracleParameter(":InCheckedFlag",OracleDbType.Int32,(int)Constant.InCheckedFlag.InCheckedNo,ParameterDirection.Input),
  2137. new OracleParameter(":InCheckedID",OracleDbType.Int32,inCheckedID,ParameterDirection.Input),
  2138. };
  2139. DataSet returnDataSet = oracleConn.GetSqlResultToDs(sql, paras);
  2140. paras[0].Value = (int)Constant.InCheckedFlag.InCheckeded;
  2141. returnDataSet.Tables.Add(oracleConn.GetSqlResultToDt(sql, paras));
  2142. paras[0].Value = (int)Constant.InCheckedFlag.InCheckedWin;
  2143. returnDataSet.Tables.Add(oracleConn.GetSqlResultToDt(sql, paras));
  2144. sql = @"select tp_pm_incheckeduser.InCheckedID,tp_pm_incheckeduser.UserID,tp_pm_incheckeduser.UserCode,
  2145. tp_mst_user.UserName from tp_pm_incheckeduser
  2146. left join tp_mst_user on tp_pm_incheckeduser.userid=tp_mst_user.userid
  2147. where tp_pm_incheckeduser.InCheckedID=:InCheckedID";
  2148. paras = new OracleParameter[]{
  2149. new OracleParameter(":InCheckedID",OracleDbType.Int32,inCheckedID,ParameterDirection.Input),
  2150. };
  2151. DataTable userTable = oracleConn.GetSqlResultToDt(sql, paras);
  2152. userTable.TableName = "UserTable";
  2153. returnDataSet.Tables.Add(userTable);
  2154. return returnDataSet;
  2155. }
  2156. catch (Exception ex)
  2157. {
  2158. throw ex;
  2159. }
  2160. finally
  2161. {
  2162. if (oracleConn.ConnState == ConnectionState.Open)
  2163. {
  2164. oracleConn.Close();
  2165. }
  2166. }
  2167. }
  2168. /// <summary>
  2169. /// 获取盘点单名细信息
  2170. /// </summary>
  2171. /// <param name="InCheckedID">盘点单号</param>
  2172. /// <returns></returns>
  2173. public static DataSet GetGroutingInfoBybarcode(string barcode, SUserInfo sUserInfo)
  2174. {
  2175. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2176. try
  2177. {
  2178. oracleConn.Open();
  2179. // Flowprocedureid 换成 procedureid,干补特殊,会不一样,别的都一样
  2180. string sql = @"select
  2181. gdd.barcode,
  2182. gdd.GoodsCode,
  2183. gdd.UserCode,
  2184. gdd.GroutingDate,
  2185. gdd.GroutingMouldCode,
  2186. logo.logoname -- 商标
  2187. --,g.MaterialCode || logo.TagCode || gdd.OnlyCode OutOnlyCode -- 外包装唯一码
  2188. ,nvl(gdd.outlabelcode, g.MaterialCode || (select a.workcode from tp_mst_account a where a.accountid = gdd.accountid) || logo.TagCode || gdd.OnlyCode) OutOnlyCode
  2189. ,tp_pc_procedure.procedurename
  2190. from TP_PM_GroutingDailyDetail gdd
  2191. INNER JOIN tp_mst_goods g
  2192. ON g.goodsid = gdd.goodsid
  2193. LEFT JOIN tp_mst_logo logo
  2194. ON logo.logoid = gdd.logoid
  2195. left join TP_PM_InProduction
  2196. on gdd.barcode=TP_PM_InProduction.barcode
  2197. left join tp_pc_procedure
  2198. on TP_PM_InProduction.procedureid=tp_pc_procedure.procedureid
  2199. where gdd.barcode=FUN_CMN_GetBarCode(:barcode,null,:accountid) and gdd.valueflag=1 and gdd.scrapflag=0
  2200. ";
  2201. OracleParameter[] paras = new OracleParameter[]{
  2202. new OracleParameter(":barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
  2203. new OracleParameter(":accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  2204. };
  2205. DataSet returnDataSet = oracleConn.GetSqlResultToDs(sql, paras);
  2206. return returnDataSet;
  2207. }
  2208. catch (Exception ex)
  2209. {
  2210. throw ex;
  2211. }
  2212. finally
  2213. {
  2214. if (oracleConn.ConnState == ConnectionState.Open)
  2215. {
  2216. oracleConn.Close();
  2217. }
  2218. }
  2219. }
  2220. /// <summary>
  2221. /// 获取盘点单名细信息
  2222. /// </summary>
  2223. /// <param name="InCheckedID">盘点单号</param>
  2224. /// <returns></returns>
  2225. public static DataSet GetFinishedProductGroutingInfoBybarcode(string barcode, SUserInfo sUserInfo)
  2226. {
  2227. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2228. try
  2229. {
  2230. oracleConn.Open();
  2231. string sql = @"select
  2232. gdd.barcode,
  2233. gdd.GoodsCode,
  2234. gdd.UserCode,
  2235. gdd.GroutingDate,
  2236. gdd.GroutingMouldCode,
  2237. logo.logoname -- 商标
  2238. --,g.MaterialCode || logo.TagCode || gdd.OnlyCode OutOnlyCode -- 外包装唯一码
  2239. ,nvl(gdd.outlabelcode, g.MaterialCode || (select a.workcode from tp_mst_account a where a.accountid = gdd.accountid) || logo.TagCode || gdd.OnlyCode) OutOnlyCode
  2240. ,tp_pc_procedure.procedurename
  2241. from TP_PM_GroutingDailyDetail gdd
  2242. INNER JOIN tp_mst_goods g
  2243. ON g.goodsid = gdd.goodsid
  2244. LEFT JOIN tp_mst_logo logo
  2245. ON logo.logoid = gdd.logoid
  2246. left join TP_PM_InProduction
  2247. on gdd.barcode=TP_PM_InProduction.barcode
  2248. left join tp_pc_procedure
  2249. on TP_PM_InProduction.Flowprocedureid=tp_pc_procedure.procedureid
  2250. where gdd.barcode=FUN_CMN_GetBarCode(:barcode,null,:accountid) and gdd.valueflag=1 and gdd.scrapflag=0
  2251. ";
  2252. OracleParameter[] paras = new OracleParameter[]{
  2253. new OracleParameter(":barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
  2254. new OracleParameter(":accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  2255. };
  2256. DataSet returnDataSet = oracleConn.GetSqlResultToDs(sql, paras);
  2257. return returnDataSet;
  2258. }
  2259. catch (Exception ex)
  2260. {
  2261. throw ex;
  2262. }
  2263. finally
  2264. {
  2265. if (oracleConn.ConnState == ConnectionState.Open)
  2266. {
  2267. oracleConn.Close();
  2268. }
  2269. }
  2270. }
  2271. #region 清除在产残留数据
  2272. /// <summary>
  2273. /// 取得PM2108画面(在产品明细表)的查询数据
  2274. /// </summary>
  2275. /// <param name="user">登录用户信息</param>
  2276. /// <param name="se">查询条件</param>
  2277. /// <returns>查询结果</returns>
  2278. public static ServiceResultEntity GetPM2108Data(SUserInfo user, RPT010401_SE se)
  2279. {
  2280. IDBConnection conn = null;
  2281. try
  2282. {
  2283. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2284. List<OracleParameter> parameters = new List<OracleParameter>();
  2285. StringBuilder sql = new StringBuilder(PMModuleLogic.GetRPT010401SSQL());
  2286. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  2287. sql.Append(" and TP_PM_InProduction.modeltype not in (1,2,3) ");
  2288. if (se != null)
  2289. {
  2290. //生产线IDS
  2291. if (!string.IsNullOrEmpty(se.ProductionLineIDS))
  2292. {
  2293. sql.Append(" AND instr(','||:ProductionLineIDS||',',','||TP_PM_InProduction.ProductionLineID||',')>0 ");
  2294. parameters.Add(new OracleParameter(":ProductionLineIDS", OracleDbType.NVarchar2, se.ProductionLineIDS, ParameterDirection.Input));
  2295. }
  2296. //完成工序IDS
  2297. if (!string.IsNullOrEmpty(se.ProcedureIDS))
  2298. {
  2299. sql.Append(" AND instr(','||:ProcedureIDS||',',','||TP_PM_InProduction.ProcedureID||',')>0 ");
  2300. parameters.Add(new OracleParameter(":ProcedureIDS", OracleDbType.NVarchar2, se.ProcedureIDS, ParameterDirection.Input));
  2301. }
  2302. // 生产时间--开始
  2303. if (se.UpdateTimeStart.HasValue)
  2304. {
  2305. sql.Append(" AND TP_PM_InProduction.Proceduretime >= :UpdateTimeStart ");
  2306. parameters.Add(new OracleParameter(":UpdateTimeStart", OracleDbType.Date, se.UpdateTimeStart.Value, ParameterDirection.Input));
  2307. }
  2308. // 生产时间--结束
  2309. if (se.UpdateTimeEnd.HasValue)
  2310. {
  2311. sql.Append(" AND TP_PM_InProduction.Proceduretime <= :UpdateTimeEnd ");
  2312. parameters.Add(new OracleParameter(":UpdateTimeEnd", OracleDbType.Date, se.UpdateTimeEnd.Value, ParameterDirection.Input));
  2313. }
  2314. //产品条码
  2315. if (!string.IsNullOrEmpty(se.Barcode))
  2316. {
  2317. sql.Append(" AND instr(TP_PM_InProduction.barcode,:barcode)>0 ");
  2318. parameters.Add(new OracleParameter(":barcode", OracleDbType.NVarchar2, se.Barcode, ParameterDirection.Input));
  2319. }
  2320. //产品编码
  2321. if (!string.IsNullOrEmpty(se.GoodsCode))
  2322. {
  2323. sql.Append(" AND instr(TP_PM_InProduction.GoodsCode,:goodsCode)>0 ");
  2324. parameters.Add(new OracleParameter(":goodsCode", OracleDbType.NVarchar2, se.GoodsCode, ParameterDirection.Input));
  2325. }
  2326. sql.Append(" AND TP_PM_InProduction.inscrapflag=0 ");
  2327. }
  2328. sql.Append(" order by TP_PM_InProduction.UpdateTime desc");
  2329. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  2330. ServiceResultEntity sre = new ServiceResultEntity();
  2331. if (data == null || data.Rows.Count == 0)
  2332. {
  2333. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  2334. return sre;
  2335. }
  2336. sre.Data = new DataSet();
  2337. sre.Data.Tables.Add(data);
  2338. return sre;
  2339. }
  2340. catch (Exception ex)
  2341. {
  2342. throw ex;
  2343. }
  2344. finally
  2345. {
  2346. if (conn != null &&
  2347. conn.ConnState == ConnectionState.Open)
  2348. {
  2349. conn.Close();
  2350. }
  2351. }
  2352. }
  2353. /// <summary>
  2354. /// 获取RPT010401画面(在产品明细表)的查询sql
  2355. /// </summary>
  2356. /// <returns>sql</returns>
  2357. private static string GetRPT010401SSQL()
  2358. {
  2359. string selSql =
  2360. "SELECT 0 as Sel," +
  2361. " TP_PM_InProduction.BarCode, " +
  2362. " TP_PM_InProduction.GoodsID,TP_PM_InProduction.GoodsCode, " +
  2363. " TP_PM_InProduction.GoodsName, " +
  2364. " TP_PM_InProduction.Userid,A.USERNAME as UserName,A.USERCode as UserCode, " +
  2365. " TP_PM_InProduction.ProductionLineID, " +
  2366. " TP_PM_InProduction.ProductionLineCode, " +
  2367. " TP_PM_InProduction.ProductionLineName, " +
  2368. " TP_PM_InProduction.ModelType, " +
  2369. " decode(TP_PM_InProduction.inscrapflag , '1', '待审核的报废品' , '正常') as inscrapflag, " +
  2370. //" decode(TP_PM_InProduction.IsPublicBody, '1', '是' , '否') as IsPublicBody, " +
  2371. //" decode(TP_PM_InProduction.IsReFire, '1', '是' , '否') as IsReFire, " +
  2372. " TP_PM_InProduction.IsPublicBody, " +
  2373. " TP_PM_InProduction.IsReFire, " +
  2374. " decode(TP_PM_InProduction.CanManyTimes, '1', '能' , '不能') as CanManyTimes, " +
  2375. " decode(TP_PM_InProduction.ProcedureModel, '1', '计件模型' , '检验模型') as ProcedureModel, " +
  2376. " TP_PM_InProduction.GroutingDailyID, " +
  2377. " TP_PM_InProduction.GroutingDailyDetailID, " +
  2378. " TP_PM_InProduction.GroutingDate, " +
  2379. " TP_PM_InProduction.GroutingLineID, " +
  2380. " TP_PM_InProduction.GroutingLineCode, " +
  2381. " TP_PM_InProduction.GroutingLineName, " +
  2382. " TP_PM_InProduction.ProcedureID CompleteProcedureID, " +
  2383. " D.ProcedureName as CompleteProcedureName, " +
  2384. " TP_PM_InProduction.GMouldTypeID, " +
  2385. " TP_MST_GMouldType.GMOULDTYPENAME as GMouldTypeName, " +
  2386. " TP_PM_InProduction.GroutingLineDetailID, " +
  2387. " TP_PM_InProduction.GroutingMouldCode, " +
  2388. " TP_PM_InProduction.SPECIALREPAIRFLAG, " +
  2389. " TP_PM_InProduction.GROUTINGUSERCODE, " +
  2390. " TP_PM_GroutingDailyDetail.GROUTINGCOUNT, " +
  2391. " TP_PM_InProduction.Remarks, " +
  2392. " TP_PM_InProduction.GoodsLevelID,TP_MST_GoodsLevel.GOODSLEVELNAME, " +
  2393. " TP_PM_InProduction.GoodsLevelTypeID,TP_SYS_GoodsLevelType.GOODSLEVELTYPENAME, " +
  2394. " TP_PM_InProduction.AccountID,TP_PM_InProduction.ValueFlag, " +
  2395. " TP_PM_InProduction.CreateTime,TP_PM_InProduction.CreateUserID,B.USERNAME as CreateUserName, " +
  2396. " TP_PM_InProduction.PROCEDURETIME AS UpdateTime,TP_PM_InProduction.UpdateUserID,C.USERNAME as UpdateUserName, " +
  2397. " TP_PM_InProduction.IsReworkFlag " +
  2398. "FROM TP_PM_InProduction " +
  2399. " inner join TP_MST_User A on A.UserID=TP_PM_InProduction.Userid " +
  2400. " inner join TP_MST_User B on B.UserID=TP_PM_InProduction.CreateUserID " +
  2401. " inner join TP_MST_User C on C.UserID=TP_PM_InProduction.UpdateUserID " +
  2402. " inner join TP_PC_Procedure D on D.PROCEDUREID=TP_PM_InProduction.ProcedureID " +
  2403. " inner join TP_MST_GMouldType on TP_MST_GMouldType.GMouldTypeID=TP_PM_InProduction.GMouldTypeID " +
  2404. " inner join TP_SYS_ProcedureModelType on TP_SYS_ProcedureModelType.ProcedureModelTypeID=TP_PM_InProduction.ModelType " +
  2405. " inner join TP_PM_GroutingDaily on TP_PM_GroutingDaily.GroutingDailyID=TP_PM_InProduction.GroutingDailyID " +
  2406. " inner join TP_PM_GroutingDailyDetail on TP_PM_GroutingDailyDetail.Groutingdailydetailid=TP_PM_InProduction.GroutingDailyDetailID " +
  2407. " inner join TP_PC_GroutingLineDetail on TP_PC_GroutingLineDetail.Groutinglinedetailid=TP_PM_InProduction.GroutingLineDetailID " +
  2408. " inner join TP_MST_Account on TP_MST_Account.Accountid=TP_PM_InProduction.Accountid " +
  2409. " left join TP_MST_GoodsLevel on TP_MST_GoodsLevel.GoodsLevelID=TP_PM_InProduction.GoodsLevelID " +
  2410. " left join TP_SYS_GoodsLevelType on TP_SYS_GoodsLevelType.GoodsLevelTypeID=TP_PM_InProduction.GoodsLevelTypeID " +
  2411. " Where 1=1 and TP_PM_InProduction.ValueFlag = 1 " +
  2412. " and TP_PM_InProduction.AccountID=:AccountID ";
  2413. return selSql;
  2414. }
  2415. #endregion
  2416. #region 清除在产回收站数据
  2417. public static ServiceResultEntity GetPM2110Data(SUserInfo user, FPM2110_SE se)
  2418. {
  2419. IDBConnection conn = null;
  2420. try
  2421. {
  2422. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2423. List<OracleParameter> parameters = new List<OracleParameter>();
  2424. StringBuilder sql = new StringBuilder(PMModuleLogic.GetPM2110SQL());
  2425. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  2426. if (se != null)
  2427. {
  2428. //生产线IDS
  2429. if (!string.IsNullOrEmpty(se.ProductionLineIDS))
  2430. {
  2431. sql.Append(" AND instr(','||:ProductionLineIDS||',',','||Tp_Pm_Inproductiontrash.ProductionLineID||',')>0 ");
  2432. parameters.Add(new OracleParameter(":ProductionLineIDS", OracleDbType.NVarchar2, se.ProductionLineIDS, ParameterDirection.Input));
  2433. }
  2434. //完成工序IDS
  2435. if (!string.IsNullOrEmpty(se.ProcedureIDS))
  2436. {
  2437. sql.Append(" AND instr(','||:ProcedureIDS||',',','||Tp_Pm_Inproductiontrash.ProcedureID||',')>0 ");
  2438. parameters.Add(new OracleParameter(":ProcedureIDS", OracleDbType.NVarchar2, se.ProcedureIDS, ParameterDirection.Input));
  2439. }
  2440. // 生产时间--开始
  2441. if (se.UpdateTimeStart.HasValue)
  2442. {
  2443. sql.Append(" AND Tp_Pm_Inproductiontrash.Proceduretime >= :UpdateTimeStart ");
  2444. parameters.Add(new OracleParameter(":UpdateTimeStart", OracleDbType.Date, se.UpdateTimeStart.Value, ParameterDirection.Input));
  2445. }
  2446. // 生产时间--结束
  2447. if (se.UpdateTimeEnd.HasValue)
  2448. {
  2449. sql.Append(" AND Tp_Pm_Inproductiontrash.Proceduretime <= :UpdateTimeEnd ");
  2450. parameters.Add(new OracleParameter(":UpdateTimeEnd", OracleDbType.Date, se.UpdateTimeEnd.Value, ParameterDirection.Input));
  2451. }
  2452. //报废日期开始
  2453. if (se.ScrapDataStart.HasValue)
  2454. {
  2455. sql.Append(" AND TP_PM_SCRAPPRODUCT.SCRAPDATE >= trunc(:ScrapDateStart) ");
  2456. parameters.Add(new OracleParameter(":ScrapDateStart", OracleDbType.Date, se.ScrapDataStart.Value, ParameterDirection.Input));
  2457. }
  2458. //报废日期结束
  2459. if (se.ScrapDataEnd.HasValue)
  2460. {
  2461. sql.Append(" AND TP_PM_SCRAPPRODUCT.SCRAPDATE <= trunc(:ScrapDateEnd)");
  2462. parameters.Add(new OracleParameter(":ScrapDateEnd", OracleDbType.Date, se.ScrapDataEnd.Value, ParameterDirection.Input));
  2463. }
  2464. //产品条码
  2465. if (!string.IsNullOrEmpty(se.Barcode))
  2466. {
  2467. sql.Append(" AND instr(Tp_Pm_Inproductiontrash.barcode,:barcode)>0 ");
  2468. parameters.Add(new OracleParameter(":barcode", OracleDbType.NVarchar2, se.Barcode, ParameterDirection.Input));
  2469. }
  2470. // 产品分级
  2471. sql.Append(" AND TP_PM_SCRAPPRODUCT.GOODSLEVELTYPEID = :GooddLevelTypeID ");
  2472. parameters.Add(new OracleParameter(":GooddLevelTypeID", OracleDbType.Int32, se.GooddLevelTypeID, ParameterDirection.Input));
  2473. }
  2474. sql.Append(" order by Tp_Pm_Inproductiontrash.UpdateTime desc");
  2475. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  2476. ServiceResultEntity sre = new ServiceResultEntity();
  2477. if (data == null || data.Rows.Count == 0)
  2478. {
  2479. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  2480. return sre;
  2481. }
  2482. sre.Data = new DataSet();
  2483. sre.Data.Tables.Add(data);
  2484. return sre;
  2485. }
  2486. catch (Exception ex)
  2487. {
  2488. throw ex;
  2489. }
  2490. finally
  2491. {
  2492. if (conn != null &&
  2493. conn.ConnState == ConnectionState.Open)
  2494. {
  2495. conn.Close();
  2496. }
  2497. }
  2498. }
  2499. /// <summary>
  2500. /// 获取RPT010401画面(在产品明细表)的查询sql
  2501. /// </summary>
  2502. /// <returns>sql</returns>
  2503. private static string GetPM2110SQL()
  2504. {
  2505. string selSql =
  2506. @"SELECT 0 as Sel,
  2507. Tp_Pm_Inproductiontrash.BarCode,
  2508. Tp_Pm_Inproductiontrash.GoodsID,
  2509. Tp_Pm_Inproductiontrash.GoodsCode,
  2510. Tp_Pm_Inproductiontrash.GoodsName,
  2511. Tp_Pm_Inproductiontrash.Userid,
  2512. A.USERNAME as UserName,
  2513. A.USERCode as UserCode,
  2514. Tp_Pm_Inproductiontrash.ProductionLineID,
  2515. Tp_Pm_Inproductiontrash.ProductionLineCode,
  2516. Tp_Pm_Inproductiontrash.ProductionLineName,
  2517. Tp_Pm_Inproductiontrash.ModelType,
  2518. --decode(Tp_Pm_Inproductiontrash.IsPublicBody, '1', '是', '否') as IsPublicBody,
  2519. --decode(Tp_Pm_Inproductiontrash.IsReFire, '1', '是', '否') as IsReFire,
  2520. Tp_Pm_Inproductiontrash.IsPublicBody,
  2521. Tp_Pm_Inproductiontrash.IsReFire,
  2522. decode(Tp_Pm_Inproductiontrash.CanManyTimes, '1', '能', '不能') as CanManyTimes,
  2523. decode(Tp_Pm_Inproductiontrash.ProcedureModel,
  2524. '1',
  2525. '计件模型',
  2526. '检验模型') as ProcedureModel,
  2527. Tp_Pm_Inproductiontrash.GroutingDailyID,
  2528. Tp_Pm_Inproductiontrash.GroutingDailyDetailID,
  2529. Tp_Pm_Inproductiontrash.GroutingDate,
  2530. Tp_Pm_Inproductiontrash.GroutingLineID,
  2531. Tp_Pm_Inproductiontrash.GroutingLineCode,
  2532. Tp_Pm_Inproductiontrash.GroutingLineName,
  2533. Tp_Pm_Inproductiontrash.ProcedureID CompleteProcedureID,
  2534. D.ProcedureName as CompleteProcedureName,
  2535. Tp_Pm_Inproductiontrash.GMouldTypeID,
  2536. TP_MST_GMouldType.GMOULDTYPENAME as GMouldTypeName,
  2537. Tp_Pm_Inproductiontrash.GroutingLineDetailID,
  2538. Tp_Pm_Inproductiontrash.GroutingMouldCode,
  2539. Tp_Pm_Inproductiontrash.SPECIALREPAIRFLAG,
  2540. Tp_Pm_Inproductiontrash.GROUTINGUSERCODE,
  2541. TP_PM_GroutingDailyDetail.GROUTINGCOUNT,
  2542. Tp_Pm_Inproductiontrash.Remarks,
  2543. Tp_Pm_Inproductiontrash.GoodsLevelID,
  2544. TP_MST_GoodsLevel.GOODSLEVELNAME,
  2545. Tp_Pm_Inproductiontrash.GoodsLevelTypeID,
  2546. TP_SYS_GoodsLevelType.GOODSLEVELTYPENAME,
  2547. Tp_Pm_Inproductiontrash.AccountID,
  2548. Tp_Pm_Inproductiontrash.ValueFlag,
  2549. Tp_Pm_Inproductiontrash.CreateTime,
  2550. Tp_Pm_Inproductiontrash.CreateUserID,
  2551. B.USERNAME as CreateUserName,
  2552. Tp_Pm_Inproductiontrash.PROCEDURETIME AS UpdateTime,
  2553. Tp_Pm_Inproductiontrash.UpdateUserID,
  2554. C.USERNAME as UpdateUserName
  2555. FROM Tp_Pm_Inproductiontrash
  2556. inner join TP_MST_User A on A.UserID = Tp_Pm_Inproductiontrash.Userid
  2557. inner join TP_MST_User B on B.UserID = Tp_Pm_Inproductiontrash.CreateUserID
  2558. inner join TP_MST_User C on C.UserID = Tp_Pm_Inproductiontrash.UpdateUserID
  2559. inner join TP_PC_Procedure D on D.PROCEDUREID =
  2560. Tp_Pm_Inproductiontrash.ProcedureID
  2561. inner join TP_MST_GMouldType on TP_MST_GMouldType.GMouldTypeID =
  2562. Tp_Pm_Inproductiontrash.GMouldTypeID
  2563. inner join TP_PM_GroutingDaily on TP_PM_GroutingDaily.GroutingDailyID =
  2564. Tp_Pm_Inproductiontrash.GroutingDailyID
  2565. inner join TP_PM_GroutingDailyDetail on TP_PM_GroutingDailyDetail.Groutingdailydetailid =
  2566. Tp_Pm_Inproductiontrash.GroutingDailyDetailID
  2567. inner join TP_PC_GroutingLineDetail on TP_PC_GroutingLineDetail.Groutinglinedetailid =
  2568. Tp_Pm_Inproductiontrash.GroutingLineDetailID
  2569. inner join TP_MST_Account on TP_MST_Account.Accountid =
  2570. Tp_Pm_Inproductiontrash.Accountid
  2571. left join TP_PM_SCRAPPRODUCT on TP_PM_SCRAPPRODUCT.barcode=Tp_Pm_Inproductiontrash.barcode
  2572. left join TP_MST_GoodsLevel on TP_MST_GoodsLevel.GoodsLevelID =
  2573. TP_PM_SCRAPPRODUCT.GoodsLevelID
  2574. left join TP_SYS_GoodsLevelType on TP_SYS_GoodsLevelType.GoodsLevelTypeID =
  2575. TP_PM_SCRAPPRODUCT.GoodsLevelTypeID
  2576. Where 1 = 1
  2577. and Tp_Pm_Inproductiontrash.ValueFlag = 1
  2578. and Tp_Pm_Inproductiontrash.AccountID = :AccountID";
  2579. return selSql;
  2580. }
  2581. #endregion
  2582. #region 清除在产临时表数据
  2583. public static ServiceResultEntity GetPM2112Data(SUserInfo user, FPM2112_SE se)
  2584. {
  2585. IDBConnection conn = null;
  2586. try
  2587. {
  2588. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2589. List<OracleParameter> parameters = new List<OracleParameter>();
  2590. StringBuilder sql = new StringBuilder(PMModuleLogic.GetPM2112SQL());
  2591. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  2592. if (se != null)
  2593. {
  2594. //生产线IDS
  2595. if (!string.IsNullOrEmpty(se.ProductionLineIDS))
  2596. {
  2597. sql.Append(" AND instr(','||:ProductionLineIDS||',',','||Tp_Pm_Inproduction_Tmp.ProductionLineID||',')>0 ");
  2598. parameters.Add(new OracleParameter(":ProductionLineIDS", OracleDbType.NVarchar2, se.ProductionLineIDS, ParameterDirection.Input));
  2599. }
  2600. //完成工序IDS
  2601. if (!string.IsNullOrEmpty(se.ProcedureIDS))
  2602. {
  2603. sql.Append(" AND instr(','||:ProcedureIDS||',',','||Tp_Pm_Inproduction_Tmp.ProcedureID||',')>0 ");
  2604. parameters.Add(new OracleParameter(":ProcedureIDS", OracleDbType.NVarchar2, se.ProcedureIDS, ParameterDirection.Input));
  2605. }
  2606. // 生产时间--开始
  2607. if (se.UpdateTimeStart.HasValue)
  2608. {
  2609. sql.Append(" AND Tp_Pm_Inproduction_Tmp.Proceduretime >= :UpdateTimeStart ");
  2610. parameters.Add(new OracleParameter(":UpdateTimeStart", OracleDbType.Date, se.UpdateTimeStart.Value, ParameterDirection.Input));
  2611. }
  2612. // 生产时间--结束
  2613. if (se.UpdateTimeEnd.HasValue)
  2614. {
  2615. sql.Append(" AND Tp_Pm_Inproduction_Tmp.Proceduretime <= :UpdateTimeEnd ");
  2616. parameters.Add(new OracleParameter(":UpdateTimeEnd", OracleDbType.Date, se.UpdateTimeEnd.Value, ParameterDirection.Input));
  2617. }
  2618. //产品条码
  2619. if (!string.IsNullOrEmpty(se.Barcode))
  2620. {
  2621. sql.Append(" AND instr(Tp_Pm_Inproduction_Tmp.barcode,:barcode)>0 ");
  2622. parameters.Add(new OracleParameter(":barcode", OracleDbType.NVarchar2, se.Barcode, ParameterDirection.Input));
  2623. }
  2624. if (se.TrashFlag == 1)
  2625. {
  2626. //报废日期开始
  2627. if (se.ScrapDataStart.HasValue)
  2628. {
  2629. sql.Append(" AND TP_PM_SCRAPPRODUCT.SCRAPDATE >= trunc(:ScrapDateStart) ");
  2630. parameters.Add(new OracleParameter(":ScrapDateStart", OracleDbType.Date, se.ScrapDataStart.Value, ParameterDirection.Input));
  2631. }
  2632. //报废日期结束
  2633. if (se.ScrapDataEnd.HasValue)
  2634. {
  2635. sql.Append(" AND TP_PM_SCRAPPRODUCT.SCRAPDATE <= trunc(:ScrapDateEnd)");
  2636. parameters.Add(new OracleParameter(":ScrapDateEnd", OracleDbType.Date, se.ScrapDataEnd.Value, ParameterDirection.Input));
  2637. }
  2638. }
  2639. // 清除时间
  2640. if (se.DeletedTimeStart.HasValue)
  2641. {
  2642. sql.Append(" AND Tp_Pm_Inproduction_Tmp.deletedtime >= :deletedtime ");
  2643. parameters.Add(new OracleParameter(":deletedtime", OracleDbType.Date, se.DeletedTimeStart.Value, ParameterDirection.Input));
  2644. }
  2645. // 清除时间--结束
  2646. if (se.DeletedTimeEnd.HasValue)
  2647. {
  2648. sql.Append(" AND Tp_Pm_Inproduction_Tmp.deletedtime <= :deletedtimeEnd ");
  2649. parameters.Add(new OracleParameter(":deletedtimeEnd", OracleDbType.Date, se.DeletedTimeEnd.Value, ParameterDirection.Input));
  2650. }
  2651. if (se.GooddLevelTypeID != -100)
  2652. {
  2653. // 产品分级
  2654. sql.Append(" AND TP_PM_SCRAPPRODUCT.GOODSLEVELTYPEID = :GooddLevelTypeID ");
  2655. parameters.Add(new OracleParameter(":GooddLevelTypeID", OracleDbType.Int32, se.GooddLevelTypeID, ParameterDirection.Input));
  2656. }
  2657. else
  2658. {
  2659. // 产品分级
  2660. //// sql.Append(" AND TP_PM_SCRAPPRODUCT.GOODSLEVELTYPEID is null ");
  2661. }
  2662. //数据来源
  2663. sql.Append(" AND Tp_Pm_Inproduction_Tmp.TrashFlag = :TrashFlag ");
  2664. parameters.Add(new OracleParameter(":TrashFlag", OracleDbType.Int32, se.TrashFlag, ParameterDirection.Input));
  2665. }
  2666. sql.Append(" order by Tp_Pm_Inproduction_Tmp.UpdateTime desc");
  2667. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  2668. ServiceResultEntity sre = new ServiceResultEntity();
  2669. if (data == null || data.Rows.Count == 0)
  2670. {
  2671. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  2672. return sre;
  2673. }
  2674. sre.Data = new DataSet();
  2675. sre.Data.Tables.Add(data);
  2676. return sre;
  2677. }
  2678. catch (Exception ex)
  2679. {
  2680. throw ex;
  2681. }
  2682. finally
  2683. {
  2684. if (conn != null &&
  2685. conn.ConnState == ConnectionState.Open)
  2686. {
  2687. conn.Close();
  2688. }
  2689. }
  2690. }
  2691. /// <summary>
  2692. /// 获取RPT010401画面(在产品明细表)的查询sql
  2693. /// </summary>
  2694. /// <returns>sql</returns>
  2695. private static string GetPM2112SQL()
  2696. {
  2697. string selSql =
  2698. @"SELECT 0 as Sel,
  2699. TP_PM_SCRAPPRODUCT.SCRAPDATE,
  2700. Tp_Pm_Inproduction_Tmp.BarCode,
  2701. Tp_Pm_Inproduction_Tmp.GoodsID,
  2702. Tp_Pm_Inproduction_Tmp.GoodsCode,
  2703. Tp_Pm_Inproduction_Tmp.GoodsName,
  2704. Tp_Pm_Inproduction_Tmp.Userid,
  2705. A.USERNAME as UserName,
  2706. A.USERCode as UserCode,
  2707. Tp_Pm_Inproduction_Tmp.ProductionLineID,
  2708. Tp_Pm_Inproduction_Tmp.ProductionLineCode,
  2709. Tp_Pm_Inproduction_Tmp.ProductionLineName,
  2710. Tp_Pm_Inproduction_Tmp.ModelType,
  2711. --decode(Tp_Pm_Inproduction_Tmp.IsPublicBody, '1', '是', '否') as IsPublicBody,
  2712. --decode(Tp_Pm_Inproduction_Tmp.IsReFire, '1', '是', '否') as IsReFire,
  2713. Tp_Pm_Inproduction_Tmp.IsPublicBody,
  2714. Tp_Pm_Inproduction_Tmp.IsReFire,
  2715. decode(Tp_Pm_Inproduction_Tmp.CanManyTimes, '1', '能', '不能') as CanManyTimes,
  2716. decode(Tp_Pm_Inproduction_Tmp.ProcedureModel,
  2717. '1',
  2718. '计件模型',
  2719. '检验模型') as ProcedureModel,
  2720. Tp_Pm_Inproduction_Tmp.GroutingDailyID,
  2721. Tp_Pm_Inproduction_Tmp.GroutingDailyDetailID,
  2722. Tp_Pm_Inproduction_Tmp.GroutingDate,
  2723. Tp_Pm_Inproduction_Tmp.GroutingLineID,
  2724. Tp_Pm_Inproduction_Tmp.GroutingLineCode,
  2725. Tp_Pm_Inproduction_Tmp.GroutingLineName,
  2726. Tp_Pm_Inproduction_Tmp.ProcedureID CompleteProcedureID,
  2727. D.ProcedureName as CompleteProcedureName,
  2728. Tp_Pm_Inproduction_Tmp.GMouldTypeID,
  2729. TP_MST_GMouldType.GMOULDTYPENAME as GMouldTypeName,
  2730. Tp_Pm_Inproduction_Tmp.GroutingLineDetailID,
  2731. Tp_Pm_Inproduction_Tmp.GroutingMouldCode,
  2732. Tp_Pm_Inproduction_Tmp.SPECIALREPAIRFLAG,
  2733. Tp_Pm_Inproduction_Tmp.GROUTINGUSERCODE,
  2734. TP_PM_GroutingDailyDetail.GROUTINGCOUNT,
  2735. Tp_Pm_Inproduction_Tmp.Remarks,
  2736. Tp_Pm_Inproduction_Tmp.GoodsLevelID,
  2737. TP_MST_GoodsLevel.GOODSLEVELNAME,
  2738. Tp_Pm_Inproduction_Tmp.GoodsLevelTypeID,
  2739. TP_SYS_GoodsLevelType.GOODSLEVELTYPENAME,
  2740. Tp_Pm_Inproduction_Tmp.AccountID,
  2741. Tp_Pm_Inproduction_Tmp.ValueFlag,
  2742. Tp_Pm_Inproduction_Tmp.CreateTime,
  2743. Tp_Pm_Inproduction_Tmp.CreateUserID,
  2744. B.USERNAME as CreateUserName,
  2745. Tp_Pm_Inproduction_Tmp.PROCEDURETIME AS UpdateTime,
  2746. Tp_Pm_Inproduction_Tmp.UpdateUserID,
  2747. C.USERNAME as UpdateUserName
  2748. FROM Tp_Pm_Inproduction_Tmp
  2749. inner join TP_MST_User A on A.UserID = Tp_Pm_Inproduction_Tmp.Userid
  2750. inner join TP_MST_User B on B.UserID = Tp_Pm_Inproduction_Tmp.CreateUserID
  2751. inner join TP_MST_User C on C.UserID = Tp_Pm_Inproduction_Tmp.UpdateUserID
  2752. inner join TP_PC_Procedure D on D.PROCEDUREID =
  2753. Tp_Pm_Inproduction_Tmp.ProcedureID
  2754. inner join TP_MST_GMouldType on TP_MST_GMouldType.GMouldTypeID =
  2755. Tp_Pm_Inproduction_Tmp.GMouldTypeID
  2756. inner join TP_PM_GroutingDaily on TP_PM_GroutingDaily.GroutingDailyID =
  2757. Tp_Pm_Inproduction_Tmp.GroutingDailyID
  2758. inner join TP_PM_GroutingDailyDetail on TP_PM_GroutingDailyDetail.Groutingdailydetailid =
  2759. Tp_Pm_Inproduction_Tmp.GroutingDailyDetailID
  2760. inner join TP_PC_GroutingLineDetail on TP_PC_GroutingLineDetail.Groutinglinedetailid =
  2761. Tp_Pm_Inproduction_Tmp.GroutingLineDetailID
  2762. inner join TP_MST_Account on TP_MST_Account.Accountid =
  2763. Tp_Pm_Inproduction_Tmp.Accountid
  2764. left join TP_MST_GoodsLevel on TP_MST_GoodsLevel.GoodsLevelID =
  2765. Tp_Pm_Inproduction_Tmp.GoodsLevelID
  2766. left join TP_SYS_GoodsLevelType on TP_SYS_GoodsLevelType.GoodsLevelTypeID =
  2767. Tp_Pm_Inproduction_Tmp.GoodsLevelTypeID
  2768. left join TP_PM_SCRAPPRODUCT on TP_PM_SCRAPPRODUCT.barcode=Tp_Pm_Inproduction_Tmp.barcode and TP_PM_SCRAPPRODUCT.AUDITSTATUS=1 and TP_PM_SCRAPPRODUCT.RECYCLINGFLAG='0' and TP_PM_SCRAPPRODUCT.GOODSLEVELTYPEID=8
  2769. Where Tp_Pm_Inproduction_Tmp.AccountID = :AccountID";
  2770. return selSql; //and Tp_Pm_Inproduction_Tmp.ValueFlag = 1
  2771. }
  2772. #endregion
  2773. /// <summary>
  2774. /// 工序是否有商标ID
  2775. /// <param name="ProcedureID">工序ID</param>
  2776. /// </summary>
  2777. /// <returns>int</returns>
  2778. public static int GetLogoID(int ProcedureID, SUserInfo sUserInfo)
  2779. {
  2780. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2781. try
  2782. {
  2783. con.Open();
  2784. string sqlString = @"select LogoID from tp_pc_procedure where accountid=:accountid and ProcedureID=:ProcedureID";
  2785. OracleParameter[] paras = new OracleParameter[]{
  2786. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  2787. new OracleParameter(":ProcedureID",OracleDbType.Int32, ProcedureID,ParameterDirection.Input),
  2788. };
  2789. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  2790. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2791. {
  2792. if (ds.Tables[0].Rows[0]["LogoID"] == DBNull.Value)
  2793. {
  2794. return 0;
  2795. }
  2796. else
  2797. {
  2798. return Convert.ToInt32(ds.Tables[0].Rows[0]["LogoID"]);
  2799. }
  2800. }
  2801. return 0;
  2802. }
  2803. catch (Exception ex)
  2804. {
  2805. throw ex;
  2806. }
  2807. finally
  2808. {
  2809. if (con.ConnState == ConnectionState.Open)
  2810. {
  2811. con.Close();
  2812. }
  2813. }
  2814. }
  2815. /// <summary>
  2816. /// 获取条码商标
  2817. /// <param name="barcode">产品条码</param>
  2818. /// </summary>
  2819. /// <returns>int</returns>
  2820. public static DataSet GetBarCodeLogoID(string barcode, SUserInfo sUserInfo)
  2821. {
  2822. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2823. try
  2824. {
  2825. con.Open();
  2826. //// 转换条码
  2827. //string sqlString = @"select FUN_CMN_GetBarCode(:barcode,null,:accountid) From DUAL";
  2828. //OracleParameter[] paras1 = new OracleParameter[]{
  2829. // new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  2830. // new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  2831. // };
  2832. //barcode = con.GetSqlResultToStr(sqlString, paras1);
  2833. //sqlString = @"select g.LogoID,l.logocode,l.logoname, g.glazetypeid, d.DICTIONARYVALUE glazetypename, g.goodsid
  2834. // from tp_pm_groutingdailydetail g
  2835. // left join tp_mst_logo l
  2836. // on g.logoid=l.logoid
  2837. // left join TP_MST_DataDictionary d on d.DICTIONARYID = g.glazetypeid
  2838. // where g.barcode=:barcode";
  2839. //OracleParameter[] paras = new OracleParameter[]{
  2840. // new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  2841. //};
  2842. //DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  2843. //if (ds != null && ds.Tables[0].Rows.Count > 0)
  2844. //{
  2845. // return ds;
  2846. //}
  2847. //return null;
  2848. // 转换条码
  2849. string sqlString = @"select FUN_CMN_GetBarCode(:barcode,null,:accountid) From DUAL";
  2850. OracleParameter[] paras1 = new OracleParameter[]{
  2851. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  2852. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  2853. };
  2854. barcode = con.GetSqlResultToStr(sqlString, paras1);
  2855. sqlString = "SELECT barcode FROM tp_pm_finishedproduct f " +
  2856. "WHERE f.VALUEFLAG = 1 AND f.fhuserid IS NULL AND f.BARCODE='" + barcode + "'";
  2857. DataTable dbt = con.GetSqlResultToDt(sqlString);
  2858. if (dbt != null && dbt.Rows.Count > 0)
  2859. {
  2860. DataSet dsb = new DataSet();
  2861. dsb = new DataSet();
  2862. DataTable dt = new DataTable();
  2863. dt.Columns.Add("err_msg");
  2864. DataRow row = dt.NewRow();
  2865. row["err_msg"] = "该产品为产成品,不能变更商标";
  2866. dt.Rows.Add(row);
  2867. dsb.Tables.Add(dt);
  2868. return dsb;
  2869. }
  2870. sqlString = @"select
  2871. -- 以主键提升容错,便于以后扩展
  2872. g.GROUTINGDAILYDETAILID,
  2873. -- end
  2874. g.LogoID,l.logocode,l.logoname, g.glazetypeid, d.DICTIONARYVALUE glazetypename, g.goodsid, f.fhuserid, '' err_msg
  2875. from tp_pm_groutingdailydetail g
  2876. left join tp_mst_logo l on g.logoid=l.logoid
  2877. left join TP_MST_DataDictionary d on d.DICTIONARYID = g.glazetypeid
  2878. left join tp_pm_finishedproduct f on g.barcode = f.barcode
  2879. where g.barcode=:barcode";
  2880. OracleParameter[] paras = new OracleParameter[]{
  2881. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  2882. };
  2883. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  2884. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2885. {
  2886. object fhuserid = ds.Tables[0].Rows[0]["fhuserid"];
  2887. if (fhuserid != null && fhuserid != DBNull.Value)
  2888. {
  2889. ds.Tables[0].Rows[0]["err_msg"] = "已交接的产品不能变更商标";
  2890. }
  2891. return ds;
  2892. }
  2893. else
  2894. {
  2895. ds = new DataSet();
  2896. DataTable dt = new DataTable();
  2897. dt.Columns.Add("err_msg");
  2898. DataRow row = dt.NewRow();
  2899. row["err_msg"] = "条码不存在";
  2900. dt.Rows.Add(row);
  2901. ds.Tables.Add(dt);
  2902. return ds;
  2903. }
  2904. }
  2905. catch (Exception ex)
  2906. {
  2907. throw ex;
  2908. }
  2909. finally
  2910. {
  2911. if (con.ConnState == ConnectionState.Open)
  2912. {
  2913. con.Close();
  2914. }
  2915. }
  2916. }
  2917. /// <summary>
  2918. /// 半检时,入窑前检验获取此条码是否报损为废品
  2919. /// <param name="barcode">产品条码</param>
  2920. /// </summary>
  2921. /// <returns>int</returns>
  2922. public static int CheckWasteScrapProduct(string barcode)
  2923. {
  2924. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2925. try
  2926. {
  2927. con.Open();
  2928. string sqlString = @"select auditstatus from tp_pm_scrapproduct where auditstatus in(0,1) and valueflag=1 and goodsleveltypeid=3 and barcode=:barcode";
  2929. OracleParameter[] paras = new OracleParameter[]{
  2930. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  2931. };
  2932. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  2933. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2934. {
  2935. return Convert.ToInt32(ds.Tables[0].Rows[0]["auditstatus"]);
  2936. }
  2937. return -100;
  2938. }
  2939. catch (Exception ex)
  2940. {
  2941. throw ex;
  2942. }
  2943. finally
  2944. {
  2945. if (con.ConnState == ConnectionState.Open)
  2946. {
  2947. con.Close();
  2948. }
  2949. }
  2950. }
  2951. /// <summary>
  2952. /// 获取盘点单明细
  2953. /// </summary>
  2954. /// <param name="procedureID">工序ID</param>
  2955. /// <returns>DataSet</returns>
  2956. public static DataSet GetUpdateInCheckedInfo(string incheckedno, SUserInfo sUserInfo)
  2957. {
  2958. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2959. try
  2960. {
  2961. con.Open();
  2962. string sqlString = @"select tp_pm_inchecked.incheckedid from tp_pm_inchecked where tp_pm_inchecked.incheckedno=:incheckedno";
  2963. OracleParameter[] paras = new OracleParameter[]{
  2964. new OracleParameter(":incheckedno",OracleDbType.Varchar2, incheckedno,ParameterDirection.Input),
  2965. };
  2966. DataSet dsReturn = null;
  2967. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  2968. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2969. {
  2970. int incheckedid = Convert.ToInt32(ds.Tables[0].Rows[0]["incheckedid"]);
  2971. sqlString = @"SELECT to_char(checked.UserCheckedCount) || '/' ||
  2972. to_char(checked.CheckedCount) CheckedCount
  2973. ,to_char(checked.UserOverageCount) || '/' ||
  2974. to_char(checked.OverageCount) OverageCount
  2975. ,to_char(checked.UserCheckedCount + checked.UserOverageCount) || '/' ||
  2976. to_char(checked.CheckedCount + checked.OverageCount) || '/' ||
  2977. to_char(TCount) TCount
  2978. FROM (SELECT icd.incheckedid
  2979. , SUM(CASE
  2980. WHEN icd.checkeduserid = :userid AND icd.InCheckedFlag = '1' THEN
  2981. 1
  2982. ELSE
  2983. 0
  2984. END) UserCheckedCount
  2985. , SUM(CASE
  2986. WHEN icd.checkeduserid = :userid AND icd.InCheckedFlag = '2' THEN
  2987. 1
  2988. ELSE
  2989. 0
  2990. END) UserOverageCount
  2991. , SUM(CASE
  2992. WHEN icd.InCheckedFlag = '1' THEN
  2993. 1
  2994. ELSE
  2995. 0
  2996. END) CheckedCount
  2997. , SUM(CASE
  2998. WHEN icd.InCheckedFlag = '2' THEN
  2999. 1
  3000. ELSE
  3001. 0
  3002. END) OverageCount
  3003. ,COUNT(icd.incheckedid) TCount
  3004. FROM tp_pm_incheckeddetail icd
  3005. WHERE icd.incheckedid = :incheckedid
  3006. AND icd.valueflag = '1' GROUP BY icd.incheckedid) checked";
  3007. paras = new OracleParameter[]{
  3008. new OracleParameter(":incheckedid",OracleDbType.Int32, incheckedid,ParameterDirection.Input),
  3009. new OracleParameter(":userid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  3010. };
  3011. ds = con.GetSqlResultToDs(sqlString, paras);
  3012. ds.Tables[0].TableName = "Table1";
  3013. dsReturn = new DataSet();
  3014. dsReturn.Tables.Add(ds.Tables[0].Copy());
  3015. sqlString = @"
  3016. SELECT icd.goodscode, COUNT(icd.goodscode) goodscount
  3017. FROM tp_pm_incheckeddetail icd
  3018. WHERE icd.incheckedid = :incheckedid
  3019. AND icd.checkeduserid = :userid
  3020. AND icd.InCheckedFlag = '1'
  3021. AND icd.valueflag = '1'
  3022. GROUP BY icd.goodscode";
  3023. paras = new OracleParameter[]{
  3024. new OracleParameter(":incheckedid",OracleDbType.Int32, incheckedid,ParameterDirection.Input),
  3025. new OracleParameter(":userid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  3026. };
  3027. ds = con.GetSqlResultToDs(sqlString, paras);
  3028. ds.Tables[0].TableName = "Table2";
  3029. dsReturn.Tables.Add(ds.Tables[0].Copy());
  3030. }
  3031. return dsReturn;
  3032. }
  3033. catch (Exception ex)
  3034. {
  3035. throw ex;
  3036. }
  3037. finally
  3038. {
  3039. if (con.ConnState == ConnectionState.Open)
  3040. {
  3041. con.Close();
  3042. }
  3043. }
  3044. }
  3045. /// <summary>
  3046. /// 获取半成品检验列表
  3047. /// <param name="entity">实体类</param>
  3048. /// </summary>
  3049. /// <returns>DataSet</returns>
  3050. public static DataSet GetSemiCheck(SemiCheckEntity entity, SUserInfo sUserInfo)
  3051. {
  3052. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3053. try
  3054. {
  3055. con.Open();
  3056. List<OracleParameter> parameters = new List<OracleParameter>();
  3057. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  3058. string sqlString = @"select
  3059. SemiCheck.SemiCheckID,
  3060. CProcedure.ProcedureName as CProcedureName,
  3061. SemiCheck.ProcedureTime,
  3062. SemiCheck.UserCode,
  3063. GoodsType2.GoodsTypeName as LevelGoodsTypeName,
  3064. GoodsType.GoodsTypeName,
  3065. Goods.GoodsCode,
  3066. SemiCheck.BarCode,
  3067. -- 复检后不显示半检状态
  3068. SemiCheckType.SemiCheckTypeName,
  3069. --decode(SemiCheck.ReSemiCheckType, 0, SemiCheckType.SemiCheckTypeName, '已复检') SemiCheckTypeName
  3070. SemiCheck.SemiCheckUserCode,
  3071. SemiCheck.SemiCheckTime,
  3072. ReSemiCheckType.ReSemiCheckTypeName,
  3073. SemiCheck.ReSemiCheckUserCode,
  3074. SemiCheck.ReSemiCheckTime,
  3075. decode(SemiCheck.BackOutFlag,'0','正常','撤销') as BackOutFlag,
  3076. SemiCheck.BackOutUserCode,
  3077. SemiCheck.BackOutTime,
  3078. SemiCheck.GroutingUserCode,
  3079. SemiCheck.GroutingDate,
  3080. GroutingDailyDetail.DeliverTime,
  3081. logo.logoName,
  3082. RProcedure.ProcedureName as RProcedureName,
  3083. SemiCheck.ReworkUserCode
  3084. from TP_PM_SemiCheck SemiCheck
  3085. left join TP_PC_Procedure CProcedure
  3086. on SemiCheck.ProcedureID=CProcedure.ProcedureID
  3087. left join TP_MST_Goods Goods
  3088. on SemiCheck.GoodsID=Goods.GoodsID
  3089. left join TP_MST_GoodsType GoodsType
  3090. on Goods.GoodsTypeID=GoodsType.GoodsTypeID
  3091. left join TP_MST_GoodsType GoodsType2
  3092. on GoodsType2.accountid=GoodsType.accountid
  3093. and GoodsType2.GoodsTypecode=substr(GoodsType.GoodsTypecode,1,6)
  3094. left join TP_SYS_SemiCheckType SemiCheckType
  3095. on SemiCheck.SemiCheckType=SemiCheckType.SemiCheckTypeID
  3096. left join TP_SYS_ReSemiCheckType ReSemiCheckType
  3097. on SemiCheck.ReSemiCheckType=ReSemiCheckType.ReSemiCheckTypeID
  3098. left join TP_PM_GroutingDailyDetail GroutingDailyDetail
  3099. on GroutingDailyDetail.GroutingDailyDetailID=SemiCheck.GroutingDailyDetailID
  3100. left join TP_MST_Logo logo
  3101. on GroutingDailyDetail.LogoID=logo.LogoID
  3102. left join TP_PC_Procedure RProcedure
  3103. on SemiCheck.ReworkProcedureID=RProcedure.ProcedureID
  3104. where SemiCheck.AccountID=:AccountID
  3105. ";
  3106. // 完成工序
  3107. if (!string.IsNullOrEmpty(entity.CProcedureIDS))
  3108. {
  3109. sqlString = sqlString + " AND instr(','||:CProcedureIDS||',',','||SemiCheck.ProcedureID||',')>0 ";
  3110. parameters.Add(new OracleParameter(":CProcedureIDS", OracleDbType.NVarchar2, entity.CProcedureIDS, ParameterDirection.Input));
  3111. }
  3112. // 完成时间起始
  3113. if (entity.CDateTimeStart.HasValue)
  3114. {
  3115. sqlString = sqlString + " AND SemiCheck.ProcedureTime >= :CDateTimeStart ";
  3116. parameters.Add(new OracleParameter(":CDateTimeStart", OracleDbType.Date, entity.CDateTimeStart.Value, ParameterDirection.Input));
  3117. }
  3118. // 完成时间结束
  3119. if (entity.CDateTimeEnd.HasValue)
  3120. {
  3121. sqlString = sqlString + " AND SemiCheck.ProcedureTime <= :CDateTimeEnd ";
  3122. parameters.Add(new OracleParameter(":CDateTimeEnd", OracleDbType.Date, entity.CDateTimeStart.Value, ParameterDirection.Input));
  3123. }
  3124. // 完成工号
  3125. if (!string.IsNullOrEmpty(entity.CUserCode))
  3126. {
  3127. sqlString = sqlString + " AND instr(SemiCheck.UserCode,:UserCode)>0";
  3128. parameters.Add(new OracleParameter(":UserCode", OracleDbType.NVarchar2, entity.CUserCode, ParameterDirection.Input));
  3129. }
  3130. // 产品类别
  3131. if (!string.IsNullOrEmpty(entity.GoodsTypeCode))
  3132. {
  3133. sqlString = sqlString + " AND instr(GoodsType.GoodsTypeCode,:GoodsTypeCode)=1 ";
  3134. parameters.Add(new OracleParameter(":GoodsTypeCode", OracleDbType.NVarchar2, entity.GoodsTypeCode, ParameterDirection.Input));
  3135. }
  3136. // 产品编码
  3137. if (!string.IsNullOrEmpty(entity.GoodsCode))
  3138. {
  3139. sqlString = sqlString + " AND instr(Goods.GoodsCode,:GoodsCode)>0";
  3140. parameters.Add(new OracleParameter(":GoodsCode", OracleDbType.NVarchar2, entity.GoodsCode, ParameterDirection.Input));
  3141. }
  3142. // 成型工号
  3143. if (!string.IsNullOrEmpty(entity.GroutingUserCode))
  3144. {
  3145. sqlString = sqlString + " AND instr(SemiCheck.GroutingUserCode,:GroutingUserCode)>0";
  3146. parameters.Add(new OracleParameter(":GroutingUserCode", OracleDbType.NVarchar2, entity.GroutingUserCode, ParameterDirection.Input));
  3147. }
  3148. // 注浆时间起始
  3149. if (entity.GroutingDateTimeStart.HasValue)
  3150. {
  3151. sqlString = sqlString + " AND SemiCheck.GroutingDate >= :GroutingDateTimeStart ";
  3152. parameters.Add(new OracleParameter(":GroutingDateTimeStart", OracleDbType.Date, entity.GroutingDateTimeStart.Value, ParameterDirection.Input));
  3153. }
  3154. // 注浆时间结束
  3155. if (entity.GroutingDateTimeEnd.HasValue)
  3156. {
  3157. sqlString = sqlString + " AND SemiCheck.GroutingDate <= :GroutingDateTimeEnd ";
  3158. parameters.Add(new OracleParameter(":GroutingDateTimeEnd", OracleDbType.Date, entity.GroutingDateTimeEnd.Value, ParameterDirection.Input));
  3159. }
  3160. // 交坯时间起始
  3161. if (entity.DeliveryDateTimeStart.HasValue)
  3162. {
  3163. sqlString = sqlString + " AND GroutingDailyDetail.DeliverTime >= :DeliveryDateTimeStart ";
  3164. parameters.Add(new OracleParameter(":DeliveryDateTimeStart", OracleDbType.Date, entity.DeliveryDateTimeStart.Value, ParameterDirection.Input));
  3165. }
  3166. // 交坯时间结束
  3167. if (entity.DeliveryDateTimeEnd.HasValue)
  3168. {
  3169. sqlString = sqlString + " AND GroutingDailyDetail.DeliverTime <= :DeliveryDateTimeEnd ";
  3170. parameters.Add(new OracleParameter(":DeliveryDateTimeEnd", OracleDbType.Date, entity.DeliveryDateTimeEnd.Value, ParameterDirection.Input));
  3171. }
  3172. // 半检状态
  3173. if (!string.IsNullOrEmpty(entity.SemiCheckType))
  3174. {
  3175. sqlString = sqlString + " AND instr(','||:SemiCheckType||',',','||SemiCheck.SemiCheckType||',')>0 ";
  3176. parameters.Add(new OracleParameter(":SemiCheckType", OracleDbType.NVarchar2, entity.SemiCheckType, ParameterDirection.Input));
  3177. }
  3178. // 半检时间起始
  3179. if (entity.SemiCheckDateTimeStart.HasValue)
  3180. {
  3181. sqlString = sqlString + " AND SemiCheck.SemiCheckTime >= :SemiCheckDateTimeStart ";
  3182. parameters.Add(new OracleParameter(":SemiCheckDateTimeStart", OracleDbType.Date, entity.SemiCheckDateTimeStart.Value, ParameterDirection.Input));
  3183. }
  3184. // 半检时间结束
  3185. if (entity.SemiCheckDateTimeEnd.HasValue)
  3186. {
  3187. sqlString = sqlString + " AND SemiCheck.SemiCheckTime <= :SemiCheckDateTimeEnd ";
  3188. parameters.Add(new OracleParameter(":SemiCheckDateTimeEnd", OracleDbType.Date, entity.SemiCheckDateTimeEnd.Value, ParameterDirection.Input));
  3189. }
  3190. // 半检工号
  3191. if (!string.IsNullOrEmpty(entity.SemiCheckUserCode))
  3192. {
  3193. sqlString = sqlString + " AND instr(SemiCheck.SemiCheckUserCode,:SemiCheckUserCode)>0";
  3194. parameters.Add(new OracleParameter(":SemiCheckUserCode", OracleDbType.NVarchar2, entity.SemiCheckUserCode, ParameterDirection.Input));
  3195. }
  3196. // 返工工序
  3197. if (!string.IsNullOrEmpty(entity.RProcedureIDS))
  3198. {
  3199. sqlString = sqlString + " AND instr(','||:RProcedureIDS||',',','||SemiCheck.ReworkProcedureID||',')>0 ";
  3200. parameters.Add(new OracleParameter(":RProcedureIDS", OracleDbType.NVarchar2, entity.RProcedureIDS, ParameterDirection.Input));
  3201. }
  3202. // 返工工号
  3203. if (!string.IsNullOrEmpty(entity.ReworkUserCode))
  3204. {
  3205. sqlString = sqlString + " AND instr(SemiCheck.ReworkUserCode,:ReworkUserCode)>0";
  3206. parameters.Add(new OracleParameter(":ReworkUserCode", OracleDbType.NVarchar2, entity.ReworkUserCode, ParameterDirection.Input));
  3207. }
  3208. // 复检状态
  3209. if (!string.IsNullOrEmpty(entity.ReSemiCheckType))
  3210. {
  3211. sqlString = sqlString + " AND instr(','||:ReSemiCheckType||',',','||SemiCheck.ReSemiCheckType||',')>0 ";
  3212. parameters.Add(new OracleParameter(":ReSemiCheckType", OracleDbType.NVarchar2, entity.ReSemiCheckType, ParameterDirection.Input));
  3213. }
  3214. // 复检时间起始
  3215. if (entity.ReSemiCheckDateTimeStart.HasValue)
  3216. {
  3217. sqlString = sqlString + " AND SemiCheck.ReSemiCheckTime >= :ReSemiCheckDateTimeStart ";
  3218. parameters.Add(new OracleParameter(":ReSemiCheckDateTimeStart", OracleDbType.Date, entity.ReSemiCheckDateTimeStart.Value, ParameterDirection.Input));
  3219. }
  3220. // 复检时间结束
  3221. if (entity.ReSemiCheckDateTimeEnd.HasValue)
  3222. {
  3223. sqlString = sqlString + " AND SemiCheck.ReSemiCheckTime <= :ReSemiCheckDateTimeEnd ";
  3224. parameters.Add(new OracleParameter(":ReSemiCheckDateTimeEnd", OracleDbType.Date, entity.ReSemiCheckDateTimeEnd.Value, ParameterDirection.Input));
  3225. }
  3226. // 复检工号
  3227. if (!string.IsNullOrEmpty(entity.ReSemiCheckUserCode))
  3228. {
  3229. sqlString = sqlString + " AND instr(SemiCheck.ReSemiCheckUserCode,:ReSemiCheckUserCode)>0";
  3230. parameters.Add(new OracleParameter(":ReSemiCheckUserCode", OracleDbType.NVarchar2, entity.ReSemiCheckUserCode, ParameterDirection.Input));
  3231. }
  3232. // 撤销标识
  3233. if (!string.IsNullOrEmpty(entity.BackOutFlag))
  3234. {
  3235. sqlString = sqlString + " AND instr(','||:BackOutFlag||',',','||SemiCheck.BackOutFlag||',')>0 ";
  3236. parameters.Add(new OracleParameter(":BackOutFlag", OracleDbType.NVarchar2, entity.BackOutFlag, ParameterDirection.Input));
  3237. }
  3238. // 撤销时间起始
  3239. if (entity.BackOutTimeStart.HasValue)
  3240. {
  3241. sqlString = sqlString + " AND SemiCheck.BackOutTime >= :BackOutTimeStart ";
  3242. parameters.Add(new OracleParameter(":BackOutTimeStart", OracleDbType.Date, entity.BackOutTimeStart.Value, ParameterDirection.Input));
  3243. }
  3244. // 撤销时间结束
  3245. if (entity.BackOutTimeEnd.HasValue)
  3246. {
  3247. sqlString = sqlString + " AND SemiCheck.BackOutTime <= :BackOutTimeEnd ";
  3248. parameters.Add(new OracleParameter(":BackOutTimeEnd", OracleDbType.Date, entity.BackOutTimeEnd.Value, ParameterDirection.Input));
  3249. }
  3250. // 撤销工号
  3251. if (!string.IsNullOrEmpty(entity.BackOutUserCode))
  3252. {
  3253. sqlString = sqlString + " AND instr(SemiCheck.BackOutUserCode,:BackOutUserCode)>0";
  3254. parameters.Add(new OracleParameter(":BackOutUserCode", OracleDbType.NVarchar2, entity.BackOutUserCode, ParameterDirection.Input));
  3255. }
  3256. // 产品条码
  3257. if (!string.IsNullOrEmpty(entity.BarCode))
  3258. {
  3259. sqlString = sqlString + " AND instr(SemiCheck.BarCode,:BarCode)>0";
  3260. parameters.Add(new OracleParameter(":BarCode", OracleDbType.NVarchar2, entity.BarCode, ParameterDirection.Input));
  3261. }
  3262. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  3263. if (ds != null && ds.Tables[0].Rows.Count > 0)
  3264. {
  3265. return ds;
  3266. }
  3267. return null;
  3268. }
  3269. catch (Exception ex)
  3270. {
  3271. throw ex;
  3272. }
  3273. finally
  3274. {
  3275. if (con.ConnState == ConnectionState.Open)
  3276. {
  3277. con.Close();
  3278. }
  3279. }
  3280. }
  3281. /// <summary>
  3282. /// 获取半成品检验缺陷列表
  3283. /// <param name="semiCheckID">半成品检验ID</param>
  3284. /// </summary>
  3285. /// <returns>DataSet</returns>
  3286. public static DataSet GetSemiCheckDefect(int semiCheckID)
  3287. {
  3288. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3289. try
  3290. {
  3291. con.Open();
  3292. List<OracleParameter> parameters = new List<OracleParameter>();
  3293. parameters.Add(new OracleParameter(":semiCheckID", OracleDbType.Int32, semiCheckID, ParameterDirection.Input));
  3294. string sqlString = @"select
  3295. TP_PM_SemiCheckDefect.DefectCode,
  3296. TP_PM_SemiCheckDefect.DefectName,
  3297. TP_PM_SemiCheckDefect.DefectPositionCode,
  3298. TP_PM_SemiCheckDefect.DefectPositionName,
  3299. TP_PC_Procedure.ProcedureName,
  3300. TP_PM_SemiCheckDefect.DefectUserCode
  3301. from TP_PM_SemiCheckDefect
  3302. left join TP_PC_Procedure
  3303. on TP_PM_SemiCheckDefect.DefectProcedureID=TP_PC_Procedure.ProcedureID
  3304. where TP_PM_SemiCheckDefect.semiCheckID=:semiCheckID
  3305. ";
  3306. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  3307. if (ds != null && ds.Tables[0].Rows.Count > 0)
  3308. {
  3309. return ds;
  3310. }
  3311. return null;
  3312. }
  3313. catch (Exception ex)
  3314. {
  3315. throw ex;
  3316. }
  3317. finally
  3318. {
  3319. if (con.ConnState == ConnectionState.Open)
  3320. {
  3321. con.Close();
  3322. }
  3323. }
  3324. }
  3325. /// <summary>
  3326. /// 根据所选工号,查出缺陷责任员工
  3327. /// </summary>
  3328. /// <param name="userid">用户ID</param>
  3329. /// <param name="sUserInfo">用户基本信息</param>
  3330. /// <returns>DataSet</returns>
  3331. public static DataSet GetSemiCheckDefectStaffByUserID(SUserInfo sUserInfo, int userid)
  3332. {
  3333. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3334. try
  3335. {
  3336. con.Open();
  3337. string sqlString = @"select
  3338. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,
  3339. TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as SJobsID,
  3340. TP_MST_UserStaff.Ujobsid
  3341. from TP_MST_UserStaff
  3342. left join TP_HR_Staff
  3343. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  3344. where TP_MST_UserStaff.Userid=:userid
  3345. ";
  3346. OracleParameter[] paras = new OracleParameter[]{
  3347. new OracleParameter(":userid",OracleDbType.Int32, userid,ParameterDirection.Input),
  3348. };
  3349. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  3350. return ds;
  3351. }
  3352. catch (Exception ex)
  3353. {
  3354. throw ex;
  3355. }
  3356. finally
  3357. {
  3358. if (con.ConnState == ConnectionState.Open)
  3359. {
  3360. con.Close();
  3361. }
  3362. }
  3363. }
  3364. /// <summary>
  3365. /// 获取标识
  3366. /// </summary>
  3367. /// <param name="barcode">产品条码</param>ram>
  3368. /// <returns>int</returns>
  3369. public static int GetRecyclingflagByBarcode(string barcode, SUserInfo sUserInfo)
  3370. {
  3371. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3372. try
  3373. {
  3374. con.Open();
  3375. string sqlString = "select recyclingflag from TP_PM_ScrapProduct "
  3376. + " where BarCode=:BarCode and CreateTime=(select max(CreateTime) "
  3377. + " from TP_PM_ScrapProduct "
  3378. + " where BarCode=:BarCode and ValueFlag=1)"
  3379. + " and ValueFlag=1";
  3380. OracleParameter[] paras = new OracleParameter[]{
  3381. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  3382. };
  3383. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  3384. if (ds != null && ds.Tables[0].Rows.Count > 0)
  3385. {
  3386. return Convert.ToInt32(ds.Tables[0].Rows[0]["recyclingflag"]);
  3387. }
  3388. return 0;
  3389. }
  3390. catch (Exception ex)
  3391. {
  3392. throw ex;
  3393. }
  3394. finally
  3395. {
  3396. if (con.ConnState == ConnectionState.Open)
  3397. {
  3398. con.Close();
  3399. }
  3400. }
  3401. }
  3402. /// <summary>
  3403. /// 查询产品组件报损履历 add xiacm 2022-11-17
  3404. /// </summary>
  3405. /// <param name="IdnrkOnlyCode"></param>
  3406. /// <param name="sUserInfo"></param>
  3407. /// <returns></returns>
  3408. public static DataSet GetIdnrkOnlyCode(string IdnrkOnlyCode, DateTime createTime, string confirmFlag, SUserInfo sUserInfo, out string message)
  3409. {
  3410. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3411. try
  3412. {
  3413. con.Open();
  3414. message = "";
  3415. DataSet ds = new DataSet();
  3416. if (!string.IsNullOrEmpty(IdnrkOnlyCode))
  3417. {
  3418. if ("1".Equals(confirmFlag))
  3419. {
  3420. string sqlString = @"
  3421. SELECT BIS.SCRAPID,
  3422. BIS.MATNR,
  3423. BIS.IDNRK,
  3424. BIS.MEINS,
  3425. TO_CHAR(BIS.MENGE, 'FM9999999999999999.000') MENGESUM,
  3426. BIS.IDNRKNAME,
  3427. BIS.IDNRKONLYCODE,
  3428. BIS.BARCODE,
  3429. BIS.CHECKFLAG
  3430. FROM TP_PM_BARCODEIDNRKSCRAP BIS
  3431. WHERE BIS.VALUEFLAG = '1'
  3432. AND BIS.SCRAPTYPE = '1'
  3433. AND ACCOUNTID = :ACCOUNTID
  3434. AND IDNRKONLYCODE = :IDNRKONLYCODE ";
  3435. OracleParameter[] paras = new OracleParameter[]
  3436. {
  3437. new OracleParameter(":ACCOUNTID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  3438. new OracleParameter(":IDNRKONLYCODE",OracleDbType.NVarchar2, IdnrkOnlyCode,ParameterDirection.Input),
  3439. };
  3440. ds = con.GetSqlResultToDs(sqlString, paras);
  3441. if (ds.Tables[0].Rows.Count == 0)
  3442. {
  3443. message = "当前条码不存在。";
  3444. }
  3445. }
  3446. else
  3447. {
  3448. string sqlString = @"
  3449. SELECT BIS.SCRAPID,
  3450. BIS.MATNR,
  3451. BIS.IDNRK,
  3452. BIS.MEINS,
  3453. TO_CHAR(BIS.MENGE, 'FM9999999999999999.000') MENGESUM,
  3454. BIS.IDNRKNAME,
  3455. BIS.IDNRKONLYCODE,
  3456. BIS.BARCODE
  3457. FROM TP_PM_BARCODEIDNRKSCRAP BIS
  3458. WHERE BIS.VALUEFLAG = '1'
  3459. AND BIS.SCRAPTYPE = '1'
  3460. AND ACCOUNTID = :ACCOUNTID
  3461. AND IDNRKONLYCODE = :IDNRKONLYCODE ";
  3462. OracleParameter[] paras = new OracleParameter[]
  3463. {
  3464. new OracleParameter(":ACCOUNTID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  3465. new OracleParameter(":IDNRKONLYCODE",OracleDbType.NVarchar2, IdnrkOnlyCode,ParameterDirection.Input),
  3466. };
  3467. ds = con.GetSqlResultToDs(sqlString, paras);
  3468. if (ds.Tables[0].Rows.Count == 0)
  3469. {
  3470. message = "当前条码不存在。";
  3471. }
  3472. }
  3473. }
  3474. else
  3475. {
  3476. string sqlString = @"
  3477. SELECT T.SCRAPID,
  3478. T.IDNRK,
  3479. T.MEINS,
  3480. T.IDNRKNAME,
  3481. TO_CHAR(T.MENGESUM, 'FM9999999999999999.000') AS MENGESUM,
  3482. TO_CHAR(DECODE(T.CONFIRMSUM, 0, T.MENGESUM, T.CONFIRMSUM), 'FM9999999999999999.000') AS CONFIRMSUM,
  3483. DECODE(T.CONFIRMSUM, 0, 0, 1) AS ISCONFIRM
  3484. FROM (SELECT 0 SCRAPID,
  3485. SUM(BIS.MENGE) MENGESUM,
  3486. SUM(DECODE(BIS.CHECKFLAG, '0', 0, BIS.MENGE)) CONFIRMSUM,
  3487. BIS.IDNRK,
  3488. BIS.MEINS,
  3489. BIS.IDNRKNAME
  3490. FROM TP_PM_BARCODEIDNRKSCRAP BIS
  3491. WHERE (BIS.IDNRKONLYCODE = '' OR BIS.IDNRKONLYCODE = ' ' OR BIS.IDNRKONLYCODE IS NULL)
  3492. AND BIS.VALUEFLAG = '1'
  3493. AND BIS.SCRAPTYPE = '1'
  3494. AND BIS.SYNCFLAG = '0'
  3495. AND BIS.ACCOUNTID = :ACCOUNTID
  3496. AND BIS.CREATETIME >= :CREATETIMEFROM
  3497. AND BIS.CREATETIME < :CREATETIMETO
  3498. GROUP BY BIS.IDNRK,
  3499. BIS.MEINS,
  3500. BIS.IDNRKNAME) T ";
  3501. OracleParameter[] paras = new OracleParameter[]
  3502. {
  3503. new OracleParameter(":ACCOUNTID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  3504. new OracleParameter(":CREATETIMEFROM", OracleDbType.Date, createTime, ParameterDirection.Input),
  3505. new OracleParameter(":CREATETIMETO", OracleDbType.Date, createTime.AddDays(1), ParameterDirection.Input),
  3506. };
  3507. ds = con.GetSqlResultToDs(sqlString, paras);
  3508. }
  3509. return ds;
  3510. }
  3511. catch (Exception ex)
  3512. {
  3513. throw ex;
  3514. }
  3515. finally
  3516. {
  3517. if (con.ConnState == ConnectionState.Open)
  3518. {
  3519. con.Close();
  3520. }
  3521. }
  3522. }
  3523. /// <summary>
  3524. /// 确认产品组件报损履历 add xiacm 2022-11-17
  3525. /// </summary>
  3526. /// <param name="cre"></param>
  3527. /// <param name="sUserInfo"></param>
  3528. /// <returns></returns>
  3529. public static ServiceResultEntity ConfirmBarcodeIdnrkScrap(ClientRequestEntity cre, SUserInfo sUserInfo)
  3530. {
  3531. ServiceResultEntity result = new ServiceResultEntity();
  3532. result.Status = Constant.ServiceResultStatus.Success;
  3533. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  3534. string sqlString = string.Empty;
  3535. int returnRow = Constant.INT_IS_ZERO;
  3536. try
  3537. {
  3538. oracleTrConn.Connect();
  3539. OracleParameter[] paras = null;
  3540. DataTable IdnrkScrapDt = cre.Data.Tables[0];
  3541. DateTime createTime = Convert.ToDateTime(cre.Properties["CreateTime"]);
  3542. decimal mengesum = 0;
  3543. foreach (DataRow item in IdnrkScrapDt.Rows)
  3544. {
  3545. int scrapid = Convert.ToInt32(item["SCRAPID"]);//报损id
  3546. string idnrk = item["IDNRK"].ToString();//组件编码
  3547. decimal.TryParse(item["mengesum"] + "", out mengesum);
  3548. if (string.IsNullOrEmpty(idnrk))
  3549. {
  3550. result.Status = Constant.ServiceResultStatus.SystemError;
  3551. return result;
  3552. }
  3553. //无组件唯一编码
  3554. if (scrapid == 0)
  3555. {
  3556. sqlString = @"
  3557. SELECT BIS.SCRAPID,
  3558. BIS.MATNR,
  3559. BIS.IDNRK,
  3560. BIS.MEINS,
  3561. BIS.MENGE
  3562. FROM TP_PM_BARCODEIDNRKSCRAP BIS
  3563. WHERE (BIS.IDNRKONLYCODE = '' OR BIS.IDNRKONLYCODE = ' ' OR BIS.IDNRKONLYCODE IS NULL)
  3564. AND BIS.VALUEFLAG = '1'
  3565. AND BIS.SCRAPTYPE = '1'
  3566. AND BIS.SYNCFLAG = '0'
  3567. AND BIS.ACCOUNTID = :ACCOUNTID
  3568. AND BIS.CREATETIME >= :CREATETIMEFROM
  3569. AND BIS.CREATETIME < :CREATETIMETO
  3570. AND BIS.IDNRK = :IDNRK
  3571. ORDER BY BIS.MENGE DESC ";
  3572. paras = new OracleParameter[]
  3573. {
  3574. new OracleParameter(":ACCOUNTID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  3575. new OracleParameter(":CREATETIMEFROM", OracleDbType.Date, createTime, ParameterDirection.Input),
  3576. new OracleParameter(":CREATETIMETO", OracleDbType.Date, createTime.AddDays(1), ParameterDirection.Input),
  3577. new OracleParameter(":IDNRK",OracleDbType.NVarchar2, idnrk, ParameterDirection.Input),
  3578. // new OracleParameter(":MATNR",OracleDbType.Int32,MATNR,ParameterDirection.Input),
  3579. // new OracleParameter(":MEINS",OracleDbType.Int32,MEINS ,ParameterDirection.Input),
  3580. };
  3581. DataTable dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  3582. if (dt.Rows.Count == 0)
  3583. {
  3584. result.Status = Constant.ServiceResultStatus.SystemError;
  3585. result.Message = "报损已确认或报损数据已改变";
  3586. return result;
  3587. }
  3588. decimal menge = 0;
  3589. foreach (DataRow row in dt.Rows)
  3590. {
  3591. decimal.TryParse(row["MENGE"] + "", out menge);
  3592. if (mengesum >= menge)
  3593. {
  3594. //报损确认
  3595. sqlString = @"
  3596. UPDATE TP_PM_BARCODEIDNRKSCRAP
  3597. SET CHECKFLAG = '1',
  3598. CHECKTIME = SYSDATE,
  3599. UPDATETIME = SYSDATE,
  3600. UPDATEUSERID = :UPDATEUSERID
  3601. WHERE SCRAPID = :SCRAPID";
  3602. paras = new OracleParameter[]
  3603. {
  3604. new OracleParameter(":SCRAPID", OracleDbType.Int32, row["SCRAPID"], ParameterDirection.Input),
  3605. new OracleParameter(":UPDATEUSERID", OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  3606. };
  3607. returnRow += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  3608. mengesum -= menge;
  3609. }
  3610. else
  3611. {
  3612. //取消确认
  3613. sqlString = @"
  3614. UPDATE TP_PM_BARCODEIDNRKSCRAP
  3615. SET CHECKFLAG = '0',
  3616. CHECKTIME = SYSDATE,
  3617. UPDATETIME = SYSDATE,
  3618. UPDATEUSERID = :UPDATEUSERID
  3619. WHERE SCRAPID = :SCRAPID";
  3620. paras = new OracleParameter[]
  3621. {
  3622. new OracleParameter(":SCRAPID", OracleDbType.Int32, row["SCRAPID"], ParameterDirection.Input),
  3623. new OracleParameter(":UPDATEUSERID", OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  3624. };
  3625. returnRow += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  3626. }
  3627. }
  3628. if (mengesum > 0)
  3629. {
  3630. result.Status = Constant.ServiceResultStatus.SystemError;
  3631. result.Message = "可确认数量不足";
  3632. return result;
  3633. }
  3634. }
  3635. else
  3636. {
  3637. ////验证履历状态
  3638. //sqlString = @"select 1 from TP_PM_BARCODEIDNRKSCRAP bis
  3639. // where bis.ValueFlag ='1'
  3640. // and bis.CheckFlag = '0'
  3641. // and bis.AccountID =:accountid
  3642. // and bis.SCRAPTYPE = '1'
  3643. // and bis.SCRAPID = :SCRAPID";
  3644. //OracleParameter[] paras = new OracleParameter[]
  3645. //{
  3646. // new OracleParameter(":SCRAPID",OracleDbType.Int32, scrapid, ParameterDirection.Input),
  3647. // new OracleParameter(":accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  3648. //};
  3649. //DataTable dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  3650. //if (dt.Rows.Count == 0)
  3651. //{
  3652. // result.Status = Constant.ServiceResultStatus.SystemError;
  3653. // result.Message = "报损已确认或报损数据已改变";
  3654. // return result;
  3655. //}
  3656. if ("1".Equals(cre.Properties["ConfirmFlag"]+""))
  3657. {
  3658. //报损确认
  3659. sqlString = @"UPDATE tp_pm_barcodeidnrkscrap
  3660. SET checkflag = '1'
  3661. ,checktime = SYSDATE
  3662. ,updatetime = SYSDATE
  3663. ,updateuserid = :updateuserid
  3664. where SCRAPID = :SCRAPID";
  3665. paras = new OracleParameter[]
  3666. {
  3667. new OracleParameter(":SCRAPID",OracleDbType.Int32, scrapid, ParameterDirection.Input),
  3668. new OracleParameter(":updateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  3669. };
  3670. returnRow += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  3671. }
  3672. else
  3673. {
  3674. //报损撤销
  3675. sqlString = @"UPDATE tp_pm_barcodeidnrkscrap
  3676. SET checkflag = '0'
  3677. ,checktime = SYSDATE
  3678. ,updatetime = SYSDATE
  3679. ,updateuserid = :updateuserid
  3680. where SCRAPID = :SCRAPID";
  3681. paras = new OracleParameter[]
  3682. {
  3683. new OracleParameter(":SCRAPID",OracleDbType.Int32, scrapid, ParameterDirection.Input),
  3684. new OracleParameter(":updateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  3685. };
  3686. returnRow += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  3687. }
  3688. }
  3689. }
  3690. oracleTrConn.Commit();
  3691. }
  3692. catch (Exception ex)
  3693. {
  3694. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  3695. {
  3696. oracleTrConn.Rollback();
  3697. oracleTrConn.Disconnect();
  3698. }
  3699. result.Status = Constant.ServiceResultStatus.SystemError;
  3700. result.Message = "确认产品组件报损失败";
  3701. throw ex;
  3702. }
  3703. finally
  3704. {
  3705. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  3706. {
  3707. oracleTrConn.Disconnect();
  3708. }
  3709. }
  3710. result.Result = returnRow;
  3711. return result;
  3712. }
  3713. /// <summary>
  3714. /// 次品扫描功能 add qq 20230406
  3715. /// </summary>
  3716. /// <param name="cre"></param>
  3717. /// <param name="sUserInfo"></param>
  3718. /// <returns></returns>
  3719. public static ServiceResultEntity RecyclingAddBarcode(string barcode,string type, SUserInfo sUserInfo) {
  3720. ServiceResultEntity result = new ServiceResultEntity();
  3721. result.Status = Constant.ServiceResultStatus.Success;
  3722. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  3723. string sqlString = string.Empty;
  3724. int returnRow = Constant.INT_IS_ZERO;
  3725. try
  3726. {
  3727. oracleTrConn.Connect();
  3728. //1:次品回收扫描 2:次品补釉 3:次品装窑 4:次品卸窑
  3729. if (type == "1")
  3730. {
  3731. //是次品
  3732. sqlString = @"select 1 from tp_pm_inproduction where goodslevelid = 7 and valueflag = '1' and barcode = :barcode";
  3733. OracleParameter[] paras = new OracleParameter[]
  3734. {
  3735. new OracleParameter(":barcode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
  3736. };
  3737. DataTable dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  3738. if (dt != null && dt.Rows.Count > 0 )
  3739. {
  3740. sqlString = @" SELECT * FROM TP_PM_Recycling where barcode = :barcode and scantype = 1";
  3741. paras = new OracleParameter[]
  3742. {
  3743. new OracleParameter(":barcode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
  3744. };
  3745. dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  3746. if (dt != null && dt.Rows.Count > 0)
  3747. {
  3748. //提示已存在该数据
  3749. returnRow = -1;
  3750. }
  3751. else
  3752. {
  3753. sqlString = @"INSERT INTO TP_PM_Recycling
  3754. ( ScanType,
  3755. BarCode,
  3756. Remarks,
  3757. AccountID,
  3758. ValueFlag,
  3759. CreateUserID,
  3760. UpdateUserID
  3761. ) values
  3762. (
  3763. 1,
  3764. :BarCode,
  3765. :Remarks,
  3766. :AccountID,
  3767. 1,
  3768. :CreateUserID,
  3769. :UpdateUserID
  3770. )
  3771. ";
  3772. OracleParameter[] parmeters1 = new OracleParameter[]
  3773. {
  3774. new OracleParameter(":BarCode",barcode),
  3775. new OracleParameter(":Remarks",""),
  3776. new OracleParameter(":AccountID",sUserInfo.AccountID),
  3777. new OracleParameter(":CreateUserID",sUserInfo.UserID),
  3778. new OracleParameter(":UpdateUserID",sUserInfo.UserID),
  3779. };
  3780. returnRow += oracleTrConn.ExecuteNonQuery(sqlString, parmeters1);
  3781. }
  3782. }
  3783. else
  3784. {
  3785. //提示不是次品,无法扫描
  3786. returnRow = -2;
  3787. }
  3788. }
  3789. else if (type == "2")
  3790. {
  3791. sqlString = @" SELECT * FROM TP_PM_Recycling where barcode = :barcode and scantype = 1";
  3792. OracleParameter[] paras = new OracleParameter[]
  3793. {
  3794. new OracleParameter(":barcode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
  3795. };
  3796. DataTable dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  3797. if (dt != null && dt.Rows.Count > 0)
  3798. {
  3799. sqlString = @" SELECT * FROM TP_PM_Recycling where barcode = :barcode and scantype = 2";
  3800. paras = new OracleParameter[]
  3801. {
  3802. new OracleParameter(":barcode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
  3803. };
  3804. dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  3805. if (dt != null && dt.Rows.Count > 0)
  3806. {
  3807. //提示已做过补釉
  3808. returnRow = -3;
  3809. }
  3810. else
  3811. {
  3812. sqlString = @"INSERT INTO TP_PM_Recycling
  3813. ( ScanType,
  3814. BarCode,
  3815. Remarks,
  3816. AccountID,
  3817. ValueFlag,
  3818. CreateUserID,
  3819. UpdateUserID
  3820. ) values
  3821. (
  3822. 2,
  3823. :BarCode,
  3824. :Remarks,
  3825. :AccountID,
  3826. 1,
  3827. :CreateUserID,
  3828. :UpdateUserID
  3829. )
  3830. ";
  3831. OracleParameter[] parmeters1 = new OracleParameter[]
  3832. {
  3833. new OracleParameter(":BarCode",barcode),
  3834. new OracleParameter(":Remarks",""),
  3835. new OracleParameter(":AccountID",sUserInfo.AccountID),
  3836. new OracleParameter(":CreateUserID",sUserInfo.UserID),
  3837. new OracleParameter(":UpdateUserID",sUserInfo.UserID),
  3838. };
  3839. returnRow += oracleTrConn.ExecuteNonQuery(sqlString, parmeters1);
  3840. }
  3841. }
  3842. else
  3843. {
  3844. //提示未做过次品扫描
  3845. returnRow = -4;
  3846. }
  3847. }
  3848. else if (type == "3")
  3849. {
  3850. sqlString = @" SELECT * FROM TP_PM_Recycling where barcode = :barcode and scantype = 1";
  3851. OracleParameter[] paras = new OracleParameter[]
  3852. {
  3853. new OracleParameter(":barcode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
  3854. };
  3855. DataTable dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  3856. if (dt != null && dt.Rows.Count > 0)
  3857. {
  3858. sqlString = @" SELECT * FROM TP_PM_Recycling where barcode = :barcode and scantype = 3";
  3859. paras = new OracleParameter[]
  3860. {
  3861. new OracleParameter(":barcode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
  3862. };
  3863. dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  3864. if (dt != null && dt.Rows.Count > 0)
  3865. {
  3866. //提示已做过登窑
  3867. returnRow = -5;
  3868. }
  3869. else
  3870. {
  3871. sqlString = @"INSERT INTO TP_PM_Recycling
  3872. ( ScanType,
  3873. BarCode,
  3874. Remarks,
  3875. AccountID,
  3876. ValueFlag,
  3877. CreateUserID,
  3878. UpdateUserID
  3879. ) values
  3880. (
  3881. 3,
  3882. :BarCode,
  3883. :Remarks,
  3884. :AccountID,
  3885. 1,
  3886. :CreateUserID,
  3887. :UpdateUserID
  3888. )
  3889. ";
  3890. OracleParameter[] parmeters1 = new OracleParameter[]
  3891. {
  3892. new OracleParameter(":BarCode",barcode),
  3893. new OracleParameter(":Remarks",""),
  3894. new OracleParameter(":AccountID",sUserInfo.AccountID),
  3895. new OracleParameter(":CreateUserID",sUserInfo.UserID),
  3896. new OracleParameter(":UpdateUserID",sUserInfo.UserID),
  3897. };
  3898. returnRow += oracleTrConn.ExecuteNonQuery(sqlString, parmeters1);
  3899. }
  3900. }
  3901. else
  3902. {
  3903. //提示未做过次品扫描
  3904. returnRow = -4;
  3905. }
  3906. }
  3907. else if (type == "4")
  3908. {
  3909. sqlString = @" SELECT * FROM TP_PM_Recycling where barcode = :barcode and scantype = 3";
  3910. OracleParameter[] paras = new OracleParameter[]
  3911. {
  3912. new OracleParameter(":barcode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
  3913. };
  3914. DataTable dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  3915. if (dt != null && dt.Rows.Count > 0)
  3916. {
  3917. sqlString = @" SELECT * FROM TP_PM_Recycling where barcode = :barcode and scantype = 4";
  3918. paras = new OracleParameter[]
  3919. {
  3920. new OracleParameter(":barcode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
  3921. };
  3922. dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  3923. if (dt != null && dt.Rows.Count > 0)
  3924. {
  3925. //提示已做过卸窑
  3926. returnRow = -6;
  3927. }
  3928. else
  3929. {
  3930. sqlString = @"INSERT INTO TP_PM_Recycling
  3931. ( ScanType,
  3932. BarCode,
  3933. Remarks,
  3934. AccountID,
  3935. ValueFlag,
  3936. CreateUserID,
  3937. UpdateUserID
  3938. ) values
  3939. (
  3940. 4,
  3941. :BarCode,
  3942. :Remarks,
  3943. :AccountID,
  3944. 1,
  3945. :CreateUserID,
  3946. :UpdateUserID
  3947. )
  3948. ";
  3949. OracleParameter[] parmeters1 = new OracleParameter[]
  3950. {
  3951. new OracleParameter(":BarCode",barcode),
  3952. new OracleParameter(":Remarks",""),
  3953. new OracleParameter(":AccountID",sUserInfo.AccountID),
  3954. new OracleParameter(":CreateUserID",sUserInfo.UserID),
  3955. new OracleParameter(":UpdateUserID",sUserInfo.UserID),
  3956. };
  3957. returnRow += oracleTrConn.ExecuteNonQuery(sqlString, parmeters1);
  3958. }
  3959. }
  3960. else
  3961. {
  3962. //提示未做过登窑
  3963. returnRow = -7;
  3964. }
  3965. }
  3966. oracleTrConn.Commit();
  3967. }
  3968. catch (Exception ex)
  3969. {
  3970. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  3971. {
  3972. oracleTrConn.Rollback();
  3973. oracleTrConn.Disconnect();
  3974. }
  3975. result.Status = Constant.ServiceResultStatus.SystemError;
  3976. result.Message = "保存失败";
  3977. throw ex;
  3978. }
  3979. finally
  3980. {
  3981. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  3982. {
  3983. oracleTrConn.Disconnect();
  3984. }
  3985. }
  3986. result.Result = returnRow;
  3987. return result;
  3988. }
  3989. #region 裸瓷包装撤销(非工序撤销)
  3990. /// <summary>
  3991. /// 检验条码pda
  3992. /// </summary>
  3993. /// <param name="procedureID">工序ID</param>
  3994. /// <param name="barcode">产品条码</param>
  3995. /// <returns>DataSet</returns>
  3996. public static ServiceResultEntity CheckLuoci(int procedureID, string barcode, SUserInfo sUserInfo)
  3997. {
  3998. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3999. try
  4000. {
  4001. oracleConn.Open();
  4002. ServiceResultEntity sre = new ServiceResultEntity();
  4003. DataTable dtBarCode = PMModuleLogic.CreateBarCodeResultTable();
  4004. DataSet returnDs = new DataSet();
  4005. DataRow dr = dtBarCode.NewRow();
  4006. string sqlString = "";
  4007. #region 查找条码
  4008. sqlString = @"SELECT 1 FROM TP_PM_GROUTINGDAILYDETAIL
  4009. WHERE BARCODE = :BARCODE
  4010. AND VALUEFLAG = '1'";
  4011. OracleParameter[] paras = new OracleParameter[]{
  4012. new OracleParameter(":BARCODE",barcode),
  4013. };
  4014. DataTable dt = oracleConn.GetSqlResultToDt(sqlString, paras);
  4015. if (dt == null || dt.Rows.Count == 0)
  4016. {
  4017. //无效条码
  4018. sre.OtherStatus = -1;
  4019. sre.Message = "无效条码";
  4020. return sre;
  4021. }
  4022. #endregion
  4023. #region 校验产品是否是成品
  4024. sqlString = @"SELECT LCFHUSERCODE,CREATETIME FROM TP_PM_FINISHEDPRODUCT
  4025. WHERE BARCODE = :BARCODE
  4026. AND VALUEFLAG = '1'";
  4027. dt = oracleConn.GetSqlResultToDt(sqlString, paras);
  4028. if (dt == null || dt.Rows.Count == 0)
  4029. {
  4030. //两种情况1.已经做过裸瓷撤销2.未走过裸瓷包装
  4031. sqlString = @"SELECT LUOCIFLAG FROM TP_PM_GROUTINGDAILYDETAIL
  4032. WHERE BARCODE = :BARCODE ";
  4033. dt = oracleConn.GetSqlResultToDt(sqlString, paras);
  4034. if (dt != null && dt.Rows.Count > 0 && dt.Rows[0]["LUOCIFLAG"].ToString() == "1")
  4035. {
  4036. //非成品,不允许此操作(已经做过裸瓷撤销)
  4037. sre.OtherStatus = -1;
  4038. sre.Message = "非成品,不允许此操作(已做过裸瓷撤销)";
  4039. return sre;
  4040. }
  4041. else
  4042. {
  4043. //未经过裸瓷包装,不允许此操作
  4044. sre.OtherStatus = -1;
  4045. sre.Message = "未经过裸瓷包装,不允许此操作";
  4046. return sre;
  4047. }
  4048. }
  4049. else if (dt != null && dt.Rows.Count > 0)
  4050. {
  4051. if (Convert.ToDateTime (dt.Rows[0]["CREATETIME"]) >= Convert.ToDateTime("2025-07-01") && string.IsNullOrWhiteSpace(dt.Rows[0]["LCFHUSERCODE"].ToString()) )
  4052. {
  4053. //非成品,不允许此操作
  4054. sre.OtherStatus = -1;
  4055. sre.Message = "未做裸瓷交接,不允许此操作";
  4056. return sre;
  4057. }
  4058. }
  4059. #endregion
  4060. #region 校验是否裸瓷包装产品
  4061. sqlString = @"SELECT PROCEDUREID FROM (
  4062. SELECT * FROM TP_PM_PRODUCTIONDATA WHERE BARCODE = :BARCODE AND VALUEFLAG ='1' ORDER BY CREATETIME DESC )
  4063. WHERE ROWNUM =1";
  4064. dt = oracleConn.GetSqlResultToDt(sqlString, paras);
  4065. if (dt != null && dt.Rows.Count > 0 && Convert.ToInt32(dt.Rows[0]["PROCEDUREID"]) != 159)
  4066. {
  4067. //非裸瓷包装产品,不允许此操作
  4068. sre.OtherStatus = -1;
  4069. sre.Message = "非裸瓷包装产品,不允许此操作";
  4070. return sre;
  4071. }
  4072. #endregion
  4073. sqlString = @"SELECT
  4074. I.BARCODE,--产品条码
  4075. G.GOODSCODE,--产品编码
  4076. G.GOODSNAME,--产品名称
  4077. L.LOGONAME,--商标名称
  4078. I.GROUTINGUSERCODE, --成型工号
  4079. NVL(GDD.MATERIALCODE, NVL(G.MATERIALCODE,G.GOODSCODE)) AS MATERIALCODE, --物料编码
  4080. '' AS ERRMSG
  4081. FROM TP_PM_FINISHEDPRODUCT I
  4082. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = I.GROUTINGDAILYDETAILID
  4083. LEFT JOIN TP_MST_LOGO L ON GDD.LOGOID=L.LOGOID
  4084. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = I.GOODSID
  4085. WHERE I.BARCODE=:BARCODE ";
  4086. DataSet ds = oracleConn.GetSqlResultToDs(sqlString, paras);
  4087. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0 )
  4088. {
  4089. sre.Data = ds;
  4090. sre.OtherStatus = 1;
  4091. }
  4092. else
  4093. {
  4094. sre.OtherStatus = -1;
  4095. sre.Message = "未查询到数据";
  4096. }
  4097. return sre;
  4098. }
  4099. catch (Exception ex)
  4100. {
  4101. throw ex;
  4102. }
  4103. finally
  4104. {
  4105. if (oracleConn.ConnState == ConnectionState.Open)
  4106. {
  4107. oracleConn.Close();
  4108. }
  4109. }
  4110. }
  4111. /// <summary>
  4112. /// 撤销裸瓷包装(工序不撤销,仅从成品变为在产)
  4113. /// </summary>
  4114. /// <param name="barcode">产品条码</param>
  4115. /// <returns></returns>
  4116. public static ServiceResultEntity AddChancelLuoci(DataTable detailTable, SUserInfo sUserInfo)
  4117. {
  4118. ServiceResultEntity entity = new ServiceResultEntity();
  4119. int returnRows = 0;
  4120. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  4121. try
  4122. {
  4123. if (detailTable != null && detailTable.Rows.Count >0)
  4124. {
  4125. foreach (DataRow row in detailTable.Rows)
  4126. {
  4127. string barcode = row["barcode"].ToString();
  4128. int goodsLevelID;
  4129. int goodsLevelTypeID;
  4130. // 转换注浆条码
  4131. barcode = CommonModuleLogic.CommonModuleLogic.GetBarcode(oracleTrConn, barcode, sUserInfo);
  4132. // 1 条码是否在产成品表中
  4133. string sql = "select createTime,FHUserCode,LCFHUSERCODE,GoodsCode,GoodsLevelID,GoodsLevelTypeID,CREATETIME from tp_pm_finishedproduct where barcode=:barcode and valueflag=1";
  4134. OracleParameter[] Paras = new OracleParameter[] {
  4135. new OracleParameter(":barcode",OracleDbType.Varchar2,
  4136. barcode,ParameterDirection.Input)
  4137. };
  4138. DataSet ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
  4139. if (ds.Tables[0].Rows.Count == 0)
  4140. {
  4141. //不存在产成品
  4142. returnRows = -1;
  4143. oracleTrConn.Rollback();
  4144. oracleTrConn.Disconnect();
  4145. entity.Result = returnRows;
  4146. return entity;
  4147. }
  4148. else
  4149. {
  4150. //已经交接不允许撤销
  4151. if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["FHUserCode"].ToString()))
  4152. {
  4153. entity.Result = -200; //已交接,不能再次进行交接
  4154. entity.Message = "此产品【" + ds.Tables[0].Rows[0]["GoodsCode"].ToString() + "】已包装交接,不能进行该操作";
  4155. oracleTrConn.Rollback();
  4156. oracleTrConn.Disconnect();
  4157. return entity;
  4158. }
  4159. else if (Convert.ToDateTime(ds.Tables[0].Rows[0]["CREATETIME"]) >= Convert.ToDateTime("2025-07-01") && string.IsNullOrEmpty(ds.Tables[0].Rows[0]["LCFHUSERCODE"].ToString()))
  4160. {
  4161. entity.Result = -200; //未交接,不能裸瓷撤销
  4162. entity.Message = "此产品【" + ds.Tables[0].Rows[0]["GoodsCode"].ToString() + "】未做裸瓷交接,不能进行该操作";
  4163. oracleTrConn.Rollback();
  4164. oracleTrConn.Disconnect();
  4165. return entity;
  4166. }
  4167. else
  4168. {
  4169. goodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
  4170. goodsLevelTypeID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelTypeID"]);
  4171. }
  4172. }
  4173. sql = "select 1 from tp_pm_productiondatain where barcode=:barcode and valueflag=1";
  4174. Paras = new OracleParameter[] {
  4175. new OracleParameter(":barcode",OracleDbType.Varchar2,
  4176. barcode,ParameterDirection.Input)
  4177. };
  4178. ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
  4179. if (ds.Tables[0].Rows.Count == 0)
  4180. {
  4181. // 2 生产数据恢复到在产生产数据
  4182. sql = @"insert into tp_pm_productiondatain
  4183. (
  4184. ProductionDataID,
  4185. BarCode,
  4186. CentralizedBatchNo,
  4187. ProductionLineID,
  4188. ProductionLineCode,
  4189. ProductionLineName,
  4190. ProcedureID,
  4191. ProcedureCode,
  4192. ProcedureName,
  4193. ProcedureModel,
  4194. ModelType,
  4195. PieceType,
  4196. IsReworked,
  4197. NodeType,
  4198. IsPublicBody,
  4199. IsReFire,
  4200. GoodsLevelID,
  4201. GoodsLevelTypeID,
  4202. SpecialRepairFlag,
  4203. OrganizationID,
  4204. GoodsID,
  4205. GoodsCode,
  4206. GoodsName,
  4207. UserID,
  4208. UserCode,
  4209. UserName,
  4210. ClassesSettingID,
  4211. KilnID,
  4212. KilnCode,
  4213. KilnName,
  4214. KilnCarID,
  4215. KilnCarCode,
  4216. KilnCarName,
  4217. KilnCarBatchNo,
  4218. KilnCarPosition,
  4219. ReworkProcedureID,
  4220. ReworkProcedureCode,
  4221. ReworkProcedureName,
  4222. GroutingDailyID,
  4223. GroutingDailyDetailID,
  4224. GroutingLineID,
  4225. GroutingLineCode,
  4226. GroutingLineName,
  4227. GMouldTypeID,
  4228. CanManyTimes,
  4229. GroutingLineDetailID,
  4230. GroutingDate,
  4231. GroutingMouldCode,
  4232. MouldCode,
  4233. GroutingUserID,
  4234. GroutingUserCode,
  4235. GroutingNum,
  4236. Remarks,
  4237. AccountDate,
  4238. SettlementFlag,
  4239. AccountID,
  4240. ValueFlag,
  4241. CreateTime,
  4242. CreateUserID,
  4243. UpdateTime,
  4244. UpdateUserID,
  4245. OPTimeStamp,
  4246. TriggerFlag,
  4247. LogoID,
  4248. BackOutTime,BackOutUserID,BackOutUserCode,CheckTime
  4249. )
  4250. select
  4251. ProductionDataID,
  4252. BarCode,
  4253. CentralizedBatchNo,
  4254. ProductionLineID,
  4255. ProductionLineCode,
  4256. ProductionLineName,
  4257. ProcedureID,
  4258. ProcedureCode,
  4259. ProcedureName,
  4260. ProcedureModel,
  4261. ModelType,
  4262. PieceType,
  4263. IsReworked,
  4264. NodeType,
  4265. IsPublicBody,
  4266. IsReFire,
  4267. GoodsLevelID,
  4268. GoodsLevelTypeID,
  4269. SpecialRepairFlag,
  4270. OrganizationID,
  4271. GoodsID,
  4272. GoodsCode,
  4273. GoodsName,
  4274. UserID,
  4275. UserCode,
  4276. UserName,
  4277. ClassesSettingID,
  4278. KilnID,
  4279. KilnCode,
  4280. KilnName,
  4281. KilnCarID,
  4282. KilnCarCode,
  4283. KilnCarName,
  4284. KilnCarBatchNo,
  4285. KilnCarPosition,
  4286. ReworkProcedureID,
  4287. ReworkProcedureCode,
  4288. ReworkProcedureName,
  4289. GroutingDailyID,
  4290. GroutingDailyDetailID,
  4291. GroutingLineID,
  4292. GroutingLineCode,
  4293. GroutingLineName,
  4294. GMouldTypeID,
  4295. CanManyTimes,
  4296. GroutingLineDetailID,
  4297. GroutingDate,
  4298. GroutingMouldCode,
  4299. MouldCode,
  4300. GroutingUserID,
  4301. GroutingUserCode,
  4302. GroutingNum,
  4303. Remarks,
  4304. AccountDate,
  4305. SettlementFlag,
  4306. AccountID,
  4307. ValueFlag,
  4308. CreateTime,
  4309. CreateUserID,
  4310. UpdateTime,
  4311. UpdateUserID,
  4312. OPTimeStamp,
  4313. 1,
  4314. LogoID,
  4315. BackOutTime,BackOutUserID,BackOutUserCode,CheckTime
  4316. from TP_PM_ProductionData where valueflag=1 and barcode=:barcode
  4317. ";
  4318. returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
  4319. }
  4320. // 3 停用在产生产数据包装数据 裸瓷包装不停用最后一条数据
  4321. // sql = "update TP_PM_ProductionDataIn set valueflag=0,updateuserID=" + sUserInfo.UserID
  4322. // + " where ProductionDataID=(select max(ProductionDataID) from TP_PM_ProductionDataIn where barcode=:barcode and valueflag=1)";
  4323. //returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
  4324. // 4 插入在产数据
  4325. sql = $@"insert into TP_PM_InProduction
  4326. (
  4327. BarCode,
  4328. ProductionLineID,
  4329. ProductionLineCode,
  4330. ProductionLineName,
  4331. FlowProcedureID,
  4332. FlowProcedureTime,
  4333. ProcedureID,
  4334. ProcedureTime,
  4335. ProductionDataID,
  4336. ProcedureModel,
  4337. ModelType,
  4338. DefectFlag,
  4339. ReworkProcedureID,
  4340. IsPublicBody,
  4341. IsReFire,
  4342. SpecialRepairFlag,
  4343. GoodsLevelID,
  4344. GoodsLevelTypeID,
  4345. GoodsID,
  4346. GoodsCode,
  4347. GoodsName,
  4348. UserID,
  4349. GroutingDailyID,
  4350. GroutingDailyDetailID,
  4351. GroutingDate,
  4352. GroutingLineID,
  4353. GroutingLineCode,
  4354. GroutingLineName,
  4355. GMouldTypeID,
  4356. CanManyTimes,
  4357. GroutingLineDetailID,
  4358. GroutingMouldCode,
  4359. MouldCode,
  4360. GroutingUserID,
  4361. GroutingUserCode,
  4362. GroutingNum,
  4363. Remarks,
  4364. KilnID,
  4365. KilnCode,
  4366. KilnName,
  4367. KilnCarID,
  4368. KilnCarCode,
  4369. KilnCarName,
  4370. KilnCarBatchNo,
  4371. KilnCarPosition,
  4372. AccountID,
  4373. ValueFlag,
  4374. CreateTime,
  4375. CreateUserID,
  4376. UpdateTime,
  4377. UpdateUserID,
  4378. OPTimeStamp,
  4379. LogoID
  4380. )
  4381. select
  4382. BarCode,
  4383. ProductionLineID,
  4384. ProductionLineCode,
  4385. ProductionLineName,
  4386. ProcedureID,
  4387. CreateTime,
  4388. ProcedureID,
  4389. CreateTime,
  4390. ProductionDataID,
  4391. ProcedureModel,
  4392. ModelType,
  4393. 0,
  4394. ReworkProcedureID,
  4395. IsPublicBody,
  4396. IsReFire,
  4397. SpecialRepairFlag,
  4398. {goodsLevelID} AS GoodsLevelID,
  4399. {goodsLevelTypeID} AS GoodsLevelTypeID,
  4400. GoodsID,
  4401. GoodsCode,
  4402. GoodsName,
  4403. UserID,
  4404. GroutingDailyID,
  4405. GroutingDailyDetailID,
  4406. GroutingDate,
  4407. GroutingLineID,
  4408. GroutingLineCode,
  4409. GroutingLineName,
  4410. GMouldTypeID,
  4411. CanManyTimes,
  4412. GroutingLineDetailID,
  4413. GroutingMouldCode,
  4414. MouldCode,
  4415. GroutingUserID,
  4416. GroutingUserCode,
  4417. GroutingNum,
  4418. Remarks,
  4419. KilnID,
  4420. KilnCode,
  4421. KilnName,
  4422. KilnCarID,
  4423. KilnCarCode,
  4424. KilnCarName,
  4425. KilnCarBatchNo,
  4426. KilnCarPosition,
  4427. AccountID,
  4428. ValueFlag,
  4429. CreateTime,
  4430. CreateUserID,
  4431. UpdateTime,
  4432. UpdateUserID,
  4433. OPTimeStamp,
  4434. LogoID
  4435. from TP_PM_ProductionData where TP_PM_ProductionData.ProductionDataID=(select max(ProductionDataID) from TP_PM_ProductionData where barcode=:barcode and valueflag=1)";
  4436. returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
  4437. // 5 删除产成品表
  4438. sql = "delete from tp_pm_finishedproduct where barcode=:barcode and valueflag=1";
  4439. returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
  4440. // 6 更正在产表最新商标 从注浆表取数据 由于变更商标后走了非工序的条码打印,pd表中的最后一条商标不是最新的 ;20240508 by qq
  4441. sql = "select LogoID from tp_pm_groutingdailydetail where barcode=:barcode and valueflag=1";
  4442. DataSet dset = oracleTrConn.GetSqlResultToDs(sql, Paras);
  4443. if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0)
  4444. {
  4445. sql = "update TP_PM_InProduction set LogoID = " + dset.Tables[0].Rows[0]["LogoID"].ToString() + " where barcode=:barcode and valueflag=1";
  4446. returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
  4447. }
  4448. //7 更新裸瓷撤销标识
  4449. sql = "UPDATE TP_PM_GROUTINGDAILYDETAIL SET LUOCIFLAG = 1 WHERE BARCODE=:BARCODE AND VALUEFLAG=1";
  4450. returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
  4451. sql = "SELECT GROUTINGDAILYDETAILID FROM TP_PM_GROUTINGDAILYDETAIL WHERE BARCODE=:BARCODE AND VALUEFLAG=1";
  4452. ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
  4453. //8.插入裸瓷记录表
  4454. sql = " INSERT INTO TP_PM_LUOCIDATA\n" +
  4455. " (BARCODE,\n" +
  4456. " GROUTINGDAILYDETAILID,\n" +
  4457. " ACCOUNTID,\n" +
  4458. " VALUEFLAG,\n" +
  4459. " CREATETIME,\n" +
  4460. " CREATEUSERID,\n" +
  4461. " UPDATETIME,\n" +
  4462. " UPDATEUSERID,\n" +
  4463. " REMARKS)\n" +
  4464. "VALUES\n" +
  4465. " (:BARCODE\n" +
  4466. " ,:GROUTINGDAILYDETAILID\n" +
  4467. " ,:ACCOUNTID\n" +
  4468. " ,1\n" +
  4469. " ,SYSDATE\n" +
  4470. " ,:CREATEUSERID\n" +
  4471. " ,SYSDATE\n" +
  4472. " ,:CREATEUSERID\n" +
  4473. " ,:REMARKS)";
  4474. Paras = new OracleParameter[] {
  4475. new OracleParameter(":BARCODE",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  4476. new OracleParameter(":GROUTINGDAILYDETAILID",OracleDbType.Int32, Convert.ToInt32(ds.Tables[0].Rows[0]["GROUTINGDAILYDETAILID"]),ParameterDirection.Input),
  4477. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,sUserInfo.AccountID, ParameterDirection.Input),
  4478. new OracleParameter(":CREATEUSERID", OracleDbType.Int32,sUserInfo.UserID, ParameterDirection.Input),
  4479. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,"", ParameterDirection.Input)
  4480. };
  4481. returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
  4482. }
  4483. }
  4484. if (returnRows <= 0)
  4485. {
  4486. oracleTrConn.Rollback();
  4487. oracleTrConn.Disconnect();
  4488. }
  4489. else
  4490. {
  4491. oracleTrConn.Commit();
  4492. oracleTrConn.Disconnect();
  4493. }
  4494. }
  4495. catch (Exception ex)
  4496. {
  4497. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4498. {
  4499. oracleTrConn.Rollback();
  4500. oracleTrConn.Disconnect();
  4501. }
  4502. throw ex;
  4503. }
  4504. finally
  4505. {
  4506. if (oracleTrConn.ConnState == ConnectionState.Open)
  4507. {
  4508. oracleTrConn.Disconnect();
  4509. }
  4510. }
  4511. entity.Result = returnRows;
  4512. return entity;
  4513. }
  4514. #endregion
  4515. #region 发货单
  4516. /// <summary>
  4517. /// 获取仓库代码
  4518. /// </summary>
  4519. /// <param name="user"></param>
  4520. /// <param name="cre"></param>
  4521. /// <returns></returns>
  4522. public static ServiceResultEntity GetSendWarehouse(SUserInfo user, ClientRequestEntity cre)
  4523. {
  4524. IDBConnection conn = null;
  4525. try
  4526. {
  4527. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  4528. conn.Open();
  4529. string sqlString = @"SELECT WAREHOUSECODE,WAREHOUSENAME,WAREHOUSETYPE FROM TP_PC_SENDWAREHOUSE WHERE VALUEFLAG = 1";
  4530. IDataParameter[] paras = new OracleParameter[] { };
  4531. DataTable data = conn.GetSqlResultToDt(sqlString, paras);
  4532. ServiceResultEntity sre = new ServiceResultEntity();
  4533. sre.Data = new DataSet();
  4534. sre.Data.Tables.Add(data);
  4535. if (data == null || data.Rows.Count == 0)
  4536. {
  4537. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4538. return sre;
  4539. }
  4540. return sre;
  4541. }
  4542. catch (Exception ex)
  4543. {
  4544. throw ex;
  4545. }
  4546. finally
  4547. {
  4548. if (conn != null &&
  4549. conn.ConnState == ConnectionState.Open)
  4550. {
  4551. conn.Close();
  4552. }
  4553. }
  4554. }
  4555. /// <summary>
  4556. /// 获取车牌号
  4557. /// </summary>
  4558. /// <param name="user"></param>
  4559. /// <param name="cre"></param>
  4560. /// <returns></returns>
  4561. public static ServiceResultEntity GetNumberPlate(SUserInfo user, ClientRequestEntity cre)
  4562. {
  4563. IDBConnection conn = null;
  4564. try
  4565. {
  4566. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  4567. conn.Open();
  4568. string sqlString = @"SELECT NUMBERPLATECODE FROM TP_PC_NUMBERPLATE WHERE VALUEFLAG = 1";
  4569. IDataParameter[] paras = new OracleParameter[] { };
  4570. DataTable data = conn.GetSqlResultToDt(sqlString, paras);
  4571. ServiceResultEntity sre = new ServiceResultEntity();
  4572. sre.Data = new DataSet();
  4573. sre.Data.Tables.Add(data);
  4574. if (data == null || data.Rows.Count == 0)
  4575. {
  4576. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4577. return sre;
  4578. }
  4579. return sre;
  4580. }
  4581. catch (Exception ex)
  4582. {
  4583. throw ex;
  4584. }
  4585. finally
  4586. {
  4587. if (conn != null &&
  4588. conn.ConnState == ConnectionState.Open)
  4589. {
  4590. conn.Close();
  4591. }
  4592. }
  4593. }
  4594. /// <summary>
  4595. /// 获取发货单日志表
  4596. /// </summary>
  4597. /// <param name="user"></param>
  4598. /// <param name="cre"></param>
  4599. /// <returns></returns>
  4600. public static ServiceResultEntity GetSendOutGoodsLog(SUserInfo user, ClientRequestEntity cre)
  4601. {
  4602. IDBConnection conn = null;
  4603. try
  4604. {
  4605. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  4606. conn.Open();
  4607. string sqlString = @"SELECT
  4608. S.SENDOUTGOODSLOGID,
  4609. S.SENDOUTCODE,
  4610. S.USERID,
  4611. S.USERCODE,
  4612. -- S.WAREHOUSINGID,
  4613. S.WAREHOUSINGNAME,
  4614. -- S.RECEIVEID ,
  4615. S.RECEIVENAME,
  4616. -- S.CARPLATEID,
  4617. S.CARPLATENAME,
  4618. S.ACCOUNTDATE,
  4619. S.DELIVERDATE,
  4620. S.SYNCSTATUS,
  4621. CASE WHEN
  4622. S.SYNCSTATUS = 1 THEN '同步成功'
  4623. WHEN S.SYNCSTATUS = 2 THEN '同步失败'
  4624. ELSE '未同步' END AS SYNCSTATUSNAME,
  4625. S.SYNCTIME,
  4626. CASE WHEN S.ISREVOKE = 1 THEN '撤销成功'
  4627. WHEN S.ISREVOKE = 2 THEN '撤销失败'
  4628. ELSE '' END AS ISREVOKE,
  4629. S.REVOKETIME,
  4630. CASE WHEN S.ISAMENDS = 1 THEN '补推成功'
  4631. WHEN S.ISAMENDS = 2 THEN '补推失败'
  4632. ELSE '' END AS ISAMENDS,
  4633. S.AMENDSTIME,
  4634. S.CREATETIME,
  4635. U.USERNAME CREATEUSERNAME,
  4636. S.UPDATETIME,
  4637. U.USERNAME UPDATEUSERNAME,
  4638. S.REMARKS
  4639. FROM
  4640. TP_PM_SENDOUTGOODSLOG S
  4641. LEFT JOIN TP_MST_USER U ON U.USERID = S.CREATEUSERID
  4642. LEFT JOIN TP_MST_USER U1 ON U1.USERID = S.UPDATEUSERID
  4643. WHERE
  4644. S.VALUEFLAG = 1 ";
  4645. //发货单号
  4646. if (cre.Properties["SENDOUTCODE"].ToString() != null && cre.Properties["SENDOUTCODE"].ToString() != "")
  4647. {
  4648. sqlString += " AND S.SENDOUTCODE LIKE :SENDOUTCODE ";
  4649. }
  4650. //发出仓库
  4651. if (cre.Properties["WAREHOUSINGID"].ToString() != null && cre.Properties["WAREHOUSINGID"].ToString() != "")
  4652. {
  4653. sqlString += " AND S.WAREHOUSINGID = :WAREHOUSINGID ";
  4654. }
  4655. //接受仓库
  4656. if (cre.Properties["RECEIVEID"].ToString() != null && cre.Properties["RECEIVEID"].ToString() != "")
  4657. {
  4658. sqlString += " AND S.RECEIVEID = :RECEIVEID ";
  4659. }
  4660. //车牌号
  4661. if (cre.Properties["CARPLATEID"].ToString() != null && cre.Properties["CARPLATEID"].ToString() != "")
  4662. {
  4663. sqlString += " AND S.CARPLATEID = :CARPLATEID ";
  4664. }
  4665. //记账日期
  4666. if (cre.Properties["ACCOUNTDATE"].ToString() != null && cre.Properties["ACCOUNTDATE"].ToString() != "")
  4667. {
  4668. sqlString += " AND TRUNC(S.ACCOUNTDATE) =TO_DATE(:ACCOUNTDATE, 'YYYY-MM-DD')";
  4669. }
  4670. //送货日期
  4671. if (cre.Properties["DELIVERDATE"].ToString() != null && cre.Properties["DELIVERDATE"].ToString() != "")
  4672. {
  4673. sqlString += " AND TRUNC(S.DELIVERDATE) =TO_DATE(:DELIVERDATE, 'YYYY-MM-DD')";
  4674. }
  4675. //同步状态
  4676. if (cre.Properties["SYNCSTATUS"].ToString() != null && cre.Properties["SYNCSTATUS"].ToString() != "")
  4677. {
  4678. sqlString += " AND S.SYNCSTATUS = '" + cre.Properties["SYNCSTATUS"].ToString() + "'";
  4679. }
  4680. IDataParameter[] paras = new OracleParameter[]
  4681. {
  4682. new OracleParameter(":SENDOUTCODE", OracleDbType.NVarchar2, "%"+cre.Properties["SENDOUTCODE"]+"%", ParameterDirection.Input),
  4683. new OracleParameter(":WAREHOUSINGID", OracleDbType.Int32, cre.Properties["WAREHOUSINGID"], ParameterDirection.Input),
  4684. new OracleParameter(":RECEIVEID", OracleDbType.Int32, cre.Properties["RECEIVEID"], ParameterDirection.Input),
  4685. new OracleParameter(":CARPLATEID", OracleDbType.NVarchar2, cre.Properties["CARPLATEID"], ParameterDirection.Input),
  4686. new OracleParameter(":ACCOUNTDATE", OracleDbType.NVarchar2,cre.Properties["ACCOUNTDATE"], ParameterDirection.Input),
  4687. new OracleParameter(":DELIVERDATE", OracleDbType.NVarchar2,cre.Properties["DELIVERDATE"], ParameterDirection.Input),
  4688. };
  4689. DataTable data = conn.GetSqlResultToDt(sqlString, paras);
  4690. ServiceResultEntity sre = new ServiceResultEntity();
  4691. sre.Data = new DataSet();
  4692. sre.Data.Tables.Add(data);
  4693. if (data == null || data.Rows.Count == 0)
  4694. {
  4695. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4696. return sre;
  4697. }
  4698. return sre;
  4699. }
  4700. catch (Exception ex)
  4701. {
  4702. throw ex;
  4703. }
  4704. finally
  4705. {
  4706. if (conn != null &&
  4707. conn.ConnState == ConnectionState.Open)
  4708. {
  4709. conn.Close();
  4710. }
  4711. }
  4712. }
  4713. /// <summary>
  4714. /// 发货单日志明细表查询
  4715. /// </summary>
  4716. /// <param name="user"></param>
  4717. /// <param name="cre"></param>
  4718. /// <returns></returns>
  4719. public static ServiceResultEntity GetSendOutGoodsLogDetail(SUserInfo user, ClientRequestEntity cre)
  4720. {
  4721. IDBConnection conn = null;
  4722. try
  4723. {
  4724. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  4725. conn.Open();
  4726. string sqlString = @"SELECT
  4727. SENDOUTGOODSLOGDETAILID,
  4728. --SENDOUTGOODSLOGID,
  4729. --OUTLABELCODE,
  4730. GOODSCODE,
  4731. MATERIALCODE,
  4732. MATERIALREMARK,
  4733. BINDINGCOUNT,
  4734. BANMA
  4735. FROM
  4736. TP_PM_SENDOUTGOODSLOGDETAIL
  4737. WHERE VALUEFLAG = 1
  4738. AND SENDOUTGOODSLOGID = :SENDOUTGOODSLOGID ";
  4739. IDataParameter[] paras = new OracleParameter[]
  4740. {
  4741. new OracleParameter(":SENDOUTGOODSLOGID", OracleDbType.NVarchar2, cre.Properties["SENDOUTGOODSLOGID"], ParameterDirection.Input),
  4742. };
  4743. DataTable data = conn.GetSqlResultToDt(sqlString, paras);
  4744. ServiceResultEntity sre = new ServiceResultEntity();
  4745. sre.Data = new DataSet();
  4746. sre.Data.Tables.Add(data);
  4747. if (data == null || data.Rows.Count == 0)
  4748. {
  4749. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4750. return sre;
  4751. }
  4752. return sre;
  4753. }
  4754. catch (Exception ex)
  4755. {
  4756. throw ex;
  4757. }
  4758. finally
  4759. {
  4760. if (conn != null &&
  4761. conn.ConnState == ConnectionState.Open)
  4762. {
  4763. conn.Close();
  4764. }
  4765. }
  4766. }
  4767. /// <summary>
  4768. /// 获取发货单总单+明细(编辑页面用)
  4769. /// </summary>
  4770. /// <param name="user"></param>
  4771. /// <param name="cre"></param>
  4772. /// <returns></returns>
  4773. public static ServiceResultEntity GetSendInfo(SUserInfo user, ClientRequestEntity cre)
  4774. {
  4775. IDBConnection conn = null;
  4776. try
  4777. {
  4778. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  4779. conn.Open();
  4780. string sqlString = @"SELECT
  4781. S.SENDOUTGOODSLOGID,
  4782. S.SENDOUTCODE,
  4783. S.USERID,
  4784. S.USERCODE,
  4785. S.WAREHOUSINGID,
  4786. S.WAREHOUSINGNAME,
  4787. S.RECEIVEID ,
  4788. S.RECEIVENAME,
  4789. S.CARPLATEID,
  4790. S.CARPLATENAME,
  4791. S.ACCOUNTDATE,
  4792. S.DELIVERDATE,
  4793. S.SYNCSTATUS,
  4794. S.SYNCTIME,
  4795. S.ISREVOKE,
  4796. S.REVOKETIME,
  4797. S.ISAMENDS ,
  4798. S.AMENDSTIME,
  4799. S.CREATETIME,
  4800. S.UPDATETIME,
  4801. S.REMARKS
  4802. FROM
  4803. TP_PM_SENDOUTGOODSLOG S
  4804. WHERE
  4805. S.SENDOUTGOODSLOGID = :SENDOUTGOODSLOGID ";
  4806. IDataParameter[] paras = new OracleParameter[]
  4807. {
  4808. new OracleParameter(":SENDOUTGOODSLOGID", OracleDbType.Int32, cre.Properties["SENDOUTGOODSLOGID"], ParameterDirection.Input),
  4809. };
  4810. DataTable data = conn.GetSqlResultToDt(sqlString, paras);
  4811. ServiceResultEntity sre = new ServiceResultEntity();
  4812. sre.Data = new DataSet();
  4813. sre.Data.Tables.Add(data);
  4814. //明细
  4815. sqlString = @"SELECT
  4816. --SENDOUTGOODSLOGDETAILID,
  4817. --SENDOUTGOODSLOGID,
  4818. FINISHEDLOADBATCHNO,
  4819. GOODSCODE,
  4820. MATERIALCODE,
  4821. MATERIALREMARK,
  4822. BINDINGCOUNT,
  4823. BANMA
  4824. FROM
  4825. TP_PM_SENDOUTGOODSLOGDETAIL
  4826. WHERE VALUEFLAG = 1
  4827. AND SENDOUTGOODSLOGID = :SENDOUTGOODSLOGID ";
  4828. DataTable data1 = conn.GetSqlResultToDt(sqlString, paras);
  4829. sre.Data.Tables.Add(data1);
  4830. return sre;
  4831. }
  4832. catch (Exception ex)
  4833. {
  4834. throw ex;
  4835. }
  4836. finally
  4837. {
  4838. if (conn != null &&
  4839. conn.ConnState == ConnectionState.Open)
  4840. {
  4841. conn.Close();
  4842. }
  4843. }
  4844. }
  4845. /// <summary>
  4846. /// 撤销
  4847. /// </summary>
  4848. /// <param name="user"></param>
  4849. /// <param name="cre"></param>
  4850. /// <returns></returns>
  4851. public static ServiceResultEntity KHDRevokeInvoice(SUserInfo user, ClientRequestEntity cre)
  4852. {
  4853. IDBConnection conn = null;
  4854. try
  4855. {
  4856. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  4857. conn.Open();
  4858. string ementy = cre.Properties["ementy"].ToString();
  4859. string userCode = user.UserCode.ToString();
  4860. DataTable USERID = conn.GetSqlResultToDt("SELECT PASSWORD FROM TP_MST_USER WHERE USERCODE='" + userCode + "' AND USERID='" + user.UserID + "'");
  4861. return PMModuleLogicDAL.RevokeInvoice(ementy, userCode, USERID.Rows[0]["PASSWORD"].ToString());
  4862. }
  4863. catch (Exception ex)
  4864. {
  4865. throw ex;
  4866. }
  4867. finally
  4868. {
  4869. if (conn != null &&
  4870. conn.ConnState == ConnectionState.Open)
  4871. {
  4872. conn.Close();
  4873. }
  4874. }
  4875. }
  4876. /// <summary>
  4877. /// 删除
  4878. /// </summary>
  4879. /// <param name="user"></param>
  4880. /// <param name="cre"></param>
  4881. /// <returns></returns>
  4882. public static ServiceResultEntity KHDDestroyInvoice(SUserInfo user, ClientRequestEntity cre)
  4883. {
  4884. IDBConnection conn = null;
  4885. try
  4886. {
  4887. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  4888. conn.Open();
  4889. string ementy = cre.Properties["ementy"].ToString();
  4890. string userCode = user.UserCode.ToString();
  4891. DataTable USERID = conn.GetSqlResultToDt("SELECT PASSWORD FROM TP_MST_USER WHERE USERCODE='" + userCode + "' AND USERID='" + user.UserID + "'");
  4892. return PMModuleLogicDAL.DestroyInvoice(ementy, userCode, USERID.Rows[0]["PASSWORD"].ToString());
  4893. }
  4894. catch (Exception ex)
  4895. {
  4896. throw ex;
  4897. }
  4898. finally
  4899. {
  4900. if (conn != null &&
  4901. conn.ConnState == ConnectionState.Open)
  4902. {
  4903. conn.Close();
  4904. }
  4905. }
  4906. }
  4907. /// <summary>
  4908. /// 补推
  4909. /// </summary>
  4910. /// <param name="user"></param>
  4911. /// <param name="cre"></param>
  4912. /// <returns></returns>
  4913. public static ServiceResultEntity KHDSupplementaryPush(SUserInfo user, ClientRequestEntity cre)
  4914. {
  4915. IDBConnection conn = null;
  4916. try
  4917. {
  4918. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  4919. conn.Open();
  4920. string ementy = cre.Properties["ementy"].ToString();
  4921. string userCode = user.UserCode.ToString();
  4922. DataTable USERID = conn.GetSqlResultToDt("SELECT PASSWORD FROM TP_MST_USER WHERE USERCODE='" + userCode + "' AND USERID='" + user.UserID + "'");
  4923. return PMModuleLogicDAL.SupplementaryPush(ementy, userCode);
  4924. }
  4925. catch (Exception ex)
  4926. {
  4927. throw ex;
  4928. }
  4929. finally
  4930. {
  4931. if (conn != null &&
  4932. conn.ConnState == ConnectionState.Open)
  4933. {
  4934. conn.Close();
  4935. }
  4936. }
  4937. }
  4938. /// <summary>
  4939. /// 产成品交接条码验证
  4940. /// </summary>
  4941. /// <param name="barcode"></param>
  4942. /// <param name="sUserInfo"></param>
  4943. /// <returns></returns>
  4944. public static ServiceResultEntity CHeckFinishOutlabelCode(string barcode, SUserInfo sUserInfo)
  4945. {
  4946. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4947. try
  4948. {
  4949. oracleConn.Open();
  4950. ServiceResultEntity resultEntity = new ServiceResultEntity();
  4951. // 如果是板码,不能扫板码?
  4952. #region 暂时注释板码
  4953. string banMa = string.Empty;
  4954. // if (barcode.Length == 8)
  4955. // {
  4956. // banMa = barcode;
  4957. // string sqlBanMa = @"
  4958. //SELECT BARCODE,
  4959. // FINISHEDLOADBATCHNO
  4960. // FROM TP_PM_FINISHEDPRODUCT
  4961. // WHERE BANMA = :barcode and FHTIME is not null and SENDOUTFLAG<>1 order by FHTIME desc";
  4962. // OracleParameter[] parasBanMa = new OracleParameter[]
  4963. // {
  4964. // new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input)
  4965. // };
  4966. // DataTable dtBanMa = oracleConn.GetSqlResultToDt(sqlBanMa, parasBanMa);
  4967. // if (dtBanMa.Rows.Count == 0)
  4968. // {
  4969. // resultEntity.Result = -1;
  4970. // resultEntity.Message = "当前载具上无可发货的产品。";
  4971. // return resultEntity;
  4972. // }
  4973. // //DataTable dtFinishedLoadBatchNo = dtBanMa.DefaultView.ToTable(true, new string[] { "FINISHEDLOADBATCHNO" });
  4974. // //if (dtFinishedLoadBatchNo.Rows.Count > 1)
  4975. // //{
  4976. // // resultEntity.Result = -1;
  4977. // // resultEntity.Message = "当前载具存在超过两版以上的产品。";
  4978. // // return resultEntity;
  4979. // //}
  4980. // barcode = dtBanMa.Rows[0]["BARCODE"].ToString();
  4981. // }
  4982. // else//外箱吗
  4983. // {
  4984. // banMa = barcode;
  4985. // string sqlBanMa = @"
  4986. // select BANMA,TP_PM_GroutingDailyDetail.GOODSCODE,MATERIALCODE,MATERIALREMARK from TP_PM_FINISHEDPRODUCT left join TP_PM_GroutingDailyDetail on TP_PM_GroutingDailyDetail.BARCODE=TP_PM_FINISHEDPRODUCT.BARCODE
  4987. // WHERE TP_PM_GroutingDailyDetail.outlabelcode = :barcode and FHTIME is not null and SENDOUTFLAG<>1";
  4988. // OracleParameter[] parasBanMa = new OracleParameter[]
  4989. // {
  4990. // new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input)
  4991. // };
  4992. // DataTable dtBanMa = oracleConn.GetSqlResultToDt(sqlBanMa, parasBanMa);
  4993. // if (dtBanMa.Rows.Count == 0)
  4994. // {
  4995. // resultEntity.Result = -1;
  4996. // resultEntity.Message = "当前载具上无可发货的产品。";
  4997. // return resultEntity;
  4998. // }
  4999. // }
  5000. #endregion
  5001. string FINISHEDLOADBATCHNO = null;
  5002. string fhtime = "";
  5003. string sql = "";
  5004. // 1.判断产品是否在产成品表中
  5005. if (barcode.Length == 8)
  5006. {
  5007. sql = @"select
  5008. f.FHUserID,
  5009. f.FHUserCode,
  5010. f.GoodsID,
  5011. f.GoodsCode,
  5012. f.GoodsName,
  5013. f.BarCode, f.FINISHEDLOADBATCHNO,FHTIME,SENDOUTGOODSLOGID ,f.TEMPORARILYFLAG
  5014. from TP_PM_FinishedProduct f
  5015. where f.BANMA=:BarCode and FHTIME is not null order by FHTIME desc ";
  5016. }
  5017. else {
  5018. string sqlString = @"select FUN_CMN_GetBarCode(:barcode,null,:accountid) From DUAL";
  5019. OracleParameter[] paras1 = new OracleParameter[]{
  5020. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  5021. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  5022. };
  5023. DataSet ds = oracleConn.GetSqlResultToDs(sqlString, paras1);
  5024. if (ds != null && ds.Tables[0].Rows.Count > 0)
  5025. {
  5026. barcode = ds.Tables[0].Rows[0][0].ToString();
  5027. }
  5028. sql = "select f.FHUserCode,f.FINISHEDLOADBATCHNO,FHTIME,SENDOUTGOODSLOGID,f.TEMPORARILYFLAG from TP_PM_FINISHEDPRODUCT f WHERE f.BarCode = :BarCode ";
  5029. }
  5030. string currentBarcode = string.Empty;
  5031. OracleParameter[] paras = new OracleParameter[]{
  5032. new OracleParameter(":BarCode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
  5033. //new OracleParameter(":Accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  5034. };
  5035. DataSet dsResult = oracleConn.GetSqlResultToDs(sql, paras);
  5036. if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
  5037. {
  5038. FINISHEDLOADBATCHNO = dsResult.Tables[0].Rows[0]["FINISHEDLOADBATCHNO"].ToString();
  5039. fhtime = dsResult.Tables[0].Rows[0]["FHTIME"].ToString();
  5040. //暂存标识,如果是暂存数据,不允许发货
  5041. int temporarilyFlag = Convert.ToInt32(dsResult.Tables[0].Rows[0]["TEMPORARILYFLAG"]);
  5042. // 在产成品表中
  5043. #region 是否交接过
  5044. string fhUserCode = dsResult.Tables[0].Rows[0]["FHUserCode"].ToString();
  5045. if (dsResult.Tables[0].Rows[0]["SENDOUTGOODSLOGID"] != null && !string.IsNullOrEmpty(dsResult.Tables[0].Rows[0]["SENDOUTGOODSLOGID"].ToString()) && dsResult.Tables[0].Rows[0]["SENDOUTGOODSLOGID"].ToString() != "0")
  5046. {
  5047. string sqlStr1 = "select f.SENDOUTCODE,f.MBLNR from Tp_Pm_Sendoutgoodslog f WHERE f.SENDOUTGOODSLOGID = " + Convert.ToInt32(dsResult.Tables[0].Rows[0]["SENDOUTGOODSLOGID"]);
  5048. DataTable dsResult1 = oracleConn.GetSqlResultToDt(sqlStr1, null);
  5049. resultEntity.Status = Constant.ServiceResultStatus.ValidationFailed;
  5050. resultEntity.Message = "此产品【" + barcode + "】已发货,不能进行该操作,凭证单号:【"+ dsResult1.Rows[0]["MBLNR"].ToString() +
  5051. "】;发货单号:"+ dsResult1.Rows[0]["SENDOUTCODE"].ToString();
  5052. return resultEntity;
  5053. }
  5054. if (string.IsNullOrEmpty(fhUserCode))
  5055. {
  5056. resultEntity.Status = Constant.ServiceResultStatus.DataChanged; //未交接,不能进行
  5057. resultEntity.Message = "此产品【" + barcode + "】未交接,不能进行该操作";
  5058. return resultEntity;
  5059. }
  5060. if (temporarilyFlag == 1)
  5061. {
  5062. resultEntity.Status = Constant.ServiceResultStatus.ValidationFailed; //未同步sap
  5063. resultEntity.Message = "此产品【" + barcode + "】的交接为暂存数据,未同步SAP等系统,不能进行该操作";
  5064. return resultEntity;
  5065. }
  5066. #endregion
  5067. }
  5068. else
  5069. {
  5070. #region 条码在废弃产品表中且审批通过,提示:此产品【999999】已被废弃,不能进行该操作。
  5071. sql = @"select GoodsCode from tp_pm_inproductiontrash where BarCode=:BarCode";
  5072. dsResult = oracleConn.GetSqlResultToDs(sql, paras);
  5073. if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
  5074. {
  5075. resultEntity.Status = Constant.ServiceResultStatus.NoSearchResults; //产品已经报损
  5076. resultEntity.Message = "此产品【" + barcode + "】已被废弃,不能进行该操作";
  5077. return resultEntity;
  5078. }
  5079. #endregion
  5080. #region 未交坯
  5081. sql = "select GoodsCode from TP_PM_GroutingDailyDetail where BarCode=:BarCode and DeliverTime is null";
  5082. dsResult = oracleConn.GetSqlResultToDs(sql, paras);
  5083. if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
  5084. {
  5085. resultEntity.Status = Constant.ServiceResultStatus.NoModifyData; //产品未交坏
  5086. resultEntity.Message = "此产品【" + barcode + "】还未交坯,不能进行该操作";
  5087. return resultEntity;
  5088. }
  5089. else
  5090. {
  5091. resultEntity.Status = Constant.ServiceResultStatus.SystemError; //无效条码
  5092. resultEntity.Message = "此条码【" + barcode + "】为无效条码,不能进行该操作";
  5093. return resultEntity;
  5094. }
  5095. #endregion
  5096. }
  5097. #region 查询产品相关信息
  5098. sql = @" SELECT F.BANMA,G.GOODSMODEL GOODSCODE,GDD.MATERIALCODE,GDD.MATERIALREMARK,F.FINISHEDLOADBATCHNO,COUNT(1) COUNT
  5099. FROM TP_PM_FINISHEDPRODUCT F
  5100. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID=F.GROUTINGDAILYDETAILID
  5101. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = F.GOODSID WHERE 1=1 ";
  5102. if (!string.IsNullOrEmpty(FINISHEDLOADBATCHNO))
  5103. {
  5104. sql += " AND F.FINISHEDLOADBATCHNO='" + FINISHEDLOADBATCHNO + "'";
  5105. }
  5106. //if (!string.IsNullOrEmpty(fhtime))
  5107. //{
  5108. // sql += " and FHTIME=FUN_CMN_GETDATETIME('" + fhtime + "') ";
  5109. //}
  5110. sql += " GROUP BY F.BANMA,G.GOODSMODEL,GDD.MATERIALCODE,GDD.MATERIALREMARK,F.FINISHEDLOADBATCHNO";
  5111. dsResult = oracleConn.GetSqlResultToDs(sql);
  5112. if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
  5113. {
  5114. resultEntity.Result = dsResult.Tables[0];
  5115. resultEntity.Status= Constant.ServiceResultStatus.Success;
  5116. }
  5117. #endregion
  5118. return resultEntity;
  5119. }
  5120. catch (Exception ex)
  5121. {
  5122. throw ex;
  5123. }
  5124. finally
  5125. {
  5126. if (oracleConn.ConnState == ConnectionState.Open)
  5127. {
  5128. oracleConn.Close();
  5129. }
  5130. }
  5131. }
  5132. #endregion
  5133. #region 首件登记检验
  5134. /// <summary>
  5135. /// 查询总单
  5136. /// </summary>
  5137. /// <param name="user"></param>
  5138. /// <param name="cre"></param>
  5139. /// <returns></returns>
  5140. public static ServiceResultEntity GetRegisterData(SUserInfo user, ClientRequestEntity cre)
  5141. {
  5142. IDBConnection conn = null;
  5143. try
  5144. {
  5145. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  5146. conn.Open();
  5147. string sqlString = @" SELECT F.REGISTERID,F.REGISTERNO
  5148. ,F.WORKSHOP
  5149. ,F.GOODSCODE
  5150. ,L.LOGONAME
  5151. ,F.MATERIALCODE
  5152. ,D.DICTIONARYVALUE FIRGOODSTYPE
  5153. ,F.FIRQUANTITY
  5154. ,F.BARCODES
  5155. ,D1.DICTIONARYVALUE FIRBASIS
  5156. ,to_char( F.ACCOUNTDATE ,'YYYY/MM/DD') ACCOUNTDATE
  5157. ,F.CREATETIME
  5158. ,F.UPDATETIME
  5159. ,U.USERNAME
  5160. ,U1.USERNAME UPDATEUSER
  5161. ,F.REMARKS
  5162. ,CASE WHEN F.ADVICE IS NULL THEN ''
  5163. WHEN F.ADVICE = 0 THEN '不合格'
  5164. WHEN F.ADVICE = 1 THEN '合格'
  5165. ELSE '' END AS ADVICE
  5166. ,F.ADVICEREMARKS
  5167. ,CASE WHEN F.STATUS = 0 THEN '未登记'
  5168. WHEN F.STATUS = 1 THEN '检测中'
  5169. WHEN F.STATUS = 2 THEN '待研发部检验'
  5170. WHEN F.STATUS = 3 THEN '待签名'
  5171. WHEN F.STATUS = 4 THEN '已完结'
  5172. ELSE '' END AS STATUS
  5173. ,F.STATUS STATUSID
  5174. ,F.CHECKQUANTITY
  5175. FROM TP_PM_FIRSTREGISTER F
  5176. LEFT JOIN TP_MST_USER U ON U.USERID = F.CREATEUSERID
  5177. LEFT JOIN TP_MST_USER U1 ON U1.USERID = F.UPDATEUSERID
  5178. LEFT JOIN TP_MST_DATADICTIONARY D ON D.DICTIONARYID = F.FIRGOODSTYPE
  5179. LEFT JOIN TP_MST_DATADICTIONARY D1 ON D1.DICTIONARYID = F.FIRBASIS
  5180. LEFT JOIN TP_MST_LOGO L ON L.LOGOID = F.LOGOID
  5181. WHERE F.VALUEFLAG = 1
  5182. AND F.CREATETIME >= :CREATETIMEBEGIN
  5183. AND F.CREATETIME < :CREATETIMEEND";
  5184. List<OracleParameter> parameters = new List<OracleParameter>();
  5185. parameters.Add(new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CREATETIMEBEGIN"], ParameterDirection.Input));
  5186. parameters.Add(new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CREATETIMEEND"], ParameterDirection.Input));
  5187. // 单号
  5188. if (!string.IsNullOrEmpty(cre.Properties["REGISTERNO"].ToString()))
  5189. {
  5190. sqlString = sqlString + " AND instr(F.REGISTERNO,:REGISTERNO)>0 ";
  5191. parameters.Add(new OracleParameter(":REGISTERNO", OracleDbType.NVarchar2, cre.Properties["REGISTERNO"], ParameterDirection.Input));
  5192. }
  5193. // 车间
  5194. if (!string.IsNullOrEmpty(cre.Properties["WORKSHOP"].ToString()))
  5195. {
  5196. sqlString = sqlString + " AND F.WORKSHOP = :WORKSHOP ";
  5197. parameters.Add(new OracleParameter(":WORKSHOP", OracleDbType.Int32, cre.Properties["WORKSHOP"], ParameterDirection.Input));
  5198. }
  5199. // 产品编码
  5200. if (!string.IsNullOrEmpty(cre.Properties["GOODSCODE"].ToString()))
  5201. {
  5202. sqlString = sqlString + " AND instr(F.GOODSCODE,:GOODSCODE)>0 ";
  5203. parameters.Add(new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2, cre.Properties["GOODSCODE"], ParameterDirection.Input));
  5204. }
  5205. // 产品类型
  5206. if (!string.IsNullOrEmpty(cre.Properties["FIRGOODSTYPE"].ToString()))
  5207. {
  5208. sqlString = sqlString + " AND F.FIRGOODSTYPE = :FIRGOODSTYPE ";
  5209. parameters.Add(new OracleParameter(":FIRGOODSTYPE", OracleDbType.Int32, cre.Properties["FIRGOODSTYPE"], ParameterDirection.Input));
  5210. }
  5211. // 检验依据
  5212. if (!string.IsNullOrEmpty(cre.Properties["FIRBASIS"].ToString()))
  5213. {
  5214. sqlString = sqlString + " AND F.FIRBASIS = :FIRBASIS ";
  5215. parameters.Add(new OracleParameter(":FIRBASIS", OracleDbType.Int32, cre.Properties["FIRBASIS"], ParameterDirection.Input));
  5216. }
  5217. //状态
  5218. if (!string.IsNullOrEmpty(cre.Properties["STATUS"].ToString()))
  5219. {
  5220. sqlString = sqlString + " AND F.STATUS = :STATUS ";
  5221. parameters.Add(new OracleParameter(":STATUS", OracleDbType.Int32, cre.Properties["STATUS"], ParameterDirection.Input));
  5222. }
  5223. DataTable dt = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  5224. ServiceResultEntity sre = new ServiceResultEntity();
  5225. sre.Data = new DataSet();
  5226. sre.Data.Tables.Add(dt);
  5227. return sre;
  5228. }
  5229. catch (Exception ex)
  5230. {
  5231. throw ex;
  5232. }
  5233. finally
  5234. {
  5235. if (conn != null &&
  5236. conn.ConnState == ConnectionState.Open)
  5237. {
  5238. conn.Close();
  5239. }
  5240. }
  5241. }
  5242. /// <summary>
  5243. /// 查询条码及签名明细
  5244. /// </summary>
  5245. /// <param name="user"></param>
  5246. /// <param name="cre"></param>
  5247. /// <returns></returns>
  5248. public static ServiceResultEntity GetRegisterDetail(SUserInfo user, ClientRequestEntity cre)
  5249. {
  5250. IDBConnection conn = null;
  5251. try
  5252. {
  5253. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  5254. conn.Open();
  5255. //明细
  5256. string sqlString = @" SELECT F.BARID,
  5257. F.BARCODE
  5258. FROM TP_PM_FIRSTREGISTERBAR F
  5259. WHERE F.REGISTERID = :REGISTERID ";
  5260. //string sqlString = @" SELECT F.REGISTERID,
  5261. // F.DETAILID,
  5262. // F.ITEMSYTPE,
  5263. // F.ITEMSNAME,
  5264. // F.ITEMSINFO ,
  5265. // F.ITEMSVALUE,
  5266. // F.ITEMSREMARKS
  5267. // FROM TP_PM_FIRSTREGISTERDETAIL F
  5268. // WHERE F.REGISTERID = :REGISTERID
  5269. // AND F.VALUEFLAG =1 ";
  5270. List<OracleParameter> parameters = new List<OracleParameter>();
  5271. parameters.Add(new OracleParameter(":REGISTERID", OracleDbType.Int32, cre.Properties["REGISTERID"], ParameterDirection.Input));
  5272. DataTable dt = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  5273. ServiceResultEntity sre = new ServiceResultEntity();
  5274. sre.Data = new DataSet();
  5275. sre.Data.Tables.Add(dt);
  5276. //三个签名
  5277. sqlString = @" SELECT F.PGSIGNATURE,
  5278. F.CJSIGNATURE,
  5279. F.SKSIGNATURE,
  5280. F.YFSIGNATURE,
  5281. F.GYSIGNATURE,
  5282. F.XMZSIGNATURE
  5283. FROM TP_PM_FIRSTREGISTER F
  5284. WHERE F.REGISTERID = :REGISTERID
  5285. AND F.VALUEFLAG =1 ";
  5286. //sqlString = @" SELECT F.IMAGE PGSIGNATURE
  5287. // FROM TP_MST_GOODSFILENAME F ORDER BY F.CREATETIME DESC
  5288. //";
  5289. DataTable dt1 = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  5290. sre.Data.Tables.Add(dt1);
  5291. return sre;
  5292. }
  5293. catch (Exception ex)
  5294. {
  5295. throw ex;
  5296. }
  5297. finally
  5298. {
  5299. if (conn != null &&
  5300. conn.ConnState == ConnectionState.Open)
  5301. {
  5302. conn.Close();
  5303. }
  5304. }
  5305. }
  5306. /// <summary>
  5307. /// 查询项目明细
  5308. /// </summary>
  5309. /// <param name="user"></param>
  5310. /// <param name="cre"></param>
  5311. /// <returns></returns>
  5312. public static ServiceResultEntity GetItemDetail(SUserInfo user, ClientRequestEntity cre)
  5313. {
  5314. IDBConnection conn = null;
  5315. try
  5316. {
  5317. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  5318. conn.Open();
  5319. //明细
  5320. string sqlString = @" SELECT F.REGISTERID,
  5321. F.DETAILID,
  5322. F.ITEMSYTPE,
  5323. F.ITEMSNAME,
  5324. F.ITEMSINFO ,
  5325. CASE WHEN F.ITEMSVALUE = 0 THEN '不合格'
  5326. WHEN F.ITEMSVALUE = 1 THEN '合格'
  5327. ELSE '' END AS ITEMSVALUE,
  5328. F.ITEMSREMARKS,
  5329. U.USERCODE CREATEUSERCODE,
  5330. U.USERNAME CREATEUSERNAME,
  5331. U1.USERNAME UPDATEUSERNAME
  5332. FROM TP_PM_FIRSTREGISTERDETAIL F
  5333. LEFT JOIN TP_MST_USER U ON F.CREATEUSERID = U.USERID
  5334. LEFT JOIN TP_MST_USER U1 ON F.UPDATEUSERID = U1.USERID
  5335. WHERE F.REGISTERID = :REGISTERID
  5336. AND F.BARID = :BARID
  5337. AND F.VALUEFLAG =1
  5338. ORDER BY F.ITEMSID";
  5339. List<OracleParameter> parameters = new List<OracleParameter>();
  5340. parameters.Add(new OracleParameter(":REGISTERID", OracleDbType.Int32, cre.Properties["REGISTERID"], ParameterDirection.Input));
  5341. parameters.Add(new OracleParameter(":BARID", OracleDbType.Int32, cre.Properties["BARID"], ParameterDirection.Input));
  5342. DataTable dt = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  5343. ServiceResultEntity sre = new ServiceResultEntity();
  5344. sre.Data = new DataSet();
  5345. sre.Data.Tables.Add(dt);
  5346. return sre;
  5347. }
  5348. catch (Exception ex)
  5349. {
  5350. throw ex;
  5351. }
  5352. finally
  5353. {
  5354. if (conn != null &&
  5355. conn.ConnState == ConnectionState.Open)
  5356. {
  5357. conn.Close();
  5358. }
  5359. }
  5360. }
  5361. /// <summary>
  5362. /// 查询物料编码
  5363. /// </summary>
  5364. /// <param name="user"></param>
  5365. /// <param name="cre"></param>
  5366. /// <returns></returns>
  5367. public static ServiceResultEntity GetMatnr(SUserInfo user, ClientRequestEntity cre)
  5368. {
  5369. IDBConnection conn = null;
  5370. try
  5371. {
  5372. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  5373. conn.Open();
  5374. string sqlString = @" SELECT
  5375. MATERIALCODE
  5376. FROM
  5377. (
  5378. SELECT SAP.MATERIALCODE FROM TP_MST_GOODSLOGOSAP SAP
  5379. WHERE
  5380. SAP.GOODSCODE = :GOODSCODE
  5381. AND SAP.LOGOID = :LOGOID
  5382. UNION
  5383. SELECT G.MATERIALCODE FROM TP_MST_GOODS G
  5384. WHERE
  5385. G.GOODSCODE = :GOODSCODE
  5386. AND G.LOGOID = :LOGOID
  5387. )
  5388. WHERE
  5389. ROWNUM < 2 ";
  5390. IDataParameter[] paras = new OracleParameter[]
  5391. {
  5392. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2, cre.Properties["GOODSCODE"], ParameterDirection.Input),
  5393. new OracleParameter(":LOGOID", OracleDbType.Int32, cre.Properties["LOGOID"], ParameterDirection.Input),
  5394. };
  5395. DataTable data = conn.GetSqlResultToDt(sqlString, paras);
  5396. ServiceResultEntity sre = new ServiceResultEntity();
  5397. sre.Data = new DataSet();
  5398. sre.Data.Tables.Add(data);
  5399. return sre;
  5400. }
  5401. catch (Exception ex)
  5402. {
  5403. throw ex;
  5404. }
  5405. finally
  5406. {
  5407. if (conn != null &&
  5408. conn.ConnState == ConnectionState.Open)
  5409. {
  5410. conn.Close();
  5411. }
  5412. }
  5413. }
  5414. /// <summary>
  5415. /// 编辑查询数据
  5416. /// </summary>
  5417. /// <param name="user"></param>
  5418. /// <param name="cre"></param>
  5419. /// <returns></returns>
  5420. public static ServiceResultEntity GetInfo(SUserInfo user, ClientRequestEntity cre)
  5421. {
  5422. IDBConnection conn = null;
  5423. try
  5424. {
  5425. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  5426. conn.Open();
  5427. ServiceResultEntity sre = new ServiceResultEntity();
  5428. string sqlString = @" SELECT F.REGISTERID,
  5429. F.REGISTERNO
  5430. ,F.WORKSHOP
  5431. ,F.GOODSID
  5432. ,F.GOODSCODE
  5433. ,G.GOODSNAME
  5434. ,F.LOGOID
  5435. ,F.MATERIALCODE
  5436. ,F.FIRGOODSTYPE
  5437. ,F.FIRQUANTITY
  5438. ,F.BARCODES
  5439. ,F.FIRBASIS
  5440. ,F.ACCOUNTDATE
  5441. ,F.REMARKS
  5442. ,F.STATUS
  5443. FROM TP_PM_FIRSTREGISTER F
  5444. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = F.GOODSID
  5445. WHERE F.VALUEFLAG = 1
  5446. AND F.REGISTERID = :REGISTERID ";
  5447. List<OracleParameter> parameters = new List<OracleParameter>();
  5448. parameters.Add(new OracleParameter(":REGISTERID", OracleDbType.Int32, cre.Properties["REGISTERID"], ParameterDirection.Input));
  5449. DataTable data = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  5450. sre.Data = new DataSet();
  5451. sre.Data.Tables.Add(data);
  5452. if (cre.Properties.ContainsKey("BARID"))
  5453. {
  5454. //明细
  5455. sqlString = @"SELECT F.REGISTERID,
  5456. F.DETAILID,
  5457. F.ITEMSYTPE,
  5458. F.ITEMSNAME,
  5459. F.ITEMSINFO ,
  5460. F.ITEMSVALUE itemsValueID,
  5461. F.ITEMSREMARKS
  5462. FROM TP_PM_FIRSTREGISTERDETAIL F
  5463. WHERE F.REGISTERID = :REGISTERID
  5464. AND F.BARID = :BARID
  5465. AND F.VALUEFLAG =1 ";
  5466. }
  5467. else
  5468. {
  5469. //明细
  5470. sqlString = @"SELECT F.REGISTERID,
  5471. F.DETAILID,
  5472. F.ITEMSYTPE,
  5473. F.ITEMSNAME,
  5474. F.ITEMSINFO ,
  5475. F.ITEMSVALUE itemsValueID,
  5476. F.ITEMSREMARKS
  5477. FROM TP_PM_FIRSTREGISTERDETAIL F
  5478. WHERE 1=0 ";
  5479. }
  5480. parameters.Add(new OracleParameter(":BARID", OracleDbType.Int32, cre.Properties["BARID"], ParameterDirection.Input));
  5481. DataTable data1 = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  5482. sre.Data.Tables.Add(data1);
  5483. return sre;
  5484. }
  5485. catch (Exception ex)
  5486. {
  5487. throw ex;
  5488. }
  5489. finally
  5490. {
  5491. if (conn != null &&
  5492. conn.ConnState == ConnectionState.Open)
  5493. {
  5494. conn.Close();
  5495. }
  5496. }
  5497. }
  5498. /// <summary>
  5499. /// 保存
  5500. /// </summary>
  5501. /// <param name="user">登录用户信息</param>
  5502. /// <param name="se">查询条件</param>
  5503. /// <returns>查询结果</returns>
  5504. public static ServiceResultEntity SaveFirstRegister(SUserInfo user, ClientRequestEntity cre)
  5505. {
  5506. IDBTransaction conn = null;
  5507. ServiceResultEntity sre = new ServiceResultEntity();
  5508. try
  5509. {
  5510. conn = ClsDbFactory.CreateDBTransaction(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  5511. int result = 0;
  5512. if ( cre.Properties.ContainsKey("REGISTERID") && Convert.ToInt32(cre.Properties["REGISTERID"]) > 0)
  5513. {
  5514. //编辑
  5515. string sqlString = @" SELECT F.STATUS
  5516. FROM TP_PM_FIRSTREGISTER F
  5517. WHERE F.VALUEFLAG = 1
  5518. AND F.REGISTERID = :REGISTERID ";
  5519. List<OracleParameter> parameters = new List<OracleParameter>();
  5520. parameters.Add(new OracleParameter(":REGISTERID", OracleDbType.Int32, cre.Properties["REGISTERID"], ParameterDirection.Input));
  5521. DataTable data = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  5522. if (data != null && data.Rows.Count >0)
  5523. {
  5524. if (Convert.ToInt32(data.Rows[0]["STATUS"]) == 0)
  5525. {
  5526. //可编辑总单,没有明细
  5527. string updateInsert = @" UPDATE TP_PM_FIRSTREGISTER SET
  5528. WORKSHOP = :WORKSHOP,
  5529. GOODSID = :GOODSID,
  5530. GOODSCODE = :GOODSCODE,
  5531. LOGOID = :LOGOID,
  5532. MATERIALCODE = :MATERIALCODE,
  5533. FIRGOODSTYPE = :FIRGOODSTYPE,
  5534. FIRQUANTITY = :FIRQUANTITY,
  5535. BARCODES = :BARCODES,
  5536. FIRBASIS = :FIRBASIS,
  5537. REMARKS = :REMARKS,
  5538. ACCOUNTDATE = :ACCOUNTDATE,
  5539. UPDATETIME= SYSDATE,
  5540. UPDATEUSERID= :UPDATEUSERID
  5541. WHERE REGISTERID = :REGISTERID AND VALUEFLAG =1 ";
  5542. IDataParameter[] insertParas = new OracleParameter[]
  5543. {
  5544. new OracleParameter(":REGISTERID", OracleDbType.Int32,cre.Properties["REGISTERID"], ParameterDirection.Input),
  5545. new OracleParameter(":WORKSHOP", OracleDbType.Int32,cre.Properties["WORKSHOP"], ParameterDirection.Input),
  5546. new OracleParameter(":GOODSID", OracleDbType.Int32,cre.Properties["GOODSID"], ParameterDirection.Input),
  5547. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,cre.Properties["GOODSCODE"], ParameterDirection.Input),
  5548. new OracleParameter(":LOGOID", OracleDbType.Int32,cre.Properties["LOGOID"], ParameterDirection.Input),
  5549. new OracleParameter(":MATERIALCODE", OracleDbType.NVarchar2,cre.Properties["MATERIALCODE"], ParameterDirection.Input),
  5550. new OracleParameter(":FIRGOODSTYPE", OracleDbType.Int32,cre.Properties["FIRGOODSTYPE"], ParameterDirection.Input),
  5551. new OracleParameter(":FIRQUANTITY", OracleDbType.Int32,cre.Properties["FIRQUANTITY"], ParameterDirection.Input),
  5552. new OracleParameter(":BARCODES", OracleDbType.NVarchar2,cre.Properties["BARCODES"], ParameterDirection.Input),
  5553. new OracleParameter(":FIRBASIS", OracleDbType.Int32,cre.Properties["FIRBASIS"], ParameterDirection.Input),
  5554. new OracleParameter(":ACCOUNTDATE", OracleDbType.Date,cre.Properties["ACCOUNTDATE"], ParameterDirection.Input),
  5555. new OracleParameter(":UPDATEUSERID", OracleDbType.Int32,user.UserID, ParameterDirection.Input),
  5556. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,cre.Properties["REMARKS"], ParameterDirection.Input),
  5557. };
  5558. result += conn.ExecuteNonQuery(updateInsert, insertParas);
  5559. }
  5560. else
  5561. {
  5562. //只能编辑明细中的备注及部分值
  5563. if (cre.Properties.ContainsKey("BARID") && Convert.ToInt32(cre.Properties["BARID"]) > 0)
  5564. {
  5565. if (cre.Data.Tables.Count > 0)
  5566. {
  5567. DataTable detailTable = cre.Data.Tables[0];
  5568. for (int i = 0; i < detailTable.Rows.Count; i++)
  5569. {
  5570. string updatesql = "";
  5571. if (detailTable.Rows[i]["ITEMSNAME"].ToString() == "综合判定")
  5572. {
  5573. updatesql = @" UPDATE TP_PM_FIRSTREGISTERDETAIL SET
  5574. ITEMSREMARKS = :ITEMSREMARKS,
  5575. UPDATETIME= SYSDATE,
  5576. UPDATEUSERID= :UPDATEUSERID
  5577. WHERE REGISTERID = :REGISTERID AND DETAILID = :DETAILID AND BARID = :BARID";
  5578. IDataParameter[] updateParas = new OracleParameter[]
  5579. {
  5580. new OracleParameter(":REGISTERID", OracleDbType.Int32,cre.Properties["REGISTERID"], ParameterDirection.Input),
  5581. new OracleParameter(":BARID", OracleDbType.Int32,cre.Properties["BARID"], ParameterDirection.Input),
  5582. new OracleParameter(":DETAILID", OracleDbType.Int32,Convert.ToInt32(detailTable.Rows[i]["DETAILID"]), ParameterDirection.Input),
  5583. new OracleParameter(":ITEMSREMARKS", OracleDbType.NVarchar2,detailTable.Rows[i]["ITEMSREMARKS"].ToString(), ParameterDirection.Input),
  5584. new OracleParameter(":UPDATEUSERID", OracleDbType.Int32,user.UserID, ParameterDirection.Input),
  5585. };
  5586. result += conn.ExecuteNonQuery(updatesql, updateParas);
  5587. }
  5588. else
  5589. {
  5590. updatesql = @" UPDATE TP_PM_FIRSTREGISTERDETAIL SET
  5591. ITEMSVALUE = :ITEMSVALUE,
  5592. ITEMSREMARKS = :ITEMSREMARKS,
  5593. UPDATETIME= SYSDATE,
  5594. UPDATEUSERID= :UPDATEUSERID
  5595. WHERE REGISTERID = :REGISTERID AND DETAILID = :DETAILID AND BARID = :BARID";
  5596. IDataParameter[] updateParas = new OracleParameter[]
  5597. {
  5598. new OracleParameter(":REGISTERID", OracleDbType.Int32,cre.Properties["REGISTERID"], ParameterDirection.Input),
  5599. new OracleParameter(":BARID", OracleDbType.Int32,cre.Properties["BARID"], ParameterDirection.Input),
  5600. new OracleParameter(":DETAILID", OracleDbType.Int32,Convert.ToInt32(detailTable.Rows[i]["DETAILID"]), ParameterDirection.Input),
  5601. new OracleParameter(":ITEMSVALUE", OracleDbType.Int32,Convert.ToInt32(detailTable.Rows[i]["itemsValueID"]), ParameterDirection.Input),
  5602. new OracleParameter(":ITEMSREMARKS", OracleDbType.NVarchar2,detailTable.Rows[i]["ITEMSREMARKS"].ToString(), ParameterDirection.Input),
  5603. new OracleParameter(":UPDATEUSERID", OracleDbType.Int32,user.UserID, ParameterDirection.Input),
  5604. };
  5605. result += conn.ExecuteNonQuery(updatesql, updateParas);
  5606. }
  5607. }
  5608. }
  5609. }
  5610. }
  5611. }
  5612. }
  5613. else
  5614. {
  5615. //判断系统中是否存在未完结的该产品及商标的登记单,如果有,不能保存;
  5616. string sqlString = @" SELECT 1
  5617. FROM TP_PM_FIRSTREGISTER F
  5618. WHERE F.VALUEFLAG = 1
  5619. AND F.STATUS <> 4
  5620. AND F.GOODSID = :GOODSID
  5621. AND F.LOGOID = :LOGOID ";
  5622. List<OracleParameter> parameters = new List<OracleParameter>();
  5623. parameters.Add(new OracleParameter(":GOODSID", OracleDbType.Int32, cre.Properties["GOODSID"], ParameterDirection.Input));
  5624. parameters.Add(new OracleParameter(":LOGOID", OracleDbType.Int32, cre.Properties["LOGOID"], ParameterDirection.Input));
  5625. DataTable data = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  5626. if (data != null && data.Rows.Count > 0)
  5627. {
  5628. sre.Result = -1;
  5629. sre.Message = "保存失败,系统中已存在该产品及商标的未完结登记单!";
  5630. return sre;
  5631. }
  5632. //新建
  5633. string sqlInsert = "INSERT INTO TP_PM_FIRSTREGISTER\n" +
  5634. " (REGISTERNO\n" +
  5635. " ,WORKSHOP\n" +
  5636. " ,GOODSID\n" +
  5637. " ,GOODSCODE\n" +
  5638. " ,LOGOID\n" +
  5639. " ,MATERIALCODE\n" +
  5640. " ,FIRGOODSTYPE\n" +
  5641. " ,FIRQUANTITY\n" +
  5642. " ,BARCODES\n" +
  5643. " ,FIRBASIS\n" +
  5644. " ,ACCOUNTDATE\n" +
  5645. " ,ACCOUNTID\n" +
  5646. " ,VALUEFLAG\n" +
  5647. " ,CREATETIME\n" +
  5648. " ,CREATEUSERID\n" +
  5649. " ,UPDATETIME\n" +
  5650. " ,UPDATEUSERID\n" +
  5651. " ,REMARKS)\n" +
  5652. "VALUES\n" +
  5653. " (:REGISTERNO\n" +
  5654. " ,:WORKSHOP\n" +
  5655. " ,:GOODSID\n" +
  5656. " ,:GOODSCODE\n" +
  5657. " ,:LOGOID\n" +
  5658. " ,:MATERIALCODE\n" +
  5659. " ,:FIRGOODSTYPE\n" +
  5660. " ,:FIRQUANTITY\n" +
  5661. " ,:BARCODES\n" +
  5662. " ,:FIRBASIS\n" +
  5663. " ,:ACCOUNTDATE\n" +
  5664. " ,:ACCOUNTID\n" +
  5665. " ,1\n" +
  5666. " ,SYSDATE\n" +
  5667. " ,:CREATEUSERID\n" +
  5668. " ,SYSDATE\n" +
  5669. " ,:CREATEUSERID\n" +
  5670. " ,:REMARKS)";
  5671. IDataParameter[] insertParas = new OracleParameter[]
  5672. {
  5673. new OracleParameter(":REGISTERNO", OracleDbType.NVarchar2,cre.Properties["REGISTERNO"], ParameterDirection.Input),
  5674. new OracleParameter(":WORKSHOP", OracleDbType.Int32,cre.Properties["WORKSHOP"], ParameterDirection.Input),
  5675. new OracleParameter(":GOODSID", OracleDbType.Int32,cre.Properties["GOODSID"], ParameterDirection.Input),
  5676. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,cre.Properties["GOODSCODE"], ParameterDirection.Input),
  5677. new OracleParameter(":LOGOID", OracleDbType.Int32,cre.Properties["LOGOID"], ParameterDirection.Input),
  5678. new OracleParameter(":MATERIALCODE", OracleDbType.NVarchar2,cre.Properties["MATERIALCODE"], ParameterDirection.Input),
  5679. new OracleParameter(":FIRGOODSTYPE", OracleDbType.Int32,cre.Properties["FIRGOODSTYPE"], ParameterDirection.Input),
  5680. new OracleParameter(":FIRQUANTITY", OracleDbType.Int32,cre.Properties["FIRQUANTITY"], ParameterDirection.Input),
  5681. new OracleParameter(":BARCODES", OracleDbType.NVarchar2,cre.Properties["BARCODES"], ParameterDirection.Input),
  5682. new OracleParameter(":FIRBASIS", OracleDbType.Int32,cre.Properties["FIRBASIS"], ParameterDirection.Input),
  5683. new OracleParameter(":ACCOUNTDATE", OracleDbType.Date,cre.Properties["ACCOUNTDATE"], ParameterDirection.Input),
  5684. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,user.AccountID, ParameterDirection.Input),
  5685. new OracleParameter(":CREATEUSERID", OracleDbType.Int32,user.UserID, ParameterDirection.Input),
  5686. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,cre.Properties["REMARKS"], ParameterDirection.Input),
  5687. };
  5688. result += conn.ExecuteNonQuery(sqlInsert, insertParas);
  5689. }
  5690. sre.Result = result;
  5691. conn.Commit();
  5692. return new ServiceResultEntity();
  5693. }
  5694. catch (Exception ex)
  5695. {
  5696. throw ex;
  5697. }
  5698. finally
  5699. {
  5700. if (conn != null &&
  5701. conn.ConnState == ConnectionState.Open)
  5702. {
  5703. conn.Disconnect();
  5704. }
  5705. }
  5706. }
  5707. /// <summary>
  5708. /// 删除首件登记单
  5709. /// </summary>
  5710. /// <param name="user"></param>
  5711. /// <param name="cre"></param>
  5712. /// <returns></returns>
  5713. /// <remarks>李士越</remarks>
  5714. public static ServiceResultEntity DelInfo(SUserInfo user, ClientRequestEntity cre)
  5715. {
  5716. IDBTransaction conn = null;
  5717. ServiceResultEntity sre = new ServiceResultEntity();
  5718. try
  5719. {
  5720. conn = ClsDbFactory.CreateDBTransaction(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  5721. string sqlString = @"UPDATE TP_PM_FIRSTREGISTER SET VALUEFLAG=0 WHERE REGISTERID=" + cre.Properties["REGISTERID"].ToString();
  5722. sre.Result = conn.ExecuteNonQuery(sqlString);
  5723. conn.Commit();
  5724. sre.Status = Constant.ServiceResultStatus.Success;
  5725. return sre;
  5726. }
  5727. catch (Exception ex)
  5728. {
  5729. if (conn != null &&
  5730. conn.ConnState == ConnectionState.Open)
  5731. {
  5732. conn.Rollback();
  5733. }
  5734. throw ex;
  5735. }
  5736. finally
  5737. {
  5738. if (conn != null &&
  5739. conn.ConnState == ConnectionState.Open)
  5740. {
  5741. conn.Disconnect();
  5742. }
  5743. }
  5744. }
  5745. /// <summary>
  5746. /// 查看型式检验结果
  5747. /// </summary>
  5748. /// <param name="user"></param>
  5749. /// <param name="cre"></param>
  5750. /// <returns></returns>
  5751. /// <remarks>李士越</remarks>
  5752. public static ServiceResultEntity ShowTest(SUserInfo user, ClientRequestEntity cre)
  5753. {
  5754. IDBConnection conn = null;
  5755. try
  5756. {
  5757. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  5758. conn.Open();
  5759. ServiceResultEntity sre = new ServiceResultEntity();
  5760. string StrSql = "SELECT --barcode,\n " +
  5761. " xuhao,goodscode,goodstypename,TO_CHAR(groutingdate, 'YYYY-MM-DD')AS groutingdate,inspectitem ,technicalrequirement,unitname, " +
  5762. " --remarks, ITEMSDETAILID ,\n" +
  5763. " listagg(inspectvalue, ', ') within GROUP(ORDER BY inspectvalue) AS inspectvalue,isqualified " +
  5764. " FROM (SELECT fd.barcode,g.goodscode,gt.goodstypename,g.groutingdate ,fd.inspectitem,fd.remarks,fdd.xuhao,fdd.ITEMSDETAILID " +
  5765. " ,CASE " +
  5766. "WHEN fdd.unitname IS NULL THEN " +
  5767. " '-' " +
  5768. " ELSE " +
  5769. " to_char(fdd.unitname) " +
  5770. " END unitname " +
  5771. " ,fdd.technicalrequirement , " +
  5772. " CASE " +
  5773. " WHEN fdd.inspectmark = 630 THEN " +
  5774. " CASE " +
  5775. " WHEN fd.isqualified = 1 THEN " +
  5776. " '合格' " +
  5777. " ELSE " +
  5778. " '不合格' " +
  5779. " END " +
  5780. " ELSE " +
  5781. " to_char(fd.inspectvalue) " +
  5782. " END AS inspectvalue " +
  5783. " ,CASE" +
  5784. " WHEN fd.isqualified = 1 THEN " +
  5785. " '合格' " +
  5786. " ELSE " +
  5787. " '不合格' " +
  5788. " END AS isqualified " +
  5789. " FROM tp_pm_fqcitemsdata fd " +
  5790. " LEFT JOIN tp_pm_fqcitemsdetail fdd " +
  5791. " ON fd.itemsdetailid = fdd.itemsdetailid " +
  5792. " LEFT JOIN tp_pm_fqcitems f " +
  5793. " ON f.itemsid = fd.itemsid " +
  5794. " LEFT JOIN tp_pm_groutingdailydetail g " +
  5795. " ON g.barcode = fd.barcode " +
  5796. " LEFT JOIN tp_mst_goods gg " +
  5797. " ON gg.goodsid = g.goodsid " +
  5798. " LEFT JOIN tp_mst_goodstype gt " +
  5799. " ON gg.goodstypeid = gt.goodstypeid " +
  5800. " WHERE fd.barcode = '"+ cre.Properties["barCode"].ToString() +"'" +
  5801. " AND f.inspecttype = 615 " +
  5802. " AND fd.valueflag = 1) " +
  5803. " GROUP BY barcode ,goodscode,goodstypename,groutingdate,inspectitem,unitname,technicalrequirement,isqualified,remarks,xuhao,ITEMSDETAILID " +
  5804. " ORDER BY XUHAO,ITEMSDETAILID DESC ";
  5805. DataTable data = conn.GetSqlResultToDt(StrSql);
  5806. sre.Data = new DataSet();
  5807. sre.Data.Tables.Add(data);
  5808. return sre;
  5809. }
  5810. catch (Exception ex)
  5811. {
  5812. throw ex;
  5813. }
  5814. finally
  5815. {
  5816. if (conn != null &&
  5817. conn.ConnState == ConnectionState.Open)
  5818. {
  5819. conn.Close();
  5820. }
  5821. }
  5822. }
  5823. #endregion
  5824. }
  5825. }