| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937 |
- /*******************************************************************************
- * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
- * 类的信息:
- * 1.程序名称:PMModuleLogicDAL.cs
- * 2.功能描述:生产管理数据库访问类(插入、修改、删除)
- * 编辑履历:
- * 作者 日期 版本 修改内容
- * 陈冰 2014/09/17 1.00 新建
- * 徐伟 2019/09/26 1.00 修改
- *******************************************************************************/
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Text;
- using Dongke.IBOSS.PRD.Basics.BaseResources;
- using Dongke.IBOSS.PRD.Basics.DataAccess;
- using Dongke.IBOSS.PRD.Basics.Library;
- using Dongke.IBOSS.PRD.Service.DataModels;
- using Dongke.IBOSS.PRD.WCF.DataModels;
- using Oracle.ManagedDataAccess.Client;
- namespace Dongke.IBOSS.PRD.Service.PMModuleLogic
- {
- /// <summary>
- /// 生产管理数据库访问类(插入、修改、删除)
- /// </summary>
- public partial class PMModuleLogicDAL
- {
- #region 生产管理
- #region 计件
- /// <summary>
- /// 添加生产计件
- /// </summary>
- /// <param name="procedureID">工序ID</param>
- /// <param name="barcodeTable">条码信息</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>DataTable null:添加成功 不为空:错误消息</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- public static DataTable AddWorkPiece(int procedureID, DataTable barcodeTable, SUserInfo sUserInfo, out ProcedureEntity procedureInfo)
- {
- procedureInfo = null;
- if (barcodeTable == null || barcodeTable.Rows.Count == 0)
- {
- return null;
- }
- // 实例返回的Talbe
- DataTable dtBarCode = PMModuleLogic.CreateBarCodeResultTable();
- DataRow dr = dtBarCode.NewRow();
- string errMsg = "";
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- oracleTrConn.IgnoreCase = false;
- try
- {
- DataSet dsReturnSinglePoint = null;
- oracleTrConn.Connect();
- int goodsID = Constant.INT_IS_ZERO;
- string goodsCode = null;
- string goodsName = null;
- string groutingUserCode = string.Empty;
- string logoCode = string.Empty;
- string logoName = string.Empty;
- string groutingdate = string.Empty;
- #region 查询工序信息
- ProcedureEntity procedure = GetProcedurByID(oracleTrConn, procedureID);
- procedureInfo = procedure;
- #endregion
- if (barcodeTable.Columns.Contains("IsPDA"))
- {
- if (procedure.ModelType != (int)Constant.ProcedureModelType.DeliverMud)
- {
- if (barcodeTable.Columns.Contains("IsPublicBody"))
- {
- barcodeTable.Columns.Remove("IsPublicBody");
- barcodeTable.Columns.Remove("IsPDA");
- }
- }
- }
- #region 防止多次重复提交,导致数据重复
- // 通过锁定表tp_pm_usedbarcode中的条码,防止多次重复提交,导致数据重复
- // TODO PDA还没有修改,暂时注释。PDA(集中采集画面)点击保存时如果不成功提示消息后,清除了当前画面中的数据。应该不清空数据,可以继续保存。
- //string barcodes = null;
- //foreach (DataRow item in barcodeTable.Rows)
- //{
- // if (barcodes != null)
- // {
- // barcodes += ",";
- // }
- // barcodes += item["Barcode"].ToString();
- //}
- //if (barcodes != null)
- //{
- // string sql = "select uc.barcode from tp_pm_usedbarcode uc where uc.barcode in (" + barcodes + ") for update nowait";
- // try
- // {
- // oracleTrConn.GetSqlResultToDt(sql);
- // }
- // catch (Exception ex)
- // {
- // // 判断异常类型
- // if (ex.Message.IndexOf("ORA-00054") > -1)
- // {
- // dr[Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = "条码正在被处理中,请稍后再操作。";
- // dr[Constant.BarCodeResultTableColumns.out_missFlag.ToString()] = "0";
- // dtBarCode.Rows.Add(dr);
- // return dtBarCode;
- // }
- // throw ex;
- // }
- //}
- #endregion
- //xuwei fix 2019-09-24 按新规则重新校准NodeType.Begin使后续NodeType.Begin判定是准确的
- //xuwei fix 2019-09-26 按原条理判定首节点得到正确的返回结果
- // 2019-1016
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- int nodeBegin = IsNodeBegin<IDBTransaction>(oracleTrConn, barcodeTable.Rows[0]["Barcode"].ToString());
- if (nodeBegin == 1)
- {
- procedure.NodeType = (int)Constant.ProcedureNodeType.Begin;
- }
- else if (nodeBegin == 0)
- {
- procedure.NodeType = (int)Constant.ProcedureNodeType.Middle;
- }
- }
- //if (nodeBegin == -1) errMsg = "条码不正确,请检查!";
- #region 标准计件和坯库
- if (procedure.ModelType == (int)Constant.ProcedureModelType.Normal
- || procedure.ModelType == (int)Constant.ProcedureModelType.AdobeStock)
- {
- if (procedure.CollectType == 1)
- {
- #region 集中采集
- errMsg = AddNormalWorkPiece(oracleTrConn, procedure, barcodeTable, sUserInfo,
- out goodsID, out goodsCode, out goodsName, out groutingUserCode);
- #endregion
- }
- else
- {
- #region 单点采集
- int? GroutingDailyDetailID = null;
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- dsReturnSinglePoint = PMModuleLogic.CheckBarcodeDeliverMudSinglePoint(procedureID, barcodeTable.Rows[0]["barcode"].ToString(), sUserInfo, ref GroutingDailyDetailID);
- }
- else
- {
- dsReturnSinglePoint = PMModuleLogic.CheckBarcodeSinglePoint(procedureID, barcodeTable.Rows[0]["barcode"].ToString(), sUserInfo);
- }
-
- if (dsReturnSinglePoint != null)
- {
- if (dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()].ToString() == ""
- && dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_missFlag.ToString()].ToString() == "0")
- {
- goodsID = Convert.ToInt32(dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsID.ToString()].ToString());
- goodsCode = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsCode.ToString()].ToString();
- goodsName = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsName.ToString()].ToString();
- groutingUserCode = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingUserCode.ToString()].ToString();
- barcodeTable.Rows[0]["barcode"] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_barcode.ToString()];
- errMsg = AddNormalWorkPieceSinglePoint(oracleTrConn, procedure, barcodeTable, sUserInfo,
- goodsID, goodsCode, goodsName, groutingUserCode, null);
- }
- }
- #endregion
- }
- }
- #endregion
- #region 交坯
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.DeliverMud)
- {
- if (procedure.CollectType == 1)
- {
- #region 集中采集
- //xuwei fix begin 2019-09-17
- //加入最后一个参数 true,识别为交坏
- errMsg = AddNormalWorkPiece(oracleTrConn, procedure, barcodeTable, sUserInfo,
- out goodsID, out goodsCode, out goodsName, out groutingUserCode, true);
- //xuwei end
- #endregion
- }
- else
- {
- #region 单点采集
- int? GroutingDailyDetailID = null;
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- dsReturnSinglePoint = PMModuleLogic.CheckBarcodeDeliverMudSinglePoint(procedureID, barcodeTable.Rows[0]["barcode"].ToString(), sUserInfo, ref GroutingDailyDetailID);
- }
- else
- {
- dsReturnSinglePoint = PMModuleLogic.CheckBarcodeSinglePoint(procedureID, barcodeTable.Rows[0]["barcode"].ToString(), sUserInfo);
- }
- //dsReturnSinglePoint = PMModuleLogic.CheckBarcodeDeliverMudSinglePoint(procedureID, barcodeTable.Rows[0]["barcode"].ToString(), sUserInfo, ref GroutingDailyDetailID);
- if (dsReturnSinglePoint != null)
- {
- //if (barcodeTable.Rows[0]["UserCode"].ToString() != dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingUserCode.ToString()].ToString())
- //{
- // dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = "成型工号与交坯工号不一致,不允许交坯";
- //}
- //else
- //{
- if (dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()].ToString() == ""
- && dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_missFlag.ToString()].ToString() == "0")
- {
- if (procedure.DeliverType == 0) //手动模式
- {
- if (barcodeTable.Rows[0]["UserCode"].ToString() != dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingUserCode.ToString()].ToString())
- {
- if (barcodeTable.Rows[0]["IsPublicBody"].ToString() != "1")
- {
- dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = "成型工号与交坯工号不一致,不允许交坯";
- }
- else
- {
- goodsID = Convert.ToInt32(dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsID.ToString()].ToString());
- goodsCode = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsCode.ToString()].ToString();
- goodsName = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsName.ToString()].ToString();
- groutingUserCode = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingUserCode.ToString()].ToString();
- //xuwei fix begin 2019-09-17
- //加入最后一个参数 true,识别为交坏
- errMsg = AddNormalWorkPieceSinglePoint(oracleTrConn, procedure, barcodeTable, sUserInfo,
- goodsID, goodsCode, goodsName, groutingUserCode, GroutingDailyDetailID, true);
- if (!string.IsNullOrEmpty(errMsg))
- {
- dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = errMsg;
- }
- // wangx 2016-10-10 是否设置过期未交坯
- else
- {
- // string sqlNew = "select settingvalue from TP_MST_SystemSetting where settingcode='" + Constant.SettingType.S_PM_002.ToString() + "' and accountid=" + sUserInfo.AccountID;
- string sqlNew = "select deliverlimitCycle from TP_MST_Goods where goodsid=" + goodsID;
- string sqlSettingValue = oracleTrConn.GetSqlResultToStr(sqlNew);
- if (sqlSettingValue != "0")
- {
- ServiceResultEntity resultEntity = PMModuleLogic.BarcodeAllowCancel(
- Convert.ToDateTime(dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingdate.ToString()]),
- Convert.ToInt32(sqlSettingValue), Constant.SettingType.S_PM_002.ToString(), sUserInfo);
- if (Convert.ToInt32(resultEntity.Result) < 0)
- {
- dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = resultEntity.Message;
- errMsg = resultEntity.Message;
- }
- }
- // wangx end
- }
- }
- }
- else
- {
- goodsID = Convert.ToInt32(dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsID.ToString()].ToString());
- goodsCode = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsCode.ToString()].ToString();
- goodsName = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsName.ToString()].ToString();
- groutingUserCode = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingUserCode.ToString()].ToString();
- //xuwei fix begin 2019-09-17
- //加入最后一个参数 true,识别为交坏
- errMsg = AddNormalWorkPieceSinglePoint(oracleTrConn, procedure, barcodeTable, sUserInfo,
- goodsID, goodsCode, goodsName, groutingUserCode, GroutingDailyDetailID, true);
- if (!string.IsNullOrEmpty(errMsg))
- {
- dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = errMsg;
- }
- // wangx 2016-10-10 是否设置过期未交坯
- else
- {
- // string sqlNew = "select settingvalue from TP_MST_SystemSetting where settingcode='" + Constant.SettingType.S_PM_002.ToString() + "' and accountid=" + sUserInfo.AccountID;
- string sqlNew = "select deliverlimitCycle from TP_MST_Goods where goodsid=" + goodsID;
- string sqlSettingValue = oracleTrConn.GetSqlResultToStr(sqlNew);
- if (sqlSettingValue != "0")
- {
- ServiceResultEntity resultEntity = PMModuleLogic.BarcodeAllowCancel(
- Convert.ToDateTime(dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingdate.ToString()]),
- Convert.ToInt32(sqlSettingValue), Constant.SettingType.S_PM_002.ToString(), sUserInfo);
- if (Convert.ToInt32(resultEntity.Result) < 0)
- {
- dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = resultEntity.Message;
- errMsg = resultEntity.Message;
- }
- }
- // wangx end
- }
- }
- }
- else //2016-07-05
- {
- // 自动模式 .查出型工号,单点采集前台并没有传值,更新barcodeTable表对应的字段
- string sql = @"select tp_mst_user.userid,tp_mst_user.usercode,tp_mst_user.username from TP_PM_GroutingDailyDetail
- left join tp_mst_user
- on TP_PM_GroutingDailyDetail.userid=tp_mst_user.userid
- where TP_PM_GroutingDailyDetail.barcode='" + barcodeTable.Rows[0]["barcode"].ToString() + "'";
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- barcodeTable.Rows[0]["UserCode"] = ds.Tables[0].Rows[0]["UserCode"];
- barcodeTable.Rows[0]["UserID"] = ds.Tables[0].Rows[0]["UserID"];
- barcodeTable.Rows[0]["UserName"] = ds.Tables[0].Rows[0]["UserName"];
- }
- goodsID = Convert.ToInt32(dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsID.ToString()].ToString());
- goodsCode = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsCode.ToString()].ToString();
- goodsName = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsName.ToString()].ToString();
- groutingUserCode = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingUserCode.ToString()].ToString();
- //xuwei fix begin 2019-09-17
- //加入最后一个参数 true,识别为交坏
- errMsg = AddNormalWorkPieceSinglePoint(oracleTrConn, procedure, barcodeTable, sUserInfo,
- goodsID, goodsCode, goodsName, groutingUserCode, GroutingDailyDetailID, true);
- if (!string.IsNullOrEmpty(errMsg))
- {
- dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = errMsg;
- }
- // wangx 2016-10-10 是否设置过期未交坯
- else
- {
- // string sqlNew = "select settingvalue from TP_MST_SystemSetting where settingcode='" + Constant.SettingType.S_PM_002.ToString() + "' and accountid=" + sUserInfo.AccountID;
- string sqlNew = "select deliverlimitCycle from TP_MST_Goods where goodsid=" + goodsID;
- string sqlSettingValue = oracleTrConn.GetSqlResultToStr(sqlNew);
- if (sqlSettingValue != "0")
- {
- ServiceResultEntity resultEntity = PMModuleLogic.BarcodeAllowCancel(
- Convert.ToDateTime(dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingdate.ToString()]),
- Convert.ToInt32(sqlSettingValue), Constant.SettingType.S_PM_002.ToString(), sUserInfo);
- if (Convert.ToInt32(resultEntity.Result) < 0)
- {
- dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = resultEntity.Message;
- errMsg = resultEntity.Message;
- }
- }
- // wangx end
- }
- //
- }
- //}
- }
- }
- #endregion
- }
- }
- #endregion
- #region 装窑车
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.LoadCar)
- {
- errMsg = AddLoadKilnCar(oracleTrConn, procedure, barcodeTable, sUserInfo,
- out goodsID, out goodsCode, out goodsName);
- }
- #endregion
- #region 窑车补件
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.CarAdd)
- {
- errMsg = AddKilnCarSupplement(oracleTrConn, procedure, barcodeTable, sUserInfo,
- out goodsID, out goodsCode, out goodsName);
- }
- #endregion
- #region 入窑
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.IntoKiln)
- {
- // PDA传入的窑车号。没有传入条码信息 需要转换
- /* modify by chenxy 2016-04-05 begin
- * 入窑画面显示条码后,登窑画面再做撤销登车,入窑再保存时,撤销的产品也到了入窑工序。
- * 入窑时窑车上的产品需要重新获取。
- */
- //if (barcodeTable.Columns.Contains("IsPDAFlag"))
- // modify by chenxy 2016-04-05 end
- {
- barcodeTable = CarNoInfoConvertToTable(oracleTrConn, barcodeTable, sUserInfo);
- }
- errMsg = AddIntoKilnCar(oracleTrConn, procedure, barcodeTable, sUserInfo,
- out goodsID, out goodsCode, out goodsName);
- }
- #endregion
- #region 出窑
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.OutKiln)
- {
- // PDA传入的窑车号。没有传入条码信息 需要转换
- /* modify by chenxy 2016-04-05 begin
- * 入窑画面显示条码后,登窑画面再做撤销登车,入窑再保存时,撤销的产品也到了入窑工序。
- * 入窑时窑车上的产品需要重新获取。
- */
- //if (barcodeTable.Columns.Contains("IsPDAFlag"))
- // modify by chenxy 2016-04-05 end
- {
- barcodeTable = CarNoInfoConvertToTable(oracleTrConn, barcodeTable, sUserInfo);
- }
- errMsg = AddOutKilnCar(oracleTrConn, procedure, barcodeTable, sUserInfo,
- out goodsID, out goodsCode, out goodsName);
- }
- #endregion
- #region 卸窑车
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.UnloadCar)
- {
- // PDA传入的窑车号。没有传入条码信息 需要转换
- /* modify by chenxy 2016-04-05 begin
- * 入窑画面显示条码后,登窑画面再做撤销登车,入窑再保存时,撤销的产品也到了入窑工序。
- * 入窑时窑车上的产品需要重新获取。
- */
- //if (barcodeTable.Columns.Contains("IsPDAFlag"))
- // modify by chenxy 2016-04-05 end
- {
- barcodeTable = CarNoInfoConvertToTable(oracleTrConn, barcodeTable, sUserInfo);
- }
- errMsg = AddUnloadingKilnCar(oracleTrConn, procedure, barcodeTable, sUserInfo,
- out goodsID, out goodsCode, out goodsName);
- }
- #endregion
- #region 干补
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.SpecialRepair)
- {
- errMsg = AddDryRepairWorkPiece(oracleTrConn, procedure, barcodeTable, sUserInfo,
- out goodsID, out goodsCode, out goodsName, out groutingUserCode, out logoCode, out logoName, out groutingdate);
- }
- #endregion
- #region 回收
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.Recovery)
- {
- errMsg = AddRecydingFlagWorkPiece(oracleTrConn, procedure, barcodeTable, sUserInfo,
- out goodsID, out goodsCode, out goodsName, out groutingUserCode, out logoCode, out logoName, out groutingdate);
- }
- #endregion
- #region 构造返回的DataTable
- if ((procedure.ModelType == (int)Constant.ProcedureModelType.DeliverMud
- || procedure.ModelType == (int)Constant.ProcedureModelType.Normal) && procedure.CollectType == 2)
- {
- dr[Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_goodsID.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsID.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_goodsCode.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsCode.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_goodsName.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_goodsName.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_groutingUserCode.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingUserCode.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_missFlag.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_missFlag.ToString()];
- //新添加的
- dr[Constant.BarCodeResultTableColumns.out_groutingNum.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingNum.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_mouldCode.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_mouldCode.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_ispublicbody.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_ispublicbody.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_ispublicbodyTrach.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_ispublicbodyTrach.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_groutingdate.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingdate.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_specialRepairFlag.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_specialRepairFlag.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_isReFire.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_isReFire.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_logoID.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_logoID.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_logoCode.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_logoCode.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_logoName.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_logoName.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_barcode.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_barcode.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_WaterLabelCode.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_WaterLabelCode.ToString()];
- dr[Constant.BarCodeResultTableColumns.out_CodeCheckFlag.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_CodeCheckFlag.ToString()];
- }
- else
- {
- dr[Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = (errMsg == null ? "" : errMsg);
- dr[Constant.BarCodeResultTableColumns.out_goodsID.ToString()] = goodsID;
- dr[Constant.BarCodeResultTableColumns.out_goodsCode.ToString()] = goodsCode;
- dr[Constant.BarCodeResultTableColumns.out_goodsName.ToString()] = goodsName;
- dr[Constant.BarCodeResultTableColumns.out_groutingUserCode.ToString()] = groutingUserCode;
- dr[Constant.BarCodeResultTableColumns.out_logoCode.ToString()] = logoCode;
- dr[Constant.BarCodeResultTableColumns.out_logoName.ToString()] = logoName;
- dr[Constant.BarCodeResultTableColumns.out_groutingdate.ToString()] = groutingdate;
- //dr[Constant.BarCodeResultTableColumns.out_groutingNum.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingNum.ToString()];
- //dr[Constant.BarCodeResultTableColumns.out_mouldCode.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_mouldCode.ToString()];
- //dr[Constant.BarCodeResultTableColumns.out_ispublicbody.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_ispublicbody.ToString()];
- //dr[Constant.BarCodeResultTableColumns.out_ispublicbodyTrach.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_ispublicbodyTrach.ToString()];
- //dr[Constant.BarCodeResultTableColumns.out_groutingdate.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingdate.ToString()];
- //dr[Constant.BarCodeResultTableColumns.out_specialRepairFlag.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_specialRepairFlag.ToString()];
- //dr[Constant.BarCodeResultTableColumns.out_isReFire.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_isReFire.ToString()];
- //dr[Constant.BarCodeResultTableColumns.out_logoID.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_logoID.ToString()];
- //dr[Constant.BarCodeResultTableColumns.out_logoCode.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_logoCode.ToString()];
- //dr[Constant.BarCodeResultTableColumns.out_logoName.ToString()] = dsReturnSinglePoint.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_logoName.ToString()];
- }
- dtBarCode.Rows.Add(dr);
- #endregion
- // 没有错误 提交事务
- if (string.IsNullOrEmpty(errMsg))
- {
- oracleTrConn.Commit();
- }
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return dtBarCode;
- }
- #region 是否公坯
- /// <summary>
- /// 是否公坯
- /// </summary>
- /// <param name="barcode">产品条码</param>
- /// <returns>int</returns>
- public static int IsPubilcByBarCode(IDBTransaction oracleTrConn, string barcode)
- {
- int isPubilcBody = 0;
- try
- {
- string sqlString = @"
- select
- ispublicbody
- from tp_pm_inproduction where barcode=:barcode
- union
- select
- ispublicbody
- from TP_PM_InProductionTrash where barcode=:barcode
- ";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sqlString, paras);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- isPubilcBody = Convert.ToInt32(ds.Tables[0].Rows[0]["ispublicbody"]);
- }
- return isPubilcBody;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- #endregion
- /// <summary>
- /// 标准计件
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="procedure">工序对象</param>
- /// <param name="barcodeTable">条码信息</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <param name="groutingUserID">返回的注浆者ID</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddNormalWorkPiece(IDBTransaction oracleTrConn,
- ProcedureEntity procedure,
- DataTable barcodeTable,
- SUserInfo sUserInfo,
- out int goodsID,
- out string goodsCode,
- out string goodsName,
- out string groutingUserCode,
- bool isSendBody = false
- )
- {
- try
- {
- goodsID = Constant.INT_IS_ZERO;
- goodsCode = null;
- goodsName = null;
- groutingUserCode = string.Empty; //Constant.INT_IS_ZERO;
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = string.Empty;
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- string finishedloadbatchno = DateTime.Now.ToString("yyMMddHHmmss-") + centralizedBatchNo;
- // 条码信息
- foreach (DataRow barcodeRow in barcodeTable.Rows)
- {
- // 条码
- string barcode = barcodeRow["Barcode"].ToString();
- if (string.IsNullOrEmpty(barcode))
- {
- throw new Exception("传入的条码号为空");
- }
- // 生产工号
- int workUserID = Convert.ToInt32(barcodeRow["UserID"]);
- // 生产工号
- string workUserCode = barcodeRow["UserCode"].ToString();
- int? GroutingDailyDetailID = null;//注浆明细ID
- if (procedure.CollectType == 1)
- {
- #region 集中采集 校验条码
- // ccc todo
- //if (procedure.ModelType == (int)Constant.ProcedureModelType.DeliverMud)//是交坯节点,并且不是公坯的
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- #region 校验条码有效性
- errMsg = CheckBarcodeDeliverMud(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo, ref GroutingDailyDetailID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- else
- {
- #region 校验条码有效性
- errMsg = CheckBarcode(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- }
- else
- {
- #region 单点采集 获取注浆日报明细
- string sqlGroutingInfo = "";
- sqlGroutingInfo = @"select tp_pm_groutingdailydetail.goodsid,
- tp_pm_groutingdailydetail.goodscode,
- tp_pm_groutingdailydetail.goodsname,
- tp_pm_groutingdailydetail.usercode as groutingUserCode,
- tp_pm_groutingdailydetail.GroutingDailyDetailID
- from tp_pm_groutingdailydetail where barcode = :barcode";
- // from tp_pm_groutingdailydetail where groutingdailydetailid in
- //(select groutingdailydetailid from TP_PM_USEDBARCODE where barcode=:barcode)";
- OracleParameter[] ReFireparas = new OracleParameter[] {
- new OracleParameter(":barcode",barcode),
- };
- DataSet dsGrouting = oracleTrConn.GetSqlResultToDs(sqlGroutingInfo, ReFireparas);
- if (dsGrouting != null && dsGrouting.Tables[0].Rows.Count > 0)
- {
- GroutingDailyDetailID = Convert.ToInt32(dsGrouting.Tables[0].Rows[0]["GroutingDailyDetailID"]);
- goodsID = Convert.ToInt32(dsGrouting.Tables[0].Rows[0]["goodsid"]);
- goodsCode = dsGrouting.Tables[0].Rows[0]["goodscode"].ToString();
- goodsName = dsGrouting.Tables[0].Rows[0]["goodsName"].ToString();
- groutingUserCode = dsGrouting.Tables[0].Rows[0]["groutingUserCode"].ToString();
- }
- #endregion
- }
- int? ClassesSettingID = null;//班次配置ID
- #region 添加生产者数据
- //生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- int productionDataID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sql));
- if (procedure.ModelType == (int)Constant.ProcedureModelType.DeliverMud)//是交坯节点,并且不是公坯的
- {
- string GroutingUserCode = barcodeRow["GroutingUserCode"].ToString();
- if (GroutingUserCode.ToLower() == workUserCode.ToLower())
- {
- //errMsg = AddProducerDeliverAdobe(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo);
- }
- else
- {
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- }
- }
- else
- {
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- }
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //xuwei fix 2019-09-23 按新规则重新校准NodeType.Begin使后续NodeType.Begin判定是准确的
- //xuwei fix 2019-09-26 使用通用方法判定
- //if (IsNodeBegin<IDBTransaction>(oracleTrConn, barcode) == 1)
- // procedure.NodeType = (int)Constant.ProcedureNodeType.Begin;
- #region 添加生产数据
- ProductionDataEntity productionData = new ProductionDataEntity();
- #region 属性赋值
- productionData.GroutingDailyDetailID = GroutingDailyDetailID;//只有交坯的时候用到
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = productionDataID;
- productionData.Barcode = barcode;
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.CompleteProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.PieceType = procedure.PieceType;
- if (barcodeRow["LogoID"].ToString() != "")
- {
- productionData.LogoID = Convert.ToInt32(barcodeRow["LogoID"]);
- }
- if (procedure.IsSpecialRework == 0)
- {
- productionData.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- //不加条件valueflag,是因为,成检后重烧走过之后,在次重烧,以后也是重烧状态
- //string sqlReFire = "select * from tp_PM_ProductionData where ProductionDataid=(select max(ProductionDataid) from tp_PM_ProductionData where barcode='" + productionData.Barcode + "')";
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)//是交坯节点,肯定不会是重烧
- {
- productionData.IsReFire = (int)Constant.ReFireFlag.No;
- productionData.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- ////// else
- ////// {
- ////// string sqlReFire = @"select
- ////// isrefire
- ////// from tp_pm_inproduction where barcode=:barcode
- ////// ";
- ////// OracleParameter[] ReFireparas = new OracleParameter[] {
- ////// new OracleParameter(":barcode",barcode),
- ////// };
- ////// DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire, ReFireparas);
- ////// if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- ////// {
- ////// if (Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]) > 0)
- ////// {
- ////// productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- ////// //if (productionData.IsReFire == 6) wangxin modify 20150422 因为已经大于0,定是重烧,即有缺陷
- ////// //{
- ////// productionData.DefectFlag = (int)Constant.GoodsLevelType.Defect;
- ////// //}
- ////// }
- ////// }
- ////// }
- }
- else
- {
- productionData.IsReFire = (int)Constant.GoodsLevelType.ReFire;
- productionData.DefectFlag = (int)Constant.GoodsLevelType.Defect;
- }
- productionData.ReworkProcedureID = null;
- #region 交坯判断
- // 交坯节点
- if (barcodeTable.Columns.Contains("IsPublicBody"))
- {
- productionData.IsPublicBody = Convert.ToInt32(barcodeRow["IsPublicBody"]);
- }
- // 非交坯节点
- else
- {
- // 正常坯
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, barcode);
- }
- #endregion
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = goodsID;
- productionData.GoodsCode = goodsCode;
- productionData.GoodsName = goodsName;
- productionData.UserID = workUserID;
- productionData.UserCode = barcodeRow["UserCode"].ToString();
- productionData.UserName = barcodeRow["UserName"].ToString();
- #endregion
- string OutSpecialRepairflag = "0";//干补标识
- DataSet outDataSet = null;
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- //添加首节点数据 (在产生产数据)
- //xuwei fix 2019-09-17 添加最后一个可选参数isSendBody识别交坯
- errMsg = AddProductionDataDeliverMud(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag, out outDataSet,isSendBody);
- }
- else
- {
- //添加非首节点数据
- //xuwei fix 2019-09-17 添加最后一个可选参数isSendBody识别交坯
- errMsg = AddProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag,isSendBody);
- }
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 开始节点
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- #region 添加在产产品数据
- InProductionEntity addInProductionEntity = new InProductionEntity();
- addInProductionEntity.BarCode = barcode;
- //流程工序ID
- addInProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- addInProductionEntity.ProcedureID = procedure.ProcedureID;
- //addInProductionEntity.CompleteProcedureID = procedure.ProcedureID;
- // 工序模型
- addInProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- addInProductionEntity.ModelType = procedure.ModelType;
- addInProductionEntity.SpecialRepairflag = Convert.ToInt32(OutSpecialRepairflag);//干补标识
- addInProductionEntity.ProductionDataID = productionDataID;
- #region 交坯判断
- addInProductionEntity.IsPublicBody = productionData.IsPublicBody;// 生产数据已经判断是否为公坯
- #endregion
- // 生产工号
- addInProductionEntity.UserID = workUserID;
- // 执行添加
- //xuwei fix 2019-09-17 添加最后一个可选参数isSendBody识别交坯
- errMsg = AddInProduction(oracleTrConn, addInProductionEntity, sUserInfo, outDataSet,isSendBody);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- #region 中间节点
- else if (procedure.NodeType == (int)Constant.ProcedureNodeType.Middle)
- {
- #region 修改在产产品数据的当前工序,清空返工工序字段
- InProductionEntity addInProductionEntity = new InProductionEntity();
- addInProductionEntity.BarCode = barcode;
- //流程工序ID
- addInProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- addInProductionEntity.ProcedureID = procedure.ProcedureID;
- //当前生产数据ID
- addInProductionEntity.ProductionDataID = productionDataID;
- // 工序模型
- addInProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- addInProductionEntity.ModelType = procedure.ModelType;
- // 生产工号
- addInProductionEntity.UserID = workUserID;
- addInProductionEntity.LogoID = productionData.LogoID;
- // 缺陷标识
- // addInProductionEntity.DefectFlag = (int)Constant.DefectFlag.No;
- //addInProductionEntity.DefectFlag = (int)Constant.GoodsLevelType.NoDefect;
- if (procedure.IsSpecialRework == 0)
- {
- addInProductionEntity.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- else
- {
- addInProductionEntity.IsReFire = (int)Constant.GoodsLevelType.ReFire;
- addInProductionEntity.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- #region 交坯判断
- addInProductionEntity.IsPublicBody = productionData.IsPublicBody;// 生产数据已经判断是否为公坯
- #endregion
- // 执行修改
- errMsg = UpdateInProduction(oracleTrConn, addInProductionEntity, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- #region 结束节点
- else
- {
- #region 添加成品数据 删除在产产品数据
- FinishedProductEntity finishedProduct = new FinishedProductEntity();
- finishedProduct.BarCode = barcode;
- finishedProduct.LogoID = productionData.LogoID;
- errMsg = AddFinishedProduct(oracleTrConn, finishedProduct, sUserInfo, finishedloadbatchno);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- InProductionEntity delInProductionEntity = new InProductionEntity();
- delInProductionEntity.BarCode = barcode;
- // 执行删除 在产数据
- errMsg = DeleteInProduction(oracleTrConn, delInProductionEntity, true, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- }
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 添加生产者(交坯单独调用,特殊)
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="productionDataID">生产数据ID</param>
- /// <param name="workUserID">生产工号ID</param>
- /// <param name="workUserCode">生产工号Code</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddProducerDeliverAdobe(IDBTransaction oracleTrConn, DateTime accountDate, int productionDataID, int workUserID, string workUserCode, SUserInfo sUserInfo)
- {
- // 参数
- OracleParameter[] paras;
- #region 将班次配置表中的数据插入生产者表中
- string sql = "insert into tp_pm_producer"
- + " (productiondataid,"
- + " staffid,"
- + " userid,"
- + " usercode,"
- + " UJobsID,"
- + " staffstatus,"
- + " SJobsID"
- + " )"
- + " select distinct :productiondataid,"
- + " staffid,"
- + " userid,"
- + " usercode,"
- + " UJobsID,"
- + " staffstatus,"
- + " SJobsID"
- + " "
- + " from TP_PM_GroutingProducer"
- + " where UserID = :userID";
- paras = new OracleParameter[] {
- new OracleParameter(":productiondataid",OracleDbType.Int32,productionDataID,ParameterDirection.Input),
- new OracleParameter(":userID",OracleDbType.Int32,workUserID,ParameterDirection.Input),
- };
- int resultCount = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 失败
- if (resultCount == Constant.INT_IS_ZERO)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #endregion
- return null;
- }
- /// <summary>
- /// 装车后,更新所有以前操作的工序窑车信息
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="barcode">条码</param>
- /// <param name="kilnCarID">窑车号</param>
- /// <param name="goodsID">产品ID</param>
- /// <param name="KilnCarPosition">窑车位置</param>
- /// <param name="kilnCarBatchNo">装车批次</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string UpdateRefineBybarcode(IDBTransaction oracleTrConn, ProductionDataEntity productionData)
- {
- string sql = "update TP_PM_ProductionData set "
- + " IsReFire=:IsReFire"
- + " where barcode=:barcode";
- #region 参数
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":IsReFire",(int)Constant.GoodsLevelType.ReFire),
- new OracleParameter(":barcode",productionData.Barcode),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 保存失败
- if (result == Constant.INT_IS_ZERO)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 保存成功返回null
- return null;
- }
- /// <summary>
- /// 装窑车计件
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="procedure">工序对象</param>
- /// <param name="barcodeTable">条码信息</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddLoadKilnCar(IDBTransaction oracleTrConn,
- ProcedureEntity procedure,
- DataTable barcodeTable,
- SUserInfo sUserInfo,
- out int goodsID,
- out string goodsCode,
- out string goodsName)
- {
- try
- {
- goodsID = Constant.INT_IS_ZERO;
- goodsCode = null;
- goodsName = null;
- string groutingUserCode = string.Empty;
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = string.Empty;
- // 生产工号
- int workUserID = Constant.INT_IS_ZERO;
- // 生产工号Code
- string workUserCode = string.Empty;
- // 生产工号Name
- string workUserName = string.Empty;
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- // 窑车批次号
- string kilnCarBatchNo = System.Guid.NewGuid().ToString();
- // 窑车状态
- string kilnCarStatus = string.Empty;
- //////////////////////////////////////////////////
- DataView dv = barcodeTable.DefaultView;
- DataTable dtNewKiln = dv.ToTable(true, "kilnCarCode");
- for (int i = 0; i < dtNewKiln.Rows.Count; i++)
- {
- DataRow[] dr = barcodeTable.Select("kilnCarCode='" + dtNewKiln.Rows[i]["kilnCarCode"].ToString() + "'");
- // 窑炉ID
- //int kilnID = Convert.ToInt32(barcodeTable.Rows[0]["kilnID"].ToString());
- int kilnID = Convert.ToInt32(dr[0]["kilnID"].ToString());
- // 窑车ID
- //int kilnCarID = Convert.ToInt32(barcodeTable.Rows[0]["KilnCarID"].ToString());
- int kilnCarID = Convert.ToInt32(dr[0]["KilnCarID"].ToString());
- // 窑车Code
- // string kilnCarCode = barcodeTable.Rows[0]["kilnCarCode"].ToString();
- string kilnCarCode = dr[0]["kilnCarCode"].ToString();
- #region 校验窑车是否可装车
- errMsg = CheckKilnCarrStatus(oracleTrConn, procedure.ProcedureID, kilnCarCode, procedure.ModelType, sUserInfo, out kilnCarStatus);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 如果窑车状态为空,需要插入窑车状态表
- if (string.IsNullOrEmpty(kilnCarStatus))
- {
- // 自动生成窑车烧成批次号
- kilnCarBatchNo = GetFiredKilnCarBatchNo(oracleTrConn, kilnCarID);
- // 插入窑车状态表
- errMsg = AddkilnCarStatus(oracleTrConn, procedure, kilnCarID, kilnID, kilnCarBatchNo, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- }
- #endregion
- #region 窑车表存在,查询本次窑车产品的批次号 并更改装窑车时间
- // 查询本次窑车产品的批次号
- else
- {
- kilnCarBatchNo = GetKilnCarBatchNoByKilnCarID(oracleTrConn, kilnCarID);
- // 更改窑车状态表入窑时间
- errMsg = UpdatekilnCarStatus(oracleTrConn, kilnCarID, Constant.ProcedureModelType.LoadCar, sUserInfo, procedure, kilnCarBatchNo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- }
- #endregion
- // 条码信息
- DataView dvFilter = barcodeTable.DefaultView;
- dvFilter.RowFilter = "kilnCarCode='" + dtNewKiln.Rows[i]["kilnCarCode"].ToString() + "'";
- DataTable dtNew = dvFilter.ToTable();
- // 条码信息
- //foreach (DataRow barcodeRow in barcodeTable.Rows)
- //--------------------------------
- string sqllast = "select max(createtime) as createtime from TP_PM_KilnCarGoods"
- + " where KilnCarID=:KilnCarID and AccountID=:AccountID";
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":KilnCarID",kilnCarID),
- new OracleParameter(":AccountID",sUserInfo.AccountID),
- };
- DataSet dsReturn = oracleTrConn.GetSqlResultToDs(sqllast, paras);
- object lastcreatetime = null;
- if (dsReturn != null && dsReturn.Tables[0].Rows.Count > 0 && dsReturn.Tables[0].Rows[0]["CreateTime"].ToString() != "")
- {
- lastcreatetime = Convert.ToDateTime(dsReturn.Tables[0].Rows[0]["CreateTime"]);
- }
- //--------------------------------
- int? maxClassesSettingID = null;
- foreach (DataRow barcodeRow in dtNew.Rows)
- {
- // 条码
- string barcode = barcodeRow["Barcode"].ToString();
- // 生产工号
- workUserID = Convert.ToInt32(barcodeRow["UserID"]);
- workUserCode = barcodeRow["UserCode"].ToString();
- workUserName = barcodeRow["UserName"].ToString();
- #region 校验条码有效性
- errMsg = CheckBarcode(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- // 查询新插入的生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- int productionDataID = 0;
- if (!string.IsNullOrEmpty(idStr))
- {
- productionDataID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- int? ClassesSettingID = null;//班次配置ID
- #region 添加生产者数据
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- maxClassesSettingID = ClassesSettingID;
- #region 添加生产数据
- ProductionDataEntity productionData = new ProductionDataEntity();
- #region 属性赋值
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = Convert.ToInt32(idStr);
- productionData.Barcode = barcode;
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.CompleteProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.ReworkProcedureID = null;
- productionData.PieceType = procedure.PieceType;
- //productionData.IsPublicBody = (int)Constant.PublicBodyFlag.No;
- if (procedure.IsSpecialRework == 0)
- {
- productionData.IsReFire = (int)Constant.ReFireFlag.No;
- productionData.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- else
- {
- productionData.IsReFire = (int)Constant.GoodsLevelType.ReFire;
- productionData.DefectFlag = (int)Constant.GoodsLevelType.Defect;
- }
- //productionData.GoodsGrade = (int)Constant.GoodsLevelType.NoDefects;
- //if (lastcreatetime != null)
- //{
- // productionData.CreateTime = Convert.ToDateTime(lastcreatetime);
- //}
- //不加条件valueflag,是因为,成检后重烧走过之后,在次重烧,以后也是重烧状态
- ////string sqlReFire = "select * from tp_PM_ProductionData where ProductionDataid=(select max(ProductionDataid) from tp_PM_ProductionData where barcode='" + productionData.Barcode + "')";
- ////DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire);
- ////if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- ////{
- //// if (Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]) > 0)
- //// {
- //// productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- //// }
- ////}
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = goodsID;
- productionData.GoodsCode = goodsCode;
- productionData.GoodsName = goodsName;
- productionData.UserID = workUserID;
- productionData.UserCode = barcodeRow["UserCode"].ToString();
- productionData.UserName = barcodeRow["UserName"].ToString();
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, barcode);
- #region 窑炉窑车属性
- productionData.KilnID = Convert.ToInt32(barcodeRow["KilnID"].ToString());
- productionData.KilnCode = barcodeRow["KilnCode"].ToString();
- productionData.KilnName = barcodeRow["KilnName"].ToString();
- productionData.KilnCarID = Convert.ToInt32(barcodeRow["KilnCarID"].ToString());
- productionData.KilnCarCode = barcodeRow["KilnCarCode"].ToString();
- productionData.KilnCarName = barcodeRow["KilnCarName"].ToString();
- productionData.KilnCarBatchNo = kilnCarBatchNo;
- productionData.KilnCarPosition = Convert.ToInt32(barcodeRow["KilnCarPosition"].ToString());
- #endregion
- #endregion
- string OutSpecialRepairflag = "0";//干补标识
- //if (lastcreatetime == null)
- //{
- errMsg = AddProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- //}
- //else
- //{
- // errMsg = AddProductionDataCreateTime(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- //}
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 修改在产产品数据的当前工序,清空返工工序字段
- InProductionEntity addInProductionEntity = new InProductionEntity();
- addInProductionEntity.BarCode = barcode;
- //流程工序
- addInProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- //addInProductionEntity.CompleteProcedureID = procedure.ProcedureID;
- addInProductionEntity.ProcedureID = procedure.ProcedureID;
- //生产数据ID
- addInProductionEntity.ProductionDataID = productionDataID;
- // 工序模型
- addInProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- addInProductionEntity.ModelType = procedure.ModelType;
- // 生产工号
- addInProductionEntity.UserID = workUserID;
- // 缺陷标识
- //addInProductionEntity.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- #region 更新在产表窑车窑炉字段
- addInProductionEntity.KilnID = Convert.ToInt32(barcodeRow["KilnID"].ToString());
- addInProductionEntity.KilnCode = barcodeRow["KilnCode"].ToString();
- addInProductionEntity.KilnName = barcodeRow["KilnName"].ToString();
- addInProductionEntity.KilnCarID = Convert.ToInt32(barcodeRow["KilnCarID"].ToString());
- addInProductionEntity.KilnCarCode = barcodeRow["KilnCarCode"].ToString();
- addInProductionEntity.KilnCarName = barcodeRow["KilnCarName"].ToString();
- addInProductionEntity.KilnCarBatchNo = kilnCarBatchNo;
- addInProductionEntity.KilnCarPosition = Convert.ToInt32(barcodeRow["KilnCarPosition"].ToString());
- #endregion
- if (procedure.IsSpecialRework == 0)
- {
- addInProductionEntity.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- else
- {
- addInProductionEntity.IsReFire = (int)Constant.GoodsLevelType.ReFire;
- addInProductionEntity.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- // 执行修改
- errMsg = UpdateInProduction(oracleTrConn, addInProductionEntity, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //#region 添加生产者数据
- //errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- //errMsg = UpdateKilnCarCreatetimeInfoBybarcode(oracleTrConn, productionData, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- #region 插入窑车产品表
- errMsg = AddKilnCarGoods(oracleTrConn,
- barcode,
- kilnCarID,
- goodsID,
- productionData.KilnCarPosition.Value,
- kilnCarBatchNo,
- workUserID,
- workUserCode,
- workUserName,
- sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //#region 装车后,更新所有以前操作的工序窑车信息
- //errMsg = UpdateKilnCarInfoBybarcode(oracleTrConn, productionData);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- }
- #region 窑车生产数据
- #region 插入窑车生产数据表
- if (lastcreatetime == null) //加此判断为的是,在登车时落产品,进行第二些登车时,不插重复数据
- {
- errMsg = AddKilnCarData(oracleTrConn,
- accountDate,
- kilnCarID,
- kilnCarBatchNo,
- workUserID,
- workUserCode,
- workUserName,
- null,
- sUserInfo, maxClassesSettingID);
- #region 窑车生产者
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- #endregion
- }
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 装车后,更新所有以前操作的工序窑车信息
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="barcode">条码</param>
- /// <param name="kilnCarID">窑车号</param>
- /// <param name="goodsID">产品ID</param>
- /// <param name="KilnCarPosition">窑车位置</param>
- /// <param name="kilnCarBatchNo">装车批次</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string UpdateKilnCarInfoBybarcode(IDBTransaction oracleTrConn, ProductionDataEntity productionData)
- {
- string sql = "update TP_PM_ProductionData set "
- + " KilnID=:KilnID,"
- + "KilnCode=:KilnCode,"
- + "KilnName=:KilnName,"
- + "KilnCarID=:KilnCarID,"
- + "KilnCarCode=:KilnCarCode,"
- + "KilnCarName=:KilnCarName,"
- + "KilnCarBatchNo=:KilnCarBatchNo,"
- + "KilnCarPosition=:KilnCarPosition,"
- + "isrefire=:isrefire "
- + " where barcode=:barcode";
- #region 参数
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":KilnID",productionData.KilnID),
- new OracleParameter(":KilnCode",productionData.KilnCode),
- new OracleParameter(":KilnName",productionData.KilnName),
- new OracleParameter(":KilnCarID",productionData.KilnCarID),
- new OracleParameter(":KilnCarCode",productionData.KilnCarCode),
- new OracleParameter(":KilnCarName",productionData.KilnCarName),
- new OracleParameter(":KilnCarBatchNo",productionData.KilnCarBatchNo),
- new OracleParameter(":KilnCarPosition",productionData.KilnCarPosition),
- new OracleParameter(":isrefire",productionData.IsReFire),
- new OracleParameter(":barcode",productionData.Barcode),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 保存失败
- if (result == Constant.INT_IS_ZERO)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 保存成功返回null
- return null;
- }
- /// <summary>
- /// 入窑车计件
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="procedure">工序对象</param>
- /// <param name="barcodeTable">条码信息</param>
- /// <param name="sUserInfo">基本</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 张国印 2014.10.04 新建
- /// </remarks>
- private static string AddIntoKilnCar(IDBTransaction oracleTrConn, ProcedureEntity procedure, DataTable barcodeTable, SUserInfo sUserInfo,
- out int goodsID, out string goodsCode, out string goodsName)
- {
- try
- {
- goodsID = Constant.INT_IS_ZERO;
- goodsCode = string.Empty;
- goodsName = string.Empty;
- string groutingUserCode = string.Empty;
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = string.Empty;
- // 生产工号
- int workUserID = Constant.INT_IS_ZERO;
- // 生产工号Code
- string workUserCode = string.Empty;
- // 生产工号Name
- string workUserName = string.Empty;
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- // 窑车批次号
- string kilnCarBatchNo = System.Guid.NewGuid().ToString();
- // 窑车状态
- string kilnCarStatus = string.Empty;
- //////////////////////////////////////////////////
- DataView dv = barcodeTable.DefaultView;
- DataTable dtNewKiln = dv.ToTable(true, "kilnCarCode");
- for (int i = 0; i < dtNewKiln.Rows.Count; i++)
- {
- ///////////////////////////////////////////////////
- // 窑车Code
- //string kilnCarCode = barcodeTable.Rows[0]["kilnCarCode"].ToString();
- DataRow[] dr = barcodeTable.Select("kilnCarCode='" + dtNewKiln.Rows[i]["kilnCarCode"].ToString() + "'");
- string kilnCarCode = dr[0]["kilnCarCode"].ToString();
- #region 校验窑车是否可入窑炉
- errMsg = CheckKilnCarrStatus(oracleTrConn, procedure.ProcedureID, kilnCarCode, procedure.ModelType, sUserInfo, out kilnCarStatus);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- // 窑炉ID
- //int kilnID = Convert.ToInt32(barcodeTable.Rows[0]["kilnID"].ToString());
- int kilnID = Convert.ToInt32(dr[0]["kilnID"].ToString());
- // 窑车ID
- //int kilnCarID = Convert.ToInt32(barcodeTable.Rows[0]["KilnCarID"].ToString());
- int kilnCarID = Convert.ToInt32(dr[0]["KilnCarID"].ToString());
- //备注信息
- string Remarks = dr[0]["Remarks"].ToString();
- // 主要目的防止输入窑车号,当前工序与该操作的工序不匹配,例如重烧入窑,在入窑工序上操作了
- errMsg = GetKilnCarProcedureIDByKilnCarID(oracleTrConn, kilnCarID, Convert.ToInt32(procedure.ProcedureID));
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- // 查询本次窑车产品的批次号
- kilnCarBatchNo = GetKilnCarBatchNoByKilnCarID(oracleTrConn, kilnCarID);
- #region 窑车表存在,查询本次窑车产品的批次号 并更改入窑车时间
- //更改窑车状态表入窑时间
- errMsg = UpdatekilnCarStatus(oracleTrConn, kilnCarID, Constant.ProcedureModelType.IntoKiln, sUserInfo, procedure, kilnCarBatchNo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- DataView dvFilter = barcodeTable.DefaultView;
- dvFilter.RowFilter = "kilnCarCode='" + dtNewKiln.Rows[i]["kilnCarCode"].ToString() + "'";
- DataTable dtNew = dvFilter.ToTable();
- int? maxClassesSettingID = null;
- // 条码信息
- //foreach (DataRow barcodeRow in barcodeTable.Rows)
- foreach (DataRow barcodeRow in dtNew.Rows)
- {
- // 条码
- string barcode = barcodeRow["Barcode"].ToString();
- // 生产工号
- workUserID = Convert.ToInt32(barcodeRow["UserID"]);
- workUserCode = barcodeRow["UserCode"].ToString();
- workUserName = barcodeRow["UserName"].ToString();
- // 查询新插入的生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- int productionDataID = 0;
- if (!string.IsNullOrEmpty(idStr))
- {
- productionDataID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- int? ClassesSettingID = null;//班次配置ID
- #region 添加生产者数据
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- maxClassesSettingID = ClassesSettingID;
- #region 添加生产数据
- ProductionDataEntity productionData = new ProductionDataEntity();
- #region 属性赋值
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = Convert.ToInt32(idStr);
- productionData.Barcode = barcode;
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.CompleteProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.DefectFlag = (int)Constant.DefectFlag.No;
- productionData.ReworkProcedureID = null;
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, barcode);
- productionData.IsReFire = (int)Constant.ReFireFlag.No;
- productionData.PieceType = procedure.PieceType;
- //productionData.GoodsGrade = (int)Constant.GoodsGrade.Good;
- //不加条件valueflag,是因为,成检后重烧走过之后,在次重烧,以后也是重烧状态
- // string sqlReFire = "select * from tp_PM_ProductionData where ProductionDataid=(select max(ProductionDataid) from tp_PM_ProductionData where barcode='" + productionData.Barcode + "')";
- ////// string sqlReFire = @"select
- ////// isrefire
- ////// from tp_pm_inproduction where barcode=:barcode
- ////// ";
- ////// OracleParameter[] ReFireparas = new OracleParameter[] {
- ////// new OracleParameter(":barcode",barcode),
- ////// };
- ////// DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire, ReFireparas);
- ////// if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- ////// {
- ////// if (Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]) > 0)
- ////// {
- ////// productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- ////// }
- ////// }
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = Convert.ToInt32(barcodeRow["GoodsID"]);
- productionData.GoodsCode = barcodeRow["GoodsCode"].ToString();
- productionData.GoodsName = barcodeRow["GoodsName"].ToString();
- productionData.UserID = workUserID;
- productionData.UserCode = barcodeRow["UserCode"].ToString();
- productionData.UserName = barcodeRow["UserName"].ToString();
- #region 窑炉窑车属性
- productionData.KilnID = Convert.ToInt32(barcodeRow["KilnID"].ToString());
- productionData.KilnCode = barcodeRow["KilnCode"].ToString();
- productionData.KilnName = barcodeRow["KilnName"].ToString();
- productionData.KilnCarID = Convert.ToInt32(barcodeRow["KilnCarID"].ToString());
- productionData.KilnCarCode = barcodeRow["KilnCarCode"].ToString();
- productionData.KilnCarName = barcodeRow["KilnCarName"].ToString();
- productionData.KilnCarBatchNo = kilnCarBatchNo;
- productionData.KilnCarPosition = Convert.ToInt32(barcodeRow["KilnCarPosition"].ToString());
- productionData.Remarks = "";
- #endregion
- #endregion
- string OutSpecialRepairflag = "0";//干补标识
- errMsg = AddProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 修改在产产品数据的当前工序,清空返工工序字段
- InProductionEntity addInProductionEntity = new InProductionEntity();
- addInProductionEntity.BarCode = barcode;
- //流程工序
- addInProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- //addInProductionEntity.CompleteProcedureID = procedure.ProcedureID;
- addInProductionEntity.ProcedureID = procedure.ProcedureID;
- //生产数据ID
- addInProductionEntity.ProductionDataID = productionDataID;
- // 工序模型
- addInProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- addInProductionEntity.ModelType = procedure.ModelType;
- // 生产工号
- addInProductionEntity.UserID = workUserID;
- // 缺陷标识
- addInProductionEntity.DefectFlag = (int)Constant.DefectFlag.No;
- #region 更新在产表窑车窑炉字段
- addInProductionEntity.KilnID = Convert.ToInt32(barcodeRow["KilnID"].ToString());
- addInProductionEntity.KilnCode = barcodeRow["KilnCode"].ToString();
- addInProductionEntity.KilnName = barcodeRow["KilnName"].ToString();
- addInProductionEntity.KilnCarID = Convert.ToInt32(barcodeRow["KilnCarID"].ToString());
- addInProductionEntity.KilnCarCode = barcodeRow["KilnCarCode"].ToString();
- addInProductionEntity.KilnCarName = barcodeRow["KilnCarName"].ToString();
- addInProductionEntity.KilnCarBatchNo = kilnCarBatchNo;
- addInProductionEntity.KilnCarPosition = Convert.ToInt32(barcodeRow["KilnCarPosition"].ToString());
- #endregion
- // 执行修改
- errMsg = UpdateInProduction(oracleTrConn, addInProductionEntity, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //#region 添加生产者数据
- //errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- }
- #region 插入窑车生产数据表
- errMsg = AddKilnCarData(oracleTrConn,
- accountDate,
- kilnCarID,
- kilnCarBatchNo,
- workUserID,
- workUserCode,
- workUserName,
- Remarks,
- sUserInfo, maxClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //#region 窑车生产者
- //// 查询新插入的生产数据ID
- //string sqlKilnCar = "select SEQ_PM_KilnCarData_ID.Currval from dual";
- //string idKilnCar = oracleTrConn.GetSqlResultToStr(sqlKilnCar);
- //errMsg = AddKilnCarProducer(oracleTrConn, accountDate, Convert.ToInt32(idKilnCar), workUserID, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- }
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 校验窑车的工序与当前工序是否可以到达(重烧后,未走重烧入窑)
- /// </summary>
- /// <param name="oracleTrConn">数据连接</param>
- /// <param name="barcode">产品条码</param>
- /// <returns>string</returns>
- private static string GetKilnCarProcedureIDByKilnCarID(IDBTransaction oracleTrConn, int KilnCarID, int ProcedureID)
- {
- string sql = @"select ProcedureID from TP_PM_KilnCarStatus where KilnCarID=:KilnCarID";
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":KilnCarID", KilnCarID) ,
- };
- int currentProcedureID = 0;
- DataSet result = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (result != null && result.Tables[0].Rows.Count > 0)
- {
- currentProcedureID = Convert.ToInt32(result.Tables[0].Rows[0][0]);
- }
- sql = @"select pro.ProcedureID
- from TP_PC_ProcedureFlow flow
- inner join TP_PC_Procedure pro
- on flow.arriveprocedureid = pro.procedureid
- inner join TP_PC_ProductionLine line
- on pro.ProductionLineID = line.ProductionLineID
- where flow.ProcedureID = :currentProcedureID
- and flow.FlowFlag = 2";
- paras = new OracleParameter[] {
- new OracleParameter(":currentProcedureID", currentProcedureID) ,
- };
- result = oracleTrConn.GetSqlResultToDs(sql, paras);
- int returnProcedureID = 0;
- if (result != null && result.Tables[0].Rows.Count > 0)
- {
- if (result.Tables[0].Select("ProcedureID=" + ProcedureID).Length > 0)
- {
- returnProcedureID = 1;
- }
- }
- // 保存失败
- if (returnProcedureID == 0)
- {
- return string.Format("当前工序不允许进行操作", "条码", "保存");
- }
- return null;
- }
- /// <summary>
- /// 出窑车计件
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="procedure">工序对象</param>
- /// <param name="barcodeTable">条码信息</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 张国印 2014.10.04 新建
- /// </remarks>
- private static string AddOutKilnCar(IDBTransaction oracleTrConn, ProcedureEntity procedure, DataTable barcodeTable, SUserInfo sUserInfo,
- out int goodsID, out string goodsCode, out string goodsName)
- {
- try
- {
- goodsID = Constant.INT_IS_ZERO;
- goodsCode = string.Empty;
- goodsName = string.Empty;
- string groutingUserCode = string.Empty;
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = string.Empty;
- // 生产工号
- int workUserID = Constant.INT_IS_ZERO;
- // 生产工号Code
- string workUserCode = string.Empty;
- // 生产工号Name
- string workUserName = string.Empty;
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- // 窑车批次号
- string kilnCarBatchNo = System.Guid.NewGuid().ToString();
- // 窑车状态
- string kilnCarStatus = string.Empty;
- //////////////////////////////////////////////////
- DataView dv = barcodeTable.DefaultView;
- DataTable dtNewKiln = dv.ToTable(true, "kilnCarCode");
- for (int i = 0; i < dtNewKiln.Rows.Count; i++)
- {
- // 窑车Code
- //string kilnCarCode = barcodeTable.Rows[0]["kilnCarCode"].ToString();
- DataRow[] dr = barcodeTable.Select("kilnCarCode='" + dtNewKiln.Rows[i]["kilnCarCode"].ToString() + "'");
- string kilnCarCode = dr[0]["kilnCarCode"].ToString();
- string Remarks = dr[0]["Remarks"].ToString();
- #region 校验窑车是否可出窑炉
- errMsg = CheckKilnCarrStatus(oracleTrConn, procedure.ProcedureID, kilnCarCode, procedure.ModelType, sUserInfo, out kilnCarStatus);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- // 窑炉ID
- //int kilnID = Convert.ToInt32(barcodeTable.Rows[0]["kilnID"].ToString());
- int kilnID = Convert.ToInt32(dr[0]["kilnID"].ToString());
- // 窑车ID
- //int kilnCarID = Convert.ToInt32(barcodeTable.Rows[0]["KilnCarID"].ToString());
- int kilnCarID = Convert.ToInt32(dr[0]["KilnCarID"].ToString());
- // 主要目的防止输入窑车号,当前工序与该操作的工序不匹配,例如重烧入窑,在入窑工序上操作了
- errMsg = GetKilnCarProcedureIDByKilnCarID(oracleTrConn, kilnCarID, Convert.ToInt32(procedure.ProcedureID));
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- // 查询本次窑车产品的批次号
- kilnCarBatchNo = GetKilnCarBatchNoByKilnCarID(oracleTrConn, kilnCarID);
- #region 窑车表存在,查询本次窑车产品的批次号 并更改出窑车时间
- //更改窑车状态表入窑时间
- errMsg = UpdatekilnCarStatus(oracleTrConn, kilnCarID, Constant.ProcedureModelType.OutKiln, sUserInfo, procedure, kilnCarBatchNo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //// 条码信息
- DataView dvFilter = barcodeTable.DefaultView;
- dvFilter.RowFilter = "kilnCarCode='" + dtNewKiln.Rows[i]["kilnCarCode"].ToString() + "'";
- DataTable dtNew = dvFilter.ToTable();
- int? maxClassesSettingID = null;
- // 条码信息
- //foreach (DataRow barcodeRow in barcodeTable.Rows)
- foreach (DataRow barcodeRow in dtNew.Rows)
- {
- // 条码
- string barcode = barcodeRow["Barcode"].ToString();
- // 生产工号
- workUserID = Convert.ToInt32(barcodeRow["UserID"]);
- workUserCode = barcodeRow["UserCode"].ToString();
- workUserName = barcodeRow["UserName"].ToString();
- // 查询新插入的生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- int productionDataID = 0;
- if (!string.IsNullOrEmpty(idStr))
- {
- productionDataID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- int? ClassesSettingID = null;//班次配置ID
- #region 添加生产者数据
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- maxClassesSettingID = ClassesSettingID;
- #region 添加生产数据
- ProductionDataEntity productionData = new ProductionDataEntity();
- #region 属性赋值
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = Convert.ToInt32(idStr);
- productionData.Barcode = barcode;
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.CompleteProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.DefectFlag = (int)Constant.DefectFlag.No;
- productionData.ReworkProcedureID = null;
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, barcode);
- productionData.IsReFire = (int)Constant.ReFireFlag.No;
- productionData.PieceType = procedure.PieceType;
- //productionData.GoodsGrade = (int)Constant.GoodsGrade.Good;
- ////// string sqlReFire = @"select
- ////// isrefire
- ////// from tp_pm_inproduction where barcode=:barcode
- ////// ";
- ////// OracleParameter[] ReFireparas = new OracleParameter[] {
- ////// new OracleParameter(":barcode",barcode),
- ////// };
- ////// DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire, ReFireparas);
- ////// if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- ////// {
- ////// if (Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]) > 0)
- ////// {
- ////// productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- ////// }
- ////// }
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = Convert.ToInt32(barcodeRow["GoodsID"]);
- productionData.GoodsCode = barcodeRow["GoodsCode"].ToString();
- productionData.GoodsName = barcodeRow["GoodsName"].ToString();
- productionData.UserID = workUserID;
- productionData.UserCode = barcodeRow["UserCode"].ToString();
- productionData.UserName = barcodeRow["UserName"].ToString();
- #region 窑炉窑车属性
- productionData.KilnID = Convert.ToInt32(barcodeRow["KilnID"].ToString());
- productionData.KilnCode = barcodeRow["KilnCode"].ToString();
- productionData.KilnName = barcodeRow["KilnName"].ToString();
- productionData.KilnCarID = Convert.ToInt32(barcodeRow["KilnCarID"].ToString());
- productionData.KilnCarCode = barcodeRow["KilnCarCode"].ToString();
- productionData.KilnCarName = barcodeRow["KilnCarName"].ToString();
- productionData.KilnCarBatchNo = kilnCarBatchNo;
- productionData.KilnCarPosition = Convert.ToInt32(barcodeRow["KilnCarPosition"].ToString());
- productionData.Remarks = barcodeRow["Remarks"].ToString();
- #endregion
- #endregion
- string OutSpecialRepairflag = "0";//干补标识
- errMsg = AddProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 修改在产产品数据的当前工序,清空返工工序字段
- InProductionEntity addInProductionEntity = new InProductionEntity();
- addInProductionEntity.BarCode = barcode;
- //流程工序
- addInProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- //addInProductionEntity.CompleteProcedureID = procedure.ProcedureID;
- addInProductionEntity.ProcedureID = procedure.ProcedureID;
- // 生产数据ID
- addInProductionEntity.ProductionDataID = productionDataID;
- // 工序模型
- addInProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- addInProductionEntity.ModelType = procedure.ModelType;
- // 生产工号
- addInProductionEntity.UserID = workUserID;
- // 缺陷标识
- addInProductionEntity.DefectFlag = (int)Constant.DefectFlag.No;
- #region 更新在产表窑车窑炉字段
- addInProductionEntity.KilnID = Convert.ToInt32(barcodeRow["KilnID"].ToString());
- addInProductionEntity.KilnCode = barcodeRow["KilnCode"].ToString();
- addInProductionEntity.KilnName = barcodeRow["KilnName"].ToString();
- addInProductionEntity.KilnCarID = Convert.ToInt32(barcodeRow["KilnCarID"].ToString());
- addInProductionEntity.KilnCarCode = barcodeRow["KilnCarCode"].ToString();
- addInProductionEntity.KilnCarName = barcodeRow["KilnCarName"].ToString();
- addInProductionEntity.KilnCarBatchNo = kilnCarBatchNo;
- addInProductionEntity.KilnCarPosition = Convert.ToInt32(barcodeRow["KilnCarPosition"].ToString());
- #endregion
- // 执行修改
- errMsg = UpdateInProduction(oracleTrConn, addInProductionEntity, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //#region 添加生产者数据
- //errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- }
- #region 插入窑车生产数据表
- errMsg = AddKilnCarData(oracleTrConn,
- accountDate,
- kilnCarID,
- kilnCarBatchNo,
- workUserID,
- workUserCode,
- workUserName,
- Remarks,
- sUserInfo, maxClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //#region 窑车生产者
- //// 查询新插入的生产数据ID
- //string sqlKilnCar = "select SEQ_PM_KilnCarData_ID.Currval from dual";
- //string idKilnCar = oracleTrConn.GetSqlResultToStr(sqlKilnCar);
- //errMsg = AddKilnCarProducer(oracleTrConn, accountDate, Convert.ToInt32(idKilnCar), workUserID, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- }
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 卸窑车计件
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="procedure">工序对象</param>
- /// <param name="barcodeTable">条码信息</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 张国印 2014.10.04 新建
- /// </remarks>
- private static string AddUnloadingKilnCar(IDBTransaction oracleTrConn, ProcedureEntity procedure, DataTable barcodeTable, SUserInfo sUserInfo,
- out int goodsID, out string goodsCode, out string goodsName)
- {
- try
- {
- goodsID = Constant.INT_IS_ZERO;
- goodsCode = string.Empty;
- goodsName = string.Empty;
- string groutingUserCode = string.Empty;
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = string.Empty;
- // 生产工号
- int workUserID = Constant.INT_IS_ZERO;
- // 生产工号Code
- string workUserCode = string.Empty;
- // 生产工号Name
- string workUserName = string.Empty;
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- string finishedloadbatchno = DateTime.Now.ToString("yyMMddHHmmss-") + centralizedBatchNo;
- // 窑车批次号
- string kilnCarBatchNo = null;//System.Guid.NewGuid().ToString();
- // 窑车状态
- string kilnCarStatus = string.Empty;
- DataView dv = barcodeTable.DefaultView;
- DataTable dtNewKiln = dv.ToTable(true, "kilnCarCode");
- for (int i = 0; i < dtNewKiln.Rows.Count; i++)
- {
- // 窑车Code
- //string kilnCarCode = barcodeTable.Rows[0]["kilnCarCode"].ToString();
- DataRow[] dr = barcodeTable.Select("kilnCarCode='" + dtNewKiln.Rows[i]["kilnCarCode"].ToString() + "'");
- string kilnCarCode = dr[0]["kilnCarCode"].ToString();
- string Remarks = dr[0]["Remarks"].ToString();
- #region 校验窑车是否可出窑炉
- errMsg = CheckKilnCarrStatus(oracleTrConn, procedure.ProcedureID, kilnCarCode, procedure.ModelType, sUserInfo, out kilnCarStatus);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- // 窑炉ID
- //int kilnID = Convert.ToInt32(barcodeTable.Rows[0]["kilnID"].ToString());
- int kilnID = Convert.ToInt32(dr[0]["kilnID"].ToString());
- // 窑车ID
- //int kilnCarID = Convert.ToInt32(barcodeTable.Rows[0]["KilnCarID"].ToString());
- int kilnCarID = Convert.ToInt32(dr[0]["KilnCarID"].ToString());
- // 主要目的防止输入窑车号,当前工序与该操作的工序不匹配,例如重烧入窑,在入窑工序上操作了
- errMsg = GetKilnCarProcedureIDByKilnCarID(oracleTrConn, kilnCarID, Convert.ToInt32(procedure.ProcedureID));
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- // 查询本次窑车产品的批次号
- kilnCarBatchNo = GetKilnCarBatchNoByKilnCarID(oracleTrConn, kilnCarID);
- #region 窑车表存在,查询本次窑车产品的批次号 并更改出窑车时间
- //更改窑车状态表入窑时间
- errMsg = UpdatekilnCarStatus(oracleTrConn, kilnCarID, Constant.ProcedureModelType.UnloadCar, sUserInfo, procedure, kilnCarBatchNo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- // 条码信息
- DataView dvFilter = barcodeTable.DefaultView;
- dvFilter.RowFilter = "kilnCarCode='" + dtNewKiln.Rows[i]["kilnCarCode"].ToString() + "'";
- DataTable dtNew = dvFilter.ToTable();
- int? maxClassesSettingID = null;
- // 条码信息
- //foreach (DataRow barcodeRow in barcodeTable.Rows)
- foreach (DataRow barcodeRow in dtNew.Rows)
- {
- // 条码
- string barcode = barcodeRow["Barcode"].ToString();
- // 生产工号
- workUserID = Convert.ToInt32(barcodeRow["UserID"]);
- workUserCode = barcodeRow["UserCode"].ToString();
- workUserName = barcodeRow["UserName"].ToString();
- // 查询新插入的生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- int productionDataID = 0;
- if (!string.IsNullOrEmpty(idStr))
- {
- productionDataID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- int? ClassesSettingID = null;//班次配置ID
- #region 添加生产者数据
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- maxClassesSettingID = ClassesSettingID;
- #region 添加生产数据
- ProductionDataEntity productionData = new ProductionDataEntity();
- #region 属性赋值
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = Convert.ToInt32(idStr);
- productionData.Barcode = barcode;
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.CompleteProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.DefectFlag = (int)Constant.DefectFlag.No;
- productionData.ReworkProcedureID = null;
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, barcode);
- productionData.IsReFire = (int)Constant.ReFireFlag.No;
- productionData.GoodsGrade = (int)Constant.GoodsGrade.Good;
- productionData.PieceType = procedure.PieceType;
- ////// string sqlReFire = @"select
- ////// isrefire
- ////// from tp_pm_inproduction where barcode=:barcode
- ////// ";
- ////// OracleParameter[] ReFireparas = new OracleParameter[] {
- ////// new OracleParameter(":barcode",barcode),
- ////// };
- ////// DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire, ReFireparas);
- ////// if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- ////// {
- ////// if (Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]) > 0)
- ////// {
- ////// productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- ////// }
- ////// }
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = Convert.ToInt32(barcodeRow["GoodsID"]);
- productionData.GoodsCode = barcodeRow["GoodsCode"].ToString();
- productionData.GoodsName = barcodeRow["GoodsName"].ToString();
- productionData.UserID = workUserID;
- productionData.UserCode = barcodeRow["UserCode"].ToString();
- productionData.UserName = barcodeRow["UserName"].ToString();
- #region 窑炉窑车属性
- productionData.KilnID = Convert.ToInt32(barcodeRow["KilnID"].ToString());
- productionData.KilnCode = barcodeRow["KilnCode"].ToString();
- productionData.KilnName = barcodeRow["KilnName"].ToString();
- productionData.KilnCarID = Convert.ToInt32(barcodeRow["KilnCarID"].ToString());
- productionData.KilnCarCode = barcodeRow["KilnCarCode"].ToString();
- productionData.KilnCarName = barcodeRow["KilnCarName"].ToString();
- productionData.KilnCarBatchNo = kilnCarBatchNo;
- productionData.KilnCarPosition = Convert.ToInt32(barcodeRow["KilnCarPosition"].ToString());
- productionData.Remarks = barcodeRow["Remarks"].ToString();
- #endregion
- #endregion
- string OutSpecialRepairflag = "0";//干补标识
- errMsg = AddProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- if (procedure.NodeType == Constant.ProcedureNodeType.Middle.GetHashCode())
- {
- #region 中间工序 修改在产产品数据的当前工序,清空返工工序字段
- InProductionEntity addInProductionEntity = new InProductionEntity();
- addInProductionEntity.BarCode = barcode;
- //流程工序ID
- addInProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- addInProductionEntity.ProcedureID = procedure.ProcedureID;
- // 生产数据ID
- addInProductionEntity.ProductionDataID = productionDataID;
- // 工序模型
- addInProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- addInProductionEntity.ModelType = procedure.ModelType;
- // 生产工号
- addInProductionEntity.UserID = workUserID;
- // 缺陷标识
- addInProductionEntity.DefectFlag = (int)Constant.DefectFlag.No;
- #region 更新在产表窑车窑炉字段
- addInProductionEntity.KilnID = Convert.ToInt32(barcodeRow["KilnID"].ToString());
- addInProductionEntity.KilnCode = barcodeRow["KilnCode"].ToString();
- addInProductionEntity.KilnName = barcodeRow["KilnName"].ToString();
- addInProductionEntity.KilnCarID = Convert.ToInt32(barcodeRow["KilnCarID"].ToString());
- addInProductionEntity.KilnCarCode = barcodeRow["KilnCarCode"].ToString();
- addInProductionEntity.KilnCarName = barcodeRow["KilnCarName"].ToString();
- addInProductionEntity.KilnCarBatchNo = kilnCarBatchNo;
- addInProductionEntity.KilnCarPosition = Convert.ToInt32(barcodeRow["KilnCarPosition"].ToString());
- #endregion
- // 执行修改
- errMsg = UpdateInProduction(oracleTrConn, addInProductionEntity, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- else if (procedure.NodeType == Constant.ProcedureNodeType.End.GetHashCode())
- {
- #region 结束工序 添加成品数据 删除在产产品数据
- FinishedProductEntity finishedProduct = new FinishedProductEntity();
- finishedProduct.BarCode = barcode;
- errMsg = AddFinishedProduct(oracleTrConn, finishedProduct, sUserInfo, finishedloadbatchno);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- InProductionEntity delInProductionEntity = new InProductionEntity();
- delInProductionEntity.BarCode = barcode;
- // 执行删除 在产数据
- errMsg = DeleteInProduction(oracleTrConn, delInProductionEntity, true, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- //#region 添加生产者数据
- //errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- }
- #region 插入窑车生产数据表
- errMsg = AddKilnCarData(oracleTrConn,
- accountDate,
- kilnCarID,
- kilnCarBatchNo,
- workUserID,
- workUserCode,
- workUserName,
- Remarks,
- sUserInfo, maxClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //#region 窑车生产者
- //// 查询新插入的生产数据ID
- //string sqlKilnCar = "select SEQ_PM_KilnCarData_ID.Currval from dual";
- //string idKilnCar = oracleTrConn.GetSqlResultToStr(sqlKilnCar);
- //errMsg = AddKilnCarProducer(oracleTrConn, accountDate, Convert.ToInt32(idKilnCar), workUserID, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- #region 删除TP_PM_KilnCarGoods数据 按照窑车ID
- errMsg = DeleteKilnCarGoodsByKilnCarID(oracleTrConn, kilnCarID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 窑车补件计件
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="procedure">工序对象</param>
- /// <param name="barcodeTable">条码信息</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 张国印 2014.10.05 新建
- /// </remarks>
- private static string AddKilnCarSupplement(IDBTransaction oracleTrConn, ProcedureEntity procedure, DataTable barcodeTable, SUserInfo sUserInfo,
- out int goodsID, out string goodsCode, out string goodsName)
- {
- try
- {
- goodsID = Constant.INT_IS_ZERO;
- goodsCode = null;
- goodsName = null;
- string groutingUserCode = string.Empty;
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = "";
- // 生产工号
- int workUserID = Constant.INT_IS_ZERO;
- // 生产工号Code
- string workUserCode = string.Empty;
- // 生产工号Name
- string workUserName = string.Empty;
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- // 窑车Code
- string kilnCarCode = barcodeTable.Rows[0]["kilnCarCode"].ToString();
- // 窑车批次号
- string kilnCarBatchNo = System.Guid.NewGuid().ToString();
- // 窑车状态
- string kilnCarStatus = string.Empty;
- #region 校验窑车是否可装车
- errMsg = CheckKilnCarrStatus(oracleTrConn, procedure.ProcedureID, kilnCarCode, procedure.ModelType, sUserInfo, out kilnCarStatus);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- // 窑炉ID
- //int kilnID = Convert.ToInt32(barcodeTable.Rows[0]["kilnID"].ToString());
- //// 窑车ID
- //int kilnCarID = Convert.ToInt32(barcodeTable.Rows[0]["KilnCarID"].ToString());
- int kilnID = 0;
- // 窑车ID
- int kilnCarID = 0;
- // 条码信息
- foreach (DataRow barcodeRow in barcodeTable.Rows)
- {
- kilnID = Convert.ToInt32(barcodeRow["kilnID"]);
- kilnCarID = Convert.ToInt32(barcodeRow["KilnCarID"].ToString());
- //窑车表存在,查询本次窑车产品的批次号 并更改装窑车时间
- kilnCarBatchNo = GetKilnCarBatchNoByKilnCarID(oracleTrConn, kilnCarID);
- // 条码
- string barcode = barcodeRow["Barcode"].ToString();
- // 生产工号
- workUserID = Convert.ToInt32(barcodeRow["UserID"]);
- workUserCode = barcodeRow["UserCode"].ToString();
- workUserName = barcodeRow["UserName"].ToString();
- //#region 校验条码有效性
- //errMsg = CheckBarcode(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- if (procedure.CollectType == 1)
- {
- #region 校验条码有效性
- errMsg = CheckBarcode(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- else
- {
- string sqlGroutingInfo = @"select tp_pm_groutingdailydetail.goodsid,
- tp_pm_groutingdailydetail.goodscode,
- tp_pm_groutingdailydetail.goodsname,
- tp_pm_groutingdailydetail.usercode as groutingUserCode
- from tp_pm_groutingdailydetail where barcode=:barcode
- ";
- OracleParameter[] ReFireparas = new OracleParameter[] {
- new OracleParameter(":barcode",barcode),
- };
- DataSet dsGrouting = oracleTrConn.GetSqlResultToDs(sqlGroutingInfo, ReFireparas);
- if (dsGrouting != null && dsGrouting.Tables[0].Rows.Count > 0)
- {
- goodsID = Convert.ToInt32(dsGrouting.Tables[0].Rows[0]["goodsid"]);
- goodsCode = dsGrouting.Tables[0].Rows[0]["goodscode"].ToString();
- goodsName = dsGrouting.Tables[0].Rows[0]["goodsName"].ToString();
- groutingUserCode = dsGrouting.Tables[0].Rows[0]["groutingUserCode"].ToString();
- }
- }
- // 查询新插入的生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- int productionDataID = 0;
- if (!string.IsNullOrEmpty(idStr))
- {
- productionDataID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- int? ClassesSettingID = null;//班次配置ID
- #region 添加生产者数据
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 添加生产数据
- ProductionDataEntity productionData = new ProductionDataEntity();
- #region 属性赋值
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = Convert.ToInt32(idStr);
- productionData.Barcode = barcode;
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.CompleteProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.DefectFlag = (int)Constant.DefectFlag.No;
- productionData.ReworkProcedureID = null;
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, barcode);
- productionData.IsReFire = (int)Constant.ReFireFlag.No;
- productionData.GoodsGrade = (int)Constant.GoodsGrade.Good;
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = goodsID;
- productionData.GoodsCode = goodsCode;
- productionData.GoodsName = goodsName;
- productionData.UserID = workUserID;
- productionData.UserCode = barcodeRow["UserCode"].ToString();
- productionData.UserName = barcodeRow["UserName"].ToString();
- productionData.PieceType = procedure.PieceType;
- #region 窑炉窑车属性
- productionData.KilnID = Convert.ToInt32(barcodeRow["KilnID"].ToString());
- productionData.KilnCode = barcodeRow["KilnCode"].ToString();
- productionData.KilnName = barcodeRow["KilnName"].ToString();
- productionData.KilnCarID = Convert.ToInt32(barcodeRow["KilnCarID"].ToString());
- productionData.KilnCarCode = barcodeRow["KilnCarCode"].ToString();
- productionData.KilnCarName = barcodeRow["KilnCarName"].ToString();
- productionData.KilnCarBatchNo = kilnCarBatchNo;
- productionData.KilnCarPosition = Convert.ToInt32(barcodeRow["KilnCarPosition"].ToString());
- #endregion
- #endregion
- string OutSpecialRepairflag = "0";//干补标识
- errMsg = AddProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 修改在产产品数据的当前工序,清空返工工序字段
- InProductionEntity addInProductionEntity = new InProductionEntity();
- addInProductionEntity.BarCode = barcode;
- //流程工序
- addInProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- //addInProductionEntity.CompleteProcedureID = procedure.ProcedureID;
- addInProductionEntity.ProcedureID = procedure.ProcedureID;
- //生产数据ID
- addInProductionEntity.ProductionDataID = productionDataID;
- // 工序模型
- addInProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- addInProductionEntity.ModelType = procedure.ModelType;
- // 生产工号
- addInProductionEntity.UserID = workUserID;
- // 缺陷标识
- addInProductionEntity.DefectFlag = (int)Constant.DefectFlag.No;
- #region 更新在产表窑车窑炉字段
- addInProductionEntity.KilnID = Convert.ToInt32(barcodeRow["KilnID"].ToString());
- addInProductionEntity.KilnCode = barcodeRow["KilnCode"].ToString();
- addInProductionEntity.KilnName = barcodeRow["KilnName"].ToString();
- addInProductionEntity.KilnCarID = Convert.ToInt32(barcodeRow["KilnCarID"].ToString());
- addInProductionEntity.KilnCarCode = barcodeRow["KilnCarCode"].ToString();
- addInProductionEntity.KilnCarName = barcodeRow["KilnCarName"].ToString();
- addInProductionEntity.KilnCarBatchNo = kilnCarBatchNo;
- addInProductionEntity.KilnCarPosition = Convert.ToInt32(barcodeRow["KilnCarPosition"].ToString());
- #endregion
- // 执行修改
- errMsg = UpdateInProduction(oracleTrConn, addInProductionEntity, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //#region 添加生产者数据
- //errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- #region 插入窑车产品表
- errMsg = AddKilnCarGoods(oracleTrConn,
- barcode,
- kilnCarID,
- goodsID,
- productionData.KilnCarPosition.Value,
- kilnCarBatchNo,
- workUserID,
- workUserCode,
- workUserName,
- sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 插入窑车生产数据表(装车)
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="kilnCarID">窑车ID</param>
- /// <param name="kilnCarBatchNo">窑车批次号</param>
- /// <param name="workUserID">生产工号ID</param>
- /// <param name="workUserCode">生产工号Code</param>
- /// <param name="workUserName">生产工号Name</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddKilnCarDataCreateTime(IDBTransaction oracleTrConn,
- DateTime accountDate,
- int kilnCarID,
- string kilnCarBatchNo,
- int workUserID,
- string workUserCode,
- string workUserName,
- string remarks,
- DateTime? createtime,
- SUserInfo sUserInfo)
- {
- #region SQL
- string sql = "insert into tp_pm_kilncardata"
- + " (kilncarbatchno,"
- + " kilncarid,"
- + " kilnid,"
- + " productionlineid,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " proceduremodel,"
- + " modeltype,"
- + " piecetype,"
- + " kilncarstatus,"
- + " UserID,"
- + " UserCode,"
- + " UserName,"
- + " loadingtime,"
- + " intokilntime,"
- + " outkilntime,"
- + " unloadingtime,"
- + " accountdate,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid,"
- + " createtime,"
- + " remarks)"
- + " select "
- + " :pkilncarbatchno,"
- + " kilncarid,"
- + " kilnid,"
- + " productionlineid,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " proceduremodel,"
- + " modeltype,"
- + " piecetype,"
- + " kilncarstatus,"
- + " :puserID,"
- + " :puserCode,"
- + " :puserName,"
- + " loadingtime,"
- + " intokilntime,"
- + " outkilntime,"
- + " unloadingtime,"
- + " :paccountdate,"
- + " :paccountid,"
- + " :pcreateuserid,"
- + " :pupdateuserid,"
- + " :createtime,"
- + " :remarks"
- + " from tp_pm_kilncarstatus"
- + " where kilncarid = :pkilncarid";
- #endregion
- #region 参数
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":pkilncarbatchno",OracleDbType.Varchar2,kilnCarBatchNo,ParameterDirection.Input),
- new OracleParameter(":puserID",OracleDbType.Int32,workUserID,ParameterDirection.Input),
- new OracleParameter(":puserCode",OracleDbType.Varchar2,workUserCode,ParameterDirection.Input),
- new OracleParameter(":puserName",OracleDbType.Varchar2,workUserName,ParameterDirection.Input),
- new OracleParameter(":paccountdate",OracleDbType.Date,accountDate,ParameterDirection.Input),
- new OracleParameter(":paccountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":pcreateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pupdateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pkilncarid",OracleDbType.Int32,kilnCarID,ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,remarks,ParameterDirection.Input),
- new OracleParameter(":createtime",OracleDbType.Date,Convert.ToDateTime(createtime),ParameterDirection.Input),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 保存成功返回null
- return null;
- }
- /// <summary>
- /// 插入窑车生产数据表
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="kilnCarID">窑车ID</param>
- /// <param name="kilnCarBatchNo">窑车批次号</param>
- /// <param name="workUserID">生产工号ID</param>
- /// <param name="workUserCode">生产工号Code</param>
- /// <param name="workUserName">生产工号Name</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddKilnCarData(IDBTransaction oracleTrConn,
- DateTime accountDate,
- int kilnCarID,
- string kilnCarBatchNo,
- int workUserID,
- string workUserCode,
- string workUserName,
- string remarks,
- SUserInfo sUserInfo, int? ClassesSettingID)
- {
- #region SQL
- string sql = "insert into tp_pm_kilncardata"
- + " (kilncarbatchno,"
- + " kilncarid,"
- + " kilnid,"
- + " productionlineid,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " proceduremodel,"
- + " modeltype,"
- + " piecetype,"
- + " kilncarstatus,"
- + " UserID,"
- + " UserCode,"
- + " UserName,"
- + " loadingtime,"
- + " intokilntime,"
- + " outkilntime,"
- + " unloadingtime,"
- + " accountdate,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid,"
- + " classesSettingID,"
- + " remarks)"
- + " select "
- + " :pkilncarbatchno,"
- + " kilncarid,"
- + " kilnid,"
- + " productionlineid,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " proceduremodel,"
- + " modeltype,"
- + " piecetype,"
- + " kilncarstatus,"
- + " :puserID,"
- + " :puserCode,"
- + " :puserName,"
- + " loadingtime,"
- + " intokilntime,"
- + " outkilntime,"
- + " unloadingtime,"
- + " :paccountdate,"
- + " :paccountid,"
- + " :pcreateuserid,"
- + " :pupdateuserid,"
- + " :classesSettingID,"
- + " :remarks"
- + " from tp_pm_kilncarstatus"
- + " where kilncarid = :pkilncarid";
- #endregion
- #region 参数
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":classesSettingID",OracleDbType.Int32,ClassesSettingID,ParameterDirection.Input),
- new OracleParameter(":pkilncarbatchno",OracleDbType.Varchar2,kilnCarBatchNo,ParameterDirection.Input),
- new OracleParameter(":puserID",OracleDbType.Int32,workUserID,ParameterDirection.Input),
- new OracleParameter(":puserCode",OracleDbType.Varchar2,workUserCode,ParameterDirection.Input),
- new OracleParameter(":puserName",OracleDbType.Varchar2,workUserName,ParameterDirection.Input),
- new OracleParameter(":paccountdate",OracleDbType.Date,accountDate,ParameterDirection.Input),
- new OracleParameter(":paccountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":pcreateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pupdateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pkilncarid",OracleDbType.Int32,kilnCarID,ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,remarks,ParameterDirection.Input),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 保存成功返回null
- return null;
- }
- /// <summary>
- /// 插入窑车产品表
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="barcode">条码</param>
- /// <param name="kilnCarID">窑车号</param>
- /// <param name="goodsID">产品ID</param>
- /// <param name="KilnCarPosition">窑车位置</param>
- /// <param name="kilnCarBatchNo">装车批次</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddKilnCarGoods(IDBTransaction oracleTrConn, string barcode, int kilnCarID, int goodsID, int KilnCarPosition, string kilnCarBatchNo, int workUserID,
- string workUserCode,
- string workUserName, SUserInfo sUserInfo)
- {
- string sqlExist = "select 1 from tp_pm_kilncargoods where barcode=:barcode and accountid=:accountid";
- OracleParameter[] parasExist = new OracleParameter[] {
- new OracleParameter(":barcode",barcode),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- };
- oracleTrConn.ExecuteNonQuery(sqlExist, parasExist);
- DataSet dsExist = oracleTrConn.GetSqlResultToDs(sqlExist, parasExist);
- if (dsExist != null && dsExist.Tables[0].Rows.Count == 0)
- {
- string sql = "insert into tp_pm_kilncargoods"
- + " (barcode,"
- + " kilncarid,"
- + " goodsid,"
- + " kilncarposition,"
- + " kilncarbatchno,"
- + " accountid,"
- + " userid,"
- + " usercode,"
- + " username,"
- + " createuserid,"
- + " updateuserid)"
- + " values"
- + " (:barcode,"
- + " :kilncarid,"
- + " :goodsid,"
- + " :kilncarposition,"
- + " :kilncarbatchno,"
- + " :accountid,"
- + " :userid,"
- + " :usercode,"
- + " :username,"
- + " :createuserid,"
- + " :updateuserid)";
- #region 参数
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":barcode",barcode),
- new OracleParameter(":kilncarid",kilnCarID),
- new OracleParameter(":goodsid",goodsID),
- new OracleParameter(":kilncarposition",KilnCarPosition),
- new OracleParameter(":kilncarbatchno",kilnCarBatchNo),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":userid",workUserID),
- new OracleParameter(":usercode",workUserCode),
- new OracleParameter(":username",workUserName),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- }
- // 保存成功返回null
- return null;
- }
- /// <summary>
- /// 查询本次批次号
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="kilnCarID">窑车ID</param>
- /// <returns>string</returns>
- private static string GetKilnCarBatchNoByKilnCarID(IDBTransaction oracleTrConn, int kilnCarID)
- {
- string sql = "SELECT Max(KilnCarBatchNo) FROM TP_PM_KilnCarGoods where KilnCarID = :kilnCarID";
- #region 参数
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":kilnCarID",kilnCarID),
- };
- #endregion
- string batchNo = oracleTrConn.GetSqlResultToStr(sql, paras);
- if (!string.IsNullOrEmpty(batchNo))
- {
- return batchNo;
- }
- else
- {
- // 自动生成窑车烧成批次号
- //return System.Guid.NewGuid().ToString();
- return GetFiredKilnCarBatchNo(oracleTrConn, kilnCarID);
- }
- }
- /// <summary>
- /// 自动生成窑车烧成批次号
- /// </summary>
- /// <param name="oracleTrConn"></param>
- /// <param name="kilnCarID"></param>
- /// <returns></returns>
- public static string GetFiredKilnCarBatchNo(IDBTransaction oracleTrConn, int kilnCarID)
- {
- DateTime now = DateTime.Now.Date;
- string sqlString = "select k.kilnid, k.kilncode, k.fireddate, k.firedbatchno, kc.kilncarcode\n" +
- " from TP_MST_Kiln k\n" +
- " inner join tp_mst_kilncar kc\n" +
- " on k.kilnid = kc.kilnid\n" +
- " where kc.kilncarid = :kilncarid\n" +
- //" and k.fireddate = :fireddate"
- " for update";
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":kilncarid",kilnCarID),
- //new OracleParameter(":fireddate",now),
- };
- DataTable dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
- if (dt == null || dt.Rows.Count == 0)
- {
- // 窑车、窑炉不存在
- return null;
- }
- int kilnid = Convert.ToInt32(dt.Rows[0]["kilnid"]);
- string kilncode = dt.Rows[0]["kilncode"] + "";
- string kilncarcode = dt.Rows[0]["kilncarcode"] + "";
- int firedbatchno = 0;
- if (dt.Rows[0]["fireddate"] == null || dt.Rows[0]["fireddate"] == DBNull.Value)
- {
- firedbatchno = -1;
- }
- else
- {
- DateTime fireddate = Convert.ToDateTime(dt.Rows[0]["fireddate"]);
- if (now > fireddate)
- {
- firedbatchno = -1;
- }
- }
- if (firedbatchno < 0)
- {
- // 当日第一车
- sqlString = "update TP_MST_Kiln k\n" +
- " set k.fireddate = :fireddate, k.firedbatchno = 1\n" +
- " where k.kilnid = :kilnid";
- paras = new OracleParameter[] {
- new OracleParameter(":kilnid",kilnid),
- new OracleParameter(":fireddate",now),
- };
- oracleTrConn.ExecuteNonQuery(sqlString, paras);
- return $"{kilncode}#{kilncarcode}#{now.ToString("yyyyMMdd")}#001";
- }
- firedbatchno = Convert.ToInt32(dt.Rows[0]["firedbatchno"]) + 1;
- sqlString = "update TP_MST_Kiln k\n" +
- " set k.firedbatchno = k.firedbatchno + 1\n" +
- " where k.kilnid = :kilnid";
- paras = new OracleParameter[] {
- new OracleParameter(":kilnid",kilnid),
- };
- oracleTrConn.ExecuteNonQuery(sqlString, paras);
- return $"{kilncode}#{kilncarcode}#{now.ToString("yyyyMMdd")}#{firedbatchno.ToString("000")}";
- }
- /// <summary>
- /// 插入窑车状态表
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="procedure">工序ID</param>
- /// <param name="kilnCarID">窑车ID</param>
- /// <param name="kilnID">窑炉ID</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddkilnCarStatus(IDBTransaction oracleTrConn, ProcedureEntity procedure, int kilnCarID, int kilnID, string kilnCarBatchNo, SUserInfo sUserInfo)
- {
- #region SQL
- string sql = " insert into tp_pm_kilncarstatus "
- + " (kilncarid, "
- + " kilnid, "
- + " productionlineid, "
- + " procedureid, "
- + " procedurecode, "
- + " procedurename, "
- + " proceduremodel, "
- + " modeltype, "
- + " piecetype, "
- + " kilncarstatus, "
- + " loadingtime, "
- + " accountid, "
- + " createuserid, "
- + " updateuserid,kilnCarBatchNo) "
- + " values "
- + " (:kilncarid, "
- + " :kilnid, "
- + " :productionlineid, "
- + " :procedureid, "
- + " :procedurecode, "
- + " :procedurename, "
- + " :proceduremodel, "
- + " :modeltype, "
- + " :piecetype, "
- + " '0', "
- + " sysdate, "
- + " :accountid, "
- + " :createuserid, "
- + " :updateuserid,:kilnCarBatchNo)";
- #endregion
- #region 参数
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":kilncarid",kilnCarID),
- new OracleParameter(":kilnid",kilnID),
- new OracleParameter(":productionlineid",procedure.ProductionLineID),
- new OracleParameter(":procedureid",procedure.ProcedureID),
- new OracleParameter(":procedurecode",procedure.ProcedureCode),
- new OracleParameter(":procedurename",procedure.ProcedureName),
- new OracleParameter(":proceduremodel",procedure.ProcedureModel),
- new OracleParameter(":modeltype",procedure.ModelType),
- new OracleParameter(":piecetype",procedure.PieceType),
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":kilnCarBatchNo",kilnCarBatchNo),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 保存成功返回null
- return null;
- }
- /// <summary>
- /// 更新窑车状态表中的对应的时间
- /// </summary>
- /// <param name="oracleTrConn">数据连接</param>
- /// <param name="kilnCarID">窑车ID</param>
- /// <param name="pModelType">操作类型</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>
- /// 张国印 2014.10.04 新建
- /// </returns>
- private static string UpdatekilnCarStatus(IDBTransaction oracleTrConn, int kilnCarID, Constant.ProcedureModelType pModelType, SUserInfo sUserInfo, ProcedureEntity procedure, string kilnCarBatchNo)
- {
- if (pModelType == Constant.ProcedureModelType.LoadCar)
- {
- //procedure.ProcedureID,
- //procedure.ProcedureCode,
- //procedure.ProcedureName,
- //procedure.ModelType
- #region 装窑车操作时,更新tp_pm_kilncarstatus的装车时间
- #region SQL语句和参数
- string sql = " Update tp_pm_kilncarstatus Set"
- + " KilnCarStatus = :pKilnCarStatus, "
- + " LoadingTime = sysdate, "
- + " IntoKilnTime = null, "
- + " OutKilnTime = null, "
- + " UnloadingTime = null, "
- + " UpdateUserID = :pUpdateUserID, "
- + " ProcedureID = :ProcedureID, "
- + " ProcedureCode = :ProcedureCode, "
- + " ProcedureName = :ProcedureName, "
- + " ModelType = :ModelType, "
- + " kilnCarBatchNo = :kilnCarBatchNo "
- + " Where KilnCarID = :pKilnCarID And AccountID = :pAccountID";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":pKilnCarStatus", OracleDbType.Int32, 0, ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
- new OracleParameter(":pKilnCarID", OracleDbType.Int32, kilnCarID, ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- new OracleParameter(":ProcedureID", OracleDbType.Int32, procedure.ProcedureID, ParameterDirection.Input),
- new OracleParameter(":ProcedureCode", OracleDbType.Varchar2, procedure.ProcedureCode, ParameterDirection.Input),
- new OracleParameter(":ProcedureName", OracleDbType.Varchar2, procedure.ProcedureName, ParameterDirection.Input),
- new OracleParameter(":ModelType", OracleDbType.Int32, procedure.ModelType, ParameterDirection.Input),
- new OracleParameter(":kilnCarBatchNo", OracleDbType.Varchar2, kilnCarBatchNo, ParameterDirection.Input),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "窑车状态", "保存");
- }
- #endregion
- }
- else if (pModelType == Constant.ProcedureModelType.IntoKiln)
- {
- #region 入窑操作时,更新tp_pm_kilncarstatus的入窑时间
- #region SQL语句和参数
- string sql = " Update tp_pm_kilncarstatus Set"
- + " KilnCarStatus = :pKilnCarStatus, "
- + " IntoKilnTime = sysdate, "
- + " UpdateUserID = :pUpdateUserID, "
- + " ProcedureID = :ProcedureID, "
- + " ProcedureCode = :ProcedureCode, "
- + " ProcedureName = :ProcedureName, "
- + " ModelType = :ModelType "
- + " Where KilnCarID = :pKilnCarID And AccountID = :pAccountID";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":pKilnCarStatus", OracleDbType.Int32, 1, ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
- new OracleParameter(":pKilnCarID", OracleDbType.Int32, kilnCarID, ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- new OracleParameter(":ProcedureID", OracleDbType.Int32, procedure.ProcedureID, ParameterDirection.Input),
- new OracleParameter(":ProcedureCode", OracleDbType.Varchar2, procedure.ProcedureCode, ParameterDirection.Input),
- new OracleParameter(":ProcedureName", OracleDbType.Varchar2, procedure.ProcedureName, ParameterDirection.Input),
- new OracleParameter(":ModelType", OracleDbType.Int32, procedure.ModelType, ParameterDirection.Input),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "窑车状态", "保存");
- }
- #endregion
- }
- else if (pModelType == Constant.ProcedureModelType.OutKiln)
- {
- #region 出窑操作时,更新tp_pm_kilncarstatus的出窑时间
- #region SQL语句和参数
- string sql = " Update tp_pm_kilncarstatus Set"
- + " OutKilnTime = sysdate, "
- + " UpdateUserID = :pUpdateUserID, "
- + " ProcedureID = :ProcedureID, "
- + " ProcedureCode = :ProcedureCode, "
- + " ProcedureName = :ProcedureName, "
- + " ModelType = :ModelType "
- + " Where KilnCarID = :pKilnCarID And AccountID = :pAccountID";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":pUpdateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
- new OracleParameter(":pKilnCarID", OracleDbType.Int32, kilnCarID, ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- new OracleParameter(":ProcedureID", OracleDbType.Int32, procedure.ProcedureID, ParameterDirection.Input),
- new OracleParameter(":ProcedureCode", OracleDbType.Varchar2, procedure.ProcedureCode, ParameterDirection.Input),
- new OracleParameter(":ProcedureName", OracleDbType.Varchar2, procedure.ProcedureName, ParameterDirection.Input),
- new OracleParameter(":ModelType", OracleDbType.Int32, procedure.ModelType, ParameterDirection.Input),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "窑车状态", "保存");
- }
- #endregion
- }
- else if (pModelType == Constant.ProcedureModelType.UnloadCar)
- {
- #region 卸窑车操作时,更新tp_pm_kilncarstatus的卸窑车时间
- #region SQL语句和参数
- string sql = " Update tp_pm_kilncarstatus Set"
- + " KilnCarStatus = :pKilnCarStatus, "
- //+ " LoadingTime = null, "
- //+ " IntoKilnTime = null, "
- //+ " OutKilnTime = null, "
- + " UnloadingTime = sysdate, "
- + " UpdateUserID = :pUpdateUserID, "
- + " ProcedureID = :ProcedureID, "
- + " ProcedureCode = :ProcedureCode, "
- + " ProcedureName = :ProcedureName, "
- + " ModelType = :ModelType "
- + " Where KilnCarID = :pKilnCarID And AccountID = :pAccountID";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":pKilnCarStatus", OracleDbType.Int32, 0, ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
- new OracleParameter(":pKilnCarID", OracleDbType.Int32, kilnCarID, ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- new OracleParameter(":ProcedureID", OracleDbType.Int32, procedure.ProcedureID, ParameterDirection.Input),
- new OracleParameter(":ProcedureCode", OracleDbType.Varchar2, procedure.ProcedureCode, ParameterDirection.Input),
- new OracleParameter(":ProcedureName", OracleDbType.Varchar2, procedure.ProcedureName, ParameterDirection.Input),
- new OracleParameter(":ModelType", OracleDbType.Int32, procedure.ModelType, ParameterDirection.Input),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "窑车状态", "保存");
- }
- #endregion
- }
- // 保存成功返回null
- return string.Empty;
- }
- /// <summary>
- /// 校验窑车是否可用
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="pProcedureId">工序ID</param>
- /// <param name="kilnCarCode">窑车号</param>
- /// <param name="pModelType">操作类型</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="kilnCarStatus">窑车状态</param>
- /// <returns>string</returns>
- private static string CheckKilnCarrStatus(IDBTransaction oracleTrConn, int pProcedureId, string kilnCarCode, int pModelType, SUserInfo sUserInfo, out string kilnCarStatus)
- {
- kilnCarStatus = string.Empty;
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter("in_accountID",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter("in_kilnCarCode",OracleDbType.NVarchar2, kilnCarCode,ParameterDirection.Input),
- new OracleParameter("in_modelType",OracleDbType.Int32, pModelType,ParameterDirection.Input),
- new OracleParameter("out_errMsg",OracleDbType.NVarchar2,2000,null,ParameterDirection.Output),
- new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
- new OracleParameter("in_procedureid",OracleDbType.Int32, pProcedureId,ParameterDirection.Input),
- // 验证能否卸窑
- new OracleParameter("in_UserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- };
- DataSet returnDataSet = oracleTrConn.ExecStoredProcedure("PRO_PM_CheckKilnCar", paras);
- string errMsg = paras[3].Value.ToString() == "null" ? string.Empty : paras[3].Value.ToString();
- if (string.IsNullOrEmpty(errMsg))
- {
- if (pModelType == (int)Constant.ProcedureModelType.LoadCar)
- {
- kilnCarStatus = returnDataSet.Tables[0].Rows[0]["KilnCarStatus"].ToString();
- }
- }
- return errMsg;
- }
- /// <summary>
- /// 添加生产者
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="productionDataID">生产数据ID</param>
- /// <param name="workUserID">生产工号ID</param>
- /// <param name="workUserCode">生产工号Code</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddProducer(IDBTransaction oracleTrConn, DateTime accountDate, int productionDataID, int workUserID, string workUserCode, SUserInfo sUserInfo, ref int? ClassesSettingID)
- {
- // 参数
- OracleParameter[] paras;
- #region 查询班次配置表是否有数据
- string sql = "select max(ClassesSettingID)"
- + " from tp_pc_classessetting"
- + " where Valueflag =1 and AccountID = :accountID"
- + " and UserID = :userID"
- + " and AccountDate = :accountDate";
- paras = new OracleParameter[] {
- new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":userID",OracleDbType.Int32,workUserID,ParameterDirection.Input),
- new OracleParameter(":accountDate",OracleDbType.Date,accountDate,ParameterDirection.Input),
- };
- string countStr = oracleTrConn.GetSqlResultToStr(sql, paras);
- int classesSettingID = 0;
- #endregion
- #region 没有班次配置数据,将工号所属员工插入班次配置表中
- if (string.IsNullOrEmpty(countStr) || Constant.INT_IS_ZERO == int.Parse(countStr))
- {
- // 查询新插入的班次配置表ID
- sql = "select SEQ_PC_ClassesSetting_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- // 新插入的班次配置表ID
- if (!string.IsNullOrEmpty(idStr))
- {
- classesSettingID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- ClassesSettingID = Convert.ToInt32(classesSettingID);
- #region 班次配置总表
- sql = "insert into tp_pc_classessetting"
- + " (ClassesSettingID,accountdate, "
- + " userid, "
- + " usercode, "
- + " accountid, "
- + " createuserid, "
- + " updateuserid,ORGANIZATIONID)"
- + " select "
- + " :classesSettingID, "
- + " :accountdate, "
- + " USERID, "
- + " UserCode, "
- + " accountid,"
- + " :createuserid,"
- + " :updateuserid,ORGANIZATIONID"
- + " from TP_MST_User"
- + " where UserID = :userID";
- paras = new OracleParameter[] {
- new OracleParameter(":classesSettingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
- new OracleParameter(":accountDate",OracleDbType.Date,accountDate,ParameterDirection.Input),
- new OracleParameter(":createuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":userID",OracleDbType.Int32,workUserID,ParameterDirection.Input),
- };
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #endregion
- #region 班次配置明细SQL
- sql = " insert into tp_pc_classesdetail"
- + " (classessettingid,"
- + " accountdate,"
- + " userid,"
- + " usercode,"
- + " UJobsID,"
- + " staffid,"
- + " SJobsID,"
- + " staffstatus,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid,Uorganizationid,Sorganizationid)"
- + " select "
- + " :classessettingid,"
- + " :accountdate,"
- + " userStaff.Userid,"
- + " :usercode,"
- + " userStaff.Ujobsid,"
- + " userStaff.Staffid,"
- + " staff.Jobs,"
- + " staff.staffstatus,"
- + " :accountID,"
- + " :createuserid,"
- + " :updateuserid,user2.organizationid,staff.organizationid"
- + " from TP_MST_UserStaff userStaff"
- + " inner join tp_hr_staff staff on staff.staffid = userStaff.Staffid"
- + " inner join tp_mst_user user2 on userStaff.userid = user2.userid"
- + " where (staff.StaffStatus = 1 or staff.StaffStatus = 2)"
- + " and staff.ValueFlag = 1"
- + " and staff.AccountID = :accountID"
- + " and userStaff.UserID = :userID";
- paras = new OracleParameter[] {
- new OracleParameter(":classessettingid",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
- new OracleParameter(":accountdate",OracleDbType.Date,accountDate,ParameterDirection.Input),
- new OracleParameter(":usercode",OracleDbType.Varchar2,workUserCode,ParameterDirection.Input),
- new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":createuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":userID",OracleDbType.Int32,workUserID,ParameterDirection.Input),
- };
- result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 失败
- if (result == Constant.INT_IS_ZERO)
- {
- return string.Format(Messages.MSG_CMN_W007, "生产工号[" + workUserCode + "]没有配置生产员工");
- }
- #endregion
- }
- else
- {
- ClassesSettingID = int.Parse(countStr);
- }
- #endregion
- //#region 将班次配置表中的数据插入生产者表中
- //sql = "insert into tp_pm_producer"
- // + " (productiondataid,"
- // + " staffid,"
- // + " userid,"
- // + " usercode,"
- // + " UJobsID,"
- // + " staffstatus,"
- // + " SJobsID,"
- // + " classessettingid"
- // + " )"
- // + " select :productiondataid,"
- // + " staffid,"
- // + " userid,"
- // + " usercode,"
- // + " UJobsID,"
- // + " staffstatus,"
- // + " SJobsID,"
- // + " :classessettingid"
- // + " from tp_pc_classesdetail"
- // + " where ValueFlag = 1"
- // + " and classessettingid = (select max(ClassesSettingID)"
- // + " from TP_PC_ClassesSetting"
- // + " where ValueFlag = 1 and AccountDate=:accountDate"
- // + " and UserID = :userID)";
- //paras = new OracleParameter[] {
- // new OracleParameter(":productiondataid",OracleDbType.Int32,productionDataID,ParameterDirection.Input),
- // new OracleParameter(":classessettingid",OracleDbType.Int32,classesSettingID.ToString()=="0"?null:classesSettingID.ToString(),ParameterDirection.Input),
- // new OracleParameter(":accountDate",OracleDbType.Date,accountDate,ParameterDirection.Input),
- // new OracleParameter(":userID",OracleDbType.Int32,workUserID,ParameterDirection.Input),
- // };
- //int resultCount = oracleTrConn.ExecuteNonQuery(sql, paras);
- //// 失败
- //if (resultCount == Constant.INT_IS_ZERO)
- //{
- // return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- //}
- //#endregion
- return null;
- }
- /// <summary>
- /// 窑车生产者
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="kilnCarDataID">窑车生产数据ID</param>
- /// <param name="workUserID">生产工号ID</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddKilnCarProducer(IDBTransaction oracleTrConn, DateTime accountDate, int kilnCarDataID, int workUserID, SUserInfo sUserInfo)
- {
- // 参数
- OracleParameter[] paras;
- #region 将班次配置表中的数据插入生产者表中
- string sql = "insert into TP_PM_KilnCarProducer"
- + " (KilnCarDataID,"
- + " staffid,"
- + " userid,"
- + " usercode,"
- + " Ujobsid,"
- + " staffstatus,"
- + " Sjobsid,"
- + " classessettingid"
- + " )"
- + " select :kilnCarDataID,"
- + " staffid,"
- + " userid,"
- + " usercode,"
- + " Ujobsid,"
- + " staffstatus,"
- + " Sjobsid,"
- + " classessettingid"
- + " from tp_pc_classesdetail"
- + " where ValueFlag = 1"
- + " and classessettingid = (select max(ClassesSettingID)"
- + " from TP_PC_ClassesSetting"
- + " where ValueFlag = 1 and AccountDate=:accountDate"
- + " and UserID = :userID)";
- paras = new OracleParameter[] {
- new OracleParameter(":kilnCarDataID",OracleDbType.Int32,kilnCarDataID,ParameterDirection.Input),
- new OracleParameter(":accountDate",OracleDbType.Date,accountDate,ParameterDirection.Input),
- new OracleParameter(":userID",OracleDbType.Int32,workUserID,ParameterDirection.Input),
- };
- int resultCount = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 失败
- if (resultCount == Constant.INT_IS_ZERO)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #endregion
- return null;
- }
- /// <summary>
- /// 添加生产数据
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="productionData">生产数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddProductionDataCreateTime(IDBTransaction oracleTrConn, DateTime accountDate, ProductionDataEntity productionData, SUserInfo sUserInfo, out string OutSpecialRepairflag)
- {
- #region 查出产品注浆日期,注浆工号ID,注浆工号编码,注浆次数,注浆模具编号,模具编号
- // string selectSql = @"select TP_PM_GroutingProduct.GroutingDate,
- // TP_PM_GroutingProduct.GroutingUserID,
- // TP_PM_GroutingProduct.GroutingUserCode,
- // TP_PM_GroutingProduct.GroutingNum,
- // TP_PM_GroutingProduct.GroutingMouldCode,
- // TP_PM_GroutingProduct.MouldCode,
- // TP_PM_GroutingDaily.GroutingDailyID,
- // TP_PM_GroutingDailyDetail.GroutingDailyDetailID,
- // TP_PM_GroutingDaily.GroutingLineID,
- // TP_PM_GroutingDaily.GroutingLineCode,
- // TP_PM_GroutingDaily.GroutingLineName,
- // TP_PM_GroutingDaily.GMouldTypeID,
- // TP_PM_GroutingDaily.CanManyTimes,
- // TP_PM_GroutingDailyDetail.GroutingLineDetailID
- // from TP_PM_GroutingProduct
- // left join TP_PM_GroutingDaily
- // on TP_PM_GroutingProduct.GroutingDailyID=TP_PM_GroutingDaily.GroutingDailyID
- // left join TP_PM_GroutingDailyDetail
- // on TP_PM_GroutingDaily.GroutingDailyID=TP_PM_GroutingDailyDetail.GroutingDailyID
- // where TP_PM_GroutingProduct.barcode=:barcode";
- //这地方连了两张表,为了成检的时候,次品在次新增
- string returnVal = "";
- string selectSql = @"select
- GroutingDate,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- GroutingMouldCode,
- MouldCode,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- SpecialRepairflag
- from tp_pm_inproduction where barcode=:barcode
- union
- select
- GroutingDate,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- GroutingMouldCode,
- MouldCode,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- SpecialRepairflag
- from TP_PM_InProductionTrash where barcode=:barcode
- ";
- OracleParameter[] selectparas = new OracleParameter[] {
- new OracleParameter(":barcode",productionData.Barcode),
- };
- DataSet dsGroutingProduct = oracleTrConn.GetSqlResultToDs(selectSql, selectparas);
- DateTime GroutingDate = new DateTime();
- int GroutingUserID = 0, SpecialRepairflag = 0;
- string GroutingUserCode = "";
- int GroutingNum = 0;
- string GroutingMouldCode = "";
- string MouldCode = "";
- //注浆日报ID
- int GroutingDailyID = 0;
- //注浆日报明细ID
- int GroutingDailyDetailID = 0;
- //成型生产线ID
- int GroutingLineID = 0;
- //成型生产线编码
- string GroutingLineCode = "";
- // 成型生产线名称
- string GroutingLineName = "";
- //成型线类型ID
- int GMouldTypeID = 0;
- // 能否多次注浆
- int CanManyTimes = 0;
- // 成型生产线明细ID
- int GroutingLineDetailID = 0;
- if (dsGroutingProduct != null && dsGroutingProduct.Tables[0].Rows.Count > 0)
- {
- GroutingDate = Convert.ToDateTime(dsGroutingProduct.Tables[0].Rows[0]["GroutingDate"]);
- GroutingUserID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingUserID"]);
- GroutingUserCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingUserCode"].ToString();
- GroutingNum = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingNum"]);
- GroutingMouldCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingMouldCode"].ToString();
- MouldCode = dsGroutingProduct.Tables[0].Rows[0]["MouldCode"].ToString();
- GroutingDailyID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingDailyID"]);
- GroutingDailyDetailID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingDailyDetailID"]);
- GroutingLineID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingLineID"]);
- GroutingLineCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingLineCode"].ToString();
- GroutingLineName = dsGroutingProduct.Tables[0].Rows[0]["GroutingLineName"].ToString();
- GMouldTypeID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GMouldTypeID"]);
- CanManyTimes = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["CanManyTimes"]);
- GroutingLineDetailID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingLineDetailID"]);
- SpecialRepairflag = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["SpecialRepairflag"]);
- returnVal = SpecialRepairflag.ToString();
- }
- #endregion
- #region 更新窑炉窑车属性
- if (productionData.ModelType != 1 && productionData.ModelType != 2 && productionData.ModelType != 3 && productionData.ModelType != 4)
- {
- DataSet ds = GetKilnCarInfo(oracleTrConn, productionData.Barcode, sUserInfo);
- if (ds != null)
- {
- if (ds.Tables[0].Rows[0]["KilnID"].ToString() != "") //表示以前有过窑炉相关信息
- {
- productionData.KilnID = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnID"]);
- productionData.KilnCode = ds.Tables[0].Rows[0]["KilnCode"].ToString();
- productionData.KilnName = ds.Tables[0].Rows[0]["KilnName"].ToString();
- productionData.KilnCarID = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarID"]);
- productionData.KilnCarCode = ds.Tables[0].Rows[0]["KilnCarCode"].ToString();
- productionData.KilnCarName = ds.Tables[0].Rows[0]["KilnCarName"].ToString();
- productionData.KilnCarBatchNo = ds.Tables[0].Rows[0]["KilnCarBatchNo"].ToString();
- productionData.KilnCarPosition = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarPosition"]);
- }
- }
- }
- #endregion
- //string sql = "select createtime from TP_PM_KilnCarGoods"
- // + " where KilnCarID=:KilnCarID and AccountID=:AccountID";
- //OracleParameter[] paras = new OracleParameter[] {
- // new OracleParameter(":KilnCarID",productionData.KilnCarID),
- // new OracleParameter(":AccountID",sUserInfo.AccountID),
- //};
- //DataSet dsReturn = oracleTrConn.GetSqlResultToDs(sql, paras);
- //if (dsReturn != null && dsReturn.Tables[0].Rows.Count > 0)
- //{
- // sql = "update TP_PM_ProductionData set "
- // + " CreateTime=:CreateTime"
- // + " where barcode=:barcode and ProcedureID=:ProcedureID and KilnCarID=:KilnCarID and AccountID=:AccountID";
- // paras = new OracleParameter[] {
- // new OracleParameter(":CreateTime",Convert.ToDateTime(dsReturn.Tables[0].Rows[0]["CreateTime"])),
- // new OracleParameter(":barcode",productionData.Barcode),
- // new OracleParameter(":ProcedureID",productionData.CompleteProcedureID),
- // new OracleParameter(":KilnCarID",productionData.KilnCarID),
- // new OracleParameter(":AccountID",sUserInfo.AccountID),
- // };
- // int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- //}
- #region SQL
- string sql = "insert into tp_pm_productiondata"
- + " ("
- + " barcode,"
- + " centralizedbatchno,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " proceduremodel,"
- + " modeltype,"
- + " piecetype,"
- + " isreworked,"
- + " nodetype,"
- + " ispublicbody,"
- + " isrefire,"
- + " organizationid,"
- + " goodsid,"
- + " goodscode,"
- + " goodsname,"
- + " userid,"
- + " usercode,"
- + " username,"
- + " kilnid,"
- + " kilncode,"
- + " kilnname,"
- + " kilncarid,"
- + " kilncarcode,"
- + " kilncarname,"
- + " kilncarbatchno,"
- + " kilncarposition,"
- + " reworkprocedureid,"
- + " reworkprocedurecode,"
- + " reworkprocedurename,"
- + " remarks,"
- + " accountdate,"
- + " accountid,"
- + " GoodsLevelID,"
- + " GoodsLevelTypeID,"
- + " createuserid,"
- + " updateuserid,"
- + " GroutingDate,"
- + " GroutingUserID,"
- + " GroutingUserCode,"
- + " GroutingNum,"
- + " GroutingMouldCode,"
- + " MouldCode,"
- + "GroutingDailyID,"
- + "GroutingDailyDetailID,"
- + "GroutingLineID,"
- + " GroutingLineCode,"
- + "GroutingLineName,"
- + "GMouldTypeID,"
- + "CanManyTimes,"
- + "GroutingLineDetailID,"
- + "CreateTime,SpecialRepairflag"
- + ")"
- + " values"
- + " ("
- + " :barcode,"
- + " :centralizedbatchno,"
- + " :productionlineid,"
- + " :productionlinecode,"
- + " :productionlinename,"
- + " :procedureid,"
- + " :procedurecode,"
- + " :procedurename,"
- + " :proceduremodel,"
- + " :modeltype,"
- + " :piecetype,"
- + " :isreworked,"
- + " :nodetype,"
- + " :ispublicbody,"
- + " :isrefire,"
- + " :organizationid,"
- + " :goodsid,"
- + " :goodscode,"
- + " :goodsname,"
- + " :userid,"
- + " :usercode,"
- + " :username,"
- + " :kilnid,"
- + " :kilncode,"
- + " :kilnname,"
- + " :kilncarid,"
- + " :kilncarcode,"
- + " :kilncarname,"
- + " :kilncarbatchno,"
- + " :kilncarposition,"
- + " :reworkprocedureid,"
- + " :reworkprocedurecode,"
- + " :reworkprocedurename,"
- + " :remarks,"
- + " :accountdata,"
- + " :accountid,"
- + " :GoodsLevelID,"
- + " :GoodsLevelTypeID,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :groutingdate,"
- + " :groutinguserid,"
- + " :groutingusercode,"
- + " :groutingnum,"
- + " :groutingmouldcode,"
- + " :mouldcode,"
- + ":groutingdailyid,"
- + ":groutingdailydetailid,"
- + ":groutinglineid,"
- + " :groutinglinecode,"
- + ":groutinglinename,"
- + ":gmouldtypeid,"
- + ":canmanytimes,"
- + ":groutinglinedetailid,"
- + ":CreateTime,:SpecialRepairflag"
- + ")";
- #endregion
- #region OracleParameter
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":barcode",productionData.Barcode),
- new OracleParameter(":centralizedbatchno",productionData.CentralizedBatchNo),
- new OracleParameter(":productionlineid",productionData.ProductionLineID),
- new OracleParameter(":productionlinecode",productionData.ProductionLineCode),
- new OracleParameter(":productionlinename",productionData.ProductionLineName),
- new OracleParameter(":procedureid",productionData.CompleteProcedureID),
- new OracleParameter(":procedurecode",productionData.ProcedureCode),
- new OracleParameter(":procedurename",productionData.ProcedureName),
- new OracleParameter(":proceduremodel",productionData.ProcedureModel),
- new OracleParameter(":modeltype",productionData.ModelType),
- new OracleParameter(":piecetype",productionData.PieceType),
- new OracleParameter(":isreworked",productionData.IsReworked),
- new OracleParameter(":nodetype",productionData.NodeType),
- new OracleParameter(":ispublicbody",productionData.IsPublicBody),
- new OracleParameter(":isrefire",productionData.IsReFire),
- new OracleParameter(":organizationid",productionData.OrganizationID),
- new OracleParameter(":goodsid",productionData.GoodsID),
- new OracleParameter(":goodscode",productionData.GoodsCode),
- new OracleParameter(":goodsname",productionData.GoodsName),
- new OracleParameter(":userid",productionData.UserID),
- new OracleParameter(":usercode",productionData.UserCode),
- new OracleParameter(":username",productionData.UserName),
- new OracleParameter(":kilnid",productionData.KilnID),
- new OracleParameter(":kilncode",productionData.KilnCode),
- new OracleParameter(":kilnname",productionData.KilnName),
- new OracleParameter(":kilncarid",productionData.KilnCarID),
- new OracleParameter(":kilncarcode",productionData.KilnCarCode),
- new OracleParameter(":kilncarname",productionData.KilnCarName),
- new OracleParameter(":kilncarbatchno",productionData.KilnCarBatchNo),
- new OracleParameter(":kilncarposition",productionData.KilnCarPosition),
- new OracleParameter(":reworkprocedureid",productionData.ReworkProcedureID),
- new OracleParameter(":reworkprocedurecode",productionData.ReworkProcedureCode),
- new OracleParameter(":reworkprocedurename",productionData.ReworkProcedureName),
- new OracleParameter(":remarks",productionData.Remarks),
- new OracleParameter(":accountdata",accountDate),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":GoodsLevelID",productionData.GoodsLevelID),
- new OracleParameter(":GoodsLevelTypeID",productionData.GoodsLevelTypeID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":groutingdate",GroutingDate),
- new OracleParameter(":groutinguserid",GroutingUserID),
- new OracleParameter(":groutingusercode",GroutingUserCode),
- new OracleParameter(":groutingnum",GroutingNum),
- new OracleParameter(":groutingmouldcode",GroutingMouldCode),
- new OracleParameter(":mouldcode",MouldCode),
- new OracleParameter(":groutingdailyid",GroutingDailyID),
- new OracleParameter(":groutingdailydetailid",GroutingDailyDetailID),
- new OracleParameter(":groutinglineid",GroutingLineID),
- new OracleParameter(":groutinglinecode",GroutingLineCode),
- new OracleParameter(":groutinglinename",GroutingLineName),
- new OracleParameter(":gmouldtypeid",GMouldTypeID),
- new OracleParameter(":canmanytimes",CanManyTimes),
- new OracleParameter(":groutinglinedetailid",GroutingLineDetailID),
- new OracleParameter(":CreateTime",productionData.CreateTime),
- new OracleParameter(":specialRepairflag",SpecialRepairflag),
- };
- #endregion
- foreach (OracleParameter para in paras)
- {
- if (string.IsNullOrEmpty(para.Value + ""))
- {
- para.Value = DBNull.Value;
- }
- }
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- OutSpecialRepairflag = returnVal;
- // 失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 成功返回null
- return null;
- }
- /// <summary>
- /// 添加生产数据
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="productionData">生产数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="isSendBody">是否交坯</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// xuwei 2019-09-17 修改
- /// </remarks>
- private static string AddProductionDataDeliverMud(IDBTransaction oracleTrConn, DateTime accountDate, ProductionDataEntity productionData, SUserInfo sUserInfo, out string OutSpecialRepairflag
- , out DataSet outGroutingProduct,bool isSendBody=false)
- {
- #region 查出产品注浆日期,注浆工号ID,注浆工号编码,注浆次数,注浆模具编号,模具编号
- string selectSql = "";
- string returnVal = "";
- //xuwei fix 2019-09-23 修正非交坯时 productionData.GroutingDailyDetailID 为空无法得到结果
- //改用 条码查询
- //selectSql = @"select GroutingDate,
- // ClassesSettingID,
- // UserID as GroutingUserID,
- // UserCode as GroutingUserCode,
- // GroutingCount as GroutingNum,
- // GroutingMouldCode,
- // MouldCode,
- // GroutingDailyID,
- // GroutingDailyDetailID,
- // GroutingLineID,
- // GroutingLineCode,
- // GroutingLineName,
- // GroutingLineDetailID,
- // SpecialRepairflag,
- // goodsid,
- // goodscode,
- // goodsname,
- // GMouldTypeID,
- // CanManyTimes,
- // LogoID
- // from tp_pm_GroutingDailyDetail
- // where tp_pm_GroutingDailyDetail.GroutingDailyDetailID=:GroutingDailyDetailID";
- //OracleParameter[] selectparas1 = new OracleParameter[] {
- // new OracleParameter(":GroutingDailyDetailID",productionData.GroutingDailyDetailID),
- //};
- selectSql = @"select GroutingDate,
- ClassesSettingID,
- UserID as GroutingUserID,
- UserCode as GroutingUserCode,
- GroutingCount as GroutingNum,
- GroutingMouldCode,
- MouldCode,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GroutingLineDetailID,
- SpecialRepairflag,
- goodsid,
- goodscode,
- goodsname,
- GMouldTypeID,
- CanManyTimes,
- LogoID
- from tp_pm_GroutingDailyDetail
- where tp_pm_GroutingDailyDetail.Barcode=:Barcode";
- OracleParameter[] selectparas1 = new OracleParameter[] {
- new OracleParameter(":Barcode",productionData.Barcode),
- };
- //xuwei fix end
- DataSet dsGroutingProduct = oracleTrConn.GetSqlResultToDs(selectSql, selectparas1);
- DateTime GroutingDate = new DateTime();
- int GroutingUserID = 0, GroutingNum = 0, GroutingDailyID = 0, GroutingDailyDetailID = 0, GroutingLineID = 0, GMouldTypeID = 0, CanManyTimes = 0, GroutingLineDetailID = 0, SpecialRepairflag = 0;
- string GroutingUserCode = "", GroutingMouldCode = "", MouldCode = "", GroutingLineCode = "", GroutingLineName = "";
- int? ClassesSettingID = null;
- int? LogoID = null;
- if (dsGroutingProduct != null && dsGroutingProduct.Tables[0].Rows.Count > 0)
- {
- GroutingDate = Convert.ToDateTime(dsGroutingProduct.Tables[0].Rows[0]["GroutingDate"]);
- GroutingUserID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingUserID"]);
- GroutingUserCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingUserCode"].ToString();
- GroutingNum = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingNum"]);
- GroutingMouldCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingMouldCode"].ToString();
- MouldCode = dsGroutingProduct.Tables[0].Rows[0]["MouldCode"].ToString();
- GroutingDailyID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingDailyID"]);
- GroutingDailyDetailID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingDailyDetailID"]);
- GroutingLineID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingLineID"]);
- GroutingLineCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingLineCode"].ToString();
- GroutingLineName = dsGroutingProduct.Tables[0].Rows[0]["GroutingLineName"].ToString();
- GMouldTypeID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GMouldTypeID"]);
- CanManyTimes = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["CanManyTimes"]);
- GroutingLineDetailID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingLineDetailID"]);
- SpecialRepairflag = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["SpecialRepairflag"]);
- returnVal = SpecialRepairflag.ToString();
- if (productionData.IsPublicBody.ToString() != "1")
- ClassesSettingID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["ClassesSettingID"]);
- else
- ClassesSettingID = productionData.ClassesSettingID == null ? Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["ClassesSettingID"]) : productionData.ClassesSettingID;
- if (dsGroutingProduct.Tables[0].Rows[0]["LogoID"] != DBNull.Value)
- {
- LogoID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["LogoID"]);
- }
- //xuwei fix begin
- //2019-09-17
- //更新注浆日报(交坯处理)
- if(isSendBody)
- {
- selectSql = "update TP_PM_GroutingDailyDetail set ispublicbody=:ispublicbody, DELIVERFLAG=1,DELIVERTIME=sysdate,deliveruserid=:deliveruserid,deliverusercode=:deliverusercode where GroutingDailyDetailID=" + GroutingDailyDetailID;
- OracleParameter[] paras2 = new OracleParameter[] {
- new OracleParameter(":deliveruserid",productionData.UserID),
- new OracleParameter(":deliverusercode",productionData.UserCode),
- new OracleParameter(":ispublicbody",productionData.IsPublicBody),
- };
- oracleTrConn.ExecuteNonQuery(selectSql, paras2);
- }
- //更新 注浆日报 在产标识(BEGINNINGFLAG)
- selectSql = "update TP_PM_GroutingDailyDetail set BEGINNINGFLAG = '1' where Barcode='" + productionData.Barcode + "'";
- oracleTrConn.ExecuteNonQuery(selectSql);
- //xuwei end
- }
- outGroutingProduct = dsGroutingProduct;
- #endregion
- #region 更新窑炉窑车属性
- //if (productionData.ModelType != 1 && productionData.ModelType != 2 && productionData.ModelType != 3 && productionData.ModelType != 4)
- //{
- // DataSet ds = GetKilnCarInfo(oracleTrConn, productionData.Barcode, sUserInfo);
- // if (ds != null)
- // {
- // if (ds.Tables[0].Rows[0]["KilnID"].ToString() != "") //表示以前有过窑炉相关信息
- // {
- // productionData.KilnID = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnID"]);
- // productionData.KilnCode = ds.Tables[0].Rows[0]["KilnCode"].ToString();
- // productionData.KilnName = ds.Tables[0].Rows[0]["KilnName"].ToString();
- // productionData.KilnCarID = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarID"]);
- // productionData.KilnCarCode = ds.Tables[0].Rows[0]["KilnCarCode"].ToString();
- // productionData.KilnCarName = ds.Tables[0].Rows[0]["KilnCarName"].ToString();
- // productionData.KilnCarBatchNo = ds.Tables[0].Rows[0]["KilnCarBatchNo"].ToString();
- // productionData.KilnCarPosition = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarPosition"]);
- // }
- // }
- //}
- #endregion
- #region SQL
- string sql = "insert into tp_pm_productiondataIn"
- + " (productiondataid,"
- + " barcode,"
- + " centralizedbatchno,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " proceduremodel,"
- + " modeltype,"
- + " piecetype,"
- + " isreworked,"
- + " nodetype,"
- + " ispublicbody,"
- + " isrefire,"
- + " organizationid,"
- + " goodsid,"
- + " goodscode,"
- + " goodsname,"
- + " userid,"
- + " usercode,"
- + " username,"
- + " kilnid,"
- + " kilncode,"
- + " kilnname,"
- + " kilncarid,"
- + " kilncarcode,"
- + " kilncarname,"
- + " kilncarbatchno,"
- + " kilncarposition,"
- + " reworkprocedureid,"
- + " reworkprocedurecode,"
- + " reworkprocedurename,"
- + " remarks,"
- + " accountdate,"
- + " accountid,"
- + " GoodsLevelID,"
- + " GoodsLevelTypeID,"
- + " createuserid,"
- + " updateuserid,"
- + " GroutingDate,"
- + " GroutingUserID,"
- + " GroutingUserCode,"
- + " GroutingNum,"
- + " GroutingMouldCode,"
- + " MouldCode,"
- + "GroutingDailyID,"
- + "GroutingDailyDetailID,"
- + "GroutingLineID,"
- + " GroutingLineCode,"
- + "GroutingLineName,"
- + "GMouldTypeID,"
- + "CanManyTimes,"
- + "GroutingLineDetailID,"
- + "SpecialRepairflag,"
- + "ClassesSettingID,"
- + "LogoID"
- + ")"
- + " values"
- + " (:productiondataid,"
- + " :barcode,"
- + " :centralizedbatchno,"
- + " :productionlineid,"
- + " :productionlinecode,"
- + " :productionlinename,"
- + " :procedureid,"
- + " :procedurecode,"
- + " :procedurename,"
- + " :proceduremodel,"
- + " :modeltype,"
- + " :piecetype,"
- + " :isreworked,"
- + " :nodetype,"
- + " :ispublicbody,"
- + " :isrefire,"
- + " :organizationid,"
- + " :goodsid,"
- + " :goodscode,"
- + " :goodsname,"
- + " :userid,"
- + " :usercode,"
- + " :username,"
- + " :kilnid,"
- + " :kilncode,"
- + " :kilnname,"
- + " :kilncarid,"
- + " :kilncarcode,"
- + " :kilncarname,"
- + " :kilncarbatchno,"
- + " :kilncarposition,"
- + " :reworkprocedureid,"
- + " :reworkprocedurecode,"
- + " :reworkprocedurename,"
- + " :remarks,"
- + " :accountdata,"
- + " :accountid,"
- + " :GoodsLevelID,"
- + " :GoodsLevelTypeID,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :groutingdate,"
- + " :groutinguserid,"
- + " :groutingusercode,"
- + " :groutingnum,"
- + " :groutingmouldcode,"
- + " :mouldcode,"
- + ":groutingdailyid,"
- + ":groutingdailydetailid,"
- + ":groutinglineid,"
- + " :groutinglinecode,"
- + ":groutinglinename,"
- + ":gmouldtypeid,"
- + ":canmanytimes,"
- + ":groutinglinedetailid,"
- + ":specialRepairflag,"
- + ":classesSettingID,"
- + ":LogoID"
- + ")";
- #endregion
- #region OracleParameter
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":classesSettingID",ClassesSettingID),
- new OracleParameter(":productiondataid",productionData.ProductionDataID),
- new OracleParameter(":barcode",productionData.Barcode),
- new OracleParameter(":centralizedbatchno",productionData.CentralizedBatchNo),
- new OracleParameter(":productionlineid",productionData.ProductionLineID),
- new OracleParameter(":productionlinecode",productionData.ProductionLineCode),
- new OracleParameter(":productionlinename",productionData.ProductionLineName),
- new OracleParameter(":procedureid",productionData.CompleteProcedureID),
- new OracleParameter(":procedurecode",productionData.ProcedureCode),
- new OracleParameter(":procedurename",productionData.ProcedureName),
- new OracleParameter(":proceduremodel",productionData.ProcedureModel),
- new OracleParameter(":modeltype",productionData.ModelType),
- new OracleParameter(":piecetype",productionData.PieceType),
- new OracleParameter(":isreworked",productionData.IsReworked),
- new OracleParameter(":nodetype",productionData.NodeType),
- new OracleParameter(":ispublicbody",productionData.IsPublicBody),
- new OracleParameter(":isrefire",productionData.IsReFire),
- new OracleParameter(":organizationid",productionData.OrganizationID),
- new OracleParameter(":goodsid",productionData.GoodsID),
- new OracleParameter(":goodscode",productionData.GoodsCode),
- new OracleParameter(":goodsname",productionData.GoodsName),
- new OracleParameter(":userid",productionData.UserID),
- new OracleParameter(":usercode",productionData.UserCode),
- new OracleParameter(":username",productionData.UserName),
- new OracleParameter(":kilnid",productionData.KilnID),
- new OracleParameter(":kilncode",productionData.KilnCode),
- new OracleParameter(":kilnname",productionData.KilnName),
- new OracleParameter(":kilncarid",productionData.KilnCarID),
- new OracleParameter(":kilncarcode",productionData.KilnCarCode),
- new OracleParameter(":kilncarname",productionData.KilnCarName),
- new OracleParameter(":kilncarbatchno",productionData.KilnCarBatchNo),
- new OracleParameter(":kilncarposition",productionData.KilnCarPosition),
- new OracleParameter(":reworkprocedureid",productionData.ReworkProcedureID),
- new OracleParameter(":reworkprocedurecode",productionData.ReworkProcedureCode),
- new OracleParameter(":reworkprocedurename",productionData.ReworkProcedureName),
- new OracleParameter(":remarks",productionData.Remarks),
- new OracleParameter(":accountdata",accountDate),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":GoodsLevelID",productionData.GoodsLevelID),
- new OracleParameter(":GoodsLevelTypeID",productionData.GoodsLevelTypeID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":groutingdate",GroutingDate),
- new OracleParameter(":groutinguserid",GroutingUserID),
- new OracleParameter(":groutingusercode",GroutingUserCode),
- new OracleParameter(":groutingnum",GroutingNum),
- new OracleParameter(":groutingmouldcode",GroutingMouldCode),
- new OracleParameter(":mouldcode",MouldCode),
- new OracleParameter(":groutingdailyid",GroutingDailyID),
- new OracleParameter(":groutingdailydetailid",GroutingDailyDetailID),
- new OracleParameter(":groutinglineid",GroutingLineID),
- new OracleParameter(":groutinglinecode",GroutingLineCode),
- new OracleParameter(":groutinglinename",GroutingLineName),
- new OracleParameter(":gmouldtypeid",GMouldTypeID),
- new OracleParameter(":canmanytimes",CanManyTimes),
- new OracleParameter(":groutinglinedetailid",GroutingLineDetailID),
- new OracleParameter(":specialRepairflag",SpecialRepairflag),
- new OracleParameter(":LogoID",LogoID),
- };
- #endregion
- foreach (OracleParameter para in paras)
- {
- if (string.IsNullOrEmpty(para.Value + ""))
- {
- para.Value = DBNull.Value;
- }
- }
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- OutSpecialRepairflag = returnVal;
- // 失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 成功返回null
- return null;
- }
- /// <summary>
- /// 添加生产数据
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="productionData">生产数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="isSendBody">是否交坯</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddProductionData(IDBTransaction oracleTrConn, DateTime accountDate, ProductionDataEntity productionData, SUserInfo sUserInfo, out string OutSpecialRepairflag, bool isSendBody = false)
- {
- #region 查出产品注浆日期,注浆工号ID,注浆工号编码,注浆次数,注浆模具编号,模具编号
- string selectSql = "";
- string returnVal = "";
- if (productionData.NodeType == (int)Constant.ProcedureNodeType.Begin)//开始节点时从注浆登记取值
- {
- // wangxin 20150409 删除掉TP_PM_GroutingProduct表后,进行的修改
- // selectSql = @"select TP_PM_GroutingDaily.GroutingDate,
- // TP_PM_GroutingDailyDetail.UserID as GroutingUserID,
- // TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
- // TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
- // TP_PM_GroutingDailyDetail.GroutingMouldCode,
- // TP_PM_GroutingDailyDetail.MouldCode,
- // TP_PM_GroutingDailyDetail.GroutingDailyID,
- // TP_PM_GroutingDailyDetail.GroutingDailyDetailID,
- // TP_PM_GroutingDailyDetail.GroutingLineID,
- // TP_PM_GroutingDailyDetail.GroutingLineCode,
- // TP_PM_GroutingDailyDetail.GroutingLineName,
- // TP_PM_GroutingDaily.GMouldTypeID,
- // TP_PM_GroutingDaily.CanManyTimes,
- // TP_PM_GroutingDailyDetail.GroutingLineDetailID,
- // TP_PM_GroutingDailyDetail.SpecialRepairflag
- // from TP_PM_GroutingDaily
- // inner join TP_PM_GroutingDailyDetail
- // on TP_PM_GroutingDaily.GroutingDailyID=TP_PM_GroutingDailyDetail.GroutingDailyID
- // where TP_PM_GroutingDailyDetail.barcode=:barcode";
- selectSql = @"select TP_PM_GroutingDailyDetail.GroutingDate,
- TP_PM_GroutingDailyDetail.UserID as GroutingUserID,
- TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
- TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
- TP_PM_GroutingDailyDetail.GroutingMouldCode,
- TP_PM_GroutingDailyDetail.MouldCode,
- TP_PM_GroutingDailyDetail.GroutingDailyID,
- TP_PM_GroutingDailyDetail.GroutingDailyDetailID,
- TP_PM_GroutingDailyDetail.GroutingLineID,
- TP_PM_GroutingDailyDetail.GroutingLineCode,
- TP_PM_GroutingDailyDetail.GroutingLineName,
- TP_PM_GroutingDailyDetail.GroutingLineDetailID,
- TP_PM_GroutingDailyDetail.SpecialRepairflag,
- (select GMouldTypeID
- from TP_PM_GroutingDaily
- where TP_PM_GroutingDaily.GroutingDailyID =
- TP_PM_GroutingDailyDetail.GroutingDailyID) as GMouldTypeID,
- (select CanManyTimes
- from TP_PM_GroutingDaily
- where TP_PM_GroutingDaily.GroutingDailyID =
- TP_PM_GroutingDailyDetail.GroutingDailyID) as CanManyTimes,
- 0 as IsReFire
- from TP_PM_GroutingDailyDetail
- where TP_PM_GroutingDailyDetail.barcode=:barcode";
- }
- else
- {
- //这地方连了两张表,为了成检的时候,次品在次新增
- // selectSql = @"select
- // GroutingDate,
- // GroutingUserID,
- // GroutingUserCode,
- // GroutingNum,
- // GroutingMouldCode,
- // MouldCode,
- // GroutingDailyID,
- // GroutingDailyDetailID,
- // GroutingLineID,
- // GroutingLineCode,
- // GroutingLineName,
- // GMouldTypeID,
- // CanManyTimes,
- // GroutingLineDetailID,
- // SpecialRepairflag,
- // IsReFire
- //
- // from tp_pm_inproduction where barcode=:barcode
- // union
- // select
- // GroutingDate,
- // GroutingUserID,
- // GroutingUserCode,
- // GroutingNum,
- // GroutingMouldCode,
- // MouldCode,
- // GroutingDailyID,
- // GroutingDailyDetailID,
- // GroutingLineID,
- // GroutingLineCode,
- // GroutingLineName,
- // GMouldTypeID,
- // CanManyTimes,
- // GroutingLineDetailID,
- // SpecialRepairflag,
- // IsReFire
- // from TP_PM_InProductionTrash where barcode=:barcode
- // ";
- selectSql = @"select
- ip.GroutingDate,
- ip.GroutingUserID,
- ip.GroutingUserCode,
- ip.GroutingNum,
- ip.GroutingMouldCode,
- ip.MouldCode,
- ip.GroutingDailyID,
- ip.GroutingDailyDetailID,
- ip.GroutingLineID,
- ip.GroutingLineCode,
- ip.GroutingLineName,
- ip.GMouldTypeID,
- ip.CanManyTimes,
- ip.GroutingLineDetailID,
- ip.SpecialRepairflag,
- ip.IsReFire,
- ip.logoid,
- gdd.ClassesSettingID
- from tp_pm_inproduction ip inner join TP_PM_GroutingDailyDetail gdd on ip.GroutingDailyDetailID=gdd.GroutingDailyDetailID
- where ip.barcode=:barcode
- ";
- }
- OracleParameter[] selectparas = new OracleParameter[] {
- new OracleParameter(":barcode",productionData.Barcode),
- };
- DataSet dsGroutingProduct = oracleTrConn.GetSqlResultToDs(selectSql, selectparas);
- DateTime GroutingDate = new DateTime();
- int GroutingUserID = 0, GroutingNum = 0, GroutingDailyID = 0, GroutingDailyDetailID = 0, GroutingLineID = 0, GMouldTypeID = 0, CanManyTimes = 0, GroutingLineDetailID = 0, SpecialRepairflag = 0;
- string GroutingUserCode = "", GroutingMouldCode = "", MouldCode = "", GroutingLineCode = "", GroutingLineName = "";
- int IsReFire = 0;
- int? logoID = null;
- if (dsGroutingProduct != null && dsGroutingProduct.Tables[0].Rows.Count > 0)
- {
- GroutingDate = Convert.ToDateTime(dsGroutingProduct.Tables[0].Rows[0]["GroutingDate"]);
- GroutingUserID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingUserID"]);
- GroutingUserCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingUserCode"].ToString();
- GroutingNum = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingNum"]);
- GroutingMouldCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingMouldCode"].ToString();
- MouldCode = dsGroutingProduct.Tables[0].Rows[0]["MouldCode"].ToString();
- GroutingDailyID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingDailyID"]);
- GroutingDailyDetailID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingDailyDetailID"]);
- GroutingLineID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingLineID"]);
- GroutingLineCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingLineCode"].ToString();
- GroutingLineName = dsGroutingProduct.Tables[0].Rows[0]["GroutingLineName"].ToString();
- GMouldTypeID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GMouldTypeID"]);
- CanManyTimes = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["CanManyTimes"]);
- GroutingLineDetailID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingLineDetailID"]);
- SpecialRepairflag = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["SpecialRepairflag"]);
- IsReFire = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["IsReFire"]);
- if (IsReFire > 0) //大于零代表重烧过
- {
- productionData.IsReFire = IsReFire;
- productionData.DefectFlag = (int)Constant.GoodsLevelType.Defect;
- }
- if (dsGroutingProduct.Tables[0].Rows[0]["logoID"].ToString() != "")
- {
- logoID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["logoID"]);
- }
- //if (productionData.LogoID != null) //当前工序有商标
- //{
- // if (logoID != productionData.LogoID && productionData.LogoID != 0)
- // {
- // logoID = productionData.LogoID;
- // //根据明细ID.update
- // selectSql = "update TP_PM_GroutingDailyDetail set logoid=:logoid where GroutingDailyDetailID=" + GroutingDailyDetailID;
- // OracleParameter[] paras2 = new OracleParameter[] {
- // new OracleParameter(":logoid",productionData.LogoID)
- // };
- // oracleTrConn.ExecuteNonQuery(selectSql, paras2);
- // }
- //}
- //xuwei add begin
- //2019-09-17
- //更新注浆日报(交坯处理)
- if (isSendBody)
- {
- if (productionData.IsPublicBody.ToString() != "1" || productionData.ClassesSettingID == null)
- productionData.ClassesSettingID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["ClassesSettingID"]);
-
- selectSql = "update TP_PM_GroutingDailyDetail set ispublicbody=:ispublicbody, DELIVERFLAG=1,DELIVERTIME=sysdate,deliveruserid=:deliveruserid,deliverusercode=:deliverusercode where GroutingDailyDetailID=" + GroutingDailyDetailID;
- OracleParameter[] paras2 = new OracleParameter[] {
- new OracleParameter(":deliveruserid",productionData.UserID),
- new OracleParameter(":deliverusercode",productionData.UserCode),
- new OracleParameter(":ispublicbody",productionData.IsPublicBody),
- };
- oracleTrConn.ExecuteNonQuery(selectSql, paras2);
- }
- returnVal = SpecialRepairflag.ToString();
- }
- #endregion
- #region 更新窑炉窑车属性
- if (productionData.ModelType != 1 && productionData.ModelType != 2 && productionData.ModelType != 3 && productionData.ModelType != 4)
- {
- DataSet ds = GetKilnCarInfo(oracleTrConn, productionData.Barcode, sUserInfo);
- if (ds != null)
- {
- if (ds.Tables[0].Rows[0]["KilnID"].ToString() != "") //表示以前有过窑炉相关信息
- {
- productionData.KilnID = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnID"]);
- productionData.KilnCode = ds.Tables[0].Rows[0]["KilnCode"].ToString();
- productionData.KilnName = ds.Tables[0].Rows[0]["KilnName"].ToString();
- productionData.KilnCarID = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarID"]);
- productionData.KilnCarCode = ds.Tables[0].Rows[0]["KilnCarCode"].ToString();
- productionData.KilnCarName = ds.Tables[0].Rows[0]["KilnCarName"].ToString();
- productionData.KilnCarBatchNo = ds.Tables[0].Rows[0]["KilnCarBatchNo"].ToString();
- productionData.KilnCarPosition = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarPosition"]);
- }
- }
- }
- #endregion
- #region SQL
- string sql = "insert into tp_pm_productiondataIn"
- + " (productiondataid,"
- + " barcode,"
- + " centralizedbatchno,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " proceduremodel,"
- + " modeltype,"
- + " piecetype,"
- + " isreworked,"
- + " nodetype,"
- + " ispublicbody,"
- + " isrefire,"
- + " organizationid,"
- + " goodsid,"
- + " goodscode,"
- + " goodsname,"
- + " userid,"
- + " usercode,"
- + " username,"
- + " kilnid,"
- + " kilncode,"
- + " kilnname,"
- + " kilncarid,"
- + " kilncarcode,"
- + " kilncarname,"
- + " kilncarbatchno,"
- + " kilncarposition,"
- + " reworkprocedureid,"
- + " reworkprocedurecode,"
- + " reworkprocedurename,"
- + " remarks,"
- + " accountdate,"
- + " accountid,"
- + " GoodsLevelID,"
- + " GoodsLevelTypeID,"
- + " createuserid,"
- + " updateuserid,"
- + " GroutingDate,"
- + " GroutingUserID,"
- + " GroutingUserCode,"
- + " GroutingNum,"
- + " GroutingMouldCode,"
- + " MouldCode,"
- + "GroutingDailyID,"
- + "GroutingDailyDetailID,"
- + "GroutingLineID,"
- + " GroutingLineCode,"
- + "GroutingLineName,"
- + "GMouldTypeID,"
- + "CanManyTimes,"
- + "GroutingLineDetailID,"
- + "SpecialRepairflag,"
- + "ClassesSettingID,"
- + "LogoID"
- + ")"
- + " values"
- + " (:productiondataid,"
- + " :barcode,"
- + " :centralizedbatchno,"
- + " :productionlineid,"
- + " :productionlinecode,"
- + " :productionlinename,"
- + " :procedureid,"
- + " :procedurecode,"
- + " :procedurename,"
- + " :proceduremodel,"
- + " :modeltype,"
- + " :piecetype,"
- + " :isreworked,"
- + " :nodetype,"
- + " :ispublicbody,"
- + " :isrefire,"
- + " :organizationid,"
- + " :goodsid,"
- + " :goodscode,"
- + " :goodsname,"
- + " :userid,"
- + " :usercode,"
- + " :username,"
- + " :kilnid,"
- + " :kilncode,"
- + " :kilnname,"
- + " :kilncarid,"
- + " :kilncarcode,"
- + " :kilncarname,"
- + " :kilncarbatchno,"
- + " :kilncarposition,"
- + " :reworkprocedureid,"
- + " :reworkprocedurecode,"
- + " :reworkprocedurename,"
- + " :remarks,"
- + " :accountdata,"
- + " :accountid,"
- + " :GoodsLevelID,"
- + " :GoodsLevelTypeID,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :groutingdate,"
- + " :groutinguserid,"
- + " :groutingusercode,"
- + " :groutingnum,"
- + " :groutingmouldcode,"
- + " :mouldcode,"
- + ":groutingdailyid,"
- + ":groutingdailydetailid,"
- + ":groutinglineid,"
- + " :groutinglinecode,"
- + ":groutinglinename,"
- + ":gmouldtypeid,"
- + ":canmanytimes,"
- + ":groutinglinedetailid,"
- + ":specialRepairflag,"
- + ":classesSettingID,"
- + ":logoID"
- + ")";
- #endregion
- #region OracleParameter
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":classesSettingID",productionData.ClassesSettingID),
- new OracleParameter(":productiondataid",productionData.ProductionDataID),
- new OracleParameter(":barcode",productionData.Barcode),
- new OracleParameter(":centralizedbatchno",productionData.CentralizedBatchNo),
- new OracleParameter(":productionlineid",productionData.ProductionLineID),
- new OracleParameter(":productionlinecode",productionData.ProductionLineCode),
- new OracleParameter(":productionlinename",productionData.ProductionLineName),
- new OracleParameter(":procedureid",productionData.CompleteProcedureID),
- new OracleParameter(":procedurecode",productionData.ProcedureCode),
- new OracleParameter(":procedurename",productionData.ProcedureName),
- new OracleParameter(":proceduremodel",productionData.ProcedureModel),
- new OracleParameter(":modeltype",productionData.ModelType),
- new OracleParameter(":piecetype",productionData.PieceType),
- new OracleParameter(":isreworked",productionData.IsReworked),
- new OracleParameter(":nodetype",productionData.NodeType),
- new OracleParameter(":ispublicbody",productionData.IsPublicBody),
- new OracleParameter(":isrefire",productionData.IsReFire),
- new OracleParameter(":organizationid",productionData.OrganizationID),
- new OracleParameter(":goodsid",productionData.GoodsID),
- new OracleParameter(":goodscode",productionData.GoodsCode),
- new OracleParameter(":goodsname",productionData.GoodsName),
- new OracleParameter(":userid",productionData.UserID),
- new OracleParameter(":usercode",productionData.UserCode),
- new OracleParameter(":username",productionData.UserName),
- new OracleParameter(":kilnid",productionData.KilnID),
- new OracleParameter(":kilncode",productionData.KilnCode),
- new OracleParameter(":kilnname",productionData.KilnName),
- new OracleParameter(":kilncarid",productionData.KilnCarID),
- new OracleParameter(":kilncarcode",productionData.KilnCarCode),
- new OracleParameter(":kilncarname",productionData.KilnCarName),
- new OracleParameter(":kilncarbatchno",productionData.KilnCarBatchNo),
- new OracleParameter(":kilncarposition",productionData.KilnCarPosition),
- new OracleParameter(":reworkprocedureid",productionData.ReworkProcedureID),
- new OracleParameter(":reworkprocedurecode",productionData.ReworkProcedureCode),
- new OracleParameter(":reworkprocedurename",productionData.ReworkProcedureName),
- new OracleParameter(":remarks",productionData.Remarks),
- new OracleParameter(":accountdata",accountDate),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":GoodsLevelID",productionData.GoodsLevelID),
- new OracleParameter(":GoodsLevelTypeID",productionData.GoodsLevelTypeID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":groutingdate",GroutingDate),
- new OracleParameter(":groutinguserid",GroutingUserID),
- new OracleParameter(":groutingusercode",GroutingUserCode),
- new OracleParameter(":groutingnum",GroutingNum),
- new OracleParameter(":groutingmouldcode",GroutingMouldCode),
- new OracleParameter(":mouldcode",MouldCode),
- new OracleParameter(":groutingdailyid",GroutingDailyID),
- new OracleParameter(":groutingdailydetailid",GroutingDailyDetailID),
- new OracleParameter(":groutinglineid",GroutingLineID),
- new OracleParameter(":groutinglinecode",GroutingLineCode),
- new OracleParameter(":groutinglinename",GroutingLineName),
- new OracleParameter(":gmouldtypeid",GMouldTypeID),
- new OracleParameter(":canmanytimes",CanManyTimes),
- new OracleParameter(":groutinglinedetailid",GroutingLineDetailID),
- new OracleParameter(":specialRepairflag",SpecialRepairflag),
- new OracleParameter(":logoID",logoID),
- };
- #endregion
- foreach (OracleParameter para in paras)
- {
- if (string.IsNullOrEmpty(para.Value + ""))
- {
- para.Value = DBNull.Value;
- }
- }
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- OutSpecialRepairflag = returnVal;
- // 失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 成功返回null
- return null;
- }
- /// <summary>
- /// 添加生产数据(单独为成检所做,因为成检可以从次品到其它,需要读一标识,别的不需要连接回收站表)
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="productionData">生产数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddFinishCheckProductionData(IDBTransaction oracleTrConn, DateTime accountDate, ProductionDataEntity productionData, SUserInfo sUserInfo, out string OutSpecialRepairflag)
- {
- #region 查出产品注浆日期,注浆工号ID,注浆工号编码,注浆次数,注浆模具编号,模具编号
- string selectSql = "";
- string returnVal = "";
- if (productionData.NodeType == (int)Constant.ProcedureNodeType.Begin)//开始节点时从注浆登记取值
- {
- // wangxin 20150409 删除掉TP_PM_GroutingProduct表后,进行的修改
- // selectSql = @"select TP_PM_GroutingDaily.GroutingDate,
- // TP_PM_GroutingDailyDetail.UserID as GroutingUserID,
- // TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
- // TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
- // TP_PM_GroutingDailyDetail.GroutingMouldCode,
- // TP_PM_GroutingDailyDetail.MouldCode,
- // TP_PM_GroutingDailyDetail.GroutingDailyID,
- // TP_PM_GroutingDailyDetail.GroutingDailyDetailID,
- // TP_PM_GroutingDailyDetail.GroutingLineID,
- // TP_PM_GroutingDailyDetail.GroutingLineCode,
- // TP_PM_GroutingDailyDetail.GroutingLineName,
- // TP_PM_GroutingDaily.GMouldTypeID,
- // TP_PM_GroutingDaily.CanManyTimes,
- // TP_PM_GroutingDailyDetail.GroutingLineDetailID,
- // TP_PM_GroutingDailyDetail.SpecialRepairflag
- // from TP_PM_GroutingDaily
- // inner join TP_PM_GroutingDailyDetail
- // on TP_PM_GroutingDaily.GroutingDailyID=TP_PM_GroutingDailyDetail.GroutingDailyID
- // where TP_PM_GroutingDailyDetail.barcode=:barcode";
- selectSql = @"select TP_PM_GroutingDailyDetail.GroutingDate,
- TP_PM_GroutingDailyDetail.UserID as GroutingUserID,
- TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
- TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
- TP_PM_GroutingDailyDetail.GroutingMouldCode,
- TP_PM_GroutingDailyDetail.MouldCode,
- TP_PM_GroutingDailyDetail.GroutingDailyID,
- TP_PM_GroutingDailyDetail.GroutingDailyDetailID,
- TP_PM_GroutingDailyDetail.GroutingLineID,
- TP_PM_GroutingDailyDetail.GroutingLineCode,
- TP_PM_GroutingDailyDetail.GroutingLineName,
- TP_PM_GroutingDailyDetail.GroutingLineDetailID,
- TP_PM_GroutingDailyDetail.SpecialRepairflag,
- (select GMouldTypeID
- from TP_PM_GroutingDaily
- where TP_PM_GroutingDaily.GroutingDailyID =
- TP_PM_GroutingDailyDetail.GroutingDailyID) as GMouldTypeID,
- (select CanManyTimes
- from TP_PM_GroutingDaily
- where TP_PM_GroutingDaily.GroutingDailyID =
- TP_PM_GroutingDailyDetail.GroutingDailyID) as CanManyTimes,
- 0 as IsReFire
- from TP_PM_GroutingDailyDetail
- where TP_PM_GroutingDailyDetail.barcode=:barcode";
- }
- else
- {
- //这地方连了两张表,为了成检的时候,次品在次新增
- selectSql = @"select
- GroutingDate,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- GroutingMouldCode,
- MouldCode,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- SpecialRepairflag,
- IsReFire,
- Logoid
- from tp_pm_inproduction where barcode=:barcode
- union
- select
- GroutingDate,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- GroutingMouldCode,
- MouldCode,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- SpecialRepairflag,
- IsReFire,
- logoid
- from TP_PM_InProductionTrash where barcode=:barcode
- ";
- }
- OracleParameter[] selectparas = new OracleParameter[] {
- new OracleParameter(":barcode",productionData.Barcode),
- };
- DataSet dsGroutingProduct = oracleTrConn.GetSqlResultToDs(selectSql, selectparas);
- DateTime GroutingDate = new DateTime();
- int GroutingUserID = 0, GroutingNum = 0, GroutingDailyID = 0, GroutingDailyDetailID = 0, GroutingLineID = 0, GMouldTypeID = 0, CanManyTimes = 0, GroutingLineDetailID = 0, SpecialRepairflag = 0;
- string GroutingUserCode = "", GroutingMouldCode = "", MouldCode = "", GroutingLineCode = "", GroutingLineName = "";
- int IsReFire = 0;
- int? logoid = null;
- if (dsGroutingProduct != null && dsGroutingProduct.Tables[0].Rows.Count > 0)
- {
- GroutingDate = Convert.ToDateTime(dsGroutingProduct.Tables[0].Rows[0]["GroutingDate"]);
- GroutingUserID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingUserID"]);
- GroutingUserCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingUserCode"].ToString();
- GroutingNum = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingNum"]);
- GroutingMouldCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingMouldCode"].ToString();
- MouldCode = dsGroutingProduct.Tables[0].Rows[0]["MouldCode"].ToString();
- GroutingDailyID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingDailyID"]);
- GroutingDailyDetailID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingDailyDetailID"]);
- GroutingLineID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingLineID"]);
- GroutingLineCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingLineCode"].ToString();
- GroutingLineName = dsGroutingProduct.Tables[0].Rows[0]["GroutingLineName"].ToString();
- GMouldTypeID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GMouldTypeID"]);
- CanManyTimes = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["CanManyTimes"]);
- GroutingLineDetailID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingLineDetailID"]);
- SpecialRepairflag = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["SpecialRepairflag"]);
- IsReFire = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["IsReFire"]);
- if (dsGroutingProduct.Tables[0].Rows[0]["logoid"].ToString() != "")
- {
- logoid = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["logoid"]);
- }
- if (IsReFire > 0) //大于零代表重烧过
- {
- productionData.IsReFire = IsReFire;
- productionData.DefectFlag = (int)Constant.GoodsLevelType.Defect;
- }
- returnVal = SpecialRepairflag.ToString();
- }
- #endregion
- #region 更新窑炉窑车属性
- if (productionData.ModelType != 1 && productionData.ModelType != 2 && productionData.ModelType != 3 && productionData.ModelType != 4)
- {
- DataSet ds = GetFinishCheckKilnCarInfo(oracleTrConn, productionData.Barcode, sUserInfo);
- if (ds != null)
- {
- if (ds.Tables[0].Rows[0]["KilnID"].ToString() != "") //表示以前有过窑炉相关信息
- {
- productionData.KilnID = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnID"]);
- productionData.KilnCode = ds.Tables[0].Rows[0]["KilnCode"].ToString();
- productionData.KilnName = ds.Tables[0].Rows[0]["KilnName"].ToString();
- productionData.KilnCarID = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarID"]);
- productionData.KilnCarCode = ds.Tables[0].Rows[0]["KilnCarCode"].ToString();
- productionData.KilnCarName = ds.Tables[0].Rows[0]["KilnCarName"].ToString();
- productionData.KilnCarBatchNo = ds.Tables[0].Rows[0]["KilnCarBatchNo"].ToString();
- productionData.KilnCarPosition = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarPosition"]);
- }
- }
- }
- #endregion
- if (Convert.ToInt32(productionData.GoodsLevelTypeID) == 6) //判断重烧必须有返工工序
- {
- if (productionData.ReworkProcedureID == null || Convert.ToInt32(productionData.ReworkProcedureID) == 0)
- {
- OutSpecialRepairflag = "";
- return string.Format("产品分级【重烧】必须填写返工工序", "条码", "保存");
- }
- }
- DateTime? checkTime = null;
- if (productionData.IsPDA != null)
- {
- if (productionData.PDACheckTime != null)
- {
- // PDA端
- if (productionData.PDACheckTime.ToString() != string.Empty)
- {
- checkTime = Convert.ToDateTime(productionData.PDACheckTime);
- }
- }
- }
- else
- {
- if (productionData.CheckTime != null)
- {
- // PDA端
- if (productionData.CheckTime.ToString() != string.Empty)
- {
- checkTime = Convert.ToDateTime(productionData.CheckTime);
- }
- }
- }
- #region SQL
- string sql = "insert into tp_pm_productiondataIn"
- + " (productiondataid,"
- + " barcode,"
- + " centralizedbatchno,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " proceduremodel,"
- + " modeltype,"
- + " piecetype,"
- + " isreworked,"
- + " nodetype,"
- + " ispublicbody,"
- + " isrefire,"
- + " organizationid,"
- + " goodsid,"
- + " goodscode,"
- + " goodsname,"
- + " userid,"
- + " usercode,"
- + " username,"
- + " kilnid,"
- + " kilncode,"
- + " kilnname,"
- + " kilncarid,"
- + " kilncarcode,"
- + " kilncarname,"
- + " kilncarbatchno,"
- + " kilncarposition,"
- + " reworkprocedureid,"
- + " reworkprocedurecode,"
- + " reworkprocedurename,"
- + " remarks,"
- + " accountdate,"
- + " accountid,"
- + " GoodsLevelID,"
- + " GoodsLevelTypeID,"
- + " createuserid,"
- + " updateuserid,"
- + " GroutingDate,"
- + " GroutingUserID,"
- + " GroutingUserCode,"
- + " GroutingNum,"
- + " GroutingMouldCode,"
- + " MouldCode,"
- + "GroutingDailyID,"
- + "GroutingDailyDetailID,"
- + "GroutingLineID,"
- + " GroutingLineCode,"
- + "GroutingLineName,"
- + "GMouldTypeID,"
- + "CanManyTimes,"
- + "GroutingLineDetailID,"
- + "SpecialRepairflag,"
- + "ClassesSettingID,"
- + "LogoID,"
- + "CheckTime"
- + ")"
- + " values"
- + " (:productiondataid,"
- + " :barcode,"
- + " :centralizedbatchno,"
- + " :productionlineid,"
- + " :productionlinecode,"
- + " :productionlinename,"
- + " :procedureid,"
- + " :procedurecode,"
- + " :procedurename,"
- + " :proceduremodel,"
- + " :modeltype,"
- + " :piecetype,"
- + " :isreworked,"
- + " :nodetype,"
- + " :ispublicbody,"
- + " :isrefire,"
- + " :organizationid,"
- + " :goodsid,"
- + " :goodscode,"
- + " :goodsname,"
- + " :userid,"
- + " :usercode,"
- + " :username,"
- + " :kilnid,"
- + " :kilncode,"
- + " :kilnname,"
- + " :kilncarid,"
- + " :kilncarcode,"
- + " :kilncarname,"
- + " :kilncarbatchno,"
- + " :kilncarposition,"
- + " :reworkprocedureid,"
- + " :reworkprocedurecode,"
- + " :reworkprocedurename,"
- + " :remarks,"
- + " :accountdata,"
- + " :accountid,"
- + " :GoodsLevelID,"
- + " :GoodsLevelTypeID,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :groutingdate,"
- + " :groutinguserid,"
- + " :groutingusercode,"
- + " :groutingnum,"
- + " :groutingmouldcode,"
- + " :mouldcode,"
- + ":groutingdailyid,"
- + ":groutingdailydetailid,"
- + ":groutinglineid,"
- + " :groutinglinecode,"
- + ":groutinglinename,"
- + ":gmouldtypeid,"
- + ":canmanytimes,"
- + ":groutinglinedetailid,"
- + ":specialRepairflag,"
- + ":classesSettingID,"
- + ":logoid,";
- if (checkTime == null)
- {
- sql = sql + "sysdate";
- }
- else
- {
- sql = sql + ":checkTime";
- }
- sql = sql + ")";
- #endregion
- #region OracleParameter
- OracleParameter[] paras = null;
- if (checkTime != null)
- {
- paras = new OracleParameter[] {
- new OracleParameter(":classesSettingID",productionData.ClassesSettingID),
- new OracleParameter(":productiondataid",productionData.ProductionDataID),
- new OracleParameter(":barcode",productionData.Barcode),
- new OracleParameter(":centralizedbatchno",productionData.CentralizedBatchNo),
- new OracleParameter(":productionlineid",productionData.ProductionLineID),
- new OracleParameter(":productionlinecode",productionData.ProductionLineCode),
- new OracleParameter(":productionlinename",productionData.ProductionLineName),
- new OracleParameter(":procedureid",productionData.CompleteProcedureID),
- new OracleParameter(":procedurecode",productionData.ProcedureCode),
- new OracleParameter(":procedurename",productionData.ProcedureName),
- new OracleParameter(":proceduremodel",productionData.ProcedureModel),
- new OracleParameter(":modeltype",productionData.ModelType),
- new OracleParameter(":piecetype",productionData.PieceType),
- new OracleParameter(":isreworked",productionData.IsReworked),
- new OracleParameter(":nodetype",productionData.NodeType),
- new OracleParameter(":ispublicbody",productionData.IsPublicBody),
- new OracleParameter(":isrefire",productionData.IsReFire),
- new OracleParameter(":organizationid",productionData.OrganizationID),
- new OracleParameter(":goodsid",productionData.GoodsID),
- new OracleParameter(":goodscode",productionData.GoodsCode),
- new OracleParameter(":goodsname",productionData.GoodsName),
- new OracleParameter(":userid",productionData.UserID),
- new OracleParameter(":usercode",productionData.UserCode),
- new OracleParameter(":username",productionData.UserName),
- new OracleParameter(":kilnid",productionData.KilnID),
- new OracleParameter(":kilncode",productionData.KilnCode),
- new OracleParameter(":kilnname",productionData.KilnName),
- new OracleParameter(":kilncarid",productionData.KilnCarID),
- new OracleParameter(":kilncarcode",productionData.KilnCarCode),
- new OracleParameter(":kilncarname",productionData.KilnCarName),
- new OracleParameter(":kilncarbatchno",productionData.KilnCarBatchNo),
- new OracleParameter(":kilncarposition",productionData.KilnCarPosition),
- new OracleParameter(":reworkprocedureid",productionData.ReworkProcedureID),
- new OracleParameter(":reworkprocedurecode",productionData.ReworkProcedureCode),
- new OracleParameter(":reworkprocedurename",productionData.ReworkProcedureName),
- new OracleParameter(":remarks",productionData.Remarks),
- new OracleParameter(":accountdata",accountDate),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":GoodsLevelID",productionData.GoodsLevelID),
- new OracleParameter(":GoodsLevelTypeID",productionData.GoodsLevelTypeID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":groutingdate",GroutingDate),
- new OracleParameter(":groutinguserid",GroutingUserID),
- new OracleParameter(":groutingusercode",GroutingUserCode),
- new OracleParameter(":groutingnum",GroutingNum),
- new OracleParameter(":groutingmouldcode",GroutingMouldCode),
- new OracleParameter(":mouldcode",MouldCode),
- new OracleParameter(":groutingdailyid",GroutingDailyID),
- new OracleParameter(":groutingdailydetailid",GroutingDailyDetailID),
- new OracleParameter(":groutinglineid",GroutingLineID),
- new OracleParameter(":groutinglinecode",GroutingLineCode),
- new OracleParameter(":groutinglinename",GroutingLineName),
- new OracleParameter(":gmouldtypeid",GMouldTypeID),
- new OracleParameter(":canmanytimes",CanManyTimes),
- new OracleParameter(":groutinglinedetailid",GroutingLineDetailID),
- new OracleParameter(":specialRepairflag",SpecialRepairflag),
- new OracleParameter(":logoid",logoid),
- new OracleParameter(":checkTime",checkTime),
- };
- }
- else
- {
- paras = new OracleParameter[] {
- new OracleParameter(":classesSettingID",productionData.ClassesSettingID),
- new OracleParameter(":productiondataid",productionData.ProductionDataID),
- new OracleParameter(":barcode",productionData.Barcode),
- new OracleParameter(":centralizedbatchno",productionData.CentralizedBatchNo),
- new OracleParameter(":productionlineid",productionData.ProductionLineID),
- new OracleParameter(":productionlinecode",productionData.ProductionLineCode),
- new OracleParameter(":productionlinename",productionData.ProductionLineName),
- new OracleParameter(":procedureid",productionData.CompleteProcedureID),
- new OracleParameter(":procedurecode",productionData.ProcedureCode),
- new OracleParameter(":procedurename",productionData.ProcedureName),
- new OracleParameter(":proceduremodel",productionData.ProcedureModel),
- new OracleParameter(":modeltype",productionData.ModelType),
- new OracleParameter(":piecetype",productionData.PieceType),
- new OracleParameter(":isreworked",productionData.IsReworked),
- new OracleParameter(":nodetype",productionData.NodeType),
- new OracleParameter(":ispublicbody",productionData.IsPublicBody),
- new OracleParameter(":isrefire",productionData.IsReFire),
- new OracleParameter(":organizationid",productionData.OrganizationID),
- new OracleParameter(":goodsid",productionData.GoodsID),
- new OracleParameter(":goodscode",productionData.GoodsCode),
- new OracleParameter(":goodsname",productionData.GoodsName),
- new OracleParameter(":userid",productionData.UserID),
- new OracleParameter(":usercode",productionData.UserCode),
- new OracleParameter(":username",productionData.UserName),
- new OracleParameter(":kilnid",productionData.KilnID),
- new OracleParameter(":kilncode",productionData.KilnCode),
- new OracleParameter(":kilnname",productionData.KilnName),
- new OracleParameter(":kilncarid",productionData.KilnCarID),
- new OracleParameter(":kilncarcode",productionData.KilnCarCode),
- new OracleParameter(":kilncarname",productionData.KilnCarName),
- new OracleParameter(":kilncarbatchno",productionData.KilnCarBatchNo),
- new OracleParameter(":kilncarposition",productionData.KilnCarPosition),
- new OracleParameter(":reworkprocedureid",productionData.ReworkProcedureID),
- new OracleParameter(":reworkprocedurecode",productionData.ReworkProcedureCode),
- new OracleParameter(":reworkprocedurename",productionData.ReworkProcedureName),
- new OracleParameter(":remarks",productionData.Remarks),
- new OracleParameter(":accountdata",accountDate),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":GoodsLevelID",productionData.GoodsLevelID),
- new OracleParameter(":GoodsLevelTypeID",productionData.GoodsLevelTypeID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":groutingdate",GroutingDate),
- new OracleParameter(":groutinguserid",GroutingUserID),
- new OracleParameter(":groutingusercode",GroutingUserCode),
- new OracleParameter(":groutingnum",GroutingNum),
- new OracleParameter(":groutingmouldcode",GroutingMouldCode),
- new OracleParameter(":mouldcode",MouldCode),
- new OracleParameter(":groutingdailyid",GroutingDailyID),
- new OracleParameter(":groutingdailydetailid",GroutingDailyDetailID),
- new OracleParameter(":groutinglineid",GroutingLineID),
- new OracleParameter(":groutinglinecode",GroutingLineCode),
- new OracleParameter(":groutinglinename",GroutingLineName),
- new OracleParameter(":gmouldtypeid",GMouldTypeID),
- new OracleParameter(":canmanytimes",CanManyTimes),
- new OracleParameter(":groutinglinedetailid",GroutingLineDetailID),
- new OracleParameter(":specialRepairflag",SpecialRepairflag),
- new OracleParameter(":logoid",logoid),
- };
- }
- #endregion
- foreach (OracleParameter para in paras)
- {
- if (string.IsNullOrEmpty(para.Value + ""))
- {
- para.Value = DBNull.Value;
- }
- }
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- OutSpecialRepairflag = returnVal;
- // 失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 成功返回null
- return null;
- }
- /// <summary>
- /// 删除在产数据
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="delInProductionEntity">在产数据对象</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string DeleteInProduction(IDBTransaction oracleTrConn, InProductionEntity delInProductionEntity, bool FinishedProduct, SUserInfo sUserInfo)
- {
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":barcode",delInProductionEntity.BarCode),
- };
- int result = 0;
- //删除在产表之前,插入到产品回收表中
- if (!FinishedProduct)//如果不是产成品的时候,就是报废,产成品的时候不添加这个表里,只删除在产数据
- {
- OracleParameter[] parasPDA = new OracleParameter[] {
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",delInProductionEntity.BarCode),
- new OracleParameter(":FlowProcedureID",delInProductionEntity.CompleteProcedureID),
- };
- string sqlInsert = @"insert into TP_PM_InProductionTrash
- (
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateTime,
- CreateUserID,
- UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- ProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid, ISREWORKFLAG, SEMICHECKID
- )
- select
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateTime,
- :CreateUserID,
- :UpdateUserID,
- SpecialRepairflag,
- :FlowProcedureID,
- FlowProcedureTime,
- :FlowProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid, ISREWORKFLAG, SEMICHECKID
- from TP_PM_InProduction
- where barcode=:barcode
- ";
- result = oracleTrConn.ExecuteNonQuery(sqlInsert, parasPDA);
- }
- string sql = "delete tp_pm_inproduction where barcode = :barcode";
- result += oracleTrConn.ExecuteNonQuery(sql, paras);
- // 删除失败
- //if (result != Constant.INT_IS_TWO)//删除在产的同时,应该往产品加收表里插入,这样就是影响行数为2,以前是1
- if (result == Constant.INT_IS_ZERO)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 成功返回null
- return null;
- }
- /// <summary>
- /// 删除在产数据
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="delInProductionEntity">在产数据对象</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string DeletePDAInProduction(IDBTransaction oracleTrConn, InProductionEntity delInProductionEntity, bool FinishedProduct, SUserInfo sUserInfo)
- {
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":barcode",delInProductionEntity.BarCode),
- };
- int result = 0;
- //删除在产表之前,插入到产品回收表中
- if (!FinishedProduct)//如果不是产成品的时候,就是报废,产成品的时候不添加这个表里,只删除在产数据
- {
- OracleParameter[] parasPDA = new OracleParameter[] {
- new OracleParameter(":barcode",delInProductionEntity.BarCode),
- new OracleParameter(":FlowProcedureID",delInProductionEntity.CompleteProcedureID),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":ProductionDataID",OracleDbType.Int32,delInProductionEntity.ProductionDataID,ParameterDirection.Input),
- new OracleParameter(":GoodsLevelID",OracleDbType.Int32,delInProductionEntity.GoodsLevelID,ParameterDirection.Input),
- new OracleParameter(":GoodsLevelTypeID",OracleDbType.Int32,delInProductionEntity.GoodsLevelTypeID,ParameterDirection.Input),
-
- };
- //删除在产表前,在产表生产数据ID更新下,如不更新这样就不准了,例如,次品到次品 第一次不会影响,因为第一次TP_PM_InProductionTrash表里没有
- // 如果第二次走次品到次品,才有效,下面的sqlInsert则没有效,因为在产表里没有数据插入不到回收表
- string sqlupdate = "update TP_PM_InProductionTrash set ProductionDataID=:ProductionDataID where barcode=:barcode";
- OracleParameter[] parasupdate = new OracleParameter[] {
- new OracleParameter(":barcode",delInProductionEntity.BarCode),
- new OracleParameter(":ProductionDataID",delInProductionEntity.ProductionDataID),
- };
- oracleTrConn.ExecuteNonQuery(sqlupdate, parasupdate);
- string sqlInsert = @"insert into TP_PM_InProductionTrash
- (
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateUserID,
- UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- ProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid, ISREWORKFLAG, SEMICHECKID
- )
- select
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- :GoodsLevelID,
- :GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- :CreateUserID,
- :UpdateUserID,
- SpecialRepairflag,
- :FlowProcedureID,
- FlowProcedureTime,
- :FlowProcedureID,
- ProcedureTime,
- :ProductionDataID,
- logoid, ISREWORKFLAG, SEMICHECKID
- from TP_PM_InProduction
- where barcode=:barcode
- ";
- result = oracleTrConn.ExecuteNonQuery(sqlInsert, parasPDA);
- }
- string sql = "delete tp_pm_inproduction where barcode = :barcode";
- result += oracleTrConn.ExecuteNonQuery(sql, paras);
- // 删除失败
- //if (result != Constant.INT_IS_TWO)//删除在产的同时,应该往产品加收表里插入,这样就是影响行数为2,以前是1
- if (result == Constant.INT_IS_ZERO)
- {
- //return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 成功返回null
- return null;
- }
- /// <summary>
- /// 根据窑车ID 删除窑车产品
- /// </summary>
- /// <param name="oracleTrConn">数据连接</param>
- /// <param name="pKilnCarID">窑车ID</param>
- /// <returns>
- /// 张国印 2014.10.04 新建
- /// </returns>
- private static string DeleteKilnCarGoodsByKilnCarID(IDBTransaction oracleTrConn, int pKilnCarID)
- {
- string sql = "delete TP_PM_KilnCarGoods where KilnCarID = :pKilnCarID";
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":pKilnCarID", OracleDbType.Int32, pKilnCarID, ParameterDirection.Input),
- };
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 删除失败
- if (result <= Constant.INT_IS_ZERO)
- {
- return string.Format(Messages.MSG_CMN_W001, "窑车产品", "保存");
- }
- // 成功返回null
- return null;
- }
- /// <summary>
- /// 添加产成品
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="finishedProduct">产成品对象</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddFinishedProduct(IDBTransaction oracleTrConn,
- FinishedProductEntity finishedProduct, SUserInfo sUserInfo
- , string finishedloadbatchno)
- {
- List<OracleParameter> paras = new List<OracleParameter>();
- string sql = "";
- #region
- // add 2015/11/16
- // if (finishedProduct.LogoID != null && Convert.ToInt32(finishedProduct.LogoID) > 0)
- // {
- // #region SQL
- // //废弃
- // sql = " insert into tp_pm_finishedproduct"
- // + " (barcode, "
- // + " productionlineid, "
- // + " productionlinecode, "
- // + " productionlinename, "
- // + " ispublicbody, "
- // + " isrefire, "
- // + " GoodsLevelID, "
- // + " GoodsLevelTypeID, "
- // + " goodsid, "
- // + " goodscode, "
- // + " goodsname, "
- // + " groutingdailyid, "
- // + " groutingdailydetailid, "
- // + " groutingdate, "
- // + " groutinglineid, "
- // + " groutinglinecode, "
- // + " groutinglinename, "
- // + " gmouldtypeid, "
- // + " groutinglinedetailid, "
- // + " groutingmouldcode, "
- // + " mouldcode, "
- // + " accountdate, "
- // + " accountid, "
- // + " createuserid, "
- // + " updateuserid,"
- // + " groutinguserid, "
- // + " groutingusercode, "
- // + " groutingnum, "
- // + " kilnid, "
- // + " kilncode, "
- // + " kilnname, "
- // + " kilncarid, "
- // + " kilncarcode, "
- // + " kilncarname, "
- // + " kilncarbatchno, "
- // + " kilncarposition, "
- // + " specialRepairflag, "
- // + " logoid "
- // + ") "
- // + " select barcode, "
- // + " productionlineid, "
- // + " productionlinecode, "
- // + " productionlinename, "
- // + " ispublicbody, "
- // + " isrefire, ";
- // #region 产品等级
- // //if (finishedProduct.GoodsGrade == null)
- // //{
- // // sql = sql + " goodsgrade,";
- // //}
- // //// 最后一个工序如果是检验工序,可更改产品等级
- // //else
- // //{
- // // sql = sql + " :goodsgrade, ";
- // // paras.Add(new OracleParameter(":goodsgrade", finishedProduct.GoodsGrade));
- // //}
- // //如果包装时,产成品未走过成检,则直接视为正品
- // int? GoodsLevelTypeID = null;
- // int? GoodsLevelID = null;
- // if (finishedProduct.GoodsLevelID == null)
- // {
- // string sqlQuery = @"select GoodsLevelID,GoodsLevelTypeID from TP_MST_GoodsLevel where GoodsLevelTypeID=
- // (
- // select distinct GoodsLevelTypeID from tp_pm_inproduction where Barcode='" + finishedProduct.BarCode + "'" +
- // ") and AccountID=" + sUserInfo.AccountID;
- // DataSet ds = oracleTrConn.GetSqlResultToDs(sqlQuery);
- // if (ds != null && ds.Tables[0].Rows.Count > 0)
- // {
- // if (ds.Tables[0].Rows[0]["GoodsLevelID"].ToString() != "")
- // {
- // if (Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelTypeID"]) == 5)//副品
- // {
- // GoodsLevelTypeID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelTypeID"]);
- // GoodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
- // }
- // else
- // {
- // string sqlQuery2 = @"select GoodsLevelID,GoodsLevelTypeID from TP_MST_GoodsLevel where GoodsLevelTypeID=4 and AccountID=" + sUserInfo.AccountID;
- // ds = oracleTrConn.GetSqlResultToDs(sqlQuery2);
- // if (ds.Tables[0].Rows[0]["GoodsLevelID"].ToString() != "")
- // {
- // GoodsLevelTypeID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelTypeID"]);
- // GoodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
- // }
- // }
- // }
- // }
- // else
- // {
- // string sqlQuery2 = @"select GoodsLevelID,GoodsLevelTypeID from TP_MST_GoodsLevel where GoodsLevelTypeID=4 and AccountID=" + sUserInfo.AccountID;
- // ds = oracleTrConn.GetSqlResultToDs(sqlQuery2);
- // if (ds.Tables[0].Rows[0]["GoodsLevelID"].ToString() != "")
- // {
- // GoodsLevelTypeID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelTypeID"]);
- // GoodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
- // }
- // }
- // }
- // if (finishedProduct.GoodsLevelID == null)
- // {
- // //sql = sql + " GoodsLevelID,";
- // // 包装后,这个值并没有,这里的值除了在检验的时候会给赋值,其它工序应该没有设置,所以查询了一次
- // ////// sql = sql + @"
- // ////// (select GoodsLevelID from TP_MST_GoodsLevel where GoodsLevelTypeID=
- // ////// (
- // ////// select distinct GoodsLevelTypeID from tp_pm_inproduction where Barcode=:barcode
- // ////// ) and AccountID=:AccountID),";
- // sql = sql + GoodsLevelID.ToString() + " ,";
- // }
- // // 最后一个工序如果是检验工序,可更改产品等级
- // else
- // {
- // sql = sql + " :GoodsLevelID, ";
- // paras.Add(new OracleParameter(":GoodsLevelID", finishedProduct.GoodsLevelID));
- // }
- // if (finishedProduct.GoodsLevelTypeID == null)
- // {
- // //sql = sql + " GoodsLevelTypeID,";
- // sql = sql + GoodsLevelTypeID.ToString() + " ,";
- // }
- // // 最后一个工序如果是检验工序,可更改产品等级
- // else
- // {
- // sql = sql + " :GoodsLevelTypeID, ";
- // paras.Add(new OracleParameter(":GoodsLevelTypeID", finishedProduct.GoodsLevelTypeID));
- // }
- // #endregion
- // sql = sql + " goodsid, "
- // + " goodscode, "
- // + " goodsname, "
- // + " groutingdailyid, "
- // + " groutingdailydetailid, "
- // + " groutingdate, "
- // + " groutinglineid, "
- // + " groutinglinecode, "
- // + " groutinglinename, "
- // + " gmouldtypeid, "
- // + " groutinglinedetailid, "
- // + " groutingmouldcode, "
- // + " mouldcode, "
- // + " fun_cmn_getaccountdate(accountid), "
- // + " accountid, "
- // + " :createuserid, "
- // + " :updateuserid, "
- // + " groutinguserid, "
- // + " groutingusercode, "
- // + " groutingnum, "
- // + " kilnid, "
- // + " kilncode, "
- // + " kilnname, "
- // + " kilncarid, "
- // + " kilncarcode, "
- // + " kilncarname, "
- // + " kilncarbatchno, "
- // + " kilncarposition, "
- // + " specialRepairflag, "
- // + " :logoid "
- // + " from tp_pm_inproduction "
- // + " where Barcode=:barcode";
- // #endregion
- // paras.Add(new OracleParameter(":createuserid", sUserInfo.UserID));
- // paras.Add(new OracleParameter(":updateuserid", sUserInfo.UserID));
- // paras.Add(new OracleParameter(":barcode", finishedProduct.BarCode));
- // paras.Add(new OracleParameter(":logoid", finishedProduct.LogoID));
- // // end 2015/11/16
- // }
- // else
- // {
- #endregion
- #region SQL
- //废弃
- sql = " insert into tp_pm_finishedproduct"
- + " (barcode, "
- + " productionlineid, "
- + " productionlinecode, "
- + " productionlinename, "
- + " ispublicbody, "
- + " isrefire, "
- + " GoodsLevelID, "
- + " GoodsLevelTypeID, "
- + " goodsid, "
- + " goodscode, "
- + " goodsname, "
- + " groutingdailyid, "
- + " groutingdailydetailid, "
- + " groutingdate, "
- + " groutinglineid, "
- + " groutinglinecode, "
- + " groutinglinename, "
- + " gmouldtypeid, "
- + " groutinglinedetailid, "
- + " groutingmouldcode, "
- + " mouldcode, "
- + " accountdate, "
- + " accountid, "
- + " createuserid, "
- + " updateuserid,"
- + " groutinguserid, "
- + " groutingusercode, "
- + " groutingnum, "
- + " kilnid, "
- + " kilncode, "
- + " kilnname, "
- + " kilncarid, "
- + " kilncarcode, "
- + " kilncarname, "
- + " kilncarbatchno, "
- + " kilncarposition, "
- + " specialRepairflag, "
- + " logoid,OnlyCode ,finishedloadbatchno"
- + ") "
- + " select barcode, "
- + " productionlineid, "
- + " productionlinecode, "
- + " productionlinename, "
- + " ispublicbody, "
- + " isrefire, ";
- #region 产品等级
- //if (finishedProduct.GoodsGrade == null)
- //{
- // sql = sql + " goodsgrade,";
- //}
- //// 最后一个工序如果是检验工序,可更改产品等级
- //else
- //{
- // sql = sql + " :goodsgrade, ";
- // paras.Add(new OracleParameter(":goodsgrade", finishedProduct.GoodsGrade));
- //}
- //如果包装时,产成品未走过成检,则直接视为正品
- int? GoodsLevelTypeID = null;
- int? GoodsLevelID = null;
- if (finishedProduct.GoodsLevelID == null)
- {
- string sqlQuery = @"select GoodsLevelID,GoodsLevelTypeID from TP_MST_GoodsLevel where GoodsLevelTypeID=
- (
- select distinct GoodsLevelTypeID from tp_pm_inproduction where Barcode='" + finishedProduct.BarCode + "'" +
- ") and AccountID=" + sUserInfo.AccountID;
- DataSet ds = oracleTrConn.GetSqlResultToDs(sqlQuery);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- if (ds.Tables[0].Rows[0]["GoodsLevelID"].ToString() != "")
- {
- if (Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelTypeID"]) == 5)//副品
- {
- GoodsLevelTypeID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelTypeID"]);
- GoodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
- }
- else if (Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelTypeID"]) == 4)//正品
- {
- string sqlQuery2 = @"select GoodsLevelID,GoodsLevelTypeID from TP_MST_GoodsLevel where GoodsLevelTypeID=4 and AccountID=" + sUserInfo.AccountID;
- ds = oracleTrConn.GetSqlResultToDs(sqlQuery2);
- if (ds.Tables[0].Rows[0]["GoodsLevelID"].ToString() != "")
- {
- GoodsLevelTypeID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelTypeID"]);
- GoodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
- }
- }
- else
- {
- GoodsLevelTypeID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelTypeID"]);
- GoodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
- }
- }
- }
- else
- {
- string sqlQuery2 = @"select GoodsLevelID,GoodsLevelTypeID from TP_MST_GoodsLevel where GoodsLevelTypeID=4 and AccountID=" + sUserInfo.AccountID;
- ds = oracleTrConn.GetSqlResultToDs(sqlQuery2);
- if (ds.Tables[0].Rows[0]["GoodsLevelID"].ToString() != "")
- {
- GoodsLevelTypeID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelTypeID"]);
- GoodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
- }
- }
- }
- if (finishedProduct.GoodsLevelID == null)
- {
- //sql = sql + " GoodsLevelID,";
- // 包装后,这个值并没有,这里的值除了在检验的时候会给赋值,其它工序应该没有设置,所以查询了一次
- ////// sql = sql + @"
- ////// (select GoodsLevelID from TP_MST_GoodsLevel where GoodsLevelTypeID=
- ////// (
- ////// select distinct GoodsLevelTypeID from tp_pm_inproduction where Barcode=:barcode
- ////// ) and AccountID=:AccountID),";
- sql = sql + GoodsLevelID.ToString() + " ,";
- }
- // 最后一个工序如果是检验工序,可更改产品等级
- else
- {
- sql = sql + " :GoodsLevelID, ";
- paras.Add(new OracleParameter(":GoodsLevelID", finishedProduct.GoodsLevelID));
- }
- if (finishedProduct.GoodsLevelTypeID == null)
- {
- //sql = sql + " GoodsLevelTypeID,";
- sql = sql + GoodsLevelTypeID.ToString() + " ,";
- }
- // 最后一个工序如果是检验工序,可更改产品等级
- else
- {
- sql = sql + " :GoodsLevelTypeID, ";
- paras.Add(new OracleParameter(":GoodsLevelTypeID", finishedProduct.GoodsLevelTypeID));
- }
- #endregion
- sql = sql + " goodsid, "
- + " goodscode, "
- + " goodsname, "
- + " groutingdailyid, "
- + " groutingdailydetailid, "
- + " groutingdate, "
- + " groutinglineid, "
- + " groutinglinecode, "
- + " groutinglinename, "
- + " gmouldtypeid, "
- + " groutinglinedetailid, "
- + " groutingmouldcode, "
- + " mouldcode, "
- + " fun_cmn_getaccountdate(accountid), "
- + " accountid, "
- + " :createuserid, "
- + " :updateuserid, "
- + " groutinguserid, "
- + " groutingusercode, "
- + " groutingnum, "
- + " kilnid, "
- + " kilncode, "
- + " kilnname, "
- + " kilncarid, "
- + " kilncarcode, "
- + " kilncarname, "
- + " kilncarbatchno, "
- + " kilncarposition, "
- + " specialRepairflag, "
- + " logoid, "
- + " (select OnlyCode from tp_pm_groutingdailydetail where barcode=:barcode), :finishedloadbatchno"
- + " from tp_pm_inproduction "
- + " where Barcode=:barcode";
- #endregion
- paras.Add(new OracleParameter(":createuserid", sUserInfo.UserID));
- paras.Add(new OracleParameter(":updateuserid", sUserInfo.UserID));
- paras.Add(new OracleParameter(":barcode", finishedProduct.BarCode));
- paras.Add(new OracleParameter(":finishedloadbatchno", finishedloadbatchno));
- //}
- //paras.Add(new OracleParameter(":AccountID", sUserInfo.AccountID));
- int result = oracleTrConn.ExecuteNonQuery(sql, paras.ToArray());
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 保存成功返回null
- return null;
- }
- /// <summary>
- /// 添加在产产品数据
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="inProduction">在产产品实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="isSendBody">是否交坯</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddInProduction(IDBTransaction oracleTrConn, InProductionEntity inProduction, SUserInfo sUserInfo, DataSet _dsDataset, bool isSendBody = false)
- {
- #region SQL
- string sqlExist = "select 1 from tp_pm_inproduction where barcode = :barcode ";
- OracleParameter[] parasExist = new OracleParameter[] {
- new OracleParameter(":barcode",inProduction.BarCode.Trim()),
- };
- DataSet dsresult = oracleTrConn.GetSqlResultToDs(sqlExist, parasExist);
- if (dsresult != null && dsresult.Tables[0].Rows.Count == 0)
- {
- // 获取生产线ID,生产线名称,生产编码
- string sql = @"select TP_PC_ProductionLine.ProductionLineID,TP_PC_ProductionLine.ProductionLineCode,TP_PC_ProductionLine.ProductionLineName
- from TP_PC_Procedure inner join TP_PC_ProductionLine
- on TP_PC_Procedure.ProductionLineID=TP_PC_ProductionLine.ProductionLineID
- where TP_PC_Procedure.ProcedureID=:ProcedureID
- ";
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":ProcedureID",inProduction.FlowProcedureID),
- };
- dsresult = oracleTrConn.GetSqlResultToDs(sql, paras);
- #region 获取生产线信息
- int ProductionLineID = 0;//生产线ID
- string ProductionLineCode = "", ProductionLineName = "";//生产线名称,编码
- if (dsresult != null && dsresult.Tables[0].Rows.Count > 0)
- {
- ProductionLineID = Convert.ToInt32(dsresult.Tables[0].Rows[0]["ProductionLineID"]);
- ProductionLineCode = dsresult.Tables[0].Rows[0]["ProductionLineCode"].ToString();
- ProductionLineName = dsresult.Tables[0].Rows[0]["ProductionLineName"].ToString();
- }
- #endregion
- #region 获取注浆信息
- // sql = @"select
- // TP_PM_GroutingDailyDetail.UserID as GroutingUserID,
- // TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
- // TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
- // TP_PM_GroutingDailyDetail.GroutingMouldCode,
- // TP_PM_GroutingDailyDetail.MouldCode,
- // TP_PM_GroutingDailyDetail.GroutingDailyID,
- // TP_PM_GroutingDailyDetail.GroutingDailyDetailID,
- // TP_PM_GroutingDailyDetail.GroutingLineID,
- // TP_PM_GroutingDailyDetail.GroutingLineCode,
- // TP_PM_GroutingDailyDetail.GroutingLineName,
- // TP_PM_GroutingDaily.GMouldTypeID,
- // TP_PM_GroutingDaily.CanManyTimes,
- // TP_PM_GroutingDailyDetail.GroutingLineDetailID,
- // TP_PM_GroutingDailyDetail.SpecialRepairflag,
- // TP_PM_GroutingDailyDetail.GoodsID,
- // TP_PM_GroutingDailyDetail.GoodsCode,
- // TP_PM_GroutingDailyDetail.GoodsName,
- // TP_PM_GroutingDailyDetail.GroutingDate
- // from TP_PM_GroutingDaily
- // inner join TP_PM_GroutingDailyDetail
- // on TP_PM_GroutingDaily.GroutingDailyID=TP_PM_GroutingDailyDetail.GroutingDailyID
- // where TP_PM_GroutingDailyDetail.barcode=:barcode";
- // sql = @"select
- // UserID as GroutingUserID,
- // UserCode as GroutingUserCode,
- // GroutingCount as GroutingNum,
- // GroutingMouldCode,
- // MouldCode,
- // GroutingDailyID,
- // GroutingDailyDetailID,
- // GroutingLineID,
- // GroutingLineCode,
- // GroutingLineName,
- // GroutingLineDetailID,
- // SpecialRepairflag,
- // GoodsID,
- // GoodsCode,
- // GoodsName,
- // GroutingDate,
- // (select GMouldTypeID
- // from TP_PM_GroutingDaily
- // where TP_PM_GroutingDaily.GroutingDailyID =
- // TP_PM_GroutingDailyDetail.GroutingDailyID) as GMouldTypeID,
- // (select CanManyTimes
- // from TP_PM_GroutingDaily
- // where TP_PM_GroutingDaily.GroutingDailyID =
- // TP_PM_GroutingDailyDetail.GroutingDailyID) as CanManyTimes
- // from TP_PM_GroutingDailyDetail
- // where TP_PM_GroutingDailyDetail.barcode=:barcode";
- // sql = @"select
- // GroutingUserID,
- // GroutingUserCode,
- // GroutingNum,
- // GroutingMouldCode,
- // MouldCode,
- // GroutingDailyID,
- // GroutingDailyDetailID,
- // GroutingLineID,
- // GroutingLineCode,
- // GroutingLineName,
- // GroutingLineDetailID,
- // SpecialRepairflag,
- // GoodsID,
- // GoodsCode,
- // GoodsName,
- // GroutingDate,
- // GMouldTypeID
- // CanManyTimes
- // from tp_pm_productiondata
- // where tp_pm_productiondata.barcode=:barcode";
- // paras = new OracleParameter[] {
- // new OracleParameter(":barcode",inProduction.BarCode),
- // };
- dsresult = _dsDataset;
- //dsresult = oracleTrConn.GetSqlResultToDs(sql, paras);
- // 产品ID, 注浆登记ID, 注浆明细ID, 成型线ID 成型线类型ID 能否多次注浆 成型生产线明细ID
- int goodsid = 0, groutingDailyID = 0, groutingdailydetailid = 0, groutinglineid = 0, gMouldTypeID = 0, canManyTimes = 0, groutingLineDetailID = 0;
- // 产品编码, 产品名称 成型线编码 成型线名称 注浆模具编号 模具编号
- string goodsCode = "", goodsName = "", groutingLineCode = "", groutingLineName = "", groutingmouldcode = "", mouldCode = "";
- DateTime? groutingdate = null; // 注浆日期
- int groutingUserID = 0, groutingNum = 0; //注浆工号ID,注浆次数
- string groutingUserCode = "";//注浆工号
- int? LogoID = null;
- if (dsresult != null && dsresult.Tables[0].Rows.Count > 0)
- {
- goodsid = Convert.ToInt32(dsresult.Tables[0].Rows[0]["GoodsID"]);
- groutingDailyID = Convert.ToInt32(dsresult.Tables[0].Rows[0]["GroutingDailyID"]);
- groutingdailydetailid = Convert.ToInt32(dsresult.Tables[0].Rows[0]["GroutingDailyDetailID"]);
- groutinglineid = Convert.ToInt32(dsresult.Tables[0].Rows[0]["GroutingLineID"]);
- groutingLineDetailID = Convert.ToInt32(dsresult.Tables[0].Rows[0]["GroutingLineDetailID"]);
- groutingdate = Convert.ToDateTime(dsresult.Tables[0].Rows[0]["GroutingDate"]);
- goodsCode = dsresult.Tables[0].Rows[0]["GoodsCode"].ToString();
- goodsName = dsresult.Tables[0].Rows[0]["GoodsName"].ToString();
- groutingLineCode = dsresult.Tables[0].Rows[0]["GroutingLineCode"].ToString();
- groutingLineName = dsresult.Tables[0].Rows[0]["GroutingLineName"].ToString();
- groutingmouldcode = dsresult.Tables[0].Rows[0]["GroutingMouldCode"].ToString();
- mouldCode = dsresult.Tables[0].Rows[0]["MouldCode"].ToString();
- groutingUserCode = dsresult.Tables[0].Rows[0]["GroutingUserCode"].ToString();
- groutingUserID = Convert.ToInt32(dsresult.Tables[0].Rows[0]["GroutingUserID"]);
- gMouldTypeID = Convert.ToInt32(dsresult.Tables[0].Rows[0]["GMouldTypeID"]);
- canManyTimes = Convert.ToInt32(dsresult.Tables[0].Rows[0]["CanManyTimes"]);
- groutingNum = Convert.ToInt32(dsresult.Tables[0].Rows[0]["GroutingNum"]);
- if (dsresult.Tables[0].Rows[0]["logoid"].ToString() != "")
- {
- LogoID = Convert.ToInt32(dsresult.Tables[0].Rows[0]["logoid"]);
- }
- }
- #endregion
- sql = " insert into tp_pm_inproduction"
- + " ( barcode,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " proceduremodel,"
- + " modeltype,"
- + " ispublicbody,"
- + " goodsid,"
- + " goodscode,"
- + " goodsname,"
- + " userid,"
- + " groutingdailyid,"
- + " groutingdailydetailid,"
- + " groutingdate,"
- + " groutinglineid,"
- + " groutinglinecode,"
- + " groutinglinename,"
- + " gmouldtypeid,"
- + " canmanytimes,"
- + " groutinglinedetailid,"
- + " groutingmouldcode,"
- + " mouldcode,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid,GoodsLevelTypeID,"
- + " GroutingUserID,"
- + " GroutingUserCode,"
- + " GroutingNum,"
- + " SpecialRepairflag,"
- + " FlowProcedureID,"
- + " FlowProcedureTime,"
- + " ProcedureID,"
- + " ProcedureTime,"
- + " ProductionDataID,logoid"
- + " ) values ("
- + " :barcode,"
- + " :productionlineid,"
- + " :productionlinecode,"
- + " :productionlinename,"
- + " :procedureModel,"
- + " :modelType,"
- + " :isPublicBody,"
- + " :goodsid,"
- + " :goodscode,"
- + " :goodsname,"
- + " :userID,"
- + " :groutingdailyid,"
- + " :groutingdailydetailid,"
- + " :groutingdate,"
- + " :groutinglineid,"
- + " :groutinglinecode,"
- + " :groutinglinename,"
- + " :gmouldtypeid,"
- + " :canmanytimes,"
- + " :groutinglinedetailid,"
- + " :groutingmouldcode,"
- + " :mouldcode,"
- + " :accountID,"
- + " :createUserID,"
- + " :updateUserID,"
- + " null,"
- + " :groutinguserid,"
- + " :groutingusercode,"
- + " :groutingnum,"
- + " :specialRepairflag,"
- + " :flowProcedureID,"
- + " sysdate,"
- + " :procedureID,"
- + " sysdate,"
- + " :productionDataID,:logoid"
- + " ) ";
- #endregion
- paras = new OracleParameter[] {
- new OracleParameter(":procedureModel",inProduction.ProcedureModel),
- new OracleParameter(":modelType",inProduction.ModelType),
- new OracleParameter(":isPublicBody",inProduction.IsPublicBody),
- new OracleParameter(":userID",inProduction.UserID),
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- new OracleParameter(":updateUserID",sUserInfo.UserID),
- new OracleParameter(":barcode",inProduction.BarCode),
- new OracleParameter(":specialRepairflag",inProduction.SpecialRepairflag),
- new OracleParameter(":productionlineid",ProductionLineID),//---开始赋值
- new OracleParameter(":productionlinecode",ProductionLineCode),
- new OracleParameter(":productionlinename",ProductionLineName),
- new OracleParameter(":goodsid",goodsid),
- new OracleParameter(":goodscode",goodsCode),
- new OracleParameter(":goodsname",goodsName),
- new OracleParameter(":groutingdailyid",groutingDailyID),
- new OracleParameter(":groutingdailydetailid",groutingdailydetailid),
- new OracleParameter(":groutingdate",groutingdate),
- new OracleParameter(":groutinglineid",groutinglineid),
- new OracleParameter(":groutinglinecode",groutingLineCode),
- new OracleParameter(":groutinglinename",groutingLineName),
- new OracleParameter(":gmouldtypeid",gMouldTypeID),
- new OracleParameter(":canmanytimes",canManyTimes),
- new OracleParameter(":groutinglinedetailid",groutingLineDetailID),
- new OracleParameter(":groutingmouldcode",groutingmouldcode),
- new OracleParameter(":mouldcode",mouldCode),
- new OracleParameter(":groutinguserid",groutingUserID),
- new OracleParameter(":groutingusercode",groutingUserCode),
- new OracleParameter(":groutingnum",groutingNum),
- new OracleParameter(":flowProcedureID",inProduction.FlowProcedureID),
- new OracleParameter(":procedureID",inProduction.FlowProcedureID),
- new OracleParameter(":productionDataID",inProduction.ProductionDataID),
- new OracleParameter(":logoid",LogoID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- //xuwei fix begin
- //2019-09-17
- //更新用过条码
- //交坯=4,在产=3
- string barcodeStatus = isSendBody ? "4" : "3";
- string updateUsedBarCode = "update TP_PM_USEDBARCODE set barcodestatus=" + barcodeStatus + " where barcode='" + inProduction.BarCode + "'";
- oracleTrConn.ExecuteNonQuery(updateUsedBarCode);
- //xuwei end
- }
- // 保存成功返回null
- return null;
- }
- /// <summary>
- /// 根据最大生产数据ID,获取窑车窑炉等信息
- /// </summary>
- /// <param name="oracleTrConn"></param>
- /// <param name="barcode"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- private static DataSet GetFinishCheckKilnCarInfo(IDBTransaction oracleTrConn, string barcode, SUserInfo sUserInfo)
- {
- string sql = @"select
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- to_char(KilnCarBatchNo) as KilnCarBatchNo,
- KilnCarPosition
- from tp_pm_inproduction where barcode=:barcode
- union
- select
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- to_char(KilnCarBatchNo) as KilnCarBatchNo,
- KilnCarPosition
- from TP_PM_InProductionTrash where barcode=:barcode
- ";
- try
- {
- IDataParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":barcode", OracleDbType.Varchar2, barcode, ParameterDirection.Input),
- };
- DataSet returnDs = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (returnDs != null
- && returnDs.Tables.Count > Constant.INT_IS_ZERO
- && returnDs.Tables[0].Rows.Count > Constant.INT_IS_ZERO)
- {
- return returnDs;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 根据最大生产数据ID,获取窑车窑炉等信息
- /// </summary>
- /// <param name="oracleTrConn"></param>
- /// <param name="barcode"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- private static DataSet GetKilnCarInfo(IDBTransaction oracleTrConn, string barcode, SUserInfo sUserInfo)
- {
- // string sql = @"select * from tp_pm_productiondata where Productiondataid=
- // (
- // select nvl(max(Productiondataid),0) Productiondataid from tp_pm_productiondata where barcode=:barcode
- // )";
- // string sql = @"select
- // KilnID,
- // KilnCode,
- // KilnName,
- // KilnCarID,
- // KilnCarCode,
- // KilnCarName,
- // to_char(KilnCarBatchNo) as KilnCarBatchNo,
- // KilnCarPosition
- // from tp_pm_inproduction where barcode=:barcode
- // union
- // select
- // KilnID,
- // KilnCode,
- // KilnName,
- // KilnCarID,
- // KilnCarCode,
- // KilnCarName,
- // to_char(KilnCarBatchNo) as KilnCarBatchNo,
- // KilnCarPosition
- // from TP_PM_InProductionTrash where barcode=:barcode
- //";
- string sql = @"select
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- to_char(KilnCarBatchNo) as KilnCarBatchNo,
- KilnCarPosition
- from tp_pm_inproduction where barcode=:barcode
- ";
- try
- {
- IDataParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":barcode", OracleDbType.Varchar2, barcode, ParameterDirection.Input),
- };
- DataSet returnDs = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (returnDs != null
- && returnDs.Tables.Count > Constant.INT_IS_ZERO
- && returnDs.Tables[0].Rows.Count > Constant.INT_IS_ZERO)
- {
- return returnDs;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 修改在产数据
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="inProduction">在产数据实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string UpdateInProduction(IDBTransaction oracleTrConn, InProductionEntity inProduction, SUserInfo sUserInfo)
- {
- List<OracleParameter> paras = new List<OracleParameter>();
- //paras.Add(new OracleParameter(":completeProcedureID", inProduction.CompleteProcedureID));
- paras.Add(new OracleParameter(":procedureModel", inProduction.ProcedureModel));
- paras.Add(new OracleParameter(":modelType", inProduction.ModelType));
- paras.Add(new OracleParameter(":defectFlag", inProduction.DefectFlag));
- paras.Add(new OracleParameter(":reworkProcedureID", inProduction.ReworkProcedureID));
- paras.Add(new OracleParameter(":flowprocedureid", inProduction.FlowProcedureID));
- paras.Add(new OracleParameter(":procedureID", inProduction.ProcedureID));
- paras.Add(new OracleParameter(":productionDataID", inProduction.ProductionDataID));
- #region SQL
- string sql = " update TP_PM_InProduction "
- //+ " set CompleteProcedureID = :completeProcedureID,"
- + "set ProcedureModel = :procedureModel,"
- + " ModelType = :modelType,"
- + " DefectFlag = :defectFlag,"
- + " flowprocedureid = :flowprocedureid,"
- + " flowproceduretime = sysdate,"
- + " procedureID = :procedureID,"
- + " procedureTime = sysdate,"
- + " productionDataID = :productionDataID,"
- // + " GoodsLevelTypeID = :GoodsLevelTypeID,"
- // 扫码后,返修标识清除
- + " isreworkflag = '0',"
- + " ReworkProcedureID = :reworkProcedureID,";
- #region 只有交坯工序是才传值更改公坯字段
- if (inProduction.IsPublicBody != null)
- {
- sql = sql + " IsPublicBody = :isPublicBody,";
- paras.Add(new OracleParameter(":isPublicBody", inProduction.IsPublicBody));
- }
- #endregion
- #region 只有走特定返工工序时才更改重烧字段
- if (inProduction.IsReFire != null)
- {
- sql = sql + " IsReFire = :isReFire,";
- paras.Add(new OracleParameter(":isReFire", inProduction.IsReFire));
- }
- #endregion
- #region 只有成检时才更新产品分级字段
- //if (inProduction.GoodsGrade != null)
- //{
- // sql = sql + " GoodsGrade = :goodsGrade,";
- // paras.Add(new OracleParameter(":goodsGrade", inProduction.GoodsGrade));
- //}
- if (inProduction.GoodsLevelID != null)
- {
- sql = sql + " GoodsLevelID = :GoodsLevelID,";
- paras.Add(new OracleParameter(":GoodsLevelID", inProduction.GoodsLevelID));
- }
- if (inProduction.GoodsLevelTypeID != null)
- {
- sql = sql + " GoodsLevelTypeID = :GoodsLevelTypeID,";
- paras.Add(new OracleParameter(":GoodsLevelTypeID", inProduction.GoodsLevelTypeID));
- }
- #region 更新窑炉窑车属性
- if (inProduction.ModelType == 1 || inProduction.ModelType == 2 || inProduction.ModelType == 3 || inProduction.ModelType == 4 || inProduction.ModelType == 6)
- {
- sql = sql + " KilnID = :KilnID,";
- paras.Add(new OracleParameter(":KilnID", inProduction.KilnID));
- sql = sql + " KilnCode = :KilnCode,";
- paras.Add(new OracleParameter(":KilnCode", inProduction.KilnCode));
- sql = sql + " KilnName = :KilnName,";
- paras.Add(new OracleParameter(":KilnName", inProduction.KilnName));
- sql = sql + " KilnCarID = :KilnCarID,";
- paras.Add(new OracleParameter(":KilnCarID", inProduction.KilnCarID));
- sql = sql + " KilnCarCode = :KilnCarCode,";
- paras.Add(new OracleParameter(":KilnCarCode", inProduction.KilnCarCode));
- sql = sql + " KilnCarName = :KilnCarName,";
- paras.Add(new OracleParameter(":KilnCarName", inProduction.KilnCarName));
- sql = sql + " KilnCarBatchNo = :KilnCarBatchNo,";
- paras.Add(new OracleParameter(":KilnCarBatchNo", inProduction.KilnCarBatchNo));
- sql = sql + " KilnCarPosition = :KilnCarPosition,";
- paras.Add(new OracleParameter(":KilnCarPosition", inProduction.KilnCarPosition));
- }
- else
- {
- //
- ////////DataSet ds = GetKilnCarInfo(oracleTrConn, inProduction.BarCode, sUserInfo);
- ////////if (ds != null)
- ////////{
- //////// if (ds.Tables[0].Rows[0]["KilnID"].ToString() != "") //表示以前有过窑炉相关信息
- //////// {
- //////// sql = sql + " KilnID = :KilnID,";
- //////// paras.Add(new OracleParameter(":KilnID", Convert.ToInt32(ds.Tables[0].Rows[0]["KilnID"])));
- //////// sql = sql + " KilnCode = :KilnCode,";
- //////// paras.Add(new OracleParameter(":KilnCode", ds.Tables[0].Rows[0]["KilnCode"].ToString()));
- //////// sql = sql + " KilnName = :KilnName,";
- //////// paras.Add(new OracleParameter(":KilnName", ds.Tables[0].Rows[0]["KilnName"].ToString()));
- //////// sql = sql + " KilnCarID = :KilnCarID,";
- //////// paras.Add(new OracleParameter(":KilnCarID", Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarID"])));
- //////// sql = sql + " KilnCarCode = :KilnCarCode,";
- //////// paras.Add(new OracleParameter(":KilnCarCode", ds.Tables[0].Rows[0]["KilnCarCode"].ToString()));
- //////// sql = sql + " KilnCarName = :KilnCarName,";
- //////// paras.Add(new OracleParameter(":KilnCarName", ds.Tables[0].Rows[0]["KilnCarName"].ToString()));
- //////// sql = sql + " KilnCarBatchNo = :KilnCarBatchNo,";
- //////// paras.Add(new OracleParameter(":KilnCarBatchNo", ds.Tables[0].Rows[0]["KilnCarBatchNo"].ToString()));
- //////// sql = sql + " KilnCarPosition = :KilnCarPosition,";
- //////// paras.Add(new OracleParameter(":KilnCarPosition", Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarPosition"])));
- //////// }
- ////////}
- }
- #endregion
- #endregion
- #region 更新在产商标
- if (inProduction.LogoID != null)
- {
- sql = sql + " LogoID = :LogoID,";
- paras.Add(new OracleParameter(":LogoID", inProduction.LogoID));
- }
- #endregion
- sql = sql + " UserID = :userID,"
- + " UpdateUserID = :updateUserID"
- + " where Barcode = :barCode";
- #endregion
- paras.Add(new OracleParameter(":userID", inProduction.UserID));
- paras.Add(new OracleParameter(":updateUserID", sUserInfo.UserID));
- paras.Add(new OracleParameter(":barCode", inProduction.BarCode));
- foreach (var para in paras)
- {
- if (para.Value + "" == "")
- {
- para.Value = DBNull.Value;
- }
- }
- int result = oracleTrConn.ExecuteNonQuery(sql, paras.ToArray());
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 保存成功返回null
- return null;
- }
- /// <summary>
- /// 校验条码有效
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="procedureID">工序ID</param>
- /// <param name="barcode">条码</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <param name="groutingUserID">返回的注浆者ID</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string CheckBarcode(IDBTransaction oracleTrConn,
- int procedureID,
- string barcode,
- out int goodsID,
- out string goodsCode,
- out string goodsName,
- out string groutingUserCode,
- SUserInfo sUserInfo
- )
- {
- try
- {
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter("in_procedureid",OracleDbType.Int32,procedureID,ParameterDirection.Input),
- new OracleParameter("in_barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
- new OracleParameter("out_errMsg",OracleDbType.Varchar2,2000,"",ParameterDirection.Output),
- new OracleParameter("out_goodsID",OracleDbType.Int32,ParameterDirection.Output),
- new OracleParameter("out_goodsCode",OracleDbType.Varchar2,50,"",ParameterDirection.Output),
- new OracleParameter("out_goodsName",OracleDbType.Varchar2,50,"",ParameterDirection.Output),
- new OracleParameter("out_groutingUserCode",OracleDbType.NVarchar2,50,null,ParameterDirection.Output),
- new OracleParameter("out_errMsg_Status",OracleDbType.Varchar2,50,"",ParameterDirection.Output),
- };
- oracleTrConn.ExecStoredProcedure("PRO_PM_CheckBarcode", paras);
- if (!"null".Equals(paras[3].Value + ""))
- {
- goodsID = Convert.ToInt32(paras[3].Value + "");
- }
- else
- {
- goodsID = 0;
- }
- goodsCode = paras[4].Value + "";
- goodsName = paras[5].Value + "";
- if (!"null".Equals(paras[6].Value + ""))
- {
- groutingUserCode = paras[6].Value + "";
- }
- else
- {
- groutingUserCode = null;
- }
- if ("null".Equals(paras[2].Value + ""))
- {
- return null;
- }
- return paras[2].Value.ToString().Replace("\\n\\r", "\n\r");
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 查询工序信息
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="procedureID">工序ID</param>
- /// <returns>工序实体</returns>
- private static ProcedureEntity GetProcedurByID(IDBTransaction oracleTrConn, int procedureID)
- {
- ProcedureEntity procedureEntity = new ProcedureEntity();
- string procsql = "pro_pm_searchProcedurbyID";
- try
- {
- IDataParameter[] paras = new OracleParameter[]
- {
- new OracleParameter("in_procedureID", OracleDbType.Int32, procedureID, ParameterDirection.Input),
- new OracleParameter("out_result", OracleDbType.RefCursor, ParameterDirection.Output)
- };
- DataSet returnDs = oracleTrConn.ExecStoredProcedure(procsql, paras);
- if (returnDs != null
- && returnDs.Tables.Count > Constant.INT_IS_ZERO
- && returnDs.Tables[0].Rows.Count > Constant.INT_IS_ZERO)
- {
- DataRow row = returnDs.Tables[0].Rows[0];
- // 转实体
- procedureEntity = DataConvert.DataRowConvertToObject<ProcedureEntity>(row);
- return procedureEntity;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- #endregion
- #region 检验
- /// <summary>
- /// 保存条码信息
- /// </summary>
- /// <param name="procedureID">工序ID</param>
- /// <param name="productionDataEntitys">生产数据集</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- public static string AddCheckBarcode(int procedureID, ProductionDataEntity[] productionDataEntitys, SUserInfo sUserInfo)
- {
- string errMsg = "";
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 查询工序信息
- ProcedureEntity procedure = GetProcedurByID(oracleTrConn, procedureID);
- #endregion
- #region 标准检验(半成品)
- if (procedure.ModelType == (int)Constant.ProcedureModelType.Normal)
- {
- errMsg = AddNormalCheck(oracleTrConn, procedure, productionDataEntitys, sUserInfo);
- }
- #endregion
- #region 成品检验
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.QualityStatistics)
- {
- errMsg = AddFinishCheckPDA(oracleTrConn, procedure, productionDataEntitys, sUserInfo);
- }
- #endregion
- #region 半检 与成检相同处理 xuwei add 2019-12-12
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.SemiQualityStatistics)
- {
- errMsg = AddFinishCheckPDA(oracleTrConn, procedure, productionDataEntitys, sUserInfo);
- }
- #endregion
- #region 入窑前检验
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.IntoKilnCheck)
- {
- errMsg = AddIntoKilnCheck(oracleTrConn, procedure, productionDataEntitys, sUserInfo);
- }
- #endregion
- // 没有错误 提交事务
- if (string.IsNullOrEmpty(errMsg))
- {
- oracleTrConn.Commit();
- }
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return errMsg;
- }
- /// <summary>
- /// 入窑前检验
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="procedure">工序</param>
- /// <param name="productionDataEntitys">生产数据集</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddIntoKilnCheck(IDBTransaction oracleTrConn, ProcedureEntity procedure, ProductionDataEntity[] productionDataEntitys, SUserInfo sUserInfo)
- {
- string errMsg = "";
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- #region 查询产品分级
- string sqlGoodsLevel = "select GoodsLevelID,GoodsLevelTypeID from TP_MST_GoodsLevel where AccountID=:accountID and ValueFlag=1";
- DataTable goodsLevelTable = oracleTrConn.GetSqlResultToDt(sqlGoodsLevel, new OracleParameter[] { new OracleParameter(":accountID", sUserInfo.AccountID) });
- #endregion
- foreach (ProductionDataEntity productionData in productionDataEntitys)
- {
- if (string.IsNullOrEmpty(productionData.Barcode))
- {
- throw new Exception("传入的条码号为空");
- }
- if (productionData.ProductionDataID != 0)
- {
- errMsg = DeleteSubstandardToSubstandardByID(oracleTrConn, productionData.ProductionDataID, productionData.Barcode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- // 删除报废条码
- string updateScrapSql = @"update tp_pm_scrapproduct set ValueFlag=0
- where tp_pm_scrapproduct.barcode=:barcode";
- OracleParameter[] ScrapProductparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, productionData.Barcode,ParameterDirection.Input),
- };
- oracleTrConn.ExecuteNonQuery(updateScrapSql, ScrapProductparas);
- string sqlInsInProdString = @"insert into TP_PM_InProduction(BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE, REWORKPROCEDUREID,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, UPDATEUSERID,
- ISREFIRE, GOODSLEVELID, GOODSLEVELTYPEID, DEFECTFLAG,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,SpecialRepairFlag,FlowProcedureID
- ,FlowProcedureTime,ProcedureID,ProcedureTime,ProductionDataID,logoid,IsReworkFlag,SemiCheckID)
- select BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE, REWORKPROCEDUREID,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, :UpdateUserID,
- ISREFIRE, GOODSLEVELID, GOODSLEVELTYPEID, DEFECTFLAG,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,SpecialRepairFlag,FlowProcedureID ,
- FlowProcedureTime,ProcedureID,sysdate,ProductionDataID,logoid,IsReworkFlag,SemiCheckID
- from TP_PM_InProductionTrash where barcode=:barcode ";
- OracleParameter[] InProductparas = new OracleParameter[]{
- new OracleParameter(":UpdateUserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2, productionData.Barcode,ParameterDirection.Input),
- };
- oracleTrConn.ExecuteNonQuery(sqlInsInProdString, InProductparas);
- //删除回收站中的条码
- string sqlDelInProductTrashString = "delete from TP_PM_InProductionTrash where barcode=:barcode ";
- OracleParameter[] TrashProductparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, productionData.Barcode,ParameterDirection.Input)
- };
- oracleTrConn.ExecuteNonQuery(sqlDelInProductTrashString, TrashProductparas);
- }
- int goodsID = Constant.INT_IS_ZERO;
- string goodsCode = string.Empty;
- string goodsName = string.Empty;
- // 注浆者工号
- string groutingUserCode = string.Empty;
- #region 校验条码有效性
- errMsg = CheckBarcode(oracleTrConn, procedure.ProcedureID, productionData.Barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- if (productionData.ProductionDataID == 0)
- return errMsg;
- }
- #endregion
- #region 获得产品分级ID
- DataRow[] dr = goodsLevelTable.Select("GoodsLevelTypeID=" + productionData.GoodsLevelTypeID);
- // 获得产品分级ID
- productionData.GoodsLevelID = Convert.ToInt32(dr[0]["GoodsLevelID"]);
- #endregion
- // 查询新插入的生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- int productionDataID = 0;
- if (!string.IsNullOrEmpty(idStr))
- {
- productionDataID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- int? ClassesSettingID = null;//班次配置ID
- #region 添加生产者数据
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, productionData.UserID, productionData.UserName, sUserInfo, ref ClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 添加生产数据
- #region 属性赋值
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = Convert.ToInt32(idStr);
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.ProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, productionData.Barcode);
- productionData.IsReFire = (int)Constant.ReFireFlag.No;
- productionData.GoodsGrade = (int)Constant.GoodsGrade.Good;
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = goodsID;
- productionData.GoodsCode = goodsCode;
- productionData.GoodsName = goodsName;
- productionData.GoodsLevelID = productionData.GoodsLevelID;
- productionData.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- //如果报废给此产品最状态赋值 wangxin 2015/4/1 因为删除掉了生产数据表中的产品最终状态
- ////if (productionData.ProductionDefects != null)
- ////{
- //// foreach (ProductionDefectEntity productionDefect in productionData.ProductionDefects)
- //// {
- //// if ((string.IsNullOrEmpty(productionDefect.ScrapResponFlag) ? "0" : productionDefect.ScrapResponFlag) == "1")
- //// {
- //// productionData.GoodsEnding = productionData.GoodsLevelTypeID.ToString();
- //// break;
- //// }
- //// }
- ////}
- ////if (productionData.GoodsLevelTypeID == (int)Constant.GoodsLevelType.Waste)
- ////{
- //// productionData.GoodsEnding = Constant.GoodsLevelType.Waste.GetHashCode().ToString();
- ////}
- ////// string sqlReFire = @"select
- ////// isrefire
- ////// from tp_pm_inproduction where barcode=:barcode
- ////// ";
- ////// OracleParameter[] ReFireparas = new OracleParameter[] {
- ////// new OracleParameter(":barcode",productionData.Barcode),
- ////// };
- ////// DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire, ReFireparas);
- ////// //DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire);
- ////// if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- ////// {
- ////// if (Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]) > 0)
- ////// {
- ////// productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- ////// }
- ////// }
- #endregion
- string OutSpecialRepairflag = "0";//干补标识
- //errMsg = AddProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- errMsg = AddProductionDataWaster(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //#region 添加生产者数据
- //errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, productionData.UserID, productionData.UserName, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- #region 条码有缺陷
- // 废品标识
- bool scrapFlag = false;
- // 存在缺陷 插入缺陷表
- if (productionData.ProductionDefects != null)
- {
- foreach (ProductionDefectEntity productionDefect in productionData.ProductionDefects)
- {
- #region 保存缺陷
- productionDefect.ProductionDataID = productionDataID;
- productionDefect.BarCode = productionData.Barcode;
- productionDefect.ProductionLineID = procedure.ProductionLineID;
- productionDefect.ProductionLineCode = procedure.ProductionlineCode;
- productionDefect.ProductionLineName = procedure.ProductionlineName;
- productionDefect.ProcedureID = procedure.ProcedureID;
- productionDefect.ProcedureCode = procedure.ProcedureCode;
- productionDefect.ProcedureName = procedure.ProcedureName;
- productionDefect.UserID = productionData.UserID;
- productionDefect.UserCode = productionData.UserCode;
- productionDefect.UserName = productionData.UserName;
- productionDefect.GoodsID = productionData.GoodsID;
- productionDefect.GoodsCode = productionData.GoodsCode;
- productionDefect.GoodsName = productionData.GoodsName;
- productionData.Remarks = productionData.Remarks;
- productionDefect.ScrapResponFlag
- = string.IsNullOrEmpty(productionDefect.ScrapResponFlag) ? "0" : productionDefect.ScrapResponFlag;
- // 保存缺陷
- errMsg = AddDefect(oracleTrConn, productionDefect, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 缺陷列表中只有一个报废工序 添加废弃产品 删除在产产品数据
- if (!scrapFlag && productionDefect.ScrapResponFlag == "1")
- {
- scrapFlag = true;
- #region 添加废弃产品 删除在产产品数据
- #region 添加废弃产品
- ScrapProductEntity scrapProduct = new ScrapProductEntity();
- #region 属性赋值
- scrapProduct.BarCode = productionData.Barcode;
- scrapProduct.ScrapType = Constant.ScrapType.Waste.GetHashCode();
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- scrapProduct.ResponType = Constant.ScrapResponType.NoPerson.GetHashCode();
- }
- else
- {
- scrapProduct.ResponType = Constant.ScrapResponType.Procedure.GetHashCode();
- }
- scrapProduct.ScrapDate = accountDate;
- scrapProduct.Rreason = Constant.SCRAPTYPE_WASTE;
- scrapProduct.Remarks = productionDefect.Remarks;
- scrapProduct.AuditStatus = Constant.AuditStatus.Agree.GetHashCode();
- scrapProduct.Auditor = sUserInfo.UserID;
- scrapProduct.AuditlDate = accountDate;
- scrapProduct.AccountDate = accountDate;
- scrapProduct.GoodsLevelID = productionData.GoodsLevelID;
- scrapProduct.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- scrapProduct.IsPublicBody = productionData.IsPublicBody;
- string sqlScrapProduct = "select SEQ_PM_ScrapProduct_ID.nextval from dual";
- string idStrScrapProduct = oracleTrConn.GetSqlResultToStr(sqlScrapProduct);
- scrapProduct.ScrapProductID = Convert.ToInt32(idStrScrapProduct);
- scrapProduct.ScrapType = 1;
- #endregion
- // 保存报废
- errMsg = AddScrapProduct(oracleTrConn, scrapProduct, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 添加责任工序
- //xuwei fix 2019-09-24 按新规则重新校准NodeType.Begin使后续NodeType.Begin判定是准确的
- //xuwei fix 2019-09-26 使用通用方法判定
- if (IsNodeBegin<IDBTransaction>(oracleTrConn, productionData.Barcode) == 1)
- procedure.NodeType = (int)Constant.ProcedureNodeType.Begin;
- if (procedure.NodeType != Constant.ProcedureNodeType.Begin.GetHashCode())
- {
- //string sqlScrapProduct = "select SEQ_PM_ScrapProduct_ID.Currval from dual";
- //string idStrScrapProduct = oracleTrConn.GetSqlResultToStr(sqlScrapProduct);
- ResponProcedureEntity responProce = new ResponProcedureEntity();
- #region 属性赋值
- responProce.BarCode = productionData.Barcode;
- responProce.ProductionDataID = productionDataID;
- responProce.ProductionLineID = productionDefect.ProductionLineID;
- responProce.ProductionLineCode = productionDefect.ProductionLineCode;
- responProce.ProductionLineName = productionDefect.ProductionLineName;
- responProce.ProcedureID = productionDefect.DefectProcedureID;
- responProce.ProcedureCode = productionDefect.DefectProcedureCode;
- responProce.ProcedureName = productionDefect.DefectProcedureName;
- responProce.UserID = productionDefect.DefectUserID;
- responProce.UserCode = productionDefect.DefectUserCode;
- responProce.UserName = productionDefect.DefectUserName;
- responProce.Remarks = productionDefect.Remarks;
- responProce.ScrapProductID = Convert.ToInt32(idStrScrapProduct);
- #endregion
- // 保存责任工序
- errMsg = AddResponProcedure(oracleTrConn, responProce, productionDefect, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- }
- #endregion
- #region 删除在产产品数据
- InProductionEntity delInProductionEntity = new InProductionEntity();
- delInProductionEntity.BarCode = productionData.Barcode;
- delInProductionEntity.CompleteProcedureID = productionData.ProcedureID;
- // 执行删除 在产数据
- errMsg = DeleteInProduction(oracleTrConn, delInProductionEntity, false, sUserInfo);
- // 执行失败
- // if (!string.IsNullOrEmpty(errMsg)) 注释日期2015-12-28
- // {
- // return errMsg;
- // }
- #endregion
- #endregion
- }
- #endregion
- }
- }
- #endregion
- // 条码有缺陷或者报废
- //wangxin 20150414
- //if (scrapFlag || productionData.GoodsLevelTypeID == Constant.GoodsLevelType.Defect.GetHashCode())
- //{
- #region 有缺陷 删除条码对应窑车产品
- if (productionData.DefectFlag == Constant.GoodsLevelType.Defect.GetHashCode())
- {
- errMsg = DeleteKilnCarGoods(oracleTrConn, productionData.Barcode);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- }
- #endregion
- //}
- //wangxin 20150414 end
- // 条码没有报废
- if (!scrapFlag)
- {
- #region 修改在产产品数据的当前工序
- InProductionEntity inProductionEntity = new InProductionEntity();
- inProductionEntity.BarCode = productionData.Barcode;
- //流程工序
- inProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- //inProductionEntity.CompleteProcedureID = procedure.ProcedureID;
- inProductionEntity.ProcedureID = procedure.ProcedureID;
- // 生产数据ID
- inProductionEntity.ProductionDataID = productionDataID;
- // 工序模型
- inProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- inProductionEntity.ModelType = procedure.ModelType;
- // 生产工号
- inProductionEntity.UserID = productionData.UserID;
- // 缺陷标识
- inProductionEntity.DefectFlag = productionData.DefectFlag;
- // 返工工序ID
- inProductionEntity.ReworkProcedureID = productionData.ReworkProcedureID;
- inProductionEntity.GoodsLevelID = productionData.GoodsLevelID;
- inProductionEntity.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- inProductionEntity.IsPublicBody = productionData.IsPublicBody;
- // 执行修改
- errMsg = UpdateInProduction(oracleTrConn, inProductionEntity, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- }
- return errMsg;
- }
- /// <summary>
- /// 删除窑车产品
- /// </summary>
- /// <param name="oracleTrConn">数据连接</param>
- /// <param name="barcode">产品条码</param>
- /// <returns>string</returns>
- private static string DeleteKilnCarGoods(IDBTransaction oracleTrConn, string barcode)
- {
- string sql = "delete TP_PM_KilnCarGoods where BarCode = :barcode";
- OracleParameter[] paras = new OracleParameter[] { new OracleParameter(":barcode", barcode) };
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- //return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- return null;
- }
- /// <summary>
- /// 添加成品编辑
- /// </summary>
- /// <param name="oracleTrConn">数据连接</param>
- /// <param name="procedure">工序对象</param>
- /// <param name="productionDataEntitys">生产数据集</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- //private static string AddFinishCheck(IDBTransaction oracleTrConn, ProcedureEntity procedure, ProductionDataEntity[] productionDataEntitys, SUserInfo sUserInfo)
- //{
- // string errMsg = "";
- // // 获得账务日期
- // DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- // // 本批采集的批次号
- // string centralizedBatchNo = System.Guid.NewGuid().ToString();
- // foreach (ProductionDataEntity productionData in productionDataEntitys)
- // {
- // if (string.IsNullOrEmpty(productionData.Barcode))
- // {
- // throw new Exception("传入的条码号为空");
- // }
- // int goodsID = Constant.INT_IS_ZERO;
- // string goodsCode = string.Empty;
- // string goodsName = string.Empty;
- // // 注浆者工号
- // string groutingUserCode = string.Empty;
- // // 次品标识
- // bool substandardFlag = false;
- // #region 校验条码有效性
- // errMsg = CheckBarcode(oracleTrConn, procedure.ProcedureID, productionData.Barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- // if (!string.IsNullOrEmpty(errMsg))
- // {
- // if (productionData.ProductionDataID == 0)
- // return errMsg;
- // }
- // #endregion
- // #region 添加生产数据
- // #region 属性赋值
- // productionData.CentralizedBatchNo = centralizedBatchNo;
- // productionData.ProductionLineID = procedure.ProductionLineID;
- // productionData.ProductionLineCode = procedure.ProductionlineCode;
- // productionData.ProductionLineName = procedure.ProductionlineName;
- // productionData.CompleteProcedureID = procedure.ProcedureID;
- // productionData.ProcedureCode = procedure.ProcedureCode;
- // productionData.ProcedureName = procedure.ProcedureName;
- // productionData.ProcedureModel = procedure.ProcedureModel;
- // productionData.ModelType = procedure.ModelType;
- // productionData.IsPublicBody = (int)Constant.PublicBodyFlag.No;
- // // 重烧
- // if (productionData.GoodsLevelTypeID == (int)Constant.GoodsLevelType.ReFire)
- // {
- // //productionData.GoodsLevelID = null;
- // productionData.IsReFire = (int)Constant.ReFireFlag.No;
- // }
- // // 次品
- // else if (productionData.GoodsLevelTypeID == (int)Constant.GoodsLevelType.Reject)
- // {
- // //productionData.GoodsLevelID = null;
- // substandardFlag = true;
- // }
- // // 查询新插入的生产数据ID
- // if (productionData.GoodsLevelTypeID != (int)Constant.GoodsLevelType.ReFire)
- // {
- // //不加条件valueflag,是因为,成检后重烧走过之后,在次重烧,以后也是重烧状态
- // //string sqlReFire = "select * from tp_PM_ProductionData where ProductionData=(select max(ProductionDataid) from ProductionData where barcode=" + productionData.Barcode + " and ProcedureID=" + productionData.ProcedureID + ")";
- // string sqlReFire = "select * from tp_PM_ProductionData where ProductionDataid=(select max(ProductionDataid) from tp_PM_ProductionData where barcode='" + productionData.Barcode + "')";
- // DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire);
- // if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- // {
- // productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- // }
- // }
- // productionData.OrganizationID = procedure.OrganizationID;
- // productionData.GoodsID = goodsID;
- // productionData.GoodsCode = goodsCode;
- // productionData.GoodsName = goodsName;
- // productionData.GoodsLevelID = productionData.GoodsLevelID;
- // productionData.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- // //if (productionData.GoodsLevelTypeID == (int)Constant.GoodsLevelType.Reject)
- // //{
- // // productionData.GoodsEnding = Constant.GoodsLevelType.Reject.GetHashCode().ToString();
- // //}
- // #endregion
- // string OutSpecialRepairflag = "0";//干补标识
- // errMsg = AddProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- // if (!string.IsNullOrEmpty(errMsg))
- // {
- // return errMsg;
- // }
- // // 查询新插入的生产数据ID
- // string sql = "select SEQ_PM_ProductionData_ID.Currval from dual";
- // string idStr = oracleTrConn.GetSqlResultToStr(sql);
- // // 新插入的班次配置表ID
- // int productionDataID = 0;
- // if (!string.IsNullOrEmpty(idStr))
- // {
- // productionDataID = int.Parse(idStr);
- // }
- // else
- // {
- // return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- // }
- // #endregion
- // #region 添加生产者数据
- // int? ClassesSettingID = null;//班次配置ID
- // errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, productionData.UserID, productionData.UserName, sUserInfo, ref ClassesSettingID);
- // if (!string.IsNullOrEmpty(errMsg))
- // {
- // return errMsg;
- // }
- // #endregion
- // #region 条码有缺陷
- // #region 是次品 添加废弃产品
- // if (substandardFlag)
- // {
- // #region 添加废弃产品
- // ScrapProductEntity scrapProduct = new ScrapProductEntity();
- // #region 属性赋值
- // scrapProduct.BarCode = productionData.Barcode;
- // scrapProduct.ScrapType = Constant.ScrapType.Substandard.GetHashCode();
- // scrapProduct.ResponType = Constant.ScrapResponType.Procedure.GetHashCode();
- // scrapProduct.ScrapDate = accountDate;
- // scrapProduct.Rreason = Constant.SCRAPTYPE_SUBSTANDARD;
- // scrapProduct.AuditStatus = Constant.AuditStatus.Agree.GetHashCode();
- // scrapProduct.Auditor = sUserInfo.UserID;
- // scrapProduct.AuditlDate = accountDate;
- // scrapProduct.AccountDate = accountDate;
- // scrapProduct.GoodsLevelID = productionData.GoodsLevelID;
- // scrapProduct.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- // #endregion
- // // 保存报废
- // errMsg = AddScrapProduct(oracleTrConn, scrapProduct, sUserInfo);
- // // 保存失败
- // if (!string.IsNullOrEmpty(errMsg))
- // {
- // return errMsg;
- // }
- // #endregion
- // }
- // #endregion
- // // 存在缺陷 插入缺陷表
- // if (productionData.ProductionDefects != null)
- // {
- // foreach (ProductionDefectEntity productionDefect in productionData.ProductionDefects)
- // {
- // #region 保存缺陷
- // productionDefect.ProductionDataID = productionDataID;
- // productionDefect.BarCode = productionData.Barcode;
- // productionDefect.ProductionLineID = procedure.ProductionLineID;
- // productionDefect.ProductionLineCode = procedure.ProductionlineCode;
- // productionDefect.ProductionLineName = procedure.ProductionlineName;
- // productionDefect.ProcedureID = procedure.ProcedureID;
- // productionDefect.ProcedureCode = procedure.ProcedureCode;
- // productionDefect.ProcedureName = procedure.ProcedureName;
- // productionDefect.UserID = productionData.UserID;
- // productionDefect.UserCode = productionData.UserCode;
- // productionDefect.UserName = productionData.UserName;
- // productionDefect.GoodsID = productionData.GoodsID;
- // productionDefect.GoodsCode = productionData.GoodsCode;
- // productionDefect.GoodsName = productionData.GoodsName;
- // productionData.Remarks = productionData.Remarks;
- // productionDefect.ScrapResponFlag
- // = string.IsNullOrEmpty(productionDefect.ScrapResponFlag) ? "0" : productionDefect.ScrapResponFlag;
- // // 保存缺陷
- // errMsg = AddDefect(oracleTrConn, productionDefect, sUserInfo);
- // if (!string.IsNullOrEmpty(errMsg))
- // {
- // return errMsg;
- // }
- // #endregion
- // #region 是次品 添加废弃责任工序
- // if (substandardFlag)
- // {
- // #region 添加责任工序
- // ResponProcedureEntity responProce = new ResponProcedureEntity();
- // // 查询新插入的废弃ID
- // string ResponProceduresql = "select SEQ_PM_ScrapProduct_ID.Currval from dual";
- // string ResponProcedureidStr = oracleTrConn.GetSqlResultToStr(ResponProceduresql);
- // #region 属性赋值
- // responProce.BarCode = productionData.Barcode;
- // responProce.ProductionDataID = productionDataID;
- // responProce.ProductionLineID = productionDefect.ProductionLineID;
- // responProce.ProductionLineCode = productionDefect.ProductionLineCode;
- // responProce.ProductionLineName = productionDefect.ProductionLineName;
- // responProce.ProcedureID = productionDefect.DefectProcedureID;
- // responProce.ProcedureCode = productionDefect.DefectProcedureCode;
- // responProce.ProcedureName = productionDefect.DefectProcedureName;
- // responProce.UserID = productionDefect.DefectUserID;
- // responProce.UserCode = productionDefect.DefectUserCode;
- // responProce.UserName = productionDefect.DefectUserName;
- // responProce.Remarks = productionDefect.Remarks;
- // responProce.ScrapProductID = Convert.ToInt32(ResponProcedureidStr);
- // #endregion
- // // 保存责任工序
- // errMsg = AddResponProcedure(oracleTrConn, responProce, productionDefect, sUserInfo);
- // // 保存失败
- // if (!string.IsNullOrEmpty(errMsg))
- // {
- // return errMsg;
- // }
- // #endregion
- // }
- // #endregion
- // }
- // }
- // #endregion
- // #region 条码是次品 删除在产产品数据
- // if (substandardFlag)
- // {
- // #region 删除在产产品数据
- // InProductionEntity delInProductionEntity = new InProductionEntity();
- // delInProductionEntity.BarCode = productionData.Barcode;
- // // 执行删除 在产数据
- // errMsg = DeleteInProduction(oracleTrConn, delInProductionEntity, false, sUserInfo);
- // // 执行失败
- // if (!string.IsNullOrEmpty(errMsg))
- // {
- // return errMsg;
- // }
- // #endregion
- // }
- // #endregion
- // #region 条码不是次品
- // if (!substandardFlag)
- // {
- // #region 中间工序/重烧 修改在产产品数据
- // if (procedure.NodeType == (int)Constant.ProcedureNodeType.Middle
- // || productionData.IsReFire == Constant.GoodsGrade.ReFire.GetHashCode())
- // {
- // #region 修改在产产品数据的当前工序
- // InProductionEntity inProductionEntity = new InProductionEntity();
- // inProductionEntity.BarCode = productionData.Barcode;
- // // 当前工序
- // inProductionEntity.CompleteProcedureID = procedure.ProcedureID;
- // // 工序模型
- // inProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // // 工序类别
- // inProductionEntity.ModelType = procedure.ModelType;
- // // 生产工号
- // inProductionEntity.UserID = productionData.UserID;
- // // 重烧
- // inProductionEntity.IsReFire = productionData.IsReFire;
- // // 缺陷
- // inProductionEntity.DefectFlag = productionData.DefectFlag;
- // // 产品分级
- // inProductionEntity.GoodsGrade = productionData.GoodsGrade;
- // // 返工工序ID
- // inProductionEntity.ReworkProcedureID = productionData.ReworkProcedureID;
- // inProductionEntity.GoodsLevelID = productionData.GoodsLevelID;
- // inProductionEntity.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- // // 执行修改
- // errMsg = UpdateInProduction(oracleTrConn, inProductionEntity, sUserInfo);
- // // 执行失败
- // if (!string.IsNullOrEmpty(errMsg))
- // {
- // return errMsg;
- // }
- // #endregion
- // }
- // #endregion
- // #region 结束工序 添加成品数据 删除在产产品数据
- // else if (procedure.NodeType == (int)Constant.ProcedureNodeType.End)
- // {
- // #region 添加成品数据 删除在产产品数据
- // FinishedProductEntity finishedProduct = new FinishedProductEntity();
- // finishedProduct.BarCode = productionData.Barcode;
- // errMsg = AddFinishedProduct(oracleTrConn, finishedProduct, sUserInfo);
- // if (!string.IsNullOrEmpty(errMsg))
- // {
- // return errMsg;
- // }
- // InProductionEntity delInProductionEntity = new InProductionEntity();
- // delInProductionEntity.BarCode = productionData.Barcode;
- // // 执行删除 在产数据
- // errMsg = DeleteInProduction(oracleTrConn, delInProductionEntity, true, sUserInfo);
- // // 执行失败
- // if (!string.IsNullOrEmpty(errMsg))
- // {
- // return errMsg;
- // }
- // #endregion
- // }
- // #endregion
- // }
- // #endregion
- // }
- // return errMsg;
- //}
- /// <summary>
- /// 保存标准检验
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="procedure">工序信息</param>
- /// <param name="productionDataEntitys">生产数据集合</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddNormalCheck(IDBTransaction oracleTrConn, ProcedureEntity procedure, ProductionDataEntity[] productionDataEntitys, SUserInfo sUserInfo)
- {
- string errMsg = "";
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- string finishedloadbatchno = DateTime.Now.ToString("yyMMddHHmmss-") + centralizedBatchNo;
- #region 查询产品分级
- string sqlGoodsLevel = "select GoodsLevelID,GoodsLevelTypeID from TP_MST_GoodsLevel where AccountID=:accountID and ValueFlag=1";
- DataTable goodsLevelTable = oracleTrConn.GetSqlResultToDt(sqlGoodsLevel, new OracleParameter[] { new OracleParameter(":accountID", sUserInfo.AccountID) });
- #endregion
- foreach (ProductionDataEntity productionData in productionDataEntitys)
- {
- if (string.IsNullOrEmpty(productionData.Barcode))
- {
- throw new Exception("传入的条码号为空");
- }
- if (productionData.ProductionDataID != 0)
- {
- errMsg = DeleteSubstandardToSubstandardByID(oracleTrConn, productionData.ProductionDataID, productionData.Barcode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- // 删除报废条码
- string updateScrapSql = @"update tp_pm_scrapproduct set ValueFlag=0
- where tp_pm_scrapproduct.barcode=:barcode";
- OracleParameter[] ScrapProductparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, productionData.Barcode,ParameterDirection.Input),
- };
- oracleTrConn.ExecuteNonQuery(updateScrapSql, ScrapProductparas);
- string sqlInsInProdString = @"insert into TP_PM_InProduction(BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE, REWORKPROCEDUREID,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, UPDATEUSERID,
- ISREFIRE, GOODSLEVELID, GOODSLEVELTYPEID, DEFECTFLAG,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,SpecialRepairFlag,FlowProcedureID
- ,FlowProcedureTime,ProcedureID,ProcedureTime,ProductionDataID,logoid,IsReworkFlag,SemiCheckID)
- select BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE, REWORKPROCEDUREID,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, :UpdateUserID,
- ISREFIRE, GOODSLEVELID, GOODSLEVELTYPEID, DEFECTFLAG,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,SpecialRepairFlag,FlowProcedureID ,
- FlowProcedureTime,ProcedureID,sysdate,ProductionDataID,logoid,IsReworkFlag,SemiCheckID
- from TP_PM_InProductionTrash where barcode=:barcode ";
- OracleParameter[] InProductparas = new OracleParameter[]{
- new OracleParameter(":UpdateUserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2, productionData.Barcode,ParameterDirection.Input),
- };
- oracleTrConn.ExecuteNonQuery(sqlInsInProdString, InProductparas);
- //删除回收站中的条码
- string sqlDelInProductTrashString = "delete from TP_PM_InProductionTrash where barcode=:barcode ";
- OracleParameter[] TrashProductparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, productionData.Barcode,ParameterDirection.Input)
- };
- oracleTrConn.ExecuteNonQuery(sqlDelInProductTrashString, TrashProductparas);
- }
- int goodsID = Constant.INT_IS_ZERO;
- string goodsCode = string.Empty;
- string goodsName = string.Empty;
- // 注浆者工号
- string groutingUserCode = string.Empty;
- #region 校验条码有效性
- errMsg = CheckBarcode(oracleTrConn, procedure.ProcedureID, productionData.Barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- if (productionData.ProductionDataID == 0)
- return errMsg;
- }
- #endregion
- // 查询新插入的生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- int? ClassesSettingID = null;//班次配置ID
- // 新插入的班次配置表ID
- int productionDataID = 0;
- if (!string.IsNullOrEmpty(idStr))
- {
- productionDataID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #region 添加生产者数据
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, productionData.UserID, productionData.UserName, sUserInfo, ref ClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 添加生产数据
- #region 属性赋值
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = Convert.ToInt32(idStr);
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.CompleteProcedureID = procedure.ProcedureID;
- productionData.ProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, productionData.Barcode);
- productionData.IsReFire = (int)Constant.ReFireFlag.No;
- productionData.GoodsGrade = (int)Constant.GoodsGrade.Good;
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = goodsID;
- productionData.GoodsCode = goodsCode;
- productionData.GoodsName = goodsName;
- productionData.GoodsLevelID = productionData.GoodsLevelID;
- productionData.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- ////////如果报废给此产品最状态赋值
- //////if (productionData.ProductionDefects != null)
- //////{
- ////// foreach (ProductionDefectEntity productionDefect in productionData.ProductionDefects)
- ////// {
- ////// if ((string.IsNullOrEmpty(productionDefect.ScrapResponFlag) ? "0" : productionDefect.ScrapResponFlag) == "1")
- ////// {
- ////// productionData.GoodsEnding = productionData.GoodsLevelTypeID.ToString();
- ////// break;
- ////// }
- ////// }
- //////}
- //////if (productionData.GoodsLevelTypeID == (int)Constant.GoodsLevelType.Waste)
- //////{
- ////// productionData.GoodsEnding = Constant.GoodsLevelType.Waste.GetHashCode().ToString();
- //////}
- ////// string sqlReFire = @"select
- ////// isrefire
- ////// from tp_pm_inproduction where barcode=:barcode
- ////// ";
- ////// OracleParameter[] ReFireparas = new OracleParameter[] {
- ////// new OracleParameter(":barcode",productionData.Barcode),
- ////// };
- ////// DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire, ReFireparas);
- ////// if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- ////// {
- ////// if (Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]) > 0)
- ////// {
- ////// productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- ////// }
- ////// }
- #endregion
- string OutSpecialRepairflag = "0";//干补标识
- DataSet outDataSet = null;
- //xuwei fix 2019-09-24 按新规则重新校准NodeType.Begin使后续NodeType.Begin判定是准确的
- //xuwei fix 2019-09-26 使用通用方法判定
- // 2019-1016
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- int isNodeBegin = IsNodeBegin<IDBTransaction>(oracleTrConn, productionData.Barcode);
- if (isNodeBegin == 0)
- {
- procedure.NodeType = (int)Constant.ProcedureNodeType.Middle;
- }
- }
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- errMsg = AddProductionDataDeliverMud(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag, out outDataSet);
- }
- else
- {
- errMsg = AddProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- }
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- if (productionData.ProductionDefects == null || productionData.ProductionDefects.Count == 0)
- {
- productionData.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- #endregion
- #region 获得产品分级ID
- DataRow[] dr = goodsLevelTable.Select("GoodsLevelTypeID=" + productionData.GoodsLevelTypeID);
- // 获得产品分级ID
- productionData.GoodsLevelID = Convert.ToInt32(dr[0]["GoodsLevelID"]);
- #endregion
- #region 开始节点
- //xuwei remove 2019-09-26 此处应该是重复判定 移除
- //xuwei fix 2019-09-24 按新规则重新校准NodeType.Begin使后续NodeType.Begin判定是准确的
- //xuwei fix 2019-09-26 使用通用方法判定
- //int isNodeBegin = IsNodeBegin<IDBTransaction>(oracleTrConn, productionData.Barcode);
- // 2019-1016
- //if (isNodeBegin == 1) procedure.NodeType = (int)Constant.ProcedureNodeType.Begin;
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- #region 添加在产产品数据
- InProductionEntity addInProductionEntity = new InProductionEntity();
- addInProductionEntity.ProductionDataID = productionData.ProductionDataID;
- addInProductionEntity.BarCode = productionData.Barcode;
- //流程工序
- addInProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- //addInProductionEntity.CompleteProcedureID = procedure.ProcedureID;
- addInProductionEntity.ProcedureID = procedure.ProcedureID;
- //生产数据ID
- addInProductionEntity.ProductionDataID = productionDataID;
- // 工序模型
- addInProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- addInProductionEntity.ModelType = procedure.ModelType;
- // 正常坯
- addInProductionEntity.IsPublicBody = (int)Constant.PublicBodyFlag.No;
- #endregion
- // 生产工号
- addInProductionEntity.UserID = productionData.UserID;
- // 执行添加
- errMsg = AddInProduction(oracleTrConn, addInProductionEntity, sUserInfo, outDataSet);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- }
- #endregion
- #region 条码有缺陷
- // 废品标识
- bool scrapFlag = false;
- // 存在缺陷 插入缺陷表
- if (productionData.ProductionDefects != null)
- {
- foreach (ProductionDefectEntity productionDefect in productionData.ProductionDefects)
- {
- #region 保存缺陷
- productionDefect.ProductionDataID = productionDataID;
- productionDefect.BarCode = productionData.Barcode;
- productionDefect.ProductionLineID = procedure.ProductionLineID;
- productionDefect.ProductionLineCode = procedure.ProductionlineCode;
- productionDefect.ProductionLineName = procedure.ProductionlineName;
- productionDefect.ProcedureID = procedure.ProcedureID;
- productionDefect.ProcedureCode = procedure.ProcedureCode;
- productionDefect.ProcedureName = procedure.ProcedureName;
- productionDefect.UserID = productionData.UserID;
- productionDefect.UserCode = productionData.UserCode;
- productionDefect.UserName = productionData.UserName;
- productionDefect.GoodsID = productionData.GoodsID;
- productionDefect.GoodsCode = productionData.GoodsCode;
- productionDefect.GoodsName = productionData.GoodsName;
- productionDefect.Remarks = productionData.Remarks;
- productionDefect.ScrapResponFlag
- = string.IsNullOrEmpty(productionDefect.ScrapResponFlag) ? "0" : productionDefect.ScrapResponFlag;
- // 保存缺陷
- errMsg = AddDefect(oracleTrConn, productionDefect, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 缺陷列表中只有一个报废工序 添加废弃产品 删除在产产品数据
- if (!scrapFlag && productionDefect.ScrapResponFlag == "1")
- {
- scrapFlag = true;
- #region 添加废弃产品 删除在产产品数据
- #region 添加废弃产品
- ScrapProductEntity scrapProduct = new ScrapProductEntity();
- #region 属性赋值
- scrapProduct.BarCode = productionData.Barcode;
- scrapProduct.ScrapType = Constant.ScrapType.Waste.GetHashCode();
- //xuwei remove 2019-09-26 此处是重复判定移除
- //xuwei fix 2019-09-24 按新规则重新校准NodeType.Begin使后续NodeType.Begin判定是准确的
- //xuwei fix 2019-09-26 使用通用方法判定
- //int isNodeBegin = IsNodeBegin<IDBTransaction>(oracleTrConn, productionData.Barcode);
- // 2019-1016
- //if (isNodeBegin == 1) procedure.NodeType = (int)Constant.ProcedureNodeType.Begin;
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- scrapProduct.ResponType = Constant.ScrapResponType.NoPerson.GetHashCode();
- }
- else
- {
- scrapProduct.ResponType = Constant.ScrapResponType.Procedure.GetHashCode();
- }
- scrapProduct.ScrapDate = accountDate;
- scrapProduct.Rreason = Constant.SCRAPTYPE_WASTE;
- scrapProduct.Remarks = productionDefect.Remarks;
- scrapProduct.AuditStatus = Constant.AuditStatus.Agree.GetHashCode();
- scrapProduct.Auditor = sUserInfo.UserID;
- scrapProduct.AuditlDate = accountDate;
- scrapProduct.AccountDate = accountDate;
- scrapProduct.GoodsLevelID = productionData.GoodsLevelID;
- scrapProduct.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- string sqlScrapProduct = "select SEQ_PM_ScrapProduct_ID.nextval from dual";
- string idStrScrapProduct = oracleTrConn.GetSqlResultToStr(sqlScrapProduct);
- scrapProduct.ScrapProductID = Convert.ToInt32(idStrScrapProduct);
- scrapProduct.ScrapType = 1;
- scrapProduct.IsQualityStatistics = 1;
- scrapProduct.ProductionDataID = productionData.ProductionDataID;
- #endregion
- // 保存报废
- errMsg = AddScrapProduct(oracleTrConn, scrapProduct, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 添加责任工序
- //xuwei remove 2019-09-26 此处是重复判定移除
- //xuwei fix 2019-09-24 按新规则重新校准NodeType.Begin使后续NodeType.Begin判定是准确的
- //xuwei fix 2019-09-26 使用通用方法判定
- //int isNodeBegin = IsNodeBegin<IDBTransaction>(oracleTrConn, productionData.Barcode);
- // 2019-1016
- //if (isNodeBegin == 1) procedure.NodeType = (int)Constant.ProcedureNodeType.Begin;
- // 不是开始工序时。需要添加责任工序
- if (procedure.NodeType != Constant.ProcedureNodeType.Begin.GetHashCode())
- {
- //string sqlScrapProduct = "select SEQ_PM_ScrapProduct_ID.Currval from dual";
- //string idStrScrapProduct = oracleTrConn.GetSqlResultToStr(sqlScrapProduct);
- ResponProcedureEntity responProce = new ResponProcedureEntity();
- #region 属性赋值
- responProce.BarCode = productionData.Barcode;
- responProce.ProductionDataID = productionDataID;
- responProce.ProductionLineID = productionDefect.ProductionLineID;
- responProce.ProductionLineCode = productionDefect.ProductionLineCode;
- responProce.ProductionLineName = productionDefect.ProductionLineName;
- responProce.ProcedureID = productionDefect.DefectProcedureID;
- responProce.ProcedureCode = productionDefect.DefectProcedureCode;
- responProce.ProcedureName = productionDefect.DefectProcedureName;
- responProce.UserID = productionDefect.DefectUserID;
- responProce.UserCode = productionDefect.DefectUserCode;
- responProce.UserName = productionDefect.DefectUserName;
- responProce.Remarks = productionDefect.Remarks;
- responProce.ScrapProductID = Convert.ToInt32(idStrScrapProduct);
- #endregion
- // 保存责任工序
- errMsg = AddResponProcedure(oracleTrConn, responProce, productionDefect, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- }
- #endregion
- #region 删除在产产品数据
- InProductionEntity delInProductionEntity = new InProductionEntity();
- delInProductionEntity.BarCode = productionData.Barcode;
- delInProductionEntity.CompleteProcedureID = productionData.ProcedureID;
- // 执行删除 在产数据
- errMsg = DeleteInProduction(oracleTrConn, delInProductionEntity, false, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #endregion
- }
- #endregion
- }
- }
- #endregion
- #region 条码没有报废
- if (!scrapFlag)
- {
- #region 检验出缺陷 并且不是废品 修改在产产品数据
- //xuwei remove 2019-09-26 此处是重复判定移除
- //xuwei fix 2019-09-24 按新规则重新校准NodeType.Begin使后续NodeType.Begin判定是准确的
- //xuwei fix 2019-09-26 使用通用方法判定
- //int isNodeBegin = IsNodeBegin<IDBTransaction>(oracleTrConn, productionData.Barcode);
- // 2019-1016
- //if (isNodeBegin == 1) procedure.NodeType = (int)Constant.ProcedureNodeType.Begin;
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Middle
- || procedure.NodeType == (int)Constant.ProcedureNodeType.Begin
- || productionData.GoodsLevelTypeID == Constant.GoodsLevelType.Defect.GetHashCode())
- {
- #region 修改在产产品数据的当前工序
- InProductionEntity inProductionEntity = new InProductionEntity();
- inProductionEntity.ProductionDataID = Convert.ToInt32(idStr);
- inProductionEntity.BarCode = productionData.Barcode;
- // 当前工序
- inProductionEntity.ProcedureID = procedure.ProcedureID;
- inProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 工序模型
- inProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- inProductionEntity.ModelType = procedure.ModelType;
- // 生产工号
- inProductionEntity.UserID = productionData.UserID;
- // 缺陷标识
- inProductionEntity.DefectFlag = productionData.DefectFlag;
- // 返工工序ID
- inProductionEntity.ReworkProcedureID = productionData.ReworkProcedureID;
- inProductionEntity.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- inProductionEntity.GoodsLevelID = productionData.GoodsLevelID;
- // 执行修改
- errMsg = UpdateInProduction(oracleTrConn, inProductionEntity, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- #region 结束工序、没有缺陷 添加成品数据 删除在产产品数据
- //else if (procedure.NodeType == (int)Constant.ProcedureNodeType.End
- // && productionData.DefectFlag == Constant.DefectFlag.No.GetHashCode())
- else if (procedure.NodeType == (int)Constant.ProcedureNodeType.End
- && productionData.GoodsLevelTypeID == Constant.GoodsLevelType.NoDefects.GetHashCode())
- {
- #region 添加成品数据 删除在产产品数据
- FinishedProductEntity finishedProduct = new FinishedProductEntity();
- finishedProduct.BarCode = productionData.Barcode;
- errMsg = AddFinishedProduct(oracleTrConn, finishedProduct, sUserInfo, finishedloadbatchno);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- InProductionEntity delInProductionEntity = new InProductionEntity();
- delInProductionEntity.BarCode = productionData.Barcode;
- // 执行删除 在产数据
- errMsg = DeleteInProduction(oracleTrConn, delInProductionEntity, true, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- }
- #endregion
- }
- return errMsg;
- }
- ///// <summary>
- ///// 报废更新产品数据最终状态
- ///// </summary>
- ///// <param name="oracleTrConn">连接对象</param>
- ///// <param name="barcode">产品条码</param>
- ///// <param name="sUserInfo">用记基本信息</param>
- ///// <returns>string</returns>
- ///// <remarks>
- ///// 王鑫 2015.01.07 新建
- ///// </remarks>
- //private static string UpdateProductionDataGoodsEnding(IDBTransaction oracleTrConn, int productionDataID, int? goodsEnding, SUserInfo sUserInfo)
- //{
- // string sql = "update TP_PM_ProductionData set GoodsEnding=:goodsEnding where ProductionDataID = :productionDataID and AccountID=:accountid";
- // OracleParameter[] paras = new OracleParameter[] {
- // new OracleParameter(":goodsEnding",goodsEnding),
- // new OracleParameter(":productionDataID",productionDataID),
- // new OracleParameter(":accountid",sUserInfo.AccountID),
- // };
- // int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // // 更新失败
- // if (result <= Constant.INT_IS_ZERO)
- // {
- // return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- // }
- // // 成功返回null
- // return null;
- //}
- /// <summary>
- /// 添加责任工序
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="responProce">责任工序</param>
- /// <param name="productionDefect">缺陷数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddResponProcedure(IDBTransaction oracleTrConn, ResponProcedureEntity responProce, ProductionDefectEntity productionDefect, SUserInfo sUserInfo)
- {
- OracleParameter[] oracleParameters = null;
- string sql = null;
- int result = 0;
- // 查询新插入ID
- if (productionDefect.DefectProcedureID != null)
- {
- sql = "select SEQ_PM_ResponProcedure_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- if (!string.IsNullOrEmpty(idStr))
- {
- responProce.ResponProcedureID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #region SQL
- sql = "insert into tp_pm_responprocedure"
- + " (ResponProcedureID,"
- + " scrapproductid,"
- + " barcode,"
- + " productiondataid,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " userid,"
- + " usercode,"
- + " username,"
- + " remarks,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid)"
- + " values"
- + " ("
- + " :ResponProcedureID,"
- + " :scrapproductid,"
- + " :barcode,"
- + " :productiondataid,"
- + " :productionlineid,"
- + " :productionlinecode,"
- + " :productionlinename,"
- + " :procedureid,"
- + " :procedurecode,"
- + " :procedurename,"
- + " :userid,"
- + " :usercode,"
- + " :username,"
- + " :remarks,"
- + " :accountid,"
- + " :createuserid,"
- + " :updateuserid)";
- #endregion
- #region 参数
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":ResponProcedureID",responProce.ResponProcedureID),
- new OracleParameter(":scrapproductid",responProce.ScrapProductID),
- new OracleParameter(":barcode",responProce.BarCode),
- new OracleParameter(":productiondataid",responProce.ProductionDataID),
- new OracleParameter(":productionlineid",responProce.ProductionLineID),
- new OracleParameter(":productionlinecode",responProce.ProductionLineCode),
- new OracleParameter(":productionlinename",responProce.ProductionLineName),
- new OracleParameter(":procedureid",responProce.ProcedureID),
- new OracleParameter(":procedurecode",responProce.ProcedureCode),
- new OracleParameter(":procedurename",responProce.ProcedureName),
- new OracleParameter(":userid",responProce.UserID),
- new OracleParameter(":usercode",responProce.UserCode),
- new OracleParameter(":username",responProce.UserName),
- new OracleParameter(":remarks",responProce.Remarks),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- #endregion
- result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- //// 查询新插入ID
- //sql = "select SEQ_PM_ResponProcedure_ID.Currval from dual";
- //string idStr = oracleTrConn.GetSqlResultToStr(sql);
- //if (!string.IsNullOrEmpty(idStr))
- //{
- // responProce.ResponProcedureID = int.Parse(idStr);
- //}
- //else
- //{
- // return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- //}
- }
- #region 插入责任人
- foreach (DefectResponsibleEntity defectResponsible in productionDefect.DefectResponsibles)
- {
- #region SQL
- sql = "insert into tp_pm_scrapresponsible"
- + " (barcode,"
- + " scrapproductid,"
- + " staffid,"
- + " userid,"
- + " usercode,"
- + " ujobsid,"
- + " sjobsid,"
- + " staffstatus,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid,"
- + " responprocedureid,"
- + " respontype)"
- + " values"
- + " (:barcode,"
- + " :scrapproductid,"
- + " :staffid,"
- + " :userid,"
- + " :usercode,"
- + " :ujobsid,"
- + " :sjobsid,"
- + " :staffstatus,"
- + " :accountid,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :responprocedureid,"
- + " :respontype)";
- #endregion
- #region 参数
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":scrapproductid",responProce.ScrapProductID),
- new OracleParameter(":barcode",responProce.BarCode),
- new OracleParameter(":staffid",defectResponsible.StaffID),
- new OracleParameter(":userid",defectResponsible.UserID),
- new OracleParameter(":usercode",defectResponsible.UserCode),
- new OracleParameter(":ujobsid",defectResponsible.UJobsID),
- new OracleParameter(":sjobsid",defectResponsible.SJobsID),
- new OracleParameter(":staffstatus",defectResponsible.StaffStatus),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":responprocedureid",responProce.ResponProcedureID),
- new OracleParameter(":respontype",Constant.ScrapResponType.Procedure.GetHashCode()),
- };
- #endregion
- result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- }
- #endregion
- return null;
- }
- /// <summary>
- /// 保存废弃产品
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="scrapProduct">报废产品</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddScrapProductRejectToReject(IDBTransaction oracleTrConn, ScrapProductEntity scrapProduct, SUserInfo sUserInfo)
- {
- #region sql
- string sql = "insert into tp_pm_scrapproduct"
- + " (scrapproductid,barcode,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " goodsid,"
- + " goodscode,"
- + " goodsname,"
- + " groutingdailyid,"
- + " groutingdailydetailid,"
- + " groutingdate,"
- + " groutinglineid,"
- + " groutinglinecode,"
- + " groutinglinename,"
- + " gmouldtypeid,"
- + " groutinglinedetailid,"
- + " groutingmouldcode,"
- + " mouldcode,"
- + " scrapdate,"
- + " rreason,"
- + " remarks,"
- + " auditstatus,"
- + " auditor,"
- + " auditdate,"
- + " accountdate,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid,"
- + " respontype,GoodsLevelID,GoodsLevelTypeID,"
- + " auditopinion,"
- + " GroutingUserID,"
- + " GroutingUserCode,"
- + " GroutingNum,"
- + " IsPublicBody,"
- + " IsReFire,"
- + " kilnid,"
- + " kilncode,"
- + " kilnname,"
- + " kilncarid,"
- + " kilncarcode,"
- + " kilncarname,"
- + " kilncarbatchno,"
- + " kilncarposition,"
- + " specialRepairflag,"
- + " logoid,ProductionDataID, "
- + " ProcedureID, "
- + " ProcedureCode, "
- + " ProcedureName, "
- + " ScrapType "
- + ")"
- + " select :scrapproductid,trash.barcode,"
- + " trash.productionlineid,"
- + " trash.productionlinecode,"
- + " trash.productionlinename,"
- + " trash.goodsid,"
- + " trash.goodscode,"
- + " trash.goodsname,"
- + " trash.groutingdailyid,"
- + " trash.groutingdailydetailid,"
- + " trash.groutingdate,"
- + " trash.groutinglineid,"
- + " trash.groutinglinecode,"
- + " trash.groutinglinename,"
- + " trash.gmouldtypeid,"
- + " trash.groutinglinedetailid,"
- + " trash.groutingmouldcode,"
- + " trash.mouldcode,"
- + " :scrapdate,"
- + " :rreason,"
- + " :remarks,"
- + " :auditstatus,"
- + " :auditor,"
- // + " :auditdate,"
- + " sysdate,"
- + " :accountdate,"
- + " trash.accountid,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :respontype,:GoodsLevelID,:GoodsLevelTypeID,"
- + " :auditopinion,"
- + " trash.GroutingUserID,"
- + " trash.GroutingUserCode,"
- + " trash.GroutingNum,"
- + " trash.IsPublicBody,"
- + " trash.IsReFire,"
- + " trash.kilnid,"
- + " trash.kilncode,"
- + " trash.kilnname,"
- + " trash.kilncarid,"
- + " trash.kilncarcode,"
- + " trash.kilncarname,"
- + " trash.kilncarbatchno,"
- + " trash.kilncarposition,"
- + " trash.specialRepairflag,"
- + " trash.logoid,:ProductionDataID,"
- + " TP_PC_Procedure.ProcedureID, "
- + " TP_PC_Procedure.ProcedureCode, "
- + " TP_PC_Procedure.ProcedureName, "
- + " :ScrapType "
- + " from tp_pm_inproductiontrash trash"
- + " left join TP_PC_Procedure on trash.FlowProcedureID=TP_PC_Procedure.ProcedureID"
- + " where trash.barcode = :barcode";
- #endregion
- #region 参数
- OracleParameter[] oracleParameters = null;
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":scrapproductid",OracleDbType.Int32,scrapProduct.ScrapProductID,ParameterDirection.Input),
- new OracleParameter(":scrapdate",OracleDbType.Date,scrapProduct.ScrapDate,ParameterDirection.Input),
- new OracleParameter(":rreason",OracleDbType.Varchar2,scrapProduct.Rreason,ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,scrapProduct.Remarks,ParameterDirection.Input),
- new OracleParameter(":auditstatus",OracleDbType.Int32,scrapProduct.AuditStatus,ParameterDirection.Input),
- new OracleParameter(":auditor",OracleDbType.Int32,scrapProduct.Auditor,ParameterDirection.Input),
- //new OracleParameter(":auditdate",OracleDbType.Date,scrapProduct.AuditlDate,ParameterDirection.Input),
- new OracleParameter(":accountdate",OracleDbType.Date,scrapProduct.AccountDate,ParameterDirection.Input),
- new OracleParameter(":createuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":respontype",OracleDbType.Varchar2,scrapProduct.ResponType,ParameterDirection.Input),
- new OracleParameter(":auditopinion",OracleDbType.Varchar2,scrapProduct.AuditOpinion,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,scrapProduct.BarCode,ParameterDirection.Input),
- new OracleParameter(":GoodsLevelID",OracleDbType.Int32,scrapProduct.GoodsLevelID,ParameterDirection.Input),
- new OracleParameter(":GoodsLevelTypeID",OracleDbType.Int32,scrapProduct.GoodsLevelTypeID,ParameterDirection.Input),
- new OracleParameter(":ScrapType",OracleDbType.Int32,scrapProduct.ScrapType,ParameterDirection.Input),
- new OracleParameter(":ProductionDataID",OracleDbType.Int32,scrapProduct.ProductionDataID,ParameterDirection.Input),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // result += oracleTrConn.ExecuteNonQuery(sql2, oracleParameters);
- //// 保存失败
- //if (result != Constant.INT_IS_ONE)
- //{
- // return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- //}
- return null;
- }
- /// <summary>
- /// 保存废弃产品
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="scrapProduct">报废产品</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddScrapProduct(IDBTransaction oracleTrConn, ScrapProductEntity scrapProduct, SUserInfo sUserInfo)
- {
- #region sql
- string sql = "insert into tp_pm_scrapproduct"
- + " (scrapproductid,barcode,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " goodsid,"
- + " goodscode,"
- + " goodsname,"
- + " groutingdailyid,"
- + " groutingdailydetailid,"
- + " groutingdate,"
- + " groutinglineid,"
- + " groutinglinecode,"
- + " groutinglinename,"
- + " gmouldtypeid,"
- + " groutinglinedetailid,"
- + " groutingmouldcode,"
- + " mouldcode,"
- + " scrapdate,"
- + " rreason,"
- + " remarks,"
- + " auditstatus,"
- + " auditor,"
- + " auditdate,"
- + " accountdate,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid,"
- + " respontype,GoodsLevelID,GoodsLevelTypeID,"
- + " auditopinion,"
- + " GroutingUserID,"
- + " GroutingUserCode,"
- + " GroutingNum,"
- + " IsPublicBody,"
- + " IsReFire,"
- + " kilnid,"
- + " kilncode,"
- + " kilnname,"
- + " kilncarid,"
- + " kilncarcode,"
- + " kilncarname,"
- + " kilncarbatchno,"
- + " kilncarposition,"
- + " specialRepairflag,"
- + " logoid,"
- + " ProductionDataID, "
- + " ProcedureID, "
- + " ProcedureCode, "
- + " ProcedureName, "
- + " ScrapType "
- + ")"
- + " select :scrapproductid,barcode,"
- + " InProduction.productionlineid,"
- + " InProduction.productionlinecode,"
- + " InProduction.productionlinename,"
- + " InProduction.goodsid,"
- + " InProduction.goodscode,"
- + " InProduction.goodsname,"
- + " InProduction.groutingdailyid,"
- + " InProduction.groutingdailydetailid,"
- + " InProduction.groutingdate,"
- + " InProduction.groutinglineid,"
- + " InProduction.groutinglinecode,"
- + " InProduction.groutinglinename,"
- + " InProduction.gmouldtypeid,"
- + " InProduction.groutinglinedetailid,"
- + " InProduction.groutingmouldcode,"
- + " InProduction.mouldcode,"
- + " :scrapdate,"
- + " :rreason,"
- + " :remarks,"
- + " :auditstatus,"
- + " :auditor,"
- // + " :auditdate,"
- + " sysdate,"
- + " :accountdate,"
- + " InProduction.accountid,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :respontype,:GoodsLevelID,:GoodsLevelTypeID,"
- + " :auditopinion,"
- + " InProduction.GroutingUserID,"
- + " InProduction.GroutingUserCode,"
- + " InProduction.GroutingNum,"
- + " InProduction.IsPublicBody,"
- + " InProduction.IsReFire,"
- + " InProduction.kilnid,"
- + " InProduction.kilncode,"
- + " InProduction.kilnname,"
- + " InProduction.kilncarid,"
- + " InProduction.kilncarcode,"
- + " InProduction.kilncarname,"
- + " InProduction.kilncarbatchno,"
- + " InProduction.kilncarposition,"
- + " InProduction.specialRepairflag,"
- + " InProduction.logoid,";
- if (scrapProduct.IsQualityStatistics == null)
- {
- sql += " InProduction.ProductionDataID,";
- }
- else
- {
- sql += " :ProductionDataID,";
- }
- sql += " TP_PC_Procedure.ProcedureID, "
- + " TP_PC_Procedure.ProcedureCode, "
- + " TP_PC_Procedure.ProcedureName, "
- + " :ScrapType"
- + " from TP_PM_InProduction InProduction"
- + " left join TP_PC_Procedure on InProduction.FlowProcedureID=TP_PC_Procedure.ProcedureID"
- + " where InProduction.barcode = :barcode";
- #endregion
- #region 参数
- OracleParameter[] oracleParameters = null;
- if (scrapProduct.IsQualityStatistics == null)
- {
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":scrapproductid",OracleDbType.Int32,scrapProduct.ScrapProductID,ParameterDirection.Input),
- new OracleParameter(":scrapdate",OracleDbType.Date,scrapProduct.ScrapDate,ParameterDirection.Input),
- new OracleParameter(":rreason",OracleDbType.Varchar2,scrapProduct.Rreason,ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,scrapProduct.Remarks,ParameterDirection.Input),
- new OracleParameter(":auditstatus",OracleDbType.Int32,scrapProduct.AuditStatus,ParameterDirection.Input),
- new OracleParameter(":auditor",OracleDbType.Int32,scrapProduct.Auditor,ParameterDirection.Input),
- //new OracleParameter(":auditdate",OracleDbType.Date,scrapProduct.AuditlDate,ParameterDirection.Input),
- new OracleParameter(":accountdate",OracleDbType.Date,scrapProduct.AccountDate,ParameterDirection.Input),
- new OracleParameter(":createuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":respontype",OracleDbType.Varchar2,scrapProduct.ResponType,ParameterDirection.Input),
- new OracleParameter(":auditopinion",OracleDbType.Varchar2,scrapProduct.AuditOpinion,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,scrapProduct.BarCode,ParameterDirection.Input),
- new OracleParameter(":GoodsLevelID",OracleDbType.Int32,scrapProduct.GoodsLevelID,ParameterDirection.Input),
- new OracleParameter(":GoodsLevelTypeID",OracleDbType.Int32,scrapProduct.GoodsLevelTypeID,ParameterDirection.Input),
- new OracleParameter(":ScrapType",OracleDbType.Int32,scrapProduct.ScrapType,ParameterDirection.Input),
- };
- }
- else
- {
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":scrapproductid",OracleDbType.Int32,scrapProduct.ScrapProductID,ParameterDirection.Input),
- new OracleParameter(":scrapdate",OracleDbType.Date,scrapProduct.ScrapDate,ParameterDirection.Input),
- new OracleParameter(":rreason",OracleDbType.Varchar2,scrapProduct.Rreason,ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,scrapProduct.Remarks,ParameterDirection.Input),
- new OracleParameter(":auditstatus",OracleDbType.Int32,scrapProduct.AuditStatus,ParameterDirection.Input),
- new OracleParameter(":auditor",OracleDbType.Int32,scrapProduct.Auditor,ParameterDirection.Input),
- //new OracleParameter(":auditdate",OracleDbType.Date,scrapProduct.AuditlDate,ParameterDirection.Input),
- new OracleParameter(":accountdate",OracleDbType.Date,scrapProduct.AccountDate,ParameterDirection.Input),
- new OracleParameter(":createuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":respontype",OracleDbType.Varchar2,scrapProduct.ResponType,ParameterDirection.Input),
- new OracleParameter(":auditopinion",OracleDbType.Varchar2,scrapProduct.AuditOpinion,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,scrapProduct.BarCode,ParameterDirection.Input),
- new OracleParameter(":GoodsLevelID",OracleDbType.Int32,scrapProduct.GoodsLevelID,ParameterDirection.Input),
- new OracleParameter(":GoodsLevelTypeID",OracleDbType.Int32,scrapProduct.GoodsLevelTypeID,ParameterDirection.Input),
- new OracleParameter(":ScrapType",OracleDbType.Int32,scrapProduct.ScrapType,ParameterDirection.Input),
- new OracleParameter(":ProductionDataID",OracleDbType.Int32,scrapProduct.ProductionDataID,ParameterDirection.Input),
- };
- }
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- if (result == 0)
- {
- sql = "insert into tp_pm_scrapproduct"
- + " (scrapproductid,barcode,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " goodsid,"
- + " goodscode,"
- + " goodsname,"
- + " groutingdailyid,"
- + " groutingdailydetailid,"
- + " groutingdate,"
- + " groutinglineid,"
- + " groutinglinecode,"
- + " groutinglinename,"
- + " gmouldtypeid,"
- + " groutinglinedetailid,"
- + " groutingmouldcode,"
- + " mouldcode,"
- + " scrapdate,"
- + " rreason,"
- + " remarks,"
- + " auditstatus,"
- + " auditor,"
- + " auditdate,"
- + " accountdate,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid,"
- + " respontype,GoodsLevelID,GoodsLevelTypeID,"
- + " auditopinion,"
- + " GroutingUserID,"
- + " GroutingUserCode,"
- + " GroutingNum,"
- + " IsPublicBody,"
- + " IsReFire,"
- + " kilnid,"
- + " kilncode,"
- + " kilnname,"
- + " kilncarid,"
- + " kilncarcode,"
- + " kilncarname,"
- + " kilncarbatchno,"
- + " kilncarposition,"
- + " specialRepairflag,"
- + " logoid,"
- + " ProductionDataID,"
- + " ProcedureID, "
- + " ProcedureCode, "
- + " ProcedureName, "
- + " ScrapType "
- + ")"
- + " select :scrapproductid,trash.barcode,"
- + " trash.productionlineid,"
- + " trash.productionlinecode,"
- + " trash.productionlinename,"
- + " trash.goodsid,"
- + " trash.goodscode,"
- + " trash.goodsname,"
- + " trash.groutingdailyid,"
- + " trash.groutingdailydetailid,"
- + " trash.groutingdate,"
- + " trash.groutinglineid,"
- + " trash.groutinglinecode,"
- + " trash.groutinglinename,"
- + " trash.gmouldtypeid,"
- + " trash.groutinglinedetailid,"
- + " trash.groutingmouldcode,"
- + " trash.mouldcode,"
- + " :scrapdate,"
- + " :rreason,"
- + " :remarks,"
- + " :auditstatus,"
- + " :auditor,"
- //+ " :auditdate,"
- + " sysdate,"
- + " :accountdate,"
- + " trash.accountid,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :respontype,:GoodsLevelID,:GoodsLevelTypeID,"
- + " :auditopinion,"
- + " trash.GroutingUserID,"
- + " trash.GroutingUserCode,"
- + " trash.GroutingNum,"
- + " trash.IsPublicBody,"
- + " trash.IsReFire,"
- + " trash.kilnid,"
- + " trash.kilncode,"
- + " trash.kilnname,"
- + " trash.kilncarid,"
- + " trash.kilncarcode,"
- + " trash.kilncarname,"
- + " trash.kilncarbatchno,"
- + " trash.kilncarposition,"
- + " trash.specialRepairflag,"
- + " trash.logoid,";
- if (scrapProduct.IsQualityStatistics == null)
- {
- sql += " trash.ProductionDataID,";
- }
- else
- {
- sql += " :ProductionDataID,";
- }
- sql += //" trash.ProductionDataID," +
- " TP_PC_Procedure.ProcedureID, "
- + " TP_PC_Procedure.ProcedureCode, "
- + " TP_PC_Procedure.ProcedureName, "
- + " :ScrapType "
- + " from TP_PM_InProductionTrash trash"
- + " left join TP_PC_Procedure on trash.FlowProcedureID=TP_PC_Procedure.ProcedureID"
- + " where trash.barcode = :barcode";
- result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- }
- // result += oracleTrConn.ExecuteNonQuery(sql2, oracleParameters);
- //// 保存失败
- //if (result != Constant.INT_IS_ONE)
- //{
- // return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- //}
- return null;
- }
- /// <summary>
- /// 保存缺陷
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="productionDefect">缺陷数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddDefect(IDBTransaction oracleTrConn, ProductionDefectEntity productionDefect, SUserInfo sUserInfo)
- {
- // 查询新插入的生产数据ID
- string sql = "select SEQ_PM_Defect_DefectID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- int productionDefectID = 0;
- if (!string.IsNullOrEmpty(idStr))
- {
- productionDefectID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #region SQL
- sql = "insert into tp_pm_defect"
- + " ( ProductionDefectID,"
- + " productiondataid,"
- + " barcode,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " userid,"
- + " usercode,"
- + " username,"
- + " goodsid,"
- + " goodscode,"
- + " goodsname,"
- + " defectid,"
- + " defectcode,"
- + " defectname,"
- + " defectpositionid,"
- + " defectpositioncode,"
- + " defectpositionname,"
- + " scrapResponFlag,"
- + " defectproductiondataid,"
- + " defectprocedureid,"
- + " defectprocedurecode,"
- + " defectprocedurename,"
- + " defectuserid,"
- + " defectusercode,"
- + " defectusername,"
- + " defectjobs,"
- + " remarks,"
- + " accountid,"
- + " createuserid,"
- + " defectfine,"
- + " misseduserid,"
- + " missedusercode,"
- + " missedusername,"
- + " updateuserid,SpecialDefect,DefectDeductionNum,CheckTime)"
- + " values"
- + " ("
- + " :ProductionDefectID,"
- + " :productiondataid,"
- + " :barcode,"
- + " :productionlineid,"
- + " :productionlinecode,"
- + " :productionlinename,"
- + " :procedureid,"
- + " :procedurecode,"
- + " :procedurename,"
- + " :userid,"
- + " :usercode,"
- + " :username,"
- + " :goodsid,"
- + " :goodscode,"
- + " :goodsname,"
- + " :defectid,"
- + " :defectcode,"
- + " :defectname,"
- + " :defectpositionid,"
- + " :defectpositioncode,"
- + " :defectpositionname,"
- + " :scrapResponFlag,"
- + " :defectproductiondataid,"
- + " :defectprocedureid,"
- + " :defectprocedurecode,"
- + " :defectprocedurename,"
- + " :defectuserid,"
- + " :defectusercode,"
- + " :defectusername,"
- + " :defectjobs,"
- + " :remarks,"
- + " :accountid,"
- + " :createuserid,"
- + " :defectfine,"
- + " :misseduserid,"
- + " :missedusercode,"
- + " :missedusername,"
- + " :updateuserid,:SpecialDefect,:DefectDeductionNum,:CheckTime)";
- #endregion
- #region 参数
- OracleParameter[] oracleParameters = null;
- if (productionDefect.IsPDA == null)
- {
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":ProductionDefectID",productionDefectID),
- new OracleParameter(":productiondataid",productionDefect.ProductionDataID),
- new OracleParameter(":barcode",productionDefect.BarCode),
- new OracleParameter(":productionlineid",productionDefect.ProductionLineID),
- new OracleParameter(":productionlinecode",productionDefect.ProductionLineCode),
- new OracleParameter(":productionlinename",productionDefect.ProductionLineName),
- new OracleParameter(":procedureid",productionDefect.ProcedureID),
- new OracleParameter(":procedurecode",productionDefect.ProcedureCode),
- new OracleParameter(":procedurename",productionDefect.ProcedureName),
- new OracleParameter(":userid",productionDefect.UserID),
- new OracleParameter(":usercode",productionDefect.UserCode),
- new OracleParameter(":username",productionDefect.UserName),
- new OracleParameter(":goodsid",productionDefect.GoodsID),
- new OracleParameter(":goodscode",productionDefect.GoodsCode),
- new OracleParameter(":goodsname",productionDefect.GoodsName),
- new OracleParameter(":defectid",productionDefect.DefectID),
- new OracleParameter(":defectcode",productionDefect.DefectCode),
- new OracleParameter(":defectname",productionDefect.DefectName),
- new OracleParameter(":defectpositionid",productionDefect.DefectPositionID),
- new OracleParameter(":defectpositioncode",productionDefect.DefectPositionCode),
- new OracleParameter(":defectpositionname",productionDefect.DefectPositionName),
- new OracleParameter(":scrapResponFlag",productionDefect.ScrapResponFlag),
- new OracleParameter(":defectproductiondataid",productionDefect.DefectProductionDataID),
- new OracleParameter(":defectprocedureid",productionDefect.DefectProcedureID),
- new OracleParameter(":defectprocedurecode",productionDefect.DefectProcedureCode),
- new OracleParameter(":defectprocedurename",productionDefect.DefectProcedureName),
- new OracleParameter(":defectuserid",productionDefect.DefectUserID),
- new OracleParameter(":defectusercode",productionDefect.DefectUserCode),
- new OracleParameter(":defectusername",productionDefect.DefectUserName),
- new OracleParameter(":defectjobs",productionDefect.DefectJobs),
- new OracleParameter(":remarks",productionDefect.Remarks),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":defectfine",productionDefect.DefectFine),
- new OracleParameter(":misseduserid",productionDefect.MissedUserID),
- new OracleParameter(":missedusercode",productionDefect.MissedUserCode),
- new OracleParameter(":missedusername",productionDefect.MissedUserName),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":SpecialDefect",productionDefect.SpecialDefect==null?"0":productionDefect.SpecialDefect),
- new OracleParameter(":DefectDeductionNum",productionDefect.DefectDeductionNum==null?0:productionDefect.DefectDeductionNum),
- new OracleParameter(":CheckTime",productionDefect.CheckTime.ToString()==string.Empty?null:productionDefect.CheckTime),
- };
- }
- else
- {
- DateTime? pdaCheckTime = null;
- if (productionDefect.PDACheckTime != null)
- {
- if (productionDefect.PDACheckTime.ToString() != string.Empty)
- {
- pdaCheckTime = Convert.ToDateTime(productionDefect.PDACheckTime);
- }
- }
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":ProductionDefectID",productionDefectID),
- new OracleParameter(":productiondataid",productionDefect.ProductionDataID),
- new OracleParameter(":barcode",productionDefect.BarCode),
- new OracleParameter(":productionlineid",productionDefect.ProductionLineID),
- new OracleParameter(":productionlinecode",productionDefect.ProductionLineCode),
- new OracleParameter(":productionlinename",productionDefect.ProductionLineName),
- new OracleParameter(":procedureid",productionDefect.ProcedureID),
- new OracleParameter(":procedurecode",productionDefect.ProcedureCode),
- new OracleParameter(":procedurename",productionDefect.ProcedureName),
- new OracleParameter(":userid",productionDefect.UserID),
- new OracleParameter(":usercode",productionDefect.UserCode),
- new OracleParameter(":username",productionDefect.UserName),
- new OracleParameter(":goodsid",productionDefect.GoodsID),
- new OracleParameter(":goodscode",productionDefect.GoodsCode),
- new OracleParameter(":goodsname",productionDefect.GoodsName),
- new OracleParameter(":defectid",productionDefect.DefectID),
- new OracleParameter(":defectcode",productionDefect.DefectCode),
- new OracleParameter(":defectname",productionDefect.DefectName),
- new OracleParameter(":defectpositionid",productionDefect.DefectPositionID),
- new OracleParameter(":defectpositioncode",productionDefect.DefectPositionCode),
- new OracleParameter(":defectpositionname",productionDefect.DefectPositionName),
- new OracleParameter(":scrapResponFlag",productionDefect.ScrapResponFlag),
- new OracleParameter(":defectproductiondataid",productionDefect.DefectProductionDataID),
- new OracleParameter(":defectprocedureid",productionDefect.DefectProcedureID),
- new OracleParameter(":defectprocedurecode",productionDefect.DefectProcedureCode),
- new OracleParameter(":defectprocedurename",productionDefect.DefectProcedureName),
- new OracleParameter(":defectuserid",productionDefect.DefectUserID),
- new OracleParameter(":defectusercode",productionDefect.DefectUserCode),
- new OracleParameter(":defectusername",productionDefect.DefectUserName),
- new OracleParameter(":defectjobs",productionDefect.DefectJobs),
- new OracleParameter(":remarks",productionDefect.Remarks),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":defectfine",productionDefect.DefectFine),
- new OracleParameter(":misseduserid",productionDefect.MissedUserID),
- new OracleParameter(":missedusercode",productionDefect.MissedUserCode),
- new OracleParameter(":missedusername",productionDefect.MissedUserName),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":SpecialDefect",productionDefect.SpecialDefect==null?"0":productionDefect.SpecialDefect),
- new OracleParameter(":DefectDeductionNum",productionDefect.DefectDeductionNum==null?0:productionDefect.DefectDeductionNum),
- new OracleParameter(":CheckTime",pdaCheckTime),
- };
- }
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- //// 查询新插入的生产数据ID
- //sql = "select SEQ_PM_Defect_DefectID.Currval from dual";
- //string idStr = oracleTrConn.GetSqlResultToStr(sql);
- //int productionDefectID = 0;
- //if (!string.IsNullOrEmpty(idStr))
- //{
- // productionDefectID = int.Parse(idStr);
- //}
- //else
- //{
- // return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- //}
- #region 插入生产缺陷责任者
- if (productionDefect.DefectResponsibles != null)
- {
- foreach (DefectResponsibleEntity DefectResponsible in productionDefect.DefectResponsibles)
- {
- #region SQL
- sql = "insert into tp_pm_defectresponsible"
- + " (productiondefectid,"
- + " staffid,"
- + " userid,"
- + " usercode,"
- + " Ujobsid,"
- + " SJobsID,"
- + " staffstatus,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid)"
- + " values"
- + " (:productiondefectid,"
- + " :staffid,"
- + " :userid,"
- + " :usercode,"
- + " :ujobsid,"
- + " :sjobsid,"
- + " :staffstatus,"
- + " :accountid,"
- + " :createuserid,"
- + " :updateuserid)";
- #endregion
- #region 参数
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":productiondefectid",productionDefectID),
- new OracleParameter(":staffid",DefectResponsible.StaffID),
- new OracleParameter(":userid",DefectResponsible.UserID),
- new OracleParameter(":usercode",DefectResponsible.UserCode),
- new OracleParameter(":ujobsid",DefectResponsible.UJobsID),
- new OracleParameter(":sjobsid",DefectResponsible.SJobsID),
- new OracleParameter(":staffstatus",DefectResponsible.StaffStatus),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- #endregion
- result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- }
- }
- #endregion
- #region 插入生产漏检缺陷责任者
- if (productionDefect.DefectMissedResponsibles != null)
- {
- foreach (DefectMissedResponsibleEntity DefectMissedResponsible in productionDefect.DefectMissedResponsibles)
- {
- #region SQL
- sql = "insert into TP_PM_DefectMissedResponsible"
- + " (productiondefectid,"
- + " staffid,"
- + " userid,"
- + " usercode,"
- + " Ujobsid,"
- + " SJobsID,"
- + " staffstatus,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid)"
- + " values"
- + " (:productiondefectid,"
- + " :staffid,"
- + " :userid,"
- + " :usercode,"
- + " :ujobsid,"
- + " :sjobsid,"
- + " :staffstatus,"
- + " :accountid,"
- + " :createuserid,"
- + " :updateuserid)";
- #endregion
- #region 参数
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":productiondefectid",productionDefectID),
- new OracleParameter(":staffid",DefectMissedResponsible.StaffID),
- new OracleParameter(":userid",DefectMissedResponsible.UserID),
- new OracleParameter(":usercode",DefectMissedResponsible.UserCode),
- new OracleParameter(":ujobsid",DefectMissedResponsible.UJobsID),
- new OracleParameter(":sjobsid",DefectMissedResponsible.SJobsID),
- new OracleParameter(":staffstatus",DefectMissedResponsible.StaffStatus),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- #endregion
- result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- }
- }
- #endregion
- #region 添加图片
- if (productionDefect.DefectImages != null)
- {
- DateTime upTime = DateTime.Now;
- foreach (DefectImageEntity defectImage in productionDefect.DefectImages)
- {
- // 图片路径为空。上传图片返回路径
- if (string.IsNullOrEmpty(defectImage.ImagePath))
- {
- defectImage.ImagePath = CommonModuleLogic.CommonModuleLogic
- .UpLoadImg(Constant.SYSTEM_MODULE_PM, upTime, defectImage.Image);
- defectImage.ThumbnailPath = CommonModuleLogic.CommonModuleLogic
- .ConvertThumbnail(Constant.SYSTEM_MODULE_PM, upTime, defectImage.Image);
- }
- else
- {
- // 安卓端上传的图片
- defectImage.ImagePath = CommonModuleLogic.CommonModuleLogic
- .MoveImg(Constant.SYSTEM_MODULE_PM, upTime, defectImage.ImagePath);
- defectImage.ThumbnailPath = CommonModuleLogic.CommonModuleLogic
- .ConvertThumbnail(Constant.SYSTEM_MODULE_PM, upTime, defectImage.ImagePath);
- }
- #region 保存图片
- sql = "insert into tp_pm_defectimage"
- + " ("
- + " productiondefectid,"
- + " barcode,"
- + " thumbnailpath,"
- + " imagepath,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid)"
- + " values"
- + " ("
- + " :productiondefectid,"
- + " :barcode,"
- + " :thumbnailpath,"
- + " :imagepath,"
- + " :accountid,"
- + " :createuserid,"
- + " :updateuserid)";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":productiondefectid",productionDefectID),
- new OracleParameter(":barcode",productionDefect.BarCode),
- new OracleParameter(":thumbnailpath",defectImage.ThumbnailPath),
- new OracleParameter(":imagepath",defectImage.ImagePath),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #endregion
- }
- }
- #endregion
- // 保存成功返回null
- return null;
- }
- #endregion
- #region 进度考核奖惩
- /// <summary>
- /// 根据传入的实体保存 进度考核奖惩记录
- /// </summary>
- /// <param name="pAdminRAPEntity">进度考核奖惩实体</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="pStatus">新增还是编辑枚举</param>
- /// <returns>PMResultEntity操作结果状态信息</returns>
- public static PMResultEntity SaveStaffProgressRAPInfo(PMProgressRAPEntity pProgressRAPEntity, SUserInfo sUserInfo, WCFConstant.FormMode pStatus)
- {
- PMResultEntity resultEnity = new PMResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- if (pProgressRAPEntity == null)
- {
- resultEnity.OperateStatus = 0;
- return resultEnity;
- }
- oracleTrConn.Connect();
- if (pStatus == WCFConstant.FormMode.Add)
- {
- string strSeq = oracleTrConn.GetSqlResultToStr("Select SEQ_PM_ProgressRAP_RAPID.nextval from dual");
- #region 新建时插入数据
- string strSql1 = "Insert Into TP_PM_ProgressRAP (RAPID,"
- + "STAFFID"
- + ",RAPTYPE"
- + ",REASON"
- + ",RAPDATE"
- + ",RAPAMOUNT"
- + ",REMARKS"
- + ",AUDITSTATUS"
- + ",ACCOUNTID"
- + ",CREATEUSERID"
- + ",UPDATEUSERID)"
- + " Values ("
- + ":RAPID"
- + ",:pSTAFFID"
- + ",:pRAPTYPE"
- + ",:pREASON"
- + ",:pRAPDATE"
- + ",:pRAPAMOUNT"
- + ",:pREMARKS"
- + ",:pAUDITSTATUS"
- + ",:pACCOUNTID"
- + ",:pCREATEUSERID"
- + ",:pUPDATEUSERID"
- + ")";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":RAPID", OracleDbType.Int32, Convert.ToInt32(strSeq) , ParameterDirection.Input),
- new OracleParameter(":pSTAFFID", OracleDbType.Int32, pProgressRAPEntity.StaffID , ParameterDirection.Input),
- new OracleParameter(":pRAPTYPE", OracleDbType.Double, pProgressRAPEntity.RAPType , ParameterDirection.Input),
- new OracleParameter(":pREASON", OracleDbType.Varchar2, pProgressRAPEntity.Reason , ParameterDirection.Input),
- new OracleParameter(":pRAPDATE", OracleDbType.Date, pProgressRAPEntity.RAPDate , ParameterDirection.Input),
- new OracleParameter(":pRAPAMOUNT", OracleDbType.Double, pProgressRAPEntity.RAPAmount , ParameterDirection.Input),
- new OracleParameter(":pREMARKS", OracleDbType.Varchar2, pProgressRAPEntity.Remarks , ParameterDirection.Input),
- new OracleParameter(":pAUDITSTATUS", OracleDbType.Int32, 0 , ParameterDirection.Input),
- new OracleParameter(":pACCOUNTID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- new OracleParameter(":pCREATEUSERID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pUPDATEUSERID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(strSql1, parmetersSql1);
- //string strSeq = oracleTrConn.GetSqlResultToStr("Select SEQ_PM_ProgressRAP_RAPID.Currval from dual");
- resultEnity.OperateKey = Convert.ToInt32(strSeq);
- }
- else
- {
- #region 判断数据是否可以编辑
- string strSlq2 = "Select max(AuditStatus) From TP_PM_ProgressRAP Where RAPID = :pRAPID And OPTimeStamp = :pOPTimeStamp";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":pRAPID", OracleDbType.Int32, pProgressRAPEntity.RAPID , ParameterDirection.Input),
- new OracleParameter(":pOPTimeStamp", OracleDbType.TimeStamp, pProgressRAPEntity.OPTimeStamp , ParameterDirection.Input),
- };
- string strAuditStatus = oracleTrConn.GetSqlResultToStr(strSlq2, parmetersSql2);
- if (string.IsNullOrEmpty(strAuditStatus))
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity;
- }
- if (!"0".Equals(strAuditStatus))
- {
- //不是待审批状态
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -1;
- return resultEnity;
- }
- #endregion
- #region 编辑时更新数据
- string strSql3 = "Update TP_PM_ProgressRAP Set "
- + "RAPTYPE = :pRAPTYPE"
- + ",REASON = :pREASON"
- + ",RAPDATE = :pRAPDATE"
- + ",RAPAMOUNT = :pRAPAMOUNT"
- + ",REMARKS = :pREMARKS"
- + ",UPDATEUSERID = :pUPDATEUSERID"
- + " Where RAPID = :pRAPID And STAFFID = :pSTAFFID And AccountID = :pAccountID";
- OracleParameter[] parmetersSql3 = new OracleParameter[]
- {
- new OracleParameter(":pRAPTYPE", OracleDbType.Double, pProgressRAPEntity.RAPType , ParameterDirection.Input),
- new OracleParameter(":pREASON", OracleDbType.Varchar2, pProgressRAPEntity.Reason , ParameterDirection.Input),
- new OracleParameter(":pRAPDATE", OracleDbType.Date, pProgressRAPEntity.RAPDate , ParameterDirection.Input),
- new OracleParameter(":pRAPAMOUNT", OracleDbType.Double, pProgressRAPEntity.RAPAmount , ParameterDirection.Input),
- new OracleParameter(":pREMARKS", OracleDbType.Varchar2, pProgressRAPEntity.Remarks , ParameterDirection.Input),
- new OracleParameter(":pUPDATEUSERID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pRAPID", OracleDbType.Int32, pProgressRAPEntity.RAPID , ParameterDirection.Input),
- new OracleParameter(":pSTAFFID", OracleDbType.Int32, pProgressRAPEntity.StaffID , ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(strSql3, parmetersSql3);
- resultEnity.OperateKey = pProgressRAPEntity.RAPID;
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 进度考核奖惩审批
- /// </summary>
- /// <param name="pAdminRAPEntity">进度考核奖惩实体</param>
- /// <param name="pState">审批状态 True 通过 False 不通过</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>PMResultEntity操作结果状态信息</returns>
- public static PMResultEntity SaveStaffProgressRAPApprovalInfo(PMProgressRAPEntity pProgressRAPEntity, bool pState, SUserInfo sUserInfo)
- {
- PMResultEntity resultEnity = new PMResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- if (pProgressRAPEntity == null)
- {
- resultEnity.OperateStatus = 0;
- return resultEnity;
- }
- oracleTrConn.Connect();
- #region 判断数据是否可以编辑
- string strSlq1 = "Select max(AuditStatus) From TP_PM_ProgressRAP Where RAPID = :pRAPID And OPTimeStamp = :pOPTimeStamp";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":pRAPID", OracleDbType.Int32, pProgressRAPEntity.RAPID , ParameterDirection.Input),
- new OracleParameter(":pOPTimeStamp", OracleDbType.TimeStamp, pProgressRAPEntity.OPTimeStamp , ParameterDirection.Input),
- };
- string strAuditStatus = oracleTrConn.GetSqlResultToStr(strSlq1, parmetersSql1);
- if (string.IsNullOrEmpty(strAuditStatus))
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity;
- }
- if (!"0".Equals(strAuditStatus))
- {
- //不是待审批状态
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -1;
- return resultEnity;
- }
- #endregion
- #region 更新审批数据
- int intAuditStatus = 2; //2:审核未通过
- if (pState)
- {
- intAuditStatus = 1; //1:审核通过;
- }
- string strSql2 = "Update TP_PM_ProgressRAP Set "
- + "AUDITSTATUS = :pAUDITSTATUS"
- + ",AUDITOR = :pAUDITOR"
- + ",AuditlDate = sysdate"
- + ",ACCOUNTDATE = FUN_CMN_GetAccountDate(:pAccountID1)"
- + ",UPDATEUSERID = :pUPDATEUSERID"
- + " Where RAPID = :pRAPID And AccountID = :pAccountID";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":pAUDITSTATUS", OracleDbType.Int32,intAuditStatus, ParameterDirection.Input),
- new OracleParameter(":pAUDITOR", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pAccountID1", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- new OracleParameter(":pUPDATEUSERID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pRAPID", OracleDbType.Int32, pProgressRAPEntity.RAPID , ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(strSql2, parmetersSql2);
- resultEnity.OperateKey = pProgressRAPEntity.RAPID;
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 设置进度考核奖惩停用
- /// </summary>
- /// <param name="pRAPID">进度考核奖惩编号</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>PMResultEntity操作结果状态信息</returns>
- public static PMResultEntity SetStaffProgressRAPValueFlag(int pRAPID, SUserInfo sUserInfo)
- {
- PMResultEntity resultEnity = new PMResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- string sql = "Select max(SettlementFlag) From TP_PM_ProgressRAP Where RAPID =" + pRAPID + " And AuditStatus = 0 And ValueFlag = 1";
- string strSettlementFlag = oracleTrConn.GetSqlResultToStr(sql);
- if (!string.IsNullOrEmpty(strSettlementFlag))
- {
- if ("1".Equals(strSettlementFlag)) //工资结算标识 1:已经结算 0:未结算
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -3;
- return resultEnity;
- }
- string sqlString = "Update TP_PM_ProgressRAP Set ValueFlag = 0,UpdateUserID = :pUpdateUserID"
- + " Where RAPID = :pRAPID And AccountID = :pAccountID";
- OracleParameter[] parmetersSql = new OracleParameter[]
- {
- new OracleParameter(":pUpdateUserID", OracleDbType.Int32,sUserInfo.UserID, ParameterDirection.Input),
- new OracleParameter(":pRAPID", OracleDbType.Int32, pRAPID , ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- };
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString, parmetersSql);
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- else
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity;
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #endregion
- #region 私有方法
- /// <summary>
- /// 将窑车号下的条码转换成Table
- /// </summary>
- /// <param name="oracleTrConn">数据连接</param>
- /// <param name="productionTable">手机传入的Table</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>DataTable</returns>
- private static DataTable CarNoInfoConvertToTable(IDBTransaction oracleTrConn, DataTable productionTable, SUserInfo sUserInfo)
- {
- if (productionTable != null
- && productionTable.Rows.Count > Constant.INT_IS_ZERO)
- {
- DataRow row = productionTable.Rows[Constant.INT_IS_ZERO];
- string sql = "select carGoods.Barcode,"
- + " carGoods.KilnCarID,"
- + " car.KilncarCode,"
- + " car.KilncarName,"
- + " kiln.kilnid,"
- + " kiln.kilnCode,"
- + " kiln.kilnName,"
- + " carGoods.Kilncarposition,"
- + " carGoods.KilnCarBatchNo,"
- + " carGoods.GoodsID,"
- + " goods.GoodsCode,"
- + " goods.GoodsName,"
- + " :userID as UserID,"
- + " :userCode as UserCode,"
- + " :userName as UserName,"
- + " :Remarks as Remarks"
- + " from TP_PM_KilnCarGoods carGoods"
- + " inner join TP_MST_KilnCar car on car.KilnCarID = carGoods.KilnCarID"
- + " inner join TP_MST_Kiln kiln on kiln.KilnID = car.KilnID"
- + " inner join TP_MST_Goods goods on goods.goodsid = carGoods.GoodsID"
- + " where car.kilncarcode = :kilncarcode and carGoods.AccountID = :accountID";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":userID",row["UserID"].ToString()),
- new OracleParameter(":userCode",row["UserCode"].ToString()),
- new OracleParameter(":userName",row["UserName"].ToString()),
- new OracleParameter(":kilncarcode",row["KilnCarCode"].ToString()),
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":Remarks",row["Remarks"].ToString()),
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, oracleParameters);
- if (ds != null
- && ds.Tables.Count > Constant.INT_IS_ZERO
- && ds.Tables[0].Rows.Count > Constant.INT_IS_ZERO)
- {
- return ds.Tables[0];
- }
- return productionTable;
- }
- return productionTable;
- }
- #endregion
- #region PDA端保存条码
- /// <summary>
- /// 添加成品编辑
- /// </summary>
- /// <param name="oracleTrConn">数据连接</param>
- /// <param name="procedure">工序对象</param>
- /// <param name="productionDataEntitys">生产数据集</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddFinishCheckPDA(IDBTransaction oracleTrConn, ProcedureEntity procedure, ProductionDataEntity[] productionDataEntitys, SUserInfo sUserInfo)
- {
- string errMsg = "";
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- string finishedloadbatchno = DateTime.Now.ToString("yyMMddHHmmss-") + centralizedBatchNo;
- foreach (ProductionDataEntity productionData in productionDataEntitys)
- {
- bool RejectToReject = false;
- if (string.IsNullOrEmpty(productionData.Barcode))
- {
- throw new Exception("传入的条码号为空");
- }
- int goodsID = Constant.INT_IS_ZERO;
- string goodsCode = string.Empty;
- string goodsName = string.Empty;
- // 注浆者工号
- string groutingUserCode = string.Empty;
- // 次品标识
- bool substandardFlag = false;
- #region 校验条码有效性
- errMsg = CheckBarcode(oracleTrConn, procedure.ProcedureID, productionData.Barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- // 编辑重烧时,会提示不可到达;编辑次品时,会提示已经报废
- //if (productionData.ProductionDataID == 0)
- //if (!errMsg.Contains("次品"))
- return errMsg;
- }
- #endregion
- int isInProduction = 1;
- #region 修改条码
- if (productionData.ProductionDataID > 0) //表示编辑条码
- {
- #region 验证改判有效期
- // 前台已有相关验证,但还是产生了超期改判,后台保存前增加验证。
- string sqlString = "select pdin.createtime from tp_pm_productiondatain pdin where pdin.productiondataid = " + productionData.ProductionDataID;
- DateTime createtime = Convert.ToDateTime(oracleTrConn.GetSqlResultToObj(sqlString)).Date;
- // 参数验证用服务端当前设置
- sqlString = "SELECT sst.settingvalue\n" +
- " FROM tp_mst_systemsetting sst\n" +
- " WHERE sst.accountid = " + sUserInfo.AccountID + "\n" +
- " AND sst.settingcode = 'S_PM_009'";
- string strValue = oracleTrConn.GetSqlResultToStr(sqlString);
- int days = 0;
- int pDays = 0;
- if (int.TryParse(strValue, out pDays))
- {
- days = pDays;
- }
- if (days != 0 && createtime <= DateTime.Now.Date.AddDays(-days))
- {
- return string.Format(Messages.MSG_S_PM_009, createtime.ToString("yyyy-MM-dd"), days.ToString(), createtime.AddDays(days - 1).ToString("yyyy-MM-dd"));
- }
- #endregion
- //
- string sqlOPTimeStamp = "";
- OracleParameter[] parmetersSql = null;
- #region 验证在产时间戳
- if (productionData.OPTimeStampPDA == null) // 表示PC端,因为只有安卓端才给此数据字段给值
- {
- sqlOPTimeStamp = @"select
- 1
- from TP_PM_InProduction
- where
- TP_PM_InProduction.BarCode=:BarCode and TP_PM_InProduction.OPTimeStamp = :OPTimeStamp
- union
- select
- 0
- from Tp_Pm_Inproductiontrash
- where
- Tp_Pm_Inproductiontrash.BarCode=:BarCode and Tp_Pm_Inproductiontrash.OPTimeStamp = :OPTimeStamp ";
- parmetersSql = new OracleParameter[]
- {
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, productionData.OPTimeStamp, ParameterDirection.Input),
- new OracleParameter(":BarCode", OracleDbType.NVarchar2, productionData.Barcode, ParameterDirection.Input),
- };
- }
- else
- {
- sqlOPTimeStamp = @"select
- 1
- from TP_PM_InProduction
- where
- TP_PM_InProduction.BarCode=:BarCode and TP_PM_InProduction.OPTimeStamp =TO_TIMESTAMP(to_char(:OPTimeStamp),'DD-MM-YYHH12.MI.SS.FFAM')
- union
- select
- 0
- from Tp_Pm_Inproductiontrash
- where
- Tp_Pm_Inproductiontrash.BarCode=:BarCode and Tp_Pm_Inproductiontrash.OPTimeStamp =TO_TIMESTAMP(to_char(:OPTimeStamp),'DD-MM-YYHH12.MI.SS.FFAM')";
- parmetersSql = new OracleParameter[]
- {
- new OracleParameter(":OPTimeStamp", OracleDbType.NVarchar2, productionData.OPTimeStampPDA, ParameterDirection.Input),
- new OracleParameter(":BarCode", OracleDbType.NVarchar2, productionData.Barcode, ParameterDirection.Input),
- };
- }
- DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sqlOPTimeStamp, parmetersSql);
- if (returnDataset != null
- && returnDataset.Tables[0].Rows.Count == 0)
- {
- return "数据已经被修改,请重新进行编辑";
- }
- isInProduction = Convert.ToInt32(returnDataset.Tables[0].Rows[0][0]);
- #endregion
- //如果原来是 次品 / 废品 xuwei modify 2019-12-13 加入 废品识别
- if (productionData.OrgGoodsLevelTypeID == Constant.GoodsLevelType.Reject.GetHashCode()
- ||
- productionData.OrgGoodsLevelTypeID == Constant.GoodsLevelType.Waste.GetHashCode()
- )
- {
- //改为 次品 废品 xuwei modify 2019-12-13 加入废品识别
- if (productionData.GoodsLevelTypeID == Constant.GoodsLevelType.Reject.GetHashCode()
- ||
- productionData.GoodsLevelTypeID == Constant.GoodsLevelType.Waste.GetHashCode()
- )
- {
- // 删除生产数据及相关表与报损表
- errMsg = DeleteSubstandardToSubstandardByID(oracleTrConn, productionData.ProductionDataID, productionData.Barcode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- RejectToReject = true;
- } //改为不是 次品 废品 xuwei modify 2019-12-13 加入废品识别
- else if (productionData.GoodsLevelTypeID != Constant.GoodsLevelType.Reject.GetHashCode()
- ||
- productionData.GoodsLevelTypeID != Constant.GoodsLevelType.Waste.GetHashCode()
- )
- {
- // 删除生产数据及相关表与报损表
- errMsg = DeleteSubstandardToOtherByID(oracleTrConn, productionData.ProductionDataID, productionData.Barcode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- }
- }
- else
- {
- // 原来产品分级不是次品
- errMsg = DeleteNormalToOtherByID(oracleTrConn, productionData.ProductionDataID, productionData.Barcode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- }
- }
- else // wangx 2016-12-13 防止同时两个人新建数据,加判断条件
- {
- string sqlCurrrentProcedure = @"select Flowprocedureid from tp_pm_inproduction where BarCode=:BarCode";
- OracleParameter[] parmetersSql = null;
- parmetersSql = new OracleParameter[]
- {
- new OracleParameter(":BarCode", OracleDbType.NVarchar2, productionData.Barcode, ParameterDirection.Input),
- };
- DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sqlCurrrentProcedure, parmetersSql);
- // 判定次品时,在产表中已经没有条码数据 modify by chenxy 2017-07-03 begin
- //if (returnDataset != null
- // && returnDataset.Tables[0].Rows.Count > 0)
- //{
- // if (Convert.ToInt32(returnDataset.Tables[0].Rows[0]["Flowprocedureid"]) == procedure.ProcedureID)
- // {
- // return "【此条码生产数据已被修改,请重开画面后再扫描】";
- // }
- //}
- if (returnDataset == null ||
- returnDataset.Tables.Count == 0 ||
- returnDataset.Tables[0].Rows.Count == 0 ||
- Convert.ToInt32(returnDataset.Tables[0].Rows[0]["Flowprocedureid"]) == procedure.ProcedureID
- )
- {
- return "【此条码生产数据已被修改,请重新扫描此条码】";
- }
- // 判定次品时,在产表中已经没有条码数据 modify by chenxy 2017-07-03 end
- }
- #endregion
- // 查询新插入的生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- int productionDataID = 0;
- if (!string.IsNullOrEmpty(idStr))
- {
- productionDataID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- int? ClassesSettingID = null;//班次配置ID
- #region 添加生产者数据
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, productionData.UserID, productionData.UserName, sUserInfo, ref ClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 添加生产数据
- #region 属性赋值
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = Convert.ToInt32(idStr);
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.CompleteProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, productionData.Barcode);
- // 重烧
- if (productionData.GoodsLevelTypeID == (int)Constant.GoodsLevelType.ReFire)
- {
- //productionData.GoodsLevelID = null;
- //productionData.IsReFire = (int)Constant.GoodsLevelType.ReFire;
- productionData.IsReFire = (int)Constant.ReFireFlag.No;//产品分级的时候,并不标记,走过重烧第一个结点之后,更新此字段
- }
- // 次品 废品 xuwei 2019-12-13 加入 废品识别
- else if (productionData.GoodsLevelTypeID == (int)Constant.GoodsLevelType.Reject
- ||
- productionData.GoodsLevelTypeID == (int)Constant.GoodsLevelType.Waste
- )
- {
- //productionData.GoodsLevelID = null;
- substandardFlag = true;
- }
- // 查询新插入的生产数据ID
- //if (productionData.GoodsLevelTypeID != (int)Constant.GoodsLevelType.ReFire)
- // {
- //不加条件valueflag,是因为,成检后重烧走过之后,在次重烧,以后也是重烧状态
- //string sqlReFire = "select * from tp_PM_ProductionData where ProductionData=(select max(ProductionDataid) from ProductionData where barcode=" + productionData.Barcode + " and ProcedureID=" + productionData.ProcedureID + ")";
- //if (productionData.GoodsLevelTypeID != (int)Constant.GoodsLevelType.ReFire)
- // {
- ////// string sqlReFire = @"select
- ////// isrefire
- ////// from tp_pm_inproduction where barcode=:barcode
- ////// union
- ////// select
- ////// isrefire
- ////// from TP_PM_InProductionTrash where barcode=:barcode
- ////// ";
- ////// OracleParameter[] ReFireparas = new OracleParameter[] {
- ////// new OracleParameter(":barcode", productionData.Barcode),
- ////// };
- ////// DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire, ReFireparas);
- ////// if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- ////// {
- ////// productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- ////// }
- // }
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = goodsID;
- productionData.GoodsCode = goodsCode;
- productionData.GoodsName = goodsName;
- productionData.GoodsLevelID = productionData.GoodsLevelID;
- productionData.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- //if (productionData.GoodsLevelTypeID == (int)Constant.GoodsLevelType.Reject)
- //{
- // productionData.GoodsEnding = Constant.GoodsLevelType.Reject.GetHashCode().ToString();
- //}
- //else
- //{
- // productionData.GoodsEnding = null;
- //}
- #endregion
- string OutSpecialRepairflag = "0";//干补标识
- //errMsg = AddProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- errMsg = AddFinishCheckProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //#region 添加生产者数据
- //errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, productionData.UserID, productionData.UserName, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- #region 条码有缺陷
- #region 是次品 添加废弃产品
- string ResponProcedureidStr = "";
- if (substandardFlag)
- {
- #region 修改在产产品数据的当前工序,防止直接报损在产工序没有改过来,记录的是上一个工序
- string updateInInProductionForScrap = @"Update tp_pm_inproduction
- set FlowProcedureID=:flowProcedureID,ProcedureID=:flowProcedureID where barcode=:barcode";
- List<OracleParameter> paras = new List<OracleParameter>();
- paras.Add(new OracleParameter(":barcode", productionData.Barcode));
- paras.Add(new OracleParameter(":flowProcedureID", procedure.ProcedureID));
- oracleTrConn.ExecuteNonQuery(updateInInProductionForScrap, paras.ToArray());
- #endregion
- #region 添加废弃产品
- ScrapProductEntity scrapProduct = new ScrapProductEntity();
- #region 属性赋值
- scrapProduct.BarCode = productionData.Barcode;
- scrapProduct.ScrapType = Constant.ScrapType.Substandard.GetHashCode();
- scrapProduct.ResponType = Constant.ScrapResponType.Procedure.GetHashCode();
- scrapProduct.ScrapDate = accountDate;
- scrapProduct.Rreason = Constant.SCRAPTYPE_SUBSTANDARD;
- scrapProduct.AuditStatus = Constant.AuditStatus.Agree.GetHashCode();
- scrapProduct.Auditor = sUserInfo.UserID;
- scrapProduct.AuditlDate = accountDate;
- scrapProduct.AccountDate = accountDate;
- scrapProduct.GoodsLevelID = productionData.GoodsLevelID;
- scrapProduct.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- scrapProduct.IsPublicBody = productionData.IsPublicBody;
- // 查询新插入的废弃ID
- string ResponProceduresql = "select SEQ_PM_ScrapProduct_ID.nextval from dual";
- ResponProcedureidStr = oracleTrConn.GetSqlResultToStr(ResponProceduresql);
- scrapProduct.ScrapProductID = Convert.ToInt32(ResponProcedureidStr);
- scrapProduct.ScrapType = 1;
- scrapProduct.IsQualityStatistics = 1;//新加的,因为这个报损方法是共通的,用于区别是哪里传进去的
- scrapProduct.ProductionDataID = productionData.ProductionDataID;
- #endregion
- if (!RejectToReject) //不是次品到次品 wangxin 20150417
- {
- // 保存报废
- errMsg = AddScrapProduct(oracleTrConn, scrapProduct, sUserInfo);
- }
- else
- {
- if (isInProduction == 1)
- {
- errMsg = AddScrapProduct(oracleTrConn, scrapProduct, sUserInfo);
- }
- else
- {
- // 保存报废
- errMsg = AddScrapProductRejectToReject(oracleTrConn, scrapProduct, sUserInfo);
- }
- }
- //不是次品到次品 wangxin 20150417
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- // 存在缺陷 插入缺陷表
- if (productionData.ProductionDefects != null)
- {
- foreach (ProductionDefectEntity productionDefect in productionData.ProductionDefects)
- {
- #region 保存缺陷
- productionDefect.ProductionDataID = productionDataID;
- productionDefect.BarCode = productionData.Barcode;
- productionDefect.ProductionLineID = procedure.ProductionLineID;
- productionDefect.ProductionLineCode = procedure.ProductionlineCode;
- productionDefect.ProductionLineName = procedure.ProductionlineName;
- productionDefect.ProcedureID = procedure.ProcedureID;
- productionDefect.ProcedureCode = procedure.ProcedureCode;
- productionDefect.ProcedureName = procedure.ProcedureName;
- productionDefect.UserID = productionData.UserID;
- productionDefect.UserCode = productionData.UserCode;
- productionDefect.UserName = productionData.UserName;
- productionDefect.GoodsID = productionData.GoodsID;
- productionDefect.GoodsCode = productionData.GoodsCode;
- productionDefect.GoodsName = productionData.GoodsName;
- productionData.Remarks = productionData.Remarks;
- productionDefect.ScrapResponFlag
- = string.IsNullOrEmpty(productionDefect.ScrapResponFlag) ? "0" : productionDefect.ScrapResponFlag;
- // 保存缺陷
- errMsg = AddDefect(oracleTrConn, productionDefect, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 是次品 添加废弃责任工序
- if (substandardFlag)
- {
- //if (productionDefect.DefectProcedureID != null)
- {
- #region 添加责任工序
- ResponProcedureEntity responProce = new ResponProcedureEntity();
- //// 查询新插入的废弃ID
- //string ResponProceduresql = "select SEQ_PM_ScrapProduct_ID.Currval from dual";
- //string ResponProcedureidStr = oracleTrConn.GetSqlResultToStr(ResponProceduresql);
- #region 属性赋值
- responProce.BarCode = productionData.Barcode;
- responProce.ProductionDataID = productionDataID;
- responProce.ProductionLineID = productionDefect.ProductionLineID;
- responProce.ProductionLineCode = productionDefect.ProductionLineCode;
- responProce.ProductionLineName = productionDefect.ProductionLineName;
- responProce.ProcedureID = productionDefect.DefectProcedureID;
- responProce.ProcedureCode = productionDefect.DefectProcedureCode;
- responProce.ProcedureName = productionDefect.DefectProcedureName;
- responProce.UserID = productionDefect.DefectUserID;
- responProce.UserCode = productionDefect.DefectUserCode;
- responProce.UserName = productionDefect.DefectUserName;
- responProce.Remarks = productionDefect.Remarks;
- responProce.ScrapProductID = Convert.ToInt32(ResponProcedureidStr);
- #endregion
- // 保存责任工序
- errMsg = AddResponProcedure(oracleTrConn, responProce, productionDefect, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- }
- #endregion
- }
- }
- #endregion
- #region 条码是次品 删除在产产品数据
- if (substandardFlag)
- {
- #region 删除在产产品数据
- InProductionEntity delInProductionEntity = new InProductionEntity();
- delInProductionEntity.BarCode = productionData.Barcode;
- delInProductionEntity.CompleteProcedureID = procedure.ProcedureID;
- delInProductionEntity.ProductionDataID = productionDataID;
- delInProductionEntity.GoodsLevelID = productionData.GoodsLevelID;
- delInProductionEntity.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- // 执行删除 在产数据
- errMsg = DeletePDAInProduction(oracleTrConn, delInProductionEntity, false, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- #region 条码不是次品
- if (!substandardFlag)
- {
- #region 中间工序/重烧 修改在产产品数据
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Middle
- || productionData.IsReFire == Constant.GoodsGrade.ReFire.GetHashCode())
- {
- #region 修改在产产品数据的当前工序
- InProductionEntity inProductionEntity = new InProductionEntity();
- inProductionEntity.BarCode = productionData.Barcode;
- //流程工序
- inProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- //inProductionEntity.CompleteProcedureID = procedure.ProcedureID;
- inProductionEntity.ProcedureID = procedure.ProcedureID;
- //生产数据ID
- inProductionEntity.ProductionDataID = productionDataID;
- // 工序模型
- inProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- inProductionEntity.ModelType = procedure.ModelType;
- // 生产工号
- inProductionEntity.UserID = productionData.UserID;
- // 重烧
- inProductionEntity.IsReFire = productionData.IsReFire;
- // 缺陷
- inProductionEntity.DefectFlag = productionData.DefectFlag;
- // 产品分级
- inProductionEntity.GoodsGrade = productionData.GoodsGrade;
- // 返工工序ID
- inProductionEntity.ReworkProcedureID = productionData.ReworkProcedureID;
- inProductionEntity.GoodsLevelID = productionData.GoodsLevelID;
- inProductionEntity.GoodsLevelTypeID = productionData.GoodsLevelTypeID;
- inProductionEntity.IsPublicBody = productionData.IsPublicBody;
- // 执行修改
- errMsg = UpdateInProduction(oracleTrConn, inProductionEntity, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- #region 结束工序 添加成品数据 删除在产产品数据
- else if (procedure.NodeType == (int)Constant.ProcedureNodeType.End)
- {
- #region 添加成品数据 删除在产产品数据
- FinishedProductEntity finishedProduct = new FinishedProductEntity();
- finishedProduct.BarCode = productionData.Barcode;
- errMsg = AddFinishedProduct(oracleTrConn, finishedProduct, sUserInfo, finishedloadbatchno);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- InProductionEntity delInProductionEntity = new InProductionEntity();
- delInProductionEntity.BarCode = productionData.Barcode;
- // 执行删除 在产数据
- errMsg = DeleteInProduction(oracleTrConn, delInProductionEntity, true, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- }
- #endregion
- #region 写入检验标识 CheckFlag 用于计件 xuwei 2020-04-21
- oracleTrConn.ExecuteNonQuery(@"
- UPDATE
- TP_PM_PRODUCTIONDATA SET CHECKFLAG = :CHECKFLAG
- WHERE
- PRODUCTIONDATAID = :PRODUCTIONDATAID
- ",
- new OracleParameter[] {
- new OracleParameter(":CHECKFLAG",productionData.CheckFlag),
- new OracleParameter(":PRODUCTIONDATAID",productionDataID)
- }
- );
- #endregion
- }
- return errMsg;
- }
- /// <summary>
- /// 编辑后删除生产数据
- /// </summary>
- /// <param name="productionDataID">生产数据ID</param>
- /// <returns>int</returns>
- public static string DeleteSubstandardToSubstandardByID(IDBTransaction oracleTrConn, int productionDataID, string barcode, SUserInfo sUserInfo)
- {
- int deleteRow = 0;
- try
- {
- string sqlString5 = @"update TP_PM_DefectMissedResponsible set ValueFlag=0, UpdateUserID=:UpdateUserID
- where TP_PM_DefectMissedResponsible.Productiondefectid in
- (
- select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
- )";
- string sqlString4 = @"update TP_PM_ProductionDataIn set ValueFlag=0, UpdateUserID=:UpdateUserID
- where
- TP_PM_ProductionDataIn.Productiondataid=:ProductionDataID
- ";
- string sqlString3 = @"update TP_PM_Defect set ValueFlag=0, UpdateUserID=:UpdateUserID
- where TP_PM_Defect.Productiondataid =:ProductionDataID";
- string sqlString2 = @"update TP_PM_DefectResponsible set ValueFlag=0, UpdateUserID=:UpdateUserID
- where TP_PM_DefectResponsible.Productiondefectid in
- (
- select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
- )";
- string sqlString = @"update TP_PM_DefectImage set ValueFlag=0, UpdateUserID=:UpdateUserID
- where TP_PM_DefectImage.Productiondefectid in
- (
- select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
- )";
- // string sqlScrapProduct = @"update TP_PM_ScrapProduct set ValueFlag=0 where barcode=:barcode";
- string sqlScrapProduct = @"update TP_PM_ScrapProduct set ValueFlag=0, UpdateUserID=:UpdateUserID where ScrapProductID=(
- select max(ScrapProductID) from TP_PM_ScrapProduct where barcode=:barcode)";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- };
- OracleParameter[] ScrapProductparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- };
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString2, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString3, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString4, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString5, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlScrapProduct, ScrapProductparas);
- // 有错误
- if (deleteRow == 0)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- return null;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 编辑后删除生产数据
- /// </summary>
- /// <param name="productionDataID">生产数据ID</param>
- /// <returns>int</returns>
- public static string DeleteSubstandardToOtherByID(IDBTransaction oracleTrConn, int productionDataID, string barcode, SUserInfo sUserInfo)
- {
- int deleteRow = 0;
- try
- {
- string sqlString5 = @"update TP_PM_DefectMissedResponsible set ValueFlag=0, UpdateUserID=:UpdateUserID
- where TP_PM_DefectMissedResponsible.Productiondefectid in
- (
- select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
- )";
- string sqlString4 = @"update TP_PM_ProductionDataIn set ValueFlag=0, UpdateUserID=:UpdateUserID
- where
- TP_PM_ProductionDataIn.Productiondataid=:ProductionDataID
- ";
- string sqlString3 = @"update TP_PM_Defect set ValueFlag=0, UpdateUserID=:UpdateUserID
- where TP_PM_Defect.Productiondataid =:ProductionDataID";
- string sqlString2 = @"update TP_PM_DefectResponsible set ValueFlag=0, UpdateUserID=:UpdateUserID
- where TP_PM_DefectResponsible.Productiondefectid in
- (
- select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
- )";
- string sqlString = @"update TP_PM_DefectImage set ValueFlag=0, UpdateUserID=:UpdateUserID
- where TP_PM_DefectImage.Productiondefectid in
- (
- select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
- )";
- //string sqlScrapProduct = @"update TP_PM_ScrapProduct set ValueFlag=0 where barcode=:barcode";
- string sqlScrapProduct = @"update TP_PM_ScrapProduct set ValueFlag=0, UpdateUserID=:UpdateUserID where ScrapProductID=(
- select max(ScrapProductID) from TP_PM_ScrapProduct where barcode=:barcode)";
- string sqlExist = "select 1 from tp_pm_inproduction where barcode = :barcode ";
- string sqlInsert = @"insert into TP_PM_InProduction
- (
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateTime,
- CreateUserID,
- UpdateTime,
- UpdateUserID,
- OPTimeStamp,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- ProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid, ISREWORKFLAG, SEMICHECKID
- )
- select
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateTime,
- CreateUserID,
- UpdateTime,
- UpdateUserID,
- OPTimeStamp,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- ProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid, ISREWORKFLAG, SEMICHECKID
- from TP_PM_InProductionTrash
- where barcode=:barcode
- ";
- string sqlDelete = @"delete from TP_PM_InProductionTrash where barcode=:barcode";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- };
- OracleParameter[] ScrapProductparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- };
- OracleParameter[] Existparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- };
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString2, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString3, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString4, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString5, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlScrapProduct, ScrapProductparas);
- DataSet dsresult = oracleTrConn.GetSqlResultToDs(sqlExist, Existparas);
- if (dsresult != null && dsresult.Tables[0].Rows.Count == 0)
- {
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlInsert, Existparas);
- }
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlDelete, Existparas);
- // 有错误
- if (deleteRow == 0)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- return null;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 编辑后删除生产数据
- /// </summary>
- /// <param name="productionDataID">生产数据ID</param>
- /// <returns>int</returns>
- public static string DeleteNormalToOtherByID(IDBTransaction oracleTrConn, int productionDataID, string barcode, SUserInfo sUserInfo)
- {
- int deleteRow = 0;
- try
- {
- string sqlString5 = @"update TP_PM_DefectMissedResponsible set ValueFlag=0, UpdateUserID=:UpdateUserID
- where TP_PM_DefectMissedResponsible.Productiondefectid in
- (
- select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
- )";
- string sqlString4 = @"update TP_PM_ProductionDataIn set ValueFlag=0, UpdateUserID=:UpdateUserID
- where
- TP_PM_ProductionDataIn.Productiondataid=:ProductionDataID
- ";
- string sqlString3 = @"update TP_PM_Defect set ValueFlag=0, UpdateUserID=:UpdateUserID
- where TP_PM_Defect.Productiondataid =:ProductionDataID";
- string sqlString2 = @"update TP_PM_DefectResponsible set ValueFlag=0, UpdateUserID=:UpdateUserID
- where TP_PM_DefectResponsible.Productiondefectid in
- (
- select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
- )";
- string sqlString = @"update TP_PM_DefectImage set ValueFlag=0, UpdateUserID=:UpdateUserID
- where TP_PM_DefectImage.Productiondefectid in
- (
- select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
- )";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- };
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString2, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString3, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString4, paras);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlString5, paras);
- // 有错误
- if (deleteRow == 0)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- return null;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 保存条码信息
- /// </summary>
- /// <param name="procedureID">工序ID</param>
- /// <param name="productionDataEntitys">生产数据集</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- public static string AddCheckBarcodePDA(int procedureID, ProductionDataEntity[] productionDataEntitys, SUserInfo sUserInfo)
- {
- string errMsg = "";
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 查询工序信息
- ProcedureEntity procedure = GetProcedurByID(oracleTrConn, procedureID);
- #endregion
- #region 标准检验(半成品)
- if (procedure.ModelType == (int)Constant.ProcedureModelType.Normal)
- {
- errMsg = AddNormalCheck(oracleTrConn, procedure, productionDataEntitys, sUserInfo);
- }
- #endregion
- #region 成品检验
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.QualityStatistics)
- {
- errMsg = AddFinishCheckPDA(oracleTrConn, procedure, productionDataEntitys, sUserInfo);
- }
- #endregion
- #region 半检 xuwei add 2019-12-13
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.SemiQualityStatistics)
- {
- errMsg = AddFinishCheckPDA(oracleTrConn, procedure, productionDataEntitys, sUserInfo);
- }
- #endregion
- #region 入窑前检验
- else if (procedure.ModelType == (int)Constant.ProcedureModelType.IntoKilnCheck)
- {
- errMsg = AddIntoKilnCheck(oracleTrConn, procedure, productionDataEntitys, sUserInfo);
- }
- #endregion
- // 没有错误 提交事务
- if (string.IsNullOrEmpty(errMsg))
- {
- oracleTrConn.Commit();
- }
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return errMsg;
- }
- #endregion
- /// <summary>
- /// 校验干补条码有效
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="procedureID">工序ID</param>
- /// <param name="barcode">条码</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <param name="groutingUserID">返回的注浆者ID</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 袁新成 2015.3.27 新建
- /// </remarks>
- private static string CheckDryRepairBarcode(IDBTransaction oracleTrConn,
- int procedureID,
- string barcode,
- out int goodsID,
- out string goodsCode,
- out string goodsName,
- out string groutingUserCode,
- SUserInfo sUserInfo
- )
- {
- try
- {
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter("in_procedureid",OracleDbType.Int32,procedureID,ParameterDirection.Input),
- new OracleParameter("in_barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
- new OracleParameter("out_errMsg",OracleDbType.Varchar2,2000,"",ParameterDirection.Output),
- new OracleParameter("out_goodsID",OracleDbType.Int32,ParameterDirection.Output),
- new OracleParameter("out_goodsCode",OracleDbType.Varchar2,50,"",ParameterDirection.Output),
- new OracleParameter("out_goodsName",OracleDbType.Varchar2,50,"",ParameterDirection.Output),
- new OracleParameter("out_groutingUserCode",OracleDbType.NVarchar2,50,null,ParameterDirection.Output),
- };
- oracleTrConn.ExecStoredProcedure("pro_pm_checkdryrepairbarcode", paras);
- if (!"null".Equals(paras[3].Value + ""))
- {
- goodsID = Convert.ToInt32(paras[3].Value + "");
- }
- else
- {
- goodsID = 0;
- }
- goodsCode = paras[4].Value + "";
- goodsName = paras[5].Value + "";
- if (!"null".Equals(paras[6].Value + ""))
- {
- groutingUserCode = paras[6].Value + "";
- }
- else
- {
- groutingUserCode = null;
- }
- if ("null".Equals(paras[2].Value + ""))
- {
- return null;
- }
- return paras[2].Value.ToString().Replace("\\n\\r", "\n\r");
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 干补标准计件
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="procedure">工序对象</param>
- /// <param name="barcodeTable">条码信息</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <param name="groutingUserID">返回的注浆者ID</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 袁新成 2015.3.26 新建
- /// </remarks>
- private static string AddDryRepairWorkPiece(IDBTransaction oracleTrConn,
- ProcedureEntity procedure,
- DataTable barcodeTable,
- SUserInfo sUserInfo,
- out int goodsID,
- out string goodsCode,
- out string goodsName,
- out string groutingUserCode, out string logoCode, out string logoName, out string groutingdate)
- {
- try
- {
- int deleteRow = 0;
- goodsID = Constant.INT_IS_ZERO;
- goodsCode = null;
- goodsName = null;
- groutingUserCode = string.Empty; //Constant.INT_IS_ZERO;
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = string.Empty;
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- // 条码信息
- string logoName_Temp = "";
- string logoCode_Temp = "";
- string groutingdate_Temp = "";
- foreach (DataRow barcodeRow in barcodeTable.Rows)
- {
- // 条码
- string barcode = barcodeRow["Barcode"].ToString();
- if (string.IsNullOrEmpty(barcode))
- {
- throw new Exception("传入的条码号为空");
- }
- // 生产工号
- int workUserID = Convert.ToInt32(barcodeRow["UserID"]);
- // 生产工号
- string workUserCode = barcodeRow["UserCode"].ToString();
- //#region 校验条码有效性
- //errMsg = CheckDryRepairBarcode(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- if (procedure.CollectType == 1)
- {
- #region 校验条码有效性
- errMsg = CheckDryRepairBarcode(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- logoName = "";
- logoCode = "";
- groutingdate = "";
- return errMsg;
- }
- #endregion
- }
- else
- {
- string sqlGroutingInfo = @"select tp_pm_groutingdailydetail.goodsid,
- tp_pm_groutingdailydetail.goodscode,
- tp_pm_groutingdailydetail.goodsname,
- tp_pm_groutingdailydetail.usercode as groutingUserCode,
- tp_pm_groutingdailydetail.groutingdate,
- tp_mst_logo.logoid,
- tp_mst_logo.logocode,
- tp_mst_logo.logoname
- from tp_pm_groutingdailydetail
- left join tp_mst_logo
- on tp_pm_groutingdailydetail.logoid=tp_mst_logo.logoid
- where tp_pm_groutingdailydetail.barcode=:barcode
- ";
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":barcode",barcode),
- };
- DataSet dsGrouting = oracleTrConn.GetSqlResultToDs(sqlGroutingInfo, paras);
- if (dsGrouting != null && dsGrouting.Tables[0].Rows.Count > 0)
- {
- goodsID = Convert.ToInt32(dsGrouting.Tables[0].Rows[0]["goodsid"]);
- goodsCode = dsGrouting.Tables[0].Rows[0]["goodscode"].ToString();
- goodsName = dsGrouting.Tables[0].Rows[0]["goodsName"].ToString();
- groutingUserCode = dsGrouting.Tables[0].Rows[0]["groutingUserCode"].ToString();
- logoName = dsGrouting.Tables[0].Rows[0]["logoName"].ToString();
- logoCode = dsGrouting.Tables[0].Rows[0]["logoCode"].ToString();
- groutingdate = dsGrouting.Tables[0].Rows[0]["groutingdate"].ToString();
- logoName_Temp = logoName;
- logoCode_Temp = logoCode;
- groutingdate_Temp = groutingdate;
- }
- }
- #region 数据处理
- #region 处理废弃数据并转回收数据为在产数据
- string querysql = @"select GOODSLEVELID from TP_MST_GOODSLEVEL where GOODSLEVELTYPEID=9 and ACCOUNTID=:accountid and VALUEFLAG=1";
- OracleParameter[] queryparas = new OracleParameter[]{
- new OracleParameter(":accountid",OracleDbType.Varchar2, sUserInfo.AccountID,ParameterDirection.Input)
- };
- DataSet returnDs = oracleTrConn.GetSqlResultToDs(querysql, queryparas);
- if (returnDs == null || returnDs.Tables[0].Rows.Count == 0)
- {
- errMsg = "未设定干补等级";
- logoName = "";
- logoCode = "";
- groutingdate = "";
- return errMsg;
- }
- string goodsLevelID = returnDs.Tables[0].Rows[0][0].ToString();
- //第一步,废弃数据的产品分级类别由 8损坯13不合格14不合格(返) 改为 9干补,产品分级=此账套相应的设置
- /*string sqlUpdateLevelTypeString = @"update TP_PM_ScrapProduct set GOODSLEVELID=:GOODSLEVELID, GoodsLevelTypeID=9,SpecialRepairFlag=1,
- SpecialRepairUserID=:SpecialRepairUserID,SpecialRepairUserCode=:SpecialRepairUserCode,SpecialRepairTime=sysdate,
- UpdateUserID=:UpdateUserID
- where BarCode=:barcode
- and CreateTime=(select max(CreateTime) from TP_PM_ScrapProduct where BarCode=:barcode1 and ValueFlag=1)
- and ValueFlag=1 and GoodsLevelTypeID=(select max(GoodsLevelTypeID) from TP_PM_ScrapProduct where BarCode=:barcode1 and ValueFlag=1) ";
- */
- // and ValueFlag=1 and GoodsLevelTypeID=8 ";
- string sqlUpdateLevelTypeString = @"update TP_PM_ScrapProduct set GOODSLEVELID=:GOODSLEVELID, GoodsLevelTypeID=9,
- SpecialRepairUserID=:SpecialRepairUserID,SpecialRepairUserCode=:SpecialRepairUserCode,SpecialRepairTime=sysdate,
- UpdateUserID=:UpdateUserID
- where BarCode=:barcode
- and CreateTime=(select max(CreateTime) from TP_PM_ScrapProduct where BarCode=:barcode1 and ValueFlag=1)
- and ValueFlag=1 and GoodsLevelTypeID in (8, 13, 14) ";
- OracleParameter[] ScrapProductparas = new OracleParameter[]{
- new OracleParameter(":GOODSLEVELID",OracleDbType.Int32,int.Parse(goodsLevelID),ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- new OracleParameter(":barcode1",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- new OracleParameter(":SpecialRepairUserID",OracleDbType.Int32,workUserID,ParameterDirection.Input),
- new OracleParameter(":SpecialRepairUserCode",OracleDbType.Varchar2,workUserCode,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- //modify wangx 20150623
- OracleParameter[] sqlUpdateparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- };
- //string sqlUpdate = "update TP_PM_InCheckedDetail set SpecialRepairFlag=1 where barcode=:barcode";
- //oracleTrConn.ExecuteNonQuery(sqlUpdate, sqlUpdateparas);
- string sqlUpdate = "update TP_PM_ProductionDataIn set SpecialRepairFlag=1 where barcode=:barcode";
- oracleTrConn.ExecuteNonQuery(sqlUpdate, sqlUpdateparas);
- //modify wangx 20150623 end
- #region
- //第五步,插入干补工序的生产数据(同其他计件工序),设置干补标识,产品分级类别=9干补,产品分级=此账套相应的设置
- // 查询新插入的生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- int productionDataID = 0;
- if (!string.IsNullOrEmpty(idStr))
- {
- productionDataID = int.Parse(idStr);
- }
- else
- {
- logoName = "";
- logoCode = "";
- groutingdate = "";
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- int? ClassesSettingID = null;//班次配置ID
- #region 第五步 添加生产者数据
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- logoName = "";
- logoCode = "";
- groutingdate = "";
- return errMsg;
- }
- #endregion
- ProductionDataEntity productionData = new ProductionDataEntity();
- #region 属性赋值
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = Convert.ToInt32(idStr);
- productionData.Barcode = barcode;
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.CompleteProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.DefectFlag = (int)Constant.DefectFlag.No;
- productionData.ReworkProcedureID = null;
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, barcode);
- productionData.IsReFire = (int)Constant.ReFireFlag.No;
- //设置干补标识,产品分级类别=9干补
- productionData.GoodsLevelTypeID = 9;
- productionData.GoodsLevelID = int.Parse(goodsLevelID);
- productionData.GoodsGrade = (int)Constant.GoodsGrade.Good;
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = goodsID;
- productionData.GoodsCode = goodsCode;
- productionData.GoodsName = goodsName;
- productionData.UserID = workUserID;
- productionData.UserCode = barcodeRow["UserCode"].ToString();
- productionData.UserName = barcodeRow["UserName"].ToString();
- productionData.PieceType = procedure.PieceType;
- if (barcodeRow["LogoID"].ToString() != "")
- {
- productionData.LogoID = Convert.ToInt32(barcodeRow["LogoID"]);
- }
- string sqlReFire = @"select
- isrefire,
- logoid
- from tp_pm_inproduction where barcode=:barcode
- union
- select
- isrefire,
- logoid
- from TP_PM_InProductionTrash where barcode=:barcode
- union
- select
- isrefire,
- logoid
- from TP_PM_FinishedProduct where barcode=:barcode ";
- OracleParameter[] ReFireparas = new OracleParameter[] {
- new OracleParameter(":barcode",barcode),
- };
- DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire, ReFireparas);
- if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- {
- if (Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]) > 0)
- {
- productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- }
- if (dsReFire.Tables[0].Rows[0]["logoid"].ToString() != "")
- {
- productionData.LogoID = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["LogoID"]);
- }
- }
- #endregion 属性赋值
- string OutSpecialRepairflag = "0";//干补标识
- productionData.SpecialRepairflag = 1;
- errMsg = AddDryRepairProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- if (!string.IsNullOrEmpty(errMsg))
- {
- logoName = "";
- logoCode = "";
- groutingdate = "";
- return errMsg;
- }
- #endregion
- //第二步,回收站中数据回到在产中,设置干补标识。
- string sqlInsInProdString = @"insert into TP_PM_InProduction(BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE, REWORKPROCEDUREID,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, UPDATEUSERID,
- ISREFIRE, GOODSLEVELID, GOODSLEVELTYPEID, DEFECTFLAG,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,SpecialRepairFlag,FlowProcedureID
- ,FlowProcedureTime,ProcedureID,ProcedureTime,ProductionDataID,logoid, ISREWORKFLAG, SEMICHECKID)
- select BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- :PROCEDUREMODEL, :MODELTYPE, REWORKPROCEDUREID,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, :UpdateUserID,
- ISREFIRE, null, null, DEFECTFLAG,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,1,FlowProcedureID ,
- FlowProcedureTime,:ProcedureID,sysdate,:ProductionDataID,logoid, ISREWORKFLAG, SEMICHECKID
- from TP_PM_InProductionTrash where barcode=:barcode ";
- OracleParameter[] InProductparas = new OracleParameter[]{
- new OracleParameter(":UpdateUserID",OracleDbType.Int32, workUserID,ParameterDirection.Input),
- // new OracleParameter(":GOODSLEVELID",OracleDbType.Int32,int.Parse(goodsLevelID),ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- new OracleParameter(":ProcedureID",OracleDbType.Int32,procedure.ProcedureID,ParameterDirection.Input),
- new OracleParameter(":PROCEDUREMODEL",OracleDbType.Varchar2,procedure.ProcedureModel,ParameterDirection.Input),
- new OracleParameter(":MODELTYPE",OracleDbType.Int32,procedure.ModelType,ParameterDirection.Input),
- new OracleParameter(":ProductionDataID",OracleDbType.Int32,productionDataID,ParameterDirection.Input)
- };
- //第三步,删除回收站中的条码
- string sqlDelInProductTrashString = "delete from TP_PM_InProductionTrash where barcode=:barcode ";
- OracleParameter[] TrashProductparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input)
- };
- //第四步,更新注浆表干补标识
- // string sqlUpGroutingDeilString = @"update TP_PM_GroutingDailyDetail set SpecialRepairFlag=1
- // where GroutingDailyDetailID=(select GroutingDailyDetailID from TP_PM_GROUTINGPRODUCT
- // where barcode=:barcode)";
- string sqlUpGroutingDeilString = @"update TP_PM_GroutingDailyDetail set SpecialRepairFlag=1
- where barcode=:barcode";
- OracleParameter[] GroutingProductparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input)
- };
- // string sqlUpCompleteString = @"update TP_PM_FINISHEDPRODUCT set SpecialRepairFlag=1
- // where barcode=:barcode ";
- // OracleParameter[] CompleteProductparas = new OracleParameter[]{
- // new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input)
- // };
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlUpdateLevelTypeString, ScrapProductparas);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlInsInProdString, InProductparas);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlDelInProductTrashString, TrashProductparas);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlUpGroutingDeilString, GroutingProductparas);
- //deleteRow += oracleTrConn.ExecuteNonQuery(sqlUpCompleteString, CompleteProductparas); //由于成品后,不能报损,所以这个执行去掉
- // 失败
- if (deleteRow == Constant.INT_IS_ZERO)
- {
- logoName = "";
- logoCode = "";
- groutingdate = "";
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #endregion
- //#region 第五步 添加生产者数据
- //errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- //第五步,回添加生产数据 modify wangx 2015/07/20 新添加的代码
- sql = "select 1 from tp_pm_productiondatain where barcode=:barcode and valueflag=1";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds.Tables[0].Rows.Count == 0)
- {
- // 2 生产数据恢复到在产生产数据
- sql = @"insert into tp_pm_productiondatain
- (
- ProductionDataID,
- BarCode,
- CentralizedBatchNo,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureID,
- ProcedureCode,
- ProcedureName,
- ProcedureModel,
- ModelType,
- PieceType,
- IsReworked,
- NodeType,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- SpecialRepairFlag,
- OrganizationID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- UserCode,
- UserName,
- ClassesSettingID,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- ReworkProcedureID,
- ReworkProcedureCode,
- ReworkProcedureName,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingDate,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- AccountDate,
- SettlementFlag,
- AccountID,
- ValueFlag,
- CreateTime,
- CreateUserID,
- UpdateTime,
- UpdateUserID,
- OPTimeStamp,
- TriggerFlag,
- logoid,
- BackOutTime,BackOutUserID,BackOutUserCode
- )
- select
- ProductionDataID,
- BarCode,
- CentralizedBatchNo,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureID,
- ProcedureCode,
- ProcedureName,
- ProcedureModel,
- ModelType,
- PieceType,
- IsReworked,
- NodeType,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- SpecialRepairFlag,
- OrganizationID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- UserCode,
- UserName,
- ClassesSettingID,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- ReworkProcedureID,
- ReworkProcedureCode,
- ReworkProcedureName,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingDate,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- AccountDate,
- SettlementFlag,
- AccountID,
- ValueFlag,
- CreateTime,
- CreateUserID,
- UpdateTime,
- UpdateUserID,
- OPTimeStamp,
- 1,
- logoid,
- BackOutTime,BackOutUserID,BackOutUserCode
- from TP_PM_ProductionData where valueflag=1 and barcode=:barcode
- ";
- oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- //第五步,回添加生产数据 modify wangx 2015/07/20 新添加的代码 end
- #endregion 数据处理
- }
- logoName = logoName_Temp;
- logoCode = logoCode_Temp;
- groutingdate = groutingdate_Temp;
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 添加干补生产数据
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="productionData">生产数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 袁新成 2015.04.1 新建
- /// </remarks>
- private static string AddDryRepairProductionData(IDBTransaction oracleTrConn, DateTime accountDate, ProductionDataEntity productionData, SUserInfo sUserInfo, out string OutSpecialRepairflag)
- {
- #region 查出产品注浆日期,注浆工号ID,注浆工号编码,注浆次数,注浆模具编号,模具编号
- string selectSql = "";
- string returnVal = "";
- //这地方连了两张表,为了成检的时候,次品在次新增
- selectSql = @"select
- GroutingDate,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- GroutingMouldCode,
- MouldCode,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- SpecialRepairflag
- from tp_pm_inproduction where barcode=:barcode
- union
- select
- GroutingDate,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- GroutingMouldCode,
- MouldCode,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- SpecialRepairflag
- from TP_PM_InProductionTrash where barcode=:barcode
- ";
- OracleParameter[] selectparas = new OracleParameter[] {
- new OracleParameter(":barcode",productionData.Barcode),
- };
- DataSet dsGroutingProduct = oracleTrConn.GetSqlResultToDs(selectSql, selectparas);
- if (dsGroutingProduct == null || dsGroutingProduct.Tables[0].Rows.Count == 0)
- {
- selectSql = @"select TP_PM_GroutingDaily.GroutingDate,
- TP_PM_GroutingDailyDetail.UserID as GroutingUserID,
- TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
- TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
- TP_PM_GroutingDailyDetail.GroutingMouldCode,
- TP_PM_GroutingDailyDetail.MouldCode,
- TP_PM_GroutingDailyDetail.GroutingDailyID,
- TP_PM_GroutingDailyDetail.GroutingDailyDetailID,
- TP_PM_GroutingDailyDetail.GroutingLineID,
- TP_PM_GroutingDailyDetail.GroutingLineCode,
- TP_PM_GroutingDailyDetail.GroutingLineName,
- TP_PM_GroutingDaily.GMouldTypeID,
- TP_PM_GroutingDaily.CanManyTimes,
- TP_PM_GroutingDailyDetail.GroutingLineDetailID,
- TP_PM_GroutingDailyDetail.SpecialRepairflag
- from TP_PM_GroutingDaily
- left join TP_PM_GroutingDailyDetail
- on TP_PM_GroutingDaily.GroutingDailyID=TP_PM_GroutingDailyDetail.GroutingDailyID
- where TP_PM_GroutingDailyDetail.barcode=:barcode
- ";
- dsGroutingProduct = oracleTrConn.GetSqlResultToDs(selectSql, selectparas);
- }
- DateTime GroutingDate = new DateTime();
- int GroutingUserID = 0, GroutingNum = 0, GroutingDailyID = 0, GroutingDailyDetailID = 0, GroutingLineID = 0, GMouldTypeID = 0, CanManyTimes = 0, GroutingLineDetailID = 0, SpecialRepairflag = 0;
- string GroutingUserCode = "", GroutingMouldCode = "", MouldCode = "", GroutingLineCode = "", GroutingLineName = "";
- if (dsGroutingProduct != null && dsGroutingProduct.Tables[0].Rows.Count > 0)
- {
- GroutingDate = Convert.ToDateTime(dsGroutingProduct.Tables[0].Rows[0]["GroutingDate"]);
- GroutingUserID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingUserID"]);
- GroutingUserCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingUserCode"].ToString();
- GroutingNum = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingNum"]);
- GroutingMouldCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingMouldCode"].ToString();
- MouldCode = dsGroutingProduct.Tables[0].Rows[0]["MouldCode"].ToString();
- GroutingDailyID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingDailyID"]);
- GroutingDailyDetailID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingDailyDetailID"]);
- GroutingLineID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingLineID"]);
- GroutingLineCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingLineCode"].ToString();
- GroutingLineName = dsGroutingProduct.Tables[0].Rows[0]["GroutingLineName"].ToString();
- GMouldTypeID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GMouldTypeID"]);
- CanManyTimes = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["CanManyTimes"]);
- GroutingLineDetailID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingLineDetailID"]);
- SpecialRepairflag = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["SpecialRepairflag"]);
- returnVal = SpecialRepairflag.ToString();
- }
- #endregion
- #region 更新窑炉窑车属性
- if (productionData.ModelType != 1 && productionData.ModelType != 2 && productionData.ModelType != 3 && productionData.ModelType != 4)
- {
- DataSet ds = GetDryRepairKilnCarInfo(oracleTrConn, productionData.Barcode, sUserInfo);
- if (ds != null)
- {
- if (ds.Tables[0].Rows[0]["KilnID"].ToString() != "") //表示以前有过窑炉相关信息
- {
- productionData.KilnID = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnID"]);
- productionData.KilnCode = ds.Tables[0].Rows[0]["KilnCode"].ToString();
- productionData.KilnName = ds.Tables[0].Rows[0]["KilnName"].ToString();
- productionData.KilnCarID = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarID"]);
- productionData.KilnCarCode = ds.Tables[0].Rows[0]["KilnCarCode"].ToString();
- productionData.KilnCarName = ds.Tables[0].Rows[0]["KilnCarName"].ToString();
- productionData.KilnCarBatchNo = ds.Tables[0].Rows[0]["KilnCarBatchNo"].ToString();
- productionData.KilnCarPosition = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarPosition"]);
- }
- }
- }
- #endregion
- #region SQL
- string sql = "insert into tp_pm_productiondataIn"
- + " (productiondataid,"
- + " barcode,"
- + " centralizedbatchno,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " proceduremodel,"
- + " modeltype,"
- + " piecetype,"
- + " isreworked,"
- + " nodetype,"
- + " ispublicbody,"
- + " isrefire,"
- + " organizationid,"
- + " goodsid,"
- + " goodscode,"
- + " goodsname,"
- + " userid,"
- + " usercode,"
- + " username,"
- + " kilnid,"
- + " kilncode,"
- + " kilnname,"
- + " kilncarid,"
- + " kilncarcode,"
- + " kilncarname,"
- + " kilncarbatchno,"
- + " kilncarposition,"
- + " reworkprocedureid,"
- + " reworkprocedurecode,"
- + " reworkprocedurename,"
- + " remarks,"
- + " accountdate,"
- + " accountid,"
- + " GoodsLevelID,"
- + " GoodsLevelTypeID,"
- + " createuserid,"
- + " updateuserid,"
- + " GroutingDate,"
- + " GroutingUserID,"
- + " GroutingUserCode,"
- + " GroutingNum,"
- + " GroutingMouldCode,"
- + " MouldCode,"
- + "GroutingDailyID,"
- + "GroutingDailyDetailID,"
- + "GroutingLineID,"
- + " GroutingLineCode,"
- + "GroutingLineName,"
- + "GMouldTypeID,"
- + "CanManyTimes,"
- + "GroutingLineDetailID,"
- + "SpecialRepairflag,"
- + "ClassesSettingID,"
- + "LogoID"
- + ")"
- + " values"
- + " (:productiondataid,"
- + " :barcode,"
- + " :centralizedbatchno,"
- + " :productionlineid,"
- + " :productionlinecode,"
- + " :productionlinename,"
- + " :procedureid,"
- + " :procedurecode,"
- + " :procedurename,"
- + " :proceduremodel,"
- + " :modeltype,"
- + " :piecetype,"
- + " :isreworked,"
- + " :nodetype,"
- + " :ispublicbody,"
- + " :isrefire,"
- + " :organizationid,"
- + " :goodsid,"
- + " :goodscode,"
- + " :goodsname,"
- + " :userid,"
- + " :usercode,"
- + " :username,"
- + " :kilnid,"
- + " :kilncode,"
- + " :kilnname,"
- + " :kilncarid,"
- + " :kilncarcode,"
- + " :kilncarname,"
- + " :kilncarbatchno,"
- + " :kilncarposition,"
- + " :reworkprocedureid,"
- + " :reworkprocedurecode,"
- + " :reworkprocedurename,"
- + " :remarks,"
- + " :accountdata,"
- + " :accountid,"
- + " :GoodsLevelID,"
- + " :GoodsLevelTypeID,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :groutingdate,"
- + " :groutinguserid,"
- + " :groutingusercode,"
- + " :groutingnum,"
- + " :groutingmouldcode,"
- + " :mouldcode,"
- + ":groutingdailyid,"
- + ":groutingdailydetailid,"
- + ":groutinglineid,"
- + " :groutinglinecode,"
- + ":groutinglinename,"
- + ":gmouldtypeid,"
- + ":canmanytimes,"
- + ":groutinglinedetailid,"
- + ":specialRepairflag,"
- + ":classesSettingID,"
- + ":logoID"
- + ")";
- #endregion
- #region OracleParameter
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":productiondataid",productionData.ProductionDataID),
- new OracleParameter(":barcode",productionData.Barcode),
- new OracleParameter(":centralizedbatchno",productionData.CentralizedBatchNo),
- new OracleParameter(":productionlineid",productionData.ProductionLineID),
- new OracleParameter(":productionlinecode",productionData.ProductionLineCode),
- new OracleParameter(":productionlinename",productionData.ProductionLineName),
- new OracleParameter(":procedureid",productionData.CompleteProcedureID),
- new OracleParameter(":procedurecode",productionData.ProcedureCode),
- new OracleParameter(":procedurename",productionData.ProcedureName),
- new OracleParameter(":proceduremodel",productionData.ProcedureModel),
- new OracleParameter(":modeltype",productionData.ModelType),
- new OracleParameter(":piecetype",productionData.PieceType),
- new OracleParameter(":isreworked",productionData.IsReworked),
- new OracleParameter(":nodetype",productionData.NodeType),
- new OracleParameter(":ispublicbody",productionData.IsPublicBody),
- new OracleParameter(":isrefire",productionData.IsReFire),
- new OracleParameter(":organizationid",productionData.OrganizationID),
- new OracleParameter(":goodsid",productionData.GoodsID),
- new OracleParameter(":goodscode",productionData.GoodsCode),
- new OracleParameter(":goodsname",productionData.GoodsName),
- new OracleParameter(":userid",productionData.UserID),
- new OracleParameter(":usercode",productionData.UserCode),
- new OracleParameter(":username",productionData.UserName),
- new OracleParameter(":kilnid",productionData.KilnID),
- new OracleParameter(":kilncode",productionData.KilnCode),
- new OracleParameter(":kilnname",productionData.KilnName),
- new OracleParameter(":kilncarid",productionData.KilnCarID),
- new OracleParameter(":kilncarcode",productionData.KilnCarCode),
- new OracleParameter(":kilncarname",productionData.KilnCarName),
- new OracleParameter(":kilncarbatchno",productionData.KilnCarBatchNo),
- new OracleParameter(":kilncarposition",productionData.KilnCarPosition),
- new OracleParameter(":reworkprocedureid",productionData.ReworkProcedureID),
- new OracleParameter(":reworkprocedurecode",productionData.ReworkProcedureCode),
- new OracleParameter(":reworkprocedurename",productionData.ReworkProcedureName),
- new OracleParameter(":remarks",productionData.Remarks),
- new OracleParameter(":accountdata",accountDate),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":GoodsLevelID",productionData.GoodsLevelID),
- new OracleParameter(":GoodsLevelTypeID",productionData.GoodsLevelTypeID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":groutingdate",GroutingDate),
- new OracleParameter(":groutinguserid",GroutingUserID),
- new OracleParameter(":groutingusercode",GroutingUserCode),
- new OracleParameter(":groutingnum",GroutingNum),
- new OracleParameter(":groutingmouldcode",GroutingMouldCode),
- new OracleParameter(":mouldcode",MouldCode),
- new OracleParameter(":groutingdailyid",GroutingDailyID),
- new OracleParameter(":groutingdailydetailid",GroutingDailyDetailID),
- new OracleParameter(":groutinglineid",GroutingLineID),
- new OracleParameter(":groutinglinecode",GroutingLineCode),
- new OracleParameter(":groutinglinename",GroutingLineName),
- new OracleParameter(":gmouldtypeid",GMouldTypeID),
- new OracleParameter(":canmanytimes",CanManyTimes),
- new OracleParameter(":groutinglinedetailid",GroutingLineDetailID),
- new OracleParameter(":specialRepairflag",productionData.SpecialRepairflag),
- new OracleParameter(":classesSettingID",productionData.ClassesSettingID),
- new OracleParameter(":logoID",productionData.LogoID),
- };
- #endregion
- foreach (OracleParameter para in paras)
- {
- if (string.IsNullOrEmpty(para.Value + ""))
- {
- para.Value = DBNull.Value;
- }
- }
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- OutSpecialRepairflag = returnVal;
- // 失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 成功返回null
- return null;
- }
- /// <summary>
- /// 根据最大生产数据ID,获取窑车窑炉等信息
- /// </summary>
- /// <param name="oracleTrConn"></param>
- /// <param name="barcode"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- private static DataSet GetDryRepairKilnCarInfo(IDBTransaction oracleTrConn, string barcode, SUserInfo sUserInfo)
- {
- // string sql = @"select * from tp_pm_productiondata where Productiondataid=
- // (
- // select nvl(max(Productiondataid),0) Productiondataid from tp_pm_productiondata where barcode=:barcode
- // )";
- string sql = @"select
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- to_char(KilnCarBatchNo) as KilnCarBatchNo,
- KilnCarPosition
- from tp_pm_inproduction where barcode=:barcode
- union
- select
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- to_char(KilnCarBatchNo) as KilnCarBatchNo,
- KilnCarPosition
- from TP_PM_InProductionTrash where barcode=:barcode
- ";
- try
- {
- IDataParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":barcode", OracleDbType.Varchar2, barcode, ParameterDirection.Input),
- };
- DataSet returnDs = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (returnDs != null
- && returnDs.Tables.Count > Constant.INT_IS_ZERO
- && returnDs.Tables[0].Rows.Count > Constant.INT_IS_ZERO)
- {
- return returnDs;
- }
- else
- {
- sql = @"select
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- to_char(KilnCarBatchNo) as KilnCarBatchNo,
- KilnCarPosition
- from TP_PM_FINISHEDPRODUCT where barcode=:barcode";
- returnDs = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (returnDs != null
- && returnDs.Tables.Count > Constant.INT_IS_ZERO
- && returnDs.Tables[0].Rows.Count > Constant.INT_IS_ZERO)
- {
- return returnDs;
- }
- else
- {
- return null;
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 更新漏扫的成型工号
- /// </summary>
- /// <param name="groutingUserCode">成型工号</param>
- /// <param name="missingID">漏扫ID</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>int</returns>
- public static int UpdateGroutingUserCodeByMissingID(string groutingUserCode, int missingID, SUserInfo sUserInfo)
- {
- int UpdateRow = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- //string sql = "select userid from tp_mst_user where usercode=:usercode and valueflag=1 and isworker=1 and accountid=:accountid";
- //OracleParameter[] paras = new OracleParameter[]{
- // new OracleParameter(":usercode",OracleDbType.Varchar2, groutingUserCode,ParameterDirection.Input),
- // new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- //};
- //DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sql, paras);
- //if (returnDataset != null && returnDataset.Tables[0].Rows.Count == 0)
- //{
- // oracleTrConn.Commit();
- // UpdateRow = -1;
- // return UpdateRow;//成型工号无效
- //}
- // 20150605 wangxin begin
- string[] subGroutingUserCode = groutingUserCode.Trim(',').Split(',');
- bool isError = false;
- int FirstUserID = 0;
- string sql = "";
- OracleParameter[] paras = null;
- DataSet returnDataset = null;
- for (int i = 0; i < subGroutingUserCode.Length; i++)
- {
- sql = "select userid from tp_mst_user where usercode=:usercode and valueflag=1 and isworker=1 and accountid=:accountid";
- paras = new OracleParameter[]{
- new OracleParameter(":usercode",OracleDbType.Varchar2, subGroutingUserCode[i],ParameterDirection.Input),
- new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- };
- returnDataset = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (returnDataset != null && returnDataset.Tables[0].Rows.Count == 0)
- {
- isError = true;
- break;
- }
- if (i == 0)
- {
- FirstUserID = Convert.ToInt32(returnDataset.Tables[0].Rows[0]["userid"]);
- }
- }
- if (isError)
- {
- oracleTrConn.Commit();
- UpdateRow = -1;
- return UpdateRow;//成型工号无效
- }
- // 20150605 wangxin end
- sql = "update TP_PM_BarCodeMissing set Missuserid=:Missuserid, Missusercode=:Missusercode where missid=:missid";
- paras = new OracleParameter[]{
- //new OracleParameter(":Missuserid",OracleDbType.Int32,Convert.ToInt32(returnDataset.Tables[0].Rows[0]["userid"]),ParameterDirection.Input),
- new OracleParameter(":Missuserid",OracleDbType.Int32,FirstUserID,ParameterDirection.Input),
- new OracleParameter(":Missusercode", OracleDbType.Varchar2, groutingUserCode.Trim(','), ParameterDirection.Input),
- new OracleParameter(":missid", OracleDbType.Int32, missingID, ParameterDirection.Input),
- };
- UpdateRow = oracleTrConn.ExecuteNonQuery(sql, paras);
- if (UpdateRow > 0)
- {
- oracleTrConn.Commit();
- }
- else
- {
- oracleTrConn.Rollback();
- }
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return UpdateRow;
- }
- /// <summary>
- /// 在入窑工序检验窑车号是否存在
- /// </summary>
- /// <param name="kilncarcode">窑车编码</param>
- /// <param name="procedureid">工序ID</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns></returns>
- public static int CheckKilnCarByIntoCar(string kilncarcode, int procedureid, SUserInfo sUserInfo)
- {
- int UpdateRow = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- // 判断窑车编码是否有效
- string sql = "select kilncarid from tp_mst_kilncar where kilncarcode=:kilncarcode and valueflag=1 and accountid=:accountid";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":kilncarcode",OracleDbType.Varchar2, kilncarcode,ParameterDirection.Input),
- new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- };
- DataSet dsExists = oracleTrConn.GetSqlResultToDs(sql, paras);
- int kilncarid = 0;
- if (dsExists != null && dsExists.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Commit();
- UpdateRow = -99;
- return UpdateRow;//窑车编码无效
- }
- kilncarid = Convert.ToInt32(dsExists.Tables[0].Rows[0]["kilncarid"]);//窑车ID
- //判断此窑车号有无产品
- sql = "select barcode,KilnCarBatchNo from TP_PM_KilnCarGoods where KilnCarID=:KilnCarID and accountid=:accountid and valueflag=1";
- paras = new OracleParameter[]{
- new OracleParameter(":KilnCarID",OracleDbType.Int32, kilncarid,ParameterDirection.Input),
- new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- };
- DataSet dsGoods = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsGoods != null && dsGoods.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Commit();
- UpdateRow = -98;
- return UpdateRow;//窑车己无产品
- }
- // 判断窑车编码是否在入窑工序
- sql = "select 1 from TP_PM_InProduction where KilnCarID=:KilnCarID and accountid=:accountid and valueflag=1 and FlowProcedureID=:FlowProcedureID";
- paras = new OracleParameter[]{
- new OracleParameter(":KilnCarID",OracleDbType.Int32, kilncarid,ParameterDirection.Input),
- new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- new OracleParameter(":FlowProcedureID", OracleDbType.Int32, procedureid, ParameterDirection.Input),
- };
- dsExists = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsExists != null && dsExists.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Commit();
- UpdateRow = -97;
- return UpdateRow;//窑车号没有入窑,不可以撤销
- }
- int KilnCarDataID = 0;//窑车生产数据ID
- string KilnCarBatchNo = "";
- // 遍历窑车产品
- bool isError = false;//默认没有错误
- for (int i = 0; i < dsGoods.Tables[0].Rows.Count; i++)
- {
- #region 先查询生产数据最后3条
- string sqlString = @"select ProductionDataID,
- ProcedureID,
- ProcedureModel,
- ModelType,
- ReworkProcedureID,
- UserID
- from (select ProductionDataID,
- ProcedureID,
- ProcedureModel,
- ModelType,
- ReworkProcedureID,
- UserID
- from Tp_Pm_ProductiondataIn
- where barcode = :barcode
- and valueflag = 1 and ModelType<>1 and ModelType<>2
- order by ProductionDataID desc)
- where rownum <=1";//where rownum <=3";
- paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, dsGoods.Tables[0].Rows[i]["barcode"].ToString(),ParameterDirection.Input),
- };
- DataSet productionData = oracleTrConn.GetSqlResultToDs(sqlString, paras);
- if (productionData == null
- || productionData.Tables.Count == Constant.INT_IS_ZERO
- || productionData.Tables[0].Rows.Count != Constant.INT_IS_ONE)
- {
- //errMsg = Messages.MSG_PM_W016;
- isError = true;
- break;
- }
- #endregion
- #region 回滚在产数据
- sqlString = @"update TP_PM_InProduction
- set FlowProcedureID = :flowProcedureID,
- ProcedureModel = :procedureModel,
- ProcedureID = :flowProcedureID,
- ModelType = :modelType,
- ReworkProcedureID = :reworkProcedureID,
- UserID = :userID,
- updateuserid = :updateuserid
- where barcode = :barcode";
- paras = new OracleParameter[]{
- new OracleParameter(":flowProcedureID",OracleDbType.Int32,
- productionData.Tables[0].Rows[0]["ProcedureID"],ParameterDirection.Input),//2-->1
- new OracleParameter(":procedureModel",OracleDbType.Int32,
- productionData.Tables[0].Rows[0]["procedureModel"],ParameterDirection.Input),
- new OracleParameter(":modelType",OracleDbType.Int32,
- productionData.Tables[0].Rows[0]["modelType"],ParameterDirection.Input),
- new OracleParameter(":reworkProcedureID",OracleDbType.Int32,
- productionData.Tables[0].Rows[0]["reworkProcedureID"],ParameterDirection.Input),
- new OracleParameter(":userID",OracleDbType.Int32,
- productionData.Tables[0].Rows[0]["userID"],ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2, dsGoods.Tables[0].Rows[i]["barcode"].ToString(),ParameterDirection.Input),
- };
- UpdateRow = oracleTrConn.ExecuteNonQuery(sqlString, paras);
- if (UpdateRow == Constant.INT_IS_ZERO)
- {
- // 保存失败
- isError = true;
- break;
- }
- #endregion
- #region 删除生产者和最后一条生产数据
- //sqlString = "delete TP_PM_Producer where ProductionDataID=:productionDataID";
- paras = new OracleParameter[]{
- new OracleParameter(":productionDataID",OracleDbType.Int32,
- productionData.Tables[0].Rows[0]["productionDataID"],ParameterDirection.Input),
- //new OracleParameter(":productionDataID2",OracleDbType.Int32,
- // productionData.Tables[0].Rows[0]["productionDataID"],ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- dsGoods.Tables[0].Rows[i]["barcode"].ToString(),ParameterDirection.Input),
- };
- //modify 2015/05/13 wangx GoodsLevelTypeID=12 撤销入窑
- sqlString = "select GoodsLevelID,GoodsLevelName,GoodsLevelTypeID from TP_MST_GoodsLevel where GoodsLevelTypeID=12 and AccountID=" + sUserInfo.AccountID + " and ValueFlag=1";
- DataSet dsGoodsLevel = oracleTrConn.GetSqlResultToDs(sqlString, null);
- int? GoodsLevelID = null;
- if (dsGoodsLevel != null && dsGoodsLevel.Tables[0].Rows.Count > 0)
- {
- GoodsLevelID = Convert.ToInt32(dsGoodsLevel.Tables[0].Rows[0]["GoodsLevelID"]);
- }
- //modify end
- sqlString = "update TP_PM_ProductionDataIn set valueflag=0 ,updateuserid=" + sUserInfo.UserID;
- if (GoodsLevelID != null)
- {
- sqlString += ",GoodsLevelID=" + GoodsLevelID;
- sqlString += ",GoodsLevelTypeID=12";
- }
- //sqlString += " where ProductionDataID=:productionDataID or ProductionDataID=:productionDataID2";
- sqlString += " where barcode=:barcode and ProductionDataID>:productionDataID "; //or ProductionDataID=:productionDataID2
- UpdateRow = oracleTrConn.ExecuteNonQuery(sqlString, paras);
- if (UpdateRow == Constant.INT_IS_ZERO)
- {
- // 保存失败
- isError = true;
- break;
- }
- #endregion
- #region 删除窑车产品
- sqlString = "delete TP_PM_KilnCarGoods where BarCode=:barCode";
- paras = new OracleParameter[]{
- new OracleParameter(":barCode",OracleDbType.Varchar2,
- dsGoods.Tables[0].Rows[i]["barcode"],ParameterDirection.Input),
- };
- UpdateRow = oracleTrConn.ExecuteNonQuery(sqlString, paras);
- if (UpdateRow == Constant.INT_IS_ZERO)
- {
- // 保存失败
- isError = true;
- break;
- }
- #endregion
- #region 读取窑车生产数据,进行撤销
- sql = @"select KilnCarDataID, ProductionLineID,ProcedureID,
- ProcedureCode,ProcedureName,ProcedureModel,ModelType,PieceType
- from TP_PM_KilnCarData where KilnCarID=:KilnCarID and accountid=:accountid and valueflag=1 and KilnCarBatchNo=:KilnCarBatchNo order by KilnCarDataID ";
- paras = new OracleParameter[]{
- new OracleParameter(":KilnCarID",OracleDbType.Int32,
- kilncarid,ParameterDirection.Input),
- new OracleParameter(":accountid",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":KilnCarBatchNo",OracleDbType.Varchar2,
- dsGoods.Tables[0].Rows[i]["KilnCarBatchNo"].ToString(),ParameterDirection.Input),
- };
- KilnCarBatchNo = dsGoods.Tables[0].Rows[i]["KilnCarBatchNo"].ToString();
- dsExists = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsExists != null && dsExists.Tables[0].Rows.Count > 0)
- {
- //最后窑车生产数据ID赋值 撤二步骤
- KilnCarDataID = Convert.ToInt32(dsExists.Tables[0].Rows[0]["KilnCarDataID"]);
- sqlString = @"update TP_PM_KilnCarStatus set
- ProductionLineID=:ProductionLineID
- ,ProcedureID=:ProcedureID
- ,ProcedureCode=:ProcedureCode
- ,ProcedureName=:ProcedureName
- ,ProcedureModel=:ProcedureModel
- ,ModelType=:ModelType
- ,PieceType=:PieceType
- ,KilnCarStatus=0,LoadingTime=null,IntoKilnTime=null,OutKilnTime=null,UnloadingTime=null
- where KilnCarID=:KilnCarID";
- paras = new OracleParameter[]{
- new OracleParameter(":ProductionLineID",OracleDbType.Int32,
- dsExists.Tables[0].Rows[0]["ProductionLineID"],ParameterDirection.Input),
- new OracleParameter(":ProcedureID",OracleDbType.Int32,
- dsExists.Tables[0].Rows[0]["ProcedureID"],ParameterDirection.Input),
- new OracleParameter(":ProcedureCode",OracleDbType.Varchar2,
- dsExists.Tables[0].Rows[0]["ProcedureCode"].ToString(),ParameterDirection.Input),
- new OracleParameter(":ProcedureModel",OracleDbType.Varchar2,
- dsExists.Tables[0].Rows[0]["ProcedureModel"].ToString(),ParameterDirection.Input),
- new OracleParameter(":ModelType",OracleDbType.Int32,
- Convert.ToInt32(dsExists.Tables[0].Rows[0]["ModelType"]),ParameterDirection.Input),
- new OracleParameter(":PieceType",OracleDbType.Varchar2,
- dsExists.Tables[0].Rows[0]["PieceType"].ToString(),ParameterDirection.Input),
- new OracleParameter(":KilnCarID",OracleDbType.Int32,
- kilncarid,ParameterDirection.Input),
- new OracleParameter(":ProcedureName",OracleDbType.Varchar2,
- dsExists.Tables[0].Rows[0]["ProcedureName"].ToString(),ParameterDirection.Input),
- };
- UpdateRow = oracleTrConn.ExecuteNonQuery(sqlString, paras);
- if (UpdateRow == Constant.INT_IS_ZERO)
- {
- // 保存失败
- isError = true;
- break;
- }
- }
- #endregion
- }
- //modify wangx 20150606 begin
- string updateSql = "update TP_PM_KilnCarData set valueflag=0,UpdateUserID=" + sUserInfo.UserID + " where KilnCarDataID>=" + KilnCarDataID + " and KilnCarBatchNo=" + KilnCarBatchNo;
- int row = oracleTrConn.ExecuteNonQuery(updateSql);
- //modify wangx 20150606 end
- if (isError) //有错误消息
- {
- UpdateRow = -1;//失败
- oracleTrConn.Rollback();
- }
- else
- {
- UpdateRow = 1;//成功
- oracleTrConn.Commit();
- }
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return UpdateRow;
- }
- /// <summary>
- /// 在入窑工序检验窑车号是否存在
- /// </summary>
- /// <param name="kilncarcode">窑车编码</param>
- /// <param name="procedureid">工序ID</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns></returns>
- public static int CheckKilnCarByIntoCar2(string kilncarcode, int procedureid, SUserInfo sUserInfo)
- {
- int UpdateRow = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- // 判断窑车编码是否有效
- string sql = "select kilncarid from tp_mst_kilncar where kilncarcode=:kilncarcode and valueflag=1 and accountid=:accountid";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":kilncarcode",OracleDbType.Varchar2, kilncarcode,ParameterDirection.Input),
- new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- };
- DataSet dsExists = oracleTrConn.GetSqlResultToDs(sql, paras);
- int kilncarid = 0;
- if (dsExists != null && dsExists.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Commit();
- UpdateRow = -99;
- return UpdateRow;//窑车编码无效
- }
- kilncarid = Convert.ToInt32(dsExists.Tables[0].Rows[0]["kilncarid"]);//窑车ID
- //判断此窑车号有无产品
- sql = "select barcode,KilnCarBatchNo from TP_PM_KilnCarGoods where KilnCarID=:KilnCarID and accountid=:accountid and valueflag=1";
- paras = new OracleParameter[]{
- new OracleParameter(":KilnCarID",OracleDbType.Int32, kilncarid,ParameterDirection.Input),
- new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- };
- DataSet dsGoods = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsGoods != null && dsGoods.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Commit();
- UpdateRow = -98;
- return UpdateRow;//窑车己无产品
- }
- // 判断窑车编码是否在入窑工序
- sql = "select 1 from TP_PM_InProduction where KilnCarID=:KilnCarID and accountid=:accountid and valueflag=1 and FlowProcedureID=:FlowProcedureID";
- paras = new OracleParameter[]{
- new OracleParameter(":KilnCarID",OracleDbType.Int32, kilncarid,ParameterDirection.Input),
- new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- new OracleParameter(":FlowProcedureID", OracleDbType.Int32, procedureid, ParameterDirection.Input),
- };
- dsExists = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsExists != null && dsExists.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Commit();
- UpdateRow = -97;
- return UpdateRow;//窑车号没有入窑,不可以撤销
- }
- int KilnCarDataID = 0;//窑车生产数据ID
- // 遍历窑车产品
- bool isError = false;//默认没有错误
- for (int i = 0; i < dsGoods.Tables[0].Rows.Count; i++)
- {
- #region 先查询生产数据最后3条
- string sqlString = @"select ProductionDataID,
- ProcedureID,
- ProcedureModel,
- ModelType,
- ReworkProcedureID,
- UserID,
- logoid
- from (select ProductionDataID,
- ProcedureID,
- ProcedureModel,
- ModelType,
- ReworkProcedureID,
- UserID,
- logoid
- from Tp_Pm_ProductiondataIn
- where barcode = :barcode
- and valueflag = 1 and ModelType<>2
- order by ProductionDataID desc)
- where rownum <=1";
- paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, dsGoods.Tables[0].Rows[i]["barcode"].ToString(),ParameterDirection.Input),
- };
- DataSet productionData = oracleTrConn.GetSqlResultToDs(sqlString, paras);
- if (productionData == null
- || productionData.Tables.Count == Constant.INT_IS_ZERO
- || productionData.Tables[0].Rows.Count != Constant.INT_IS_ONE)
- {
- //errMsg = Messages.MSG_PM_W016;
- isError = true;
- break;
- }
- #endregion
- #region 回滚在产数据
- sqlString = @"update TP_PM_InProduction
- set FlowProcedureID = :flowProcedureID,
- ProcedureModel = :procedureModel,
- ProcedureID = :flowProcedureID,
- ModelType = :modelType,
- ReworkProcedureID = :reworkProcedureID,
- UserID = :userID,
- updateuserid = :updateuserid,
- logoid = :logoid
- where barcode = :barcode";
- paras = new OracleParameter[]{
- new OracleParameter(":flowProcedureID",OracleDbType.Int32,
- productionData.Tables[0].Rows[0]["ProcedureID"],ParameterDirection.Input),//2-->1
- new OracleParameter(":procedureModel",OracleDbType.Int32,
- productionData.Tables[0].Rows[0]["procedureModel"],ParameterDirection.Input),
- new OracleParameter(":modelType",OracleDbType.Int32,
- productionData.Tables[0].Rows[0]["modelType"],ParameterDirection.Input),
- new OracleParameter(":reworkProcedureID",OracleDbType.Int32,
- productionData.Tables[0].Rows[0]["reworkProcedureID"],ParameterDirection.Input),
- new OracleParameter(":userID",OracleDbType.Int32,
- productionData.Tables[0].Rows[0]["userID"],ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2, dsGoods.Tables[0].Rows[i]["barcode"].ToString(),ParameterDirection.Input),
- new OracleParameter(":logoid",OracleDbType.Int32, productionData.Tables[0].Rows[0]["logoid"].ToString()==""?null:productionData.Tables[0].Rows[0]["logoid"],ParameterDirection.Input),
- };
- UpdateRow = oracleTrConn.ExecuteNonQuery(sqlString, paras);
- if (UpdateRow == Constant.INT_IS_ZERO)
- {
- // 保存失败
- isError = true;
- break;
- }
- #endregion
- #region 删除生产者和最后一条生产数据
- //sqlString = "delete TP_PM_Producer where ProductionDataID=:productionDataID";
- paras = new OracleParameter[]{
- new OracleParameter(":productionDataID",OracleDbType.Int32,
- productionData.Tables[0].Rows[0]["productionDataID"],ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- dsGoods.Tables[0].Rows[i]["barcode"].ToString(),ParameterDirection.Input),
- };
- //modify 2015/05/13 wangx GoodsLevelTypeID=12 撤销入窑
- sqlString = "select GoodsLevelID,GoodsLevelName,GoodsLevelTypeID from TP_MST_GoodsLevel where GoodsLevelTypeID=12 and AccountID=" + sUserInfo.AccountID + " and ValueFlag=1";
- DataSet dsGoodsLevel = oracleTrConn.GetSqlResultToDs(sqlString, null);
- int? GoodsLevelID = null;
- if (dsGoodsLevel != null && dsGoodsLevel.Tables[0].Rows.Count > 0)
- {
- GoodsLevelID = Convert.ToInt32(dsGoodsLevel.Tables[0].Rows[0]["GoodsLevelID"]);
- }
- //modify end
- sqlString = "update TP_PM_ProductionDataIn set valueflag=0,updateuserid= " + sUserInfo.UserID;
- if (GoodsLevelID != null)
- {
- sqlString += ",GoodsLevelID=" + GoodsLevelID;
- sqlString += ",GoodsLevelTypeID=12";
- }
- //sqlString += " where ProductionDataID=:productionDataID or ProductionDataID=:productionDataID2";
- sqlString += " where barcode=:barcode and ProductionDataID>:productionDataID "; //or ProductionDataID=:productionDataID2
- UpdateRow = oracleTrConn.ExecuteNonQuery(sqlString, paras);
- if (UpdateRow == Constant.INT_IS_ZERO)
- {
- // 保存失败
- isError = true;
- break;
- }
- #endregion
- //#region 删除窑车产品
- //sqlString = "delete TP_PM_KilnCarGoods where BarCode=:barCode";
- //paras = new OracleParameter[]{
- // new OracleParameter(":barCode",OracleDbType.Varchar2,
- // dsGoods.Tables[0].Rows[i]["barcode"],ParameterDirection.Input),
- //};
- //UpdateRow = oracleTrConn.ExecuteNonQuery(sqlString, paras);
- //if (UpdateRow == Constant.INT_IS_ZERO)
- //{
- // // 保存失败
- // isError = true;
- // break;
- //}
- //#endregion
- #region 读取窑车生产数据,进行撤销
- sql = @"select KilnCarDataID, ProductionLineID,ProcedureID,
- ProcedureCode,ProcedureName,ProcedureModel,ModelType,PieceType
- from TP_PM_KilnCarData where KilnCarID=:KilnCarID and accountid=:accountid and valueflag=1 and KilnCarBatchNo=:KilnCarBatchNo order by KilnCarDataID ";
- paras = new OracleParameter[]{
- new OracleParameter(":KilnCarID",OracleDbType.Int32,
- kilncarid,ParameterDirection.Input),
- new OracleParameter(":accountid",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":KilnCarBatchNo",OracleDbType.Varchar2,
- dsGoods.Tables[0].Rows[i]["KilnCarBatchNo"].ToString(),ParameterDirection.Input),
- };
- dsExists = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsExists != null && dsExists.Tables[0].Rows.Count > 0)
- {
- //最后窑车生产数据ID赋值
- KilnCarDataID = Convert.ToInt32(dsExists.Tables[0].Rows[dsExists.Tables[0].Rows.Count - 1]["KilnCarDataID"]);
- sqlString = @"update TP_PM_KilnCarStatus set
- ProductionLineID=:ProductionLineID
- ,ProcedureID=:ProcedureID
- ,ProcedureCode=:ProcedureCode
- ,ProcedureName=:ProcedureName
- ,ProcedureModel=:ProcedureModel
- ,ModelType=:ModelType
- ,PieceType=:PieceType
- ,KilnCarStatus=0,IntoKilnTime=null,OutKilnTime=null,UnloadingTime=null
- where KilnCarID=:KilnCarID";
- paras = new OracleParameter[]{
- new OracleParameter(":ProductionLineID",OracleDbType.Int32,
- dsExists.Tables[0].Rows[0]["ProductionLineID"],ParameterDirection.Input),
- new OracleParameter(":ProcedureID",OracleDbType.Int32,
- dsExists.Tables[0].Rows[0]["ProcedureID"],ParameterDirection.Input),
- new OracleParameter(":ProcedureCode",OracleDbType.Varchar2,
- dsExists.Tables[0].Rows[0]["ProcedureCode"].ToString(),ParameterDirection.Input),
- new OracleParameter(":ProcedureModel",OracleDbType.Varchar2,
- dsExists.Tables[0].Rows[0]["ProcedureModel"].ToString(),ParameterDirection.Input),
- new OracleParameter(":ModelType",OracleDbType.Int32,
- Convert.ToInt32(dsExists.Tables[0].Rows[0]["ModelType"]),ParameterDirection.Input),
- new OracleParameter(":PieceType",OracleDbType.Varchar2,
- dsExists.Tables[0].Rows[0]["PieceType"].ToString(),ParameterDirection.Input),
- new OracleParameter(":KilnCarID",OracleDbType.Int32,
- kilncarid,ParameterDirection.Input),
- new OracleParameter(":ProcedureName",OracleDbType.Varchar2,
- dsExists.Tables[0].Rows[0]["ProcedureName"].ToString(),ParameterDirection.Input),
- };
- UpdateRow = oracleTrConn.ExecuteNonQuery(sqlString, paras);
- if (UpdateRow == Constant.INT_IS_ZERO)
- {
- // 保存失败
- isError = true;
- break;
- }
- }
- #endregion
- }
- //modify wangx 20150606 begin
- string updateSql = "update TP_PM_KilnCarData set valueflag=0,UpdateUserID=" + sUserInfo.UserID + " where KilnCarDataID=" + KilnCarDataID;
- int row = oracleTrConn.ExecuteNonQuery(updateSql);
- //modify wangx 20150606 end
- if (isError) //有错误消息
- {
- UpdateRow = -1;//失败
- oracleTrConn.Rollback();
- }
- else
- {
- UpdateRow = 1;//成功
- oracleTrConn.Commit();
- }
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return UpdateRow;
- }
- /// <summary>
- /// 保存盘点单
- /// </summary>
- /// <param name="inProductionEntity"></param>
- /// <param name="remarks"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- public static int SaveInChecked(InProductionEntity[] inProductionEntity, string remarks, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- if (inProductionEntity[0].ReworkProcedureID == 0)
- {
- //盘点单号
- string InCheckedNo = string.Format("IPC{0}", DateTime.Now.ToString("yyyyMMddHHmmss"));
- //获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- //备注
- string Remarks = remarks;
- oracleTrConn.Connect();
- //盘点单ID
- string sql = "select SEQ_PM_InChecked_ID.nextval from dual";
- int InCheckedID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sql));
- #region 插入盘点单主表信息
- sql = @"insert into TP_PM_InChecked
- (
- InCheckedID,
- InCheckedNo,
- AccountDate,
- Remarks,
- AccountID,
- CreateUserID,
- UpdateUserID,
- INCHECKNAME
- ) values
- ( :InCheckedID,
- :InCheckedNo,
- :AccountDate,
- :Remarks,
- :AccountID,
- :CreateUserID,
- :UpdateUserID,
- :INCHECKNAME
- )";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":InCheckedID",OracleDbType.Int32,
- InCheckedID,ParameterDirection.Input),
- new OracleParameter(":InCheckedNo",OracleDbType.NVarchar2,
- InCheckedNo,ParameterDirection.Input),
- new OracleParameter(":AccountDate",OracleDbType.Date,
- accountDate,ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.NVarchar2,
- Remarks,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":INCHECKNAME",OracleDbType.NVarchar2,
- inProductionEntity[0].CompleteProcedureName,ParameterDirection.Input),
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- #endregion
- //string barcodes = "";
- List<OracleParameter> parameters = null;
- //int row = 0;
- //foreach (InProductionEntity entity in inProductionEntity)
- //{
- // barcodes += entity.BarCode + ",";
- // row++;
- // if (row > 15) //为了15查数据库一次
- // {
- // barcodes = barcodes.TrimEnd(',') + '|';
- // row = 0;//重置
- // }
- //}
- //barcodes = barcodes.TrimEnd(',');
- //string[] subsplit = barcodes.Split('|');
- // foreach (InProductionEntity entity in inProductionEntity)foreach (InProductionEntity entity in inProductionEntity)
- //foreach (string entity in subsplit)
- //{
- //barcodes += entity.BarCode + ",";
- //barcodes = barcodes.TrimEnd(','); //在产产品是唯一的,直接根据条码查询,并插入到盘点明细
- sql = @"
- insert into TP_PM_InCheckedDetail
- (
- InCheckedID,
- BarCode,
- InCheckedNo,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureID,
- ProcedureTime,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- SpecialRepairFlag,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- CreateUserID,
- UpdateUserID,
- valueflag,
- logoid,
- ISREWORKFLAG,INSCRAPFLAG
- )
- select
- :InCheckedID,
- inp.BarCode,
- :InCheckedNo,
- inp.ProductionLineID,
- inp.ProductionLineCode,
- inp.ProductionLineName,
- inp.ProcedureID,
- inp.ProcedureTime,
- inp.ProcedureModel,
- inp.ModelType,
- inp.DefectFlag,
- inp.ReworkProcedureID,
- inp.IsPublicBody,
- inp.IsReFire,
- inp.SpecialRepairFlag,
- inp.GoodsLevelID,
- inp.GoodsLevelTypeID,
- inp.GoodsID,
- inp.GoodsCode,
- inp.GoodsName,
- inp.UserID,
- inp.GroutingDailyID,
- inp.GroutingDailyDetailID,
- inp.GroutingDate,
- inp.GroutingLineID,
- inp.GroutingLineCode,
- inp.GroutingLineName,
- inp.GMouldTypeID,
- inp.CanManyTimes,
- inp.GroutingLineDetailID,
- inp.GroutingMouldCode,
- inp.MouldCode,
- inp.GroutingUserID,
- inp.GroutingUserCode,
- inp.GroutingNum,
- inp.Remarks,
- inp.KilnID,
- inp.KilnCode,
- inp.KilnName,
- inp.KilnCarID,
- inp.KilnCarCode,
- inp.KilnCarName,
- inp.KilnCarBatchNo,
- inp.KilnCarPosition,
- :AccountID,
- :CreateUserID,
- :UpdateUserID,
- 1,
- inp.logoid,
- inp.ISREWORKFLAG,inp.INSCRAPFLAG
- from TP_PM_InProduction inp
- LEFT JOIN tp_mst_goods g
- ON g.goodsid = inp.goodsid
- LEFT JOIN tp_mst_goodsType gt
- ON gt.goodstypeid = g.goodstypeid
- where 1=1
- ";
- //sql += "AND instr(','||:ProcedureIDS||',',','||TP_PM_InProduction.ProcedureID||',')>0 ";
- parameters = new List<OracleParameter>();
- // 工序IDS
- if (!string.IsNullOrEmpty(inProductionEntity[0].ProcedureIDS))
- {
- sql += "AND instr(','||:ProcedureIDS||',',','||inp.FlowProcedureID||',')>0 ";
- parameters.Add(new OracleParameter(":ProcedureIDS", OracleDbType.NVarchar2, inProductionEntity[0].ProcedureIDS, ParameterDirection.Input));
- }
- // 完成日期
- if (inProductionEntity[0].StartCompleteDate != null)
- {
- sql = sql + " AND inp.ProcedureTime >= :Createdate AND inp.ProcedureTime <= :EndDate ";
- parameters.Add(new OracleParameter(":Createdate", OracleDbType.Date, inProductionEntity[0].StartCompleteDate, ParameterDirection.Input));
- parameters.Add(new OracleParameter(":EndDate", OracleDbType.Date, inProductionEntity[0].EndCompleteDate, ParameterDirection.Input));
- }
- // 编码IDS
- if (!string.IsNullOrEmpty(inProductionEntity[0].GoodsCodeList))
- {
- sql += "AND instr(','||:GoodsIDS||',',','||inp.GoodsID||',')>0 ";
- parameters.Add(new OracleParameter(":GoodsIDS", OracleDbType.NVarchar2, inProductionEntity[0].GoodsCodeList, ParameterDirection.Input));
- }
- // 产品类型
- if (!string.IsNullOrEmpty(inProductionEntity[0].GoodsTypeCode))
- {
- sql += "AND instr(gt.goodstypecode, :GoodsTypeCode)=1 ";
- parameters.Add(new OracleParameter(":GoodsTypeCode", OracleDbType.NVarchar2, inProductionEntity[0].GoodsTypeCode, ParameterDirection.Input));
- }
- parameters.Add(new OracleParameter(":InCheckedID", OracleDbType.Int32, InCheckedID, ParameterDirection.Input));
- parameters.Add(new OracleParameter(":InCheckedNo", OracleDbType.Varchar2, InCheckedNo, ParameterDirection.Input));
- parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
- parameters.Add(new OracleParameter(":CreateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input));
- parameters.Add(new OracleParameter(":UpdateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input));
- returnRows += oracleTrConn.ExecuteNonQuery(sql, parameters.ToArray());
- #region 插入盘点工号列表
- foreach (DataRow r in inProductionEntity[0].UserTable.Rows)
- {
- if (r["userid"] != DBNull.Value)
- {
- sql = @" Insert into tp_pm_incheckeduser
- (
- incheckedid,
- userCode,
- userid
- )
- values
- (
- :inchecked,
- :userCode,
- :userid
- )
- ";
- Paras = new OracleParameter[] {
- new OracleParameter(":inchecked",OracleDbType.Int32,
- InCheckedID,ParameterDirection.Input),
- new OracleParameter(":userCode",OracleDbType.NVarchar2,
- r["userCode"],ParameterDirection.Input),
- new OracleParameter(":userid",OracleDbType.Int32,
- r["userid"],ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- }
- #endregion
- }
- else
- {
- string sql = @"Update TP_PM_InChecked set Incheckname=:Incheckname,Remarks=:Remarks,updateuserid=:updateuserid where InCheckedID=:InCheckedID";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":InCheckedID",OracleDbType.Int32,
- inProductionEntity[0].ReworkProcedureID,ParameterDirection.Input),
- new OracleParameter(":Incheckname",OracleDbType.NVarchar2,
- inProductionEntity[0].CompleteProcedureName,ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.NVarchar2,
- remarks,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- sql = @"delete from tp_pm_incheckeduser where InCheckedID=:InCheckedID";
- Paras = new OracleParameter[] {
- new OracleParameter(":InCheckedID",OracleDbType.Int32,
- inProductionEntity[0].ReworkProcedureID,ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- #region 插入盘点工号列表
- foreach (DataRow r in inProductionEntity[0].UserTable.Rows)
- {
- if (string.IsNullOrEmpty(r["userCode"].ToString()) ||
- string.IsNullOrEmpty(r["userid"].ToString()))
- {
- continue;
- }
- sql = @" Insert into tp_pm_incheckeduser
- (
- incheckedid,
- userCode,
- userid
- )
- values
- (
- :inchecked,
- :userCode,
- :userid
- )
- ";
- Paras = new OracleParameter[] {
- new OracleParameter(":inchecked",OracleDbType.Int32,
- inProductionEntity[0].ReworkProcedureID,ParameterDirection.Input),
- new OracleParameter(":userCode",OracleDbType.NVarchar2,
- r["userCode"],ParameterDirection.Input),
- new OracleParameter(":userid",OracleDbType.Int32,
- r["userid"],ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- #endregion
- }
- if (returnRows == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 更新盘点单
- /// </summary>
- /// <param name="InCheckedID">盘点单号</param>
- /// <param name="BarCode">产品条码</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns></returns>
- public static int UpdateInChecked(int InCheckedID, string BarCode, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- // 转换条码
- string sqlString = @"select FUN_CMN_GetBarCode(:barcode,null,:accountid) From DUAL";
- OracleParameter[] paras1 = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, BarCode,ParameterDirection.Input),
- new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
- };
- BarCode = oracleTrConn.GetSqlResultToStr(sqlString, paras1);
- string sql = @"select 1 from TP_PM_InProduction where barcode=:barcode";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- BarCode,ParameterDirection.Input)
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count == 0)
- {
- returnRows = -2;//该产品不在生产线
- return returnRows;
- }
- sql = @"select InCheckedFlag,CHECKEDUSERID as Userid from TP_PM_InCheckedDetail where InCheckedID=:InCheckedID and BarCode=:BarCode and Valueflag=1";
- Paras = new OracleParameter[] {
- new OracleParameter(":InCheckedID",OracleDbType.Int32,
- InCheckedID,ParameterDirection.Input),
- new OracleParameter(":BarCode",OracleDbType.NVarchar2,
- BarCode,ParameterDirection.Input)
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count == 0)
- {
- sql = @"select InCheckedNo from TP_PM_InChecked where InCheckedID=:InCheckedID";
- Paras = new OracleParameter[] {
- new OracleParameter(":InCheckedID",OracleDbType.Int32,
- InCheckedID,ParameterDirection.Input),
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- string InCheckedNo = ds.Tables[0].Rows[0]["InCheckedNo"].ToString();//肯定会有盘点单号,所以就没有加判断
- //在产不在生产线上,属于盘赢
- sql = @"
- insert into TP_PM_InCheckedDetail
- (
- InCheckedID,
- BarCode,
- InCheckedNo,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureID,
- ProcedureTime,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- SpecialRepairFlag,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- CreateUserID,
- UpdateUserID,
- InCheckedFlag,
- CheckedDate,
- CheckedUserID,
- logoid
- )
- select
- :InCheckedID,
- BarCode,
- :InCheckedNo,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureID,
- ProcedureTime,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- SpecialRepairFlag,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- :AccountID,
- :CreateUserID,
- :UpdateUserID,
- :InCheckedFlag,
- sysdate,
- :CheckedUserID,
- logoid
- from TP_PM_InProduction where 1=1
- ";
- ;
- List<OracleParameter> parameters = new List<OracleParameter>();
- sql += "AND instr(','||:barcode||',',','||TP_PM_InProduction.barcode||',')>0 ";
- parameters.Add(new OracleParameter(":InCheckedID", OracleDbType.Int32, InCheckedID, ParameterDirection.Input));
- parameters.Add(new OracleParameter(":InCheckedNo", OracleDbType.Varchar2, InCheckedNo, ParameterDirection.Input));
- parameters.Add(new OracleParameter(":barcode", OracleDbType.NVarchar2, BarCode, ParameterDirection.Input));
- parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
- parameters.Add(new OracleParameter(":CreateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input));
- parameters.Add(new OracleParameter(":UpdateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input));
- parameters.Add(new OracleParameter(":InCheckedFlag", OracleDbType.Int32, Constant.InCheckedFlag.InCheckedWin.GetHashCode(), ParameterDirection.Input));
- parameters.Add(new OracleParameter(":CheckedUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input));
- returnRows += oracleTrConn.ExecuteNonQuery(sql, parameters.ToArray());
- returnRows = 10;
- }
- else
- {
- int InCheckedFlag = Convert.ToInt32(ds.Tables[0].Rows[0]["InCheckedFlag"]);
- if (InCheckedFlag == 1)
- {
- if (Convert.ToInt32(ds.Tables[0].Rows[0]["Userid"]) != sUserInfo.UserID)
- {
- returnRows = -22;//己被其他工号盘点
- }
- else
- {
- returnRows = -24;//己被自己工号盘点
- }
- return returnRows;
- }
- else if (InCheckedFlag == 2)
- {
- if (Convert.ToInt32(ds.Tables[0].Rows[0]["Userid"]) != sUserInfo.UserID)
- {
- returnRows = -23;//己被其他工号盘盈
- }
- else
- {
- returnRows = -25;//己被自己工号盘盈
- }
- return returnRows;
- }
- sql = "update TP_PM_InCheckedDetail set InCheckedFlag=:InCheckedFlag,CheckedDate=sysdate,CheckedUserID=:CheckedUserID,UpdateUserID=:UpdateUserID where InCheckedID=:InCheckedID and BarCode=:BarCode and InCheckedFlag=:whereInCheckedFlag";
- Paras = new OracleParameter[] {
- new OracleParameter(":CheckedUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":InCheckedFlag",OracleDbType.Int32,
- Constant.InCheckedFlag.InCheckeded,ParameterDirection.Input),
- new OracleParameter(":InCheckedID",OracleDbType.Int32,
- InCheckedID,ParameterDirection.Input),
- new OracleParameter(":BarCode",OracleDbType.NVarchar2,
- BarCode,ParameterDirection.Input),
- new OracleParameter(":whereInCheckedFlag",OracleDbType.Int32,
- Constant.InCheckedFlag.InCheckedNo,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- returnRows = 1;//防止多次盘点此条码,下面在回滚回来,代码是有作用
- }
- if (returnRows == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 停用盘点单
- /// </summary>
- /// <param name="InCheckedID">盘点单号</param>
- /// <returns></returns>
- public static int DisableInChecked(int InCheckedID, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string sql = "update TP_PM_InChecked set valueflag='0', updateuserid=:updateuserid where InCheckedID=:InCheckedID and valueflag='1'";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":InCheckedID",OracleDbType.Int32,
- InCheckedID,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input)
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- if (returnRows == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 撤销包装
- /// </summary>
- /// <param name="barcode">产品条码</param>
- /// <returns></returns>
- public static ServiceResultEntity AddChancelFinishedproduct(string barcode, SUserInfo sUserInfo)
- {
- ServiceResultEntity entity = new ServiceResultEntity();
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- //xuwei add 2019-10-15 修正 撤销包装时 副品变正品
- int goodsLevelID;
- int goodsLevelTypeID;
- //xuwei end
- // 转换注浆条码
- barcode = CommonModuleLogic.CommonModuleLogic.GetBarcode(oracleTrConn, barcode, sUserInfo);
- DateTime? createTime = null;
- // 1 条码是否在产成品表中
- string sql = "select createTime,FHUserCode,GoodsCode,GoodsLevelID,GoodsLevelTypeID from tp_pm_finishedproduct where barcode=:barcode and valueflag=1";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds.Tables[0].Rows.Count == 0)
- {
- //不存在产成品
- returnRows = -1;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- else
- {
- //wangx 2017-02-10 已经交接不允许撤销
- if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["FHUserCode"].ToString()))
- {
- entity.Result = -200; //已交接,不能再次进行交接
- entity.Message = "此产品【" + ds.Tables[0].Rows[0]["GoodsCode"].ToString() + "】已交接,不能进行该操作";
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- return entity;
- }
- //wangx 2017-02-10 end
- createTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["createTime"]); // 成品时间
- //xuwei add 2019-10-15 修正 撤销包装时 副品变正品
- goodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
- goodsLevelTypeID = Convert.ToInt32(ds.Tables[0].Rows[0]["goodsLevelTypeID"]);
- //xuwei end
- }
- #region 是否启用成品撤销限制天数
- if (createTime != null)
- {
- sql = "select settingvalue from TP_MST_SystemSetting where settingcode=:settingcode and accountid=:accountid";
- Paras = new OracleParameter[] {
- new OracleParameter(":settingcode",OracleDbType.Varchar2,
- Constant.SettingType.S_PM_005.ToString(),ParameterDirection.Input),
- new OracleParameter(":accountid",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input)
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- if (Convert.ToInt32(ds.Tables[0].Rows[0]["settingvalue"]) > 0)
- {
- // 开启了限制
- ServiceResultEntity resultEntity = PMModuleLogic.BarcodeAllowCancel(Convert.ToDateTime(createTime),
- Convert.ToInt32(ds.Tables[0].Rows[0]["settingvalue"]), Constant.SettingType.S_PM_005.ToString(), sUserInfo);
- if (Convert.ToInt32(resultEntity.Result) < 0)
- {
- //超过成品撤销限制天数
- returnRows = -200;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- entity.Message = resultEntity.Message;
- return entity;
- }
- }
- }
- }
- #endregion
- sql = "select 1 from tp_pm_productiondatain where barcode=:barcode and valueflag=1";
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds.Tables[0].Rows.Count == 0)
- {
- // 2 生产数据恢复到在产生产数据 xuwei 不用处理
- sql = @"insert into tp_pm_productiondatain
- (
- ProductionDataID,
- BarCode,
- CentralizedBatchNo,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureID,
- ProcedureCode,
- ProcedureName,
- ProcedureModel,
- ModelType,
- PieceType,
- IsReworked,
- NodeType,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- SpecialRepairFlag,
- OrganizationID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- UserCode,
- UserName,
- ClassesSettingID,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- ReworkProcedureID,
- ReworkProcedureCode,
- ReworkProcedureName,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingDate,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- AccountDate,
- SettlementFlag,
- AccountID,
- ValueFlag,
- CreateTime,
- CreateUserID,
- UpdateTime,
- UpdateUserID,
- OPTimeStamp,
- TriggerFlag,
- LogoID,
- BackOutTime,BackOutUserID,BackOutUserCode,CheckTime
- )
- select
- ProductionDataID,
- BarCode,
- CentralizedBatchNo,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureID,
- ProcedureCode,
- ProcedureName,
- ProcedureModel,
- ModelType,
- PieceType,
- IsReworked,
- NodeType,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- SpecialRepairFlag,
- OrganizationID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- UserCode,
- UserName,
- ClassesSettingID,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- ReworkProcedureID,
- ReworkProcedureCode,
- ReworkProcedureName,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingDate,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- AccountDate,
- SettlementFlag,
- AccountID,
- ValueFlag,
- CreateTime,
- CreateUserID,
- UpdateTime,
- UpdateUserID,
- OPTimeStamp,
- 1,
- LogoID,
- BackOutTime,BackOutUserID,BackOutUserCode,CheckTime
- from TP_PM_ProductionData where valueflag=1 and barcode=:barcode
- ";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- // 3 停用在产生产数据包装数据
- sql = "update TP_PM_ProductionDataIn set valueflag=0,updateuserID=" + sUserInfo.UserID
- + " where ProductionDataID=(select max(ProductionDataID) from TP_PM_ProductionDataIn where barcode=:barcode and valueflag=1)";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 4 插入在产数据
- //xuwei fix 2019-10-15 修正 撤销包装时 副品变正品
- sql = $@"insert into TP_PM_InProduction
- (
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- FlowProcedureID,
- FlowProcedureTime,
- ProcedureID,
- ProcedureTime,
- ProductionDataID,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- SpecialRepairFlag,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateTime,
- CreateUserID,
- UpdateTime,
- UpdateUserID,
- OPTimeStamp,
- LogoID
- )
- select
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureID,
- CreateTime,
- ProcedureID,
- CreateTime,
- ProductionDataID,
- ProcedureModel,
- ModelType,
- 0,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- SpecialRepairFlag,
- {goodsLevelID} AS GoodsLevelID,
- {goodsLevelTypeID} AS GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateTime,
- CreateUserID,
- UpdateTime,
- UpdateUserID,
- OPTimeStamp,
- LogoID
- from TP_PM_ProductionData where TP_PM_ProductionData.ProductionDataID=(select max(ProductionDataID) from TP_PM_ProductionData where barcode=:barcode and valueflag=1)";
- //xuwei end
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 5 删除产成品表
- sql = "delete from tp_pm_finishedproduct where barcode=:barcode and valueflag=1";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- if (returnRows <= 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- entity.Result = returnRows;
- return entity;
- }
- /// <summary>
- /// 公坯设定
- /// </summary>
- /// <param name="barcode">产品条码</param>
- /// <returns></returns>
- public static int AddPublicBodyProduct(string barcode, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- // 1 条码是否在在产表中
- string sql = "select ispublicbody from tp_pm_inproduction where barcode=:barcode and valueflag=1";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds.Tables[0].Rows.Count == 0)
- {
- //不存在生产线上,
- returnRows = -1;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- return returnRows;
- }
- else
- {
- if (ds.Tables[0].Rows[0]["ispublicbody"].ToString() == "1")
- {
- returnRows = -2;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- return returnRows;
- }
- }
- // 2 TP_PM_GroutingDailyDetail 在产盘点明细
- sql = "update TP_PM_GroutingDailyDetail set ispublicbody=1 where barcode=:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 3 TP_PM_InCheckedDetail
- sql = "update TP_PM_InCheckedDetail set ispublicbody=1 where barcode=:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 4 TP_PM_InProduction
- sql = "update TP_PM_InProduction set ispublicbody=1 where barcode=:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 5 TP_PM_InProductionTrash
- sql = "update TP_PM_InProductionTrash set ispublicbody=1 where barcode=:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 6 TP_PM_ProductionDataIn
- sql = "update TP_PM_ProductionDataIn set ispublicbody=1 where barcode=:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 7 TP_PM_ScrapProduct
- sql = "update TP_PM_ScrapProduct set ispublicbody=1 where barcode=:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- if (returnRows <= 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 交坯保存校验(首节点)
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="procedureID">工序ID</param>
- /// <param name="barcode">条码</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <param name="groutingUserID">返回的注浆者ID</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string CheckBarcodeDeliverMud(IDBTransaction oracleTrConn,
- int procedureID,
- string barcode,
- out int goodsID,
- out string goodsCode,
- out string goodsName,
- out string groutingUserCode,
- SUserInfo sUserInfo, ref int? GroutingDailyDetailID
- )
- {
- try
- {
- string sql = "select barcodestatus,barcode,GroutingDailyDetailid from TP_PM_USEDBARCODE where barcode=:barcode";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter("barcode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, paras);
- string ErrorMessage = "";
- if (ds != null && ds.Tables[0].Rows.Count == 0)
- {
- ErrorMessage = "无效条码";
- }
- else
- {
- //不等于空的时候
- if (ds.Tables[0].Rows[0]["barcodestatus"].ToString() == "-1")
- {
- sql = "select max(newbarcode) from TP_PM_BarCodeRecord where BarCode='" + ds.Tables[0].Rows[0]["barcode"].ToString() + "'";
- string newbarcode = oracleTrConn.GetSqlResultToStr(sql);
- ErrorMessage = "条码已被替换,新条码为" + newbarcode;
- }
- else if (ds.Tables[0].Rows[0]["barcodestatus"].ToString() == "2")
- {
- ErrorMessage = "产品开模时已损坏";
- }
- // 已经交坯
- else if (ds.Tables[0].Rows[0]["barcodestatus"].ToString() == "3" ||
- ds.Tables[0].Rows[0]["barcodestatus"].ToString() == "4")
- {
- //ErrorMessage = "产品已交坯";
- ErrorMessage = "产品已在产";
- }
- }
- string sqlString = @"select
- GroutingDailyDetailid,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserCode as GroutingUserCode,
- groutingcount as GroutingNum,
- GroutingMouldCode as MouldCode,
- ispublicbody,
- Groutingdate,
- SpecialRepairFlag
- from
- tp_pm_GroutingDailyDetail
- where tp_pm_GroutingDailyDetail.groutingdailydetailid=:groutingdailydetailid";
- paras = new OracleParameter[]{
- new OracleParameter(":groutingdailydetailid",ds.Tables[0].Rows[0]["GroutingDailyDetailid"].ToString()),
- };
- ds = oracleTrConn.GetSqlResultToDs(sqlString, paras);
- goodsID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsID"]);
- goodsCode = ds.Tables[0].Rows[0]["GoodsCode"].ToString();
- goodsName = ds.Tables[0].Rows[0]["GoodsName"].ToString();
- groutingUserCode = ds.Tables[0].Rows[0]["GroutingUserCode"].ToString();
- GroutingDailyDetailID = Convert.ToInt32(ds.Tables[0].Rows[0]["GroutingDailyDetailID"]);
- string sqlExistGoods = "select count(GoodsID) from TP_PC_ProcedureGoods where GoodsID=:GoodsID and ProcedureID=:ProcedureID";
- paras = new OracleParameter[]{
- new OracleParameter(":GoodsID",ds.Tables[0].Rows[0]["GoodsID"].ToString()),
- new OracleParameter(":ProcedureID",procedureID),
- };
- DataSet dsGoods = oracleTrConn.GetSqlResultToDs(sqlExistGoods, paras);
- if (dsGoods.Tables[0].Rows[0][0].ToString() != "1")
- {
- ErrorMessage = @"条码[" + barcode +
- "]不可以经过该工序\n\r原因:条码对应的产品编码[" +
- ds.Tables[0].Rows[0]["GoodsCode"].ToString() + "]没有在该工序中配置";
- }
- return ErrorMessage;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 标准计件(单点采集)
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="procedure">工序对象</param>
- /// <param name="barcodeTable">条码信息</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <param name="groutingUserID">返回的注浆者ID</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddNormalWorkPiece2(IDBTransaction oracleTrConn,
- ProcedureEntity procedure,
- DataTable barcodeTable,
- SUserInfo sUserInfo,
- out int goodsID,
- out string goodsCode,
- out string goodsName,
- out string groutingUserCode)
- {
- try
- {
- goodsID = Constant.INT_IS_ZERO;
- goodsCode = null;
- goodsName = null;
- groutingUserCode = string.Empty; //Constant.INT_IS_ZERO;
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = string.Empty;
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- string finishedloadbatchno = DateTime.Now.ToString("yyMMddHHmmss-") + centralizedBatchNo;
- // 条码信息
- foreach (DataRow barcodeRow in barcodeTable.Rows)
- {
- // 条码
- string barcode = barcodeRow["Barcode"].ToString();
- if (string.IsNullOrEmpty(barcode))
- {
- throw new Exception("传入的条码号为空");
- }
- // 生产工号
- int workUserID = Convert.ToInt32(barcodeRow["UserID"]);
- // 生产工号
- string workUserCode = barcodeRow["UserCode"].ToString();
- //生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- int productionDataID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sql));
- int? GroutingDailyDetailID = null;//注浆明细ID
- if (procedure.CollectType == 1)
- {
- // ccc todo
- //if (procedure.ModelType == (int)Constant.ProcedureModelType.DeliverMud)//是交坯节点,并且不是公坯的
- if(procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- #region 校验条码有效性
- errMsg = CheckBarcodeDeliverMud(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo, ref GroutingDailyDetailID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- else
- {
- #region 校验条码有效性
- errMsg = CheckBarcode(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- }
- else
- {
- // string sqlGroutingInfo = @"select tp_pm_groutingdailydetail.goodsid,
- // tp_pm_groutingdailydetail.goodscode,
- // tp_pm_groutingdailydetail.goodsname,
- // tp_pm_groutingdailydetail.usercode as groutingUserCode
- // from tp_pm_groutingdailydetail where barcode=:barcode
- // ";
- string sqlGroutingInfo = "";
- // sqlGroutingInfo = @"select tp_pm_groutingdailydetail.goodsid,
- // tp_pm_groutingdailydetail.goodscode,
- // tp_pm_groutingdailydetail.goodsname,
- // tp_pm_groutingdailydetail.usercode as groutingUserCode
- // from tp_pm_groutingdailydetail where barcode=:barcode
- // ";
- //if (procedure.NodeType == (int)Constant.ProcedureNodeType.End)
- //{
- sqlGroutingInfo = @"select tp_pm_groutingdailydetail.goodsid,
- tp_pm_groutingdailydetail.goodscode,
- tp_pm_groutingdailydetail.goodsname,
- tp_pm_groutingdailydetail.usercode as groutingUserCode
- from tp_pm_groutingdailydetail where groutingdailydetailid in
- (select groutingdailydetailid from TP_PM_USEDBARCODE where barcode=:barcode)
- ";
- //}
- OracleParameter[] ReFireparas = new OracleParameter[] {
- new OracleParameter(":barcode",barcode),
- };
- DataSet dsGrouting = oracleTrConn.GetSqlResultToDs(sqlGroutingInfo, ReFireparas);
- if (dsGrouting != null && dsGrouting.Tables[0].Rows.Count > 0)
- {
- goodsID = Convert.ToInt32(dsGrouting.Tables[0].Rows[0]["goodsid"]);
- goodsCode = dsGrouting.Tables[0].Rows[0]["goodscode"].ToString();
- goodsName = dsGrouting.Tables[0].Rows[0]["goodsName"].ToString();
- groutingUserCode = dsGrouting.Tables[0].Rows[0]["groutingUserCode"].ToString();
- }
- }
- int? ClassesSettingID = null;//班次配置ID
- #region 添加生产者数据
- if (procedure.ModelType == (int)Constant.ProcedureModelType.DeliverMud)//是交坯节点,并且不是公坯的
- {
- string GroutingUserCode = barcodeRow["GroutingUserCode"].ToString();
- if (GroutingUserCode.ToLower() == workUserCode.ToLower())
- {
- //errMsg = AddProducerDeliverAdobe(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo);
- }
- else
- {
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- }
- }
- else
- {
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- }
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 添加生产数据
- ProductionDataEntity productionData = new ProductionDataEntity();
- #region 属性赋值
- productionData.GroutingDailyDetailID = GroutingDailyDetailID;//只有交坯的时候用到
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = productionDataID;
- productionData.Barcode = barcode;
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.CompleteProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.PieceType = procedure.PieceType;
- if (procedure.IsSpecialRework == 0)
- {
- productionData.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- //不加条件valueflag,是因为,成检后重烧走过之后,在次重烧,以后也是重烧状态
- //string sqlReFire = "select * from tp_PM_ProductionData where ProductionDataid=(select max(ProductionDataid) from tp_PM_ProductionData where barcode='" + productionData.Barcode + "')";
- //xuwei 2019-09-18 交坯节点判定 0引用 不做处理
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)//是交坯节点,肯定不会是重烧
- {
- productionData.IsReFire = (int)Constant.ReFireFlag.No;
- productionData.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- ////// else
- ////// {
- ////// string sqlReFire = @"select
- ////// isrefire
- ////// from tp_pm_inproduction where barcode=:barcode
- ////// ";
- ////// OracleParameter[] ReFireparas = new OracleParameter[] {
- ////// new OracleParameter(":barcode",barcode),
- ////// };
- ////// DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire, ReFireparas);
- ////// if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- ////// {
- ////// if (Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]) > 0)
- ////// {
- ////// productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- ////// //if (productionData.IsReFire == 6) wangxin modify 20150422 因为已经大于0,定是重烧,即有缺陷
- ////// //{
- ////// productionData.DefectFlag = (int)Constant.GoodsLevelType.Defect;
- ////// //}
- ////// }
- ////// }
- ////// }
- }
- else
- {
- productionData.IsReFire = (int)Constant.GoodsLevelType.ReFire;
- productionData.DefectFlag = (int)Constant.GoodsLevelType.Defect;
- }
- productionData.ReworkProcedureID = null;
- #region 交坯判断
- // 交坯节点
- if (barcodeTable.Columns.Contains("IsPublicBody"))
- {
- productionData.IsPublicBody = Convert.ToInt32(barcodeRow["IsPublicBody"]);
- }
- // 非交坯节点
- else
- {
- // 正常坯
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, barcode);
- }
- #endregion
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = goodsID;
- productionData.GoodsCode = goodsCode;
- productionData.GoodsName = goodsName;
- productionData.UserID = workUserID;
- productionData.UserCode = barcodeRow["UserCode"].ToString();
- productionData.UserName = barcodeRow["UserName"].ToString();
- #endregion
- string OutSpecialRepairflag = "0";//干补标识
- DataSet outDataSet = null;
- //xuwei fix 2019-09-24 按新规则重新校准NodeType.Begin使后续NodeType.Begin判定是准确的
- //xuwei fix 2019-09-26 使用通用方法判定
- // 2019-1016
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- int isNodeBegin = IsNodeBegin<IDBTransaction>(oracleTrConn, productionData.Barcode);
- if (isNodeBegin == 0)
- {
- procedure.NodeType = (int)Constant.ProcedureNodeType.Middle;
- }
- }
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- errMsg = AddProductionDataDeliverMud(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag, out outDataSet);
- }
- else
- {
- errMsg = AddProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- }
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 开始节点
- //xuwei remove 2019-09-26 此处为重复判定移除
- //xuwei fix 2019-09-24 按新规则重新校准NodeType.Begin使后续NodeType.Begin判定是准确的
- //xuwei fix 2019-09-26 使用通用方法判定
- //int isNodeBegin = IsNodeBegin<IDBTransaction>(oracleTrConn, productionData.Barcode);
- // 2019-1016
- //if (isNodeBegin == 1) procedure.NodeType = (int)Constant.ProcedureNodeType.Begin;
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- #region 添加在产产品数据
- InProductionEntity addInProductionEntity = new InProductionEntity();
- addInProductionEntity.BarCode = barcode;
- //流程工序ID
- addInProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- addInProductionEntity.ProcedureID = procedure.ProcedureID;
- //addInProductionEntity.CompleteProcedureID = procedure.ProcedureID;
- // 工序模型
- addInProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- addInProductionEntity.ModelType = procedure.ModelType;
- addInProductionEntity.SpecialRepairflag = Convert.ToInt32(OutSpecialRepairflag);//干补标识
- addInProductionEntity.ProductionDataID = productionDataID;
- #region 交坯判断
- addInProductionEntity.IsPublicBody = productionData.IsPublicBody;// 生产数据已经判断是否为公坯
- #endregion
- // 生产工号
- addInProductionEntity.UserID = workUserID;
- // 执行添加
- errMsg = AddInProduction(oracleTrConn, addInProductionEntity, sUserInfo, outDataSet);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- #region 中间节点
- else if (procedure.NodeType == (int)Constant.ProcedureNodeType.Middle)
- {
- #region 修改在产产品数据的当前工序,清空返工工序字段
- InProductionEntity addInProductionEntity = new InProductionEntity();
- addInProductionEntity.BarCode = barcode;
- //流程工序ID
- addInProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- addInProductionEntity.ProcedureID = procedure.ProcedureID;
- //当前生产数据ID
- addInProductionEntity.ProductionDataID = productionDataID;
- // 工序模型
- addInProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- addInProductionEntity.ModelType = procedure.ModelType;
- // 生产工号
- addInProductionEntity.UserID = workUserID;
- // 缺陷标识
- // addInProductionEntity.DefectFlag = (int)Constant.DefectFlag.No;
- //addInProductionEntity.DefectFlag = (int)Constant.GoodsLevelType.NoDefect;
- if (procedure.IsSpecialRework == 0)
- {
- addInProductionEntity.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- else
- {
- addInProductionEntity.IsReFire = (int)Constant.GoodsLevelType.ReFire;
- addInProductionEntity.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- #region 交坯判断
- addInProductionEntity.IsPublicBody = productionData.IsPublicBody;// 生产数据已经判断是否为公坯
- #endregion
- // 执行修改
- errMsg = UpdateInProduction(oracleTrConn, addInProductionEntity, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- #region 结束节点
- else
- {
- #region 添加成品数据 删除在产产品数据
- FinishedProductEntity finishedProduct = new FinishedProductEntity();
- finishedProduct.BarCode = barcode;
- errMsg = AddFinishedProduct(oracleTrConn, finishedProduct, sUserInfo, finishedloadbatchno);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- InProductionEntity delInProductionEntity = new InProductionEntity();
- delInProductionEntity.BarCode = barcode;
- // 执行删除 在产数据
- errMsg = DeleteInProduction(oracleTrConn, delInProductionEntity, true, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- }
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 标准计件
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="procedure">工序对象</param>
- /// <param name="barcodeTable">条码信息</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <param name="groutingUserID">返回的注浆者ID</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddNormalWorkPieceSinglePoint(IDBTransaction oracleTrConn,
- ProcedureEntity procedure,
- DataTable barcodeTable,
- SUserInfo sUserInfo,
- int goodsID,
- string goodsCode,
- string goodsName,
- string groutingUserCode,
- int? arvGroutingDailyDetailID,
- bool isSendBody = false)
- {
- try
- {
- //goodsID = Constant.INT_IS_ZERO;
- //goodsCode = null;
- //goodsName = null;
- //groutingUserCode = string.Empty; //Constant.INT_IS_ZERO;
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = string.Empty;
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- string finishedloadbatchno = DateTime.Now.ToString("yyMMddHHmmss-") + centralizedBatchNo;
- // 条码信息
- foreach (DataRow barcodeRow in barcodeTable.Rows)
- {
- // 条码
- string barcode = barcodeRow["Barcode"].ToString();
- if (string.IsNullOrEmpty(barcode))
- {
- throw new Exception("传入的条码号为空");
- }
- // 生产工号
- int workUserID = Convert.ToInt32(barcodeRow["UserID"]);
- // 生产工号
- string workUserCode = barcodeRow["UserCode"].ToString();
- //生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- int productionDataID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sql));
- int? GroutingDailyDetailID = arvGroutingDailyDetailID;//注浆明细ID
- if (procedure.CollectType == 1)
- {
- // ccc todo
- //if (procedure.ModelType == (int)Constant.ProcedureModelType.DeliverMud)//是交坯节点,并且不是公坯的
- if(procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- #region 校验条码有效性
- errMsg = CheckBarcodeDeliverMud(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo, ref GroutingDailyDetailID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- else
- {
- #region 校验条码有效性
- errMsg = CheckBarcode(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- }
- else
- {
- // string sqlGroutingInfo = "";
- // sqlGroutingInfo = @"select tp_pm_groutingdailydetail.goodsid,
- // tp_pm_groutingdailydetail.goodscode,
- // tp_pm_groutingdailydetail.goodsname,
- // tp_pm_groutingdailydetail.usercode as groutingUserCode,
- // tp_pm_groutingdailydetail.GroutingDailyDetailID
- // from tp_pm_groutingdailydetail where groutingdailydetailid in
- // (select groutingdailydetailid from TP_PM_USEDBARCODE where barcode=:barcode)
- // ";
- // OracleParameter[] ReFireparas = new OracleParameter[] {
- // new OracleParameter(":barcode",barcode),
- // };
- // DataSet dsGrouting = oracleTrConn.GetSqlResultToDs(sqlGroutingInfo, ReFireparas);
- // if (dsGrouting != null && dsGrouting.Tables[0].Rows.Count > 0)
- // {
- // GroutingDailyDetailID = Convert.ToInt32(dsGrouting.Tables[0].Rows[0]["GroutingDailyDetailID"]);
- // goodsID = Convert.ToInt32(dsGrouting.Tables[0].Rows[0]["goodsid"]);
- // goodsCode = dsGrouting.Tables[0].Rows[0]["goodscode"].ToString();
- // goodsName = dsGrouting.Tables[0].Rows[0]["goodsName"].ToString();
- // groutingUserCode = dsGrouting.Tables[0].Rows[0]["groutingUserCode"].ToString();
- // }
- }
- int? ClassesSettingID = null;//班次配置ID
- #region 添加生产者数据
- if (procedure.ModelType == (int)Constant.ProcedureModelType.DeliverMud)//是交坯节点,并且不是公坯的
- {
- string GroutingUserCode = barcodeRow["GroutingUserCode"].ToString();
- if (GroutingUserCode.ToLower() == workUserCode.ToLower())
- {
- //errMsg = AddProducerDeliverAdobe(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo);
- }
- else
- {
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- }
- }
- else
- {
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- }
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 添加生产数据
- ProductionDataEntity productionData = new ProductionDataEntity();
- if (barcodeTable.Columns.Contains("Remarks"))
- {
- productionData.Remarks = barcodeRow["Remarks"] + "";
- }
- #region 属性赋值
- productionData.GroutingDailyDetailID = GroutingDailyDetailID;//只有交坯的时候用到
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = productionDataID;
- productionData.Barcode = barcode;
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.CompleteProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.PieceType = procedure.PieceType;
- if (barcodeRow["LogoID"].ToString() != "")
- {
- productionData.LogoID = Convert.ToInt32(barcodeRow["LogoID"]);
- }
- if (procedure.IsSpecialRework == 0)
- {
- productionData.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- //不加条件valueflag,是因为,成检后重烧走过之后,在次重烧,以后也是重烧状态
- //string sqlReFire = "select * from tp_PM_ProductionData where ProductionDataid=(select max(ProductionDataid) from tp_PM_ProductionData where barcode='" + productionData.Barcode + "')";
- //xuwei fix 2019-09-18 交坯节点判定修改
- //if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)//是交坯节点,肯定不会是重烧
- if (isSendBody)//是交坯节点,肯定不会是重烧
- {
- productionData.IsReFire = (int)Constant.ReFireFlag.No;
- productionData.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- ////// else
- ////// {
- ////// string sqlReFire = @"select
- ////// isrefire
- ////// from tp_pm_inproduction where barcode=:barcode
- ////// ";
- ////// OracleParameter[] ReFireparas = new OracleParameter[] {
- ////// new OracleParameter(":barcode",barcode),
- ////// };
- ////// DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire, ReFireparas);
- ////// if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- ////// {
- ////// if (Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]) > 0)
- ////// {
- ////// productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- ////// //if (productionData.IsReFire == 6) wangxin modify 20150422 因为已经大于0,定是重烧,即有缺陷
- ////// //{
- ////// productionData.DefectFlag = (int)Constant.GoodsLevelType.Defect;
- ////// //}
- ////// }
- ////// }
- ////// }
- }
- else
- {
- productionData.IsReFire = (int)Constant.GoodsLevelType.ReFire;
- productionData.DefectFlag = (int)Constant.GoodsLevelType.Defect;
- }
- productionData.ReworkProcedureID = null;
- #region 交坯判断
- // 交坯节点
- if (barcodeTable.Columns.Contains("IsPublicBody"))
- {
- productionData.IsPublicBody = Convert.ToInt32(barcodeRow["IsPublicBody"]);
- }
- // 非交坯节点
- else
- {
- // 正常坯
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, barcode);
- }
- #endregion
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = goodsID;
- productionData.GoodsCode = goodsCode;
- productionData.GoodsName = goodsName;
- productionData.UserID = workUserID;
- productionData.UserCode = barcodeRow["UserCode"].ToString();
- productionData.UserName = barcodeRow["UserName"].ToString();
- #endregion
- string OutSpecialRepairflag = "0";//干补标识
- DataSet outDataSet = null;
- //xuwei fix 2019-09-24 按新规则重新校准NodeType.Begin使后续NodeType.Begin判定是准确的
- //xuwei fix 2019-09-26 使用通用方法判定
- // 2019-1016
- //int isNodeBegin = IsNodeBegin<IDBTransaction>(oracleTrConn, productionData.Barcode);
- //if (isNodeBegin == 1) procedure.NodeType = (int)Constant.ProcedureNodeType.Begin;
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- int isNodeBegin = IsNodeBegin<IDBTransaction>(oracleTrConn, productionData.Barcode);
- if (isNodeBegin == 0)
- {
- procedure.NodeType = (int)Constant.ProcedureNodeType.Middle;
- }
- }
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- //xuwei fix 2019-09-17 加入最后一个参数 isSendBody识别交坯
- errMsg = AddProductionDataDeliverMud(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag, out outDataSet, isSendBody);
- }
- else
- {
- //xuwei fix 2019-09-17 加入最后一个参数 isSendBody识别交坯
- errMsg = AddProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag, isSendBody);
- }
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 开始节点
- if (procedure.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- #region 添加在产产品数据
- InProductionEntity addInProductionEntity = new InProductionEntity();
- addInProductionEntity.BarCode = barcode;
- //流程工序ID
- addInProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- addInProductionEntity.ProcedureID = procedure.ProcedureID;
- //addInProductionEntity.CompleteProcedureID = procedure.ProcedureID;
- // 工序模型
- addInProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- addInProductionEntity.ModelType = procedure.ModelType;
- addInProductionEntity.SpecialRepairflag = Convert.ToInt32(OutSpecialRepairflag);//干补标识
- addInProductionEntity.ProductionDataID = productionDataID;
- #region 交坯判断
- addInProductionEntity.IsPublicBody = productionData.IsPublicBody;// 生产数据已经判断是否为公坯
- #endregion
- // 生产工号
- addInProductionEntity.UserID = workUserID;
- // 执行添加
- //xuwei fix 2019-09-17 加入最后一个参数 isSendBody识别交坯
- errMsg = AddInProduction(oracleTrConn, addInProductionEntity, sUserInfo, outDataSet, isSendBody);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- #region 中间节点
- else if (procedure.NodeType == (int)Constant.ProcedureNodeType.Middle)
- {
- #region 修改在产产品数据的当前工序,清空返工工序字段
- InProductionEntity addInProductionEntity = new InProductionEntity();
- addInProductionEntity.BarCode = barcode;
- //流程工序ID
- addInProductionEntity.FlowProcedureID = procedure.ProcedureID;
- // 当前工序
- addInProductionEntity.ProcedureID = procedure.ProcedureID;
- //当前生产数据ID
- addInProductionEntity.ProductionDataID = productionDataID;
- // 工序模型
- addInProductionEntity.ProcedureModel = procedure.ProcedureModel;
- // 工序类别
- addInProductionEntity.ModelType = procedure.ModelType;
- // 生产工号
- addInProductionEntity.UserID = workUserID;
- // 缺陷标识
- // addInProductionEntity.DefectFlag = (int)Constant.DefectFlag.No;
- //addInProductionEntity.DefectFlag = (int)Constant.GoodsLevelType.NoDefect;
- if (procedure.IsSpecialRework == 0)
- {
- addInProductionEntity.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- else
- {
- addInProductionEntity.IsReFire = (int)Constant.GoodsLevelType.ReFire;
- addInProductionEntity.DefectFlag = (int)Constant.GoodsLevelType.NoDefects;
- }
- addInProductionEntity.LogoID = productionData.LogoID == 0 ? null : productionData.LogoID;
- #region 交坯判断
- addInProductionEntity.IsPublicBody = productionData.IsPublicBody;// 生产数据已经判断是否为公坯
- #endregion
- // 执行修改
- errMsg = UpdateInProduction(oracleTrConn, addInProductionEntity, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- #region 结束节点
- else
- {
- #region 添加成品数据 删除在产产品数据
- FinishedProductEntity finishedProduct = new FinishedProductEntity();
- finishedProduct.BarCode = barcode;
- finishedProduct.LogoID = productionData.LogoID;
- errMsg = AddFinishedProduct(oracleTrConn, finishedProduct, sUserInfo, finishedloadbatchno);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- InProductionEntity delInProductionEntity = new InProductionEntity();
- delInProductionEntity.BarCode = barcode;
- // 执行删除 在产数据
- errMsg = DeleteInProduction(oracleTrConn, delInProductionEntity, true, sUserInfo);
- // 执行失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- }
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 清除在产残留数据(清除选择)
- /// </summary>
- /// <param name="barcodes">产品条码集</param>
- /// <returns></returns>
- public static int SaveClearInproduction(string barcodes, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string sql = "";
- string[] subbarcode = barcodes.Split(',');
- OracleParameter[] Paras = null;
- for (int i = 0; i < subbarcode.Length; i++)
- {
- // 0.登窑、入窑、出窑工序的产品不能清除
- sql = "select p.modeltype from tp_pm_inproduction p where p.barcode = :barcode";
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- subbarcode[i],ParameterDirection.Input)
- };
- string modeltype = oracleTrConn.GetSqlResultToStr(sql, Paras);
- if (!string.IsNullOrWhiteSpace(modeltype))
- {
- Dongke.IBOSS.PRD.Basics.BaseResources.Constant.ProcedureModelType pmt =
- (Dongke.IBOSS.PRD.Basics.BaseResources.Constant.ProcedureModelType)Convert.ToInt32(modeltype);
- if (pmt == Dongke.IBOSS.PRD.Basics.BaseResources.Constant.ProcedureModelType.LoadCar ||
- pmt == Dongke.IBOSS.PRD.Basics.BaseResources.Constant.ProcedureModelType.IntoKiln ||
- pmt == Dongke.IBOSS.PRD.Basics.BaseResources.Constant.ProcedureModelType.OutKiln)
- {
- continue;
- }
- }
- // 返工标识或者是报损标识不允许清除 2016-07-12
- sql = "select IsReworkFlag,InScrapFlag from tp_pm_inproduction p where p.barcode = :barcode";
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- subbarcode[i],ParameterDirection.Input)
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- // chenxy 2019-10-02 半检返修 IsReworkFlag=2
- //if (ds.Tables[0].Rows[0]["IsReworkFlag"].ToString() == "1")
- if (ds.Tables[0].Rows[0]["IsReworkFlag"].ToString() != "0")
- {
- returnRows = -1;
- break;
- }
- if (ds.Tables[0].Rows[0]["InScrapFlag"].ToString() == "1")
- {
- returnRows = -2;
- break;
- }
- }
- // 返工标识或者是报损标识不允许清除 end
- //把在产数据插入到在产临时表中。(数据来源标识0:在产表)
- sql = @"insert into tp_pm_inproduction_tmp
- (
- BARCODE,
- PRODUCTIONLINEID,
- PRODUCTIONLINECODE,
- PRODUCTIONLINENAME,
- PROCEDUREMODEL,
- MODELTYPE,
- REWORKPROCEDUREID,
- ISPUBLICBODY,
- GOODSID,
- GOODSCODE,
- GOODSNAME,
- USERID,
- GROUTINGDAILYID,
- GROUTINGDAILYDETAILID,
- GROUTINGDATE,
- GROUTINGLINEID,
- GROUTINGLINECODE,
- GROUTINGLINENAME,
- GMOULDTYPEID,
- CANMANYTIMES,
- GROUTINGLINEDETAILID,
- GROUTINGMOULDCODE,
- MOULDCODE,
- REMARKS,
- ACCOUNTID,
- VALUEFLAG,
- CREATETIME,
- CREATEUSERID,
- UPDATETIME,
- UPDATEUSERID,
- OPTIMESTAMP,
- ISREFIRE,
- GOODSLEVELID,
- GOODSLEVELTYPEID,
- DEFECTFLAG,
- GROUTINGUSERID,
- GROUTINGUSERCODE,
- GROUTINGNUM,
- KILNID,
- KILNCODE,
- KILNNAME,
- KILNCARID,
- KILNCARCODE,
- KILNCARNAME,
- KILNCARBATCHNO,
- KILNCARPOSITION,
- SPECIALREPAIRFLAG,
- FLOWPROCEDUREID,
- FLOWPROCEDURETIME,
- PROCEDUREID,
- PROCEDURETIME,
- PRODUCTIONDATAID,
- trashflag,
- Deletedtime,
- logoid,
- IsReworkFlag,
- SemiCheckID,
- DELETEDUSERID,
- DELETEDUSERCODE
- )
- select
- BARCODE,
- PRODUCTIONLINEID,
- PRODUCTIONLINECODE,
- PRODUCTIONLINENAME,
- PROCEDUREMODEL,
- MODELTYPE,
- REWORKPROCEDUREID,
- ISPUBLICBODY,
- GOODSID,
- GOODSCODE,
- GOODSNAME,
- USERID,
- GROUTINGDAILYID,
- GROUTINGDAILYDETAILID,
- GROUTINGDATE,
- GROUTINGLINEID,
- GROUTINGLINECODE,
- GROUTINGLINENAME,
- GMOULDTYPEID,
- CANMANYTIMES,
- GROUTINGLINEDETAILID,
- GROUTINGMOULDCODE,
- MOULDCODE,
- REMARKS,
- ACCOUNTID,
- VALUEFLAG,
- CREATETIME,
- CREATEUSERID,
- UPDATETIME,
- UPDATEUSERID,
- OPTIMESTAMP,
- ISREFIRE,
- GOODSLEVELID,
- GOODSLEVELTYPEID,
- DEFECTFLAG,
- GROUTINGUSERID,
- GROUTINGUSERCODE,
- GROUTINGNUM,
- KILNID,
- KILNCODE,
- KILNNAME,
- KILNCARID,
- KILNCARCODE,
- KILNCARNAME,
- KILNCARBATCHNO,
- KILNCARPOSITION,
- SPECIALREPAIRFLAG,
- FLOWPROCEDUREID,
- FLOWPROCEDURETIME,
- PROCEDUREID,
- PROCEDURETIME,
- PRODUCTIONDATAID,
- INSCRAPFLAG,
- sysdate,
- logoid,
- IsReworkFlag,
- SemiCheckID,
- " + sUserInfo.UserID + ",'" + sUserInfo.UserCode +
- "' from tp_pm_inproduction p where p.barcode = :barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- //删除在产数据
- sql = "delete from tp_pm_inproduction p where p.barcode =:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- //删除在产生产数据
- sql = "delete from tp_pm_productiondatain p where p.barcode =:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- if (returnRows <= 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- #region 清除在产残留数据(批量)
- /// <summary>
- /// 清除在产残留数据(批量清除)
- /// </summary>
- /// <param name="barcodes">产品条码集</param>
- /// <returns></returns>
- public static int SaveClearAllInproduction(SUserInfo user, RPT010401_SE se)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- List<OracleParameter> parameters = new List<OracleParameter>();
- StringBuilder sql = new StringBuilder(GetClearInproductionData(user.AccountID));
- if (se != null)
- {
- //生产线IDS
- if (!string.IsNullOrEmpty(se.ProductionLineIDS))
- {
- sql.Append(" AND instr(','||:ProductionLineIDS||',',','||TP_PM_InProduction.ProductionLineID||',')>0 ");
- parameters.Add(new OracleParameter(":ProductionLineIDS", OracleDbType.NVarchar2, se.ProductionLineIDS, ParameterDirection.Input));
- }
- //完成工序IDS
- if (!string.IsNullOrEmpty(se.ProcedureIDS))
- {
- sql.Append(" AND instr(','||:ProcedureIDS||',',','||TP_PM_InProduction.ProcedureID||',')>0 ");
- parameters.Add(new OracleParameter(":ProcedureIDS", OracleDbType.NVarchar2, se.ProcedureIDS, ParameterDirection.Input));
- }
- // 生产时间--开始
- if (se.UpdateTimeStart.HasValue)
- {
- sql.Append(" AND TP_PM_InProduction.Proceduretime >= :UpdateTimeStart ");
- parameters.Add(new OracleParameter(":UpdateTimeStart", OracleDbType.Date, se.UpdateTimeStart.Value, ParameterDirection.Input));
- }
- // 生产时间--结束
- if (se.UpdateTimeEnd.HasValue)
- {
- sql.Append(" AND TP_PM_InProduction.Proceduretime <= :UpdateTimeEnd ");
- parameters.Add(new OracleParameter(":UpdateTimeEnd", OracleDbType.Date, se.UpdateTimeEnd.Value, ParameterDirection.Input));
- }
- // 是否清除报损待审产品
- if (se.inscrapflag == 0)
- {
- sql.Append(" AND TP_PM_InProduction.inscrapflag=0 ");
- }
- else
- {
- sql.Append(" AND TP_PM_InProduction.inscrapflag in (0,1) ");
- }
- // 是否清除返工产品
- if (se.IsReworkFlag == 0)
- {
- sql.Append(" AND TP_PM_InProduction.IsReworkFlag=0 ");
- }
- else
- {
- // chenxy 2019-10-02 半检返修 IsReworkFlag=2
- //sql.Append(" AND TP_PM_InProduction.IsReworkFlag in (0,1) ");
- }
- }
- //把在产数据插入到在产临时表中。(数据来源标识0:在产表)
- string updatsql1 = @"insert into tp_pm_inproduction_tmp
- (
- BARCODE,
- PRODUCTIONLINEID,
- PRODUCTIONLINECODE,
- PRODUCTIONLINENAME,
- PROCEDUREMODEL,
- MODELTYPE,
- REWORKPROCEDUREID,
- ISPUBLICBODY,
- GOODSID,
- GOODSCODE,
- GOODSNAME,
- USERID,
- GROUTINGDAILYID,
- GROUTINGDAILYDETAILID,
- GROUTINGDATE,
- GROUTINGLINEID,
- GROUTINGLINECODE,
- GROUTINGLINENAME,
- GMOULDTYPEID,
- CANMANYTIMES,
- GROUTINGLINEDETAILID,
- GROUTINGMOULDCODE,
- MOULDCODE,
- REMARKS,
- ACCOUNTID,
- VALUEFLAG,
- CREATETIME,
- CREATEUSERID,
- UPDATETIME,
- UPDATEUSERID,
- OPTIMESTAMP,
- ISREFIRE,
- GOODSLEVELID,
- GOODSLEVELTYPEID,
- DEFECTFLAG,
- GROUTINGUSERID,
- GROUTINGUSERCODE,
- GROUTINGNUM,
- KILNID,
- KILNCODE,
- KILNNAME,
- KILNCARID,
- KILNCARCODE,
- KILNCARNAME,
- KILNCARBATCHNO,
- KILNCARPOSITION,
- SPECIALREPAIRFLAG,
- FLOWPROCEDUREID,
- FLOWPROCEDURETIME,
- PROCEDUREID,
- PROCEDURETIME,
- PRODUCTIONDATAID,
- trashflag,
- Deletedtime,
- logoid,
- IsReworkFlag,
- SemiCheckID,
- DELETEDUSERID,
- DELETEDUSERCODE
- )
- select
- BARCODE,
- PRODUCTIONLINEID,
- PRODUCTIONLINECODE,
- PRODUCTIONLINENAME,
- PROCEDUREMODEL,
- MODELTYPE,
- REWORKPROCEDUREID,
- ISPUBLICBODY,
- GOODSID,
- GOODSCODE,
- GOODSNAME,
- USERID,
- GROUTINGDAILYID,
- GROUTINGDAILYDETAILID,
- GROUTINGDATE,
- GROUTINGLINEID,
- GROUTINGLINECODE,
- GROUTINGLINENAME,
- GMOULDTYPEID,
- CANMANYTIMES,
- GROUTINGLINEDETAILID,
- GROUTINGMOULDCODE,
- MOULDCODE,
- REMARKS,
- ACCOUNTID,
- VALUEFLAG,
- CREATETIME,
- CREATEUSERID,
- UPDATETIME,
- UPDATEUSERID,
- OPTIMESTAMP,
- ISREFIRE,
- GOODSLEVELID,
- GOODSLEVELTYPEID,
- DEFECTFLAG,
- GROUTINGUSERID,
- GROUTINGUSERCODE,
- GROUTINGNUM,
- KILNID,
- KILNCODE,
- KILNNAME,
- KILNCARID,
- KILNCARCODE,
- KILNCARNAME,
- KILNCARBATCHNO,
- KILNCARPOSITION,
- SPECIALREPAIRFLAG,
- FLOWPROCEDUREID,
- FLOWPROCEDURETIME,
- PROCEDUREID,
- PROCEDURETIME,
- PRODUCTIONDATAID,
- INSCRAPFLAG,
- sysdate,
- logoid,
- IsReworkFlag,
- SemiCheckID,"
- + user.UserID + ",'" + user.UserCode +
- "' from tp_pm_inproduction p where p.barcode in (" + sql.ToString() + ")";
- returnRows += oracleTrConn.ExecuteNonQuery(updatsql1, parameters.ToArray());
- //删除在产数据
- updatsql1 = "delete from tp_pm_inproduction p where p.barcode in (" + sql.ToString() + ")";
- returnRows += oracleTrConn.ExecuteNonQuery(updatsql1, parameters.ToArray());
- //删除在产生产数据
- updatsql1 = "delete from tp_pm_productiondatain p where p.barcode in (" + sql.ToString() + ")";
- returnRows += oracleTrConn.ExecuteNonQuery(updatsql1, parameters.ToArray());
- if (returnRows == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- return returnRows;
- }
- /// <summary>
- /// 获取批量数据
- /// </summary>
- /// <returns></returns>
- private static string GetClearInproductionData(int accountid)
- {
- string selSql =
- "SELECT " +
- " TP_PM_InProduction.BarCode " +
- " FROM TP_PM_InProduction " +
- " Where TP_PM_InProduction.ValueFlag = '1' " +
- " and TP_PM_InProduction.modeltype not in (1,2,3)" +
- " and TP_PM_InProduction.AccountID= " + accountid;
- return selSql;
- }
- #endregion
- #region
- /// <summary>
- /// 清除在产加收站残留数据(清除选择)
- /// </summary>
- /// <param name="barcodes">产品条码集</param>
- /// <returns></returns>
- public static int SaveClearInproductionTrash(string barcodes, SUserInfo user)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string sql = "";
- string[] subbarcode = barcodes.Split(',');
- OracleParameter[] Paras = null;
- for (int i = 0; i < subbarcode.Length; i++)
- {
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- subbarcode[i],ParameterDirection.Input)
- };
- //把在产数据插入到在产临时表中。(数据来源标识0:在产表)
- sql = @"insert into tp_pm_inproduction_tmp
- (
- BARCODE,
- PRODUCTIONLINEID,
- PRODUCTIONLINECODE,
- PRODUCTIONLINENAME,
- PROCEDUREMODEL,
- MODELTYPE,
- REWORKPROCEDUREID,
- ISPUBLICBODY,
- GOODSID,
- GOODSCODE,
- GOODSNAME,
- USERID,
- GROUTINGDAILYID,
- GROUTINGDAILYDETAILID,
- GROUTINGDATE,
- GROUTINGLINEID,
- GROUTINGLINECODE,
- GROUTINGLINENAME,
- GMOULDTYPEID,
- CANMANYTIMES,
- GROUTINGLINEDETAILID,
- GROUTINGMOULDCODE,
- MOULDCODE,
- REMARKS,
- ACCOUNTID,
- VALUEFLAG,
- CREATETIME,
- CREATEUSERID,
- UPDATETIME,
- UPDATEUSERID,
- OPTIMESTAMP,
- ISREFIRE,
- GOODSLEVELID,
- GOODSLEVELTYPEID,
- DEFECTFLAG,
- GROUTINGUSERID,
- GROUTINGUSERCODE,
- GROUTINGNUM,
- KILNID,
- KILNCODE,
- KILNNAME,
- KILNCARID,
- KILNCARCODE,
- KILNCARNAME,
- KILNCARBATCHNO,
- KILNCARPOSITION,
- SPECIALREPAIRFLAG,
- FLOWPROCEDUREID,
- FLOWPROCEDURETIME,
- PROCEDUREID,
- PROCEDURETIME,
- PRODUCTIONDATAID,
- trashflag,
- Deletedtime,
- logoid,
- IsReworkFlag,
- SemiCheckID,
- DELETEDUSERID,
- DELETEDUSERCODE
- )
- select
- BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE, REWORKPROCEDUREID,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, UPDATEUSERID,optimestamp,
- ISREFIRE, GOODSLEVELID, GOODSLEVELTYPEID, DEFECTFLAG,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,SpecialRepairFlag,FlowProcedureID
- ,FlowProcedureTime,ProcedureID,ProcedureTime,ProductionDataID,1,sysdate,logoid,IsReworkFlag,SemiCheckID,"
- + user.UserID + ",'" + user.UserCode +
- "' from TP_PM_InProductionTrash p where p.barcode = :barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- //删除在产回收站数据
- sql = "delete from TP_PM_InProductionTrash p where p.barcode =:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- //删除在产生产数据
- sql = "delete from tp_pm_productiondatain p where p.barcode =:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- if (returnRows == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- #endregion
- #region 清除在产回收站残留数据(批量)
- /// <summary>
- /// 清除在产残留数据(批量清除)
- /// </summary>
- /// <param name="barcodes">产品条码集</param>
- /// <returns></returns>
- public static int SaveClearAllInproductionTrash(SUserInfo user, FPM2110_SE se)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- List<OracleParameter> parameters = new List<OracleParameter>();
- StringBuilder sql = new StringBuilder(GetClearInproductionTrashData(user.AccountID));
- if (se != null)
- {
- //生产线IDS
- if (!string.IsNullOrEmpty(se.ProductionLineIDS))
- {
- sql.Append(" AND instr(','||:ProductionLineIDS||',',','||TP_PM_InProductionTrash.ProductionLineID||',')>0 ");
- parameters.Add(new OracleParameter(":ProductionLineIDS", OracleDbType.NVarchar2, se.ProductionLineIDS, ParameterDirection.Input));
- }
- //完成工序IDS
- if (!string.IsNullOrEmpty(se.ProcedureIDS))
- {
- sql.Append(" AND instr(','||:ProcedureIDS||',',','||TP_PM_InProductionTrash.ProcedureID||',')>0 ");
- parameters.Add(new OracleParameter(":ProcedureIDS", OracleDbType.NVarchar2, se.ProcedureIDS, ParameterDirection.Input));
- }
- // 生产时间--开始
- if (se.UpdateTimeStart.HasValue)
- {
- sql.Append(" AND TP_PM_InProductionTrash.Proceduretime >= :UpdateTimeStart ");
- parameters.Add(new OracleParameter(":UpdateTimeStart", OracleDbType.Date, se.UpdateTimeStart.Value, ParameterDirection.Input));
- }
- // 生产时间--结束
- if (se.UpdateTimeEnd.HasValue)
- {
- sql.Append(" AND TP_PM_InProductionTrash.Proceduretime <= :UpdateTimeEnd ");
- parameters.Add(new OracleParameter(":UpdateTimeEnd", OracleDbType.Date, se.UpdateTimeEnd.Value, ParameterDirection.Input));
- }
- //报废日期开始
- if (se.ScrapDataStart.HasValue)
- {
- sql.Append(" AND TP_PM_SCRAPPRODUCT.SCRAPDATE >= trunc(:ScrapDateStart) ");
- parameters.Add(new OracleParameter(":ScrapDateStart", OracleDbType.Date, se.ScrapDataStart.Value, ParameterDirection.Input));
- }
- //报废日期结束
- if (se.ScrapDataEnd.HasValue)
- {
- sql.Append(" AND TP_PM_SCRAPPRODUCT.SCRAPDATE <= trunc(:ScrapDateEnd)");
- parameters.Add(new OracleParameter(":ScrapDateEnd", OracleDbType.Date, se.ScrapDataEnd.Value, ParameterDirection.Input));
- }
- // 产品分级
- sql.Append(" AND TP_PM_SCRAPPRODUCT.GOODSLEVELTYPEID = :GooddLevelTypeID ");
- parameters.Add(new OracleParameter(":GooddLevelTypeID", OracleDbType.Int32, se.GooddLevelTypeID, ParameterDirection.Input));
- }
- //把在产数据插入到在产临时表中。(数据来源标识0:在产表)
- string updatsql1 = @"insert into tp_pm_inproduction_tmp
- (
- BARCODE,
- PRODUCTIONLINEID,
- PRODUCTIONLINECODE,
- PRODUCTIONLINENAME,
- PROCEDUREMODEL,
- MODELTYPE,
- REWORKPROCEDUREID,
- ISPUBLICBODY,
- GOODSID,
- GOODSCODE,
- GOODSNAME,
- USERID,
- GROUTINGDAILYID,
- GROUTINGDAILYDETAILID,
- GROUTINGDATE,
- GROUTINGLINEID,
- GROUTINGLINECODE,
- GROUTINGLINENAME,
- GMOULDTYPEID,
- CANMANYTIMES,
- GROUTINGLINEDETAILID,
- GROUTINGMOULDCODE,
- MOULDCODE,
- REMARKS,
- ACCOUNTID,
- VALUEFLAG,
- CREATETIME,
- CREATEUSERID,
- UPDATETIME,
- UPDATEUSERID,
- OPTIMESTAMP,
- ISREFIRE,
- GOODSLEVELID,
- GOODSLEVELTYPEID,
- DEFECTFLAG,
- GROUTINGUSERID,
- GROUTINGUSERCODE,
- GROUTINGNUM,
- KILNID,
- KILNCODE,
- KILNNAME,
- KILNCARID,
- KILNCARCODE,
- KILNCARNAME,
- KILNCARBATCHNO,
- KILNCARPOSITION,
- SPECIALREPAIRFLAG,
- FLOWPROCEDUREID,
- FLOWPROCEDURETIME,
- PROCEDUREID,
- PROCEDURETIME,
- PRODUCTIONDATAID,
- trashflag,
- Deletedtime,
- logoid,
- IsReworkFlag,
- SemiCheckID,
- DELETEDUSERID,
- DELETEDUSERCODE
- )
- select
- BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE, REWORKPROCEDUREID,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, UPDATEUSERID,optimestamp,
- ISREFIRE, GOODSLEVELID, GOODSLEVELTYPEID, DEFECTFLAG,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,SpecialRepairFlag,FlowProcedureID
- ,FlowProcedureTime,ProcedureID,ProcedureTime,ProductionDataID,1,sysdate,logoid,IsReworkFlag,SemiCheckID,"
- + user.UserID + ",'" + user.UserCode +
- "' from TP_PM_InProductionTrash p where p.barcode in (" + sql.ToString() + ")";
- returnRows += oracleTrConn.ExecuteNonQuery(updatsql1, parameters.ToArray());
- //删除在产数据
- updatsql1 = "delete from TP_PM_InProductionTrash p where p.barcode in (" + sql.ToString() + ")";
- returnRows += oracleTrConn.ExecuteNonQuery(updatsql1, parameters.ToArray());
- //删除在产生产数据
- updatsql1 = "delete from tp_pm_productiondatain p where p.barcode in (" + sql.ToString() + ")";
- returnRows += oracleTrConn.ExecuteNonQuery(updatsql1, parameters.ToArray());
- if (returnRows == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 获取批量数据
- /// </summary>
- /// <returns></returns>
- private static string GetClearInproductionTrashData(int accountid)
- {
- string selSql =
- "SELECT " +
- " TP_PM_InProductionTrash.BarCode " +
- " FROM TP_PM_InProductionTrash " +
- " left join tp_pm_scrapproduct " +
- " on tp_pm_scrapproduct.barcode=TP_PM_InProductionTrash.barcode " +
- " Where 1=1 and TP_PM_InProductionTrash.ValueFlag = 1 " +
- " and TP_PM_InProductionTrash.AccountID= " + accountid;
- return selSql;
- }
- #endregion
- /// <summary>
- /// 清除在产临时表残留数据(清除选择)
- /// </summary>
- /// <param name="barcodes">产品条码集</param>
- /// <returns></returns>
- public static int SaveClearInproductionTmp(string barcodes)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string sql = "";
- string[] subbarcode = barcodes.Split(',');
- OracleParameter[] Paras = null;
- for (int i = 0; i < subbarcode.Length; i++)
- {
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- subbarcode[i],ParameterDirection.Input)
- };
- //删除在产临时表数据
- sql = "delete from TP_PM_InProduction_Tmp p where p.barcode =:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- if (returnRows == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- #region 清除在产回收站残留数据(批量)
- /// <summary>
- /// 清除在产残留数据(批量清除)
- /// </summary>
- /// <param name="barcodes">产品条码集</param>
- /// <returns></returns>
- public static int SaveClearAllInproductionTmp(SUserInfo user, FPM2112_SE se)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- List<OracleParameter> parameters = new List<OracleParameter>();
- StringBuilder sql = new StringBuilder(GetClearInproductionTmpData(user.AccountID));
- if (se != null)
- {
- //生产线IDS
- if (!string.IsNullOrEmpty(se.ProductionLineIDS))
- {
- sql.Append(" AND instr(','||:ProductionLineIDS||',',','||TP_PM_InProduction_Tmp.ProductionLineID||',')>0 ");
- parameters.Add(new OracleParameter(":ProductionLineIDS", OracleDbType.NVarchar2, se.ProductionLineIDS, ParameterDirection.Input));
- }
- //完成工序IDS
- if (!string.IsNullOrEmpty(se.ProcedureIDS))
- {
- sql.Append(" AND instr(','||:ProcedureIDS||',',','||TP_PM_InProduction_Tmp.ProcedureID||',')>0 ");
- parameters.Add(new OracleParameter(":ProcedureIDS", OracleDbType.NVarchar2, se.ProcedureIDS, ParameterDirection.Input));
- }
- // 生产时间--开始
- if (se.UpdateTimeStart.HasValue)
- {
- sql.Append(" AND TP_PM_InProduction_Tmp.Proceduretime >= :UpdateTimeStart ");
- parameters.Add(new OracleParameter(":UpdateTimeStart", OracleDbType.Date, se.UpdateTimeStart.Value, ParameterDirection.Input));
- }
- // 生产时间--结束
- if (se.UpdateTimeEnd.HasValue)
- {
- sql.Append(" AND TP_PM_InProduction_Tmp.Proceduretime <= :UpdateTimeEnd ");
- parameters.Add(new OracleParameter(":UpdateTimeEnd", OracleDbType.Date, se.UpdateTimeEnd.Value, ParameterDirection.Input));
- }
- //报废日期开始
- if (se.ScrapDataStart.HasValue)
- {
- sql.Append(" AND TP_PM_SCRAPPRODUCT.SCRAPDATE >= trunc(:ScrapDateStart) ");
- parameters.Add(new OracleParameter(":ScrapDateStart", OracleDbType.Date, se.ScrapDataStart.Value, ParameterDirection.Input));
- }
- //报废日期结束
- if (se.ScrapDataEnd.HasValue)
- {
- sql.Append(" AND TP_PM_SCRAPPRODUCT.SCRAPDATE <= trunc(:ScrapDateEnd)");
- parameters.Add(new OracleParameter(":ScrapDateEnd", OracleDbType.Date, se.ScrapDataEnd.Value, ParameterDirection.Input));
- }
- if (se.GooddLevelTypeID != null)
- {
- // 产品分级
- sql.Append(" AND TP_PM_SCRAPPRODUCT.GOODSLEVELTYPEID = :GooddLevelTypeID ");
- parameters.Add(new OracleParameter(":GooddLevelTypeID", OracleDbType.Int32, se.GooddLevelTypeID, ParameterDirection.Input));
- }
- //在产or 回收站
- sql.Append(" AND TP_PM_InProduction_Tmp.TrashFlag = :TrashFlag ");
- parameters.Add(new OracleParameter(":TrashFlag", OracleDbType.Int32, se.TrashFlag, ParameterDirection.Input));
- }
- //删除在产临时表数据
- string updatsql1 = "delete from TP_PM_InProduction_Tmp p where p.barcode in (" + sql.ToString() + ")";
- returnRows += oracleTrConn.ExecuteNonQuery(updatsql1, parameters.ToArray());
- if (returnRows == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 获取批量数据
- /// </summary>
- /// <returns></returns>
- private static string GetClearInproductionTmpData(int accountid)
- {
- string selSql =
- "SELECT " +
- " TP_PM_InProduction_Tmp.BarCode " +
- " FROM TP_PM_InProduction_Tmp " +
- " left join tp_pm_scrapproduct " +
- " on tp_pm_scrapproduct.barcode=TP_PM_InProduction_Tmp.barcode " +
- " Where 1=1 and TP_PM_InProduction_Tmp.ValueFlag = 1 " +
- " and TP_PM_InProduction_Tmp.AccountID= " + accountid;
- return selSql;
- }
- #endregion
- #region 恢复数据
- /// <summary>
- /// 恢复数据
- /// </summary>
- /// <param name="barcodes">产品条码集</param>
- /// <returns></returns>
- public static int ResetBarCode(string barcode)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string sql = "select trashflag from Tp_Pm_Inproduction_Tmp where barcode=:barcode";
- OracleParameter[] Paras = Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- barcode,ParameterDirection.Input)
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- return -1; //此条码没有清除,不能恢复
- }
- if (ds.Tables[0].Rows[0]["trashflag"].ToString() == "0") //在产删除
- {
- sql = @"insert into tp_pm_inproduction select
- BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE, REWORKPROCEDUREID,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, UPDATEUSERID,optimestamp,
- ISREFIRE, GOODSLEVELID, GOODSLEVELTYPEID, DEFECTFLAG,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,SpecialRepairFlag,FlowProcedureID
- ,FlowProcedureTime,ProcedureID,ProcedureTime,ProductionDataID,0,logoid,IsReworkFlag,SemiCheckID
- from TP_PM_InProduction_Tmp p where p.barcode = :barcode";
- }
- else
- {
- sql = @"insert into tp_pm_inproductiontrash select
- BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE,
- defectflag,
- REWORKPROCEDUREID,
- ISPUBLICBODY,
- ISRefire,
- GOODSLEVELID, GOODSLEVELTYPEID,
- GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- REMARKS,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,
- ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, UPDATEUSERID,optimestamp,
- SpecialRepairFlag,FlowProcedureID
- ,FlowProcedureTime,ProcedureID,ProcedureTime,ProductionDataID,logoid,IsReworkFlag,SemiCheckID
- from TP_PM_InProduction_Tmp p where p.barcode = :barcode";
- }
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- //将生产数据表中的数据插入到在产生产数据表中
- sql = @"insert into tp_pm_productiondatain
- select
- pd.PRODUCTIONDATAID,
- pd.BARCODE,
- pd.CENTRALIZEDBATCHNO,
- pd.PRODUCTIONLINEID,
- pd.PRODUCTIONLINECODE,
- pd.PRODUCTIONLINENAME,
- pd.PROCEDUREID,
- pd.PROCEDURECODE,
- pd.PROCEDURENAME,
- pd.PROCEDUREMODEL,
- pd.MODELTYPE,
- pd.PIECETYPE,
- pd.ISREWORKED,
- pd.NODETYPE,
- pd.ISPUBLICBODY,
- pd.ISREFIRE,
- pd.ORGANIZATIONID,
- pd.GOODSID,
- pd.GOODSCODE,
- pd.GOODSNAME,
- pd.USERID,
- pd.USERCODE,
- pd.USERNAME,
- pd.KILNID,
- pd.KILNCODE,
- pd.KILNNAME,
- pd.KILNCARID,
- pd.KILNCARCODE,
- pd.KILNCARNAME,
- pd.KILNCARBATCHNO,
- pd.KILNCARPOSITION,
- pd.REWORKPROCEDUREID,
- pd.REWORKPROCEDURECODE,
- pd.REWORKPROCEDURENAME,
- pd.REMARKS,pd.ACCOUNTDATE,pd.SETTLEMENTFLAG,pd.ACCOUNTID,pd.VALUEFLAG,
- pd.CREATETIME,pd.CREATEUSERID,pd.UPDATETIME,pd.UPDATEUSERID,pd.OPTIMESTAMP,
- pd.GOODSLEVELID,pd.GOODSLEVELTYPEID,pd.GROUTINGDATE,pd.GROUTINGMOULDCODE,pd.MOULDCODE,
- pd.GROUTINGUSERID,pd.GROUTINGUSERCODE,pd.GROUTINGNUM,pd.GROUTINGDAILYID,pd.GROUTINGDAILYDETAILID,
- pd.GROUTINGLINEID,pd.GROUTINGLINECODE,pd.GROUTINGLINENAME,pd.GMOULDTYPEID,pd.CANMANYTIMES,
- pd.GROUTINGLINEDETAILID,pd.SPECIALREPAIRFLAG,pd.CLASSESSETTINGID,
- '1',pd.LOGOID,
- pd.BackOutTime,pd.BackOutUserID,pd.BackOutUserCode,pd.checktime
- from tp_pm_productiondata pd
- where pd.barcode = :barcode
- and pd.productiondataid not in
- (select pp.productiondataid
- from tp_pm_productiondatain pp
- where pp.barcode = :barcode)";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- //删除在产临时表数据
- sql = "delete from TP_PM_InProduction_Tmp p where p.barcode =:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- if (returnRows == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 批量恢复数据
- /// </summary>
- /// <param name="barcodes">产品条码集</param>
- /// <returns></returns>
- public static int ResetSelectedBarCode(string barcodes)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string sql = "";
- string[] subbarcode = barcodes.Split(',');
- OracleParameter[] Paras = null;
- DataSet ds = null;
- for (int i = 0; i < subbarcode.Length; i++)
- {
- sql = "select trashflag from Tp_Pm_Inproduction_Tmp where barcode=:barcode";
- Paras = Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- subbarcode[i],ParameterDirection.Input)
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- return -1; //此条码没有清除,不能恢复
- }
- if (ds.Tables[0].Rows[0]["trashflag"].ToString() == "0") //在产删除
- {
- sql = @"insert into tp_pm_inproduction select
- BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE, REWORKPROCEDUREID,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, UPDATEUSERID,optimestamp,
- ISREFIRE, GOODSLEVELID, GOODSLEVELTYPEID, DEFECTFLAG,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,SpecialRepairFlag,FlowProcedureID
- ,FlowProcedureTime,ProcedureID,ProcedureTime,ProductionDataID,0,logoid,IsReworkFlag,SemiCheckID
- from TP_PM_InProduction_Tmp p where p.barcode = :barcode";
- }
- else
- {
- sql = @"insert into tp_pm_inproductiontrash select
- BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE,
- defectflag,
- REWORKPROCEDUREID,
- ISPUBLICBODY,
- ISRefire,
- GOODSLEVELID, GOODSLEVELTYPEID,
- GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- REMARKS,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,
- ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, UPDATEUSERID,optimestamp,
- SpecialRepairFlag,FlowProcedureID
- ,FlowProcedureTime,ProcedureID,ProcedureTime,ProductionDataID,logoid,IsReworkFlag,SemiCheckID
- from TP_PM_InProduction_Tmp p where p.barcode = :barcode";
- }
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- //将生产数据表中的数据插入到在产生产数据表中
- sql = @"insert into tp_pm_productiondatain
- select pd.PRODUCTIONDATAID,
- pd.BARCODE,
- pd.CENTRALIZEDBATCHNO,
- pd.PRODUCTIONLINEID,
- pd.PRODUCTIONLINECODE,
- pd.PRODUCTIONLINENAME,
- pd.PROCEDUREID,
- pd.PROCEDURECODE,
- pd.PROCEDURENAME,
- pd.PROCEDUREMODEL,
- pd.MODELTYPE,
- pd.PIECETYPE,
- pd.ISREWORKED,
- pd.NODETYPE,
- pd.ISPUBLICBODY,
- pd.ISREFIRE,
- pd.ORGANIZATIONID,
- pd.GOODSID,
- pd.GOODSCODE,
- pd.GOODSNAME,
- pd.USERID,
- pd.USERCODE,
- pd.USERNAME,
- pd.KILNID,
- pd.KILNCODE,
- pd.KILNNAME,
- pd.KILNCARID,
- pd.KILNCARCODE,
- pd.KILNCARNAME,
- pd.KILNCARBATCHNO,
- pd.KILNCARPOSITION,
- pd.REWORKPROCEDUREID,
- pd.REWORKPROCEDURECODE,
- pd.REWORKPROCEDURENAME,
- pd.REMARKS,pd.ACCOUNTDATE,pd.SETTLEMENTFLAG,pd.ACCOUNTID,pd.VALUEFLAG,
- pd.CREATETIME,pd.CREATEUSERID,pd.UPDATETIME,pd.UPDATEUSERID,pd.OPTIMESTAMP,
- pd.GOODSLEVELID,pd.GOODSLEVELTYPEID,pd.GROUTINGDATE,pd.GROUTINGMOULDCODE,pd.MOULDCODE,
- pd.GROUTINGUSERID,pd.GROUTINGUSERCODE,pd.GROUTINGNUM,pd.GROUTINGDAILYID,pd.GROUTINGDAILYDETAILID,
- pd.GROUTINGLINEID,pd.GROUTINGLINECODE,pd.GROUTINGLINENAME,pd.GMOULDTYPEID,pd.CANMANYTIMES,
- pd.GROUTINGLINEDETAILID,pd.SPECIALREPAIRFLAG,pd.CLASSESSETTINGID,
- '1',pd.LOGOID,
- pd.BackOutTime,pd.BackOutUserID,pd.BackOutUserCode,pd.checktime
- from tp_pm_productiondata pd
- where pd.barcode = :barcode
- and pd.productiondataid not in
- (select pp.productiondataid
- from tp_pm_productiondatain pp
- where pp.barcode = :barcode)";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- //删除在产临时表数据
- sql = "delete from TP_PM_InProduction_Tmp p where p.barcode =:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- if (returnRows == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- #endregion
- /// <summary>
- /// 撤销特殊工序撤销
- /// </summary>
- /// <param name="barcode">产品条码</param>
- /// <returns></returns>
- public static ServiceResultEntity AddChancelBarCode(string barcode, SUserInfo sUserInfo)
- {
- ServiceResultEntity entity = new ServiceResultEntity();
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- // 转换注浆条码
- barcode = CommonModuleLogic.CommonModuleLogic.GetBarcode(oracleTrConn, barcode, sUserInfo);
- DateTime? flowProcedureTime = null;
- // 1 条码是否有效
- string sql = "select 1 from TP_PM_GroutingDailyDetail where barcode=:barcode and valueflag=1";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds.Tables[0].Rows.Count == 0)
- {
- //无效条码
- returnRows = -1;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- // 2.看看是否在产,如果在产看看是否已经损坯标识
- int? ProcedureID = null;
- // 撤销时,需要判定当前工序,而不是流程工序,干补时,当前工序是干补,流程工序是报损时的工序。
- //sql = "select InScrapFlag,flowProcedureID,IsReworkFlag,flowProcedureTime from TP_PM_InProduction where barcode=:barcode and valueflag=1";
- sql = "select InScrapFlag,ProcedureID,IsReworkFlag,ProcedureTime from TP_PM_InProduction where barcode=:barcode and valueflag=1";
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds.Tables[0].Rows.Count == 0) //不存在在产信息
- {
- // 不在产,看看是否有成品
- sql = @"select 1 from TP_PM_FinishedProduct where barcode=:barcode";
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds.Tables[0].Rows.Count > 0)
- {
- //生产完成
- returnRows = -2;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- else
- {
- //条码不在生产线上
- returnRows = -7;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- }
- else
- {
- if (ds.Tables[0].Rows[0]["InScrapFlag"].ToString() == "1")
- {
- //申请报废
- returnRows = -3;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- // chenxy 2019-10-02 半检返修 IsReworkFlag=2
- //if (ds.Tables[0].Rows[0]["IsReworkFlag"].ToString() == "1")
- if (ds.Tables[0].Rows[0]["IsReworkFlag"].ToString() != "0")
- {
- //申请报废
- returnRows = -9;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- //ProcedureID = Convert.ToInt32(ds.Tables[0].Rows[0]["flowProcedureID"]); //条码完成工序
- //flowProcedureTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["flowProcedureTime"]); // 流程工序时间
- ProcedureID = Convert.ToInt32(ds.Tables[0].Rows[0]["ProcedureID"]); //条码完成工序
- flowProcedureTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["ProcedureTime"]); // 完成工序时间
- }
- // 此工序所在条码是否是特殊工序,即可以撤销工序
- sql = "select UnDoFlag from tp_pc_procedure where procedureid=:procdureid and valueflag=1";
- Paras = new OracleParameter[] {
- new OracleParameter(":procdureid",OracleDbType.Int32,
- ProcedureID,ParameterDirection.Input)
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- if (ds.Tables[0].Rows[0]["UnDoFlag"].ToString() != "1")
- {
- //此条码所在工序不允许进行撤销
- returnRows = -4;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- }
- // 计件撤销 应该不用验证是否回收了 by chenxiaoye 2020-02-28
- //// 如果不合格,查询报损表里是否回收
- //sql = "select recyclingflag from TP_PM_ScrapProduct "
- // + " where BarCode=:BarCode and CreateTime=(select max(CreateTime) "
- // + " from TP_PM_ScrapProduct "
- // + " where BarCode=:BarCode and ValueFlag=1)"
- // + " and ValueFlag=1";
- //Paras = new OracleParameter[]{
- // new OracleParameter(":BarCode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
- // };
- //DataSet dsResult2 = oracleTrConn.GetSqlResultToDs(sql, Paras);
- //if (dsResult2 != null && dsResult2.Tables[0].Rows.Count > 0)
- //{
- // if (Convert.ToInt32(dsResult2.Tables[0].Rows[0]["recyclingflag"]) > 0)
- // {
- // returnRows = -200;
- // oracleTrConn.Rollback();
- // oracleTrConn.Disconnect();
- // entity.Result = returnRows;
- // entity.Message = "此产品已经回收,不能撤销";
- // return entity;
- // }
- //}
- // 计件撤销 应该不用验证是否回收了 by chenxiaoye 2020-02-28
- // 判断是否有撤销范围权限
- sql = @"select 1 from TP_MST_UserPurview where UserID=:UserID and (PurviewID=:PurviewID or PurviewID=-1) and PurviewType=13";
- Paras = new OracleParameter[] {
- new OracleParameter(":PurviewID",OracleDbType.Int32,
- ProcedureID,ParameterDirection.Input),
- new OracleParameter(":UserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input)
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count == 0)
- {
- //此用户无此工序撤销权限
- returnRows = -8;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- //
- #region 是否启用撤销限制天数
- if (flowProcedureTime != null)
- {
- sql = "select settingvalue from TP_MST_SystemSetting where settingcode=:settingcode and accountid=:accountid";
- Paras = new OracleParameter[] {
- new OracleParameter(":settingcode",OracleDbType.Varchar2,
- Constant.SettingType.S_PM_004.ToString(),ParameterDirection.Input),
- new OracleParameter(":accountid",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input)
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- if (Convert.ToInt32(ds.Tables[0].Rows[0]["settingvalue"]) > 0)
- {
- // 开启了限制
- ServiceResultEntity resultEntity = PMModuleLogic.BarcodeAllowCancel(Convert.ToDateTime(flowProcedureTime),
- Convert.ToInt32(ds.Tables[0].Rows[0]["settingvalue"]), Constant.SettingType.S_PM_004.ToString(), sUserInfo);
- if (Convert.ToInt32(resultEntity.Result) < 0)
- {
- //计件撤销限制天数
- returnRows = -200;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- entity.Message = resultEntity.Message;
- return entity;
- }
- }
- }
- }
- #endregion
- // 进行撤销
- string sqlString = @"select ProductionDataID,
- ProcedureID,
- ProcedureModel,
- ModelType,
- ReworkProcedureID,
- UserID,
- logoid,
- (select max(ProcedureID) from Tp_Pm_ProductiondataIn inpp where inpp.barcode = :barcode and inpp.ProductionDataID > t.ProductionDataID and ModelType=8 and valueflag='1') p8id --干补
- from (select ProductionDataID,
- ProcedureID,
- ProcedureModel,
- ModelType,
- ReworkProcedureID,
- UserID,
- logoid
- from Tp_Pm_ProductiondataIn
- where barcode = :barcode
- and valueflag = 1 and ModelType<>8
- order by ProductionDataID desc) t
- where rownum <= 2";
- Paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- };
- DataSet productionData = oracleTrConn.GetSqlResultToDs(sqlString, Paras);
- if (productionData == null
- || productionData.Tables.Count == Constant.INT_IS_ZERO
- //|| productionData.Tables[0].Rows.Count != Constant.INT_IS_TWO
- )
- {
- // 条码至少要有2次数据采集
- //条码没有此工序前数据
- returnRows = -5;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- //xuwei fix 2019-09-25 tables只有一行记录 rows[1]无记录 改成rows[0]?
- object pid = productionData.Tables[0].Rows[productionData.Tables[0].Rows.Count-1]["p8id"];
- if (pid == null || pid == DBNull.Value)
- {
- pid = productionData.Tables[0].Rows[productionData.Tables[0].Rows.Count - 1]["ProcedureID"];
- }
- #region 回滚在产数据
- //xuwei fix 2019-09-23 加条件限制 如果是首节点 删除在产产品数据 否则 更新在产产品数据
- if (productionData.Tables[0].Rows.Count == 1)
- {
- sqlString = "delete from TP_PM_InProduction where barcode=:barcode"; //wangxin 20150406
- //sqlString += " where ProductionDataID=:productionDataID";
- //新添加的 begin
- Paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input),
- };
- int rows = oracleTrConn.ExecuteNonQuery(sqlString, Paras);
- returnRows += rows;
- if (rows == Constant.INT_IS_ZERO)
- {
- // 保存失败
- //没有任何影响行
- returnRows = -6;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- //xuwei add 2019-09-23 更新回生产状态 BEGINNINGFLAG = '0'
- oracleTrConn.ExecuteNonQuery($"update TP_PM_GroutingDailyDetail set BEGINNINGFLAG = '0' where BARCODE = '{barcode}'");
- //xuwei fix 2019-09-25 加条件判断 如果是首节点 回退到注浆1
- sql = $"update TP_PM_USEDBARCODE set barcodestatus=1 where BarCode='{barcode}'";
- rows = oracleTrConn.ExecuteNonQuery(sql);
- returnRows += rows;
- }
- else
- {
- //xuwei 下述代码为原代码 并未判定首节点
- sqlString = @"update TP_PM_InProduction
- set FlowProcedureID = :flowProcedureID,
- ProcedureModel = :procedureModel,
- ProcedureID = :ProcedureID,
- ModelType = :modelType,
- ReworkProcedureID = :reworkProcedureID,
- UserID = :userID,
- updateuserid = :updateuserid,
- ProductionDataID = :ProductionDataID
- --logoid = :logoid
- where barcode = :barcode";
- Paras = new OracleParameter[]{
- new OracleParameter(":flowProcedureID",OracleDbType.Int32,
- productionData.Tables[0].Rows[1]["ProcedureID"],ParameterDirection.Input),//1--->0
- new OracleParameter(":ProcedureID",OracleDbType.Int32,
- pid,ParameterDirection.Input),
- new OracleParameter(":procedureModel",OracleDbType.Int32,
- productionData.Tables[0].Rows[1]["procedureModel"],ParameterDirection.Input),
- new OracleParameter(":modelType",OracleDbType.Int32,
- productionData.Tables[0].Rows[1]["modelType"],ParameterDirection.Input),
- new OracleParameter(":reworkProcedureID",OracleDbType.Int32,
- productionData.Tables[0].Rows[1]["reworkProcedureID"],ParameterDirection.Input),
- new OracleParameter(":userID",OracleDbType.Int32,
- productionData.Tables[0].Rows[1]["userID"],ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- new OracleParameter(":ProductionDataID",OracleDbType.Int32,
- productionData.Tables[0].Rows[1]["ProductionDataID"],ParameterDirection.Input)
- //new OracleParameter(":logoid",OracleDbType.Int32,
- // productionData.Tables[0].Rows[1]["logoid"].ToString()==""?null:productionData.Tables[0].Rows[1]["logoid"],ParameterDirection.Input),
- };
- int rows = oracleTrConn.ExecuteNonQuery(sqlString, Paras);
- returnRows += rows;
- if (rows == Constant.INT_IS_ZERO)
- {
- // 保存失败
- //没有任何影响行
- returnRows = -6;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- }
- //modify end
- sqlString = "update Tp_Pm_ProductiondataIn set valueflag=0 ,updateuserid=" + sUserInfo.UserID; //wangxin 20150406
- //sqlString += " where ProductionDataID=:productionDataID";
- //新添加的 begin
- Paras = new OracleParameter[]{
- new OracleParameter(":productionDataID",OracleDbType.Int32,
- Convert.ToInt32(productionData.Tables[0].Rows[0]["productionDataID"]),ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input),
- };
- //新添加的 end
- sqlString += " where ProductionDataID=:productionDataID and barcode=:barcode";
- int rutenRows = oracleTrConn.ExecuteNonQuery(sqlString, Paras);
- returnRows += rutenRows;
- if (rutenRows == Constant.INT_IS_ZERO)
- {
- // 保存失败
- //没有任何影响行
- returnRows = -6;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- #endregion
- if (returnRows <= 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- entity.Result = returnRows;
- return entity;
- }
- /// <summary>
- /// 交坯特殊工序撤销
- /// </summary>
- /// <param name="barcode">产品条码</param>
- /// <returns></returns>
- public static ServiceResultEntity AddChancelDeliverMudBarCode(string barcode, SUserInfo sUserInfo)
- {
- ServiceResultEntity entity = new ServiceResultEntity();
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- DateTime? deliverTime = null;
- // 1 条码是否有效
- string sql = "select DeliverTime from TP_PM_GroutingDailyDetail where barcode=:barcode and valueflag=1";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds.Tables[0].Rows.Count == 0)
- {
- //无效条码
- returnRows = -1;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- else
- {
- if (ds.Tables[0].Rows[0]["DeliverTime"].ToString() != "")
- {
- deliverTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["DeliverTime"]);
- }
- }
- // 2.看看是否在产,如果在产看看是否已经损坯标识
- int? ProcedureID = null;
- //xuwei fix 2019-09-27 选出交坏判定字段
- //sql = "select InScrapFlag,flowProcedureID,IsReworkFlag,Specialrepairflag from TP_PM_InProduction where barcode=:barcode and valueflag=1";
- sql = "select MODELTYPE,InScrapFlag,flowProcedureID,IsReworkFlag,Specialrepairflag from TP_PM_InProduction where barcode=:barcode and valueflag=1";
-
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds.Tables[0].Rows.Count == 0) //不存在在产信息
- {
- // 不在产,看看是否有成品
- sql = @"select 1 from TP_PM_FinishedProduct where barcode=:barcode";
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds.Tables[0].Rows.Count > 0)
- {
- //生产完成
- returnRows = -2;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- else
- {
- //条码不在生产线上
- returnRows = -7;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- }
- else
- {
- //xuwei add 2019-09-27 如果是非交坯工序不能在此节点撤销 5是交坯模型
- if(ds.Tables[0].Rows[0]["MODELTYPE"].ToString() != "5")
- {
- //非交坯工序,不能交坯撤销
- returnRows = -200;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- entity.Message = "非交坯工序,不能交坯撤销";
- return entity;
- }
- //xuwei end
- if (ds.Tables[0].Rows[0]["Specialrepairflag"].ToString() == "1")
- {
- //干补后不允许撤销
- returnRows = -200;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- entity.Message = "干补后不允许撤销";
- return entity;
- }
- if (ds.Tables[0].Rows[0]["InScrapFlag"].ToString() == "1")
- {
- //申请报废
- returnRows = -3;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- // chenxy 2019-10-02 半检返修 IsReworkFlag=2
- //if (ds.Tables[0].Rows[0]["IsReworkFlag"].ToString() == "1")
- if (ds.Tables[0].Rows[0]["IsReworkFlag"].ToString() != "0")
- {
- //申请报废
- returnRows = -8;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- ProcedureID = Convert.ToInt32(ds.Tables[0].Rows[0]["flowProcedureID"]); //条码完成工序
- }
- //// 此工序所在条码是否是特殊工序,即可以撤销工序
- //sql = "select UnDoFlag from tp_pc_procedure where procedureid=:procdureid and valueflag=1";
- //Paras = new OracleParameter[] {
- // new OracleParameter(":procdureid",OracleDbType.Int32,
- // ProcedureID,ParameterDirection.Input)
- //};
- //ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- //if (ds != null && ds.Tables[0].Rows.Count > 0)
- //{
- // if (ds.Tables[0].Rows[0]["UnDoFlag"].ToString() != "1")
- // {
- // //此条码所在工序不允许进行撤销
- // returnRows = -4;
- // oracleTrConn.Rollback();
- // oracleTrConn.Disconnect();
- // return returnRows;
- // }
- //}
- #region 是否启用交坯撤销限制天数
- if (deliverTime != null)
- {
- sql = "select settingvalue from TP_MST_SystemSetting where settingcode=:settingcode and accountid=:accountid";
- Paras = new OracleParameter[] {
- new OracleParameter(":settingcode",OracleDbType.Varchar2,
- Constant.SettingType.S_PM_003.ToString(),ParameterDirection.Input),
- new OracleParameter(":accountid",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input)
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- if (Convert.ToInt32(ds.Tables[0].Rows[0]["settingvalue"]) > 0)
- {
- // 开启了限制
- ServiceResultEntity resultEntity = PMModuleLogic.BarcodeAllowCancel(Convert.ToDateTime(deliverTime),
- Convert.ToInt32(ds.Tables[0].Rows[0]["settingvalue"]), Constant.SettingType.S_PM_003.ToString(), sUserInfo);
- if (Convert.ToInt32(resultEntity.Result) < 0)
- {
- //超过交坯撤销限制天数
- returnRows = -200;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- entity.Message = resultEntity.Message;
- return entity;
- }
- }
- }
- }
- #endregion
- // 进行撤销
- string sqlString = @"select ProductionDataID,
- ProcedureID,
- ProcedureModel,
- ModelType,
- ReworkProcedureID,
- UserID,
- (select max(ProcedureID) from Tp_Pm_ProductiondataIn inpp where inpp.barcode = :barcode and inpp.ProductionDataID > t.ProductionDataID and ModelType=8 and valueflag='1') p8id --干补
- from (select ProductionDataID,
- ProcedureID,
- ProcedureModel,
- ModelType,
- ReworkProcedureID,
- UserID
- from Tp_Pm_ProductiondataIn
- where barcode = :barcode
- and valueflag = 1 and ModelType<>8
- order by ProductionDataID desc) t
- where rownum <= 2";
- Paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- };
- DataSet productionData = oracleTrConn.GetSqlResultToDs(sqlString, Paras);
- if (productionData == null
- || productionData.Tables.Count == Constant.INT_IS_ZERO
- )
- {
- // 条码至少要有1次数据采集
- //条码没有此工序前数据
- returnRows = -5; //条码至少要有1次数据采集
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- //if (productionData.Tables[0].Rows.Count != Constant.INT_IS_ONE)
- //{
- // // 条码至少要有1次数据采集
- // //条码没有此工序前数据
- // returnRows = -55; //条码已经经过多个工序,不允许撤销
- // oracleTrConn.Rollback();
- // oracleTrConn.Disconnect();
- // entity.Result = returnRows;
- // return entity;
- //}
- //xuwei fix 2019-09-25 tables只有一行记录 rows[1]无记录 改成rows[0]?
- object pid = productionData.Tables[0].Rows[productionData.Tables[0].Rows.Count - 1]["p8id"];
- if (pid == null || pid == DBNull.Value)
- {
- pid = productionData.Tables[0].Rows[productionData.Tables[0].Rows.Count - 1]["ProcedureID"];
- }
- #region 回滚在产数据
- // sqlString = @"update TP_PM_InProduction
- // set FlowProcedureID = :flowProcedureID,
- // ProcedureModel = :procedureModel,
- // ProcedureID = :flowProcedureID,
- // ModelType = :modelType,
- // ReworkProcedureID = :reworkProcedureID,
- // UserID = :userID,
- // updateuserid = :updateuserid
- // where barcode = :barcode";
- // Paras = new OracleParameter[]{
- // new OracleParameter(":flowProcedureID",OracleDbType.Int32,
- // productionData.Tables[0].Rows[1]["ProcedureID"],ParameterDirection.Input),//1--->0
- // new OracleParameter(":procedureModel",OracleDbType.Int32,
- // productionData.Tables[0].Rows[1]["procedureModel"],ParameterDirection.Input),
- // new OracleParameter(":modelType",OracleDbType.Int32,
- // productionData.Tables[0].Rows[1]["modelType"],ParameterDirection.Input),
- // new OracleParameter(":reworkProcedureID",OracleDbType.Int32,
- // productionData.Tables[0].Rows[1]["reworkProcedureID"],ParameterDirection.Input),
- // new OracleParameter(":userID",OracleDbType.Int32,
- // productionData.Tables[0].Rows[1]["userID"],ParameterDirection.Input),
- // new OracleParameter(":updateuserid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- // new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- // };
- // int rutenRows = oracleTrConn.ExecuteNonQuery(sqlString, Paras);
- // returnRows += rutenRows;
- // if (rutenRows == Constant.INT_IS_ZERO)
- // {
- // // 保存失败
- // //没有任何影响行
- // returnRows = -6;
- // oracleTrConn.Rollback();
- // oracleTrConn.Disconnect();
- // return returnRows;
- // }
- int rutenRows = 0;
- //modify end
- sqlString = "update Tp_Pm_ProductiondataIn set valueflag=0 ,updateuserid=" + sUserInfo.UserID; //wangxin 20150406
- //sqlString += " where ProductionDataID=:productionDataID";
- //新添加的 begin
- Paras = new OracleParameter[]{
- new OracleParameter(":productionDataID",OracleDbType.Int32,
- Convert.ToInt32(productionData.Tables[0].Rows[0]["productionDataID"]),ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input),
- };
- //新添加的 end
- sqlString += " where ProductionDataID=:productionDataID and barcode=:barcode";
- rutenRows = oracleTrConn.ExecuteNonQuery(sqlString, Paras);
- returnRows += rutenRows;
- if (rutenRows == Constant.INT_IS_ZERO)
- {
- // 保存失败
- //没有任何影响行
- returnRows = -6;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- //modify end
- //xuwei fix 2019-09-23 加条件限制 如果是首节点 删除在产产品数据
- if (productionData.Tables[0].Rows.Count == 1)
- {
- sqlString = "delete from TP_PM_InProduction where barcode=:barcode"; //wangxin 20150406
- //sqlString += " where ProductionDataID=:productionDataID";
- //新添加的 begin
- Paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input),
- };
- rutenRows = oracleTrConn.ExecuteNonQuery(sqlString, Paras);
- returnRows += rutenRows;
- if (rutenRows == Constant.INT_IS_ZERO)
- {
- // 保存失败
- //没有任何影响行
- returnRows = -6;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- //xuwei add 2019-09-23 更新回生产状态 BEGINNINGFLAG = '0'
- oracleTrConn.ExecuteNonQuery($"update TP_PM_GroutingDailyDetail set BEGINNINGFLAG = '0' where BARCODE = '{barcode}'");
- }
- else
- {
- //xuwei 下述代码为原代码 并未判定首节点
- sqlString = @"update TP_PM_InProduction
- set FlowProcedureID = :flowProcedureID,
- ProcedureModel = :procedureModel,
- ProcedureID = :ProcedureID,
- ModelType = :modelType,
- ReworkProcedureID = :reworkProcedureID,
- UserID = :userID,
- updateuserid = :updateuserid,
- ProductionDataID = :ProductionDataID
- --logoid = :logoid
- where barcode = :barcode";
- Paras = new OracleParameter[]{
- new OracleParameter(":flowProcedureID",OracleDbType.Int32,
- productionData.Tables[0].Rows[1]["ProcedureID"],ParameterDirection.Input),//1--->0
- new OracleParameter(":ProcedureID",OracleDbType.Int32,
- pid,ParameterDirection.Input),
- new OracleParameter(":procedureModel",OracleDbType.Int32,
- productionData.Tables[0].Rows[1]["procedureModel"],ParameterDirection.Input),
- new OracleParameter(":modelType",OracleDbType.Int32,
- productionData.Tables[0].Rows[1]["modelType"],ParameterDirection.Input),
- new OracleParameter(":reworkProcedureID",OracleDbType.Int32,
- productionData.Tables[0].Rows[1]["reworkProcedureID"],ParameterDirection.Input),
- new OracleParameter(":userID",OracleDbType.Int32,
- productionData.Tables[0].Rows[1]["userID"],ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- new OracleParameter(":ProductionDataID",OracleDbType.Int32,
- productionData.Tables[0].Rows[1]["ProductionDataID"],ParameterDirection.Input)
- //new OracleParameter(":logoid",OracleDbType.Int32,
- // productionData.Tables[0].Rows[1]["logoid"].ToString()==""?null:productionData.Tables[0].Rows[1]["logoid"],ParameterDirection.Input),
- };
- int rows = oracleTrConn.ExecuteNonQuery(sqlString, Paras);
- returnRows += rows;
- if (rows == Constant.INT_IS_ZERO)
- {
- // 保存失败
- //没有任何影响行
- returnRows = -6;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- return entity;
- }
- }
- #endregion
- // 更新注浆明交坯标识把已经交坯改回,正常交坯
- sqlString = "update TP_PM_GroutingDailyDetail set SpecialRepairFlag=0,ScrapFlag=0,IsPublicBody=0,DeliverFlag=0,DeliverTime=null,DeliverUserID=null,DeliverUserCode=null where barcode=:barcode"; //wangxin 20150406
- Paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input),
- };
- rutenRows = oracleTrConn.ExecuteNonQuery(sqlString, Paras);
- returnRows += rutenRows;
- // TODO 回退到注浆 1 还是 在产 3
- //xuwei fix 2019-09-23 加条件判断 如果是首节点 回退到注浆1 否则回退到在产 3
- if (productionData.Tables[0].Rows.Count==1)
- {
- sql = "update TP_PM_USEDBARCODE set barcodestatus=1 where BarCode=:barcode";
- }
- else
- {
- sql = "update TP_PM_USEDBARCODE set barcodestatus=3 where BarCode=:barcode";
- }
- Paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input),
- };
- rutenRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- returnRows += rutenRows;
- if (returnRows <= 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- entity.Result = returnRows;
- return entity;
- }
-
-
-
- #region
- /// <summary>
- /// 清除未盘点残留数据(清除选择)
- /// </summary>
- /// <param name="inCheckedID">盘点单ID</param>
- /// <param name="barcodes">条码集</param>
- /// <returns></returns>
- public static int SaveClearInChecked(int inCheckedID, string barcodes, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string sql = "";
- string[] subbarcodes = barcodes.Split(',');
- OracleParameter[] Paras = null;
- for (int i = 0; i < subbarcodes.Length; i++)
- {
- // 0.登窑、入窑、出窑工序的产品不能清除
- sql = "select p.modeltype from tp_pm_inproduction p where p.barcode = :barcode";
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- subbarcodes[i],ParameterDirection.Input),
- };
- string modeltype = oracleTrConn.GetSqlResultToStr(sql, Paras);
- if (!string.IsNullOrWhiteSpace(modeltype))
- {
- Dongke.IBOSS.PRD.Basics.BaseResources.Constant.ProcedureModelType pmt =
- (Dongke.IBOSS.PRD.Basics.BaseResources.Constant.ProcedureModelType)Convert.ToInt32(modeltype);
- if (pmt == Dongke.IBOSS.PRD.Basics.BaseResources.Constant.ProcedureModelType.LoadCar ||
- pmt == Dongke.IBOSS.PRD.Basics.BaseResources.Constant.ProcedureModelType.IntoKiln ||
- pmt == Dongke.IBOSS.PRD.Basics.BaseResources.Constant.ProcedureModelType.OutKiln ||
- pmt == Dongke.IBOSS.PRD.Basics.BaseResources.Constant.ProcedureModelType.CarAdd)
- {
- continue;
- }
- }
- // 返工标识或者是报损标识不允许清除 2016-07-12
- sql = "select IsReworkFlag,InScrapFlag from tp_pm_inproduction p where p.barcode = :barcode";
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- subbarcodes[i],ParameterDirection.Input)
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- // chenxy 2019-10-02 半检返修 IsReworkFlag=2
- //if (ds.Tables[0].Rows[0]["IsReworkFlag"].ToString() == "1")
- if (ds.Tables[0].Rows[0]["IsReworkFlag"].ToString() != "0")
- {
- returnRows = -1;
- break;
- }
- if (ds.Tables[0].Rows[0]["InScrapFlag"].ToString() == "1")
- {
- returnRows = -2;
- break;
- }
- }
- // 1.清除未盘点数据
- sql = @"update TP_PM_INCHECKEDDETAIL p set p.INCHECKEDFLAG = '3' /*, p.valueflag='0'*/ where p.INCHECKEDID=:InCheckedID and p.barcode =:barcode and p.InCheckedFlag='0'";
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- subbarcodes[i],ParameterDirection.Input),
- new OracleParameter(":InCheckedID",OracleDbType.Int32,
- inCheckedID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 2. 把在产数据插入到在产临时表中。(数据来源标识0:在产表)
- // sql = @"insert into tp_pm_inproduction_tmp
- // select * from tp_pm_inproduction p where p.barcode = :barcode";
- sql = "INSERT INTO tp_pm_inproduction_tmp\n" +
- " (barcode\n" +
- " ,productionlineid\n" +
- " ,productionlinecode\n" +
- " ,productionlinename\n" +
- " ,proceduremodel\n" +
- " ,modeltype\n" +
- " ,reworkprocedureid\n" +
- " ,ispublicbody\n" +
- " ,goodsid\n" +
- " ,goodscode\n" +
- " ,goodsname\n" +
- " ,userid\n" +
- " ,groutingdailyid\n" +
- " ,groutingdailydetailid\n" +
- " ,groutingdate\n" +
- " ,groutinglineid\n" +
- " ,groutinglinecode\n" +
- " ,groutinglinename\n" +
- " ,gmouldtypeid\n" +
- " ,canmanytimes\n" +
- " ,groutinglinedetailid\n" +
- " ,groutingmouldcode\n" +
- " ,mouldcode\n" +
- " ,remarks\n" +
- " ,accountid\n" +
- " ,valueflag\n" +
- " ,createtime\n" +
- " ,createuserid\n" +
- " ,updatetime\n" +
- " ,updateuserid\n" +
- " ,optimestamp\n" +
- " ,isrefire\n" +
- " ,goodslevelid\n" +
- " ,goodsleveltypeid\n" +
- " ,defectflag\n" +
- " ,groutinguserid\n" +
- " ,groutingusercode\n" +
- " ,groutingnum\n" +
- " ,kilnid\n" +
- " ,kilncode\n" +
- " ,kilnname\n" +
- " ,kilncarid\n" +
- " ,kilncarcode\n" +
- " ,kilncarname\n" +
- " ,kilncarbatchno\n" +
- " ,kilncarposition\n" +
- " ,specialrepairflag\n" +
- " ,flowprocedureid\n" +
- " ,flowproceduretime\n" +
- " ,procedureid\n" +
- " ,proceduretime\n" +
- " ,productiondataid\n" +
- " ,deleteduserid\n" +
- " ,deletedusercode\n" +
- " --,trashflag\n" +
- " --,deletedtime\n" +
- " ,logoid)\n" +
- " SELECT barcode\n" +
- " ,productionlineid\n" +
- " ,productionlinecode\n" +
- " ,productionlinename\n" +
- " ,proceduremodel\n" +
- " ,modeltype\n" +
- " ,reworkprocedureid\n" +
- " ,ispublicbody\n" +
- " ,goodsid\n" +
- " ,goodscode\n" +
- " ,goodsname\n" +
- " ,userid\n" +
- " ,groutingdailyid\n" +
- " ,groutingdailydetailid\n" +
- " ,groutingdate\n" +
- " ,groutinglineid\n" +
- " ,groutinglinecode\n" +
- " ,groutinglinename\n" +
- " ,gmouldtypeid\n" +
- " ,canmanytimes\n" +
- " ,groutinglinedetailid\n" +
- " ,groutingmouldcode\n" +
- " ,mouldcode\n" +
- " ,remarks\n" +
- " ,accountid\n" +
- " ,valueflag\n" +
- " ,createtime\n" +
- " ,createuserid\n" +
- " ,updatetime\n" +
- " ,updateuserid\n" +
- " ,optimestamp\n" +
- " ,isrefire\n" +
- " ,goodslevelid\n" +
- " ,goodsleveltypeid\n" +
- " ,defectflag\n" +
- " ,groutinguserid\n" +
- " ,groutingusercode\n" +
- " ,groutingnum\n" +
- " ,kilnid\n" +
- " ,kilncode\n" +
- " ,kilnname\n" +
- " ,kilncarid\n" +
- " ,kilncarcode\n" +
- " ,kilncarname\n" +
- " ,kilncarbatchno\n" +
- " ,kilncarposition\n" +
- " ,specialrepairflag\n" +
- " ,flowprocedureid\n" +
- " ,flowproceduretime\n" +
- " ,procedureid\n" +
- " ,proceduretime\n" +
- " ,productiondataid\n" +
- " ,:deleteduserid\n" +
- " ,:deletedusercode\n" +
- " --,inscrapflag\n" +
- " ,logoid\n" +
- " FROM tp_pm_inproduction p\n" +
- " WHERE p.barcode = :barcode\n" +
- " AND p.modeltype not in (1,2,3,6)\n" +
- // chenxy 2019-10-02 半检返修 IsReworkFlag=2
- //" AND p.IsReworkFlag <> '1' AND p.InScrapFlag <> '1' \n" +
- " AND p.IsReworkFlag = '0' AND p.InScrapFlag = '0' \n" +
- "";
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- subbarcodes[i],ParameterDirection.Input),
- new OracleParameter(":deleteduserid",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":deletedusercode",OracleDbType.NVarchar2,
- sUserInfo.UserCode,ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 3 删除在产数据
- // chenxy 2019-10-02 半检返修 IsReworkFlag=2
- //sql = @" delete from tp_pm_inproduction p where p.barcode =:barcode AND p.modeltype not in (1,2,3,6) AND p.IsReworkFlag <> '1' AND p.InScrapFlag <> '1'";
- sql = @" delete from tp_pm_inproduction p where p.barcode =:barcode AND p.modeltype not in (1,2,3,6) AND p.IsReworkFlag = '0' AND p.InScrapFlag = '0'";
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- subbarcodes[i],ParameterDirection.Input),
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- if (returnRows > 0)
- {
- // 4. 删除在产生产数据
- sql = @" delete from tp_pm_productiondatain p where p.barcode = :barcode";
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- subbarcodes[i],ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- }
- if (returnRows <= 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 清除未盘点残留数据(根据条件进行选择)
- /// </summary>
- /// <param name="inCheckedID">盘点单ID</param>
- /// <param name="procedureIDs">完成工序集</param>
- /// <param name="goodsCodes">产品编码集</param>
- /// <returns></returns>
- public static int SaveClearInCheckedAll(int inCheckedID, string procedureIDs, string goodsCodes, DateTime? startDateTime, DateTime? endDateTime, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- OracleParameter[] Paras = null;
- string Insql = "";
- // 1 查出根据条件进行未盘点数据
- // 0.登窑、入窑、出窑工序的产品不能清除
- Insql = @"select p.barcode from TP_PM_INCHECKEDDETAIL p "
- + " inner join tp_pm_inproduction pin on pin.barcode = p.barcode and p.PROCEDUREID = pin.PROCEDUREID"
- + " where p.INCHECKEDID=:InCheckedID and p.InCheckedFlag in ('0','9') and (pin.modeltype is null or pin.modeltype not in (1,2,3,6)) and pin.IsReworkFlag='0' and pin.InScrapFlag='0'";
- if (!string.IsNullOrEmpty(procedureIDs))
- {
- Insql += " and p.PROCEDUREID in (" + procedureIDs + ")";
- }
- if (!string.IsNullOrEmpty(goodsCodes))
- {
- Insql += " and p.GoodsID in (" + goodsCodes + ")";
- }
- if (startDateTime != null)
- {
- Insql += Insql + " AND pin.ProcedureTime >= :Createdate AND pin.ProcedureTime <= :EndDate ";
- Paras = new OracleParameter[] {
- new OracleParameter(":InCheckedID",OracleDbType.Int32,inCheckedID,ParameterDirection.Input),
- new OracleParameter(":Createdate", OracleDbType.Date, startDateTime, ParameterDirection.Input),
- new OracleParameter(":EndDate", OracleDbType.Date, endDateTime, ParameterDirection.Input),
- };
- }
- else
- {
- Paras = new OracleParameter[] {
- new OracleParameter(":InCheckedID",OracleDbType.Int32,inCheckedID,ParameterDirection.Input),
- };
- }
- string sql = "";
- // 1.清除未盘点数据
- sql = @"update TP_PM_INCHECKEDDETAIL p set p.INCHECKEDFLAG = '9' /*, p.valueflag='0'*/ where p.INCHECKEDID=:InCheckedID and p.barcode in (" + Insql + ") and p.InCheckedFlag='0'";
- //Paras = new OracleParameter[] {
- // new OracleParameter(":InCheckedID",OracleDbType.Int32,
- // inCheckedID,ParameterDirection.Input)
- // };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 2. 把在产数据插入到在产临时表中。(数据来源标识0:在产表)
- sql = @"insert into tp_pm_inproduction_tmp
- (
- BARCODE,
- PRODUCTIONLINEID,
- PRODUCTIONLINECODE,
- PRODUCTIONLINENAME,
- PROCEDUREMODEL,
- MODELTYPE,
- REWORKPROCEDUREID,
- ISPUBLICBODY,
- GOODSID,
- GOODSCODE,
- GOODSNAME,
- USERID,
- GROUTINGDAILYID,
- GROUTINGDAILYDETAILID,
- GROUTINGDATE,
- GROUTINGLINEID,
- GROUTINGLINECODE,
- GROUTINGLINENAME,
- GMOULDTYPEID,
- CANMANYTIMES,
- GROUTINGLINEDETAILID,
- GROUTINGMOULDCODE,
- MOULDCODE,
- REMARKS,
- ACCOUNTID,
- VALUEFLAG,
- CREATETIME,
- CREATEUSERID,
- UPDATETIME,
- UPDATEUSERID,
- OPTIMESTAMP,
- ISREFIRE,
- GOODSLEVELID,
- GOODSLEVELTYPEID,
- DEFECTFLAG,
- GROUTINGUSERID,
- GROUTINGUSERCODE,
- GROUTINGNUM,
- KILNID,
- KILNCODE,
- KILNNAME,
- KILNCARID,
- KILNCARCODE,
- KILNCARNAME,
- KILNCARBATCHNO,
- KILNCARPOSITION,
- SPECIALREPAIRFLAG,
- FLOWPROCEDUREID,
- FLOWPROCEDURETIME,
- PROCEDUREID,
- PROCEDURETIME,
- PRODUCTIONDATAID,
- trashflag,
- Deletedtime,
- logoid,
- IsReworkFlag,
- SemiCheckID,
- DELETEDUSERID,
- DELETEDUSERCODE
- )
- select
- BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE, REWORKPROCEDUREID,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, UPDATEUSERID,optimestamp,
- ISREFIRE, GOODSLEVELID, GOODSLEVELTYPEID, DEFECTFLAG,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,SpecialRepairFlag,FlowProcedureID
- ,FlowProcedureTime,ProcedureID,ProcedureTime,ProductionDataID,0,sysdate,logoid,ISREWORKFLAG,SEMICHECKID,"
- + sUserInfo.UserID + ",'" + sUserInfo.UserCode +
- "' from tp_pm_inproduction pp where pp.barcode in (" + Insql + ")";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 4. 删除在产生产数据
- sql = @" delete from tp_pm_productiondatain pp where pp.barcode in(" + Insql + ")";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 3 删除在产数据
- sql = @" delete from tp_pm_inproduction pp where pp.barcode in(" + Insql + ")";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- sql = @" update TP_PM_INCHECKEDDETAIL p set p.INCHECKEDFLAG = '3' where p.INCHECKEDFLAG='9' and p.InCheckedID=" + inCheckedID;
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- if (returnRows == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 设置条码商标
- /// </summary>
- /// <returns></returns>
- public static int SaveBarCodeLogo(string barcode, int logoid, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- // 转换条码
- string sqlString = @"select FUN_CMN_GetBarCode(:barcode,null,:accountid) From DUAL";
- OracleParameter[] paras1 = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
- };
- barcode = oracleTrConn.GetSqlResultToStr(sqlString, paras1);
- OracleParameter[] Paras = null;
- object oldLogoID = null;
- object pid = null;
- string sql = "";
- sql = @"select logoid from tp_pm_groutingdailydetail where barcode=:barcode";
- oldLogoID = oracleTrConn.GetSqlResultToObj(sql, new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input)
- });
- // 1.更新注浆明细
- sql = @"update tp_pm_groutingdailydetail set logoid=:logoid,updateuserid=:updateuserid where barcode=:barcode";
- Paras = new OracleParameter[] {
- new OracleParameter(":logoid",OracleDbType.Int32,
- logoid,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 2.在产产品
- sql = @"update tp_pm_inproduction set logoid=:logoid,updateuserid=:updateuserid where barcode=:barcode";
- //Paras = new OracleParameter[] {
- // new OracleParameter(":logoid",OracleDbType.Int32,
- // logoid,ParameterDirection.Input),
- // new OracleParameter(":updateuserid",OracleDbType.Int32,
- // sUserInfo.UserID,ParameterDirection.Input),
- // new OracleParameter(":barcode",OracleDbType.Varchar2,
- // barcode,ParameterDirection.Input)
- // };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- if (returnRows > 0)
- {
- sql = @"select ProcedureID from tp_pm_inproduction where barcode=:barcode";
- pid = oracleTrConn.GetSqlResultToObj(sql, new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input)
- });
- }
- // 3.在产回收站
- sql = @"update tp_pm_inproductiontrash set logoid=:logoid,updateuserid=:updateuserid where barcode=:barcode";
- //Paras = new OracleParameter[] {
- // new OracleParameter(":logoid",OracleDbType.Int32,
- // logoid,ParameterDirection.Input),
- // new OracleParameter(":updateuserid",OracleDbType.Int32,
- // sUserInfo.UserID,ParameterDirection.Input),
- // new OracleParameter(":barcode",OracleDbType.Varchar2,
- // barcode,ParameterDirection.Input)
- // };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 4.在产临时表
- sql = @"update tp_pm_inproduction_tmp set logoid=:logoid,updateuserid=:updateuserid where barcode=:barcode";
- //Paras = new OracleParameter[] {
- // new OracleParameter(":logoid",OracleDbType.Int32,
- // logoid,ParameterDirection.Input),
- // new OracleParameter(":updateuserid",OracleDbType.Int32,
- // sUserInfo.UserID,ParameterDirection.Input),
- // new OracleParameter(":barcode",OracleDbType.Varchar2,
- // barcode,ParameterDirection.Input)
- // };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 5.成品表
- sql = @"update tp_pm_finishedproduct set logoid=:logoid,updateuserid=:updateuserid where barcode=:barcode";
- //Paras = new OracleParameter[] {
- // new OracleParameter(":logoid",OracleDbType.Int32,
- // logoid,ParameterDirection.Input),
- // new OracleParameter(":updateuserid",OracleDbType.Int32,
- // sUserInfo.UserID,ParameterDirection.Input),
- // new OracleParameter(":barcode",OracleDbType.Varchar2,
- // barcode,ParameterDirection.Input)
- // };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 6 在产盘点明细
- sql = @"update TP_PM_InCheckedDetail set logoid=:logoid,updateuserid=:updateuserid where barcode=:barcode";
- //Paras = new OracleParameter[] {
- // new OracleParameter(":logoid",OracleDbType.Int32,
- // logoid,ParameterDirection.Input),
- // new OracleParameter(":updateuserid",OracleDbType.Int32,
- // sUserInfo.UserID,ParameterDirection.Input),
- // new OracleParameter(":barcode",OracleDbType.Varchar2,
- // barcode,ParameterDirection.Input)
- // };
- // ? returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 7 半成品检验登记
- sql = @"update TP_PM_SemiCheck set logoid=:logoid,updateuserid=:updateuserid where barcode=:barcode";
- //Paras = new OracleParameter[] {
- // new OracleParameter(":logoid",OracleDbType.Int32,
- // logoid,ParameterDirection.Input),
- // new OracleParameter(":updateuserid",OracleDbType.Int32,
- // sUserInfo.UserID,ParameterDirection.Input),
- // new OracleParameter(":barcode",OracleDbType.Varchar2,
- // barcode,ParameterDirection.Input)
- // };
- // ? returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 8 废弃产品
- sql = @"update TP_PM_ScrapProduct set logoid=:logoid,updateuserid=:updateuserid where barcode=:barcode";
- //Paras = new OracleParameter[] {
- // new OracleParameter(":logoid",OracleDbType.Int32,
- // logoid,ParameterDirection.Input),
- // new OracleParameter(":updateuserid",OracleDbType.Int32,
- // sUserInfo.UserID,ParameterDirection.Input),
- // new OracleParameter(":barcode",OracleDbType.Varchar2,
- // barcode,ParameterDirection.Input)
- // };
- // ? returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 9 在产生产数据
- sql = @"update TP_PM_ProductionDataIn set Triggerflag=1, logoid=:logoid,updateuserid=:updateuserid where barcode=:barcode";
- //Paras = new OracleParameter[] {
- // new OracleParameter(":logoid",OracleDbType.Int32,
- // logoid,ParameterDirection.Input),
- // new OracleParameter(":updateuserid",OracleDbType.Int32,
- // sUserInfo.UserID,ParameterDirection.Input),
- // new OracleParameter(":barcode",OracleDbType.Varchar2,
- // barcode,ParameterDirection.Input)
- // };
- // ? returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 10 生产数据
- sql = @"update TP_PM_ProductionData set logoid=:logoid,updateuserid=:updateuserid where barcode=:barcode";
- //Paras = new OracleParameter[] {
- // new OracleParameter(":logoid",OracleDbType.Int32,
- // logoid,ParameterDirection.Input),
- // new OracleParameter(":updateuserid",OracleDbType.Int32,
- // sUserInfo.UserID,ParameterDirection.Input),
- // new OracleParameter(":barcode",OracleDbType.Varchar2,
- // barcode,ParameterDirection.Input)
- // };
- // ? returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 变更履历
- sql =
- "INSERT INTO TP_PM_LOGOCHANGEDRECORD\n" +
- " (BARCODE\n" +
- " ,OLDLOGOID\n" +
- " ,NEWLOGOID\n" +
- " ,PROCEDUREID\n" +
- " ,REMARKS\n" +
- " ,ACCOUNTID\n" +
- " ,CREATETIME\n" +
- " ,CREATEUSERID)\n" +
- "VALUES\n" +
- " (:BARCODE\n" +
- " ,:OLDLOGOID\n" +
- " ,:NEWLOGOID\n" +
- " ,:PROCEDUREID\n" +
- " ,NULL\n" +
- " ,:ACCOUNTID\n" +
- " ,SYSDATE\n" +
- " ,:CREATEUSERID)";
- Paras = new OracleParameter[] {
- new OracleParameter(":OLDLOGOID",OracleDbType.Int32,
- oldLogoID,ParameterDirection.Input),
- new OracleParameter(":NEWLOGOID",OracleDbType.Int32,
- logoid,ParameterDirection.Input),
- new OracleParameter(":PROCEDUREID",OracleDbType.Int32,
- pid,ParameterDirection.Input),
- new OracleParameter(":ACCOUNTID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CREATEUSERID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":BARCODE",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- //if (returnRows == 0)
- //{
- // oracleTrConn.Rollback();
- // oracleTrConn.Disconnect();
- //}
- //else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- return returnRows;
- }
- /// <summary>
- /// 设置条码商标 釉料
- /// </summary>
- /// <returns></returns>
- public static int SaveBarCodeLogoAndGlazetype(string barcode, int logoid, int glazetypeid,
- SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- // 转换条码
- //string sqlString = @"select FUN_CMN_GetBarCode(:barcode,null,:accountid) From DUAL";
- //OracleParameter[] paras1 = new OracleParameter[]{
- // new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- // new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
- // };
- //barcode = oracleTrConn.GetSqlResultToStr(sqlString, paras1);
- OracleParameter[] Paras = null;
- string sql = "select g.groutingdailydetailid, g.logoid, g.glazetypeid, t.PROCEDUREID from tp_pm_groutingdailydetail g \n" +
- " left join tp_pm_inproduction t on t.barcode = g.barcode\n" +
- "where g.barcode = :barcode";
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- barcode,ParameterDirection.Input), };
- DataTable dt = oracleTrConn.GetSqlResultToDt(sql, Paras);
- if (dt == null || dt.Rows.Count == 0)
- {
- return -2;
- }
- // 釉料变更履历
- sql = "insert into TP_PM_GlazetypeRecord\n" +
- //"values\n" + xuwei update 2020-01-02
- " (GROUTINGDAILYDETAILID\n" +
- " ,OldGlazetypeid\n" +
- " ,NewGlazetypeid\n" +
- " ,ProcedureID\n" +
- " ,Remarks\n" +
- " ,AccountID\n" +
- " ,CreateUserID)\n" +
- "values\n" +
- " (:GROUTINGDAILYDETAILID\n" +
- " ,:OldGlazetypeid\n" +
- " ,:NewGlazetypeid\n" +
- " ,:ProcedureID\n" +
- " ,:Remarks\n" +
- " ,:AccountID\n" +
- " ,:CreateUserID)";
- Paras = new OracleParameter[] {
- new OracleParameter(":GROUTINGDAILYDETAILID",OracleDbType.Int32,
- dt.Rows[0]["GROUTINGDAILYDETAILID"],ParameterDirection.Input),
- new OracleParameter(":OldGlazetypeid",OracleDbType.Int32,
- dt.Rows[0]["glazetypeid"],ParameterDirection.Input),
- new OracleParameter(":NewGlazetypeid",OracleDbType.Int32,
- glazetypeid,ParameterDirection.Input),
- new OracleParameter(":ProcedureID",OracleDbType.Int32,
- dt.Rows[0]["PROCEDUREID"],ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.NVarchar2,
- null,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 变更履历
- sql =
- "INSERT INTO TP_PM_LOGOCHANGEDRECORD\n" +
- " (BARCODE\n" +
- " ,OLDLOGOID\n" +
- " ,NEWLOGOID\n" +
- //" ,PROCEDUREID\n" +
- " ,REMARKS\n" +
- " ,ACCOUNTID\n" +
- " ,CREATETIME\n" +
- " ,CREATEUSERID)\n" +
- "VALUES\n" +
- " (:BARCODE\n" +
- " ,:OLDLOGOID\n" +
- " ,:NEWLOGOID\n" +
- //" ,:PROCEDUREID\n" +
- " ,NULL\n" +
- " ,:ACCOUNTID\n" +
- " ,SYSDATE\n" +
- " ,:CREATEUSERID)";
- Paras = new OracleParameter[] {
- new OracleParameter(":OLDLOGOID",OracleDbType.Int32,
- dt.Rows[0]["LOGOID"],ParameterDirection.Input),
- new OracleParameter(":NEWLOGOID",OracleDbType.Int32,
- logoid,ParameterDirection.Input),
- //new OracleParameter(":PROCEDUREID",OracleDbType.Int32,
- // pid,ParameterDirection.Input),
- new OracleParameter(":ACCOUNTID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CREATEUSERID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":BARCODE",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 1.更新注浆明细
- sql = "update tp_pm_groutingdailydetail set logoid=:logoid, glazetypeid =:glazetypeid, updateuserid=:updateuserid where barcode=:barcode";
- Paras = new OracleParameter[] {
- new OracleParameter(":logoid",OracleDbType.Int32,
- logoid,ParameterDirection.Input),
- new OracleParameter(":glazetypeid",OracleDbType.Int32,
- glazetypeid,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 1.更新在产
- sql = @"update TP_PM_INPRODUCTION set logoid=:logoid,
- --glazetypeid =:glazetypeid,
- updateuserid=:updateuserid where barcode=:barcode";
- Paras = new OracleParameter[] {
- new OracleParameter(":logoid",OracleDbType.Int32,
- logoid,ParameterDirection.Input),
- //new OracleParameter(":glazetypeid",OracleDbType.Int32,
- // glazetypeid,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- }
- throw ex;
- }
- finally { oracleTrConn.Disconnect(); }
- return returnRows;
- }
- /// <summary>
- /// 设置条码商标 釉料
- /// </summary>
- /// <returns></returns>
- public static int SaveBarCodesLogoAndGlazetype(string barcodesstr, int logoid, int glazetypeid,
- int procedureID, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- OracleParameter[] Paras = null;
- string sql = "select g.groutingdailydetailid, g.logoid, g.glazetypeid, t.PROCEDUREID from tp_pm_groutingdailydetail g \n" +
- " left join tp_pm_inproduction t on t.barcode = g.barcode\n" +
- "where g.barcode = :barcode";
- string sql0 = "select g.groutingdailydetailid, g.logoid, g.glazetypeid from tp_pm_groutingdailydetail g \n" +
- "where g.barcode = :barcode";
- // 釉料变更履历
- string sql1 = "insert into TP_PM_GlazetypeRecord\n" +
- //"values\n" + xuwei update 2020-01-02
- " (GROUTINGDAILYDETAILID\n" +
- " ,OldGlazetypeid\n" +
- " ,NewGlazetypeid\n" +
- " ,ProcedureID\n" +
- " ,Remarks\n" +
- " ,AccountID\n" +
- " ,CreateUserID)\n" +
- "values\n" +
- " (:GROUTINGDAILYDETAILID\n" +
- " ,:OldGlazetypeid\n" +
- " ,:NewGlazetypeid\n" +
- " ,:ProcedureID\n" +
- " ,:Remarks\n" +
- " ,:AccountID\n" +
- " ,:CreateUserID)";
- // 变更履历
- string sqllogo =
- "INSERT INTO TP_PM_LOGOCHANGEDRECORD\n" +
- " (BARCODE\n" +
- " ,OLDLOGOID\n" +
- " ,NEWLOGOID\n" +
- //" ,PROCEDUREID\n" +
- " ,REMARKS\n" +
- " ,ACCOUNTID\n" +
- " ,CREATETIME\n" +
- " ,CREATEUSERID)\n" +
- "VALUES\n" +
- " (:BARCODE\n" +
- " ,:OLDLOGOID\n" +
- " ,:NEWLOGOID\n" +
- //" ,:PROCEDUREID\n" +
- " ,NULL\n" +
- " ,:ACCOUNTID\n" +
- " ,SYSDATE\n" +
- " ,:CREATEUSERID)";
- string sql2 = "update tp_pm_groutingdailydetail set logoid=:logoid, glazetypeid =:glazetypeid, updateuserid=:updateuserid where barcode=:barcode";
- // 1.更新在产
- string sqlin = @"update TP_PM_INPRODUCTION set logoid=:logoid,
- --glazetypeid =:glazetypeid,
- updateuserid=:updateuserid where barcode=:barcode";
- //xuwei add 2020-01-02
- string[] barcodes = barcodesstr.Split(',');
- foreach (string barcode in barcodes)
- {
- Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.NVarchar2,
- barcode,ParameterDirection.Input), };
- DataTable dt = null;
- if (procedureID > 0)
- {
- dt = oracleTrConn.GetSqlResultToDt(sql0, Paras);
- }
- else
- {
- dt = oracleTrConn.GetSqlResultToDt(sql, Paras);
- }
- if (dt == null || dt.Rows.Count == 0)
- {
- //continue;
- return -2;
- }
- Paras = new OracleParameter[] {
- new OracleParameter(":GROUTINGDAILYDETAILID",OracleDbType.Int32,
- dt.Rows[0]["GROUTINGDAILYDETAILID"],ParameterDirection.Input),
- new OracleParameter(":OldGlazetypeid",OracleDbType.Int32,
- dt.Rows[0]["glazetypeid"],ParameterDirection.Input),
- new OracleParameter(":NewGlazetypeid",OracleDbType.Int32,
- glazetypeid,ParameterDirection.Input),
- new OracleParameter(":ProcedureID",OracleDbType.Int32,
- (procedureID > 0 ? procedureID : dt.Rows[0]["PROCEDUREID"]),ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.NVarchar2,
- null,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- };
- oracleTrConn.ExecuteNonQuery(sql1, Paras);
- // 商标履历
- Paras = new OracleParameter[] {
- new OracleParameter(":OLDLOGOID",OracleDbType.Int32,
- dt.Rows[0]["LOGOID"],ParameterDirection.Input),
- new OracleParameter(":NEWLOGOID",OracleDbType.Int32,
- logoid,ParameterDirection.Input),
- //new OracleParameter(":PROCEDUREID",OracleDbType.Int32,
- // pid,ParameterDirection.Input),
- new OracleParameter(":ACCOUNTID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CREATEUSERID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":BARCODE",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqllogo, Paras);
- // 1.更新注浆明细
- Paras = new OracleParameter[] {
- new OracleParameter(":logoid",OracleDbType.Int32,
- logoid,ParameterDirection.Input),
- new OracleParameter(":glazetypeid",OracleDbType.Int32,
- glazetypeid,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql2, Paras);
- // 1.更新在产
- Paras = new OracleParameter[] {
- new OracleParameter(":logoid",OracleDbType.Int32,
- logoid,ParameterDirection.Input),
- //new OracleParameter(":glazetypeid",OracleDbType.Int32,
- // glazetypeid,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sqlin, Paras);
- }
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- }
- throw ex;
- }
- finally { oracleTrConn.Disconnect(); }
- return returnRows;
- }
- /// <summary>
- /// 设置产成品商标
- /// </summary>
- /// <param name="barcodes"></param>
- /// <param name="logoid"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- public static int SetFinishedLogo(string[] barcodes, int logoid, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- OracleParameter[] Paras = null;
- object oldLogoID = null;
- object gdid = null;
- //object pid = null;
- string sql = "";
- DataTable dataTable = null;
- foreach (string barcode in barcodes)
- {
- sql = @"select groutingdailydetailid, logoid from tp_pm_groutingdailydetail where barcode=:barcode";
- dataTable = oracleTrConn.GetSqlResultToDt(sql, new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input)
- });
- if (dataTable == null || dataTable.Rows.Count == 0)
- {
- continue;
- }
- gdid = dataTable.Rows[0]["groutingdailydetailid"];
- oldLogoID = dataTable.Rows[0]["logoid"];
- // 1.更新注浆明细
- sql = @"update tp_pm_groutingdailydetail set logoid=:logoid,updateuserid=:updateuserid where barcode=:barcode";
- Paras = new OracleParameter[] {
- new OracleParameter(":logoid",OracleDbType.Int32,
- logoid,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 5.成品表
- sql = @"update tp_pm_finishedproduct set logoid=:logoid,updateuserid=:updateuserid where barcode=:barcode";
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- // 变更履历
- sql =
- "INSERT INTO TP_PM_LOGOCHANGEDRECORD\n" +
- " (BARCODE\n" +
- " ,OLDLOGOID\n" +
- " ,NEWLOGOID\n" +
- //" ,PROCEDUREID\n" +
- " ,REMARKS\n" +
- " ,ACCOUNTID\n" +
- " ,CREATETIME\n" +
- " ,CREATEUSERID)\n" +
- "VALUES\n" +
- " (:BARCODE\n" +
- " ,:OLDLOGOID\n" +
- " ,:NEWLOGOID\n" +
- //" ,:PROCEDUREID\n" +
- " ,NULL\n" +
- " ,:ACCOUNTID\n" +
- " ,SYSDATE\n" +
- " ,:CREATEUSERID)";
- Paras = new OracleParameter[] {
- new OracleParameter(":OLDLOGOID",OracleDbType.Int32,
- oldLogoID,ParameterDirection.Input),
- new OracleParameter(":NEWLOGOID",OracleDbType.Int32,
- logoid,ParameterDirection.Input),
- //new OracleParameter(":PROCEDUREID",OracleDbType.Int32,
- // pid,ParameterDirection.Input),
- new OracleParameter(":ACCOUNTID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CREATEUSERID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":BARCODE",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- //if (returnRows == 0)
- //{
- // oracleTrConn.Rollback();
- // oracleTrConn.Disconnect();
- //}
- //else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- return returnRows;
- }
- /// <summary>
- /// 设置产成品订单
- /// </summary>
- /// <param name="barcodes"></param>
- /// <param name="orderid"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- public static int SetHandoveredOrder(string[] barcodes, int orderID, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string sql = @"update tp_pm_finishedproduct set FHOrderID=:FHOrderID,updateuserid=:updateuserid where barcode=:barcode and FHOrderID is not null";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- "",ParameterDirection.Input),
- new OracleParameter(":FHOrderID",OracleDbType.Int32,
- orderID,ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input)
- };
- foreach (string barcode in barcodes)
- {
- Paras[0].Value = barcode;
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- return returnRows;
- }
- #endregion
- /// <summary>
- /// 添加生产数据
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="productionData">生产数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddProductionDataWaster(IDBTransaction oracleTrConn, DateTime accountDate, ProductionDataEntity productionData, SUserInfo sUserInfo, out string OutSpecialRepairflag)
- {
- #region 查出产品注浆日期,注浆工号ID,注浆工号编码,注浆次数,注浆模具编号,模具编号
- string selectSql = "";
- string returnVal = "";
- //xuwei fix 2019-09-24 按新规则重新校准NodeType.Begin使后续NodeType.Begin判定是准确的
- //xuwei fix 2019-09-26 使用通用方法判定
- // 2019-1016
- //int isNodeBegin = IsNodeBegin<IDBTransaction>(oracleTrConn, productionData.Barcode);
- //if (isNodeBegin == 1) productionData.NodeType = (int)Constant.ProcedureNodeType.Begin;
- if (productionData.NodeType == (int)Constant.ProcedureNodeType.Begin)
- {
- int isNodeBegin = IsNodeBegin<IDBTransaction>(oracleTrConn, productionData.Barcode);
- if (isNodeBegin == 0)
- {
- productionData.NodeType = (int)Constant.ProcedureNodeType.Middle;
- }
- }
- if (productionData.NodeType == (int)Constant.ProcedureNodeType.Begin)//开始节点时从注浆登记取值
- {
- selectSql = @"select TP_PM_GroutingDailyDetail.GroutingDate,
- TP_PM_GroutingDailyDetail.UserID as GroutingUserID,
- TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
- TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
- TP_PM_GroutingDailyDetail.GroutingMouldCode,
- TP_PM_GroutingDailyDetail.MouldCode,
- TP_PM_GroutingDailyDetail.GroutingDailyID,
- TP_PM_GroutingDailyDetail.GroutingDailyDetailID,
- TP_PM_GroutingDailyDetail.GroutingLineID,
- TP_PM_GroutingDailyDetail.GroutingLineCode,
- TP_PM_GroutingDailyDetail.GroutingLineName,
- TP_PM_GroutingDailyDetail.GroutingLineDetailID,
- TP_PM_GroutingDailyDetail.SpecialRepairflag,
- (select GMouldTypeID
- from TP_PM_GroutingDaily
- where TP_PM_GroutingDaily.GroutingDailyID =
- TP_PM_GroutingDailyDetail.GroutingDailyID) as GMouldTypeID,
- (select CanManyTimes
- from TP_PM_GroutingDaily
- where TP_PM_GroutingDaily.GroutingDailyID =
- TP_PM_GroutingDailyDetail.GroutingDailyID) as CanManyTimes,
- 0 as IsReFire
- from TP_PM_GroutingDailyDetail
- where TP_PM_GroutingDailyDetail.barcode=:barcode";
- }
- else
- {
- selectSql = @"select
- GroutingDate,
- userid as GroutingUserID,
- usercode as GroutingUserCode,
- Groutingcount as GroutingNum,
- GroutingMouldCode,
- MouldCode,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- SpecialRepairflag,
- 0 as IsReFire,
- logoid
- from TP_PM_GroutingDailyDetail where barcode=:barcode
- ";
- }
- OracleParameter[] selectparas = new OracleParameter[] {
- new OracleParameter(":barcode",productionData.Barcode),
- };
- DataSet dsGroutingProduct = oracleTrConn.GetSqlResultToDs(selectSql, selectparas);
- DateTime GroutingDate = new DateTime();
- int GroutingUserID = 0, GroutingNum = 0, GroutingDailyID = 0, GroutingDailyDetailID = 0, GroutingLineID = 0, GMouldTypeID = 0, CanManyTimes = 0, GroutingLineDetailID = 0, SpecialRepairflag = 0;
- string GroutingUserCode = "", GroutingMouldCode = "", MouldCode = "", GroutingLineCode = "", GroutingLineName = "";
- int IsReFire = 0;
- int? logoID = null;
- if (dsGroutingProduct != null && dsGroutingProduct.Tables[0].Rows.Count > 0)
- {
- GroutingDate = Convert.ToDateTime(dsGroutingProduct.Tables[0].Rows[0]["GroutingDate"]);
- GroutingUserID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingUserID"]);
- GroutingUserCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingUserCode"].ToString();
- GroutingNum = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingNum"]);
- GroutingMouldCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingMouldCode"].ToString();
- MouldCode = dsGroutingProduct.Tables[0].Rows[0]["MouldCode"].ToString();
- GroutingDailyID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingDailyID"]);
- GroutingDailyDetailID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingDailyDetailID"]);
- GroutingLineID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingLineID"]);
- GroutingLineCode = dsGroutingProduct.Tables[0].Rows[0]["GroutingLineCode"].ToString();
- GroutingLineName = dsGroutingProduct.Tables[0].Rows[0]["GroutingLineName"].ToString();
- GMouldTypeID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GMouldTypeID"]);
- CanManyTimes = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["CanManyTimes"]);
- GroutingLineDetailID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["GroutingLineDetailID"]);
- SpecialRepairflag = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["SpecialRepairflag"]);
- IsReFire = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["IsReFire"]);
- if (IsReFire > 0) //大于零代表重烧过
- {
- productionData.IsReFire = IsReFire;
- productionData.DefectFlag = (int)Constant.GoodsLevelType.Defect;
- }
- if (dsGroutingProduct.Tables[0].Rows[0]["logoID"].ToString() != "")
- {
- logoID = Convert.ToInt32(dsGroutingProduct.Tables[0].Rows[0]["logoID"]);
- }
- //if (productionData.LogoID != null) //当前工序有商标
- //{
- // if (logoID != productionData.LogoID && productionData.LogoID != 0)
- // {
- // logoID = productionData.LogoID;
- // //根据明细ID.update
- // selectSql = "update TP_PM_GroutingDailyDetail set logoid=:logoid where GroutingDailyDetailID=" + GroutingDailyDetailID;
- // OracleParameter[] paras2 = new OracleParameter[] {
- // new OracleParameter(":logoid",productionData.LogoID)
- // };
- // oracleTrConn.ExecuteNonQuery(selectSql, paras2);
- // }
- //}
- returnVal = SpecialRepairflag.ToString();
- }
- #endregion
- #region 更新窑炉窑车属性
- if (productionData.ModelType != 1 && productionData.ModelType != 2 && productionData.ModelType != 3 && productionData.ModelType != 4)
- {
- DataSet ds = GetKilnCarInfo(oracleTrConn, productionData.Barcode, sUserInfo);
- if (ds != null)
- {
- if (ds.Tables[0].Rows[0]["KilnID"].ToString() != "") //表示以前有过窑炉相关信息
- {
- productionData.KilnID = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnID"]);
- productionData.KilnCode = ds.Tables[0].Rows[0]["KilnCode"].ToString();
- productionData.KilnName = ds.Tables[0].Rows[0]["KilnName"].ToString();
- productionData.KilnCarID = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarID"]);
- productionData.KilnCarCode = ds.Tables[0].Rows[0]["KilnCarCode"].ToString();
- productionData.KilnCarName = ds.Tables[0].Rows[0]["KilnCarName"].ToString();
- productionData.KilnCarBatchNo = ds.Tables[0].Rows[0]["KilnCarBatchNo"].ToString();
- productionData.KilnCarPosition = Convert.ToInt32(ds.Tables[0].Rows[0]["KilnCarPosition"]);
- }
- }
- }
- #endregion
- #region SQL
- string sql = "insert into tp_pm_productiondataIn"
- + " (productiondataid,"
- + " barcode,"
- + " centralizedbatchno,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " proceduremodel,"
- + " modeltype,"
- + " piecetype,"
- + " isreworked,"
- + " nodetype,"
- + " ispublicbody,"
- + " isrefire,"
- + " organizationid,"
- + " goodsid,"
- + " goodscode,"
- + " goodsname,"
- + " userid,"
- + " usercode,"
- + " username,"
- + " kilnid,"
- + " kilncode,"
- + " kilnname,"
- + " kilncarid,"
- + " kilncarcode,"
- + " kilncarname,"
- + " kilncarbatchno,"
- + " kilncarposition,"
- + " reworkprocedureid,"
- + " reworkprocedurecode,"
- + " reworkprocedurename,"
- + " remarks,"
- + " accountdate,"
- + " accountid,"
- + " GoodsLevelID,"
- + " GoodsLevelTypeID,"
- + " createuserid,"
- + " updateuserid,"
- + " GroutingDate,"
- + " GroutingUserID,"
- + " GroutingUserCode,"
- + " GroutingNum,"
- + " GroutingMouldCode,"
- + " MouldCode,"
- + "GroutingDailyID,"
- + "GroutingDailyDetailID,"
- + "GroutingLineID,"
- + " GroutingLineCode,"
- + "GroutingLineName,"
- + "GMouldTypeID,"
- + "CanManyTimes,"
- + "GroutingLineDetailID,"
- + "SpecialRepairflag,"
- + "ClassesSettingID,"
- + "LogoID"
- + ")"
- + " values"
- + " (:productiondataid,"
- + " :barcode,"
- + " :centralizedbatchno,"
- + " :productionlineid,"
- + " :productionlinecode,"
- + " :productionlinename,"
- + " :procedureid,"
- + " :procedurecode,"
- + " :procedurename,"
- + " :proceduremodel,"
- + " :modeltype,"
- + " :piecetype,"
- + " :isreworked,"
- + " :nodetype,"
- + " :ispublicbody,"
- + " :isrefire,"
- + " :organizationid,"
- + " :goodsid,"
- + " :goodscode,"
- + " :goodsname,"
- + " :userid,"
- + " :usercode,"
- + " :username,"
- + " :kilnid,"
- + " :kilncode,"
- + " :kilnname,"
- + " :kilncarid,"
- + " :kilncarcode,"
- + " :kilncarname,"
- + " :kilncarbatchno,"
- + " :kilncarposition,"
- + " :reworkprocedureid,"
- + " :reworkprocedurecode,"
- + " :reworkprocedurename,"
- + " :remarks,"
- + " :accountdata,"
- + " :accountid,"
- + " :GoodsLevelID,"
- + " :GoodsLevelTypeID,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :groutingdate,"
- + " :groutinguserid,"
- + " :groutingusercode,"
- + " :groutingnum,"
- + " :groutingmouldcode,"
- + " :mouldcode,"
- + ":groutingdailyid,"
- + ":groutingdailydetailid,"
- + ":groutinglineid,"
- + " :groutinglinecode,"
- + ":groutinglinename,"
- + ":gmouldtypeid,"
- + ":canmanytimes,"
- + ":groutinglinedetailid,"
- + ":specialRepairflag,"
- + ":classesSettingID,"
- + ":logoID"
- + ")";
- #endregion
- #region OracleParameter
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":classesSettingID",productionData.ClassesSettingID),
- new OracleParameter(":productiondataid",productionData.ProductionDataID),
- new OracleParameter(":barcode",productionData.Barcode),
- new OracleParameter(":centralizedbatchno",productionData.CentralizedBatchNo),
- new OracleParameter(":productionlineid",productionData.ProductionLineID),
- new OracleParameter(":productionlinecode",productionData.ProductionLineCode),
- new OracleParameter(":productionlinename",productionData.ProductionLineName),
- new OracleParameter(":procedureid",productionData.ProcedureID),
- new OracleParameter(":procedurecode",productionData.ProcedureCode),
- new OracleParameter(":procedurename",productionData.ProcedureName),
- new OracleParameter(":proceduremodel",productionData.ProcedureModel),
- new OracleParameter(":modeltype",productionData.ModelType),
- new OracleParameter(":piecetype",productionData.PieceType),
- new OracleParameter(":isreworked",productionData.IsReworked),
- new OracleParameter(":nodetype",productionData.NodeType),
- new OracleParameter(":ispublicbody",productionData.IsPublicBody),
- new OracleParameter(":isrefire",productionData.IsReFire),
- new OracleParameter(":organizationid",productionData.OrganizationID),
- new OracleParameter(":goodsid",productionData.GoodsID),
- new OracleParameter(":goodscode",productionData.GoodsCode),
- new OracleParameter(":goodsname",productionData.GoodsName),
- new OracleParameter(":userid",productionData.UserID),
- new OracleParameter(":usercode",productionData.UserCode),
- new OracleParameter(":username",productionData.UserName),
- new OracleParameter(":kilnid",productionData.KilnID),
- new OracleParameter(":kilncode",productionData.KilnCode),
- new OracleParameter(":kilnname",productionData.KilnName),
- new OracleParameter(":kilncarid",productionData.KilnCarID),
- new OracleParameter(":kilncarcode",productionData.KilnCarCode),
- new OracleParameter(":kilncarname",productionData.KilnCarName),
- new OracleParameter(":kilncarbatchno",productionData.KilnCarBatchNo),
- new OracleParameter(":kilncarposition",productionData.KilnCarPosition),
- new OracleParameter(":reworkprocedureid",productionData.ReworkProcedureID),
- new OracleParameter(":reworkprocedurecode",productionData.ReworkProcedureCode),
- new OracleParameter(":reworkprocedurename",productionData.ReworkProcedureName),
- new OracleParameter(":remarks",productionData.Remarks),
- new OracleParameter(":accountdata",accountDate),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":GoodsLevelID",productionData.GoodsLevelID),
- new OracleParameter(":GoodsLevelTypeID",productionData.GoodsLevelTypeID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":groutingdate",GroutingDate),
- new OracleParameter(":groutinguserid",GroutingUserID),
- new OracleParameter(":groutingusercode",GroutingUserCode),
- new OracleParameter(":groutingnum",GroutingNum),
- new OracleParameter(":groutingmouldcode",GroutingMouldCode),
- new OracleParameter(":mouldcode",MouldCode),
- new OracleParameter(":groutingdailyid",GroutingDailyID),
- new OracleParameter(":groutingdailydetailid",GroutingDailyDetailID),
- new OracleParameter(":groutinglineid",GroutingLineID),
- new OracleParameter(":groutinglinecode",GroutingLineCode),
- new OracleParameter(":groutinglinename",GroutingLineName),
- new OracleParameter(":gmouldtypeid",GMouldTypeID),
- new OracleParameter(":canmanytimes",CanManyTimes),
- new OracleParameter(":groutinglinedetailid",GroutingLineDetailID),
- new OracleParameter(":specialRepairflag",SpecialRepairflag),
- new OracleParameter(":logoID",logoID),
- };
- #endregion
- foreach (OracleParameter para in paras)
- {
- if (string.IsNullOrEmpty(para.Value + ""))
- {
- para.Value = DBNull.Value;
- }
- }
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- OutSpecialRepairflag = returnVal;
- // 失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 成功返回null
- return null;
- }
- #region 保存半检登记
- /// <summary>
- /// 保存半检登记
- /// </summary>
- /// <param name="entity">半检实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>ServiceResultEntity</returns>
- /// <remarks>
- /// 王鑫 2016.06.27 新建
- /// </remarks>
- public static ServiceResultEntity AddSemiCheck(SemiCheckEntity[] entityobj, SUserInfo sUserInfo)
- {
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- oracleTrConn.IgnoreCase = false;
- ServiceResultEntity resultEntity = new ServiceResultEntity();
- try
- {
- oracleTrConn.Connect();
- SemiCheckEntity entity = entityobj[0];
- string errMsg = "";
- if (entity.SemiCheckCategory == 1) // 半检登记
- {
- errMsg = AddNormalSemiCheck(oracleTrConn, entity, sUserInfo);
- }
- else if (entity.SemiCheckCategory == 2)// 复检登记
- {
- errMsg = AddReSemiCheck(oracleTrConn, entity, sUserInfo);
- }
- else if (entity.SemiCheckCategory == 3)// 撤销复检
- {
- errMsg = AddCancelSemiCheck(oracleTrConn, entity, sUserInfo);
- }
- // 没有错误 提交事务
- if (string.IsNullOrEmpty(errMsg))
- {
- oracleTrConn.Commit();
- }
- else
- {
- resultEntity.Message = errMsg;
- }
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return resultEntity;
- }
- #endregion
- /// <summary>
- /// 半检数据
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="entity">半检实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 王鑫 2016.06.27 新建
- /// </remarks>
- private static string AddNormalSemiCheck(IDBTransaction oracleTrConn,
- SemiCheckEntity entity,
- SUserInfo sUserInfo)
- {
- try
- {
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = string.Empty;
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- // 条码
- string barcode = entity.BarCode;
- if (string.IsNullOrEmpty(barcode))
- {
- throw new Exception("传入的条码号为空");
- }
- // 半检工号ID
- int workUserID = Convert.ToInt32(entity.SemiCheckUserID);
- // 半检工号编码
- string workUserCode = entity.SemiCheckUserCode;
- // 查询新插入的半检数据ID
- string sql = "select SEQ_PM_SemiCheck_ID.nextval from dual";
- string idStr = "";
- if (entity.SemiCheckEditType == 1) //新增
- {
- idStr = oracleTrConn.GetSqlResultToStr(sql);
- }
- else if (entity.SemiCheckEditType == 2) //编辑返工
- {
- if (entity.SemiCheckType != "0") //正常
- {
- idStr = oracleTrConn.GetSqlResultToStr(sql);
- }
- }
- else if (entity.SemiCheckEditType == 3) //编辑不合格
- {
- if (entity.SemiCheckType != "0") //正常
- {
- idStr = oracleTrConn.GetSqlResultToStr(sql);
- }
- }
- // 保存时再验证,前台已有缺陷不能为空的验证,但还是产生了无责任和缺陷记录的数据,后台保存时增加验证。
- if (!string.IsNullOrEmpty(idStr) && (entity.SemiCheckDefects == null || entity.SemiCheckDefects.Count == 0))
- {
- errMsg = "缺陷责任记录不能为空";
- return errMsg;
- }
- if (entity.SemiCheckEditType == 1) //新增
- {
- #region 校验条码有效性
- errMsg = CheckBarcodeByNew(oracleTrConn, barcode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 添加半检数据
- entity.SemiCheckID = Convert.ToInt32(idStr);
- if (entity.SemiCheckType == "2")
- {
- errMsg = AddSemiCheckDataNoPass(oracleTrConn, entity, sUserInfo);
- }
- else
- {
- errMsg = AddSemiCheckData(oracleTrConn, entity, sUserInfo);
- }
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 条码有缺陷
- #region 是次品 添加废弃产品
- string ResponProcedureidStr = "";
- if (entity.SemiCheckType == "2") //新建时不合格,直接报损
- {
- #region 添加废弃产品
- ScrapProductEntity scrapProduct = new ScrapProductEntity();
- #region 属性赋值
- scrapProduct.BarCode = entity.BarCode;
- scrapProduct.ScrapType = Constant.ScrapType.Substandard.GetHashCode();
- // 不能责任人吗? TODO 单独责任时,没有插入废品数据。
- //scrapProduct.ResponType = Constant.ScrapResponType.Procedure.GetHashCode();
- scrapProduct.ResponType = (int)Constant.ScrapResponType.Person;
- scrapProduct.ScrapDate = accountDate;// sysdate
- scrapProduct.Rreason = Constant.SCRAPTYPE_NOPASS;
- scrapProduct.AuditStatus = Constant.AuditStatus.Agree.GetHashCode();
- scrapProduct.Auditor = sUserInfo.UserID;
- scrapProduct.AuditlDate = accountDate;// sysdate
- scrapProduct.AccountDate = accountDate;
- sql = "select GoodsLevelID from tp_mst_goodslevel where GoodsLevelTypeID=13 and accountid=" + sUserInfo.AccountID;
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- scrapProduct.GoodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
- }
- scrapProduct.GoodsLevelTypeID = 13;
- //scrapProduct.IsPublicBody = IsPubilcByBarCode(oracleTrConn, entity.BarCode);
- // 查询新插入的废弃ID
- string ResponProceduresql = "select SEQ_PM_ScrapProduct_ID.nextval from dual";
- ResponProcedureidStr = oracleTrConn.GetSqlResultToStr(ResponProceduresql);
- scrapProduct.ScrapProductID = Convert.ToInt32(ResponProcedureidStr);
- scrapProduct.ScrapType = 2;
- #endregion
- // 保存报废
- errMsg = AddScrapProduct(oracleTrConn, scrapProduct, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- // 存在缺陷 插入缺陷表
- if (entity.SemiCheckDefects != null)
- {
- int row = 0;
- foreach (SemiCheckDefectEntity semiCheckDefect in entity.SemiCheckDefects)
- {
- if (row == 0)
- {
- #region 保存缺陷
- semiCheckDefect.SemiCheckID = Convert.ToInt32(idStr);
- semiCheckDefect.ScrapResponFlag
- = string.IsNullOrEmpty(semiCheckDefect.ScrapResponFlag) ? "0" : semiCheckDefect.ScrapResponFlag;
- // 保存缺陷
- errMsg = AddSemiCheckDefect(oracleTrConn, semiCheckDefect, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 是不合格 添加废弃责任工序
- if (entity.SemiCheckType == "2")
- {
- //if (semiCheckDefect.DefectProcedureID != null)
- {
- #region 添加责任工序
- ResponProcedureEntity responProce = new ResponProcedureEntity();
- // 新建-不合格 获取生产线及生产数据ID
- sql = "select ProductionLineID,ProductionLineCode,ProductionLineName,ProductionDataID from TP_PM_InProduction where barcode=:barcode";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, oracleParameters);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- responProce.ProductionDataID = Convert.ToInt32(ds.Tables[0].Rows[0]["ProductionDataID"]);
- responProce.ProductionLineID = Convert.ToInt32(ds.Tables[0].Rows[0]["ProductionLineID"]);
- responProce.ProductionLineCode = ds.Tables[0].Rows[0]["ProductionLineCode"].ToString();
- responProce.ProductionLineName = ds.Tables[0].Rows[0]["ProductionLineName"].ToString();
- }
- //新建-不合格 获取生产线及生产数据ID end
- #region 属性赋值
- responProce.BarCode = entity.BarCode;
- responProce.ProcedureID = semiCheckDefect.DefectProcedureID;
- responProce.ProcedureCode = semiCheckDefect.DefectProcedureCode;
- responProce.ProcedureName = semiCheckDefect.DefectProcedureName;
- responProce.UserID = semiCheckDefect.DefectUserID;
- responProce.UserCode = semiCheckDefect.DefectUserCode;
- responProce.UserName = semiCheckDefect.DefectUserName;
- responProce.Remarks = semiCheckDefect.Remarks;
- responProce.ScrapProductID = Convert.ToInt32(ResponProcedureidStr);
- #endregion
- // 保存责任工序
- errMsg = AddSemiCheckResponProcedure(oracleTrConn, responProce, semiCheckDefect, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- }
- #endregion
- }
- row++;
- }
- }
- #endregion
- #region 条码是不合格 删除在产产品数据
- if (entity.SemiCheckType == "2") //新建时不合格
- {
- // 1.在产表产品设置产品等级【13不合格】,半检登记ID=记录的半检登记ID。
- sql = @"update TP_PM_InProduction set GoodsLevelID=
- (
- select GoodsLevelID from tp_mst_goodslevel where GoodsLevelTypeID=13 and accountid=:accountid
- )
- ,GoodsLevelTypeID=13,SemiCheckID=:SemiCheckID,updateuserid=:updateuserid
- where barcode=:barcode";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- //new OracleParameter(":GoodsLevelID",entity.GoodsLevelID),
- //new OracleParameter(":GoodsLevelTypeID",entity.GoodsLevelTypeID),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":SemiCheckID",Convert.ToInt32(idStr)),
- new OracleParameter(":barcode",entity.BarCode),
- // new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 2.将在产数据保存到在产回收站表中(产品等级【13不合格】,半检登记ID=记录的半检登记ID)。
- string sqlInsert = @"insert into TP_PM_InProductionTrash
- (
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateUserID,
- UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- ProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid,
- ISREWORKFLAG, SEMICHECKID
- )
- select
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- -- GoodsLevelID,
- --GoodsLevelTypeID,
- (
- select GoodsLevelID from tp_mst_goodslevel where GoodsLevelTypeID=13 and accountid=:accountid
- )
- ,13,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- :CreateUserID,
- :UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- FlowProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid,
- ISREWORKFLAG, SEMICHECKID
- from TP_PM_InProduction
- where barcode=:barcode
- ";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":CreateUserID",sUserInfo.UserID),
- new OracleParameter(":UpdateUserID",sUserInfo.UserID),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- };
- result += oracleTrConn.ExecuteNonQuery(sqlInsert, oracleParameters);
- // 删除在产数据
- sql = "delete tp_pm_inproduction where barcode = :barcode";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- }
- else if (entity.SemiCheckType == "1") //返工
- {
- sql = @"update TP_PM_InProduction set IsReworkFlag=1,SemiCheckID=:SemiCheckID,updateuserid=:updateuserid
- where barcode=:barcode";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":SemiCheckID",Convert.ToInt32(idStr)),
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- }
- #endregion
- }
- else if (entity.SemiCheckEditType == 2) //编辑返工
- {
- #region 校验条码有效性
- errMsg = CheckBarcodeByEditRework(oracleTrConn, barcode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 删除当前半检数据
- errMsg = SetSemiCheckDataValueFlag(oracleTrConn, entity, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- if (entity.SemiCheckType != "0") //正常
- {
- #region 添加半检数据
- entity.SemiCheckID = Convert.ToInt32(idStr);
- errMsg = AddSemiCheckData(oracleTrConn, entity, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #region 条码有缺陷
- #region 是次品 添加废弃产品
- string ResponProcedureidStr = "";
- if (entity.SemiCheckType == "2") //新建时不合格,直接报损
- {
- #region 添加废弃产品
- ScrapProductEntity scrapProduct = new ScrapProductEntity();
- #region 属性赋值
- scrapProduct.BarCode = entity.BarCode;
- scrapProduct.ScrapType = Constant.ScrapType.Substandard.GetHashCode();
- scrapProduct.ResponType = Constant.ScrapResponType.Procedure.GetHashCode();
- scrapProduct.ScrapDate = accountDate;
- scrapProduct.Rreason = Constant.SCRAPTYPE_NOPASS;
- scrapProduct.AuditStatus = Constant.AuditStatus.Agree.GetHashCode();
- scrapProduct.Auditor = sUserInfo.UserID;
- scrapProduct.AuditlDate = accountDate;
- scrapProduct.AccountDate = accountDate;
- //scrapProduct.GoodsLevelID = entity.GoodsLevelID;
- //scrapProduct.GoodsLevelTypeID = entity.GoodsLevelTypeID;
- sql = "select GoodsLevelID from tp_mst_goodslevel where GoodsLevelTypeID=13 and accountid=" + sUserInfo.AccountID;
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- scrapProduct.GoodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
- }
- scrapProduct.GoodsLevelTypeID = 13;
- scrapProduct.IsPublicBody = IsPubilcByBarCode(oracleTrConn, entity.BarCode);
- // 查询新插入的废弃ID
- string ResponProceduresql = "select SEQ_PM_ScrapProduct_ID.nextval from dual";
- ResponProcedureidStr = oracleTrConn.GetSqlResultToStr(ResponProceduresql);
- scrapProduct.ScrapProductID = Convert.ToInt32(ResponProcedureidStr);
- scrapProduct.ScrapType = 2;
- #endregion
- // 保存报废
- errMsg = AddScrapProduct(oracleTrConn, scrapProduct, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- // 存在缺陷 插入缺陷表
- if (entity.SemiCheckDefects != null)
- {
- foreach (SemiCheckDefectEntity semiCheckDefect in entity.SemiCheckDefects)
- {
- #region 保存缺陷
- semiCheckDefect.SemiCheckID = Convert.ToInt32(idStr);
- semiCheckDefect.ScrapResponFlag
- = string.IsNullOrEmpty(semiCheckDefect.ScrapResponFlag) ? "0" : semiCheckDefect.ScrapResponFlag;
- // 保存缺陷
- errMsg = AddSemiCheckDefect(oracleTrConn, semiCheckDefect, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 是不合格 添加废弃责任工序
- if (entity.SemiCheckType == "2")
- {
- //if (semiCheckDefect.DefectProcedureID != null)
- {
- #region 添加责任工序
- ResponProcedureEntity responProce = new ResponProcedureEntity();
- // 获取生产线及生产数据ID
- sql = "select ProductionLineID,ProductionLineCode,ProductionLineName,ProductionDataID from TP_PM_InProduction where barcode=:barcode";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, oracleParameters);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- responProce.ProductionDataID = Convert.ToInt32(ds.Tables[0].Rows[0]["ProductionDataID"]);
- responProce.ProductionLineID = Convert.ToInt32(ds.Tables[0].Rows[0]["ProductionLineID"]);
- responProce.ProductionLineCode = ds.Tables[0].Rows[0]["ProductionLineCode"].ToString();
- responProce.ProductionLineName = ds.Tables[0].Rows[0]["ProductionLineName"].ToString();
- }
- //获取生产线及生产数据ID end
- #region 属性赋值
- responProce.BarCode = entity.BarCode;
- responProce.ProcedureID = semiCheckDefect.DefectProcedureID;
- responProce.ProcedureCode = semiCheckDefect.DefectProcedureCode;
- responProce.ProcedureName = semiCheckDefect.DefectProcedureName;
- responProce.UserID = semiCheckDefect.DefectUserID;
- responProce.UserCode = semiCheckDefect.DefectUserCode;
- responProce.UserName = semiCheckDefect.DefectUserName;
- responProce.Remarks = semiCheckDefect.Remarks;
- responProce.ScrapProductID = Convert.ToInt32(ResponProcedureidStr);
- #endregion
- // 保存责任工序
- errMsg = AddSemiCheckResponProcedure(oracleTrConn, responProce, semiCheckDefect, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- }
- #endregion
- }
- }
- #endregion
- #region 条码是不合格 删除在产产品数据
- if (entity.SemiCheckType == "2") //编辑时不合格
- {
- // 1.在产表产品设置产品等级【13不合格】,半检登记ID=记录的半检登记ID。
- sql = @"update TP_PM_InProduction set GoodsLevelID= (
- select GoodsLevelID from tp_mst_goodslevel where GoodsLevelTypeID=13 and accountid=:accountid
- ),GoodsLevelTypeID=13,SemiCheckID=:SemiCheckID,IsReworkFlag=0,
- updateuserid=:updateuserid
- where barcode=:barcode";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- //new OracleParameter(":GoodsLevelID",entity.GoodsLevelID),
- //new OracleParameter(":GoodsLevelTypeID",entity.GoodsLevelTypeID),
- new OracleParameter(":SemiCheckID",Convert.ToInt32(idStr)),
- new OracleParameter(":barcode",entity.BarCode),
- //new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 2.将在产数据保存到在产回收站表中(产品等级【13不合格】,半检登记ID=记录的半检登记ID)。
- string sqlInsert = @"insert into TP_PM_InProductionTrash
- (
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateUserID,
- UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- ProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid, SEMICHECKID
- )
- select
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- -- GoodsLevelID,
- --GoodsLevelTypeID,
- (
- select GoodsLevelID from tp_mst_goodslevel where GoodsLevelTypeID=13 and accountid=:accountid
- )
- ,13,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- :CreateUserID,
- :UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- FlowProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid,
- :SemiCheckID
- from TP_PM_InProduction
- where barcode=:barcode
- ";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":CreateUserID",sUserInfo.UserID),
- new OracleParameter(":UpdateUserID",sUserInfo.UserID),
- new OracleParameter(":SemiCheckID",entity.SemiCheckID),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- };
- result += oracleTrConn.ExecuteNonQuery(sqlInsert, oracleParameters);
- // 删除在产数据
- sql = "delete tp_pm_inproduction where barcode = :barcode";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- }
- else if (entity.SemiCheckType == "1") //返工
- {
- sql = @"update TP_PM_InProduction set IsReworkFlag=1,SemiCheckID=:SemiCheckID,updateuserid=:updateuserid
- where barcode=:barcode";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":SemiCheckID",Convert.ToInt32(idStr)),
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- }
- else if (entity.SemiCheckType == "0") //正常
- {
- sql = @"update TP_PM_InProduction set IsReworkFlag=0,SemiCheckID=null,updateuserid=:updateuserid
- where barcode=:barcode";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- }
- #endregion
- }
- else if (entity.SemiCheckEditType == 3) //编辑不合格
- {
- #region 校验条码有效性
- errMsg = CheckBarcodeByEditNoPass(oracleTrConn, barcode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 删除当前半检数据
- errMsg = SetSemiCheckDataValueFlag(oracleTrConn, entity, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- if (entity.SemiCheckType != "0") //正常
- {
- #region 添加半检数据
- entity.SemiCheckID = Convert.ToInt32(idStr);
- errMsg = AddSemiCheckDataTrash(oracleTrConn, entity, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #region 条码是不合格 删除在产产品数据
- OracleParameter[] spParameters = null;
- int spResult = 0;
- if (entity.SemiCheckType == "2") //编辑时不合格
- {
- #region 1.废弃产品表中对应的总单数据和明细数据valueflag='0'。
- string sqlString = "select max(sp.scrapproductid) scrapproductid\n" +
- " from TP_PM_ScrapProduct sp\n" +
- " where sp.barcode = :barcode\n" +
- " and sp.auditstatus = 1\n" +
- " and sp.valueflag = '1'\n" +
- " and sp.scraptype = '2'";
- spParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- string scrapproductid = oracleTrConn.GetSqlResultToStr(sqlString, spParameters);
- sqlString = @"update TP_PM_ScrapProduct set valueflag='0', updateuserid=:updateuserid, backouttime=sysdate where scrapproductid=:scrapproductid";
- spParameters = new OracleParameter[] {
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":scrapproductid",scrapproductid),
- };
- spResult = oracleTrConn.ExecuteNonQuery(sqlString, spParameters);
- sqlString = @"update TP_PM_ResponProcedure set valueflag='0', updateuserid=:updateuserid where scrapproductid=:scrapproductid";
- //oracleParameters = new OracleParameter[] {
- // new OracleParameter(":barcode",entity.BarCode),
- //};
- spResult += oracleTrConn.ExecuteNonQuery(sqlString, spParameters);
- //sql = @"update TP_PM_ScrapProduct set valueflag='0' where barcode=:barcode";
- //OracleParameter[] oracleParameters = new OracleParameter[] {
- // new OracleParameter(":barcode",entity.BarCode),
- //};
- //int result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- //sql = @"update TP_PM_ResponProcedure set valueflag='0' where barcode=:barcode";
- //oracleParameters = new OracleParameter[] {
- // new OracleParameter(":barcode",entity.BarCode),
- //};
- //result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- ////sql = @"update TP_PM_ScrapResponsible set valueflag='0' where barcode=:barcode";
- ////oracleParameters = new OracleParameter[] {
- //// new OracleParameter(":barcode",entity.BarCode),
- ////};
- ////result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- #endregion
- #region 2.修改在产回收站表中的数据(产品等级【13不合格】,半检登记ID=新记录的半检登记ID)。
- sql = @"update TP_PM_InProductionTrash set GoodsLevelID= (
- select GoodsLevelID from tp_mst_goodslevel where GoodsLevelTypeID=13 and accountid=:accountid
- ),GoodsLevelTypeID=13,SemiCheckID=:SemiCheckID where barcode=:barcode";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- //new OracleParameter(":GoodsLevelTypeID",entity.GoodsLevelTypeID),
- new OracleParameter(":SemiCheckID",entity.SemiCheckID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- #endregion
- #region 条码有缺陷
- #region 是次品 添加废弃产品
- string ResponProcedureidStr = "";
- if (entity.SemiCheckType == "2") //新建时不合格,直接报损
- {
- #region 添加废弃产品
- ScrapProductEntity scrapProduct = new ScrapProductEntity();
- #region 属性赋值
- scrapProduct.BarCode = entity.BarCode;
- scrapProduct.ScrapType = Constant.ScrapType.Substandard.GetHashCode();
- scrapProduct.ResponType = Constant.ScrapResponType.Procedure.GetHashCode();
- scrapProduct.ScrapDate = accountDate;
- scrapProduct.Rreason = Constant.SCRAPTYPE_NOPASS;
- scrapProduct.AuditStatus = Constant.AuditStatus.Agree.GetHashCode();
- scrapProduct.Auditor = sUserInfo.UserID;
- scrapProduct.AuditlDate = accountDate;
- scrapProduct.AccountDate = accountDate;
- sql = "select GoodsLevelID from tp_mst_goodslevel where GoodsLevelTypeID=13 and accountid=" + sUserInfo.AccountID;
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- scrapProduct.GoodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
- }
- scrapProduct.GoodsLevelTypeID = 13;
- //scrapProduct.GoodsLevelID = entity.GoodsLevelID;
- //scrapProduct.GoodsLevelTypeID = entity.GoodsLevelTypeID;
- scrapProduct.IsPublicBody = IsPubilcByBarCode(oracleTrConn, entity.BarCode);
- // 查询新插入的废弃ID
- string ResponProceduresql = "select SEQ_PM_ScrapProduct_ID.nextval from dual";
- ResponProcedureidStr = oracleTrConn.GetSqlResultToStr(ResponProceduresql);
- scrapProduct.ScrapProductID = Convert.ToInt32(ResponProcedureidStr);
- scrapProduct.ScrapType = 2;
- #endregion
- // 保存报废
- errMsg = AddScrapProduct(oracleTrConn, scrapProduct, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- // 存在缺陷 插入缺陷表
- if (entity.SemiCheckDefects != null)
- {
- foreach (SemiCheckDefectEntity semiCheckDefect in entity.SemiCheckDefects)
- {
- #region 保存缺陷
- semiCheckDefect.SemiCheckID = Convert.ToInt32(idStr);
- semiCheckDefect.ScrapResponFlag
- = string.IsNullOrEmpty(semiCheckDefect.ScrapResponFlag) ? "0" : semiCheckDefect.ScrapResponFlag;
- // 保存缺陷
- errMsg = AddSemiCheckDefect(oracleTrConn, semiCheckDefect, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- #region 是不合格 添加废弃责任工序
- if (entity.SemiCheckType == "2")
- {
- //if (semiCheckDefect.DefectProcedureID != null)
- {
- #region 添加责任工序
- ResponProcedureEntity responProce = new ResponProcedureEntity();
- // 取生产线及生产数据ID
- sql = "select ProductionLineID,ProductionLineCode,ProductionLineName,ProductionDataID from TP_PM_InProductionTrash where barcode=:barcode";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, oracleParameters);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- responProce.ProductionDataID = Convert.ToInt32(ds.Tables[0].Rows[0]["ProductionDataID"]);
- responProce.ProductionLineID = Convert.ToInt32(ds.Tables[0].Rows[0]["ProductionLineID"]);
- responProce.ProductionLineCode = ds.Tables[0].Rows[0]["ProductionLineCode"].ToString();
- responProce.ProductionLineName = ds.Tables[0].Rows[0]["ProductionLineName"].ToString();
- }
- //获取生产线及生产数据ID end
- #region 属性赋值
- responProce.BarCode = entity.BarCode;
- //responProce.ProductionDataID = semiCheckDefect.ProductionDataID;
- //responProce.ProductionLineID = semiCheckDefect.ProductionLineID;
- //responProce.ProductionLineCode = semiCheckDefect.ProductionLineCode;
- //responProce.ProductionLineName = semiCheckDefect.ProductionLineName;
- responProce.ProcedureID = semiCheckDefect.DefectProcedureID;
- responProce.ProcedureCode = semiCheckDefect.DefectProcedureCode;
- responProce.ProcedureName = semiCheckDefect.DefectProcedureName;
- responProce.UserID = semiCheckDefect.DefectUserID;
- responProce.UserCode = semiCheckDefect.DefectUserCode;
- responProce.UserName = semiCheckDefect.DefectUserName;
- responProce.Remarks = semiCheckDefect.Remarks;
- responProce.ScrapProductID = Convert.ToInt32(ResponProcedureidStr);
- #endregion
- // 保存责任工序
- errMsg = AddSemiCheckResponProcedure(oracleTrConn, responProce, semiCheckDefect, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- }
- #endregion
- }
- }
- #endregion
- }
- else if (entity.SemiCheckType == "1") //返工
- {
- #region 1.从在产回收站中把数据恢复到在产表中。
- string sqlInsert = @"insert into TP_PM_InProduction
- (
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateUserID,
- UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- ProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid,
- IsReworkFlag,
- SemiCheckID
- )
- select
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- null,
- null,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- :CreateUserID,
- :UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- FlowProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid,
- 1,
- :SemiCheckID
- from TP_PM_InProductionTrash
- where barcode=:barcode
- ";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":SemiCheckID",entity.SemiCheckID),
- new OracleParameter(":CreateUserID",sUserInfo.UserID),
- new OracleParameter(":UpdateUserID",sUserInfo.UserID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sqlInsert, oracleParameters);
- #endregion
- #region 2.废弃产品表中对应的总单数据和明细数据valueflag='0'。
- string sqlString = "select max(sp.scrapproductid) scrapproductid\n" +
- " from TP_PM_ScrapProduct sp\n" +
- " where sp.barcode = :barcode\n" +
- " and sp.auditstatus = 1\n" +
- " and sp.valueflag = '1'\n" +
- " and sp.scraptype = '2'";
- spParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- string scrapproductid = oracleTrConn.GetSqlResultToStr(sqlString, spParameters);
- sqlString = @"update TP_PM_ScrapProduct set valueflag='0', updateuserid=:updateuserid, backouttime=sysdate where scrapproductid=:scrapproductid";
- spParameters = new OracleParameter[] {
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":scrapproductid",scrapproductid),
- };
- spResult = oracleTrConn.ExecuteNonQuery(sqlString, spParameters);
- sqlString = @"update TP_PM_ResponProcedure set valueflag='0', updateuserid=:updateuserid where scrapproductid=:scrapproductid";
- //oracleParameters = new OracleParameter[] {
- // new OracleParameter(":barcode",entity.BarCode),
- //};
- spResult += oracleTrConn.ExecuteNonQuery(sqlString, spParameters);
- //sql = @"update TP_PM_ScrapProduct set valueflag='0' where barcode=:barcode";
- //oracleParameters = new OracleParameter[] {
- // new OracleParameter(":barcode",entity.BarCode),
- //};
- //result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- //sql = @"update TP_PM_ResponProcedure set valueflag='0' where barcode=:barcode";
- //oracleParameters = new OracleParameter[] {
- // new OracleParameter(":barcode",entity.BarCode),
- //};
- //result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- ////sql = @"update TP_PM_ScrapResponsible set valueflag='0' where barcode=:barcode";
- ////oracleParameters = new OracleParameter[] {
- //// new OracleParameter(":barcode",entity.BarCode),
- ////};
- ////result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- #endregion
- #region 3.删除在产产品数据
- sql = "delete from TP_PM_InProductionTrash where barcode=:barcode";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- #endregion
- #region 4.更新半检数据产品分级
- sql = "update TP_PM_SemiCheck set GoodsLevelID=null,GoodsLevelTypeID=null where SemiCheckID=:SemiCheckID";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":SemiCheckID",idStr),
- };
- result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- #endregion
- #region 存在缺陷 插入缺陷表
- if (entity.SemiCheckDefects != null)
- {
- foreach (SemiCheckDefectEntity semiCheckDefect in entity.SemiCheckDefects)
- {
- #region 保存缺陷
- semiCheckDefect.SemiCheckID = Convert.ToInt32(idStr);
- semiCheckDefect.ScrapResponFlag
- = string.IsNullOrEmpty(semiCheckDefect.ScrapResponFlag) ? "0" : semiCheckDefect.ScrapResponFlag;
- // 保存缺陷
- errMsg = AddSemiCheckDefect(oracleTrConn, semiCheckDefect, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- }
- #endregion
- }
- else if (entity.SemiCheckType == "0") //正常
- {
- #region 1.从在产回收站中把数据恢复到在产表中。
- string sqlInsert = @"insert into TP_PM_InProduction
- (
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateUserID,
- UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- ProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid,
- IsReworkFlag,
- SemiCheckID
- )
- select
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- null,
- null,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- :CreateUserID,
- :UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- FlowProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid,
- 0,
- null
- from TP_PM_InProductionTrash
- where barcode=:barcode
- ";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":CreateUserID",sUserInfo.UserID),
- new OracleParameter(":UpdateUserID",sUserInfo.UserID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sqlInsert, oracleParameters);
- #endregion
- #region 2.废弃产品表中对应的总单数据和明细数据valueflag='0'。
- string sqlString = "select max(sp.scrapproductid) scrapproductid\n" +
- " from TP_PM_ScrapProduct sp\n" +
- " where sp.barcode = :barcode\n" +
- " and sp.auditstatus = 1\n" +
- " and sp.valueflag = '1'\n" +
- " and sp.scraptype = '2'";
- spParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- string scrapproductid = oracleTrConn.GetSqlResultToStr(sqlString, spParameters);
- sqlString = @"update TP_PM_ScrapProduct set valueflag='0', updateuserid=:updateuserid, backouttime=sysdate where scrapproductid=:scrapproductid";
- spParameters = new OracleParameter[] {
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":scrapproductid",scrapproductid),
- };
- spResult = oracleTrConn.ExecuteNonQuery(sqlString, spParameters);
- sqlString = @"update TP_PM_ResponProcedure set valueflag='0', updateuserid=:updateuserid where scrapproductid=:scrapproductid";
- //oracleParameters = new OracleParameter[] {
- // new OracleParameter(":barcode",entity.BarCode),
- //};
- spResult += oracleTrConn.ExecuteNonQuery(sqlString, spParameters);
- //sql = @"update TP_PM_ScrapProduct set valueflag='0' where barcode=:barcode";
- //oracleParameters = new OracleParameter[] {
- // new OracleParameter(":barcode",entity.BarCode),
- //};
- //result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- //sql = @"update TP_PM_ResponProcedure set valueflag='0' where barcode=:barcode";
- //oracleParameters = new OracleParameter[] {
- // new OracleParameter(":barcode",entity.BarCode),
- //};
- //result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- ////sql = @"update TP_PM_ScrapResponsible set valueflag='0' where barcode=:barcode";
- ////oracleParameters = new OracleParameter[] {
- //// new OracleParameter(":barcode",entity.BarCode),
- ////};
- ////result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- #endregion
- #region 3.删除在产回收站产品数据
- sql = "delete from TP_PM_InProductionTrash where barcode=:barcode";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- #endregion
- }
- #endregion
- }
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 校验条码有效(新建)
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="barcode">条码</param>
- /// <param name="sUserInfo">登录用户信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 王鑫 2016.06.27 新建
- /// </remarks>
- private static string CheckBarcodeByNew(IDBTransaction oracleTrConn,
- string barcode,
- SUserInfo sUserInfo
- )
- {
- try
- {
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
- };
- // 重复登记的问题 for update
- string sql = @"
- select InScrapFlag,
- KilnCarID,
- KilnCarName,
- IsReworkFlag,
- SemiCheckID from TP_PM_InProduction where barcode=:barcode for update
- ";
- DataSet dsResult = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
- {
- if (dsResult.Tables[0].Rows[0]["InScrapFlag"].ToString() == "1")
- {
- return "条码[" + barcode + "]已经报损待审批";
- }
- if (!string.IsNullOrEmpty(dsResult.Tables[0].Rows[0]["KilnCarID"].ToString()))
- {
- return "条码[" + barcode + "]已经在窑车[" + dsResult.Tables[0].Rows[0]["KilnCarName"].ToString() + "]"; ;
- }
- // chenxy 2019-10-02 半检返修 IsReworkFlag=2
- if (dsResult.Tables[0].Rows[0]["IsReworkFlag"].ToString() == "1")
- {
- return "条码[" + barcode + "]已经半检返工中";
- }
- if (dsResult.Tables[0].Rows[0]["IsReworkFlag"].ToString() == "2")
- {
- return "条码[" + barcode + "]已经半检返修中";
- }
- }
- else
- {
- return "条码[" + barcode + "]不在在产流程";
- }
- return null;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 校验条码有效(编辑返工)
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="barcode">条码</param>
- /// <param name="sUserInfo">登录用户信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 王鑫 2016.06.27 新建
- /// </remarks>
- private static string CheckBarcodeByEditRework(IDBTransaction oracleTrConn,
- string barcode,
- SUserInfo sUserInfo
- )
- {
- try
- {
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
- };
- // 重复登记的问题 for update
- string sql = @"
- select InScrapFlag,
- KilnCarID,
- KilnCarName,
- IsReworkFlag,
- SemiCheckID from TP_PM_InProduction where barcode=:barcode for update
- ";
- DataSet dsResult = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
- {
- if (dsResult.Tables[0].Rows[0]["InScrapFlag"].ToString() == "1")
- {
- return "条码[" + barcode + "]已经报损待审批";
- }
- if (!string.IsNullOrEmpty(dsResult.Tables[0].Rows[0]["KilnCarID"].ToString()))
- {
- return "条码[" + barcode + "]已经在窑车[" + dsResult.Tables[0].Rows[0]["KilnCarName"].ToString() + "]"; ;
- }
- // chenxy 2019-10-02 半检返修 IsReworkFlag=2
- if (dsResult.Tables[0].Rows[0]["IsReworkFlag"].ToString() != "1")
- {
- return "条码[" + barcode + "]不在返工中";
- }
- }
- else
- {
- return "条码[" + barcode + "]不在在产流程";
- }
- return null;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 校验条码有效(编辑不合格)
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="barcode">条码</param>
- /// <param name="sUserInfo">登录用户信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 王鑫 2016.06.27 新建
- /// </remarks>
- private static string CheckBarcodeByEditNoPass(IDBTransaction oracleTrConn,
- string barcode,
- SUserInfo sUserInfo
- )
- {
- try
- {
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
- };
- // 重复登记的问题 for update
- string sql = @" select 1 from TP_PM_InProductionTrash where barcode=:barcode and GoodsLevelTypeID=13 for update";
- DataSet dsResult = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsResult != null && dsResult.Tables[0].Rows.Count == 0)
- {
- return "条码[" + barcode + "]不在在产回收站中";
- }
- return null;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 添加半成品检验数据
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="productionData">生产数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddSemiCheckData(IDBTransaction oracleTrConn, SemiCheckEntity entity, SUserInfo sUserInfo)
- {
- #region SQL
- string sql = "insert into tp_pm_semicheck"
- + " (semicheckid,"
- + " barcode,"
- + " productionlineid,"
- + " procedureid,"
- + " proceduretime,"
- + " proceduremodel,"
- + " modeltype,"
- + " organizationid,"
- + " goodsid,"
- + " goodscode,"
- + " userid,"
- + " usercode,"
- + " productiondataid,"
- + " logoid,"
- + " ispublicbody,"
- + " specialrepairflag,"
- + " goodslevelid,"
- + " goodsleveltypeid,"
- + " groutingdailyid,"
- + " groutingdailydetailid,"
- + " groutinglineid,"
- + " groutinglinecode,"
- + " groutinglinename,"
- + " gmouldtypeid,"
- + " canmanytimes,"
- + " groutinglinedetailid,"
- + " groutingdate,"
- + " groutingmouldcode,"
- + " mouldcode,"
- + " groutinguserid,"
- + " groutingusercode,"
- + " groutingnum,"
- + " semichecktype,"
- + " semicheckuserID,"
- + " semicheckusercode,"
- + " semichecktime,"
- + " remarks,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid,"
- + " reworkprocedureid,"
- + " reworkprocedurecode,"
- + " reworkuserid,"
- + " reworkusercode"
- + ")"
- + " select"
- + " :semicheckid,"
- + " TP_PM_InProduction.barcode,"
- + " TP_PM_InProduction.productionlineid,"
- + " TP_PM_InProduction.procedureid,"
- + " TP_PM_InProduction.proceduretime,"
- + " TP_PM_InProduction.proceduremodel,"
- + " TP_PM_InProduction.modeltype,"
- + " tp_pc_procedure.organizationid,"
- + " TP_PM_InProduction.goodsid,"
- + " TP_PM_InProduction.goodscode,"
- + " TP_PM_InProduction.userid,"
- + " tp_mst_user.usercode,"
- + " TP_PM_InProduction.productiondataid,"
- + " TP_PM_InProduction.logoid,"
- + " TP_PM_InProduction.ispublicbody,"
- + " TP_PM_InProduction.specialrepairflag,"
- + " TP_PM_InProduction.goodslevelid,"
- + " TP_PM_InProduction.goodsleveltypeid,"
- + " TP_PM_InProduction.groutingdailyid,"
- + " TP_PM_InProduction.groutingdailydetailid,"
- + " TP_PM_InProduction.groutinglineid,"
- + " TP_PM_InProduction.groutinglinecode,"
- + " TP_PM_InProduction.groutinglinename,"
- + " TP_PM_InProduction.gmouldtypeid,"
- + " TP_PM_InProduction.canmanytimes,"
- + " TP_PM_InProduction.groutinglinedetailid,"
- + " TP_PM_InProduction.groutingdate,"
- + " TP_PM_InProduction.groutingmouldcode,"
- + " TP_PM_InProduction.mouldcode,"
- + " TP_PM_InProduction.groutinguserid,"
- + " TP_PM_InProduction.groutingusercode,"
- + " TP_PM_InProduction.groutingnum,"
- + " :semichecktype,"
- + " :semicheckuserID,"
- + " :semicheckusercode,"
- + " sysdate,"
- + " :remarks,"
- + " :accountid,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :reworkprocedureid,"
- + " :reworkprocedurecode,"
- + " :reworkuserid,"
- + " :reworkusercode"
- + " from TP_PM_InProduction left join tp_mst_user on TP_PM_InProduction.UserID=tp_mst_user.userid "
- + " left join tp_pc_procedure on TP_PM_InProduction.ProcedureID=tp_pc_procedure.ProcedureID "
- + " where TP_PM_InProduction.barcode=:barcode";
- #endregion
- #region OracleParameter
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":semicheckid",entity.SemiCheckID),
- new OracleParameter(":semichecktype",entity.SemiCheckType),
- new OracleParameter(":semicheckuserID",entity.SemiCheckUserID),
- new OracleParameter(":semicheckusercode",entity.SemiCheckUserCode),
- new OracleParameter(":remarks",entity.Remarks),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":reworkprocedureid",entity.ReworkProcedureID),
- new OracleParameter(":reworkprocedurecode",entity.ReworkProcedureCode),
- new OracleParameter(":reworkuserid",entity.ReworkUserID),
- new OracleParameter(":reworkusercode",entity.ReworkUserCode),
- };
- #endregion
- foreach (OracleParameter para in paras)
- {
- if (string.IsNullOrEmpty(para.Value + ""))
- {
- para.Value = DBNull.Value;
- }
- }
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 成功返回null
- return null;
- }
- /// <summary>
- /// 添加半成品检验数据(不合格)
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="productionData">生产数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddSemiCheckDataNoPass(IDBTransaction oracleTrConn, SemiCheckEntity entity, SUserInfo sUserInfo)
- {
- #region SQL
- string sql = "insert into tp_pm_semicheck"
- + " (semicheckid,"
- + " barcode,"
- + " productionlineid,"
- + " procedureid,"
- + " proceduretime,"
- + " proceduremodel,"
- + " modeltype,"
- + " organizationid,"
- + " goodsid,"
- + " goodscode,"
- + " userid,"
- + " usercode,"
- + " productiondataid,"
- + " logoid,"
- + " ispublicbody,"
- + " specialrepairflag,"
- + " goodslevelid,"
- + " goodsleveltypeid,"
- + " groutingdailyid,"
- + " groutingdailydetailid,"
- + " groutinglineid,"
- + " groutinglinecode,"
- + " groutinglinename,"
- + " gmouldtypeid,"
- + " canmanytimes,"
- + " groutinglinedetailid,"
- + " groutingdate,"
- + " groutingmouldcode,"
- + " mouldcode,"
- + " groutinguserid,"
- + " groutingusercode,"
- + " groutingnum,"
- + " semichecktype,"
- + " semicheckuserID,"
- + " semicheckusercode,"
- + " semichecktime,"
- + " remarks,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid,"
- + " reworkprocedureid,"
- + " reworkprocedurecode,"
- + " reworkuserid,"
- + " reworkusercode"
- + ")"
- + " select"
- + " :semicheckid,"
- + " TP_PM_InProduction.barcode,"
- + " TP_PM_InProduction.productionlineid,"
- + " TP_PM_InProduction.procedureid,"
- + " TP_PM_InProduction.proceduretime,"
- + " TP_PM_InProduction.proceduremodel,"
- + " TP_PM_InProduction.modeltype,"
- + " tp_pc_procedure.organizationid,"
- + " TP_PM_InProduction.goodsid,"
- + " TP_PM_InProduction.goodscode,"
- + " TP_PM_InProduction.userid,"
- + " tp_mst_user.usercode,"
- + " TP_PM_InProduction.productiondataid,"
- + " TP_PM_InProduction.logoid,"
- + " TP_PM_InProduction.ispublicbody,"
- + " TP_PM_InProduction.specialrepairflag,"
- + " (select GoodsLevelID from tp_mst_goodslevel where GoodsLevelTypeID=13 and accountid=:accountid),"
- + " 13,"
- + " TP_PM_InProduction.groutingdailyid,"
- + " TP_PM_InProduction.groutingdailydetailid,"
- + " TP_PM_InProduction.groutinglineid,"
- + " TP_PM_InProduction.groutinglinecode,"
- + " TP_PM_InProduction.groutinglinename,"
- + " TP_PM_InProduction.gmouldtypeid,"
- + " TP_PM_InProduction.canmanytimes,"
- + " TP_PM_InProduction.groutinglinedetailid,"
- + " TP_PM_InProduction.groutingdate,"
- + " TP_PM_InProduction.groutingmouldcode,"
- + " TP_PM_InProduction.mouldcode,"
- + " TP_PM_InProduction.groutinguserid,"
- + " TP_PM_InProduction.groutingusercode,"
- + " TP_PM_InProduction.groutingnum,"
- + " :semichecktype,"
- + " :semicheckuserID,"
- + " :semicheckusercode,"
- + " sysdate,"
- + " :remarks,"
- + " :accountid,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :reworkprocedureid,"
- + " :reworkprocedurecode,"
- + " :reworkuserid,"
- + " :reworkusercode"
- + " from TP_PM_InProduction left join tp_mst_user on TP_PM_InProduction.UserID=tp_mst_user.userid "
- + " left join tp_pc_procedure on TP_PM_InProduction.ProcedureID=tp_pc_procedure.ProcedureID "
- + " where TP_PM_InProduction.barcode=:barcode";
- #endregion
- #region OracleParameter
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":semicheckid",entity.SemiCheckID),
- new OracleParameter(":semichecktype",entity.SemiCheckType),
- new OracleParameter(":semicheckuserID",entity.SemiCheckUserID),
- new OracleParameter(":semicheckusercode",entity.SemiCheckUserCode),
- new OracleParameter(":remarks",entity.Remarks),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":reworkprocedureid",entity.ReworkProcedureID),
- new OracleParameter(":reworkprocedurecode",entity.ReworkProcedureCode),
- new OracleParameter(":reworkuserid",entity.ReworkUserID),
- new OracleParameter(":reworkusercode",entity.ReworkUserCode),
- };
- #endregion
- foreach (OracleParameter para in paras)
- {
- if (string.IsNullOrEmpty(para.Value + ""))
- {
- para.Value = DBNull.Value;
- }
- }
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 成功返回null
- return null;
- }
- /// <summary>
- /// 添加半成品检验数据
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="productionData">生产数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string AddSemiCheckDataTrash(IDBTransaction oracleTrConn, SemiCheckEntity entity, SUserInfo sUserInfo)
- {
- #region SQL
- string sql = "insert into tp_pm_semicheck"
- + " (semicheckid,"
- + " barcode,"
- + " productionlineid,"
- + " procedureid,"
- + " proceduretime,"
- + " proceduremodel,"
- + " modeltype,"
- + " organizationid,"
- + " goodsid,"
- + " goodscode,"
- + " userid,"
- + " usercode,"
- + " productiondataid,"
- + " logoid,"
- + " ispublicbody,"
- + " specialrepairflag,"
- + " goodslevelid,"
- + " goodsleveltypeid,"
- + " groutingdailyid,"
- + " groutingdailydetailid,"
- + " groutinglineid,"
- + " groutinglinecode,"
- + " groutinglinename,"
- + " gmouldtypeid,"
- + " canmanytimes,"
- + " groutinglinedetailid,"
- + " groutingdate,"
- + " groutingmouldcode,"
- + " mouldcode,"
- + " groutinguserid,"
- + " groutingusercode,"
- + " groutingnum,"
- + " semichecktype,"
- + " semicheckuserID,"
- + " semicheckusercode,"
- + " semichecktime,"
- + " remarks,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid,"
- + " reworkprocedureid,"
- + " reworkprocedurecode,"
- + " reworkuserid,"
- + " reworkusercode"
- + ")"
- + " select"
- + " :semicheckid,"
- + " trash.barcode,"
- + " trash.productionlineid,"
- + " trash.procedureid,"
- + " trash.proceduretime,"
- + " trash.proceduremodel,"
- + " trash.modeltype,"
- + " tp_pc_procedure.organizationid,"
- + " trash.goodsid,"
- + " trash.goodscode,"
- + " trash.userid,"
- + " tp_mst_user.usercode,"
- + " trash.productiondataid,"
- + " trash.logoid,"
- + " trash.ispublicbody,"
- + " trash.specialrepairflag,"
- + " trash.goodslevelid,"
- + " trash.goodsleveltypeid,"
- + " trash.groutingdailyid,"
- + " trash.groutingdailydetailid,"
- + " trash.groutinglineid,"
- + " trash.groutinglinecode,"
- + " trash.groutinglinename,"
- + " trash.gmouldtypeid,"
- + " trash.canmanytimes,"
- + " trash.groutinglinedetailid,"
- + " trash.groutingdate,"
- + " trash.groutingmouldcode,"
- + " trash.mouldcode,"
- + " trash.groutinguserid,"
- + " trash.groutingusercode,"
- + " trash.groutingnum,"
- + " :semichecktype,"
- + " :semicheckuserID,"
- + " :semicheckusercode,"
- + " sysdate,"
- + " :remarks,"
- + " :accountid,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :reworkprocedureid,"
- + " :reworkprocedurecode,"
- + " :reworkuserid,"
- + " :reworkusercode"
- + " from TP_PM_InProductionTrash trash left join tp_mst_user on trash.UserID=tp_mst_user.userid "
- + " left join tp_pc_procedure on trash.ProcedureID=tp_pc_procedure.ProcedureID "
- + " where trash.barcode=:barcode";
- #endregion
- #region OracleParameter
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":semicheckid",entity.SemiCheckID),
- new OracleParameter(":semichecktype",entity.SemiCheckType),
- new OracleParameter(":semicheckuserID",entity.SemiCheckUserID),
- new OracleParameter(":semicheckusercode",entity.SemiCheckUserCode),
- new OracleParameter(":remarks",entity.Remarks),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":reworkprocedureid",entity.ReworkProcedureID),
- new OracleParameter(":reworkprocedurecode",entity.ReworkProcedureCode),
- new OracleParameter(":reworkuserid",entity.ReworkUserID),
- new OracleParameter(":reworkusercode",entity.ReworkUserCode),
- };
- #endregion
- foreach (OracleParameter para in paras)
- {
- if (string.IsNullOrEmpty(para.Value + ""))
- {
- para.Value = DBNull.Value;
- }
- }
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- // 失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 成功返回null
- return null;
- }
- /// <summary>
- /// 添加半成品检验数据
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="accountDate">账务日期</param>
- /// <param name="productionData">生产数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 陈冰 2014.09.18 新建
- /// </remarks>
- private static string SetSemiCheckDataValueFlag(IDBTransaction oracleTrConn, SemiCheckEntity entity, SUserInfo sUserInfo)
- {
- #region SQL
- string sql = @"update TP_PM_SemiCheck
- set BackOutUserID=:BackOutUserID,
- BackOutUserCode=:BackOutUserCode,
- BackOutFlag=1,
- BackOutTime=sysdate,
- ValueFlag='0',
- updateuserid=:updateuserid
- where semicheckid=:semicheckid";
- #region OracleParameter
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":semicheckid",entity.SemiCheckID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":BackOutUserID",sUserInfo.UserID),
- new OracleParameter(":BackOutUserCode",sUserInfo.UserCode),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, paras);
- string sql2 = @"update TP_PM_SemiCheckDefect
- set
- ValueFlag='0',
- updateuserid=:updateuserid
- where semicheckid=:semicheckid";
- string sql3 = @"update TP_PM_SCDefectResponsible
- set
- ValueFlag='0',
- updateuserid=:updateuserid
- where semicheckid=:semicheckid";
- #endregion
- #region OracleParameter
- paras = new OracleParameter[] {
- new OracleParameter(":semicheckid",entity.SemiCheckID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- #endregion
- foreach (OracleParameter para in paras)
- {
- if (string.IsNullOrEmpty(para.Value + ""))
- {
- para.Value = DBNull.Value;
- }
- }
- result += oracleTrConn.ExecuteNonQuery(sql2, paras);
- result += oracleTrConn.ExecuteNonQuery(sql3, paras);
- // 失败
- if (result == Constant.INT_IS_ZERO)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- // 成功返回null
- return null;
- }
- /// <summary>
- /// 保存半检缺陷
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="productionDefect">缺陷数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddSemiCheckDefect(IDBTransaction oracleTrConn, SemiCheckDefectEntity semiCheckDefect, SUserInfo sUserInfo)
- {
- // 查询新插入的半检缺陷ID
- string sql = "select SEQ_PM_SemiCheckDefect_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- int semiCheckDefectID = 0;
- if (!string.IsNullOrEmpty(idStr))
- {
- semiCheckDefectID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #region SQL
- sql = "insert into TP_PM_SemiCheckDefect"
- + " (semicheckdefectid,"
- + " semicheckid,"
- + " defectid,"
- + " defectcode,"
- + " defectname,"
- + " defectpositionid,"
- + " defectpositioncode,"
- + " defectpositionname,"
- + " scrapResponFlag,"
- + " defectproductiondataid,"
- + " defectprocedureid,"
- + " defectuserid,"
- + " defectusercode,"
- + " remarks,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid)"
- + " values"
- + " ("
- + " :semicheckdefectid,"
- + " :semicheckid,"
- + " :defectid,"
- + " :defectcode,"
- + " :defectname,"
- + " :defectpositionid,"
- + " :defectpositioncode,"
- + " :defectpositionname,"
- + " :scrapResponFlag,"
- + " :defectproductiondataid,"
- + " :defectprocedureid,"
- + " :defectuserid,"
- + " :defectusercode,"
- + " :remarks,"
- + " :accountid,"
- + " :createuserid,"
- + " :updateuserid)";
- #endregion
- #region 参数
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":semicheckdefectid",semiCheckDefectID),
- new OracleParameter(":semicheckid",semiCheckDefect.SemiCheckID),
- new OracleParameter(":defectid",semiCheckDefect.DefectID),
- new OracleParameter(":defectcode",semiCheckDefect.DefectCode),
- new OracleParameter(":defectname",semiCheckDefect.DefectName),
- new OracleParameter(":defectpositionid",semiCheckDefect.DefectPositionID),
- new OracleParameter(":defectpositioncode",semiCheckDefect.DefectPositionCode),
- new OracleParameter(":defectpositionname",semiCheckDefect.DefectPositionName),
- new OracleParameter(":scrapResponFlag",semiCheckDefect.ScrapResponFlag),
- new OracleParameter(":defectproductiondataid",semiCheckDefect.DefectProductionDataID),
- new OracleParameter(":defectprocedureid",semiCheckDefect.DefectProcedureID),
- new OracleParameter(":defectuserid",semiCheckDefect.DefectUserID),
- new OracleParameter(":defectusercode",semiCheckDefect.DefectUserCode),
- new OracleParameter(":remarks",semiCheckDefect.Remarks),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- #endregion
- int result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #region 插入生产缺陷责任者
- if (semiCheckDefect.DefectResponsibles != null)
- {
- foreach (SemiCheckResponsibleEntity DefectResponsible in semiCheckDefect.DefectResponsibles)
- {
- #region SQL
- sql = "insert into TP_PM_SCDefectResponsible"
- + " (semicheckdefectid,"
- + " staffid,"
- + " semicheckid,"
- + " userid,"
- + " usercode,"
- + " Ujobsid,"
- + " SJobsID,"
- + " staffstatus,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid)"
- + " values"
- + " (:semicheckdefectid,"
- + " :staffid,"
- + " :semicheckid,"
- + " :userid,"
- + " :usercode,"
- + " :ujobsid,"
- + " :sjobsid,"
- + " :staffstatus,"
- + " :accountid,"
- + " :createuserid,"
- + " :updateuserid)";
- #endregion
- #region 参数
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":semicheckdefectid",semiCheckDefectID),
- new OracleParameter(":staffid",DefectResponsible.StaffID),
- new OracleParameter(":semicheckid",semiCheckDefect.SemiCheckID),
- new OracleParameter(":userid",DefectResponsible.UserID),
- new OracleParameter(":usercode",DefectResponsible.UserCode),
- new OracleParameter(":ujobsid",DefectResponsible.UJobsID),
- new OracleParameter(":sjobsid",DefectResponsible.SJobsID),
- new OracleParameter(":staffstatus",DefectResponsible.StaffStatus),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- #endregion
- result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- }
- }
- #endregion
- return null;
- }
- /// <summary>
- /// 添加责任工序
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="responProce">责任工序</param>
- /// <param name="productionDefect">缺陷数据</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- private static string AddSemiCheckResponProcedure(IDBTransaction oracleTrConn, ResponProcedureEntity responProce, SemiCheckDefectEntity productionDefect, SUserInfo sUserInfo)
- {
- OracleParameter[] oracleParameters = null;
- string sql = null;
- int result = 0;
- // 查询新插入ID
- if (responProce.ProcedureID != null)
- {
- sql = "select SEQ_PM_ResponProcedure_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- if (!string.IsNullOrEmpty(idStr))
- {
- responProce.ResponProcedureID = int.Parse(idStr);
- }
- else
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #region SQL
- sql = "insert into tp_pm_responprocedure"
- + " (ResponProcedureID,"
- + " scrapproductid,"
- + " barcode,"
- + " productiondataid,"
- + " productionlineid,"
- + " productionlinecode,"
- + " productionlinename,"
- + " procedureid,"
- + " procedurecode,"
- + " procedurename,"
- + " userid,"
- + " usercode,"
- + " username,"
- + " remarks,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid)"
- + " values"
- + " ("
- + " :ResponProcedureID,"
- + " :scrapproductid,"
- + " :barcode,"
- + " :productiondataid,"
- + " :productionlineid,"
- + " :productionlinecode,"
- + " :productionlinename,"
- + " :procedureid,"
- + " :procedurecode,"
- + " :procedurename,"
- + " :userid,"
- + " :usercode,"
- + " :username,"
- + " :remarks,"
- + " :accountid,"
- + " :createuserid,"
- + " :updateuserid)";
- #endregion
- #region 参数
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":ResponProcedureID",responProce.ResponProcedureID),
- new OracleParameter(":scrapproductid",responProce.ScrapProductID),
- new OracleParameter(":barcode",responProce.BarCode),
- new OracleParameter(":productiondataid",responProce.ProductionDataID),
- new OracleParameter(":productionlineid",responProce.ProductionLineID),
- new OracleParameter(":productionlinecode",responProce.ProductionLineCode),
- new OracleParameter(":productionlinename",responProce.ProductionLineName),
- new OracleParameter(":procedureid",responProce.ProcedureID),
- new OracleParameter(":procedurecode",responProce.ProcedureCode),
- new OracleParameter(":procedurename",responProce.ProcedureName),
- new OracleParameter(":userid",responProce.UserID),
- new OracleParameter(":usercode",responProce.UserCode),
- new OracleParameter(":username",responProce.UserName),
- new OracleParameter(":remarks",responProce.Remarks),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- #endregion
- result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- //// 查询新插入ID
- //sql = "select SEQ_PM_ResponProcedure_ID.Currval from dual";
- //string idStr = oracleTrConn.GetSqlResultToStr(sql);
- //if (!string.IsNullOrEmpty(idStr))
- //{
- // responProce.ResponProcedureID = int.Parse(idStr);
- //}
- //else
- //{
- // return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- //}
- }
- #region 插入责任人
- foreach (SemiCheckResponsibleEntity defectResponsible in productionDefect.DefectResponsibles)
- {
- #region SQL
- sql = "insert into tp_pm_scrapresponsible"
- + " (barcode,"
- + " scrapproductid,"
- + " staffid,"
- + " userid,"
- + " usercode,"
- + " ujobsid,"
- + " sjobsid,"
- + " staffstatus,"
- + " accountid,"
- + " createuserid,"
- + " updateuserid,"
- + " responprocedureid,"
- + " respontype)"
- + " values"
- + " (:barcode,"
- + " :scrapproductid,"
- + " :staffid,"
- + " :userid,"
- + " :usercode,"
- + " :ujobsid,"
- + " :sjobsid,"
- + " :staffstatus,"
- + " :accountid,"
- + " :createuserid,"
- + " :updateuserid,"
- + " :responprocedureid,"
- + " :respontype)";
- #endregion
- #region 参数
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":scrapproductid",responProce.ScrapProductID),
- new OracleParameter(":barcode",responProce.BarCode),
- new OracleParameter(":staffid",defectResponsible.StaffID),
- new OracleParameter(":userid",defectResponsible.UserID),
- new OracleParameter(":usercode",defectResponsible.UserCode),
- new OracleParameter(":ujobsid",defectResponsible.UJobsID),
- new OracleParameter(":sjobsid",defectResponsible.SJobsID),
- new OracleParameter(":staffstatus",defectResponsible.StaffStatus),
- new OracleParameter(":accountid",sUserInfo.AccountID),
- new OracleParameter(":createuserid",sUserInfo.UserID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":responprocedureid",responProce.ResponProcedureID),
- new OracleParameter(":respontype", (responProce.ResponProcedureID == null? (int)Constant.ScrapResponType.Person:(int)Constant.ScrapResponType.Procedure)),
- };
- #endregion
- result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- }
- #endregion
- return null;
- }
- #region 复检
- /// <summary>
- /// 复检数据
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="entity">半检实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 王鑫 2016.06.28 新建
- /// </remarks>
- private static string AddReSemiCheck(IDBTransaction oracleTrConn,
- SemiCheckEntity entity,
- SUserInfo sUserInfo)
- {
- try
- {
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = string.Empty;
- #region 校验条码有效性
- errMsg = CheckBarcodeByEditRework(oracleTrConn, entity.BarCode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- //------------------------------
- #region 条码是不合格 删除在产产品数据
- if (entity.ReSemiCheckType == "2") //编辑时不合格
- {
- #region 修改半检登记的复检状态=2不合格(返)、复检工号=当前工号、复检时间=sysdate。
- string sqlUpdate = @"update TP_PM_SemiCheck set ReSemiCheckType='2' ,ReSemiCheckUserID=:ReSemiCheckUserID,
- ReSemiCheckUserCode=:ReSemiCheckUserCode,ReSemiCheckTime=sysdate,updateuserid=:updateuserid where SemiCheckID=:SemiCheckID";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":ReSemiCheckUserID",sUserInfo.UserID),
- new OracleParameter(":ReSemiCheckUserCode",sUserInfo.UserCode),
- new OracleParameter(":SemiCheckID",entity.SemiCheckID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sqlUpdate, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- errMsg = string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #endregion
- #region 条码有缺陷
- #region 是次品 添加废弃产品
- string ResponProcedureidStr = "";
- if (entity.ReSemiCheckType == "2") //新建时不合格,直接报损
- {
- #region 添加废弃产品
- ScrapProductEntity scrapProduct = new ScrapProductEntity();
- #region 属性赋值
- scrapProduct.BarCode = entity.BarCode;
- scrapProduct.ScrapType = Constant.ScrapType.Substandard.GetHashCode();
- scrapProduct.ResponType = Constant.ScrapResponType.Procedure.GetHashCode();
- scrapProduct.ScrapDate = accountDate;
- scrapProduct.Rreason = Constant.SCRAPTYPE_NOPASSREWORK;
- scrapProduct.AuditStatus = Constant.AuditStatus.Agree.GetHashCode();
- scrapProduct.Auditor = sUserInfo.UserID;
- scrapProduct.AuditlDate = accountDate;
- scrapProduct.AccountDate = accountDate;
- sqlUpdate = "select GoodsLevelID from tp_mst_goodslevel where GoodsLevelTypeID=14 and accountid=" + sUserInfo.AccountID;
- DataSet ds = oracleTrConn.GetSqlResultToDs(sqlUpdate);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- scrapProduct.GoodsLevelID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelID"]);
- }
- scrapProduct.GoodsLevelTypeID = 14;
- //scrapProduct.GoodsLevelID = entity.GoodsLevelID;
- //scrapProduct.GoodsLevelTypeID = entity.GoodsLevelTypeID;
- scrapProduct.IsPublicBody = IsPubilcByBarCode(oracleTrConn, entity.BarCode);
- // 查询新插入的废弃ID
- string ResponProceduresql = "select SEQ_PM_ScrapProduct_ID.nextval from dual";
- ResponProcedureidStr = oracleTrConn.GetSqlResultToStr(ResponProceduresql);
- scrapProduct.ScrapProductID = Convert.ToInt32(ResponProcedureidStr);
- scrapProduct.ScrapType = 3;
- #endregion
- // 保存报废
- errMsg = AddScrapProduct(oracleTrConn, scrapProduct, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- #endregion
- // 存在缺陷 插入缺陷表
- if (entity.SemiCheckDefects != null)
- {
- foreach (SemiCheckDefectEntity semiCheckDefect in entity.SemiCheckDefects)
- {
- #region 保存缺陷
- //semiCheckDefect.SemiCheckID = Convert.ToInt32(semiCheckDefect.SemiCheckID);
- //semiCheckDefect.ScrapResponFlag
- // = string.IsNullOrEmpty(semiCheckDefect.ScrapResponFlag) ? "0" : semiCheckDefect.ScrapResponFlag;
- //// 保存缺陷
- //errMsg = AddSemiCheckDefect(oracleTrConn, semiCheckDefect, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- #endregion
- #region 是不合格 添加废弃责任工序
- if (entity.ReSemiCheckType == "2")
- {
- //if (semiCheckDefect.DefectProcedureID != null)
- {
- #region 添加责任工序
- ResponProcedureEntity responProce = new ResponProcedureEntity();
- #region 属性赋值
- responProce.BarCode = entity.BarCode;
- // 新建-不合格 获取生产线及生产数据ID
- sqlUpdate = "select ProductionLineID,ProductionLineCode,ProductionLineName,ProductionDataID from TP_PM_InProduction where barcode=:barcode";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sqlUpdate, oracleParameters);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- responProce.ProductionDataID = Convert.ToInt32(ds.Tables[0].Rows[0]["ProductionDataID"]);
- responProce.ProductionLineID = Convert.ToInt32(ds.Tables[0].Rows[0]["ProductionLineID"]);
- responProce.ProductionLineCode = ds.Tables[0].Rows[0]["ProductionLineCode"].ToString();
- responProce.ProductionLineName = ds.Tables[0].Rows[0]["ProductionLineName"].ToString();
- }
- //responProce.ProductionDataID = semiCheckDefect.ProductionDataID;
- //responProce.ProductionLineID = semiCheckDefect.ProductionLineID;
- //responProce.ProductionLineCode = semiCheckDefect.ProductionLineCode;
- //responProce.ProductionLineName = semiCheckDefect.ProductionLineName;
- responProce.ProcedureID = semiCheckDefect.DefectProcedureID;
- responProce.ProcedureCode = semiCheckDefect.DefectProcedureCode;
- responProce.ProcedureName = semiCheckDefect.DefectProcedureName;
- responProce.UserID = semiCheckDefect.DefectUserID;
- responProce.UserCode = semiCheckDefect.DefectUserCode;
- responProce.UserName = semiCheckDefect.DefectUserName;
- responProce.Remarks = semiCheckDefect.Remarks;
- responProce.ScrapProductID = Convert.ToInt32(ResponProcedureidStr);
- #endregion
- // 保存责任工序
- errMsg = AddSemiCheckResponProcedure(oracleTrConn, responProce, semiCheckDefect, sUserInfo);
- // 保存失败
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- }
- }
- #endregion
- }
- }
- #endregion
- // 1.在产表产品设置产品等级【14不合格返】。
- string sql = @"update TP_PM_InProduction set GoodsLevelID=
- (
- select GoodsLevelID from tp_mst_goodslevel where GoodsLevelTypeID=14 and accountid=:accountid
- ),GoodsLevelTypeID=14,updateuserid=:updateuserid
- where barcode=:barcode";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":accountid", sUserInfo.AccountID),
- // new OracleParameter(":updateuserid",scrapProduct.GoodsLevelTypeID),
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- // 2.将在产数据保存到在产回收站表中(产品等级【14不合格返】)。
- string sqlInsert = @"insert into TP_PM_InProductionTrash
- (
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateUserID,
- UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- ProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid,
- SemiCheckID
- )
- select
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- --GoodsLevelID,
- --GoodsLevelTypeID,
- (
- select GoodsLevelID from tp_mst_goodslevel where GoodsLevelTypeID=14 and accountid=:accountid
- ),14,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- :CreateUserID,
- :UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- FlowProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid,
- SemiCheckID
- from TP_PM_InProduction
- where barcode=:barcode
- ";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":CreateUserID",sUserInfo.UserID),
- new OracleParameter(":UpdateUserID",sUserInfo.UserID),
- new OracleParameter(":accountid", sUserInfo.AccountID),
- };
- result += oracleTrConn.ExecuteNonQuery(sqlInsert, oracleParameters);
- // 删除在产数据
- sql = "delete tp_pm_inproduction where barcode = :barcode";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- }
- else if (entity.ReSemiCheckType == "1") //正常
- {
- #region 修改半检登记的复检状态=1合格(返)、复检工号=当前工号、复检时间=sysdate。
- string sqlUpdate = @"update TP_PM_SemiCheck set ReSemiCheckType='1' ,ReSemiCheckUserID=:ReSemiCheckUserID,
- ReSemiCheckUserCode=:ReSemiCheckUserCode,ReSemiCheckTime=sysdate,updateuserid=:updateuserid where SemiCheckID=:SemiCheckID";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":ReSemiCheckUserID",sUserInfo.UserID),
- new OracleParameter(":ReSemiCheckUserCode",sUserInfo.UserCode),
- new OracleParameter(":SemiCheckID",entity.SemiCheckID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sqlUpdate, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- errMsg = string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #endregion
- #region 3.修改在产产品数据,在产表产品设置非返工状态(IsReworkFlag = '0'),半检登记ID=null(半检登记ID不变)。
- string sql = "update tp_pm_inproduction set IsReworkFlag='0',UpdateUserID=:UpdateUserID where barcode = :barcode";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":UpdateUserID",sUserInfo.UserID),
- };
- result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- #endregion
- }
- #endregion
- //------------------------------
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- #endregion
- #region 撤销复检
- /// <summary>
- /// 撤销复检数据
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="entity">半检实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 王鑫 2016.06.28 新建
- /// </remarks>
- private static string AddCancelSemiCheck(IDBTransaction oracleTrConn,
- SemiCheckEntity entity,
- SUserInfo sUserInfo)
- {
- try
- {
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = string.Empty;
- string sql = null;
- #region 校验条码有效性
- if (entity.ReSemiCheckType == "1") //撤销合格
- {
- errMsg = CheckBarcodeByCancelReSemiCheckPass(oracleTrConn, entity.BarCode, sUserInfo);
- }
- else if (entity.ReSemiCheckType == "2") //撤销不合格
- {
- errMsg = CheckBarcodeByCancelReSemiCheckNoPass(oracleTrConn, entity.BarCode, sUserInfo);
- }
- if (!string.IsNullOrEmpty(errMsg))
- {
- return errMsg;
- }
- #endregion
- if (entity.ReSemiCheckType == "1") //撤销合格
- {
- #region 在产表产品设置返工状态(IsReworkFlag = '1')。
- sql = "update tp_pm_inproduction set IsReworkFlag='1',UpdateUserID=:UpdateUserID where barcode = :barcode";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":UpdateUserID",sUserInfo.UserID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- #endregion
- #region .半检登记的复检状态=0未复检,复检工号=null,复检时间=null。
- // 复检撤销不需要记录撤销标识 - chenxy
- string sqlUpdate = @"update TP_PM_SemiCheck set ReSemiCheckType='0' ,ReSemiCheckUserID=null,
- ReSemiCheckUserCode=null,ReSemiCheckTime=null,updateuserid=:updateuserid
- --,BackOutFlag=1,BackOutTime=sysdate,BackOutUserID=:BackOutUserID,BackOutUserCode=:BackOutUserCode
- where SemiCheckID=:SemiCheckID";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":SemiCheckID",entity.SemiCheckID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- //new OracleParameter(":BackOutUserID",sUserInfo.UserID),
- //new OracleParameter(":BackOutUserCode",sUserInfo.UserCode),
- };
- result = oracleTrConn.ExecuteNonQuery(sqlUpdate, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- errMsg = string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #endregion
- }
- else if (entity.ReSemiCheckType == "2") //撤销不合格
- {
- #region 从在产回收站中把数据恢复到在产表中。
- string sqlInsert = @"insert into TP_PM_InProduction
- (
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- CreateUserID,
- UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- ProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid,
- SemiCheckID
- )
- select
- BarCode,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureModel,
- ModelType,
- DefectFlag,
- ReworkProcedureID,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingDate,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- AccountID,
- ValueFlag,
- :CreateUserID,
- :UpdateUserID,
- SpecialRepairflag,
- FlowProcedureID,
- FlowProcedureTime,
- FlowProcedureID,
- ProcedureTime,
- ProductionDataID,
- logoid,
- SemiCheckID
- from TP_PM_InProductionTrash
- where barcode=:barcode
- ";
- OracleParameter[] oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":CreateUserID",sUserInfo.UserID),
- new OracleParameter(":UpdateUserID",sUserInfo.UserID),
- };
- int result = oracleTrConn.ExecuteNonQuery(sqlInsert, oracleParameters);
- #endregion
- #region 1.废弃产品表中对应的总单数据和明细数据valueflag='0'。
- OracleParameter[] spParameters = null;
- int spResult = 0;
- string sqlString = "select max(sp.scrapproductid) scrapproductid\n" +
- " from TP_PM_ScrapProduct sp\n" +
- " where sp.barcode = :barcode\n" +
- " and sp.auditstatus = 1\n" +
- " and sp.valueflag = '1'\n" +
- " and sp.scraptype = '3'";
- spParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- string scrapproductid = oracleTrConn.GetSqlResultToStr(sqlString, spParameters);
- sqlString = @"update TP_PM_ScrapProduct set valueflag='0', updateuserid=:updateuserid, backouttime=sysdate where scrapproductid=:scrapproductid";
- spParameters = new OracleParameter[] {
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- new OracleParameter(":scrapproductid",scrapproductid),
- };
- spResult = oracleTrConn.ExecuteNonQuery(sqlString, spParameters);
- sqlString = @"update TP_PM_ResponProcedure set valueflag='0', updateuserid=:updateuserid where scrapproductid=:scrapproductid";
- //oracleParameters = new OracleParameter[] {
- // new OracleParameter(":barcode",entity.BarCode),
- //};
- spResult += oracleTrConn.ExecuteNonQuery(sqlString, spParameters);
- //string sql = @"update TP_PM_ScrapProduct set valueflag='0' where barcode=:barcode";
- //oracleParameters = new OracleParameter[] {
- // new OracleParameter(":barcode",entity.BarCode),
- // };
- //result = oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- //sql = @"update TP_PM_ResponProcedure set valueflag='0' where barcode=:barcode";
- //oracleParameters = new OracleParameter[] {
- // new OracleParameter(":barcode",entity.BarCode),
- // };
- //result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- ////sql = @"update TP_PM_ScrapResponsible set valueflag='0' where barcode=:barcode";
- ////oracleParameters = new OracleParameter[] {
- //// new OracleParameter(":barcode",entity.BarCode),
- //// };
- ////result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- #endregion
- #region 删除在产回收站数据
- sql = "delete TP_PM_InProductionTrash where barcode = :barcode";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- };
- result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- #endregion
- #region .在产表产品设置返工状态(IsReworkFlag = '1')。
- sql = "update tp_pm_inproduction set IsReworkFlag='1',UpdateUserID=:UpdateUserID where barcode = :barcode";
- oracleParameters = new OracleParameter[] {
- new OracleParameter(":barcode",entity.BarCode),
- new OracleParameter(":UpdateUserID",sUserInfo.UserID),
- };
- result += oracleTrConn.ExecuteNonQuery(sql, oracleParameters);
- #endregion
- #region 6.半检登记的复检状态=0未复检,复检工号=null,复检时间=null。
- // 复检撤销不需要记录撤销标识 - chenxy
- string sqlUpdate = @"update TP_PM_SemiCheck set ReSemiCheckType='0' ,ReSemiCheckUserID=null,
- ReSemiCheckUserCode=null,ReSemiCheckTime=null,updateuserid=:updateuserid
- --,BackOutFlag=1,BackOutTime=sysdate,BackOutUserID=:BackOutUserID,BackOutUserCode=:BackOutUserCode
- where SemiCheckID=:SemiCheckID";
- oracleParameters = new OracleParameter[] {
- //new OracleParameter(":ReSemiCheckUserID",entity.ReSemiCheckUserID),
- //new OracleParameter(":ReSemiCheckUserCode",entity.ReSemiCheckUserCode),
- new OracleParameter(":SemiCheckID",entity.SemiCheckID),
- new OracleParameter(":updateuserid",sUserInfo.UserID),
- //new OracleParameter(":BackOutUserID",sUserInfo.UserID),
- //new OracleParameter(":BackOutUserCode",sUserInfo.UserCode),
- };
- result = oracleTrConn.ExecuteNonQuery(sqlUpdate, oracleParameters);
- // 保存失败
- if (result != Constant.INT_IS_ONE)
- {
- errMsg = string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #endregion
- }
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- #endregion
- /// <summary>
- /// 校验条码有效(撤销复检-不合格)
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="barcode">条码</param>
- /// <param name="sUserInfo">登录用户信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 王鑫 2016.06.28 新建
- /// </remarks>
- private static string CheckBarcodeByCancelReSemiCheckNoPass(IDBTransaction oracleTrConn,
- string barcode,
- SUserInfo sUserInfo
- )
- {
- try
- {
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
- };
- string sql = @"
- select 1 from TP_PM_InProductionTrash where barcode=:barcode and GoodsLevelTypeID=14 and SemiCheckID is not null
- ";
- DataSet dsResult = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsResult != null && dsResult.Tables[0].Rows.Count == 0)
- {
- return "条码[" + barcode + "]不在在产回收站中";
- }
- return null;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 校验条码有效(撤销复检-合格)
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="barcode">条码</param>
- /// <param name="sUserInfo">登录用户信息</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 王鑫 2016.06.28 新建
- /// </remarks>
- private static string CheckBarcodeByCancelReSemiCheckPass(IDBTransaction oracleTrConn,
- string barcode,
- SUserInfo sUserInfo
- )
- {
- try
- {
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
- };
- string sql = @"
- select InScrapFlag,
- KilnCarID,
- KilnCarName,
- IsReworkFlag,
- SemiCheckID from TP_PM_InProduction where barcode=:barcode
- ";
- DataSet dsResult = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
- {
- if (dsResult.Tables[0].Rows[0]["InScrapFlag"].ToString() == "1")
- {
- return "条码[" + barcode + "]已经报损待审批";
- }
- if (!string.IsNullOrEmpty(dsResult.Tables[0].Rows[0]["KilnCarID"].ToString()))
- {
- return "条码[" + barcode + "]已经在窑车[" + dsResult.Tables[0].Rows[0]["KilnCarName"].ToString() + "]"; ;
- }
- // chenxy 2019-10-02 半检返修 IsReworkFlag=2
- if (dsResult.Tables[0].Rows[0]["IsReworkFlag"].ToString() == "1")
- {
- return "条码[" + barcode + "]是半检返工状态";
- }
- if (dsResult.Tables[0].Rows[0]["IsReworkFlag"].ToString() == "2")
- {
- return "条码[" + barcode + "]是半检返修状态";
- }
- if (string.IsNullOrEmpty(dsResult.Tables[0].Rows[0]["SemiCheckID"].ToString()))
- {
- return "条码[" + barcode + "]已经做过其他操作,不能撤销";
- }
- }
- else
- {
- return "条码[" + barcode + "]不在在产流程";
- }
- return null;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- #region 生产订单 wangx 2017-2-7
- /// <summary>
- /// 保存订单
- /// </summary>
- /// <param name="order"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity SaveOrder(OrderEntity order, SUserInfo sUserInfo)
- {
- ServiceResultEntity entity = new ServiceResultEntity();
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string sql = string.Empty;
- OracleParameter[] Paras = null;
- DataSet ds = null;
- #region 查询订单号是否有重复
- sql = "select OrderID from TP_PM_Order where OrderNo=:OrderNo and AccountID=:AccountID";
- Paras = new OracleParameter[] {
- new OracleParameter(":OrderNo",OracleDbType.Varchar2,
- order.OrderNo,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input)
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- if (order.OrderID == 0 || (order.OrderID != Convert.ToInt32(ds.Tables[0].Rows[0]["OrderID"])))
- {
- //重复订单号
- returnRows = -1;
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- entity.Result = returnRows;
- entity.Message = "系统存在相同的生产订单号!";
- return entity;
- }
- }
- #endregion
- #region 添加、编辑生产订单
- if (order.OrderID == 0)
- {
- string sqlText = "SELECT SEQ_PM_Order_OrderID.NEXTVAL FROM dual";
- int newOrderID = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- sql = @"Insert into TP_PM_Order
- (
- OrderID,
- OrderNo,
- OrderDate,
- Remarks,
- AccountID,
- ValueFlag,
- CreateTime,
- CreateUserID,
- UpdateTime,
- UpdateUserID
- )
- Values
- (
- :OrderID,
- :OrderNo,
- :OrderDate,
- :Remarks,
- :AccountID,
- :ValueFlag,
- sysdate,
- :CreateUserID,
- sysdate,
- :UpdateUserID
- )";
- Paras = new OracleParameter[] {
- new OracleParameter(":OrderID",OracleDbType.Int32,newOrderID,ParameterDirection.Input),
- new OracleParameter(":OrderNo",OracleDbType.Varchar2,order.OrderNo,ParameterDirection.Input),
- new OracleParameter(":OrderDate",OracleDbType.Date,order.OrderDate,ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.Varchar2,order.Remarks,ParameterDirection.Input),
- new OracleParameter(":ValueFlag",OracleDbType.Int32,order.ValueFlag,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- else
- {
- sql = @"Update TP_PM_Order
- set
- OrderNo=:OrderNo,
- OrderDate=:OrderDate,
- Remarks=:Remarks,
- ValueFlag=:ValueFlag,
- UpdateUserID=:UpdateUserID
- where OrderID=:OrderID
- ";
- Paras = new OracleParameter[] {
- new OracleParameter(":OrderID",OracleDbType.Int32,order.OrderID,ParameterDirection.Input),
- new OracleParameter(":OrderNo",OracleDbType.Varchar2,order.OrderNo,ParameterDirection.Input),
- new OracleParameter(":OrderDate",OracleDbType.Date,order.OrderDate,ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.Varchar2,order.Remarks,ParameterDirection.Input),
- new OracleParameter(":ValueFlag",OracleDbType.Int32,order.ValueFlag,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- #endregion
- if (returnRows <= 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- entity.Result = returnRows;
- return entity;
- }
- /// <summary>
- /// 启用、停用订单标识
- /// </summary>
- /// <param name="order"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity ChangeOrderFlag(OrderEntity order, SUserInfo sUserInfo)
- {
- ServiceResultEntity entity = new ServiceResultEntity();
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string sql = string.Empty;
- OracleParameter[] Paras = null;
- #region 添加、编辑生产订单
- sql = @"Update TP_PM_Order
- set
- ValueFlag=:ValueFlag,
- UpdateUserID=:UpdateUserID
- where OrderID=:OrderID
- ";
- Paras = new OracleParameter[] {
- new OracleParameter(":ValueFlag",OracleDbType.Int32,order.ValueFlag,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":OrderID",OracleDbType.Int32,order.OrderID,ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
- #endregion
- if (returnRows <= 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- entity.Result = returnRows;
- return entity;
- }
- #endregion
- #region 保存交接
- /// <summary>
- /// 保存交接校验
- /// </summary>
- /// <param name="orderid"></param>
- /// <param name="dtData"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity SaveFinishedHandover(int orderid, DataTable dtData, SUserInfo sUserInfo)
- {
- ServiceResultEntity entity = new ServiceResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string sql = string.Empty;
- OracleParameter[] Paras = null;
- DataSet ds = null;
- bool isError = false;
- oracleTrConn.Connect();
- // 包装装板,产成品交接不限制
- //string GoodsModel = string.Empty;
- //int? logoID = null;
- //string logoName = string.Empty;
- //int PlateLimitNum = 0;
- //string _isEnable_S_PM_011 = "0";
- //// 2.产成品交接是否限制同型号
- //string _isEnable_S_PM_012 = "0";
- //// 3.产成品交接是否限制每板装板数量(必须先启用限制同型号);
- //string _isEnable_S_PM_013 = "0";
- //// 读取系统设置
- //sql = "select settingcode,settingvalue from tp_mst_systemsetting where settingcode in ('S_PM_011','S_PM_012','S_PM_013') and accountid=" + sUserInfo.AccountID;
- //ds = oracleTrConn.GetSqlResultToDs(sql);
- //foreach (DataRow dr in ds.Tables[0].Rows)
- //{
- // if (dr["settingcode"] == "S_PM_011")
- // _isEnable_S_PM_011 = dr["settingcode"].ToString();
- // else if (dr["settingcode"] == "S_PM_012")
- // _isEnable_S_PM_012 = dr["settingcode"].ToString();
- // else if (dr["settingcode"] == "S_PM_013")
- // _isEnable_S_PM_013 = dr["settingcode"].ToString();
- //}
- // 本批交接的批次号
- string fhBatchNo = System.Guid.NewGuid().ToString();
- for (int i = 0; i < dtData.Rows.Count; i++)
- {
- #region 产品是否在产成表中
- sql = "select FHUserCode,GoodsCode,GoodsID from TP_PM_FinishedProduct where Barcode=:Barcode";
- Paras = new OracleParameter[]{
- new OracleParameter(":Barcode",OracleDbType.Varchar2, dtData.Rows[i]["barcode"].ToString(),ParameterDirection.Input),
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- #region 是否交接过
- string fhUserCode = ds.Tables[0].Rows[0]["FHUserCode"].ToString();
- if (!string.IsNullOrEmpty(fhUserCode))
- {
- entity.Result = -2; //已交接,不能再次进行交接
- entity.Message = "此产品【" + dtData.Rows[i]["barcode"].ToString() + "】已交接,不能再次进行交接";
- isError = true;
- break;
- }
- #endregion
- }
- else
- {
- #region 不是产成品
- entity.Result = -1; //不是产成品
- entity.Message = "此产品【" + dtData.Rows[i]["barcode"].ToString() + "】不是产成品";
- isError = true;
- break;
- #endregion
- }
- #endregion
- /* 包装装板,产成品交接不限制
- if (i == 0)
- {
- #region 记录产品型号,最大限制数量,商标
- GoodsModel = dtData.Rows[i]["GoodsModel"].ToString();
- logoID = Convert.ToInt32(dtData.Rows[i]["logoID"]);
- logoName = dtData.Rows[i]["logoName"].ToString();
- sql = "select PlateLimitNum from TP_MST_Goods where GoodsID=:GoodsID";
- Paras = new OracleParameter[]{
- new OracleParameter(":GoodsID",OracleDbType.Int32, ds.Tables[0].Rows[0]["GoodsID"],ParameterDirection.Input),
- };
- ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- if (_isEnable_S_PM_013 == "1" && _isEnable_S_PM_012 == "1")
- {
- PlateLimitNum = Convert.ToInt32(ds.Tables[0].Rows[0]["PlateLimitNum"]);
- }
- }
- #endregion
- }
- else
- {
- #region 启用限制同商标
- if (_isEnable_S_PM_011 == "1")
- {
- if (Convert.ToInt32(dtData.Rows[0]["logoid"]) != logoID)
- {
- entity.Result = -3;
- entity.Message = "此产品【" + dtData.Rows[i]["barcode"] + "】的商标【"
- + dtData.Rows[0]["logoname"] + "】与此批次商标【" + logoName + "】不同,不能进行该操作。 ";
- isError = true;
- break;
- }
- }
- #endregion
- #region 启用限制同型号
- if (_isEnable_S_PM_012 == "1")
- {
- if (dtData.Rows[0]["GoodsModel"].ToString() != GoodsModel)
- {
- entity.Result = -4;
- entity.Message = "此产品【" + dtData.Rows[i]["barcode"] + "】的型号【"
- + dtData.Rows[0]["GoodsModel"] + "】与此批次型号【" + GoodsModel + "】不同,不能进行该操作。 ";
- isError = true;
- break;
- }
- }
- #endregion
- #region 产品列表是否大于限制条数
- if (PlateLimitNum > 0)
- {
- if (dtData.Rows.Count > PlateLimitNum)
- {
- entity.Result = -5;
- entity.Message = "产品列表数量大于每板装板数量【" + PlateLimitNum + "】";
- isError = true;
- break;
- }
- }
- #endregion
- }
- */
- #region 更新产成品相关信息
- sql = @"update TP_PM_FinishedProduct
- set FHUserID=:FHUserID,
- FHUserCode=:FHUserCode,
- FHBatchNo=:FHBatchNo,
- FHTime=sysdate,
- FHOrderID=:FHOrderID,
- UpdateUserID=:UpdateUserID
- where Barcode=:Barcode";
- Paras = new OracleParameter[]{
- new OracleParameter(":Barcode",OracleDbType.Varchar2, dtData.Rows[i]["barcode"].ToString(),ParameterDirection.Input),
- new OracleParameter(":FHUserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":FHUserCode",OracleDbType.Varchar2, sUserInfo.UserCode,ParameterDirection.Input),
- new OracleParameter(":FHBatchNo",OracleDbType.Varchar2, fhBatchNo,ParameterDirection.Input),
- new OracleParameter(":FHOrderID",OracleDbType.Int32, orderid,ParameterDirection.Input),
- };
- oracleTrConn.ExecuteNonQuery(sql, Paras);
- #endregion
- }
- if (isError)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- entity.Result = 1;
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return entity;
- }
- #endregion
- /// <summary>
- /// 撤销产成品交接
- /// </summary>
- /// <param name="barcode"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity SaveCancelFinishedHandoverByBarcode(string barcode, SUserInfo sUserInfo)
- {
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- ServiceResultEntity resultEntity = new ServiceResultEntity();
- // 1.判断产品是否在产成品表中
- string sql = @"select
- FHUserID,
- FHUserCode,
- GoodsID,
- GoodsCode,
- GoodsName
- from TP_PM_FinishedProduct
- where BarCode=:BarCode";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":BarCode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
- };
- DataSet dsResult = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
- {
- // 在产成品表中
- #region 是否交接过
- string fhUserCode = dsResult.Tables[0].Rows[0]["FHUserCode"].ToString();
- if (string.IsNullOrEmpty(fhUserCode))
- {
- resultEntity.Result = -1; //未交接,不能撤销
- resultEntity.Message = "此产品【" + barcode + "】未交接,不能进行该操作";
- return resultEntity;
- }
- #endregion
- }
- else
- {
- resultEntity.Result = -2; //不能产成品,不能撤销
- sql = "select GoodsCode from TP_PM_GroutingDailyDetail where BarCode=:BarCode";
- dsResult = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
- {
- resultEntity.Message = "此产品【" + barcode + "】不是产成品,不能进行该操作";
- }
- else
- {
- resultEntity.Message = "此条码【" + barcode + "】无效,不能进行该操作";
- }
- return resultEntity;
- }
- #region 查询产品相关信息
- // 撤销记录
- string sqlString = "INSERT INTO TP_PM_FHUndo\n" +
- " (GroutingDailyDetailID\n" +
- " ,GoodsLevelTypeID\n" +
- " ,FHUserID\n" +
- " ,FHUserCode\n" +
- " ,FHBatchNo\n" +
- " ,FHTime\n" +
- " ,FHOrderID\n" +
- " ,OnlyCode\n" +
- " ,FINISHEDLOADBATCHNO\n" +
- " ,AccountID\n" +
- " ,CreateUserID)\n" +
- " SELECT t.groutingdailydetailid\n" +
- " ,t.GoodsLevelTypeID\n" +
- " ,t.fhuserid\n" +
- " ,t.fhusercode\n" +
- " ,t.fhbatchno\n" +
- " ,t.fhtime\n" +
- " ,t.FHOrderID\n" +
- " ,t.onlycode\n" +
- " ,t.FINISHEDLOADBATCHNO\n" +
- " ,t.AccountID\n" +
- " ,:UpdateUserID\n" +
- " FROM TP_PM_FinishedProduct t\n" +
- " WHERE t.barcode = :BarCode";
- paras = new OracleParameter[]{
- new OracleParameter(":BarCode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- int resultRow = oracleTrConn.ExecuteNonQuery(sqlString, paras);
- // SAP同步后再成品交接撤销的,记录撤销标识
- string sapsql = "select count(*) from tsap_hegii_FinishedProduct t where t.barcode = :BarCode and rownum=1";
- OracleParameter[] sapparas = new OracleParameter[]{
- new OracleParameter(":BarCode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
- };
- int sapcount = Convert.ToInt32( oracleTrConn.GetSqlResultToObj(sapsql, sapparas));
- if (sapcount > 0)
- {
- sapsql = "update tp_pm_groutingdailydetail set SAPFHUndoFlag = '1' where barcode=:BarCode";
- oracleTrConn.ExecuteNonQuery(sapsql, sapparas);
- }
- sql = @"Update TP_PM_FinishedProduct
- set FHUserID=null,
- FHUserCode=null,
- FHBatchNo=null,
- FHTime=null,
- FHOrderID=null,FINISHEDLOADBATCHNO=null,
- UpdateUserID=:UpdateUserID
- where BarCode=:BarCode";
- resultRow = oracleTrConn.ExecuteNonQuery(sql, paras);
- if (resultRow == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- resultEntity.Result = 1;
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- #endregion
- return resultEntity;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 更改产成品交接订单号
- /// </summary>
- /// <param name="barcode"></param>
- /// <param name="orderid"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity SaveChangeFinishedHandoverByBarcode(string barcode, int orderid, SUserInfo sUserInfo)
- {
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- ServiceResultEntity resultEntity = new ServiceResultEntity();
- // 1.判断产品是否在产成品表中
- string sql = @"select
- FHUserID,
- FHUserCode,
- GoodsID,
- GoodsCode,
- GoodsName
- from TP_PM_FinishedProduct
- where BarCode=:BarCode";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":BarCode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
- };
- DataSet dsResult = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
- {
- // 在产成品表中
- #region 是否交接过
- string fhUserCode = dsResult.Tables[0].Rows[0]["FHUserCode"].ToString();
- if (string.IsNullOrEmpty(fhUserCode))
- {
- resultEntity.Result = -1; //未交接,不能撤销
- resultEntity.Message = "此产品【" + barcode + "】未交接,不能进行该操作";
- return resultEntity;
- }
- #endregion
- }
- else
- {
- resultEntity.Result = -2; //不能产成品,不能撤销
- sql = "select GoodsCode from TP_PM_GroutingDailyDetail where BarCode=:BarCode";
- dsResult = oracleTrConn.GetSqlResultToDs(sql, paras);
- if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
- {
- resultEntity.Message = "此产品【" + barcode + "】不是产成品,不能进行该操作";
- }
- else
- {
- resultEntity.Message = "此条码【" + barcode + "】无效,不能进行该操作";
- }
- return resultEntity;
- }
- #region 查询产品相关信息
- sql = @"Update TP_PM_FinishedProduct
- set
- FHOrderID=:FHOrderID,
- UpdateUserID=:UpdateUserID
- where BarCode=:BarCode";
- paras = new OracleParameter[]{
- new OracleParameter(":BarCode",OracleDbType.NVarchar2,barcode,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":FHOrderID",OracleDbType.Int32,orderid,ParameterDirection.Input),
- };
- int resultRow = oracleTrConn.ExecuteNonQuery(sql, paras);
- if (resultRow == 0)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- else
- {
- resultEntity.Result = 1;
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- #endregion
- return resultEntity;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 回收标准计件
- /// </summary>
- /// <param name="oracleTrConn">数据连接对象</param>
- /// <param name="procedure">工序对象</param>
- /// <param name="barcodeTable">条码信息</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <param name="groutingUserID">返回的注浆者ID</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 王鑫 2017.7.20 新建
- /// </remarks>
- private static string AddRecydingFlagWorkPiece(IDBTransaction oracleTrConn,
- ProcedureEntity procedure,
- DataTable barcodeTable,
- SUserInfo sUserInfo,
- out int goodsID,
- out string goodsCode,
- out string goodsName,
- out string groutingUserCode, out string logoCode, out string logoName, out string groutingdate)
- {
- try
- {
- int deleteRow = 0;
- goodsID = Constant.INT_IS_ZERO;
- goodsCode = null;
- goodsName = null;
- groutingUserCode = string.Empty; //Constant.INT_IS_ZERO;
- // 获得账务日期
- DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
- string errMsg = string.Empty;
- // 本批采集的批次号
- string centralizedBatchNo = System.Guid.NewGuid().ToString();
- // 条码信息
- string logoName_Temp = "";
- string logoCode_Temp = "";
- string groutingdate_Temp = "";
- foreach (DataRow barcodeRow in barcodeTable.Rows)
- {
- // 条码
- string barcode = barcodeRow["Barcode"].ToString();
- if (string.IsNullOrEmpty(barcode))
- {
- throw new Exception("传入的条码号为空");
- }
- // 生产工号
- int workUserID = Convert.ToInt32(barcodeRow["UserID"]);
- // 生产工号
- string workUserCode = barcodeRow["UserCode"].ToString();
- //#region 校验条码有效性
- //errMsg = CheckDryRepairBarcode(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- if (procedure.CollectType == 1)
- {
- #region 校验条码有效性
- errMsg = CheckRecyclingFlagBarcode(oracleTrConn, procedure.ProcedureID, barcode, out goodsID, out goodsCode, out goodsName, out groutingUserCode, sUserInfo);
- if (!string.IsNullOrEmpty(errMsg))
- {
- logoName = "";
- logoCode = "";
- groutingdate = "";
- return errMsg;
- }
- #endregion
- }
- else
- {
- string sqlGroutingInfo = @"select tp_pm_groutingdailydetail.goodsid,
- tp_pm_groutingdailydetail.goodscode,
- tp_pm_groutingdailydetail.goodsname,
- tp_pm_groutingdailydetail.usercode as groutingUserCode,
- tp_pm_groutingdailydetail.groutingdate,
- tp_mst_logo.logoid,
- tp_mst_logo.logocode,
- tp_mst_logo.logoname
- from tp_pm_groutingdailydetail
- left join tp_mst_logo
- on tp_pm_groutingdailydetail.logoid=tp_mst_logo.logoid
- where tp_pm_groutingdailydetail.barcode=:barcode
- ";
- OracleParameter[] paras = new OracleParameter[] {
- new OracleParameter(":barcode",barcode),
- };
- DataSet dsGrouting = oracleTrConn.GetSqlResultToDs(sqlGroutingInfo, paras);
- if (dsGrouting != null && dsGrouting.Tables[0].Rows.Count > 0)
- {
- goodsID = Convert.ToInt32(dsGrouting.Tables[0].Rows[0]["goodsid"]);
- goodsCode = dsGrouting.Tables[0].Rows[0]["goodscode"].ToString();
- goodsName = dsGrouting.Tables[0].Rows[0]["goodsName"].ToString();
- groutingUserCode = dsGrouting.Tables[0].Rows[0]["groutingUserCode"].ToString();
- logoName = dsGrouting.Tables[0].Rows[0]["logoName"].ToString();
- logoCode = dsGrouting.Tables[0].Rows[0]["logoCode"].ToString();
- groutingdate = dsGrouting.Tables[0].Rows[0]["groutingdate"].ToString();
- logoName_Temp = logoName;
- logoCode_Temp = logoCode;
- groutingdate_Temp = groutingdate;
- }
- }
- #region 数据处理
- #region 处理废弃数据并转回收数据为在产数据
- //////string querysql = @"select GOODSLEVELID from TP_MST_GOODSLEVEL where GOODSLEVELTYPEID=9 and ACCOUNTID=:accountid and VALUEFLAG=1";
- //////OracleParameter[] queryparas = new OracleParameter[]{
- ////// new OracleParameter(":accountid",OracleDbType.Varchar2, sUserInfo.AccountID,ParameterDirection.Input)
- //////};
- //////DataSet returnDs = oracleTrConn.GetSqlResultToDs(querysql, queryparas);
- //////if (returnDs == null || returnDs.Tables[0].Rows.Count == 0)
- //////{
- ////// errMsg = "未设定干补等级";
- ////// logoName = "";
- ////// logoCode = "";
- ////// groutingdate = "";
- ////// return errMsg;
- //////}
- //////string goodsLevelID = returnDs.Tables[0].Rows[0][0].ToString();
- //第一步,废弃数据的产品分级类别由 8损坯13不合格14不合格(返) 改为 9干补,产品分级=此账套相应的设置
- /*string sqlUpdateLevelTypeString = @"update TP_PM_ScrapProduct set GOODSLEVELID=:GOODSLEVELID, GoodsLevelTypeID=9,SpecialRepairFlag=1,
- SpecialRepairUserID=:SpecialRepairUserID,SpecialRepairUserCode=:SpecialRepairUserCode,SpecialRepairTime=sysdate,
- UpdateUserID=:UpdateUserID
- where BarCode=:barcode
- and CreateTime=(select max(CreateTime) from TP_PM_ScrapProduct where BarCode=:barcode1 and ValueFlag=1)
- and ValueFlag=1 and GoodsLevelTypeID=(select max(GoodsLevelTypeID) from TP_PM_ScrapProduct where BarCode=:barcode1 and ValueFlag=1) ";
- */
- // and ValueFlag=1 and GoodsLevelTypeID=8 ";
- ////// string sqlUpdateLevelTypeString = @"update TP_PM_ScrapProduct set GOODSLEVELID=:GOODSLEVELID, GoodsLevelTypeID=9,
- ////// SpecialRepairUserID=:SpecialRepairUserID,SpecialRepairUserCode=:SpecialRepairUserCode,SpecialRepairTime=sysdate,
- ////// UpdateUserID=:UpdateUserID
- ////// where BarCode=:barcode
- ////// and CreateTime=(select max(CreateTime) from TP_PM_ScrapProduct where BarCode=:barcode1 and ValueFlag=1)
- ////// and ValueFlag=1 and GoodsLevelTypeID in (8, 13, 14) ";
- string sqlUpdateLevelTypeString = @"update TP_PM_ScrapProduct set RecyclingFlag=1,
- UpdateUserID=:UpdateUserID,RecyclingUserID=:RecyclingUserID,RecyclingUserCode=:RecyclingUserCode,
- RecyclingTime=sysdate
- where BarCode=:barcode
- and CreateTime=(select max(CreateTime) from TP_PM_ScrapProduct where BarCode=:barcode and ValueFlag=1)
- and ValueFlag=1 ";
- OracleParameter[] ScrapProductparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":RecyclingUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":RecyclingUserCode",OracleDbType.Varchar2, sUserInfo.UserCode,ParameterDirection.Input),
- };
- oracleTrConn.ExecuteNonQuery(sqlUpdateLevelTypeString, ScrapProductparas);
- string sqlUpdateGROUTString = @"update TP_PM_GROUTINGDAILYDETAIL set RecyclingFlag=1,
- UpdateUserID=:UpdateUserID
- where BarCode=:barcode ";
- OracleParameter[] GROUTparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- oracleTrConn.ExecuteNonQuery(sqlUpdateGROUTString, GROUTparas);
- //modify wangx 20150623
- //////OracleParameter[] sqlUpdateparas = new OracleParameter[]{
- ////// new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- //////};
- //string sqlUpdate = "update TP_PM_InCheckedDetail set SpecialRepairFlag=1 where barcode=:barcode";
- //oracleTrConn.ExecuteNonQuery(sqlUpdate, sqlUpdateparas);
- //////string sqlUpdate = "update TP_PM_ProductionDataIn set SpecialRepairFlag=1 where barcode=:barcode";
- //////oracleTrConn.ExecuteNonQuery(sqlUpdate, sqlUpdateparas);
- //modify wangx 20150623 end
- #region
- //第五步,插入回收工序的生产数据(同其他计件工序),设置干补标识,产品分级类别=9干补,产品分级=此账套相应的设置
- // 查询新插入的生产数据ID
- string sql = "select SEQ_PM_ProductionData_ID.nextval from dual";
- string idStr = oracleTrConn.GetSqlResultToStr(sql);
- int productionDataID = 0;
- if (!string.IsNullOrEmpty(idStr))
- {
- productionDataID = int.Parse(idStr);
- }
- else
- {
- logoName = "";
- logoCode = "";
- groutingdate = "";
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- int? ClassesSettingID = null;//班次配置ID
- #region 第五步 添加生产者数据
- errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo, ref ClassesSettingID);
- if (!string.IsNullOrEmpty(errMsg))
- {
- logoName = "";
- logoCode = "";
- groutingdate = "";
- return errMsg;
- }
- #endregion
- ProductionDataEntity productionData = new ProductionDataEntity();
- #region 属性赋值
- productionData.ClassesSettingID = ClassesSettingID;
- productionData.ProductionDataID = Convert.ToInt32(idStr);
- productionData.Barcode = barcode;
- productionData.CentralizedBatchNo = centralizedBatchNo;
- productionData.ProductionLineID = procedure.ProductionLineID;
- productionData.ProductionLineCode = procedure.ProductionlineCode;
- productionData.ProductionLineName = procedure.ProductionlineName;
- productionData.CompleteProcedureID = procedure.ProcedureID;
- productionData.ProcedureCode = procedure.ProcedureCode;
- productionData.ProcedureName = procedure.ProcedureName;
- productionData.ProcedureModel = procedure.ProcedureModel;
- productionData.ModelType = procedure.ModelType;
- productionData.NodeType = procedure.NodeType;
- productionData.DefectFlag = (int)Constant.DefectFlag.No;
- productionData.ReworkProcedureID = null;
- productionData.IsPublicBody = IsPubilcByBarCode(oracleTrConn, barcode);
- productionData.IsReFire = (int)Constant.ReFireFlag.No;
- //设置干补标识,产品分级类别=9干补
- ////productionData.GoodsLevelTypeID = 9;
- //productionData.GoodsLevelID = int.Parse(goodsLevelID);
- //productionData.GoodsGrade = (int)Constant.GoodsGrade.Good;
- productionData.OrganizationID = procedure.OrganizationID;
- productionData.GoodsID = goodsID;
- productionData.GoodsCode = goodsCode;
- productionData.GoodsName = goodsName;
- productionData.UserID = workUserID;
- productionData.UserCode = barcodeRow["UserCode"].ToString();
- productionData.UserName = barcodeRow["UserName"].ToString();
- productionData.PieceType = procedure.PieceType;
- if (barcodeRow["LogoID"].ToString() != "")
- {
- productionData.LogoID = Convert.ToInt32(barcodeRow["LogoID"]);
- }
- string sqlReFire = @"select
- isrefire,
- logoid,GoodsLevelID,GoodsLevelTypeID
- from tp_pm_inproduction where barcode=:barcode
- union
- select
- isrefire,
- logoid,GoodsLevelID,GoodsLevelTypeID
- from TP_PM_InProductionTrash where barcode=:barcode
- union
- select
- isrefire,
- logoid,GoodsLevelID,GoodsLevelTypeID
- from TP_PM_FinishedProduct where barcode=:barcode ";
- OracleParameter[] ReFireparas = new OracleParameter[] {
- new OracleParameter(":barcode",barcode),
- };
- DataSet dsReFire = oracleTrConn.GetSqlResultToDs(sqlReFire, ReFireparas);
- if (dsReFire != null && dsReFire.Tables[0].Rows.Count > 0)
- {
- if (Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]) > 0)
- {
- productionData.IsReFire = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["IsReFire"]);
- }
- if (dsReFire.Tables[0].Rows[0]["logoid"].ToString() != "")
- {
- productionData.LogoID = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["LogoID"]);
- }
- if (dsReFire.Tables[0].Rows[0]["GoodsLevelTypeID"].ToString() != string.Empty)
- {
- productionData.GoodsLevelTypeID = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["GoodsLevelTypeID"]);
- productionData.GoodsLevelID = Convert.ToInt32(dsReFire.Tables[0].Rows[0]["GoodsLevelID"]);
- }
- }
- #endregion 属性赋值
- productionData.SpecialRepairflag = 0;
- string OutSpecialRepairflag = "0";// 没有什么特殊的,同干补保存生产数据共用同一个方法
- errMsg = AddDryRepairProductionData(oracleTrConn, accountDate, productionData, sUserInfo, out OutSpecialRepairflag);
- if (!string.IsNullOrEmpty(errMsg))
- {
- logoName = "";
- logoCode = "";
- groutingdate = "";
- return errMsg;
- }
- #endregion
- //第二步,回收站中数据回到在产中,设置干补标识。
- string sqlInsInProdString = @"insert into TP_PM_InProduction(BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- PROCEDUREMODEL, MODELTYPE, REWORKPROCEDUREID,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, UPDATEUSERID,
- ISREFIRE, GOODSLEVELID, GOODSLEVELTYPEID, DEFECTFLAG,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,SpecialRepairFlag,FlowProcedureID
- ,FlowProcedureTime,ProcedureID,ProcedureTime,ProductionDataID,logoid, ISREWORKFLAG, SEMICHECKID)
- select BARCODE, PRODUCTIONLINEID, PRODUCTIONLINECODE, PRODUCTIONLINENAME,
- :PROCEDUREMODEL, :MODELTYPE, null,
- ISPUBLICBODY, GOODSID, GOODSCODE, GOODSNAME,
- USERID, GROUTINGDAILYID, GROUTINGDAILYDETAILID, GROUTINGDATE,
- GROUTINGLINEID, GROUTINGLINECODE, GROUTINGLINENAME, GMOULDTYPEID,
- CANMANYTIMES, GROUTINGLINEDETAILID, GROUTINGMOULDCODE, MOULDCODE,
- REMARKS, ACCOUNTID, VALUEFLAG, CREATETIME,
- CREATEUSERID, UPDATETIME, :UpdateUserID,
- ISREFIRE, GOODSLEVELID, GOODSLEVELTYPEID, 1,
- GROUTINGUSERID, GROUTINGUSERCODE, GROUTINGNUM,
- KILNID, KILNCODE, KILNNAME, KILNCARID,
- KILNCARCODE, KILNCARNAME, KILNCARBATCHNO, KILNCARPOSITION,SpecialRepairFlag,:ProcedureID ,--FlowProcedureID
- FlowProcedureTime,:ProcedureID,sysdate,:ProductionDataID,logoid, ISREWORKFLAG, SEMICHECKID
- from TP_PM_InProductionTrash where barcode=:barcode ";
- OracleParameter[] InProductparas = new OracleParameter[]{
- new OracleParameter(":UpdateUserID",OracleDbType.Int32, workUserID,ParameterDirection.Input),
- ////new OracleParameter(":GOODSLEVELID",OracleDbType.Int32,int.Parse(goodsLevelID),ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
- new OracleParameter(":ProcedureID",OracleDbType.Int32,procedure.ProcedureID,ParameterDirection.Input),
- new OracleParameter(":PROCEDUREMODEL",OracleDbType.Varchar2,procedure.ProcedureModel,ParameterDirection.Input),
- new OracleParameter(":MODELTYPE",OracleDbType.Int32,procedure.ModelType,ParameterDirection.Input),
- new OracleParameter(":ProductionDataID",OracleDbType.Int32,productionDataID,ParameterDirection.Input)
- };
- //第三步,删除回收站中的条码
- string sqlDelInProductTrashString = "delete from TP_PM_InProductionTrash where barcode=:barcode ";
- OracleParameter[] TrashProductparas = new OracleParameter[]{
- new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input)
- };
- //第四步,更新注浆表干补标识
- // string sqlUpGroutingDeilString = @"update TP_PM_GroutingDailyDetail set SpecialRepairFlag=1
- // where GroutingDailyDetailID=(select GroutingDailyDetailID from TP_PM_GROUTINGPRODUCT
- // where barcode=:barcode)";
- ////// string sqlUpGroutingDeilString = @"update TP_PM_GroutingDailyDetail set SpecialRepairFlag=1
- ////// where barcode=:barcode";
- ////// OracleParameter[] GroutingProductparas = new OracleParameter[]{
- ////// new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input)
- ////// };
- // string sqlUpCompleteString = @"update TP_PM_FINISHEDPRODUCT set SpecialRepairFlag=1
- // where barcode=:barcode ";
- // OracleParameter[] CompleteProductparas = new OracleParameter[]{
- // new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input)
- // };
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlUpdateLevelTypeString, ScrapProductparas);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlInsInProdString, InProductparas);
- deleteRow += oracleTrConn.ExecuteNonQuery(sqlDelInProductTrashString, TrashProductparas);
- //deleteRow += oracleTrConn.ExecuteNonQuery(sqlUpGroutingDeilString, GroutingProductparas);
- //deleteRow += oracleTrConn.ExecuteNonQuery(sqlUpCompleteString, CompleteProductparas); //由于成品后,不能报损,所以这个执行去掉
- // 失败
- if (deleteRow == Constant.INT_IS_ZERO)
- {
- logoName = "";
- logoCode = "";
- groutingdate = "";
- return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
- }
- #endregion
- //#region 第五步 添加生产者数据
- //errMsg = AddProducer(oracleTrConn, accountDate, productionDataID, workUserID, workUserCode, sUserInfo);
- //if (!string.IsNullOrEmpty(errMsg))
- //{
- // return errMsg;
- //}
- //#endregion
- //第五步,回添加生产数据 modify wangx 2015/07/20 新添加的代码
- sql = "select 1 from tp_pm_productiondatain where barcode=:barcode and valueflag=1";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":barcode",OracleDbType.Varchar2,
- barcode,ParameterDirection.Input)
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sql, Paras);
- if (ds.Tables[0].Rows.Count == 0)
- {
- // 2 生产数据恢复到在产生产数据
- sql = @"insert into tp_pm_productiondatain
- (
- ProductionDataID,
- BarCode,
- CentralizedBatchNo,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureID,
- ProcedureCode,
- ProcedureName,
- ProcedureModel,
- ModelType,
- PieceType,
- IsReworked,
- NodeType,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- SpecialRepairFlag,
- OrganizationID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- UserCode,
- UserName,
- ClassesSettingID,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- ReworkProcedureID,
- ReworkProcedureCode,
- ReworkProcedureName,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingDate,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- AccountDate,
- SettlementFlag,
- AccountID,
- ValueFlag,
- CreateTime,
- CreateUserID,
- UpdateTime,
- UpdateUserID,
- OPTimeStamp,
- TriggerFlag,
- logoid,
- BackOutTime,BackOutUserID,BackOutUserCode
- )
- select
- ProductionDataID,
- BarCode,
- CentralizedBatchNo,
- ProductionLineID,
- ProductionLineCode,
- ProductionLineName,
- ProcedureID,
- ProcedureCode,
- ProcedureName,
- ProcedureModel,
- ModelType,
- PieceType,
- IsReworked,
- NodeType,
- IsPublicBody,
- IsReFire,
- GoodsLevelID,
- GoodsLevelTypeID,
- SpecialRepairFlag,
- OrganizationID,
- GoodsID,
- GoodsCode,
- GoodsName,
- UserID,
- UserCode,
- UserName,
- ClassesSettingID,
- KilnID,
- KilnCode,
- KilnName,
- KilnCarID,
- KilnCarCode,
- KilnCarName,
- KilnCarBatchNo,
- KilnCarPosition,
- ReworkProcedureID,
- ReworkProcedureCode,
- ReworkProcedureName,
- GroutingDailyID,
- GroutingDailyDetailID,
- GroutingLineID,
- GroutingLineCode,
- GroutingLineName,
- GMouldTypeID,
- CanManyTimes,
- GroutingLineDetailID,
- GroutingDate,
- GroutingMouldCode,
- MouldCode,
- GroutingUserID,
- GroutingUserCode,
- GroutingNum,
- Remarks,
- AccountDate,
- SettlementFlag,
- AccountID,
- ValueFlag,
- CreateTime,
- CreateUserID,
- UpdateTime,
- UpdateUserID,
- OPTimeStamp,
- 1,
- logoid,
- BackOutTime,BackOutUserID,BackOutUserCode
- from TP_PM_ProductionData where valueflag=1 and barcode=:barcode
- ";
- oracleTrConn.ExecuteNonQuery(sql, Paras);
- }
- //第五步,回添加生产数据 modify wangx 2015/07/20 新添加的代码 end
- #endregion 数据处理
- }
- logoName = logoName_Temp;
- logoCode = logoCode_Temp;
- groutingdate = groutingdate_Temp;
- return errMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 校验回收条码有效
- /// </summary>
- /// <param name="oracleTrConn">连接对象</param>
- /// <param name="procedureID">工序ID</param>
- /// <param name="barcode">条码</param>
- /// <param name="goodsID">返回的产品ID</param>
- /// <param name="goodsCode">返回的产品Code</param>
- /// <param name="goodsName">返回的产品名称</param>
- /// <param name="groutingUserID">返回的注浆者ID</param>
- /// <returns>string</returns>
- /// <remarks>
- /// 王鑫 2017.7.20 新建
- /// </remarks>
- private static string CheckRecyclingFlagBarcode(IDBTransaction oracleTrConn,
- int procedureID,
- string barcode,
- out int goodsID,
- out string goodsCode,
- out string goodsName,
- out string groutingUserCode,
- SUserInfo sUserInfo
- )
- {
- try
- {
- //OracleParameter[] paras = new OracleParameter[]{
- // new OracleParameter("in_procedureid",OracleDbType.Int32,procedureID,ParameterDirection.Input),
- // new OracleParameter("in_barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
- // new OracleParameter("out_errMsg",OracleDbType.Varchar2,2000,"",ParameterDirection.Output),
- // new OracleParameter("out_goodsID",OracleDbType.Int32,ParameterDirection.Output),
- // new OracleParameter("out_goodsCode",OracleDbType.Varchar2,50,"",ParameterDirection.Output),
- // new OracleParameter("out_goodsName",OracleDbType.Varchar2,50,"",ParameterDirection.Output),
- // new OracleParameter("out_groutingUserCode",OracleDbType.NVarchar2,50,null,ParameterDirection.Output),
- //};
- //oracleTrConn.ExecStoredProcedure("pro_pm_checkdryrepairbarcode", paras);
- //if (!"null".Equals(paras[3].Value + ""))
- //{
- // goodsID = Convert.ToInt32(paras[3].Value + "");
- //}
- //else
- //{
- // goodsID = 0;
- //}
- //goodsCode = paras[4].Value + "";
- //goodsName = paras[5].Value + "";
- //if (!"null".Equals(paras[6].Value + ""))
- //{
- // groutingUserCode = paras[6].Value + "";
- //}
- //else
- //{
- // groutingUserCode = null;
- //}
- //if ("null".Equals(paras[2].Value + ""))
- //{
- // return null;
- //}
- //return paras[2].Value.ToString().Replace("\\n\\r", "\n\r");
- string errorMessage = string.Empty;
- goodsID = 0; goodsCode = string.Empty; goodsName = string.Empty; groutingUserCode = string.Empty;
- string sqlString = @"select settingcode,settingvalue,settingdefaultvalues from tp_mst_systemsetting
- where Accountid=:Accountid and settingcode in ('S_PM_017','S_PM_018','S_PM_019','S_PM_020')";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter("Accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- };
- DataSet ds = oracleTrConn.GetSqlResultToDs(sqlString, paras);
- #region 读出系统配置 17(损坯可否回收) 18(半检不合格可否回收) 19(复检不合格可否回收) 20(次品可否回收)
- int S_PM_017_Value = 0, S_PM_018_Value = 0, S_PM_019_Value = 0, S_PM_020_Value = 0;
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- foreach (DataRow r in ds.Tables[0].Rows)
- {
- if (r["settingcode"].ToString() == "S_PM_017")
- {
- S_PM_017_Value = Convert.ToInt32(r["settingvalue"]);
- }
- else if (r["settingcode"].ToString() == "S_PM_018")
- {
- S_PM_018_Value = Convert.ToInt32(r["settingvalue"]);
- }
- else if (r["settingcode"].ToString() == "S_PM_019")
- {
- S_PM_019_Value = Convert.ToInt32(r["settingvalue"]);
- }
- else if (r["settingcode"].ToString() == "S_PM_020")
- {
- S_PM_020_Value = Convert.ToInt32(r["settingvalue"]);
- }
- }
- }
- #endregion
- #region 第1步 查当前工序在系统是否存在
- sqlString = @"select NodeType,ModelType from tp_pc_procedure where procedureid=:procedureid and ValueFlag=1";
- paras = new OracleParameter[]{
- new OracleParameter(":procedureid",procedureID),
- };
- ds = oracleTrConn.GetSqlResultToDs(sqlString, paras);
- if (ds == null || ds.Tables[0].Rows.Count == 0)
- {
- errorMessage = "当前工序在系统中不存在";
- return errorMessage;
- }
- #endregion
- #region 第2步 查产品是否有效
- sqlString = @"select distinct GoodsID, GoodsCode,GoodsName,UserCode,DeliverFlag
- from TP_PM_GroutingDailyDetail where BarCode=:barCode and ValueFlag=1 ";
- paras = new OracleParameter[]{
- new OracleParameter(":barCode",barcode),
- };
- ds = oracleTrConn.GetSqlResultToDs(sqlString, paras);
- if (ds == null || ds.Tables[0].Rows.Count == 0)
- {
- // 是否被替换
- string sql = @"select count(barcode),max(newbarcode) from TP_PM_BarCodeRecord where BarCode=:barcode";
- OracleParameter[] paras2 = new OracleParameter[]{
- new OracleParameter(":barCode",barcode) };
- DataSet ds2 = oracleTrConn.GetSqlResultToDs(sql, paras2);
- if (ds2 != null && Convert.ToInt32(ds2.Tables[0].Rows[0][0]) == 0)
- {
- // 无效条件
- errorMessage = "无效条码[" + barcode + "]";
- }
- else
- {
- errorMessage = "条码[" + barcode + "]已经被[" + ds2.Tables[0].Rows[0][1] + "]替换";
- }
- }
- else
- {
- //if (Convert.ToInt32(ds.Tables[0].Rows[0]["DeliverFlag"]) != 1)
- //{
- // errorMessage = "条码[" + barcode + "]未交坯,不能回收";
- //}
- //else
- {
- goodsID = Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsID"]);
- goodsName = ds.Tables[0].Rows[0]["goodsName"].ToString();
- goodsCode = ds.Tables[0].Rows[0]["GoodsCode"].ToString();
- groutingUserCode = ds.Tables[0].Rows[0]["UserCode"].ToString();
- }
- }
- if (!string.IsNullOrEmpty(errorMessage))
- {
- return errorMessage;
- }
- #endregion
- #region 第3步 查产品是否在当前工序配置
- sqlString = @"select count(GoodsID) from TP_PC_ProcedureGoods where GoodsID=:GoodsID and ProcedureID=:ProcedureID";
- paras = new OracleParameter[]{
- new OracleParameter(":GoodsID",goodsID),
- new OracleParameter(":ProcedureID",procedureID),
- };
- ds = oracleTrConn.GetSqlResultToDs(sqlString, paras);
- if (Convert.ToInt32(ds.Tables[0].Rows[0][0]) != 1)
- {
- errorMessage =
- @"条码[" + barcode + "]不可以经过该工序\n\r原因:条码对应的产品编码[" + goodsCode + "]没有在该工序中配置";
- }
- if (!string.IsNullOrEmpty(errorMessage))
- {
- return errorMessage;
- }
- #endregion
- #region 第4步,校验在产产品不能回收
- string sqlString2 = "select InScrapFlag,ISREWORKFLAG from tp_pm_inproduction where barcode=:barcode";
- OracleParameter[] parasNew = new OracleParameter[]{
- new OracleParameter(":barcode",barcode) };
- DataSet dsNew = oracleTrConn.GetSqlResultToDs(sqlString2, parasNew);
- if (dsNew != null && dsNew.Tables[0].Rows.Count > 0)
- {
- if (Convert.ToInt32(dsNew.Tables[0].Rows[0]["InScrapFlag"]) == 1)
- {
- errorMessage = "报损待审产品不能回收";
- }
- // chenxy 2019-10-02 半检返修 IsReworkFlag=2
- else if (Convert.ToInt32(dsNew.Tables[0].Rows[0]["ISREWORKFLAG"]) == 1)
- {
- errorMessage = "半检返工中不能回收";
- }
- else if (Convert.ToInt32(dsNew.Tables[0].Rows[0]["ISREWORKFLAG"]) == 2)
- {
- errorMessage = "半检返工中不能回收";
- }
- else
- {
- errorMessage = "在产产品不能回收";
- }
- }
- if (!string.IsNullOrEmpty(errorMessage))
- {
- return errorMessage;
- }
- #endregion
- #region 第4步,校验报损表数据是否可以回收
- sqlString = @"select GoodsLevelID,GoodsLevelTypeID,ScrapType,SpecialRepairFlag,RecyclingFlag,AuditStatus,SpecialRepairUserID from TP_PM_ScrapProduct where barcode=:barcode
- and ValueFlag=1 and CreateTime=
- (select max(CreateTime) from TP_PM_ScrapProduct where barcode=:barcode
- and ValueFlag=1 )";
- paras = new OracleParameter[]{
- new OracleParameter(":barcode",barcode),
- };
- ds = oracleTrConn.GetSqlResultToDs(sqlString, paras);
- if (ds == null || ds.Tables[0].Rows.Count == 0)
- {
- errorMessage = "不存在回收数据,不能回收";
- }
- else
- {
- if (Convert.ToInt32(ds.Tables[0].Rows[0]["AuditStatus"]) == 1 &&
- Convert.ToInt32(ds.Tables[0].Rows[0]["GoodsLevelTypeID"]) != 9 &&
- Convert.ToInt32(ds.Tables[0].Rows[0]["RecyclingFlag"]) == 0)
- {
- // 可回收
- string sqlString3 = "select 1 from tp_pm_inproductiontrash where barcode=:barcode";
- OracleParameter[] parasNewt = new OracleParameter[]{
- new OracleParameter(":barcode",barcode) };
- DataSet dsNewt = oracleTrConn.GetSqlResultToDs(sqlString3, parasNewt);
- if (dsNewt == null || dsNewt.Tables[0].Rows.Count == 0)
- {
- errorMessage = "报损数据被清除,不能回收";
- }
- }
- else
- {
- errorMessage = "不存在回收数据,不能回收";
- }
- if (!string.IsNullOrEmpty(errorMessage))
- {
- if (Convert.ToInt32(ds.Tables[0].Rows[0]["ScrapType"]) == 0)
- {
- // 损坯
- if (S_PM_017_Value == 0)
- {
- errorMessage = "系统参数产品回收-报损未启用";
- }
- }
- else if (Convert.ToInt32(ds.Tables[0].Rows[0]["ScrapType"]) == 1)
- {
- // 成检
- if (S_PM_020_Value == 0)
- {
- errorMessage = "系统参数产品回收-次品未启用";
- }
- }
- else if (Convert.ToInt32(ds.Tables[0].Rows[0]["ScrapType"]) == 2)
- {
- // 半检
- if (S_PM_018_Value == 0)
- {
- errorMessage = "系统参数产品回收-半检不合格未启用";
- }
- }
- else if (Convert.ToInt32(ds.Tables[0].Rows[0]["ScrapType"]) == 3)
- {
- // 复检
- if (S_PM_019_Value == 0)
- {
- errorMessage = "系统参数产品回收-复检不合格未启用";
- }
- }
- }
- }
- #endregion
- return errorMessage;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 按条码判定是否为首节点
- /// 从TP_PM_GroutingDailyDetail表中的BEGINNINGFLAG字段判定是否为首节点
- /// "0":非首节点,"1":首节点
- /// </summary>
- /// <param name="oracleTrConn">数据连接</param>
- /// <param name="barCode">条码</param>
- /// <returns>是否首节点</returns>
- /// xuwei add 2019-09-23
- //public static bool IsNodeBegin(IDBTransaction oracleTrConn, string barCode)
- //{
- // bool result = false;
- // try
- // {
- // if (barCode != "")
- // {
- // string flag = oracleTrConn.GetSqlResultToStr($@"select BEGINNINGFLAG as flag
- // from TP_PM_GroutingDailyDetail
- // where BARCODE = {barCode}");
- // if (flag == "") throw new Exception("条码无效!请检查!");
- // result = flag == "0" ? true : false;
- // }
- // }
- // catch (Exception ex)
- // {
- // throw ex;
- // }
- // return result;
- //}
- //public static bool IsNodeBegin(IDBConnection oracleTrConn, string barCode)
- //{
- // bool result = false;
- // try
- // {
- // if (barCode != "")
- // {
- // string flag = oracleTrConn.GetSqlResultToStr($@"select BEGINNINGFLAG as flag
- // from TP_PM_GroutingDailyDetail
- // where BARCODE = {barCode}");
- // if (flag == "") throw new Exception("条码无效!请检查!");
- // result = flag == "0" ? true : false;
- // }
- // }
- // catch (Exception ex)
- // {
- // throw ex;
- // }
- // return result;
- //}
- /// <summary>
- /// 按条码判定是否为首节点(调整为复用方法)
- /// 从TP_PM_GroutingDailyDetail表中的BEGINNINGFLAG字段判定是否为首节点
- /// "0":非首节点,"1":首节点,"-1":条码无效
- /// </summary>
- /// <param name="oracleTrConn">数据连接</param>
- /// <param name="barCode">条码</param>
- /// <returns>是否首节点</returns>
- /// xuwei add 2019-09-26
- public static int IsNodeBegin<T>(T oracleTrConn, string barCode)
- {
- Type t = typeof(T);
- int result = -1;
- try
- {
- if (barCode != "")
- {
- OracleParameter[] parasNew = new OracleParameter[]{
- new OracleParameter(":barcode",barCode) };
- string flag = t.GetMethod("GetSqlResultToStr")
- .Invoke(oracleTrConn, new object[] { $@"select BEGINNINGFLAG as flag
- from TP_PM_GroutingDailyDetail
- where BARCODE = :barcode", parasNew }).ToString();
- //if (flag == "") throw new Exception("无效条码,请检查!");
- //xuwei fix 2019-09-26 找不到和非首节点均返回0
- // 返修指定首节点时,判断错误
- if (string.IsNullOrWhiteSpace(flag))
- {
- return -1;
- }
- result = (flag == "0" ? 1 : 0);
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- return result;
- }
- }
- }
|