PCModuleLogic.cs 367 KB

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