Export.cs 318 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Configuration;
  6. using Curtain.DataAccess;
  7. using Curtain.Log;
  8. using System.Data;
  9. using System.Drawing;
  10. using Newtonsoft.Json.Linq;
  11. using Newtonsoft.Json;
  12. /// <summary>
  13. /// Export 的摘要说明
  14. /// </summary>
  15. public static class Export
  16. {
  17. public static Boolean getRunningFlag()
  18. {
  19. using (IDataAccess conn = DataAccess.Create())
  20. {
  21. String sqlStr = @"
  22. SELECT
  23. SETTINGVALUE
  24. FROM
  25. TP_MST_SYSTEMSETTING
  26. WHERE
  27. SETTINGCODE = 'S_PM_025'
  28. ";
  29. object obj = conn.ExecuteScalar(sqlStr);
  30. if (obj + "" == "0" )
  31. {
  32. return true;
  33. }
  34. else
  35. {
  36. return false;
  37. }
  38. }
  39. }
  40. public static void setRunning()
  41. {
  42. using (IDataAccess conn = DataAccess.Create())
  43. {
  44. String sqlStr = @"
  45. UPDATE
  46. TP_MST_SYSTEMSETTING
  47. SET
  48. SETTINGVALUE = '1'
  49. WHERE
  50. SETTINGCODE = 'S_PM_025'
  51. ";
  52. int num = conn.ExecuteNonQuery(sqlStr);
  53. if (num > 0) {
  54. Curtain.Log.Logger.Debug("设置结转运行中!");
  55. }
  56. }
  57. }
  58. public static void setSleeping()
  59. {
  60. using (IDataAccess conn = DataAccess.Create())
  61. {
  62. String sqlStr = @"
  63. UPDATE
  64. TP_MST_SYSTEMSETTING
  65. SET
  66. SETTINGVALUE = '0'
  67. WHERE
  68. SETTINGCODE = 'S_PM_025'
  69. ";
  70. int num = conn.ExecuteNonQuery(sqlStr);
  71. if (num > 0)
  72. {
  73. Curtain.Log.Logger.Debug("设置结转等待中!");
  74. }
  75. }
  76. }
  77. #region 结转整理
  78. public static void export001()
  79. {
  80. using (IDataAccess conn = DataAccess.Create())
  81. {
  82. try
  83. {
  84. Curtain.Log.Logger.Debug("export001注浆产品存坯汇总表结转开始!");
  85. conn.Open();
  86. conn.BeginTransaction();
  87. //2021-07-12 dongyan 修正什么问题
  88. int result = 0;
  89. int result1 = 0;
  90. int m = DateTime.Now.AddMonths(-1).Month;
  91. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  92. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  93. int c = Convert.ToInt32(b + a);
  94. String sqlStr = @"delete AJZ_RPT001_M WHERE FORWARDTIME = @C@";
  95. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  96. DateTime dayBegin = new DateTime();
  97. DateTime dayEnd = new DateTime();
  98. for (int i = m; i <= m; i++)
  99. {
  100. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  101. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  102. String sqlStr1 = @" INSERT INTO AJZ_RPT001_M SELECT * FROM
  103. (
  104. SELECT
  105. T.GOODSID AS 产品ID,
  106. DECODE(GROUPING_ID ( T.GOODSTYPECODE2, T.GOODSID ),3,'总计',1,'合计[' || T.GOODSTYPENAME2 || ']',T.GOODSTYPENAME2 ) AS 产品大类,
  107. T.GOODSTYPENAME AS 产品类别,
  108. T.GOODSCODE AS 产品编码,
  109. '0' AS 工号,
  110. SUM( T.RDCOUNT ) AS 存坯数,
  111. T.GLDCOUNT AS 模具数,
  112. T.RDDAYS AS 存坯天数,
  113. T.RESERVEDDAYS AS 应存天数,
  114. SUM( T.PROFITNUM ) AS 盈亏坯数 ,
  115. '0' AS 产品小类,
  116. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  117. FROM
  118. (
  119. SELECT
  120. GT2.GOODSTYPECODE GOODSTYPECODE2,
  121. GT2.GOODSTYPENAME GOODSTYPENAME2,
  122. GDRD.GOODSID,
  123. GDRD.GOODSCODE,
  124. GDRD.GOODSTYPENAME,
  125. GDRD.GDDC RDCOUNT, -- 存坯数
  126. RDD.GLDCOUNT, -- 模具数
  127. CASE WHEN RDD.GLDCOUNT IS NOT NULL AND RDD.GLDCOUNT > 0 THEN ROUND( GDRD.GDDC / RDD.GLDCOUNT, 2 ) ELSE NULL END RDDAYS, -- 存坯天数
  128. GDRD.RESERVEDDAYS, -- 应存天数
  129. ( GDRD.GDDC - GDRD.RESERVEDDAYS * RDD.GLDCOUNT ) PROFITNUM --盈亏坯数
  130. FROM
  131. (
  132. SELECT
  133. GDD.GOODSID,
  134. GDD.GOODSCODE,
  135. G.RESERVEDDAYS,
  136. SUBSTR( GT.GOODSTYPECODE, 1, 6 ) GOODSTYPECODE2,
  137. GT.GOODSTYPENAME,
  138. COUNT( * ) GDDC
  139. FROM
  140. TP_PM_GROUTINGDAILYDETAIL GDD
  141. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  142. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  143. WHERE
  144. GDD.ACCOUNTID = 1
  145. AND GDD.VALUEFLAG = '1'
  146. AND GDD.GROUTINGFLAG = '1'
  147. AND GDD.BARCODE IS NOT NULL
  148. AND GDD.SCRAPFLAG = '0'
  149. AND GDD.DELIVERFLAG = '0'
  150. --查询条件
  151. -- AND (GDD.GROUTINGDATE BETWEEN to_date(@DATEBEGIN@,'yyyy-mm-dd') AND to_date(@DATEEND@,'yyyy-mm-dd'))
  152. AND GDD.GROUTINGDATE >= @DATEBEGIN@
  153. AND GDD.GROUTINGDATE <= @DATEEND@
  154. GROUP BY
  155. GT.GOODSTYPECODE,
  156. GT.GOODSTYPENAME,
  157. GDD.GOODSID,
  158. GDD.GOODSCODE,
  159. G.RESERVEDDAYS
  160. ) GDRD
  161. LEFT JOIN (
  162. SELECT
  163. GLD.GOODSID,
  164. COUNT( * ) GLDCOUNT
  165. FROM
  166. TP_PC_GROUTINGLINEDETAIL GLD
  167. INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = GLD.GROUTINGLINEID
  168. WHERE
  169. GLD.VALUEFLAG = '1'
  170. AND GLD.GMOULDSTATUS = 1
  171. AND GL.VALUEFLAG = '1'
  172. AND GL.GMOULDSTATUS = 1
  173. GROUP BY
  174. GLD.GOODSID
  175. ) RDD ON RDD.GOODSID = GDRD.GOODSID
  176. INNER JOIN TP_MST_GOODSTYPE GT2 ON GT2.ACCOUNTID = 1
  177. AND GT2.GOODSTYPECODE = GDRD.GOODSTYPECODE2
  178. ORDER BY
  179. GT2.GOODSTYPECODE,
  180. GDRD.GOODSCODE
  181. ) T
  182. GROUP BY
  183. GROUPING SETS (
  184. (T.GOODSTYPECODE2,T.GOODSTYPENAME2,T.GOODSTYPENAME,T.GOODSID,T.GOODSCODE,T.GLDCOUNT,T.RDDAYS,T.RESERVEDDAYS),
  185. (T.GOODSTYPECODE2, T.GOODSTYPENAME2),
  186. ( )
  187. )
  188. ) D WHERE D.产品编码 IS NOT NULL
  189. ";
  190. List<CDAParameter> sqlPara = new List<CDAParameter>();
  191. sqlPara.Add(new CDAParameter("I", i));
  192. sqlPara.Add(new CDAParameter("YEAR", b));
  193. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  194. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  195. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  196. String Str = @"delete AJZ_RPT001_D WHERE FORWARDTIME = @C@";
  197. conn.ExecuteNonQuery(Str, new CDAParameter("C", c));
  198. String sqlStr2 = @"
  199. INSERT INTO AJZ_RPT001_D
  200. SELECT
  201. GDD.BARCODE AS 产品条码,
  202. GDD.GROUTINGLINECODE AS 成型线号,
  203. GDD.GROUTINGMOULDCODE AS 模具编号,
  204. GDD.GOODSCODE AS 产品编码,
  205. GDD.USERCODE AS 成型工号,
  206. TO_CHAR(GDD.GROUTINGDATE,'yyyy-mm-dd') AS 注浆日期,
  207. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  208. FROM
  209. TP_PM_GROUTINGDAILYDETAIL GDD
  210. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  211. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  212. WHERE
  213. GDD.VALUEFLAG = '1'
  214. AND GDD.GROUTINGFLAG = '1'
  215. AND GDD.BARCODE IS NOT NULL
  216. AND GDD.SCRAPFLAG = '0'
  217. AND GDD.DELIVERFLAG = '0'
  218. AND GDD.GROUTINGDATE >= @DATEBEGIN@
  219. AND GDD.GROUTINGDATE <= @DATEEND@
  220. ";
  221. List<CDAParameter> sqlPara1 = new List<CDAParameter>();
  222. sqlPara1.Add(new CDAParameter("I", i));
  223. sqlPara1.Add(new CDAParameter("YEAR", b));
  224. sqlPara1.Add(new CDAParameter("DATEEND", dayEnd));
  225. sqlPara1.Add(new CDAParameter("DATEBEGIN", dayBegin));
  226. result1 = conn.ExecuteNonQuery(sqlStr2, sqlPara1.ToArray());
  227. }
  228. conn.Commit();
  229. if (result > 0 && result1 > 0)
  230. {
  231. Curtain.Log.Logger.Debug(b + "年" + a + "月:export001注浆产品存坯汇总表结转成功!");
  232. }
  233. else
  234. {
  235. Curtain.Log.Logger.Debug(b + "年" + a + "月:export001注浆产品存坯汇总表结转0条!");
  236. }
  237. }
  238. catch (Exception ex)
  239. {
  240. conn.Rollback();
  241. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export001注浆产品存坯汇总表结转失败!");
  242. Curtain.Log.Logger.Error(ex);
  243. }
  244. finally
  245. {
  246. conn.Close();
  247. }
  248. }
  249. }
  250. public static void export002()
  251. {
  252. using (IDataAccess conn = DataAccess.Create())
  253. {
  254. try
  255. {
  256. Curtain.Log.Logger.Debug("export002成型工号存坯汇总表结转开始!");
  257. conn.Open();
  258. conn.BeginTransaction();
  259. //2021-07-12 dongyan 修正什么问题
  260. int result = 0;
  261. int result1 = 0;
  262. int m = DateTime.Now.AddMonths(-1).Month;
  263. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  264. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  265. int c = Convert.ToInt32(b + a);
  266. String sqlStr = @"delete AJZ_RPT002_M WHERE FORWARDTIME = @C@";
  267. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  268. DateTime dayBegin = new DateTime();
  269. DateTime dayEnd = new DateTime();
  270. String Str = @"delete AJZ_RPT002_D WHERE FORWARDTIME = @C@";
  271. conn.ExecuteNonQuery(Str, new CDAParameter("C", c));
  272. for (int i = m; i <= m; i++)
  273. {
  274. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  275. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  276. String sqlStr1 = @"
  277. INSERT INTO AJZ_RPT002_M SELECT * FROM (SELECT
  278. --GROUPING_ID ( T.GOODSTYPECODE2, T.GOODSID ) GID,
  279. --T.GOODSTYPECODE2,
  280. T.GOODSID AS 产品ID,
  281. DECODE(GROUPING_ID ( T.GOODSTYPECODE2, T.GOODSID ),3,'总计',1,'合计[' || T.GOODSTYPENAME2 || ']',T.GOODSTYPENAME2 ) AS 产品类别,
  282. T.GOODSCODE AS 产品编码,
  283. --T.GROUTINGLINEID AS 成型线ID,
  284. T.GROUTINGLINECODE AS 成型线号,
  285. --T.USERID AS 用户ID,
  286. T.USERCODE AS 成型工号,
  287. SUM( T.RDCOUNT ) AS 存坯数,
  288. T.GLDCOUNT AS 模具数,
  289. T.RDDAYS AS 存坯天数,
  290. T.RESERVEDDAYS AS 应存天数,
  291. SUM( T.PROFITNUM ) AS 盈亏坯数 ,
  292. '0' as GOODSTYPECODE,
  293. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  294. FROM
  295. (
  296. SELECT
  297. GT2.GOODSTYPECODE GOODSTYPECODE2,
  298. GT2.GOODSTYPENAME GOODSTYPENAME2,
  299. GDRD.GOODSID,
  300. GDRD.GOODSCODE,
  301. GDRD.GROUTINGLINEID,
  302. GDRD.GROUTINGLINECODE,
  303. GDRD.USERID,
  304. GDRD.USERCODE,
  305. GDRD.GDDC RDCOUNT, -- 存坯数
  306. RDD.GLDCOUNT, -- 模具数
  307. CASE WHEN RDD.GLDCOUNT IS NOT NULL AND RDD.GLDCOUNT > 0 THEN ROUND( GDRD.GDDC / RDD.GLDCOUNT, 2 ) ELSE NULL END RDDAYS, -- 存坯天数
  308. GDRD.RESERVEDDAYS, -- 应存天数
  309. ( GDRD.GDDC - GDRD.RESERVEDDAYS * RDD.GLDCOUNT ) PROFITNUM --盈亏坯数
  310. FROM
  311. (
  312. SELECT
  313. GDD.GOODSID,
  314. GDD.GOODSCODE,
  315. GDD.GROUTINGLINEID,
  316. GDD.GROUTINGLINECODE,
  317. GDD.USERID,
  318. GDD.USERCODE,
  319. G.RESERVEDDAYS,
  320. SUBSTR( GT.GOODSTYPECODE, 1, 6 ) GOODSTYPECODE2,
  321. COUNT( * ) GDDC
  322. FROM
  323. TP_PM_GROUTINGDAILYDETAIL GDD
  324. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  325. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  326. WHERE
  327. GDD.VALUEFLAG = '1'
  328. AND GDD.GROUTINGFLAG = '1'
  329. AND GDD.BARCODE IS NOT NULL
  330. AND GDD.SCRAPFLAG = '0'
  331. AND GDD.DELIVERFLAG = '0'
  332. -- AND (@DATEBEGIN@ IS NULL OR GDD.GROUTINGDATE BETWEEN to_date(@DATEBEGIN@,'yyyy-mm-dd') AND to_date(@DATEEND@,'yyyy-mm-dd'))
  333. AND GDD.GROUTINGDATE >= @DATEBEGIN@
  334. AND GDD.GROUTINGDATE <= @DATEEND@
  335. GROUP BY
  336. GT.GOODSTYPECODE,
  337. GDD.GOODSID,
  338. GDD.GOODSCODE,
  339. GDD.GROUTINGLINEID,
  340. GDD.GROUTINGLINECODE,
  341. GDD.USERID,
  342. GDD.USERCODE,
  343. G.RESERVEDDAYS
  344. ) GDRD
  345. LEFT JOIN (
  346. SELECT
  347. GLD.GOODSID,
  348. GLD.GROUTINGLINEID,
  349. COUNT( * ) GLDCOUNT
  350. FROM
  351. TP_PC_GROUTINGLINEDETAIL GLD
  352. INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = GLD.GROUTINGLINEID
  353. WHERE
  354. GLD.VALUEFLAG = '1'
  355. AND GLD.GMOULDSTATUS = 1
  356. AND GL.ACCOUNTID = 1
  357. AND GL.VALUEFLAG = '1'
  358. AND GL.GMOULDSTATUS = 1
  359. GROUP BY
  360. GLD.GOODSID,
  361. GLD.GROUTINGLINEID
  362. ) RDD ON RDD.GOODSID = GDRD.GOODSID
  363. AND RDD.GROUTINGLINEID = GDRD.GROUTINGLINEID
  364. INNER JOIN TP_MST_GOODSTYPE GT2 ON GT2.ACCOUNTID = 1
  365. AND GT2.GOODSTYPECODE = GDRD.GOODSTYPECODE2
  366. ORDER BY
  367. GT2.GOODSTYPECODE,
  368. GDRD.GOODSCODE,
  369. GDRD.GROUTINGLINECODE,
  370. GDRD.USERCODE
  371. ) T
  372. GROUP BY
  373. GROUPING SETS (
  374. (T.GOODSTYPECODE2,T.GOODSTYPENAME2,T.GOODSID,T.GOODSCODE,T.GROUTINGLINEID,T.GROUTINGLINECODE,T.USERID,T.USERCODE,T.GLDCOUNT,T.RDDAYS,T.RESERVEDDAYS),
  375. (T.GOODSTYPECODE2, T.GOODSTYPENAME2),
  376. ( )
  377. )
  378. )D WHERE D.产品编码 IS not null
  379. ";
  380. List<CDAParameter> sqlPara = new List<CDAParameter>();
  381. sqlPara.Add(new CDAParameter("I", i));
  382. sqlPara.Add(new CDAParameter("YEAR", b));
  383. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  384. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  385. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  386. String sqlStr2 = @"INSERT INTO AJZ_RPT002_D SELECT
  387. GDD.BARCODE AS 产品条码,
  388. GDD.GROUTINGLINECODE AS 成型线号,
  389. GDD.GROUTINGMOULDCODE AS 模具编号,
  390. GDD.GOODSCODE AS 产品编码,
  391. GDD.USERCODE AS 成型工号,
  392. TO_CHAR(GDD.GROUTINGDATE,'yyyy-mm-dd') AS 注浆日期,
  393. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  394. FROM
  395. TP_PM_GROUTINGDAILYDETAIL GDD
  396. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  397. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  398. WHERE
  399. GDD.VALUEFLAG = '1'
  400. AND GDD.GROUTINGFLAG = '1'
  401. AND GDD.BARCODE IS NOT NULL
  402. AND GDD.SCRAPFLAG = '0'
  403. AND GDD.DELIVERFLAG = '0'
  404. -- AND (@DATEBEGIN@ IS NULL OR GDD.GROUTINGDATE BETWEEN @DATEBEGIN@ AND @DATEEND@)
  405. AND GDD.GROUTINGDATE >= @DATEBEGIN@
  406. AND GDD.GROUTINGDATE <= @DATEEND@
  407. ";
  408. List<CDAParameter> sqlPara1 = new List<CDAParameter>();
  409. sqlPara1.Add(new CDAParameter("I", i));
  410. sqlPara1.Add(new CDAParameter("YEAR", b));
  411. sqlPara1.Add(new CDAParameter("DATEEND", dayEnd));
  412. sqlPara1.Add(new CDAParameter("DATEBEGIN", dayBegin));
  413. result1 = conn.ExecuteNonQuery(sqlStr2, sqlPara1.ToArray());
  414. }
  415. conn.Commit();
  416. if (result > 0 && result1 > 0)
  417. {
  418. Curtain.Log.Logger.Debug(b + "年" + a + "月:export002成型工号存坯汇总表结转成功!");
  419. }
  420. else
  421. {
  422. Curtain.Log.Logger.Debug(b + "年" + a + "月:export002成型工号存坯汇总表结转0条!");
  423. }
  424. }
  425. catch (Exception ex)
  426. {
  427. conn.Rollback();
  428. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export002成型工号存坯汇总表结转失败!");
  429. Curtain.Log.Logger.Error(ex);
  430. }
  431. finally
  432. {
  433. conn.Close();
  434. }
  435. }
  436. }
  437. public static void export006()
  438. {
  439. using (IDataAccess conn = DataAccess.Create())
  440. {
  441. //2021-07-12 dongyan 修正什么问题
  442. Curtain.Log.Logger.Debug("export006员工出勤汇总表结转开始!");
  443. int result = 0;
  444. int result1 = 0;
  445. int m = DateTime.Now.AddMonths(-1).Month;
  446. DateTime dayBegin = new DateTime();
  447. DateTime dayEnd = new DateTime();
  448. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  449. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  450. int c = Convert.ToInt32(b + a);
  451. conn.Open();
  452. conn.BeginTransaction();
  453. try
  454. {
  455. String sqlStr = @"delete AJZ_RPT006_M WHERE FORWARDTIME = @C@";
  456. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  457. String Str = @"delete AJZ_RPT006_D WHERE FORWARDTIME = @C@";
  458. conn.ExecuteNonQuery(Str, new CDAParameter("C", c));
  459. for (int i = m; i <= m; i++)
  460. {
  461. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  462. dayEnd = dayBegin.AddMonths(1);
  463. String sqlStr1 = @"
  464. insert into AJZ_RPT006_M
  465. SELECT
  466. U.USERID,
  467. F.STAFFID,
  468. O.ORGANIZATIONNAME AS 部门,
  469. U.USERCODE AS 工号,
  470. F.STAFFCODE AS 员工编码,
  471. F.STAFFNAME AS 员工姓名,
  472. CQ.CQTS AS 出勤天数,
  473. ZCL.ZCLS AS 总产量,
  474. HGL.CYS AS 出窑数,
  475. HGL.BHGL AS 不合格率 ,
  476. O.ORGANIZATIONCODE,
  477. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0')),
  478. 0
  479. FROM
  480. (
  481. -- 统计出勤
  482. SELECT
  483. T.STAFFID,
  484. T.USERID,
  485. COUNT( * ) AS CQTS
  486. FROM
  487. (
  488. SELECT DISTINCT
  489. CD.USERID,
  490. CD.STAFFID,
  491. C.ACCOUNTDATE
  492. FROM
  493. TP_PC_CLASSESDETAIL CD
  494. INNER JOIN TP_PC_CLASSESSETTING C ON C.CLASSESSETTINGID = CD.CLASSESSETTINGID
  495. INNER JOIN TP_MST_USER U ON U.USERID = CD.USERID
  496. INNER JOIN TP_MST_ORGANIZATION ORG ON ORG.ORGANIZATIONID = U.ORGANIZATIONID
  497. WHERE
  498. C.ACCOUNTDATE >= @DATEBEGIN@
  499. AND C.ACCOUNTDATE < @DATEEND@
  500. ) T
  501. GROUP BY
  502. T.USERID,
  503. T.STAFFID
  504. ) CQ
  505. LEFT JOIN (
  506. --总产量
  507. SELECT
  508. CD.STAFFID,
  509. CD.USERID,
  510. COUNT( * ) AS ZCLS
  511. FROM
  512. TP_PM_PRODUCTIONDATA PD
  513. INNER JOIN TP_PC_CLASSESDETAIL CD ON CD.CLASSESSETTINGID = PD.CLASSESSETTINGID
  514. WHERE
  515. PD.VALUEFLAG = '1'
  516. AND PD.CREATETIME >= @DATEBEGIN@
  517. AND PD.CREATETIME < @DATEEND@
  518. GROUP BY
  519. CD.USERID,
  520. CD.STAFFID
  521. ) ZCL ON CQ.USERID = ZCL.USERID
  522. AND CQ.STAFFID = ZCL.STAFFID
  523. FULL JOIN (
  524. --不合格率
  525. SELECT
  526. P.STAFFID,
  527. P.USERID,
  528. COUNT( * ) AS CYS,
  529. ROUND( SUM( DECODE( P.GOODSLEVELTYPEID, 6, 1, 7, 1, 0 ) ) / COUNT( * ), 4 ) AS BHGL
  530. FROM
  531. (
  532. SELECT DISTINCT
  533. CD.STAFFID,
  534. CD.USERID,
  535. T.GOODSLEVELTYPEID,
  536. T.BARCODE
  537. FROM
  538. ( SELECT BARCODE, GOODSLEVELTYPEID FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID = 13 AND VALUEFLAG = '1' AND CHECKBATCHNO = 1 AND CHECKTIME >= @DATEBEGIN@ AND CHECKTIME < @DATEEND@ ) T
  539. INNER JOIN TP_PM_PRODUCTIONDATA PD ON T.BARCODE = PD.BARCODE
  540. INNER JOIN TP_PC_CLASSESDETAIL CD ON CD.CLASSESSETTINGID = PD.CLASSESSETTINGID
  541. INNER JOIN TP_MST_USER U ON U.USERID = CD.USERID
  542. INNER JOIN TP_MST_ORGANIZATION ORG ON ORG.ORGANIZATIONID = U.ORGANIZATIONID
  543. WHERE
  544. PD.KILNCARBATCHNO IS NULL
  545. AND PD.VALUEFLAG = '1'
  546. ) P
  547. GROUP BY
  548. P.STAFFID,
  549. P.USERID
  550. ) HGL ON HGL.USERID = CQ.USERID
  551. AND HGL.STAFFID = CQ.STAFFID
  552. INNER JOIN TP_HR_STAFF F ON F.STAFFID = NVL( CQ.STAFFID, HGL.STAFFID )
  553. INNER JOIN TP_MST_USER U ON U.USERID = NVL( CQ.USERID, HGL.USERID )
  554. INNER JOIN TP_MST_ORGANIZATION O ON U.ORGANIZATIONID = O.ORGANIZATIONID
  555. ";
  556. List<CDAParameter> sqlPara1 = new List<CDAParameter>();
  557. sqlPara1.Add(new CDAParameter("I", i));
  558. sqlPara1.Add(new CDAParameter("YEAR", b));
  559. sqlPara1.Add(new CDAParameter("DATEEND", dayEnd));
  560. sqlPara1.Add(new CDAParameter("DATEBEGIN", dayBegin));
  561. result += conn.ExecuteNonQuery(sqlStr1, sqlPara1.ToArray());
  562. String sqlStr2 = @"INSERT INTO AJZ_RPT006_D
  563. select * from (
  564. SELECT
  565. --TO_CHAR(CQ.日期,'yyyy-mm-dd') as 日期,
  566. O.ORGANIZATIONNAME as 部门,
  567. U.USERCODE 工号,
  568. F.STAFFCODE 员工编码,
  569. F.STAFFNAME 员工姓名,
  570. ZCL.产品,
  571. ZCL.产量,
  572. ZCL.产量出窑数,
  573. ZCL.产量合格数,
  574. '0' as STAFFID,
  575. '0',
  576. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  577. FROM
  578. /*(
  579. -- 统计出勤
  580. SELECT DISTINCT
  581. S.USERID AS 用户ID,
  582. CD.STAFFID AS 员工ID
  583. --,TRUNC(S.ACCOUNTDATE) AS 日期
  584. FROM
  585. TP_PC_CLASSESSETTING S
  586. INNER JOIN TP_PC_CLASSESDETAIL CD ON CD.CLASSESSETTINGID = S.CLASSESSETTINGID
  587. WHERE
  588. S.ACCOUNTDATE >= @DATEBEGIN@
  589. AND S.ACCOUNTDATE < @DATEEND@
  590. ) CQ
  591. LEFT JOIN */
  592. (
  593. --产量
  594. SELECT --DISTINCT
  595. --TRUNC(PD.CREATETIME) AS 日期,
  596. CD.STAFFID AS 员工ID,
  597. CD.USERID AS 用户ID,
  598. PD.GOODSCODE AS 产品,
  599. COUNT(DISTINCT PD.PRODUCTIONDATAID) AS 产量,
  600. SUM(DECODE(OUTK.PRODUCTIONDATAID, NULL ,0 ,1)) 产量出窑数,
  601. SUM(DECODE(OUTK.GOODSLEVELTYPEID, 4 ,1 ,5, 1, 0)) 产量合格数
  602. FROM
  603. TP_PM_PRODUCTIONDATA PD
  604. INNER JOIN TP_PC_CLASSESDETAIL CD ON CD.CLASSESSETTINGID = PD.CLASSESSETTINGID
  605. --INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.CLASSESSETTINGID = S.CLASSESSETTINGID
  606. LEFT JOIN TP_PM_PRODUCTIONDATA OUTK ON OUTK.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
  607. AND OUTK.VALUEFLAG = '1' AND OUTK.PROCEDUREID = 13 AND OUTK.ISREFIRE = '0'
  608. WHERE
  609. PD.VALUEFLAG = '1'
  610. AND PD.CREATETIME >= @DATEBEGIN@
  611. AND PD.CREATETIME < @DATEEND@
  612. GROUP BY
  613. --TRUNC(PD.CREATETIME),
  614. CD.USERID,
  615. CD.STAFFID,
  616. PD.GOODSCODE
  617. ) ZCL --ON CQ.员工ID =ZCL.员工ID AND CQ.用户ID = ZCL.用户ID --AND TRUNC(CQ.日期) = TRUNC(ZCL.日期)
  618. INNER JOIN TP_HR_STAFF F ON F.STAFFID = ZCL.员工ID
  619. INNER JOIN TP_MST_USER U ON U.USERID = ZCL.用户ID
  620. INNER JOIN TP_MST_ORGANIZATION O ON U.ORGANIZATIONID = O.ORGANIZATIONID
  621. )";
  622. List<CDAParameter> sqlPara = new List<CDAParameter>();
  623. sqlPara.Add(new CDAParameter("I", i));
  624. sqlPara.Add(new CDAParameter("YEAR", b));
  625. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  626. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  627. result1 += conn.ExecuteNonQuery(sqlStr2, sqlPara.ToArray());
  628. }
  629. conn.Commit();
  630. }
  631. catch (Exception ex)
  632. {
  633. conn.Rollback();
  634. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export006员工出勤汇总表结转失败!");
  635. }
  636. finally
  637. {
  638. conn.Close();
  639. }
  640. if (result > 0 && result1 > 0)
  641. {
  642. Curtain.Log.Logger.Debug(b + "年" + a + "月:export006员工出勤汇总表结转成功!");
  643. }
  644. else
  645. {
  646. Curtain.Log.Logger.Debug(b + "年" + a + "月:export006员工出勤汇总表结转0条!");
  647. }
  648. }
  649. }
  650. public static void export008()
  651. {
  652. using (IDataAccess conn = DataAccess.Create())
  653. {
  654. try
  655. {
  656. Curtain.Log.Logger.Debug("export008 产品合格数统计表结转开始!");
  657. conn.Open();
  658. conn.BeginTransaction();
  659. //2021-07-12 dongyan 修正什么问题
  660. int result = 0;
  661. int m = DateTime.Now.AddMonths(-1).Month;
  662. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  663. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  664. int c = Convert.ToInt32(b + a);
  665. String sqlStr = @"delete AJZ_RPT008 WHERE FORWARDTIME = @C@";
  666. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  667. DateTime dayBegin = new DateTime();
  668. DateTime dayEnd = new DateTime();
  669. for (int i = m; i <= m; i++)
  670. {
  671. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  672. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  673. String sqlStr1 = @" INSERT INTO AJZ_RPT008
  674. SELECT
  675. BUILDINGNO,
  676. GOODSCODE,
  677. GOODSNAME ,
  678. GOODSMODEL ,
  679. DICTIONARYVALUE ,
  680. LOGONAME ,
  681. OUT_K_B ,
  682. OUT_K_R ,
  683. OK_B ,
  684. OK_R ,
  685. OK_H ,
  686. OK_ALL ,
  687. OK_COUNT ,
  688. OUT_K_ALL ,
  689. END_B ,
  690. END_R ,
  691. END_H ,
  692. END_ALL ,
  693. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0')),
  694. GLAZETYPEID,
  695. LOGOID
  696. FROM
  697. (
  698. SELECT
  699. DECODE(GID, 3, T.楼号 || '合计' , 15, T.楼号 || '合计', T.楼号) AS BUILDINGNO
  700. ,DECODE(GID, 15, '--', T.产品编码) AS GOODSCODE
  701. ,DECODE(GID, 15, '--', T.产品名称) AS GOODSNAME
  702. ,DECODE(GID, 15, '--', T.产品型号) AS GOODSMODEL
  703. ,DECODE(GID, 3, '--' , 15, '--', T.釉料) AS DICTIONARYVALUE
  704. ,DECODE(GID, 3, '--' , 15, '--', T.商标) AS LOGONAME
  705. ,T.出窑数_本烧 AS OUT_K_B
  706. ,T.出窑数_重烧 AS OUT_K_R
  707. ,T.合格数_本烧 AS OK_B
  708. ,T.合格数_重烧 AS OK_R
  709. ,T.合格数_回收 AS OK_H
  710. ,T.合格数_合计 AS OK_ALL
  711. ,NVL(ROUND(T.合格数_合计 / DECODE(T.出窑数, 0, 1, T.出窑数), 4) * 100, 0) || '%' AS OK_COUNT
  712. ,T.包装数_本烧 AS END_B
  713. ,T.包装数_重烧 AS END_R
  714. ,T.包装数_回收 AS END_H
  715. ,T.包装数_合计 AS END_ALL
  716. ,T.出窑数 AS OUT_K_ALL
  717. ,T.釉料ID AS GLAZETYPEID
  718. ,T.商标ID AS LOGOID
  719. FROM (SELECT GROUPING_ID(L.BUILDINGNO, M.GOODSID, D.DICTIONARYVALUE, O.LOGONAME) AS GID
  720. ,L.BUILDINGNO AS 楼号
  721. ,M.GOODSID AS 产品ID
  722. ,M.GOODSCODE AS 产品编码
  723. ,M.GOODSNAME AS 产品名称
  724. ,M.GOODSMODEL AS 产品型号
  725. ,G.GLAZETYPEID AS 釉料ID
  726. ,D.DICTIONARYVALUE AS 釉料
  727. ,G.LOGOID AS 商标ID
  728. ,O.LOGONAME AS 商标
  729. ,SUM(TF.OUT_K_B) AS 出窑数_本烧
  730. ,SUM(TF.OUT_K_R) AS 出窑数_重烧
  731. ,SUM(TF.OUT_K_ALL) AS 出窑数
  732. ,SUM(TF.OK_B) AS 合格数_本烧
  733. ,SUM(TF.OK_R) AS 合格数_重烧
  734. ,SUM(TF.OK_H) AS 合格数_回收
  735. ,SUM(TF.OK_ALL) AS 合格数_合计
  736. ,SUM(TF.END_B) 包装数_本烧
  737. ,SUM(TF.END_R) 包装数_重烧
  738. ,SUM(TF.END_H) 包装数_回收
  739. ,SUM(TF.END_ALL) 包装数_合计
  740. FROM (SELECT 1 FLAG
  741. ,TP.GROUTINGDAILYDETAILID
  742. ,decode(TP.PROCEDUREID, 13, 1, 0) OUT_K_B
  743. ,decode(TP.PROCEDUREID, 35, 1, 0) OUT_K_R
  744. ,1 OUT_K_ALL
  745. ,0 OK_B
  746. ,0 OK_R
  747. ,0 OK_H
  748. ,0 OK_ALL
  749. ,0 END_B
  750. ,0 END_R
  751. ,0 END_H
  752. ,0 END_ALL
  753. FROM TP_PM_PRODUCTIONDATA TP
  754. WHERE TP.PROCEDUREID IN (13, 35)
  755. AND TP.Checkflag = 1
  756. AND TP.Createtime >= @DATEBEGIN@
  757. AND TP.Createtime <= @DATEEND@
  758. UNION ALL
  759. SELECT 2 FLAG
  760. ,P.GROUTINGDAILYDETAILID
  761. ,0 OUT_K_B
  762. ,0 OUT_K_R
  763. ,0 OUT_K_ALL
  764. ,CASE
  765. WHEN P.PROCEDUREID = 13 AND
  766. RPD.Productiondataid IS NULL THEN
  767. 1
  768. ELSE
  769. 0
  770. END OK_B
  771. ,CASE
  772. WHEN P.PROCEDUREID = 35 AND
  773. RPD.Productiondataid IS NULL THEN
  774. 1
  775. ELSE
  776. 0
  777. END OK_R
  778. ,CASE
  779. WHEN RPD.Productiondataid IS NOT NULL THEN
  780. 1
  781. ELSE
  782. 0
  783. END OK_H
  784. ,1 OK_ALL
  785. ,0 END_B
  786. ,0 END_R
  787. ,0 END_H
  788. ,0 END_ALL
  789. FROM (SELECT TP.PRODUCTIONDATAID
  790. ,TP.GROUTINGDAILYDETAILID
  791. ,TP.PROCEDUREID
  792. ,MAX(PMAX.PRODUCTIONDATAID) AS MAXPRODUCTIONDATAID
  793. FROM TP_PM_PRODUCTIONDATA TP
  794. LEFT JOIN TP_PM_PRODUCTIONDATA PMAX
  795. ON PMAX.GROUTINGDAILYDETAILID = TP.GROUTINGDAILYDETAILID
  796. AND PMAX.PRODUCTIONDATAID < TP.PRODUCTIONDATAID
  797. AND PMAX.VALUEFLAG = '1'
  798. WHERE TP.CHECKBATCHNO = 1
  799. AND TP.GOODSLEVELTYPEID IN (4, 5)
  800. AND TP.PROCEDUREID IN (13, 35)
  801. AND TP.CREATETIME >= @DATEBEGIN@
  802. AND TP.CREATETIME <= @DATEEND@
  803. GROUP BY TP.PRODUCTIONDATAID
  804. ,TP.GROUTINGDAILYDETAILID
  805. ,TP.PROCEDUREID) P
  806. LEFT JOIN TP_PM_PRODUCTIONDATA RPD
  807. ON RPD.PRODUCTIONDATAID = P.MAXPRODUCTIONDATAID
  808. AND RPD.Procedureid IN (20, 22, 23, 37)
  809. UNION ALL
  810. SELECT 3 FLAG
  811. ,fp.groutingdailydetailid
  812. ,0 OUT_K_B
  813. ,0 OUT_K_R
  814. ,0 OUT_K_ALL
  815. ,0 OK_B
  816. ,0 OK_R
  817. ,0 OK_H
  818. ,0 OK_ALL
  819. ,CASE
  820. WHEN SUM(CASE
  821. WHEN fp.isrefire = '6' OR
  822. p.productiondataid IS NOT NULL THEN
  823. 0
  824. ELSE
  825. 1
  826. END) > 0 THEN
  827. 1
  828. ELSE
  829. 0
  830. END END_B
  831. ,CASE
  832. WHEN SUM(CASE
  833. WHEN fp.isrefire = '0' OR
  834. p.productiondataid IS NOT NULL THEN
  835. 0
  836. ELSE
  837. 1
  838. END) > 0 THEN
  839. 1
  840. ELSE
  841. 0
  842. END END_R
  843. ,CASE
  844. WHEN SUM(CASE
  845. WHEN p.productiondataid IS NULL THEN
  846. 0
  847. ELSE
  848. 1
  849. END) > 0 THEN
  850. 1
  851. ELSE
  852. 0
  853. END END_H
  854. ,1 END_ALL
  855. FROM tp_pm_finishedproduct fp
  856. LEFT JOIN tp_pm_productiondata p
  857. ON p.groutingdailydetailid = fp.groutingdailydetailid
  858. AND p.procedureid IN (20, 22, 23, 37)
  859. WHERE fp.createtime >= @DATEBEGIN@
  860. AND fp.createtime <= @DATEEND@
  861. GROUP BY fp.groutingdailydetailid) TF
  862. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL G
  863. ON TF.GROUTINGDAILYDETAILID = G.GROUTINGDAILYDETAILID
  864. LEFT JOIN TP_PC_GROUTINGLINE L
  865. ON G.GROUTINGLINEID = L.GROUTINGLINEID
  866. LEFT JOIN TP_MST_DATADICTIONARY D
  867. ON G.GLAZETYPEID = D.DICTIONARYID
  868. LEFT JOIN TP_MST_LOGO O
  869. ON G.LOGOID = O.LOGOID
  870. LEFT JOIN TP_MST_GOODS M
  871. ON G.GOODSID = M.GOODSID
  872. GROUP BY GROUPING SETS((L.BUILDINGNO, M.GOODSID, M.GOODSCODE, M.GOODSNAME, M.GOODSMODEL, G.GLAZETYPEID, G.LOGOID, D.DICTIONARYVALUE, O.LOGONAME),(L.BUILDINGNO, M.GOODSID, M.GOODSCODE, M.GOODSNAME, M.GOODSMODEL),())
  873. ORDER BY L.BUILDINGNO
  874. ,M.GOODSCODE
  875. ,GID) T
  876. )
  877. ";
  878. List<CDAParameter> sqlPara = new List<CDAParameter>();
  879. sqlPara.Add(new CDAParameter("I", i));
  880. sqlPara.Add(new CDAParameter("YEAR", b));
  881. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  882. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  883. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  884. }
  885. conn.Commit();
  886. if (result > 0)
  887. {
  888. Curtain.Log.Logger.Debug(b + "年" + a + "月:export008产品合格数统计表结转成功!");
  889. }
  890. else
  891. {
  892. Curtain.Log.Logger.Debug(b + "年" + a + "月:export008产品合格数统计表结转0条!");
  893. }
  894. }
  895. catch (Exception ex)
  896. {
  897. conn.Rollback();
  898. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export008产品合格数统计表结转失败!");
  899. Curtain.Log.Logger.Error(ex);
  900. }
  901. finally
  902. {
  903. conn.Close();
  904. }
  905. }
  906. }
  907. public static void export009()
  908. {
  909. using (IDataAccess conn = DataAccess.Create())
  910. {
  911. try
  912. {
  913. Curtain.Log.Logger.Debug("export009 产品质量统计表结转开始!");
  914. conn.Open();
  915. conn.BeginTransaction();
  916. //2021-07-12 dongyan 修正什么问题
  917. int result = 0;
  918. int m = DateTime.Now.AddMonths(-1).Month;
  919. DateTime dayBegin = new DateTime();
  920. DateTime dayEnd = new DateTime();
  921. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  922. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  923. int c = Convert.ToInt32(b + a);
  924. string sqlStr = @"delete AJZ_RPT009 WHERE FORWARD_TIME = @C@";
  925. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  926. for (int i = m; i <= m; i++)
  927. {
  928. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  929. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  930. string sqlStr1 = @" INSERT INTO AJZ_RPT009
  931. SELECT * FROM (
  932. SELECT
  933. A.日期,
  934. A.楼号,
  935. NVL(A.本烧隧道窑_出窑数,0) AS 本烧隧道窑_出窑数,
  936. --NVL(A.本烧隧道窑_合格量 - A.本烧隧道窑_AA合格,0) AS 本烧隧道窑_合格量123,
  937. NVL(A.本烧隧道窑_合格量 - A.本烧隧道窑_AA合格 - A.本烧隧道窑_漏气研磨刷洗,0) AS 本烧隧道窑_合格量,
  938. NVL(A.本烧隧道窑_漏气合格,0) AS 本烧隧道窑_漏气合格,
  939. NVL(A.本烧隧道窑_研磨合格,0) AS 本烧隧道窑_研磨合格,
  940. NVL(A.本烧隧道窑_刷洗合格,0) AS 本烧隧道窑_刷洗合格,
  941. NVL(A.本烧隧道窑_AA合格,0) AS 本烧隧道窑_AA合格,
  942. NVL(ROUND((A.本烧隧道窑_合格量) /
  943. DECODE(A.本烧隧道窑_出窑数,0,1,A.本烧隧道窑_出窑数),4) * 100,0) AS 本烧隧道窑_合格率,
  944. NVL(A.本烧梭式窑_出窑数,0) AS 本烧梭式窑_出窑数,
  945. --NVL(A.本烧梭式窑_合格量 - A.本烧梭式窑_AA合格,0) AS 本烧梭式窑_合格量123,
  946. NVL(A.本烧梭式窑_合格量 - A.本烧梭式窑_AA合格 - A.本烧梭式窑_漏气研磨刷洗,0) AS 本烧梭式窑_合格量,
  947. NVL(A.本烧梭式窑_漏气合格,0) AS 本烧梭式窑_漏气合格,
  948. NVL(A.本烧梭式窑_研磨合格,0) AS 本烧梭式窑_研磨合格,
  949. NVL(A.本烧梭式窑_刷洗合格,0) AS 本烧梭式窑_刷洗合格,
  950. NVL(A.本烧梭式窑_AA合格,0) AS 本烧梭式窑_AA合格,
  951. NVL(ROUND((A.本烧梭式窑_合格量) /
  952. DECODE(A.本烧梭式窑_出窑数,0,1,A.本烧梭式窑_出窑数),4) * 100,0) AS 本烧梭式窑_合格率,
  953. NVL(A.本烧合计_出窑数,0) AS 本烧合计_出窑数,
  954. --NVL(A.本烧合计_合格量 - A.本烧合计_AA合格,0) AS 本烧合计_合格量123,
  955. NVL(A.本烧合计_合格量 - A.本烧合计_AA合格 - A.本烧合计_漏气研磨刷洗,0) AS 本烧合计_合格量,
  956. NVL(A.本烧合计_漏气合格,0) AS 本烧合计_漏气合格,
  957. NVL(A.本烧合计_研磨合格,0) AS 本烧合计_研磨合格,
  958. NVL(A.本烧合计_刷洗合格,0) AS 本烧合计_刷洗合格,
  959. NVL(A.本烧合计_AA合格,0) AS 本烧合计_AA合格,
  960. NVL(ROUND((A.本烧合计_合格量) /
  961. DECODE(A.本烧合计_出窑数,0,1,A.本烧合计_出窑数),4) * 100,0) AS 本烧合计_合格率,
  962. NVL(A.重烧_出窑数,0) AS 重烧_出窑数,
  963. --NVL(A.重烧_合格量 - A.重烧_AA合格,0) AS 重烧_合格量123,
  964. NVL(A.重烧_合格量 - A.重烧_AA合格 - A.重烧_漏气研磨刷洗,0) AS 重烧_合格量,
  965. NVL(A.重烧_漏气合格,0) AS 重烧_漏气合格,
  966. NVL(A.重烧_研磨合格,0) AS 重烧_研磨合格,
  967. NVL(A.重烧_刷洗合格,0) AS 重烧_刷洗合格,
  968. NVL(A.重烧_AA合格,0) AS 重烧_AA合格,
  969. NVL(ROUND((A.重烧_合格量) /
  970. DECODE(A.重烧_出窑数,0,1,A.重烧_出窑数),4) * 100,0) AS 重烧_合格率,
  971. NVL(A.综合_出窑数,0) - NVL(A.重烧_出窑数,0) AS 综合_出窑数,
  972. NVL(A.综合_合格量 - A.综合_AA合格 - A.综合_漏气研磨刷洗,0) AS 综合_合格量,
  973. NVL(A.综合_漏气合格,0) AS 综合_漏气合格,
  974. NVL(A.综合_研磨合格,0) AS 综合_研磨合格,
  975. NVL(A.综合_刷洗合格,0) AS 综合_刷洗合格,
  976. NVL(A.综合_AA合格,0) AS 综合_AA合格,
  977. NVL(ROUND((A.综合_合格量) /
  978. DECODE(A.综合_出窑数,0,1,A.综合_出窑数 - A.重烧_出窑数),4) * 100,0) AS 综合_合格率,
  979. NVL(A.本烧隧道窑_合格量,0) AS 本烧隧道窑_合格数1,
  980. NVL(A.本烧梭式窑_合格量,0) AS 本烧梭式窑_合格量1,
  981. NVL(A.本烧合计_合格量,0) AS 本烧合计_合格量1,
  982. NVL(A.重烧_合格量,0) AS 重烧_合格量1,
  983. NVL(A.综合_合格量,0) AS 综合_合格量1,
  984. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  985. FROM
  986. (
  987. SELECT
  988. DECODE(GROUPING_ID(C.CDATE, C.BUILDINGNO),0,TO_CHAR(C.CDATE, 'YYYY-MM-DD'),'合计') AS 日期,
  989. DECODE(GROUPING_ID(C.CDATE, C.BUILDINGNO), 0, C.BUILDINGNO, '--') AS 楼号,
  990. SUM(CASE WHEN C.MAXPRODUCTIONDATAID = -1 AND C.PROCEDUREID = 13 AND C.KILNID IN (2, 4) THEN C.CNUM ELSE 0 END) AS 本烧隧道窑_出窑数,
  991. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.KILNID IN (2, 4) THEN C.CNUM ELSE 0 END) AS 本烧隧道窑_合格量,
  992. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.KILNID IN (2, 4) AND C.P2 IN (22,23) THEN C.CNUM ELSE 0 END) AS 本烧隧道窑_AA合格,
  993. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.KILNID IN (2, 4) AND C.P2 IN (37,20,41) THEN C.CNUM ELSE 0 END) AS 本烧隧道窑_漏气研磨刷洗,
  994. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.KILNID IN (2, 4) AND C.P2 = 37 THEN C.CNUM ELSE 0 END) AS 本烧隧道窑_漏气合格,
  995. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.KILNID IN (2, 4) AND C.P2 = 20 THEN C.CNUM ELSE 0 END) AS 本烧隧道窑_研磨合格,
  996. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.KILNID IN (2, 4) AND C.P2 = 41 THEN C.CNUM ELSE 0 END) AS 本烧隧道窑_刷洗合格,
  997. SUM(CASE WHEN C.MAXPRODUCTIONDATAID = -1 AND C.PROCEDUREID = 13 AND C.KILNID IN (1, 3) THEN C.CNUM ELSE 0 END) AS 本烧梭式窑_出窑数,
  998. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.KILNID IN (1, 3) THEN C.CNUM ELSE 0 END) AS 本烧梭式窑_合格量,
  999. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.KILNID IN (1, 3) AND C.P2 IN (22,23) THEN C.CNUM ELSE 0 END) AS 本烧梭式窑_AA合格,
  1000. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.KILNID IN (1, 3) AND C.P2 IN (37,20,41) THEN C.CNUM ELSE 0 END) AS 本烧梭式窑_漏气研磨刷洗,
  1001. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.KILNID IN (1, 3) AND C.P2 = 37 THEN C.CNUM ELSE 0 END) AS 本烧梭式窑_漏气合格,
  1002. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.KILNID IN (1, 3) AND C.P2 = 20 THEN C.CNUM ELSE 0 END) AS 本烧梭式窑_研磨合格,
  1003. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.KILNID IN (1, 3) AND C.P2 = 41 THEN C.CNUM ELSE 0 END) AS 本烧梭式窑_刷洗合格,
  1004. SUM(CASE WHEN C.MAXPRODUCTIONDATAID = -1 AND C.PROCEDUREID = 13 THEN C.CNUM ELSE 0 END) AS 本烧合计_出窑数,
  1005. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) THEN C.CNUM ELSE 0 END) AS 本烧合计_合格量,
  1006. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 IN (22,23) THEN C.CNUM ELSE 0 END) AS 本烧合计_AA合格,
  1007. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 IN (37,20,41) THEN C.CNUM ELSE 0 END) AS 本烧合计_漏气研磨刷洗,
  1008. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 = 37 THEN C.CNUM ELSE 0 END) AS 本烧合计_漏气合格,
  1009. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 = 20 THEN C.CNUM ELSE 0 END) AS 本烧合计_研磨合格,
  1010. SUM(CASE WHEN C.PROCEDUREID = 13 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 = 41 THEN C.CNUM ELSE 0 END) AS 本烧合计_刷洗合格,
  1011. SUM(CASE WHEN C.MAXPRODUCTIONDATAID = -1 AND C.PROCEDUREID = 35 THEN C.CNUM ELSE 0 END) AS 重烧_出窑数,
  1012. SUM(CASE WHEN C.PROCEDUREID = 35 AND C.GOODSLEVELTYPEID IN (4, 5) THEN C.CNUM ELSE 0 END) AS 重烧_合格量 ,
  1013. SUM(CASE WHEN C.PROCEDUREID = 35 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 IN (22,23) THEN C.CNUM ELSE 0 END) AS 重烧_AA合格,
  1014. SUM(CASE WHEN C.PROCEDUREID = 35 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 IN (37,20,41) THEN C.CNUM ELSE 0 END) AS 重烧_漏气研磨刷洗,
  1015. SUM(CASE WHEN C.PROCEDUREID = 35 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 = 37 THEN C.CNUM ELSE 0 END) AS 重烧_漏气合格,
  1016. SUM(CASE WHEN C.PROCEDUREID = 35 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 = 20 THEN C.CNUM ELSE 0 END) AS 重烧_研磨合格,
  1017. SUM(CASE WHEN C.PROCEDUREID = 35 AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 = 41 THEN C.CNUM ELSE 0 END) AS 重烧_刷洗合格,
  1018. SUM(CASE WHEN C.MAXPRODUCTIONDATAID = -1 AND C.PROCEDUREID IN (13, 35) THEN C.CNUM ELSE 0 END) AS 综合_出窑数,
  1019. SUM(CASE WHEN C.PROCEDUREID IN (13, 35) AND C.GOODSLEVELTYPEID IN (4, 5) THEN C.CNUM ELSE 0 END) AS 综合_合格量,
  1020. SUM(CASE WHEN C.PROCEDUREID IN (13, 35) AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 IN (22,23) THEN C.CNUM ELSE 0 END) AS 综合_AA合格,
  1021. SUM(CASE WHEN C.PROCEDUREID IN (13, 35) AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 IN (37,20,41) THEN C.CNUM ELSE 0 END) AS 综合_漏气研磨刷洗,
  1022. SUM(CASE WHEN C.PROCEDUREID IN (13, 35) AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 = 37 THEN C.CNUM ELSE 0 END) AS 综合_漏气合格,
  1023. SUM(CASE WHEN C.PROCEDUREID IN (13, 35) AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 = 20 THEN C.CNUM ELSE 0 END) AS 综合_研磨合格,
  1024. SUM(CASE WHEN C.PROCEDUREID IN (13, 35) AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 = 41 THEN C.CNUM ELSE 0 END) AS 综合_刷洗合格
  1025. FROM
  1026. (
  1027. SELECT
  1028. T.CDATE,
  1029. T.GROUTINGLINEID,
  1030. T.KILNID,
  1031. T.PROCEDUREID,
  1032. T.GOODSLEVELTYPEID,
  1033. T.PRODUCTIONDATAID,
  1034. T.MAXPRODUCTIONDATAID,
  1035. T.CNUM,
  1036. L.BUILDINGNO,
  1037. P2.PROCEDUREID P2
  1038. FROM
  1039. (
  1040. SELECT
  1041. TRUNC( P.CREATETIME ) AS CDATE,
  1042. P.GROUTINGLINEID,
  1043. P.KILNID,
  1044. P.PROCEDUREID,
  1045. P.GOODSLEVELTYPEID,
  1046. P.PRODUCTIONDATAID,
  1047. MAX( PMAX.PRODUCTIONDATAID ) MAXPRODUCTIONDATAID,
  1048. 1 AS CNUM
  1049. FROM
  1050. TP_PM_PRODUCTIONDATA P
  1051. LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = P.GROUTINGDAILYDETAILID
  1052. AND PMAX.PRODUCTIONDATAID < P.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1'
  1053. /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
  1054. AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
  1055. WHERE
  1056. P.VALUEFLAG = '1'
  1057. AND P.PROCEDUREID IN ( 13, 35 ) AND P.CHECKBATCHNO = 1
  1058. AND P.CREATETIME >= @DATEBEGIN@
  1059. AND P.CREATETIME <= @DATEEND@
  1060. GROUP BY
  1061. P.CREATETIME,
  1062. P.GROUTINGLINEID,
  1063. P.KILNID,
  1064. P.PROCEDUREID,
  1065. P.GOODSLEVELTYPEID,
  1066. P.PRODUCTIONDATAID
  1067. union all
  1068. SELECT
  1069. TRUNC( P.CREATETIME ) AS CDATE,
  1070. P.GROUTINGLINEID,
  1071. P.KILNID,
  1072. P.PROCEDUREID,
  1073. 0 GOODSLEVELTYPEID,
  1074. P.PRODUCTIONDATAID,
  1075. -1 MAXPRODUCTIONDATAID,
  1076. 1 AS CNUM
  1077. FROM
  1078. TP_PM_PRODUCTIONDATA P
  1079. WHERE P.PROCEDUREID IN ( 13, 35 ) AND P.CHECKFLAG = 1
  1080. AND P.CREATETIME >= @DATEBEGIN@
  1081. AND P.CREATETIME <= @DATEEND@
  1082. ) T
  1083. LEFT JOIN TP_PC_GROUTINGLINE L ON T.GROUTINGLINEID = L.GROUTINGLINEID
  1084. LEFT JOIN TP_PM_PRODUCTIONDATA P2 ON T.MAXPRODUCTIONDATAID > 0 AND ( P2.PRODUCTIONDATAID = T.MAXPRODUCTIONDATAID AND P2.PROCEDUREID IN ( 22, 23, 37, 20 ) )
  1085. ) C
  1086. GROUP BY
  1087. GROUPING SETS ( ( C.CDATE, C.BUILDINGNO ), ( ) )
  1088. )A
  1089. )DD WHERE DD.楼号<>'--'
  1090. ";
  1091. List<CDAParameter> sqlPara = new List<CDAParameter>();
  1092. sqlPara.Add(new CDAParameter("I", i));
  1093. sqlPara.Add(new CDAParameter("YEAR", b));
  1094. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  1095. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  1096. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  1097. }
  1098. conn.Commit();
  1099. if (result > 0)
  1100. {
  1101. Curtain.Log.Logger.Debug(b + "年" + a + "月:export009产品质量统计表结转成功!");
  1102. }
  1103. else
  1104. {
  1105. Curtain.Log.Logger.Debug(b + "年" + a + "月:export009产品质量统计表结转0条!");
  1106. }
  1107. }
  1108. catch (Exception ex)
  1109. {
  1110. conn.Rollback();
  1111. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export009产品质量统计表结转失败!");
  1112. Curtain.Log.Logger.Error(ex);
  1113. }
  1114. finally
  1115. {
  1116. conn.Close();
  1117. }
  1118. }
  1119. }
  1120. public static void export010()
  1121. {
  1122. using (IDataAccess conn = DataAccess.Create())
  1123. {
  1124. try
  1125. {
  1126. Curtain.Log.Logger.Debug("export010 各工序缺陷统计表结转开始!");
  1127. conn.BeginTransaction();
  1128. //2021-07-12 dongyan 修正什么问题
  1129. int result = 0;
  1130. int m = DateTime.Now.AddMonths(-1).Month;
  1131. DateTime dayBegin = new DateTime();
  1132. DateTime dayEnd = new DateTime();
  1133. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  1134. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  1135. int c = Convert.ToInt32(b + a);
  1136. String sqlStr = @"delete JZ_RPT010 WHERE FORWARDTIME = @C@";
  1137. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  1138. for (int i = m; i <= m; i++)
  1139. {
  1140. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  1141. //dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  1142. dayEnd = dayBegin.AddMonths(1);
  1143. String sqlStr1 = @"
  1144. INSERT INTO JZ_RPT010 SELECT * FROM (SELECT
  1145. KNUM.日期 AS 日期,
  1146. KNUM.出窑量,
  1147. '0' AS K_BUILDINGNO,
  1148. '0' AS K_KILNID,
  1149. to_number( to_char( @YEAR@ ) || lpad( to_char( @I@ ), 2, '0' ) ),
  1150. DEFECT.*
  1151. FROM
  1152. (
  1153. SELECT
  1154. *
  1155. FROM
  1156. (
  1157. SELECT
  1158. DECODE( GID, 7, '合计', 6, '合计', 5, '合计', CDATE ) AS 缺陷日期,
  1159. DECODE(
  1160. GID,
  1161. 1,
  1162. DEFECTTYPENAME || '_合计',
  1163. 3,
  1164. '合计',
  1165. 7,
  1166. '合计',
  1167. 6,
  1168. DEFECTTYPENAME || '_' || DEFECTNAME,
  1169. 5,
  1170. DEFECTTYPENAME || '_合计',
  1171. DEFECT
  1172. ) AS DEFECT,
  1173. CNUM
  1174. FROM
  1175. (
  1176. SELECT
  1177. GROUPING_ID ( TRUNC( P.CHECKTIME ), T.DEFECTTYPEID, D.DEFECTID ) AS GID,
  1178. TO_CHAR( TRUNC( P.CHECKTIME ), 'YYYY-MM-DD' ) AS CDATE,
  1179. L.BUILDINGNO,
  1180. P.KILNID,
  1181. D.DEFECTID,
  1182. M.DEFECTNAME,
  1183. T.DEFECTTYPENAME,
  1184. T.DEFECTTYPENAME || '_' || M.DEFECTNAME AS DEFECT,
  1185. COUNT( * ) AS CNUM
  1186. FROM
  1187. TP_PM_PRODUCTIONDATA P
  1188. LEFT JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  1189. LEFT JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
  1190. LEFT JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
  1191. LEFT JOIN TP_MST_DEFECTTYPE T ON T.DEFECTTYPEID = M.DEFECTTYPEID
  1192. WHERE
  1193. P.VALUEFLAG = '1'
  1194. AND P.PROCEDUREID = 13
  1195. AND P.CHECKBATCHNO = 1
  1196. AND P.GOODSLEVELTYPEID <> 4
  1197. AND P.CHECKTIME >= @DATEBEGIN@
  1198. AND P.CHECKTIME < @DATEEND@
  1199. GROUP BY
  1200. GROUPING SETS (
  1201. (
  1202. TRUNC( P.CHECKTIME ),
  1203. L.BUILDINGNO,
  1204. P.KILNID,
  1205. T.DEFECTTYPEID,
  1206. D.DEFECTID,
  1207. M.DEFECTNAME,
  1208. T.DEFECTTYPENAME
  1209. ),
  1210. ( TRUNC( P.CHECKTIME ), T.DEFECTTYPEID, T.DEFECTTYPENAME ),
  1211. ( TRUNC( P.CHECKTIME ) ),
  1212. ( D.DEFECTID, T.DEFECTTYPENAME, M.DEFECTNAME ),
  1213. ( T.DEFECTTYPEID, T.DEFECTTYPENAME ),
  1214. ( )
  1215. )
  1216. ORDER BY
  1217. CDATE,
  1218. T.DEFECTTYPEID,
  1219. D.DEFECTID
  1220. )
  1221. ) PIVOT ( SUM( CNUM ) FOR DEFECT IN ( '成型缺陷_糙活',
  1222. '成型缺陷_成裂',
  1223. '成型缺陷_成脏',
  1224. '成型缺陷_成走',
  1225. '成型缺陷_孔不良',
  1226. '成型缺陷_泥绺',
  1227. '成型缺陷_坯脏',
  1228. '成型缺陷_注泡',
  1229. '成型缺陷_棕眼',
  1230. '成型缺陷_漏气',
  1231. '成型缺陷_卡球',
  1232. '成型缺陷_炸圈',
  1233. '成型缺陷_排水不良',
  1234. '成型缺陷_合计',
  1235. '施釉缺陷_爆釉',
  1236. '施釉缺陷_脱釉',
  1237. '施釉缺陷_釉磕',
  1238. '施釉缺陷_标不良',
  1239. '施釉缺陷_釉薄',
  1240. '施釉缺陷_釉绺',
  1241. '施釉缺陷_釉脏',
  1242. '施釉缺陷_釉粘',
  1243. '施釉缺陷_波纹',
  1244. '施釉缺陷_釉泡',
  1245. '施釉缺陷_氯化镁',
  1246. '施釉缺陷_灌釉不良',
  1247. '施釉缺陷_合计',
  1248. '出装缺陷_蹭釉',
  1249. '出装缺陷_落脏',
  1250. '出装缺陷_装磕',
  1251. '出装缺陷_装脏',
  1252. '出装缺陷_装粘',
  1253. '出装缺陷_装走',
  1254. '出装缺陷_合计',
  1255. '烧窑缺陷_桔釉',
  1256. '烧窑缺陷_烧裂',
  1257. '烧窑缺陷_烧生',
  1258. '烧窑缺陷_烧炸',
  1259. '烧窑缺陷_桔柚',
  1260. '烧窑缺陷_过火泡',
  1261. '烧窑缺陷_针孔',
  1262. '烧窑缺陷_麻坑',
  1263. '烧窑缺陷_窑脏',
  1264. '烧窑缺陷_烟熏',
  1265. '烧窑缺陷_风惊',
  1266. '烧窑缺陷_水滴',
  1267. '烧窑缺陷_合计',
  1268. '原料缺陷_铁脏',
  1269. '原料缺陷_铜脏',
  1270. '原料缺陷_合计',
  1271. '其他缺陷_冷补',
  1272. '其他缺陷_坯磕',
  1273. '其他缺陷_研磨',
  1274. '其他缺陷_崩脏',
  1275. '其他缺陷_漏气合格',
  1276. '其他缺陷_复烧修补不良',
  1277. '其他缺陷_B级品',
  1278. '其他缺陷_实验',
  1279. '其他缺陷_合计',
  1280. '出窑缺陷_划釉',
  1281. '出窑缺陷_出磕',
  1282. '出窑缺陷_合计',
  1283. '窑缺陷_合计',
  1284. '点釉缺陷_点釉',
  1285. '点釉缺陷_合计',
  1286. '冷补缺陷_补不良',
  1287. '冷补缺陷_磕划',
  1288. '冷补缺陷_漏气',
  1289. '冷补缺陷_成检漏验',
  1290. '冷补缺陷_研磨不良',
  1291. '冷补缺陷_合计',
  1292. '研磨缺陷_眼',
  1293. '研磨缺陷_底',
  1294. '研磨缺陷_底和面',
  1295. '研磨缺陷_磕划',
  1296. '研磨缺陷_研磨不良',
  1297. '研磨缺陷_成检漏验',
  1298. '研磨缺陷_面',
  1299. '研磨缺陷_边',
  1300. '研磨缺陷_研磨配盖',
  1301. '研磨缺陷_合计'
  1302. , '合计' AS 合计 ) )
  1303. ) DEFECT
  1304. RIGHT JOIN (
  1305. SELECT
  1306. DECODE( GROUPING_ID ( TRUNC( P.CHECKTIME ) ), 1, '合计', TO_CHAR( TRUNC( P.CHECKTIME ), 'YYYY-MM-DD' ) ) AS 日期,
  1307. COUNT( * ) AS 出窑量
  1308. FROM
  1309. TP_PM_PRODUCTIONDATA P
  1310. LEFT JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  1311. WHERE
  1312. P.VALUEFLAG = '1'
  1313. AND P.PROCEDUREID = 13
  1314. AND P.CHECKBATCHNO = 1
  1315. AND P.CHECKTIME >= @DATEBEGIN@
  1316. AND P.CHECKTIME < @DATEEND@
  1317. GROUP BY
  1318. GROUPING SETS ( ( TRUNC( P.CHECKTIME ) ), ( ) )
  1319. ) KNUM ON DEFECT.缺陷日期 = KNUM.日期
  1320. )DD WHERE DD.日期<> '合计'";
  1321. List<CDAParameter> sqlPara = new List<CDAParameter>();
  1322. sqlPara.Add(new CDAParameter("I", i));
  1323. sqlPara.Add(new CDAParameter("YEAR", b));
  1324. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  1325. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  1326. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  1327. }
  1328. conn.Commit();
  1329. if (result > 0)
  1330. {
  1331. Curtain.Log.Logger.Debug(b + "年" + a + "月:export010各工序缺陷统计表结转成功!");
  1332. }
  1333. else
  1334. {
  1335. Curtain.Log.Logger.Debug(b + "年" + a + "月:export010各工序缺陷统计表结转0条!");
  1336. }
  1337. }
  1338. catch (Exception ex)
  1339. {
  1340. conn.Rollback();
  1341. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export010各工序缺陷统计表结转失败!");
  1342. Curtain.Log.Logger.Error(ex);
  1343. }
  1344. finally
  1345. {
  1346. conn.Close();
  1347. }
  1348. }
  1349. }
  1350. public static void export011()
  1351. {
  1352. using (IDataAccess conn = DataAccess.Create())
  1353. {
  1354. try
  1355. {
  1356. Curtain.Log.Logger.Debug("export011 成型半月品月报结转开始!");
  1357. conn.Open();
  1358. conn.BeginTransaction();
  1359. //2021-07-12 dongyan 修正什么问题
  1360. int result = 0;
  1361. int m = DateTime.Now.AddMonths(-1).Month;
  1362. DateTime dayBegin = new DateTime();
  1363. DateTime dayEnd = new DateTime();
  1364. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  1365. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  1366. int c = Convert.ToInt32(b + a);
  1367. string sqlStr = @"delete AJZ_RPT011 WHERE FORWARD_TIME = @C@";
  1368. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  1369. for (int i = m; i <= m; i++)
  1370. {
  1371. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  1372. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  1373. string sqlStr1 = @"
  1374. INSERT INTO AJZ_RPT011
  1375. SELECT
  1376. 组别,
  1377. 成型工号,
  1378. 物料名称,
  1379. 成型,
  1380. 成型线号,
  1381. 接收数量,
  1382. 实收数量,
  1383. 返修数量,
  1384. '0' AS BUILDINGNO,
  1385. to_number( to_char( @YEAR@ ) || lpad( to_char( @I@ ), 2, '0' ) ),
  1386. '0' AS MONITORCODE,
  1387. '0' AS GOODSCODE
  1388. FROM
  1389. (
  1390. SELECT
  1391. DECODE( GROUPING_ID ( T.MONITORCODE, T.GOODSCODE ), 1, '合计', 3, '合计', T.MONITORNAME ) AS 组别,
  1392. DECODE( GROUPING_ID ( T.MONITORCODE, T.GOODSCODE ), 1, '--', 3, '--', T.USERCODE ) AS 成型工号,
  1393. DECODE( GROUPING_ID ( T.MONITORCODE, T.GOODSCODE ), 1, '--', 3, '--', T.GOODSNAME ) AS 物料名称,
  1394. DECODE( GROUPING_ID ( T.MONITORCODE, T.GOODSCODE ), 1, '--', 3, '--', T.USERNAME ) AS 成型,
  1395. DECODE( GROUPING_ID ( T.MONITORCODE, T.GOODSCODE ), 1, '--', 3, '--', T.GROUTINGLINENO ) AS 成型线号,
  1396. SUM( CASE WHEN T.PROCEDUREID IN ( 25, 2 ) AND T.VALUEFLAG = '1' THEN T.CNUM ELSE 0 END ) AS 接收数量,
  1397. SUM( CASE WHEN T.PROCEDUREID IN ( 26, 3 ) AND T.VALUEFLAG = '1' THEN T.CNUM ELSE 0 END ) AS 实收数量,
  1398. SUM( CASE WHEN T.VALUEFLAG = '0' THEN T.CNUM ELSE 0 END ) AS 返修数量
  1399. FROM
  1400. (
  1401. SELECT
  1402. MU.USERCODE AS MONITORCODE,
  1403. MU.USERNAME AS MONITORNAME,
  1404. U.USERCODE,
  1405. P.VALUEFLAG,
  1406. P.GOODSCODE,
  1407. P.GOODSNAME,
  1408. U.USERNAME,
  1409. L.GROUTINGLINENO,
  1410. P.PROCEDUREID,
  1411. count( * ) AS CNUM
  1412. FROM
  1413. TP_PM_PRODUCTIONDATA P
  1414. LEFT JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID
  1415. LEFT JOIN TP_PC_GROUTINGLINE L ON L.GROUTINGLINEID = G.GROUTINGLINEID --LEFT JOIN TP_MST_USER MU ON MU.USERCODE = G.MONITORCODE
  1416. LEFT JOIN TP_MST_USER MU ON MU.USERID = L.MONITORID
  1417. LEFT JOIN TP_MST_USER U ON U.USERID = G.USERID
  1418. WHERE
  1419. (
  1420. ( P.VALUEFLAG = '1' AND P.CREATETIME >= @DATEBEGIN@ AND P.CREATETIME <= @DATEEND@)
  1421. OR ( P.VALUEFLAG = '0' AND P.BACKOUTTIME >= @DATEBEGIN@ AND P.BACKOUTTIME <= @DATEEND@)
  1422. )
  1423. -- AND ( L.BUILDINGNO = @BUILDINGNO @OR @BUILDINGNO @IS NULL )
  1424. AND P.PROCEDUREID IN ( 25, 26, 2, 3 ) -- 一期还是二期
  1425. -- AND ( P.GOODSCODE = @GOODSCODE @OR @GOODSCODE @IS NULL )
  1426. -- AND ( U.USERCODE = @USERCODE @OR @USERCODE @IS NULL )
  1427. -- AND ( MU.USERNAME = @USERNAME @OR @USERNAME @IS NULL )
  1428. GROUP BY
  1429. MU.USERCODE,
  1430. MU.USERNAME,
  1431. U.USERCODE,
  1432. U.USERNAME,
  1433. P.VALUEFLAG,
  1434. P.PROCEDUREID,
  1435. P.GOODSCODE,
  1436. P.GOODSNAME,
  1437. L.GROUTINGLINENO
  1438. ORDER BY
  1439. G.MONITORCODE,
  1440. G.USERCODE
  1441. ) T
  1442. GROUP BY
  1443. GROUPING SETS (
  1444. (
  1445. T.MONITORCODE,
  1446. T.MONITORNAME,
  1447. T.USERNAME,
  1448. T.USERCODE,
  1449. T.USERNAME,
  1450. T.GOODSCODE,
  1451. T.GOODSNAME,
  1452. T.GROUTINGLINENO
  1453. ),
  1454. ( T.MONITORCODE ),
  1455. ( )
  1456. )
  1457. )
  1458. WHERE 组别 <> '合计'
  1459. ";
  1460. List<CDAParameter> sqlPara = new List<CDAParameter>();
  1461. sqlPara.Add(new CDAParameter("I", i));
  1462. sqlPara.Add(new CDAParameter("YEAR", b));
  1463. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  1464. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  1465. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  1466. }
  1467. conn.Commit();
  1468. if (result > 0)
  1469. {
  1470. Curtain.Log.Logger.Debug(b + "年" + a + "月:export011成型半月品月报结转成功!");
  1471. }
  1472. else
  1473. {
  1474. Curtain.Log.Logger.Debug(b + "年" + a + "月:export011成型半月品月报结转0条!");
  1475. }
  1476. }
  1477. catch (Exception ex)
  1478. {
  1479. conn.Rollback();
  1480. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export011成型半月品月报结转失败!");
  1481. Curtain.Log.Logger.Error(ex);
  1482. }
  1483. finally
  1484. {
  1485. conn.Close();
  1486. }
  1487. }
  1488. }
  1489. public static void export012()
  1490. {
  1491. using (IDataAccess conn = DataAccess.Create())
  1492. {
  1493. try
  1494. {
  1495. Curtain.Log.Logger.Debug("export012 成型缺陷统计表结转开始!");
  1496. conn.Open();
  1497. conn.BeginTransaction();
  1498. //2021-07-12 dongyan 修正什么问题
  1499. int result = 0;
  1500. int m = DateTime.Now.AddMonths(-1).Month;
  1501. //DateTime dayBegin = new DateTime();
  1502. //DateTime dayEnd = new DateTime();
  1503. DateTime dayBegin = new DateTime();
  1504. DateTime dayEnd = new DateTime();
  1505. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  1506. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  1507. int c = Convert.ToInt32(b + a);
  1508. string sqlStr = @"delete AJZ_RPT012 WHERE FORWARD_TIME = @C@";
  1509. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  1510. for (int i = m; i <= m; i++)
  1511. {
  1512. //dayBegin =Convert.ToDateTime( b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  1513. //dayEnd =Convert.ToDateTime( b + "-" + (i + 1).ToString().PadLeft(2, '0') + "-01");
  1514. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  1515. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  1516. string sql2 = @"
  1517. INSERT INTO AJZ_RPT012
  1518. SELECT
  1519. PC.组别,
  1520. PC.工号,
  1521. PC.产品型号,
  1522. PC.姓名,
  1523. PC.出窑数,
  1524. PC.出窑数 - NVL( PD.合计, 0 ) AS 合格数,
  1525. 0 as BUILDINGNO,
  1526. 2 as PROCEDUREID,
  1527. TO_CHAR(
  1528. ROUND(
  1529. ( PC.出窑数 - NVL( PD.合计, 0 ) ) / DECODE( PC.出窑数, 0, 1, PC.出窑数 ),
  1530. 4
  1531. ) * 100
  1532. ) || '%' AS 合格率,
  1533. TO_CHAR(
  1534. 100 - ROUND(
  1535. ( PC.出窑数 - NVL( PD.合计, 0 ) ) / DECODE( PC.出窑数, 0, 1, PC.出窑数 ),
  1536. 4
  1537. ) * 100
  1538. ) || '%' AS 缺陷率,
  1539. PD.组别,
  1540. PD.MONITORCODE,
  1541. PD.工号,
  1542. PD.姓名,
  1543. PD.产品型号,
  1544. '0' as NO,
  1545. 2 as PRO,
  1546. PD.糙活,
  1547. PD.成裂,
  1548. PD.成脏,
  1549. PD.成走,
  1550. PD.孔不良,
  1551. PD.泥绺,
  1552. PD.坯脏,
  1553. PD.注泡,
  1554. PD.棕眼,
  1555. PD.漏气,
  1556. PD.卡球,
  1557. PD.炸圈,
  1558. PD.排水不良,
  1559. PD.合计,
  1560. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  1561. FROM
  1562. (
  1563. SELECT
  1564. *
  1565. FROM
  1566. (
  1567. SELECT
  1568. --GID,
  1569. DECODE( GID, 6, MONITORNAME || '[合计]', 7, MONITORNAME || '[合计]',14,'合计',15,'合计', MONITORNAME ) AS 组别,
  1570. DECODE( GID, 6, MONITORCODE || '[合计]', 7, MONITORCODE || '[合计]',14,'ZZZ',15,'ZZZ', MONITORCODE ) AS MONITORCODE,
  1571. USERCODE AS 工号,
  1572. USERNAME AS 姓名,
  1573. GOODSMODEL AS 产品型号,
  1574. DECODE( GID, 1, '合计', 7, '合计',15,'合计', DEFECT ) AS DEFECT,
  1575. CNUM
  1576. FROM
  1577. (
  1578. SELECT
  1579. GROUPING_ID ( MU.USERCODE, U.USERCODE, GS.GOODSMODEL, D.DEFECTID ) AS GID,
  1580. NVL( MU.USERCODE, ' ' ) AS MONITORCODE,
  1581. NVL( MU.USERNAME, '无' ) AS MONITORNAME,
  1582. U.USERCODE,
  1583. U.USERNAME,
  1584. GS.GOODSMODEL,
  1585. D.DEFECTID,
  1586. M.DEFECTNAME AS DEFECT,
  1587. --COUNT( * ) AS CNUM
  1588. SUM(CASE WHEN D.DEFECTID = 11 AND (P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5) THEN 0 ELSE 1 END) AS CNUM
  1589. FROM
  1590. TP_PM_PRODUCTIONDATA P
  1591. INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  1592. INNER JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID
  1593. LEFT JOIN TP_MST_USER MU ON MU.USERID = L.MONITORID
  1594. INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
  1595. INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
  1596. LEFT JOIN TP_MST_DEFECTTYPE T ON T.DEFECTTYPEID = M.DEFECTTYPEID --LEFT JOIN TP_MST_USER U ON U.USERCODE = G.USERCODE
  1597. INNER JOIN TP_MST_USER U ON U.USERID = D.DEFECTUSERID
  1598. LEFT JOIN TP_MST_GOODS GS ON GS.GOODSID = P.GOODSID
  1599. WHERE
  1600. P.VALUEFLAG = '1'
  1601. AND P.PROCEDUREID = 13 AND P.CHECKBATCHNO = 1
  1602. AND P.GOODSLEVELTYPEID <> 4
  1603. AND P.CHECKTIME >= @DATEBEGIN@
  1604. AND P.CHECKTIME <= @DATEEND@
  1605. AND P.ISREFIRE = '0'
  1606. AND D.DEFECTPROCEDUREID = 2
  1607. GROUP BY
  1608. GROUPING SETS (
  1609. ( MU.USERCODE,MU.USERNAME,U.USERCODE,U.USERNAME,GS.GOODSMODEL,D.DEFECTID,M.DEFECTNAME ),
  1610. ( MU.USERCODE, MU.USERNAME, U.USERCODE, U.USERNAME, GS.GOODSMODEL ),
  1611. ( MU.USERCODE, MU.USERNAME, D.DEFECTID, M.DEFECTNAME ),
  1612. ( MU.USERCODE, MU.USERNAME ),
  1613. ( D.DEFECTID, M.DEFECTNAME ),
  1614. ()
  1615. )
  1616. ORDER BY
  1617. MONITORCODE,
  1618. USERCODE,
  1619. GROUPING_ID ( MU.USERCODE, U.USERCODE, GS.GOODSMODEL, D.DEFECTID )
  1620. )
  1621. ) PIVOT (
  1622. SUM( CNUM ) FOR DEFECT IN (
  1623. '糙活' AS 糙活,
  1624. '成裂' AS 成裂,
  1625. '成脏' AS 成脏,
  1626. '成走' AS 成走,
  1627. '孔不良' AS 孔不良,
  1628. '泥绺' AS 泥绺,
  1629. '坯脏' AS 坯脏,
  1630. '注泡' AS 注泡,
  1631. '棕眼' AS 棕眼,
  1632. '漏气' AS 漏气,
  1633. '卡球' AS 卡球,
  1634. '炸圈' AS 炸圈,
  1635. '排水不良' AS 排水不良,
  1636. '合计' AS 合计
  1637. )
  1638. )
  1639. ) PD
  1640. RIGHT JOIN (
  1641. SELECT
  1642. GID,
  1643. DECODE( GID, 3, T.MONITORCODE || '[合计]',7,'ZZZ', T.MONITORCODE ) AS MONITORCODE,
  1644. DECODE( GID, 3, T.组别 || '[合计]',7,'合计', T.组别 ) AS 组别,
  1645. T.工号,
  1646. T.姓名,
  1647. T.产品型号,
  1648. T.出窑数
  1649. FROM
  1650. (
  1651. SELECT
  1652. GROUPING_ID ( MU.USERCODE, U.USERCODE, GS.GOODSMODEL ) AS GID,
  1653. NVL( MU.USERCODE, ' ' ) MONITORCODE,
  1654. NVL( MU.USERNAME, '无' ) AS 组别,
  1655. U.USERCODE AS 工号,
  1656. U.USERNAME AS 姓名,
  1657. GS.GOODSMODEL AS 产品型号,
  1658. COUNT( * ) AS 出窑数
  1659. FROM
  1660. TP_PM_PRODUCTIONDATA P
  1661. INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  1662. INNER JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID
  1663. LEFT JOIN TP_MST_USER MU ON MU.USERID = L.MONITORID --LEFT JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
  1664. LEFT JOIN TP_PM_PRODUCTIONDATA PB ON P.BARCODE = PB.BARCODE
  1665. AND PB.MODELTYPE = 5
  1666. LEFT JOIN TP_MST_USER U ON U.USERID = PB.USERID
  1667. LEFT JOIN TP_MST_GOODS GS ON P.GOODSID = GS.GOODSID
  1668. WHERE
  1669. P.VALUEFLAG = '1'
  1670. AND P.PROCEDUREID = 13 AND P.CHECKBATCHNO = 1
  1671. AND P.CHECKTIME >= @DATEBEGIN@
  1672. AND P.CHECKTIME <= @DATEEND@
  1673. AND PB.PROCEDUREID = 2
  1674. AND P.ISREFIRE = '0'
  1675. AND PB.VALUEFLAG='1'
  1676. GROUP BY
  1677. GROUPING SETS (
  1678. ( MU.USERCODE, MU.USERNAME, U.USERCODE, U.USERNAME, GS.GOODSMODEL ),
  1679. ( MU.USERCODE, MU.USERNAME ),
  1680. ()
  1681. )
  1682. ) T
  1683. ) PC ON PD.MONITORCODE = PC.MONITORCODE
  1684. AND ( PC.GID = 3 OR PC.GID=7 OR ( PD.工号 = PC.工号 AND PD.产品型号 = PC.产品型号 ) )
  1685. ";
  1686. List<CDAParameter> sqlPara = new List<CDAParameter>();
  1687. sqlPara.Add(new CDAParameter("I", i));
  1688. sqlPara.Add(new CDAParameter("YEAR", b));
  1689. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  1690. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  1691. result = conn.ExecuteNonQuery(sql2, sqlPara.ToArray());
  1692. string sql3 = @"
  1693. INSERT INTO AJZ_RPT012
  1694. SELECT
  1695. PC.组别,
  1696. PC.工号,
  1697. PC.产品型号,
  1698. PC.姓名,
  1699. PC.出窑数,
  1700. PC.出窑数 - NVL( PD.合计, 0 ) AS 合格数,
  1701. 0 as BUILDINGNO,
  1702. 25 as PROCEDUREID,
  1703. TO_CHAR(
  1704. ROUND(
  1705. ( PC.出窑数 - NVL( PD.合计, 0 ) ) / DECODE( PC.出窑数, 0, 1, PC.出窑数 ),
  1706. 4
  1707. ) * 100
  1708. ) || '%' AS 合格率,
  1709. TO_CHAR(
  1710. 100 - ROUND(
  1711. ( PC.出窑数 - NVL( PD.合计, 0 ) ) / DECODE( PC.出窑数, 0, 1, PC.出窑数 ),
  1712. 4
  1713. ) * 100
  1714. ) || '%' AS 缺陷率,
  1715. PD.组别,
  1716. PD.MONITORCODE,
  1717. PD.工号,
  1718. PD.姓名,
  1719. PD.产品型号,
  1720. 0,
  1721. 25 as PRO,
  1722. PD.糙活,
  1723. PD.成裂,
  1724. PD.成脏,
  1725. PD.成走,
  1726. PD.孔不良,
  1727. PD.泥绺,
  1728. PD.坯脏,
  1729. PD.注泡,
  1730. PD.棕眼,
  1731. PD.漏气,
  1732. PD.卡球,
  1733. PD.炸圈,
  1734. PD.排水不良,
  1735. PD.合计,
  1736. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  1737. FROM
  1738. (
  1739. SELECT
  1740. *
  1741. FROM
  1742. (
  1743. SELECT
  1744. --GID,
  1745. DECODE( GID, 6, MONITORNAME || '[合计]', 7, MONITORNAME || '[合计]',14,'合计',15,'合计', MONITORNAME ) AS 组别,
  1746. DECODE( GID, 6, MONITORCODE || '[合计]', 7, MONITORCODE || '[合计]',14,'ZZZ',15,'ZZZ', MONITORCODE ) AS MONITORCODE,
  1747. USERCODE AS 工号,
  1748. USERNAME AS 姓名,
  1749. GOODSMODEL AS 产品型号,
  1750. DECODE( GID, 1, '合计', 7, '合计',15,'合计', DEFECT ) AS DEFECT,
  1751. CNUM
  1752. FROM
  1753. (
  1754. SELECT
  1755. GROUPING_ID ( MU.USERCODE, U.USERCODE, GS.GOODSMODEL, D.DEFECTID ) AS GID,
  1756. NVL( MU.USERCODE, ' ' ) AS MONITORCODE,
  1757. NVL( MU.USERNAME, '无' ) AS MONITORNAME,
  1758. U.USERCODE,
  1759. U.USERNAME,
  1760. GS.GOODSMODEL,
  1761. D.DEFECTID,
  1762. M.DEFECTNAME AS DEFECT,
  1763. --COUNT( * ) AS CNUM
  1764. SUM(CASE WHEN D.DEFECTID = 11 AND (P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5) THEN 0 ELSE 1 END) AS CNUM
  1765. FROM
  1766. TP_PM_PRODUCTIONDATA P
  1767. INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  1768. INNER JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID
  1769. LEFT JOIN TP_MST_USER MU ON MU.USERID = L.MONITORID
  1770. INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
  1771. INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
  1772. LEFT JOIN TP_MST_DEFECTTYPE T ON T.DEFECTTYPEID = M.DEFECTTYPEID --LEFT JOIN TP_MST_USER U ON U.USERCODE = G.USERCODE
  1773. INNER JOIN TP_MST_USER U ON U.USERID = D.DEFECTUSERID
  1774. LEFT JOIN TP_MST_GOODS GS ON GS.GOODSID = P.GOODSID
  1775. WHERE
  1776. P.VALUEFLAG = '1'
  1777. AND P.PROCEDUREID = 13 AND P.CHECKBATCHNO = 1
  1778. AND P.GOODSLEVELTYPEID <> 4
  1779. AND P.CHECKTIME >= @DATEBEGIN@
  1780. AND P.CHECKTIME <= @DATEEND@
  1781. AND P.ISREFIRE = '0'
  1782. AND D.DEFECTPROCEDUREID = 25
  1783. GROUP BY
  1784. GROUPING SETS (
  1785. ( MU.USERCODE,MU.USERNAME,U.USERCODE,U.USERNAME,GS.GOODSMODEL,D.DEFECTID,M.DEFECTNAME ),
  1786. ( MU.USERCODE, MU.USERNAME, U.USERCODE, U.USERNAME, GS.GOODSMODEL ),
  1787. ( MU.USERCODE, MU.USERNAME, D.DEFECTID, M.DEFECTNAME ),
  1788. ( MU.USERCODE, MU.USERNAME ),
  1789. ( D.DEFECTID, M.DEFECTNAME ),
  1790. ()
  1791. )
  1792. ORDER BY
  1793. MONITORCODE,
  1794. USERCODE,
  1795. GROUPING_ID ( MU.USERCODE, U.USERCODE, GS.GOODSMODEL, D.DEFECTID )
  1796. )
  1797. ) PIVOT (
  1798. SUM( CNUM ) FOR DEFECT IN (
  1799. '糙活' AS 糙活,
  1800. '成裂' AS 成裂,
  1801. '成脏' AS 成脏,
  1802. '成走' AS 成走,
  1803. '孔不良' AS 孔不良,
  1804. '泥绺' AS 泥绺,
  1805. '坯脏' AS 坯脏,
  1806. '注泡' AS 注泡,
  1807. '棕眼' AS 棕眼,
  1808. '漏气' AS 漏气,
  1809. '卡球' AS 卡球,
  1810. '炸圈' AS 炸圈,
  1811. '排水不良' AS 排水不良,
  1812. '合计' AS 合计
  1813. )
  1814. )
  1815. ) PD
  1816. RIGHT JOIN (
  1817. SELECT
  1818. GID,
  1819. DECODE( GID, 3, T.MONITORCODE || '[合计]',7,'ZZZ', T.MONITORCODE ) AS MONITORCODE,
  1820. DECODE( GID, 3, T.组别 || '[合计]',7,'合计', T.组别 ) AS 组别,
  1821. T.工号,
  1822. T.姓名,
  1823. T.产品型号,
  1824. T.出窑数
  1825. FROM
  1826. (
  1827. SELECT
  1828. GROUPING_ID ( MU.USERCODE, U.USERCODE, GS.GOODSMODEL ) AS GID,
  1829. NVL( MU.USERCODE, ' ' ) MONITORCODE,
  1830. NVL( MU.USERNAME, '无' ) AS 组别,
  1831. U.USERCODE AS 工号,
  1832. U.USERNAME AS 姓名,
  1833. GS.GOODSMODEL AS 产品型号,
  1834. COUNT( * ) AS 出窑数
  1835. FROM
  1836. TP_PM_PRODUCTIONDATA P
  1837. INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  1838. INNER JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID
  1839. LEFT JOIN TP_MST_USER MU ON MU.USERID = L.MONITORID --LEFT JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
  1840. LEFT JOIN TP_PM_PRODUCTIONDATA PB ON P.BARCODE = PB.BARCODE
  1841. AND PB.MODELTYPE = 5
  1842. LEFT JOIN TP_MST_USER U ON U.USERID = PB.USERID
  1843. LEFT JOIN TP_MST_GOODS GS ON P.GOODSID = GS.GOODSID
  1844. WHERE
  1845. P.VALUEFLAG = '1'
  1846. AND P.PROCEDUREID = 13 AND P.CHECKBATCHNO = 1
  1847. AND P.CHECKTIME >= @DATEBEGIN@
  1848. AND P.CHECKTIME <= @DATEEND@
  1849. AND PB.PROCEDUREID = 25
  1850. AND P.ISREFIRE = '0'
  1851. AND PB.VALUEFLAG='1'
  1852. GROUP BY
  1853. GROUPING SETS (
  1854. ( MU.USERCODE, MU.USERNAME, U.USERCODE, U.USERNAME, GS.GOODSMODEL ),
  1855. ( MU.USERCODE, MU.USERNAME ),
  1856. ()
  1857. )
  1858. ) T
  1859. ) PC ON PD.MONITORCODE = PC.MONITORCODE
  1860. AND ( PC.GID = 3 OR PC.GID=7 OR ( PD.工号 = PC.工号 AND PD.产品型号 = PC.产品型号 ) )
  1861. ";
  1862. List<CDAParameter> sqlPara2 = new List<CDAParameter>();
  1863. sqlPara2.Add(new CDAParameter("I", i));
  1864. sqlPara2.Add(new CDAParameter("YEAR", b));
  1865. sqlPara2.Add(new CDAParameter("DATEEND", dayEnd));
  1866. sqlPara2.Add(new CDAParameter("DATEBEGIN", dayBegin));
  1867. result += conn.ExecuteNonQuery(sql3, sqlPara2.ToArray());
  1868. }
  1869. conn.Commit();
  1870. if (result > 0)
  1871. {
  1872. Curtain.Log.Logger.Debug(b + "年" + a + "月:export012成型缺陷统计表结转成功!");
  1873. }
  1874. else
  1875. {
  1876. Curtain.Log.Logger.Debug(b + "年" + a + "月:export012成型缺陷统计表结转0条!");
  1877. }
  1878. }
  1879. catch (Exception ex)
  1880. {
  1881. conn.Rollback();
  1882. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export012成型缺陷统计表结转失败!");
  1883. Curtain.Log.Logger.Error(ex);
  1884. }
  1885. finally
  1886. {
  1887. conn.Close();
  1888. }
  1889. }
  1890. }
  1891. public static void export013()
  1892. {
  1893. using (IDataAccess conn = DataAccess.Create())
  1894. {
  1895. try
  1896. {
  1897. Curtain.Log.Logger.Debug("export013 其他缺陷统计表结转开始!");
  1898. conn.Open();
  1899. conn.BeginTransaction();
  1900. //string t = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  1901. //string z = DateTime.Now.AddMonths(-1).Year.ToString();
  1902. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  1903. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  1904. int c = Convert.ToInt32(a + b);
  1905. String sqlStr = @"delete JZ_RPT013_22 where FORWARDTIME = @C@";
  1906. int result = 0;
  1907. int m = DateTime.Now.AddMonths(-1).Month;
  1908. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  1909. //string dayBegin = null;
  1910. //string dayEnd = null;
  1911. DateTime dayBegin = new DateTime();
  1912. DateTime dayEnd = new DateTime();
  1913. int[] procedUserIDs = { 3, 4, 5, 6, 7, 8, 9, 10, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42 };
  1914. for (int i = m; i <= m; i++)
  1915. {
  1916. //dayBegin = z+"-" + i.ToString().PadLeft(2, '0') + "-01";
  1917. //dayEnd = z+"-" + i.ToString().PadLeft(2, '0') + "-"+Convert.ToDateTime( dayBegin).AddMonths(1).AddDay(-1).Day;
  1918. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  1919. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  1920. for (int p = 0; p < procedUserIDs.Length; p++)
  1921. {
  1922. for (int j = 0; j <= 2; j++)
  1923. {
  1924. String str = j + "#";
  1925. String sqlStr1 = @"
  1926. INSERT INTO JZ_RPT013_22
  1927. SELECT
  1928. *
  1929. FROM
  1930. (
  1931. SELECT
  1932. PC.工号,
  1933. PC.姓名,
  1934. NVL( PC.产品型号, PD.产品型号复 ) AS 产品型号,
  1935. PC.出窑数,
  1936. PC.出窑数 - NVL( PD.合计, 0 ) AS 合格数,
  1937. --ROUND( (PC.出窑数 - NVL( PD.合计, 0 )) / DECODE( PC.出窑数, 0, 1, PC.出窑数 ), 4 ) * 100 AS 合格率,
  1938. TO_CHAR(
  1939. 100 - ROUND(
  1940. ( PC.出窑数 - NVL( PD.合计, 0 ) ) / DECODE( PC.出窑数, 0, 1, PC.出窑数 ),
  1941. 4
  1942. ) * 100
  1943. ) || '%' AS 缺陷率,
  1944. to_number(@YEAR@ || lpad(to_char(@I@),2,'0')),
  1945. @BUILDINGNO@,
  1946. @PROCEDUREID@,
  1947. PD.*
  1948. FROM
  1949. (
  1950. SELECT
  1951. *
  1952. FROM
  1953. (
  1954. SELECT--GID,
  1955. DECODE( GID, 6, USERCODE || '合计', 7, USERCODE || '合计', USERCODE ) AS 工号复,
  1956. USERNAME AS 姓名复,
  1957. GOODSMODEL AS 产品型号复,
  1958. DECODE( GID, 1, '合计', 3, '合计', 7, '合计', DEFECT ) AS DEFECT,
  1959. CNUM
  1960. FROM
  1961. (
  1962. SELECT
  1963. GROUPING_ID ( U.USERCODE, GS.GOODSMODEL, D.DEFECTID ) AS GID,
  1964. U.USERCODE,
  1965. U.USERNAME,
  1966. GS.GOODSMODEL,
  1967. D.DEFECTID,
  1968. M.DEFECTNAME AS DEFECT,
  1969. COUNT( * ) AS CNUM
  1970. FROM
  1971. TP_PM_PRODUCTIONDATA P
  1972. INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  1973. INNER JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID --LEFT JOIN TP_MST_USER MU ON MU.USERID = L.MONITORID
  1974. INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
  1975. INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
  1976. LEFT JOIN TP_MST_DEFECTTYPE T ON T.DEFECTTYPEID = M.DEFECTTYPEID
  1977. INNER JOIN TP_MST_USER U ON U.USERID = D.DEFECTUSERID
  1978. LEFT JOIN TP_MST_GOODS GS ON GS.GOODSID = P.GOODSID
  1979. WHERE
  1980. P.VALUEFLAG = '1'
  1981. AND P.PROCEDUREID = @CHECKPROCEDUREID@
  1982. AND P.CHECKBATCHNO = 1
  1983. AND P.GOODSLEVELTYPEID <> 4
  1984. AND P.CHECKTIME >= @DATEBEGIN@
  1985. AND P.CHECKTIME <= @DATEEND@
  1986. --AND P.CHECKTIME >= to_date(@DATEBEGIN@,'yyyy-mm-dd')
  1987. --AND P.CHECKTIME <= to_date(@DATEEND@,'yyyy-mm-dd')
  1988. AND P.ISREFIRE = @ISREFIRE@
  1989. AND ( L.BUILDINGNO = @BUILDINGNO@ OR @BUILDINGNO@ IS NULL )
  1990. AND ( D.DEFECTPROCEDUREID = @PROCEDUREID@ OR @PROCEDUREID@ IS NULL )
  1991. AND ( GS.GOODSMODEL = '' OR '' IS NULL )
  1992. AND ( U.USERCODE = '' OR '' IS NULL )
  1993. GROUP BY
  1994. GROUPING SETS (
  1995. ( U.USERCODE, U.USERNAME, GS.GOODSMODEL, D.DEFECTID, M.DEFECTNAME ),
  1996. ( U.USERCODE, U.USERNAME, GS.GOODSMODEL ),
  1997. ( U.USERCODE, U.USERNAME, D.DEFECTID, M.DEFECTNAME ),
  1998. ( U.USERCODE, U.USERNAME ),
  1999. ( D.DEFECTID, M.DEFECTNAME ),
  2000. ( )
  2001. )
  2002. )
  2003. ) PIVOT (
  2004. SUM( CNUM ) FOR DEFECT IN ('桔釉' AS 桔釉,
  2005. '划釉' AS 划釉,
  2006. '出磕' AS 出磕,
  2007. '烧裂' AS 烧裂,
  2008. '烧生' AS 烧生,
  2009. '冷补' AS 冷补,
  2010. '烧炸' AS 烧炸,
  2011. '眼' AS 眼,
  2012. '桔柚' AS 桔柚,
  2013. '底' AS 底,
  2014. '过火泡' AS 过火泡,
  2015. '底和面' AS 底和面,
  2016. '点釉' AS 点釉,
  2017. '针孔' AS 针孔,
  2018. '补不良' AS 补不良,
  2019. '麻坑' AS 麻坑,
  2020. '窑脏' AS 窑脏,
  2021. '磕划' AS 磕划,
  2022. '烟熏' AS 烟熏,
  2023. '漏气' AS 漏气,
  2024. '成检漏验' AS 成检漏验,
  2025. '风惊' AS 风惊,
  2026. '铁脏' AS 铁脏,
  2027. '研磨不良' AS 研磨不良1,
  2028. '铜脏' AS 铜脏,
  2029. '磕划' AS 磕划1,
  2030. '坯磕' AS 坯磕,
  2031. '研磨不良' AS 研磨不良,
  2032. '研磨' AS 研磨,
  2033. '成检漏验' AS 成检漏验1,
  2034. '崩脏' AS 崩脏,
  2035. '水滴' AS 水滴,
  2036. '复烧修补不良' AS 复烧修补不良,
  2037. 'B级品' AS B级品,
  2038. '面' AS 面,
  2039. '边' AS 边,
  2040. '研磨配盖' AS 研磨配盖,
  2041. '糙活' AS 糙活,
  2042. '成裂' AS 成裂,
  2043. '成脏' AS 成脏,
  2044. '成走' AS 成走,
  2045. '孔不良' AS 孔不良,
  2046. '泥绺' AS 泥绺,
  2047. '坯脏' AS 坯脏,
  2048. '注泡' AS 注泡,
  2049. '棕眼' AS 棕眼,
  2050. '漏气' AS 漏气1,
  2051. '卡球' AS 卡球,
  2052. '炸圈' AS 炸圈,
  2053. '排水不良' AS 排水不良,
  2054. '爆釉' AS 爆釉,
  2055. '标不良' AS 标不良,
  2056. '脱釉' AS 脱釉,
  2057. '釉薄' AS 釉薄,
  2058. '釉磕' AS 釉磕,
  2059. '釉绺' AS 釉绺,
  2060. '釉脏' AS 釉脏,
  2061. '釉粘' AS 釉粘,
  2062. '波纹' AS 波纹,
  2063. '釉泡' AS 釉泡,
  2064. '氯化镁' AS 氯化镁,
  2065. '灌釉不良' AS 灌釉不良,
  2066. '蹭釉' AS 蹭釉,
  2067. '落脏' AS 落脏,
  2068. '装磕' AS 装磕,
  2069. '装脏' AS 装脏,
  2070. '装粘' AS 装粘,
  2071. '装走' AS 装走, '合计' AS 合计 )
  2072. )
  2073. ) PD
  2074. RIGHT JOIN (
  2075. SELECT
  2076. GID,
  2077. DECODE( GID, 3, '合计',工号 ) AS 工号,
  2078. T.姓名,
  2079. T.产品型号,
  2080. T.出窑数
  2081. FROM
  2082. (
  2083. SELECT
  2084. GROUPING_ID ( U.USERCODE, GS.GOODSMODEL ) AS GID,
  2085. U.USERCODE AS 工号,
  2086. U.USERNAME AS 姓名,
  2087. GS.GOODSMODEL AS 产品型号,
  2088. COUNT( * ) AS 出窑数
  2089. FROM
  2090. TP_PM_PRODUCTIONDATA P
  2091. INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  2092. INNER JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID --LEFT JOIN TP_MST_USER MU ON MU.USERID = L.MONITORID
  2093. INNER JOIN TP_PM_PRODUCTIONDATA PB ON P.BARCODE = PB.BARCODE
  2094. INNER JOIN TP_MST_USER U ON U.USERID = PB.USERID
  2095. LEFT JOIN TP_MST_GOODS GS ON GS.GOODSID = P.GOODSID
  2096. WHERE
  2097. P.VALUEFLAG = '1'
  2098. AND P.PROCEDUREID = @CHECKPROCEDUREID@
  2099. AND P.CHECKBATCHNO = 1
  2100. AND P.CHECKTIME >= @DATEBEGIN@
  2101. AND P.CHECKTIME <= @DATEEND@
  2102. --AND P.CHECKTIME >= to_date(@DATEBEGIN@,'yyyy-mm-dd')
  2103. --AND P.CHECKTIME <= to_date(@DATEEND@,'yyyy-mm-dd')
  2104. AND ( L.BUILDINGNO = @BUILDINGNO@ OR @BUILDINGNO@ IS NULL )
  2105. AND ( @PROCEDUREID@ IS NULL OR PB.PROCEDUREID = @PROCEDUREID@ )
  2106. AND PB.VALUEFLAG = '1'
  2107. AND ( GS.GOODSMODEL = '' OR '' IS NULL )
  2108. AND ( U.USERCODE = '' OR '' IS NULL )
  2109. GROUP BY
  2110. GROUPING SETS ( ( U.USERCODE, U.USERNAME, GS.GOODSMODEL ), ( U.USERCODE, U.USERNAME ), ( ) )
  2111. ) T
  2112. ) PC ON ( ( PC.GID = 3 OR PC.GID = 1 ) AND PD.工号复 = PC.工号 AND PD.产品型号复 IS NULL )
  2113. OR ( PD.工号复 = PC.工号 AND PD.产品型号复 = PC.产品型号 )
  2114. )
  2115. WHERE
  2116. 产品型号 IS NOT NULL
  2117. ";
  2118. List<CDAParameter> sqlPara = new List<CDAParameter>();
  2119. sqlPara.Add(new CDAParameter("I", i));
  2120. sqlPara.Add(new CDAParameter("YEAR", b));
  2121. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  2122. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  2123. sqlPara.Add(new CDAParameter("BUILDINGNO", str));
  2124. sqlPara.Add(new CDAParameter("PROCEDUREID", procedUserIDs[p]));
  2125. sqlPara.Add(new CDAParameter("CHECKPROCEDUREID", (procedUserIDs[p] == 19 || procedUserIDs[p] == 36) ? 35 : 13));
  2126. sqlPara.Add(new CDAParameter("ISREFIRE", (procedUserIDs[p] == 19 || procedUserIDs[p] == 36) ? 6 : 0));
  2127. result += conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  2128. }
  2129. }
  2130. }
  2131. conn.Commit();
  2132. if (result > 0)
  2133. {
  2134. Curtain.Log.Logger.Debug(b + "年" + a + "月:export013其他缺陷统计表结转成功!");
  2135. }
  2136. else
  2137. {
  2138. Curtain.Log.Logger.Debug(b + "年" + a + "月:export013其他缺陷统计表结转0条!");
  2139. }
  2140. }
  2141. catch (Exception ex)
  2142. {
  2143. conn.Rollback();
  2144. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export013其他缺陷统计表结转失败!");
  2145. Curtain.Log.Logger.Error(ex);
  2146. }
  2147. finally
  2148. {
  2149. conn.Close();
  2150. }
  2151. }
  2152. }
  2153. public static void export014()
  2154. {
  2155. using (IDataAccess conn = DataAccess.Create())
  2156. {
  2157. try
  2158. {
  2159. Curtain.Log.Logger.Debug("export014 每窑质量总缺陷统计表结转开始!");
  2160. conn.Open();
  2161. conn.BeginTransaction();
  2162. string t = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  2163. string z = DateTime.Now.AddMonths(-1).Year.ToString();
  2164. int c = Convert.ToInt32(z + t);
  2165. //2021-07-12 dongyan 修正什么问题
  2166. String sqlStr = @"delete JZ_RPT014 WHERE FORWARDTIME = @C@";
  2167. int result = 0;
  2168. int m = DateTime.Now.AddMonths(-1).Month;
  2169. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  2170. DateTime dayBegin = new DateTime();
  2171. DateTime dayEnd = new DateTime();
  2172. String[] arr = { "13", "35" };
  2173. for (int i = m; i <= m; i++)
  2174. {
  2175. dayBegin = Convert.ToDateTime(z + "-" + i.ToString().PadLeft(2, '0') + "-01");
  2176. dayEnd = dayBegin.AddMonths(1).AddDays(-1);
  2177. //for (int a = 0; a < arr.Length; a++)
  2178. //{
  2179. // String s = arr[a];
  2180. // for (int j = 0; j <= 2; j++)
  2181. // {
  2182. // String str = j + "#";
  2183. // for (int b = 0; b <= 4; b++)
  2184. // {
  2185. // String br = b.ToString();
  2186. String sqlStr1 = @" INSERT INTO JZ_RPT014
  2187. SELECT
  2188. to_number(@YEAR@ || lpad(to_char(@I@),2,'0')),
  2189. GOODSTYPENAME,
  2190. GOODSNAME,
  2191. OUT_K,
  2192. COUNT_U4,
  2193. COUNT_AB,
  2194. COUNT_AA,
  2195. COUNT_B,
  2196. COUNT_R,
  2197. LB_NUM,
  2198. COUNT_L,
  2199. COUNT_U7,
  2200. COUNT_Z,
  2201. D_GID,
  2202. D_GOODSTYPECODE,
  2203. D_GOODSCODE,
  2204. CNUM1,
  2205. CNUM2,
  2206. CNUM3,
  2207. CNUM4,
  2208. CNUM5,
  2209. CNUM6,
  2210. CNUM7,
  2211. CNUM8,
  2212. CNUM9,
  2213. CNUM10,
  2214. CNUM11,
  2215. CNUM12,
  2216. CNUM13,
  2217. CNUM14,
  2218. CNUM15,
  2219. CNUM16,
  2220. CNUM17,
  2221. CNUM18,
  2222. CNUM19,
  2223. CNUM20,
  2224. CNUM21,
  2225. CNUM22,
  2226. CNUM23,
  2227. CNUM24,
  2228. CNUM25,
  2229. CNUM26,
  2230. CNUM27,
  2231. CNUM28,
  2232. CNUM29,
  2233. CNUM30,
  2234. CNUM31,
  2235. CNUM32,
  2236. CNUM33,
  2237. CNUM34,
  2238. CNUM35,
  2239. CNUM36,
  2240. CNUM37,
  2241. CNUM38,
  2242. CNUM39,
  2243. CNUM40,
  2244. CNUM41,
  2245. CNUM42,
  2246. CNUM43,
  2247. CNUM44,
  2248. CNUM45,
  2249. CNUM46,
  2250. CNUM47,
  2251. CNUM48,
  2252. CNUM49,
  2253. CNUM50,
  2254. CNUM51,
  2255. CNUM52,
  2256. CNUM53,
  2257. CNUM54,
  2258. CNUM55,
  2259. CNUM56,
  2260. CNUM57,
  2261. CNUM58,
  2262. CNUM59,
  2263. CNUM60,
  2264. CNUM61,
  2265. CNUM62,
  2266. CNUM63,
  2267. CNUM64,
  2268. CNUM65,
  2269. CNUM66,
  2270. CNUM67,
  2271. CNUM68,
  2272. CNUM69,
  2273. CNUM70,
  2274. CNUM71,
  2275. CNUM72,
  2276. CNUM73,
  2277. -- decode(BUILDINGNO,NULL,@BUILDINGNO@,BUILDINGNO) AS BUILDINGNO,
  2278. '0' AS BUILDINGNO,
  2279. -- decode(PROCEDUREID,NULL,@PROCEDUREID@,PROCEDUREID) AS PROCEDUREID,
  2280. '0' AS PROCEDUREID,
  2281. GOOD,
  2282. '0' KILNID,
  2283. COUNT_UA
  2284. FROM
  2285. (
  2286. SELECT
  2287. DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS GOODSTYPENAME,
  2288. TA.GOODSNAME AS GOODSNAME,
  2289. TA.BUILDINGNO AS BUILDINGNO,
  2290. TA.PROCEDUREID AS PROCEDUREID,
  2291. DECODE( TA.OUT_K, 0, NULL, TA.OUT_K ) AS OUT_K,
  2292. DECODE( TA.COUNT_U4, 0, NULL, TA.COUNT_U4 ) AS COUNT_U4,
  2293. DECODE( TA.COUNT_U5 + TA.COUNT_AB, 0, NULL, TA.COUNT_U5 + TA.COUNT_AB ) COUNT_AB,
  2294. DECODE( TA.COUNT_AA, 0, NULL, TA.COUNT_AA ) AS COUNT_AA,
  2295. DECODE( TA.COUNT_B, 0, NULL, TA.COUNT_B ) AS COUNT_B,
  2296. DECODE( TA.COUNT_R, 0, NULL, TA.COUNT_R ) AS COUNT_R,
  2297. DECODE( TA.LB_NUM, 0, NULL, TA.LB_NUM ) AS LB_NUM,
  2298. DECODE( TA.COUNT_L, 0, NULL, TA.COUNT_L ) AS COUNT_L,
  2299. DECODE(
  2300. TA.COUNT_U7 - TA.COUNT_B + TA.COUNT_H + TA.COUNT_F,
  2301. 0,
  2302. NULL,
  2303. TA.COUNT_U7 - TA.COUNT_B + TA.COUNT_H + TA.COUNT_F
  2304. ) AS COUNT_U7,
  2305. DECODE( TA.COUNT_Z, 0, NULL, TA.COUNT_Z ) AS COUNT_Z,
  2306. CASE
  2307. WHEN TA.OUT_K IS NULL
  2308. OR TA.OUT_K = 0 THEN
  2309. NULL ELSE ROUND( ( TA.COUNT_U4 + TA.COUNT_U5 + TA.COUNT_AB + TA.COUNT_AA ) / TA.OUT_K, 4 ) * 100
  2310. END AS COUNT_UA,
  2311. TD.* ,DECODE (GOODSTYPENAME,'妇洗','1','座','2','挂座','3','柱','4','盆','5','箱','6','连体','7' ,'8') AS GOOD
  2312. FROM
  2313. (
  2314. SELECT
  2315. GROUPING_ID ( GT.GOODSTYPECODE, G.GOODSCODE ) GID,
  2316. GT.GOODSTYPECODE,
  2317. GT.GOODSTYPENAME,
  2318. G.GOODSCODE,
  2319. G.GOODSNAME,
  2320. SUM(LB_NUM) LB_NUM,
  2321. T.BUILDINGNO,
  2322. T.PROCEDUREID,
  2323. SUM( T.OUT_K ) OUT_K,
  2324. SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 4 THEN 1 ELSE 0 END ) COUNT_U4,
  2325. SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 5 THEN 1 ELSE 0 END ) COUNT_U5,
  2326. SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 7 THEN 1 ELSE 0 END ) COUNT_U7,
  2327. SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 6 AND T.REWORKPROCEDUREID = 19 THEN 1 ELSE 0 END ) AS COUNT_R,
  2328. SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 6 AND T.REWORKPROCEDUREID = 36 THEN 1 ELSE 0 END ) AS COUNT_Z,
  2329. SUM( T.B_NUM ) AS COUNT_B,
  2330. SUM( CASE WHEN T.H_FLAG = 1 THEN 1 ELSE 0 END ) AS COUNT_H,
  2331. SUM( CASE WHEN RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN - 1 ELSE 0 END ) COUNT_L,
  2332. SUM( CASE WHEN T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23 ) THEN 1 ELSE 0 END ) COUNT_AA,
  2333. SUM( CASE WHEN T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 37, 20, 41 ) THEN 1 ELSE 0 END ) COUNT_AB,
  2334. SUM( CASE WHEN T.GOODSLEVELTYPEID NOT IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN 1 ELSE 0 END ) COUNT_F
  2335. FROM
  2336. (
  2337. SELECT
  2338. PD.PRODUCTIONDATAID,
  2339. NULL MPDID,
  2340. 0 GOODSLEVELTYPEID,
  2341. PD.GOODSID,
  2342. 0 REWORKPROCEDUREID,
  2343. DECODE(DL.PRODUCTIONDATAID,null,0,1) LB_NUM,
  2344. 0 B_NUM,
  2345. 1 OUT_K,
  2346. -1 H_FLAG,
  2347. PD.PROCEDUREID,
  2348. GL.BUILDINGNO
  2349. FROM
  2350. TP_PM_PRODUCTIONDATA PD
  2351. INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
  2352. LEFT JOIN TP_PM_DEFECT DL ON DL.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  2353. AND DL.DEFECTID = 67
  2354. AND DL.VALUEFLAG = '1'
  2355. WHERE
  2356. -- (PD.PROCEDUREID = @PROCEDUREID@)
  2357. -- AND
  2358. PD.CHECKFLAG = 1
  2359. AND PD.CREATETIME >=@DATEBEGIN@
  2360. AND PD.CREATETIME <= @DATEEND@
  2361. -- AND (PD.KILNID =@KILNID@ OR @KILNID@ IS NULL)
  2362. AND (INSTR((NULL),PD.GOODSCODE)>0 OR NULL IS NULL)
  2363. -- AND (GL.BUILDINGNO = @BUILDINGNO@ )
  2364. UNION ALL
  2365. SELECT
  2366. PD.PRODUCTIONDATAID,
  2367. MAX( PMAX.PRODUCTIONDATAID ) MPDID,
  2368. PD.GOODSLEVELTYPEID,
  2369. PD.GOODSID,
  2370. PD.REWORKPROCEDUREID,
  2371. 0 LB_NUM,
  2372. CASE WHEN PD.GOODSLEVELTYPEID = 7 AND sum( D.PRODUCTIONDEFECTID ) > 0 THEN 1 ELSE 0 END B_NUM,
  2373. 0 OUT_K,
  2374. CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG,
  2375. PD.PROCEDUREID,
  2376. GL.BUILDINGNO
  2377. FROM
  2378. TP_PM_PRODUCTIONDATA PD
  2379. LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
  2380. AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1'
  2381. AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
  2382. LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  2383. AND D.DEFECTID = 92
  2384. AND D.VALUEFLAG = '1'
  2385. INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
  2386. WHERE
  2387. PD.VALUEFLAG = '1'
  2388. -- AND (PD.PROCEDUREID = @PROCEDUREID@ )
  2389. AND PD.CHECKBATCHNO = 1
  2390. AND PD.CREATETIME >= @DATEBEGIN@
  2391. AND PD.CREATETIME <= @DATEEND@
  2392. -- AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL)
  2393. AND (INSTR((NULL),PD.GOODSCODE)>0 OR NULL IS NULL)
  2394. -- AND (GL.BUILDINGNO = @BUILDINGNO@ )
  2395. GROUP BY
  2396. PD.PRODUCTIONDATAID,
  2397. PD.GOODSLEVELTYPEID,
  2398. PD.GOODSID,
  2399. PD.REWORKPROCEDUREID,
  2400. PD.PROCEDUREID,
  2401. GL.BUILDINGNO
  2402. ) T
  2403. LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID
  2404. INNER JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
  2405. INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  2406. GROUP BY
  2407. GROUPING SETS ( ( GT.GOODSTYPECODE, GT.GOODSTYPENAME, G.GOODSCODE, G.GOODSNAME,T.BUILDINGNO,T.PROCEDUREID ), ( GT.GOODSTYPECODE, GT.GOODSTYPENAME ), ( ) )
  2408. ) TA
  2409. LEFT JOIN (
  2410. SELECT
  2411. *
  2412. FROM
  2413. (
  2414. SELECT
  2415. CASE WHEN TT.GID IN ( 12, 13, 15 ) THEN 3 WHEN TT.GID IN ( 4, 5, 7 ) THEN 1 ELSE 0 END AS D_GID,
  2416. TT.GOODSTYPECODE D_GOODSTYPECODE,
  2417. TT.GOODSCODE D_GOODSCODE,
  2418. CASE WHEN TT.GID IN ( 1, 5, 13 ) THEN TT.DEFECT || '合计' WHEN TT.GID IN ( 3, 7, 15 ) THEN '合计' ELSE TT.DEFECT END AS DEFECT,
  2419. TT.CNUM
  2420. FROM
  2421. (
  2422. SELECT
  2423. GROUPING_ID ( GT.GOODSTYPECODE, G.GOODSCODE, PDP.DEFECTGROUPNAME, M.DEFECTNAME ) AS GID,
  2424. GT.GOODSTYPECODE,
  2425. GT.GOODSTYPENAME,
  2426. G.GOODSCODE,
  2427. PDP.DEFECTGROUPNAME,
  2428. TO_CHAR( PDP.DEFECTGROUPNAME || '_' || M.DEFECTNAME ) AS DEFECT,
  2429. SUM(CASE WHEN D.DEFECTID = 11 AND (P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5) THEN 0 ELSE 1 END) AS CNUM
  2430. FROM
  2431. TP_PM_PRODUCTIONDATA P
  2432. INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
  2433. INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  2434. INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  2435. INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
  2436. INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
  2437. LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
  2438. INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
  2439. AND (
  2440. ( PDP.PROCEDUREID1 = PR.PROCEDUREID OR PDP.PROCEDUREID2 = PR.PROCEDUREID )
  2441. OR '' = 35
  2442. )
  2443. WHERE
  2444. P.VALUEFLAG = '1'
  2445. -- AND (P.PROCEDUREID = @PROCEDUREID@ )
  2446. AND P.CHECKBATCHNO = 1
  2447. AND P.CREATETIME >= @DATEBEGIN@
  2448. AND P.CREATETIME <= @DATEEND@
  2449. AND P.GOODSLEVELTYPEID <> 4
  2450. -- AND (P.KILNID =@KILNID@ OR @KILNID@ IS NULL)
  2451. AND (INSTR((NULL),P.GOODSCODE)>0 OR NULL IS NULL)
  2452. -- AND (L.BUILDINGNO = @BUILDINGNO@ )
  2453. GROUP BY
  2454. GROUPING SETS (
  2455. ( GT.GOODSTYPECODE, GT.GOODSTYPENAME, G.GOODSCODE, PDP.DEFECTGROUPNAME, M.DEFECTNAME ),
  2456. ( GT.GOODSTYPECODE, GT.GOODSTYPENAME, G.GOODSCODE, PDP.DEFECTGROUPNAME ),
  2457. ( GT.GOODSTYPECODE, GT.GOODSTYPENAME, G.GOODSCODE ),
  2458. ( GT.GOODSTYPECODE, GT.GOODSTYPENAME, PDP.DEFECTGROUPNAME, M.DEFECTNAME ),
  2459. ( GT.GOODSTYPECODE, GT.GOODSTYPENAME, PDP.DEFECTGROUPNAME ),
  2460. ( GT.GOODSTYPECODE, GT.GOODSTYPENAME ),
  2461. ( PDP.DEFECTGROUPNAME, M.DEFECTNAME ),
  2462. ( PDP.DEFECTGROUPNAME ),
  2463. ( )
  2464. )
  2465. ) TT
  2466. ) PIVOT (
  2467. SUM( CNUM ) FOR DEFECT IN ('原料缺陷_铁脏' AS CNUM1,
  2468. '原料缺陷_铜脏' AS CNUM2,
  2469. '原料缺陷_合计' AS CNUM3,
  2470. '成型缺陷_糙活' AS CNUM4,
  2471. '成型缺陷_成裂' AS CNUM5,
  2472. '成型缺陷_成脏' AS CNUM6,
  2473. '成型缺陷_成走' AS CNUM7,
  2474. '成型缺陷_孔不良' AS CNUM8,
  2475. '成型缺陷_漏气' AS CNUM9,
  2476. '成型缺陷_泥绺' AS CNUM10,
  2477. '成型缺陷_排水不良' AS CNUM11,
  2478. '成型缺陷_坯脏' AS CNUM12,
  2479. '成型缺陷_注泡' AS CNUM13,
  2480. '成型缺陷_棕眼' AS CNUM14,
  2481. '成型缺陷_炸圈' AS CNUM15,
  2482. '成型缺陷_卡球' AS CNUM16,
  2483. '成型缺陷_合计' AS CNUM17,
  2484. '施釉缺陷_爆釉' AS CNUM18,
  2485. '施釉缺陷_标不良' AS CNUM19,
  2486. '施釉缺陷_脱釉' AS CNUM20,
  2487. '施釉缺陷_釉薄' AS CNUM21,
  2488. '施釉缺陷_釉磕' AS CNUM22,
  2489. '施釉缺陷_釉绺' AS CNUM23,
  2490. '施釉缺陷_釉脏' AS CNUM24,
  2491. '施釉缺陷_釉粘' AS CNUM25,
  2492. '施釉缺陷_釉泡' AS CNUM26,
  2493. '施釉缺陷_波纹' AS CNUM27,
  2494. '施釉缺陷_合计' AS CNUM28,
  2495. '循环线施釉缺陷_爆釉' AS CNUM29,
  2496. '循环线施釉缺陷_标不良' AS CNUM30,
  2497. '循环线施釉缺陷_脱釉' AS CNUM31,
  2498. '循环线施釉缺陷_釉薄' AS CNUM32,
  2499. '循环线施釉缺陷_釉磕' AS CNUM33,
  2500. '循环线施釉缺陷_釉绺' AS CNUM34,
  2501. '循环线施釉缺陷_釉脏' AS CNUM35,
  2502. '循环线施釉缺陷_釉粘' AS CNUM36,
  2503. '循环线施釉缺陷_釉泡' AS CNUM37,
  2504. '循环线施釉缺陷_波纹' AS CNUM38,
  2505. '循环线施釉缺陷_合计' AS CNUM39,
  2506. '出装窑缺陷_蹭釉' AS CNUM40,
  2507. '出装窑缺陷_出磕' AS CNUM41,
  2508. '出装窑缺陷_划釉' AS CNUM42,
  2509. '出装窑缺陷_落脏' AS CNUM43,
  2510. '出装窑缺陷_装磕' AS CNUM44,
  2511. '出装窑缺陷_装粘' AS CNUM45,
  2512. '出装窑缺陷_装脏' AS CNUM46,
  2513. '出装窑缺陷_装走' AS CNUM47,
  2514. '出装窑缺陷_合计' AS CNUM48,
  2515. '烧窑缺陷_过火泡' AS CNUM49,
  2516. '烧窑缺陷_桔釉' AS CNUM50,
  2517. '烧窑缺陷_麻坑' AS CNUM51,
  2518. '烧窑缺陷_烧裂' AS CNUM52,
  2519. '烧窑缺陷_烧生' AS CNUM53,
  2520. '烧窑缺陷_窑脏' AS CNUM54,
  2521. '烧窑缺陷_烧炸' AS CNUM55,
  2522. '烧窑缺陷_烟熏' AS CNUM56,
  2523. '烧窑缺陷_水滴' AS CNUM57,
  2524. '烧窑缺陷_风惊' AS CNUM58,
  2525. '烧窑缺陷_针孔' AS CNUM59,
  2526. '烧窑缺陷_合计' AS CNUM60,
  2527. '其他缺陷_崩脏' AS CNUM61,
  2528. '其他缺陷_坯磕' AS CNUM62,
  2529. '其他缺陷_研磨' AS CNUM63,
  2530. '其他缺陷_复烧修补不良' AS CNUM64,
  2531. '其他缺陷_合计' AS CNUM65,
  2532. '研磨缺陷_眼' AS CNUM66,
  2533. '研磨缺陷_底' AS CNUM67,
  2534. '研磨缺陷_底和面' AS CNUM68,
  2535. '研磨缺陷_面' AS CNUM69,
  2536. '研磨缺陷_边' AS CNUM70,
  2537. '研磨缺陷_研磨配盖' AS CNUM71,
  2538. '研磨缺陷_合计' AS CNUM72,
  2539. '合计' AS CNUM73
  2540. )
  2541. )
  2542. ) TD ON TA.GID = TD.D_GID
  2543. AND
  2544. (
  2545. ( TA.GID = 0 AND TA.GOODSTYPECODE = TD.D_GOODSTYPECODE AND TA.GOODSCODE = TD.D_GOODSCODE )
  2546. OR ( TA.GID = 1 AND TA.GOODSTYPECODE = TD.D_GOODSTYPECODE )
  2547. OR ( TA.GID = 3 )
  2548. )
  2549. )
  2550. ";
  2551. List<CDAParameter> sqlPara = new List<CDAParameter>();
  2552. sqlPara.Add(new CDAParameter("I", i));
  2553. sqlPara.Add(new CDAParameter("YEAR", z));
  2554. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  2555. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  2556. //sqlPara.Add(new CDAParameter("BUILDINGNO", str));
  2557. //sqlPara.Add(new CDAParameter("KILNID", br));
  2558. //sqlPara.Add(new CDAParameter("PROCEDUREID", s));
  2559. result += conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  2560. // }
  2561. //}
  2562. // }
  2563. }
  2564. conn.Commit();
  2565. if (result > 0)
  2566. {
  2567. Curtain.Log.Logger.Debug(z + "年" + t + "月:export014每窑质量总缺陷统计表结转成功!");
  2568. }
  2569. else
  2570. {
  2571. Curtain.Log.Logger.Debug(z + "年" + t + "月:export014每窑质量总缺陷统计表结转0条!");
  2572. }
  2573. }
  2574. catch (Exception ex)
  2575. {
  2576. conn.Rollback();
  2577. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export014每窑质量总缺陷统计表结转失败!");
  2578. Curtain.Log.Logger.Error(ex);
  2579. }
  2580. finally
  2581. {
  2582. conn.Close();
  2583. }
  2584. }
  2585. }
  2586. public static void export015()
  2587. {
  2588. using (IDataAccess conn = DataAccess.Create())
  2589. {
  2590. try
  2591. {
  2592. Curtain.Log.Logger.Debug("export015 成型废品统计表结转开始!");
  2593. conn.Open();
  2594. conn.BeginTransaction();
  2595. //2021-07-12 dongyan 修正什么问题
  2596. int result = 0;
  2597. int m = DateTime.Now.AddMonths(-1).Month;
  2598. DateTime dayBegin = new DateTime();
  2599. DateTime dayEnd = new DateTime();
  2600. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  2601. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  2602. int c = Convert.ToInt32(b + a);
  2603. string sqlStr = @"delete JZ_RPT015 WHERE FORWARD_TIME = @C@";
  2604. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  2605. for (int i = m; i <= m; i++)
  2606. {
  2607. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  2608. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  2609. string sqlStr1 = @" INSERT INTO JZ_RPT015 SELECT * FROM (SELECT DECODE(GROUPING_ID(MU.USERCODE, U.USERCODE, P.GOODSCODE)
  2610. ,7
  2611. ,'合计'
  2612. ,MU.USERCODE) AS 组号
  2613. ,MU.USERNAME AS 组名
  2614. ,U.USERCODE||decode(PP.USERCODE,null,null,'['|| PP.USERCODE ||']') AS 工号
  2615. ,U.USERNAME||decode(PP.USERCODE,null,null,'['|| PU.USERNAME ||']') AS 姓名
  2616. ,P.GOODSCODE AS 产品编码
  2617. ,COUNT(*) AS 废品数,
  2618. '0' as BUILDINGNO,
  2619. '0' as DEFECTPROCEDUREID,
  2620. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  2621. FROM TP_PM_PRODUCTIONDATA P
  2622. LEFT JOIN TP_PM_PRODUCTIONDATA PP
  2623. ON PP.groutingdailydetailid = P.groutingdailydetailid
  2624. AND PP.procedureID = 1
  2625. LEFT JOIN TP_MST_USER PU
  2626. ON PU.USERID = PP.USERID
  2627. INNER JOIN TP_MST_USER U
  2628. ON U.USERID = P.GROUTINGUSERID
  2629. INNER JOIN TP_PC_GROUTINGLINE L
  2630. ON P.GROUTINGLINEID = L.GROUTINGLINEID
  2631. LEFT JOIN TP_MST_USER MU
  2632. ON MU.USERID = L.MONITORID
  2633. WHERE P.VALUEFLAG = '1' AND P.CHECKBATCHNO = 1
  2634. AND P.PROCEDUREID = 13
  2635. AND P.GOODSLEVELTYPEID <> 4
  2636. AND P.CHECKTIME >= @DATEBEGIN@
  2637. AND P.CHECKTIME <= @DATEEND@
  2638. AND P.ISREFIRE = '0'
  2639. AND EXISTS
  2640. (SELECT D.DEFECTID
  2641. FROM TP_PM_DEFECT D
  2642. INNER JOIN TP_MST_DEFECTFINE F
  2643. ON D.DEFECTFINE = F.DEFECTFINEID
  2644. WHERE P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
  2645. AND D.DEFECTID = 1
  2646. AND F.DEFECTFINECODE = '1.5'
  2647. AND D.DEFECTUSERID = P.GROUTINGUSERID
  2648. )
  2649. GROUP BY GROUPING SETS((MU.USERCODE, MU.USERNAME, U.USERCODE, U.USERNAME, PP.USERCODE, PU.USERNAME, P.GOODSCODE),(MU.USERCODE, MU.USERNAME),())
  2650. ORDER BY 组号, 工号, GROUPING_ID(MU.USERCODE, U.USERCODE, PP.USERCODE, P.GOODSCODE)
  2651. )
  2652. WHERE 产品编码 IS NOT NULL
  2653. ";
  2654. List<CDAParameter> sqlPara = new List<CDAParameter>();
  2655. sqlPara.Add(new CDAParameter("I", i));
  2656. sqlPara.Add(new CDAParameter("YEAR", b));
  2657. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  2658. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  2659. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  2660. }
  2661. conn.Commit();
  2662. if (result > 0)
  2663. {
  2664. Curtain.Log.Logger.Debug(b + "年" + a + "月:export015成型废品统计表结转成功!");
  2665. }
  2666. else
  2667. {
  2668. Curtain.Log.Logger.Debug(b + "年" + a + "月:export015成型废品统计表结转0条!");
  2669. }
  2670. }
  2671. catch (Exception ex)
  2672. {
  2673. conn.Rollback();
  2674. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export015成型废品统计表结转失败!");
  2675. Curtain.Log.Logger.Error(ex);
  2676. }
  2677. finally
  2678. {
  2679. conn.Close();
  2680. }
  2681. }
  2682. }
  2683. public static void export016()
  2684. {
  2685. using (IDataAccess conn = DataAccess.Create())
  2686. {
  2687. //2021-08-2 dongyan 修正什么问题
  2688. Curtain.Log.Logger.Debug("export016 回收合格汇总表结转开始!");
  2689. int result = 0;
  2690. int result1 = 0;
  2691. int result2 = 0;
  2692. int result3 = 0;
  2693. int m = DateTime.Now.AddMonths(-1).Month;
  2694. DateTime dayBegin = new DateTime();
  2695. DateTime dayEnd = new DateTime();
  2696. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  2697. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  2698. int c = Convert.ToInt32(b + a);
  2699. conn.Open();
  2700. conn.BeginTransaction();
  2701. try
  2702. {
  2703. string sqlStr = @"delete AJZ_RPT016_YM WHERE FORWARDTIME = @C@";
  2704. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  2705. string Str = @"delete AJZ_RPT016_QT WHERE FORWARDTIME = @C@";
  2706. conn.ExecuteNonQuery(Str, new CDAParameter("C", c));
  2707. for (int i = m; i <= m; i++)
  2708. {
  2709. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  2710. dayEnd = dayBegin.AddMonths(1);
  2711. string sqlStr1 = @" INSERT INTO AJZ_RPT016_YM
  2712. SELECT * FROM(SELECT
  2713. UPD.USERCODE AS 工号,
  2714. CDU.STAFFNAME AS 姓名,
  2715. J.JOBSNAME AS 工种,
  2716. G.GOODSMODEL AS 产品型号,
  2717. RU.USERCODE AS 生产工号,
  2718. RU.USERNAME AS 生产姓名,
  2719. COUNT( DISTINCT TT.UPDID ) AS 回收检验数,
  2720. COUNT( DISTINCT TT.UPDID ) - COUNT( DISTINCT TT.dnum ) AS 回收合格数,
  2721. SUM( DECODE( TT.DEFECTID, 68, 1, NULL ) ) AS 研磨缺陷_眼,
  2722. SUM( DECODE( TT.DEFECTID, 69, 1, NULL ) ) AS 研磨缺陷_底,
  2723. SUM( DECODE( TT.DEFECTID, 70, 1, NULL ) ) AS 研磨缺陷_底和面,
  2724. SUM( DECODE( TT.DEFECTID, 94, 1, NULL ) ) AS 研磨缺陷_面,
  2725. SUM( DECODE( TT.DEFECTID, 95, 1, NULL ) ) AS 研磨缺陷_边,
  2726. SUM( DECODE( TT.DEFECTID, 96, 1, NULL ) ) AS 研磨缺陷_研磨配盖,
  2727. '0' as JOBSID,
  2728. '0' as BUILDINGNO,
  2729. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  2730. FROM (SELECT T.PRODUCTIONDATAID,
  2731. D.DEFECTID,
  2732. (
  2733. select
  2734. case
  2735. when count(d.PRODUCTIONDEFECTID) > 0 then
  2736. T.PRODUCTIONDATAID
  2737. else
  2738. null
  2739. end dnum
  2740. from TP_PM_DEFECT D
  2741. WHERE D.PRODUCTIONDATAID = T.PRODUCTIONDATAID
  2742. AND D.DEFECTID = 78) dnum,
  2743. MIN(CASE
  2744. WHEN T.PRODUCTIONDATAID < PD.PRODUCTIONDATAID THEN
  2745. PD.PRODUCTIONDATAID
  2746. ELSE
  2747. NULL
  2748. END) NEXTPDID,
  2749. MAX(CASE
  2750. WHEN T.PRODUCTIONDATAID > PD.PRODUCTIONDATAID AND
  2751. PD.MODELTYPE <> -1 THEN
  2752. PD.PRODUCTIONDATAID
  2753. ELSE
  2754. 0
  2755. END) REPDID,
  2756. MAX(CASE
  2757. WHEN T.PRODUCTIONDATAID >= PD.PRODUCTIONDATAID AND
  2758. PD.CHECKFLAG = 3 THEN
  2759. PD.PRODUCTIONDATAID
  2760. ELSE
  2761. 0
  2762. END) UPDID
  2763. FROM TP_PM_PRODUCTIONDATA T
  2764. LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = T.PRODUCTIONDATAID
  2765. AND D.DEFECTID IN (68, 69, 70, 94, 95, 96)
  2766. INNER JOIN TP_PM_PRODUCTIONDATA PD ON T.BARCODE = PD.BARCODE
  2767. AND T.KILNCARBATCHNO =
  2768. PD.KILNCARBATCHNO
  2769. AND (PD.MODELTYPE = -1 OR
  2770. PD.VALUEFLAG = '1')
  2771. WHERE
  2772. T.CREATETIME >= @DATEBEGIN@
  2773. AND T.CREATETIME < @DATEEND@
  2774. AND T.MODELTYPE = -1
  2775. GROUP BY T.PRODUCTIONDATAID, T.GOODSLEVELTYPEID ,D.DEFECTID) TT
  2776. LEFT JOIN TP_PM_PRODUCTIONDATA NPD ON NPD.PRODUCTIONDATAID = TT.NEXTPDID
  2777. INNER JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = TT.REPDID
  2778. INNER JOIN TP_MST_USER RU ON RU.USERID = (case when RPD.PROCEDUREID = 23 then--生产工号 姓名
  2779. FUN_RPT_GetPrevPD_USERID_ALL(RPD.PRODUCTIONDATAID,
  2780. RPD.barcode) else
  2781. RPD.USERID end)
  2782. INNER JOIN TP_PM_PRODUCTIONDATA UPD ON UPD.PRODUCTIONDATAID = TT.UPDID --工号
  2783. INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = RPD.GROUTINGLINEID --楼号查询提哦啊见
  2784. INNER JOIN TP_MST_GOODS G ON RPD.GOODSID = G.GOODSID --产品型号
  2785. LEFT JOIN TP_PC_CLASSESDETAIL CD ON UPD.CLASSESSETTINGID =CD.CLASSESSETTINGID
  2786. LEFT JOIN TP_MST_JOBS J ON J.JOBSID = CD.UJOBSID --工种
  2787. LEFT JOIN TP_HR_STAFF CDU ON CDU.STAFFID = CD.STAFFID --姓名
  2788. -- LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = TT.PRODUCTIONDATAID
  2789. -- AND TT.dnum IS NULL
  2790. -- AND D.DEFECTID IN (68, 69, 70, 94, 95, 96)
  2791. WHERE (NPD.PRODUCTIONDATAID IS NULL OR NPD.MODELTYPE > -1)
  2792. AND RPD.PROCEDUREID IN (20, 23)
  2793. GROUP BY GROUPING SETS((UPD.USERCODE, CDU.STAFFNAME, G.GOODSMODEL, RU.USERCODE, RU.USERNAME, J.JOBSNAME),(UPD.USERCODE, CDU.STAFFNAME, J.JOBSNAME))
  2794. ORDER BY UPD.USERCODE, CDU.STAFFNAME, J.JOBSNAME, G.GOODSMODEL
  2795. )D WHERE D.产品型号 is not null";
  2796. string sqlStr2 = @"INSERT INTO AJZ_RPT016_QT SELECT * FROM (SELECT
  2797. UPD.USERCODE AS 工号,
  2798. CDU.STAFFNAME AS 姓名,
  2799. J.JOBSNAME AS 工种,
  2800. G.GOODSMODEL AS 产品型号,
  2801. RU.USERCODE AS 生产工号,
  2802. RU.USERNAME AS 生产姓名,
  2803. COUNT( DISTINCT TT.UPDID ) AS 回收检验数,
  2804. COUNT( DISTINCT TT.UPDID )-SUM( dnum ) AS 回收合格数,
  2805. '0' as JOBSID,
  2806. '0' as BUILDINGNO,
  2807. '1',
  2808. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  2809. FROM
  2810. (
  2811. SELECT
  2812. T.PRODUCTIONDATAID,
  2813. (select case when count(d.PRODUCTIONDEFECTID) > 0 then 1 else 0 end dnum from TP_PM_DEFECT D WHERE D.PRODUCTIONDATAID = T.PRODUCTIONDATAID AND D.DEFECTID = 72) dnum,
  2814. MIN( CASE WHEN T.PRODUCTIONDATAID < PD.PRODUCTIONDATAID THEN PD.PRODUCTIONDATAID ELSE NULL END ) NEXTPDID,
  2815. MAX( CASE WHEN T.PRODUCTIONDATAID > PD.PRODUCTIONDATAID AND PD.MODELTYPE <> -1 THEN PD.PRODUCTIONDATAID ELSE 0 END ) REPDID,
  2816. MAX( CASE WHEN T.PRODUCTIONDATAID >= PD.PRODUCTIONDATAID AND PD.CHECKFLAG = 3 THEN PD.PRODUCTIONDATAID ELSE 0 END ) UPDID
  2817. FROM
  2818. TP_PM_PRODUCTIONDATA T
  2819. INNER JOIN TP_PM_PRODUCTIONDATA PD ON T.BARCODE = PD.BARCODE
  2820. AND T.KILNCARBATCHNO = PD.KILNCARBATCHNO AND (PD.MODELTYPE = -1 OR PD.VALUEFLAG='1')
  2821. WHERE
  2822. T.CREATETIME >= @DATEBEGIN@
  2823. AND T.CREATETIME < @DATEEND@
  2824. AND T.MODELTYPE = -1
  2825. GROUP BY
  2826. T.PRODUCTIONDATAID
  2827. ) TT
  2828. LEFT JOIN TP_PM_PRODUCTIONDATA NPD ON NPD.PRODUCTIONDATAID = TT.NEXTPDID
  2829. INNER JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = TT.REPDID
  2830. INNER JOIN TP_MST_USER RU ON RU.USERID = RPD.USERID
  2831. INNER JOIN TP_PM_PRODUCTIONDATA UPD ON UPD.PRODUCTIONDATAID = TT.UPDID
  2832. INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = RPD.GROUTINGLINEID
  2833. INNER JOIN TP_MST_GOODS G ON RPD.GOODSID = G.GOODSID
  2834. LEFT JOIN TP_PC_CLASSESDETAIL CD ON UPD.CLASSESSETTINGID = CD.CLASSESSETTINGID
  2835. LEFT JOIN TP_HR_STAFF CDU ON CDU.STAFFID = CD.STAFFID
  2836. LEFT JOIN TP_MST_JOBS J ON J.JOBSID = CD.UJOBSID
  2837. WHERE
  2838. ( NPD.PRODUCTIONDATAID IS NULL OR NPD.MODELTYPE > -1 )
  2839. AND RPD.PROCEDUREID = 22
  2840. GROUP BY
  2841. GROUPING SETS (
  2842. ( UPD.USERCODE, CDU.STAFFNAME, G.GOODSMODEL, RU.USERCODE, RU.USERNAME, J.JOBSNAME ),
  2843. ( UPD.USERCODE, CDU.STAFFNAME, J.JOBSNAME )
  2844. ) )D WHERE D.产品型号 IS NOT NULL";
  2845. string sqlStr3 = @"INSERT INTO AJZ_RPT016_QT SELECT * FROM (SELECT
  2846. UPD.USERCODE AS 工号,
  2847. CDU.STAFFNAME AS 姓名,
  2848. J.JOBSNAME AS 工种,
  2849. G.GOODSMODEL AS 产品型号,
  2850. RU.USERCODE AS 生产工号,
  2851. RU.USERNAME AS 生产姓名,
  2852. COUNT( DISTINCT TT.UPDID ) AS 回收检验数,
  2853. COUNT( DISTINCT TT.UPDID )-SUM( dnum ) AS 回收合格数,
  2854. '0' as JOBSID,
  2855. '0' as BUILDINGNO,
  2856. '2' ,
  2857. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  2858. FROM
  2859. (
  2860. SELECT
  2861. T.PRODUCTIONDATAID,
  2862. (select case when count(d.PRODUCTIONDEFECTID) > 0 then 1 else 0 end dnum from TP_PM_DEFECT D WHERE D.PRODUCTIONDATAID = T.PRODUCTIONDATAID AND D.DEFECTID = 72) dnum,
  2863. MIN( CASE WHEN T.PRODUCTIONDATAID < PD.PRODUCTIONDATAID THEN PD.PRODUCTIONDATAID ELSE NULL END ) NEXTPDID,
  2864. MAX( CASE WHEN T.PRODUCTIONDATAID > PD.PRODUCTIONDATAID AND PD.MODELTYPE <> -1 THEN PD.PRODUCTIONDATAID ELSE 0 END ) REPDID,
  2865. MAX( CASE WHEN T.PRODUCTIONDATAID >= PD.PRODUCTIONDATAID AND PD.CHECKFLAG = 3 THEN PD.PRODUCTIONDATAID ELSE 0 END ) UPDID
  2866. FROM
  2867. TP_PM_PRODUCTIONDATA T
  2868. INNER JOIN TP_PM_PRODUCTIONDATA PD ON T.BARCODE = PD.BARCODE
  2869. AND T.KILNCARBATCHNO = PD.KILNCARBATCHNO AND (PD.MODELTYPE = -1 OR PD.VALUEFLAG='1')
  2870. WHERE
  2871. T.CREATETIME >= @DATEBEGIN@
  2872. AND T.CREATETIME < @DATEEND@
  2873. AND T.MODELTYPE = -1
  2874. GROUP BY
  2875. T.PRODUCTIONDATAID
  2876. ) TT
  2877. LEFT JOIN TP_PM_PRODUCTIONDATA NPD ON NPD.PRODUCTIONDATAID = TT.NEXTPDID
  2878. INNER JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = TT.REPDID
  2879. INNER JOIN TP_MST_USER RU ON RU.USERID = RPD.USERID
  2880. INNER JOIN TP_PM_PRODUCTIONDATA UPD ON UPD.PRODUCTIONDATAID = TT.UPDID
  2881. INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = RPD.GROUTINGLINEID
  2882. INNER JOIN TP_MST_GOODS G ON RPD.GOODSID = G.GOODSID
  2883. LEFT JOIN TP_PC_CLASSESDETAIL CD ON UPD.CLASSESSETTINGID = CD.CLASSESSETTINGID
  2884. LEFT JOIN TP_HR_STAFF CDU ON CDU.STAFFID = CD.STAFFID
  2885. LEFT JOIN TP_MST_JOBS J ON J.JOBSID = CD.UJOBSID
  2886. WHERE
  2887. ( NPD.PRODUCTIONDATAID IS NULL OR NPD.MODELTYPE > -1 )
  2888. AND RPD.PROCEDUREID = 23
  2889. GROUP BY
  2890. GROUPING SETS (
  2891. ( UPD.USERCODE, CDU.STAFFNAME, G.GOODSMODEL, RU.USERCODE, RU.USERNAME, J.JOBSNAME ),
  2892. ( UPD.USERCODE, CDU.STAFFNAME, J.JOBSNAME )
  2893. ) )D WHERE D.产品型号 IS NOT NULL";
  2894. string sqlStr4 = @"INSERT INTO AJZ_RPT016_QT SELECT * FROM (SELECT
  2895. UPD.USERCODE AS 工号,
  2896. CDU.STAFFNAME AS 姓名,
  2897. J.JOBSNAME AS 工种,
  2898. G.GOODSMODEL AS 产品型号,
  2899. RU.USERCODE AS 生产工号,
  2900. RU.USERNAME AS 生产姓名,
  2901. COUNT( TT.UPDID ) AS 回收检验数,
  2902. SUM( decode(TT.GOODSLEVELTYPEID,4,1,5,1,0) ) AS 回收合格数,
  2903. '0' as JOBSID,
  2904. '0' as BUILDINGNO,
  2905. '3',
  2906. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  2907. FROM
  2908. (
  2909. SELECT
  2910. T.PRODUCTIONDATAID,
  2911. T.GOODSLEVELTYPEID,
  2912. MIN( CASE WHEN T.PRODUCTIONDATAID < PD.PRODUCTIONDATAID THEN PD.PRODUCTIONDATAID ELSE NULL END ) NEXTPDID,
  2913. MAX( CASE WHEN T.PRODUCTIONDATAID > PD.PRODUCTIONDATAID AND PD.MODELTYPE <> -1 THEN PD.PRODUCTIONDATAID ELSE 0 END ) REPDID,
  2914. MAX( CASE WHEN T.PRODUCTIONDATAID >= PD.PRODUCTIONDATAID AND PD.CHECKFLAG = 3 THEN PD.PRODUCTIONDATAID ELSE 0 END ) UPDID
  2915. FROM
  2916. TP_PM_PRODUCTIONDATA T
  2917. INNER JOIN TP_PM_PRODUCTIONDATA PD ON T.BARCODE = PD.BARCODE
  2918. AND T.KILNCARBATCHNO = PD.KILNCARBATCHNO AND (PD.MODELTYPE = -1 OR PD.VALUEFLAG='1')
  2919. WHERE
  2920. T.CREATETIME >= @DATEBEGIN@
  2921. AND T.CREATETIME < @DATEEND@
  2922. AND T.MODELTYPE = -1
  2923. GROUP BY
  2924. T.PRODUCTIONDATAID,
  2925. T.GOODSLEVELTYPEID
  2926. ) TT
  2927. LEFT JOIN TP_PM_PRODUCTIONDATA NPD ON NPD.PRODUCTIONDATAID = TT.NEXTPDID
  2928. INNER JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = TT.REPDID
  2929. INNER JOIN TP_MST_USER RU ON RU.USERID = RPD.USERID
  2930. INNER JOIN TP_PM_PRODUCTIONDATA UPD ON UPD.PRODUCTIONDATAID = TT.UPDID
  2931. INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = RPD.GROUTINGLINEID
  2932. INNER JOIN TP_MST_GOODS G ON RPD.GOODSID = G.GOODSID
  2933. LEFT JOIN TP_PC_CLASSESDETAIL CD ON UPD.CLASSESSETTINGID = CD.CLASSESSETTINGID
  2934. LEFT JOIN TP_HR_STAFF CDU ON CDU.STAFFID = CD.STAFFID
  2935. LEFT JOIN TP_MST_JOBS J ON J.JOBSID = CD.UJOBSID
  2936. WHERE
  2937. ( NPD.PRODUCTIONDATAID IS NULL OR NPD.MODELTYPE > -1 )
  2938. AND RPD.PROCEDUREID = 37
  2939. GROUP BY
  2940. GROUPING SETS (
  2941. ( UPD.USERCODE, CDU.STAFFNAME, G.GOODSMODEL, RU.USERCODE, RU.USERNAME, J.JOBSNAME ),
  2942. ( UPD.USERCODE, CDU.STAFFNAME, J.JOBSNAME )
  2943. )
  2944. ) D WHERE D.产品型号 IS NOT NULL";
  2945. List<CDAParameter> sqlPara = new List<CDAParameter>();
  2946. sqlPara.Add(new CDAParameter("I", i));
  2947. sqlPara.Add(new CDAParameter("YEAR", b));
  2948. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  2949. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  2950. result += conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  2951. result1 += conn.ExecuteNonQuery(sqlStr2, sqlPara.ToArray());
  2952. result2 += conn.ExecuteNonQuery(sqlStr3, sqlPara.ToArray());
  2953. result3 += conn.ExecuteNonQuery(sqlStr4, sqlPara.ToArray());
  2954. }
  2955. conn.Commit();
  2956. }
  2957. catch (Exception ex)
  2958. {
  2959. conn.Rollback();
  2960. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export016回收合格汇总表结转失败!");
  2961. }
  2962. finally
  2963. {
  2964. conn.Close();
  2965. }
  2966. if (result > 0 && result1 > 0 && result2 > 0 && result3 > 0)
  2967. {
  2968. Curtain.Log.Logger.Debug(b + "年" + a + "月:export016回收合格汇总表结转成功!");
  2969. }
  2970. else
  2971. {
  2972. Curtain.Log.Logger.Debug(b + "年" + a + "月:export016回收合格汇总表结转0条!");
  2973. }
  2974. }
  2975. }
  2976. public static void export017()
  2977. {
  2978. using (IDataAccess conn = DataAccess.Create())
  2979. {
  2980. try
  2981. {
  2982. Curtain.Log.Logger.Debug("export017 成检产量统计表结转开始!");
  2983. conn.Open();
  2984. conn.BeginTransaction();
  2985. //2021-07-12 dongyan 修正什么问题
  2986. int result = 0;
  2987. int m = DateTime.Now.AddMonths(-1).Month;
  2988. string mouth = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  2989. string year = DateTime.Now.AddMonths(-1).Year.ToString();
  2990. int c = Convert.ToInt32(year + mouth);
  2991. DateTime dayBegin = new DateTime();
  2992. DateTime dayEnd = new DateTime();
  2993. string sqlStr = @"DELETE FROM AJZ_RPT017 WHERE FORWARDTIME = @C@";
  2994. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  2995. for (int i = m; i <= m; i++)
  2996. {
  2997. dayBegin = Convert.ToDateTime(year + "-" + i.ToString().PadLeft(2, '0') + "-01");
  2998. dayEnd = dayBegin.AddMonths(1);
  2999. //for (int j = 0; j <= 2; j++)
  3000. //{
  3001. //String str = j + "#";
  3002. String sqlStr1 = @"
  3003. INSERT INTO AJZ_RPT017
  3004. SELECT
  3005. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0')),
  3006. DECODE( GROUPING_ID ( U.USERCODE, PP.GOODSMODEL, CDU.STAFFNAME), 2, U.USERCODE || CDU.STAFFNAME || '[合计]', 3, '总计', U.USERCODE ) AS 工号,
  3007. --U.USERNAME AS 姓名,
  3008. CDU.STAFFNAME AS 姓名,
  3009. J.JOBSNAME AS 工种,
  3010. PP.GOODSMODEL AS 产品型号,
  3011. SUM( PP.CHECKNUM1 ) AS 检验数_本烧,
  3012. SUM( PP.CHECKNUM2 ) AS 检验数_重烧,
  3013. SUM( PP.CHECKNUM3 ) AS 首检数_本烧,
  3014. SUM( PP.CHECKNUM4 ) AS 首检数_重烧,
  3015. SUM( PP.OK_B ) AS 合格数_本烧,
  3016. SUM( PP.OK_R ) AS 合格数_重烧,
  3017. SUM( PP.OK_L ) AS 合格数_冷补,
  3018. SUM( PP.OK_ALL ) AS 合格数_合计,
  3019. SUM( PP.OK_P ) AS 包装入仓,
  3020. --CASE WHEN SUM( PP.OUT_K ) = 0 THEN NULL ELSE ROUND( SUM( PP.OK_ALL ) / SUM( PP.OUT_K ), 4 ) * 100 END AS 合格率,
  3021. SUM( PP.DNUM1 ) AS 本烧缺陷数_排水不良,
  3022. SUM( PP.DNUM2 ) AS 本烧缺陷数_漏气,
  3023. SUM( PP.DNUM3 ) AS 重烧缺陷数_排水不良,
  3024. SUM( PP.DNUM4 ) AS 重烧缺陷数_漏气,
  3025. '0','0'
  3026. FROM
  3027. (
  3028. SELECT
  3029. CASE WHEN PC.USERID IS NOT NULL THEN PC.USERID ELSE PM.USERID END USERID,
  3030. CASE WHEN PC.CDUSERID IS NOT NULL THEN PC.CDUSERID ELSE PM.CDUSERID END CDUSERID,
  3031. NVL(PC.JOBSID,PM.JOBSID) JOBSID,
  3032. NVL( PC.GOODSID, PM.GOODSID ) GOODSID,
  3033. NVL( PC.GOODSMODEL, PM.GOODSMODEL ) GOODSMODEL,
  3034. NVL( PM.OK_P,0) OK_P,
  3035. NVL( PC.CHECKNUM1, 0 ) CHECKNUM1,
  3036. NVL( PC.CHECKNUM2, 0 ) CHECKNUM2,
  3037. NVL( PC.CHECKNUM3, 0 ) CHECKNUM3,
  3038. NVL( PC.CHECKNUM4, 0 ) CHECKNUM4,
  3039. NVL( PM.DNUM1, 0 ) DNUM1,
  3040. NVL( PM.DNUM2, 0 ) DNUM2,
  3041. NVL( PM.DNUM3, 0 ) DNUM3,
  3042. NVL( PM.DNUM4, 0 ) DNUM4,
  3043. --NVL( PM.OUT_K, 0 ) OUT_K,
  3044. NVL( PM.OK_B, 0 ) OK_B,
  3045. NVL( PM.OK_R, 0 ) OK_R,
  3046. NVL( PM.OK_L, 0 ) OK_L,
  3047. NVL( PM.OK_ALL, 0 ) OK_ALL
  3048. FROM
  3049. --取用户和产品
  3050. (
  3051. SELECT
  3052. P.USERID,
  3053. -- 员工ID
  3054. CD.STAFFID AS CDUSERID,
  3055. CD.SJOBSID AS JOBSID,
  3056. P.GOODSID,
  3057. G.GOODSMODEL,
  3058. SUM( DECODE( P.PROCEDUREID, 13, 1, 0 ) ) CHECKNUM1,
  3059. SUM( DECODE( P.PROCEDUREID, 35, 1, 0 ) ) CHECKNUM2,
  3060. --xuwei add
  3061. SUM( CASE WHEN P.PROCEDUREID = 13 AND P.CHECKFLAG = 1 THEN 1 ELSE 0 END) CHECKNUM3,
  3062. SUM( CASE WHEN P.PROCEDUREID = 35 AND P.CHECKFLAG = 1 THEN 1 ELSE 0 END) CHECKNUM4
  3063. FROM
  3064. TP_PM_PRODUCTIONDATA P
  3065. INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  3066. --关联班次配置
  3067. LEFT JOIN TP_PC_CLASSESDETAIL CD ON P.CLASSESSETTINGID = CD.CLASSESSETTINGID
  3068. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
  3069. WHERE
  3070. P.CHECKFLAG IN ( 1,3 )
  3071. AND P.PROCEDUREID IN ( 13, 35 )
  3072. AND P.CREATETIME >= @DATEBEGIN@
  3073. AND P.CREATETIME < @DATEEND@
  3074. GROUP BY
  3075. P.USERID,
  3076. CD.SJOBSID,
  3077. -- 员工ID
  3078. CD.STAFFID,
  3079. P.GOODSID,
  3080. G.GOODSMODEL
  3081. ) PC
  3082. FULL JOIN
  3083. --统计检验数合格数
  3084. (
  3085. SELECT
  3086. P.USERID,
  3087. -- 员工ID
  3088. CD.STAFFID AS CDUSERID,
  3089. CD.SJOBSID AS JOBSID,
  3090. P.GOODSID,
  3091. P.GOODSMODEL,
  3092. COUNT(distinct CASE WHEN ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND P.PROCEDUREID IN (13,35) AND NOT PDP.BARCODE IS NULL THEN P.BARCODE
  3093. ELSE NULL END) AS OK_P,
  3094. COUNT(distinct CASE WHEN ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND P.PROCEDUREID = 13 AND PDD.PROCEDUREID IS NULL THEN P.PRODUCTIONDATAID
  3095. ELSE NULL END ) AS OK_B,
  3096. COUNT(distinct CASE WHEN ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND P.PROCEDUREID = 35 AND PDD.PROCEDUREID IS NULL THEN P.PRODUCTIONDATAID
  3097. ELSE NULL END ) AS OK_R,
  3098. COUNT(distinct CASE WHEN ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND NOT PDD.PROCEDUREID IS NULL THEN P.PRODUCTIONDATAID
  3099. ELSE NULL END ) AS OK_L,
  3100. COUNT(distinct DECODE( P.GOODSLEVELTYPEID, 4, P.PRODUCTIONDATAID, 5, P.PRODUCTIONDATAID, NULL ) ) AS OK_ALL ,
  3101. SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(9) AND P.PROCEDUREID = 13 THEN 1 ELSE 0 END) AS DNUM1,
  3102. SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(11) AND P.PROCEDUREID = 13 THEN 1 ELSE 0 END) AS DNUM2,
  3103. SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(9) AND P.PROCEDUREID = 35 THEN 1 ELSE 0 END) AS DNUM3,
  3104. SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(11) AND P.PROCEDUREID = 35 THEN 1 ELSE 0 END) AS DNUM4
  3105. FROM
  3106. (
  3107. SELECT
  3108. TP.PRODUCTIONDATAID,
  3109. TP.BARCODE,
  3110. TP.USERID,
  3111. TP.GOODSID,
  3112. G.GOODSMODEL,
  3113. TP.GROUTINGLINEID,
  3114. TP.GOODSLEVELTYPEID,
  3115. TP.PROCEDUREID,
  3116. MAX( PMAX.PRODUCTIONDATAID ) AS MAXPRODUCTIONDATAID,
  3117. TP.CLASSESSETTINGID
  3118. FROM
  3119. TP_PM_PRODUCTIONDATA TP
  3120. INNER JOIN TP_PC_GROUTINGLINE L ON TP.GROUTINGLINEID = L.GROUTINGLINEID
  3121. LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = TP.GROUTINGDAILYDETAILID
  3122. AND PMAX.PRODUCTIONDATAID < TP.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'
  3123. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = TP.GOODSID
  3124. WHERE
  3125. TP.CHECKBATCHNO = 1
  3126. AND TP.PROCEDUREID IN ( 13, 35 )
  3127. AND TP.CREATETIME >= @DATEBEGIN@
  3128. AND TP.CREATETIME < @DATEEND@
  3129. GROUP BY
  3130. TP.PRODUCTIONDATAID,
  3131. TP.BARCODE,
  3132. TP.USERID,
  3133. TP.GOODSID,
  3134. G.GOODSMODEL,
  3135. TP.GROUTINGLINEID,
  3136. TP.GOODSLEVELTYPEID,
  3137. TP.PROCEDUREID,
  3138. TP.CLASSESSETTINGID
  3139. ) P
  3140. --xuwei add 2020-11-13 取包装入库数据
  3141. LEFT JOIN TP_PM_PRODUCTIONDATA PDP ON P.BARCODE = PDP.BARCODE AND PDP.PROCEDUREID = 15 AND PDP.VALUEFLAG = '1'
  3142. LEFT JOIN TP_PM_PRODUCTIONDATA PDD ON P.MAXPRODUCTIONDATAID = PDD.PRODUCTIONDATAID AND PDD.PROCEDUREID IN ( 22, 23 )
  3143. --统计 排水不良9 和 漏气11 数量
  3144. LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = P.PRODUCTIONDATAID AND D.DEFECTID IN(9,11)
  3145. --关联班次配置
  3146. LEFT JOIN TP_PC_CLASSESDETAIL CD ON P.CLASSESSETTINGID = CD.CLASSESSETTINGID
  3147. GROUP BY
  3148. P.USERID,
  3149. -- 员工ID
  3150. CD.STAFFID,
  3151. CD.SJOBSID,
  3152. P.GOODSID,
  3153. P.GOODSMODEL
  3154. ) PM ON PM.USERID = PC.USERID AND PM.GOODSID = PC.GOODSID AND PM.CDUSERID = PC.CDUSERID
  3155. ) PP
  3156. LEFT JOIN TP_MST_USER U ON U.USERID = PP.USERID
  3157. -- 员工ID
  3158. LEFT JOIN TP_HR_STAFF CDU ON CDU.STAFFID = PP.CDUSERID
  3159. LEFT JOIN TP_MST_JOBS J ON J.JOBSID = PP.JOBSID
  3160. GROUP BY
  3161. GROUPING SETS ( ( U.USERCODE,CDU.STAFFNAME, U.USERNAME, PP.GOODSMODEL,J.JOBSNAME ), ( U.USERCODE,CDU.STAFFNAME, U.USERNAME ) ) ";
  3162. List<CDAParameter> sqlPara = new List<CDAParameter>();
  3163. sqlPara.Add(new CDAParameter("I", i));
  3164. sqlPara.Add(new CDAParameter("YEAR", year));
  3165. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  3166. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  3167. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  3168. //}
  3169. }
  3170. conn.Commit();
  3171. if (result > 0)
  3172. {
  3173. Curtain.Log.Logger.Debug(year + "年" + mouth + "月:export017成检产量统计表结转成功!");
  3174. }
  3175. else
  3176. {
  3177. Curtain.Log.Logger.Debug(year + "年" + mouth + "月:export017成检产量统计表结转0条!");
  3178. }
  3179. }
  3180. catch (Exception ex)
  3181. {
  3182. conn.Rollback();
  3183. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export017成检产量统计表结转失败!");
  3184. Curtain.Log.Logger.Error(ex);
  3185. }
  3186. finally
  3187. {
  3188. conn.Close();
  3189. }
  3190. }
  3191. }
  3192. public static void export018()
  3193. {
  3194. using (IDataAccess conn = DataAccess.Create())
  3195. {
  3196. //2021-08-2 dongyan 修正什么问题
  3197. int result = 0;
  3198. int result1 = 0;
  3199. int m = DateTime.Now.AddMonths(-1).Month;
  3200. DateTime dayBegin = new DateTime();
  3201. DateTime dayEnd = new DateTime();
  3202. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  3203. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  3204. int c = Convert.ToInt32(b + a);
  3205. string dayOut = b + "-" + a + "-" + DateTime.DaysInMonth(Convert.ToInt32(b), m).ToString();
  3206. conn.Open();
  3207. conn.BeginTransaction();
  3208. try
  3209. {
  3210. String sqlStr = @"delete JZ_RPT018_D WHERE FORWARDTIME = @C@";
  3211. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  3212. String Str = @"delete JZ_RPT018_M WHERE FORWARDTIME = @C@";
  3213. conn.ExecuteNonQuery(Str, new CDAParameter("C", c));
  3214. for (int i = m; i <= m; i++)
  3215. {
  3216. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  3217. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  3218. String sqlStr1 = @" INSERT INTO JZ_RPT018_M SELECT @M@,
  3219. @M@
  3220. ,'张迪'
  3221. ,''
  3222. ,'张迪'
  3223. ,CASE
  3224. WHEN SUM(T.DNUM) < 0 THEN
  3225. '1'
  3226. ELSE
  3227. '0'
  3228. END
  3229. ,''
  3230. ,T.FNAME_CODE
  3231. ,T.FNAME
  3232. ,''
  3233. ,'01.094'
  3234. ,'张迪'
  3235. ,'01.094'
  3236. ,'张迪'
  3237. ,'01.001'
  3238. ,'唐山中陶实业有限公司'
  3239. ,''
  3240. ,T.FNAME_FLAG
  3241. ,to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  3242. FROM (SELECT 1 AS DNUM
  3243. ,CASE
  3244. WHEN TS.PROCEDUREID IN (26, 27, 38) THEN
  3245. '精坯库(一期)'
  3246. WHEN TS.PROCEDUREID IN (3, 39) THEN
  3247. '精坯库(一期)'
  3248. WHEN TS.PROCEDUREID IN (28, 29, 30, 32, 33) THEN
  3249. '釉坯库(一期)'
  3250. WHEN TS.PROCEDUREID IN (24, 4, 5, 6, 10, 16, 34) THEN
  3251. '釉坯库(一期)'
  3252. WHEN TS.PROCEDUREID = 31 OR
  3253. (TS.PROCEDUREID = 9 AND PD.KILNID IN (1, 2)) THEN
  3254. '窑坯(一期)'
  3255. WHEN TS.PROCEDUREID = 21 OR
  3256. (TS.PROCEDUREID = 9 AND PD.KILNID IN (3, 4)) THEN
  3257. '窑坯(一期)'
  3258. ELSE
  3259. NULL
  3260. END FNAME_FLAG
  3261. ,CASE
  3262. WHEN TS.PROCEDUREID IN (26, 27, 38) THEN
  3263. '009'
  3264. WHEN TS.PROCEDUREID IN (3, 39) THEN
  3265. '009'
  3266. WHEN TS.PROCEDUREID IN (28, 29, 30, 32, 33) THEN
  3267. '010'
  3268. WHEN TS.PROCEDUREID IN (24, 4, 5, 6, 10, 16, 34) THEN
  3269. '010'
  3270. WHEN TS.PROCEDUREID = 31 OR
  3271. (TS.PROCEDUREID = 9 AND PD.KILNID IN (1, 2)) THEN
  3272. '011'
  3273. WHEN TS.PROCEDUREID = 21 OR
  3274. (TS.PROCEDUREID = 9 AND PD.KILNID IN (3, 4)) THEN
  3275. '011'
  3276. ELSE
  3277. NULL
  3278. END FNAME_CODE
  3279. ,CASE
  3280. WHEN TS.PROCEDUREID IN (26, 27, 38) THEN
  3281. '一期成型车间'
  3282. WHEN TS.PROCEDUREID IN (3, 39) THEN
  3283. '一期成型车间'
  3284. WHEN TS.PROCEDUREID IN (28, 29, 30, 32, 33) THEN
  3285. '一期施釉车间'
  3286. WHEN TS.PROCEDUREID IN (24, 4, 5, 6, 10, 16, 34) THEN
  3287. '一期施釉车间'
  3288. WHEN TS.PROCEDUREID = 31 OR
  3289. (TS.PROCEDUREID = 9 AND PD.KILNID IN (1, 2)) THEN
  3290. '一期烧成车间'
  3291. WHEN TS.PROCEDUREID = 21 OR
  3292. (TS.PROCEDUREID = 9 AND PD.KILNID IN (3, 4)) THEN
  3293. '一期烧成车间'
  3294. ELSE
  3295. NULL
  3296. END FNAME
  3297. FROM TP_PM_SCRAPPRODUCT TS
  3298. INNER JOIN TP_PM_PRODUCTIONDATA PD
  3299. ON TS.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  3300. WHERE TS.AUDITSTATUS = 1
  3301. AND TS.GOODSLEVELTYPEID IN (8, 9)
  3302. AND TS.AUDITDATE >=@DATEBEGIN@
  3303. AND TS.AUDITDATE <= @DATEEND@
  3304. AND TS.PROCEDUREID IN (3
  3305. ,26
  3306. ,27
  3307. ,38
  3308. ,39
  3309. ,28
  3310. ,29
  3311. ,30
  3312. ,32
  3313. ,33
  3314. ,24
  3315. ,4, 5
  3316. ,6
  3317. ,10
  3318. ,16, 34
  3319. ,21
  3320. ,31
  3321. ,9)
  3322. UNION ALL
  3323. SELECT 1 AS DNUM
  3324. ,CASE
  3325. WHEN TS.OTHERID IN (26, 27, 38) THEN
  3326. '精坯库(一期)'
  3327. WHEN TS.OTHERID IN (3, 39) THEN
  3328. '精坯库(一期)'
  3329. WHEN TS.OTHERID IN (28, 29, 30, 32, 33) THEN
  3330. '釉坯库(一期)'
  3331. WHEN TS.OTHERID IN (24, 4, 5, 6, 10, 16, 34) THEN
  3332. '釉坯库(一期)'
  3333. WHEN TS.OTHERID = 31 OR
  3334. (TS.OTHERID = 9 AND PD.KILNID IN (1, 2)) THEN
  3335. '窑坯(一期)'
  3336. WHEN TS.OTHERID = 21 OR
  3337. (TS.OTHERID = 9 AND PD.KILNID IN (3, 4)) THEN
  3338. '窑坯(一期)'
  3339. ELSE
  3340. NULL
  3341. END FNAME_FLAG
  3342. ,CASE
  3343. WHEN TS.OTHERID IN (26, 27, 38) THEN
  3344. '009'
  3345. WHEN TS.OTHERID IN (3, 39) THEN
  3346. '009'
  3347. WHEN TS.OTHERID IN (28, 29, 30, 32, 33) THEN
  3348. '010'
  3349. WHEN TS.OTHERID IN (24, 4, 5, 6, 10, 16, 34) THEN
  3350. '010'
  3351. WHEN TS.OTHERID = 31 OR
  3352. (TS.OTHERID = 9 AND PD.KILNID IN (1, 2)) THEN
  3353. '011'
  3354. WHEN TS.OTHERID = 21 OR
  3355. (TS.OTHERID = 9 AND PD.KILNID IN (3, 4)) THEN
  3356. '011'
  3357. ELSE
  3358. NULL
  3359. END FNAME_CODE
  3360. ,CASE
  3361. WHEN TS.OTHERID IN (26, 27, 38) THEN
  3362. '一期成型车间'
  3363. WHEN TS.OTHERID IN (3, 39) THEN
  3364. '一期成型车间'
  3365. WHEN TS.OTHERID IN (28, 29, 30, 32, 33) THEN
  3366. '一期施釉车间'
  3367. WHEN TS.OTHERID IN (24, 4, 5, 6, 10, 16, 34) THEN
  3368. '一期施釉车间'
  3369. WHEN TS.OTHERID = 31 OR
  3370. (TS.OTHERID = 9 AND PD.KILNID IN (1, 2)) THEN
  3371. '一期烧成车间'
  3372. WHEN TS.OTHERID = 21 OR
  3373. (TS.OTHERID = 9 AND PD.KILNID IN (3, 4)) THEN
  3374. '一期烧成车间'
  3375. ELSE
  3376. NULL
  3377. END FNAME
  3378. FROM TP_PM_GOODSCHANGEHISTORY TS
  3379. LEFT JOIN TP_PM_PRODUCTIONDATA PD
  3380. ON TS.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID AND TS.OTHERID = 9 AND PD.PROCEDUREID=9
  3381. WHERE TS.DATATYPE = 11
  3382. AND TS.CREATETIME >=@DATEBEGIN@
  3383. AND TS.CREATETIME <=@DATEEND@
  3384. AND TS.OTHERID IN (3
  3385. ,26
  3386. ,27
  3387. ,38
  3388. ,39
  3389. ,28
  3390. ,29
  3391. ,30
  3392. ,32
  3393. ,33
  3394. ,24
  3395. ,4, 5
  3396. ,6
  3397. ,10
  3398. ,16, 34
  3399. ,21
  3400. ,31
  3401. ,9)) T
  3402. WHERE ('' IS NULL OR T.FNAME_FLAG = '')
  3403. GROUP BY T.FNAME_CODE, T.FNAME, T.FNAME_FLAG
  3404. ORDER BY T.FNAME_CODE, T.FNAME";
  3405. List<CDAParameter> sqlPara1 = new List<CDAParameter>();
  3406. sqlPara1.Add(new CDAParameter("I", i));
  3407. sqlPara1.Add(new CDAParameter("YEAR", b));
  3408. sqlPara1.Add(new CDAParameter("DATEEND", dayEnd));
  3409. sqlPara1.Add(new CDAParameter("DATEBEGIN", dayBegin));
  3410. sqlPara1.Add(new CDAParameter("M", dayOut));
  3411. result += conn.ExecuteNonQuery(sqlStr1, sqlPara1.ToArray());
  3412. String sqlStr2 = @"INSERT INTO JZ_RPT018_D
  3413. SELECT ''
  3414. ,''
  3415. ,''
  3416. ,K.K_CODE
  3417. ,T.GOODS_CODE
  3418. ,''
  3419. ,''
  3420. ,''
  3421. ,'*'
  3422. ,'件'
  3423. ,'件'
  3424. ,0
  3425. ,SUM(T.DNUM)
  3426. ,0
  3427. ,'破损'
  3428. ,SUM(T.DNUM)
  3429. ,''
  3430. ,''
  3431. ,T.FNAME
  3432. ,''
  3433. ,''
  3434. ,to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  3435. FROM (SELECT CASE
  3436. WHEN TS.PROCEDUREID IN (3, 26, 27, 38, 39) THEN
  3437. 'J'
  3438. WHEN TS.PROCEDUREID IN (21, 31, 9) THEN
  3439. 'S'
  3440. ELSE
  3441. 'Y'
  3442. END || G.GOODSMODEL AS GOODS_CODE
  3443. ,1 AS DNUM
  3444. ,CASE
  3445. WHEN TS.PROCEDUREID IN (26, 27, 38) THEN
  3446. '精坯库(一期)'
  3447. WHEN TS.PROCEDUREID IN (3, 39) THEN
  3448. '精坯库(一期)'
  3449. WHEN TS.PROCEDUREID IN (28, 29, 30, 32, 33) THEN
  3450. '釉坯库(一期)'
  3451. WHEN TS.PROCEDUREID IN (24, 4, 5, 6, 10, 16, 34) THEN
  3452. '釉坯库(一期)'
  3453. WHEN TS.PROCEDUREID = 31 OR
  3454. (TS.PROCEDUREID = 9 AND PD.KILNID IN (1, 2)) THEN
  3455. '窑坯(一期)'
  3456. WHEN TS.PROCEDUREID = 21 OR
  3457. (TS.PROCEDUREID = 9 AND PD.KILNID IN (3, 4)) THEN
  3458. '窑坯(一期)'
  3459. ELSE
  3460. NULL
  3461. END FNAME
  3462. FROM TP_PM_SCRAPPRODUCT TS
  3463. INNER JOIN TP_MST_GOODS G
  3464. ON TS.GOODSID = G.GOODSID
  3465. INNER JOIN TP_PM_PRODUCTIONDATA PD
  3466. ON TS.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  3467. WHERE TS.AUDITSTATUS = 1
  3468. AND TS.GOODSLEVELTYPEID IN (8, 9)
  3469. AND TS.AUDITDATE >= @DATEBEGIN@
  3470. AND TS.AUDITDATE <= @DATEEND@
  3471. AND TS.PROCEDUREID IN (3
  3472. ,26
  3473. ,27
  3474. ,38
  3475. ,39
  3476. ,28
  3477. ,29
  3478. ,30
  3479. ,32
  3480. ,33
  3481. ,24
  3482. ,4, 5
  3483. ,6
  3484. ,10
  3485. ,16, 34
  3486. ,21
  3487. ,31
  3488. ,9)
  3489. UNION ALL
  3490. SELECT CASE
  3491. WHEN TS.OTHERID IN (3, 26, 27, 38, 39) THEN
  3492. 'J'
  3493. WHEN TS.OTHERID IN (21, 31, 9) THEN
  3494. 'S'
  3495. ELSE
  3496. 'Y'
  3497. END || G.GOODSMODEL AS GOODS_CODE
  3498. ,1 AS DNUM
  3499. ,CASE
  3500. WHEN TS.OTHERID IN (26, 27, 38) THEN
  3501. '精坯库(一期)'
  3502. WHEN TS.OTHERID IN (3, 39) THEN
  3503. '精坯库(一期)'
  3504. WHEN TS.OTHERID IN (28, 29, 30, 32, 33) THEN
  3505. '釉坯库(一期)'
  3506. WHEN TS.OTHERID IN (24, 4, 5, 6, 10, 16, 34) THEN
  3507. '釉坯库(一期)'
  3508. WHEN TS.OTHERID = 31 OR
  3509. (TS.OTHERID = 9 AND PD.KILNID IN (1, 2)) THEN
  3510. '窑坯(一期)'
  3511. WHEN TS.OTHERID = 21 OR
  3512. (TS.OTHERID = 9 AND PD.KILNID IN (3, 4)) THEN
  3513. '窑坯(一期)'
  3514. ELSE
  3515. NULL
  3516. END FNAME
  3517. FROM TP_PM_GOODSCHANGEHISTORY TS
  3518. INNER JOIN TP_MST_GOODS G
  3519. ON TS.GOODSID = G.GOODSID
  3520. LEFT JOIN TP_PM_PRODUCTIONDATA PD
  3521. ON TS.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID AND TS.OTHERID = 9 AND PD.PROCEDUREID=9
  3522. WHERE TS.DATATYPE = 11
  3523. AND TS.CREATETIME >= @DATEBEGIN@
  3524. AND TS.CREATETIME <= @DATEEND@
  3525. AND TS.OTHERID IN (3
  3526. ,26
  3527. ,27
  3528. ,38
  3529. ,39
  3530. ,28
  3531. ,29
  3532. ,30
  3533. ,32
  3534. ,33
  3535. ,24
  3536. ,4, 5
  3537. ,6
  3538. ,10
  3539. ,16, 34
  3540. ,21
  3541. ,31
  3542. ,9) ) T
  3543. LEFT JOIN TA_IMEX_kingdee_Goodscode K ON T.GOODS_CODE = K.K_NAME AND T.FNAME = K.K_WAREHOUSE
  3544. WHERE ('' IS NULL OR T.FNAME = '')
  3545. GROUP BY K.K_CODE, T.GOODS_CODE, T.FNAME
  3546. "
  3547. ;
  3548. List<CDAParameter> sqlPara = new List<CDAParameter>();
  3549. sqlPara.Add(new CDAParameter("I", i));
  3550. sqlPara.Add(new CDAParameter("YEAR", b));
  3551. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  3552. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  3553. result1 += conn.ExecuteNonQuery(sqlStr2, sqlPara.ToArray());
  3554. ;
  3555. }
  3556. conn.Commit();
  3557. }
  3558. catch (Exception ex)
  3559. {
  3560. conn.Rollback();
  3561. Curtain.Log.Logger.Debug(b + "年" + a + "月 :export018其他出库单结转失败!");
  3562. Curtain.Log.Logger.Error(ex);
  3563. }
  3564. finally
  3565. {
  3566. conn.Close();
  3567. }
  3568. if (result > 0 && result1 > 0)
  3569. {
  3570. Curtain.Log.Logger.Debug(b + "年" + a + "月:export018其他出库单结转成功!");
  3571. }
  3572. else
  3573. {
  3574. Curtain.Log.Logger.Debug(b + "年" + a + "月:export018其他出库单结转0条!");
  3575. }
  3576. }
  3577. }
  3578. public static void export019()
  3579. {
  3580. using (IDataAccess conn = DataAccess.Create())
  3581. {
  3582. //2021-08-2 dongyan 修正什么问题
  3583. int result = 0;
  3584. int result1 = 0;
  3585. int m = DateTime.Now.AddMonths(-1).Month;
  3586. DateTime dayBegin = new DateTime();
  3587. DateTime dayEnd = new DateTime();
  3588. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  3589. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  3590. int c = Convert.ToInt32(b + a);
  3591. string dayOut = b + "-" + a + "-" + DateTime.DaysInMonth(Convert.ToInt32(b), m).ToString();
  3592. conn.Open();
  3593. conn.BeginTransaction();
  3594. try
  3595. {
  3596. String sqlStr = @"delete JZ_RPT019_D WHERE FORWARDTIME = @C@";
  3597. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  3598. String Str = @"delete JZ_RPT019_M WHERE FORWARDTIME = @C@";
  3599. conn.ExecuteNonQuery(Str, new CDAParameter("C", c));
  3600. for (int i = m; i <= m; i++)
  3601. {
  3602. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  3603. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  3604. String sqlStr1 = @" INSERT INTO JZ_RPT019_D
  3605. SELECT * FROM(
  3606. SELECT
  3607. '' AS 序列号内码,
  3608. '' AS 行号,
  3609. '' AS 单据号_FBillno,
  3610. '' AS 单据号_FTrantype,
  3611. K.K_CODE AS 物料代码_FNumber,
  3612. T.GOODS_CODE AS 物料代码_FName,
  3613. '' AS 物料代码_FModel,
  3614. '' AS 辅助属性_FNumber,
  3615. '' AS 辅助属性_FName,
  3616. '*' AS 辅助属性_FClassName,
  3617. K2.K_CODE AS 成本对象_FNumber,
  3618. T.GOODS_CODE2 AS 成本对象_FName,
  3619. '' AS 成本对象_FItemClassID,
  3620. '*' AS 成本对象组_FNumber,
  3621. '*' AS 成本对象组_FName,
  3622. '0' AS 成本对象组_FItemClassID,
  3623. '件' AS 单位_FNumber,
  3624. '件' AS 单位_FName,
  3625. 0 AS 单价,
  3626. '' AS 批号,
  3627. 0 AS 金额,
  3628. 0 AS 客户BOM,
  3629. SUM( T.DNUM ) AS 实发数量,
  3630. '' AS 备注,
  3631. SUM( T.DNUM ) AS 基本单位实发数量,
  3632. 0 AS 保质期,
  3633. '' AS 有效期至,
  3634. '' AS 发料仓库_FNumber,
  3635. T.FNAME AS 发料仓库_FName,
  3636. NULL AS 仓位_FName,
  3637. NULL AS 仓位_FGroupName,
  3638. 0 AS 辅助数量,
  3639. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  3640. FROM
  3641. (
  3642. SELECT
  3643. CASE
  3644. WHEN
  3645. TS.PROCEDUREID IN ( 28, 24, 34 ) THEN
  3646. 'J'
  3647. WHEN
  3648. TS.PROCEDUREID IN ( 13 ) THEN
  3649. 'S' ELSE 'Y'
  3650. END || G.GOODSMODEL AS GOODS_CODE,
  3651. CASE
  3652. WHEN TS.PROCEDUREID IN ( 28, 24, 34 ) THEN
  3653. 'Y'
  3654. WHEN TS.PROCEDUREID IN ( 13 ) THEN
  3655. '' ELSE 'S'
  3656. END || G.GOODSMODEL AS GOODS_CODE2,
  3657. 1 AS DNUM,
  3658. CASE
  3659. WHEN TS.PROCEDUREID = 28 THEN
  3660. '精坯库(一期)'
  3661. WHEN TS.PROCEDUREID IN ( 24, 34 ) THEN
  3662. '精坯库(一期)'
  3663. WHEN TS.PROCEDUREID = 31 THEN
  3664. '釉坯库(一期)'
  3665. WHEN TS.PROCEDUREID = 21 THEN
  3666. '釉坯库(一期)'
  3667. WHEN TS.PROCEDUREID = 13
  3668. AND TS.Kilnid IN ( 1, 2 ) THEN
  3669. '窑坯(一期)'
  3670. WHEN TS.PROCEDUREID = 13
  3671. AND TS.Kilnid IN ( 3, 4 ) THEN
  3672. '窑坯(一期)' ELSE NULL
  3673. END FNAME,
  3674. CASE
  3675. WHEN TS.PROCEDUREID = 28 THEN
  3676. '一期施釉车间'
  3677. WHEN TS.PROCEDUREID IN ( 24, 34 ) THEN
  3678. '一期施釉车间'
  3679. WHEN TS.PROCEDUREID = 31 THEN
  3680. '一期烧成车间'
  3681. WHEN TS.PROCEDUREID = 21 THEN
  3682. '一期烧成车间'
  3683. WHEN TS.PROCEDUREID = 13
  3684. AND GL.BUILDINGNO = '1#' THEN
  3685. '一期成检组'
  3686. WHEN TS.PROCEDUREID = 13
  3687. AND GL.BUILDINGNO = '2#' THEN
  3688. '一期成检组' ELSE NULL
  3689. END FNAME_F
  3690. FROM
  3691. TP_PM_PRODUCTIONDATA TS
  3692. INNER JOIN TP_MST_GOODS G ON TS.GOODSID = G.GOODSID
  3693. INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = TS.GROUTINGLINEID
  3694. WHERE
  3695. --2022年1月4日10:11:10 by fy modify begin
  3696. --TS.CREATETIME >= @DATEEND@
  3697. --AND TS.CREATETIME < @DATEBEGIN@
  3698. TS.CREATETIME >= @DATEBEGIN@
  3699. AND TS.CREATETIME <= @DATEEND@
  3700. --end
  3701. AND (
  3702. TS.PROCEDUREID IN ( 28, 24, 34, 21, 31 )
  3703. OR ( TS.PROCEDUREID = 13 AND TS.CHECKFLAG = 1 )
  3704. ) ) T
  3705. LEFT JOIN TA_IMEX_kingdee_Goodscode K ON T.GOODS_CODE = K.K_NAME
  3706. AND T.FNAME = K.K_WAREHOUSE
  3707. LEFT JOIN TA_IMEX_kingdee_Goodscode K2 ON K2.K_NAME = T.GOODS_CODE2
  3708. AND K2.buildingno = K.buildingno
  3709. GROUP BY
  3710. K.K_CODE,
  3711. K2.K_CODE,
  3712. T.GOODS_CODE,
  3713. T.GOODS_CODE2,
  3714. T.FNAME,
  3715. T.FNAME_F )";
  3716. List<CDAParameter> sqlPara1 = new List<CDAParameter>();
  3717. sqlPara1.Add(new CDAParameter("I", i));
  3718. sqlPara1.Add(new CDAParameter("YEAR", b));
  3719. sqlPara1.Add(new CDAParameter("DATEEND", dayEnd));
  3720. sqlPara1.Add(new CDAParameter("DATEBEGIN", dayBegin));
  3721. result1 += conn.ExecuteNonQuery(sqlStr1, sqlPara1.ToArray());
  3722. }
  3723. conn.Commit();
  3724. }
  3725. catch (Exception ex)
  3726. {
  3727. conn.Rollback();
  3728. Curtain.Log.Logger.Debug(b + "年" + a + "月:export019生产领料表自动结转失败!");
  3729. Curtain.Log.Logger.Error(ex);
  3730. }
  3731. finally
  3732. {
  3733. conn.Close();
  3734. }
  3735. if (result1 > 0)
  3736. {
  3737. Curtain.Log.Logger.Debug(b + "年" + a + "月:export019生产领料表自动结转成功!");
  3738. }
  3739. else
  3740. {
  3741. Curtain.Log.Logger.Debug(b + "年" + a + "月:export019生产领料表自动结转0条!");
  3742. }
  3743. }
  3744. }
  3745. public static void export020()
  3746. {
  3747. using (IDataAccess conn = DataAccess.Create())
  3748. {
  3749. //2021-08-2 dongyan 修正什么问题
  3750. int result = 0;
  3751. int result1 = 0;
  3752. int m = DateTime.Now.AddMonths(-1).Month;
  3753. DateTime dayBegin = new DateTime();
  3754. DateTime dayEnd = new DateTime();
  3755. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  3756. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  3757. int c = Convert.ToInt32(b + a);
  3758. string dayOut = b + "-" + a + "-" + DateTime.DaysInMonth(Convert.ToInt32(b), m).ToString();
  3759. conn.Open();
  3760. conn.BeginTransaction();
  3761. try
  3762. {
  3763. String sqlStr = @"delete JZ_RPT020_D WHERE FORWARDTIME = @C@";
  3764. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  3765. String Str = @"delete JZ_RPT020_M WHERE FORWARDTIME = @C@";
  3766. conn.ExecuteNonQuery(Str, new CDAParameter("C", c));
  3767. for (int i = m; i <= m; i++)
  3768. {
  3769. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  3770. dayEnd = dayBegin.AddMonths(1);
  3771. String sqlStr2 = @"INSERT INTO JZ_RPT020_D SELECT * from (" +
  3772. "SELECT '' AS 行号\n" +
  3773. " ,'' AS \"单据号_FBillno\"\n" +
  3774. " ,'' AS \"单据号_FTrantype\"\n" +
  3775. " ,K.K_CODE AS \"物料编码_FNumber\"\n" +
  3776. " ,T.GOODS_CODE AS \"物料编码_FName\"\n" +
  3777. " ,'' AS \"物料编码_FModel\"\n" +
  3778. " ,'' AS \"辅助属性_FNumber\"\n" +
  3779. " ,'' AS \"辅助属性_FName\"\n" +
  3780. " ,'*' AS \"辅助属性_FClassName\"\n" +
  3781. " ,'件' AS \"单位_FNumber\"\n" +
  3782. " ,'件' AS \"单位_FName\"\n" +
  3783. " ,SUM(T.DNUM) AS \"实收数量\"\n" +
  3784. " ,0 AS \"单价\"\n" +
  3785. " ,0 AS \"金额\"\n" +
  3786. " ,'' AS \"备注\"\n" +
  3787. " ,SUM(T.DNUM) AS \"基本单位实收数量\"\n" +
  3788. " ,'' AS \"生产_采购日期\"\n" +
  3789. " ,'' AS \"有效期至\"\n" +
  3790. " ,'' AS \"收货仓库_FNumber\"\n" +
  3791. " ,T.FNAME AS \"收货仓库_FName\"\n" +
  3792. " ,NULL AS \"仓位_FName\"\n" +
  3793. " ,NULL AS \"仓位_FGroupName\"\n" +
  3794. " ,0 AS \"辅助数量\"\n" +
  3795. " ,'0'" +
  3796. ",to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))" +
  3797. " FROM (SELECT CASE\n" +
  3798. " WHEN TS.PROCEDUREID IN (3, 26) THEN\n" +
  3799. " 'J'\n" +
  3800. " WHEN TS.PROCEDUREID IN (21, 31) THEN\n" +
  3801. " 'S'\n" +
  3802. " ELSE\n" +
  3803. " 'Y'\n" +
  3804. " END || G.GOODSMODEL AS GOODS_CODE\n" +
  3805. " ,1 AS DNUM\n" +
  3806. " ,CASE\n" +
  3807. " WHEN TS.PROCEDUREID = 26 THEN\n" +
  3808. " '精坯库(一期)'\n" +
  3809. " WHEN TS.PROCEDUREID = 3 THEN\n" +
  3810. //" '精坯库(二期)'\n" +
  3811. " '精坯库(一期)'\n" +
  3812. " WHEN TS.PROCEDUREID = 28 THEN\n" +
  3813. " '釉坯库(一期)'\n" +
  3814. " WHEN TS.PROCEDUREID IN( 24,34) THEN\n" +
  3815. //" '釉坯库(二期)'\n" +
  3816. " '釉坯库(一期)'\n" +
  3817. " WHEN TS.PROCEDUREID = 31 THEN\n" +
  3818. " '窑坯(一期)'\n" +
  3819. " WHEN TS.PROCEDUREID = 21 THEN\n" +
  3820. //" '窑坯(二期)'\n" +
  3821. " '窑坯(一期)'\n" +
  3822. " ELSE\n" +
  3823. " NULL\n" +
  3824. " END FNAME\n" +
  3825. " FROM TP_PM_PRODUCTIONDATA TS\n" +
  3826. " INNER JOIN TP_MST_GOODS G\n" +
  3827. " ON TS.GOODSID = G.GOODSID\n" +
  3828. " WHERE TS.CREATETIME >= @DATEBEGIN@\n" +
  3829. " AND TS.CREATETIME < @DATEEND@\n" +
  3830. " AND TS.PROCEDUREID IN (3, 26, 28, 24,34, 21, 31)\n" +
  3831. ") T\n" +
  3832. " LEFT JOIN TA_IMEX_kingdee_Goodscode K ON T.GOODS_CODE = K.K_NAME AND T.FNAME = K.K_WAREHOUSE\n" +
  3833. // " WHERE (@FNAME_FLAG@ IS NULL OR T.FNAME = @FNAME_FLAG@) \n" +
  3834. " GROUP BY K.K_CODE, T.GOODS_CODE, T.FNAME\n" +
  3835. " )";
  3836. List<CDAParameter> sqlPara = new List<CDAParameter>();
  3837. sqlPara.Add(new CDAParameter("I", i));
  3838. sqlPara.Add(new CDAParameter("YEAR", b));
  3839. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  3840. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  3841. result1 += conn.ExecuteNonQuery(sqlStr2, sqlPara.ToArray());
  3842. }
  3843. conn.Commit();
  3844. }
  3845. catch (Exception ex)
  3846. {
  3847. conn.Rollback();
  3848. Curtain.Log.Logger.Debug(b + "年" + a + "月:export020产品入库单结转失败!");
  3849. Curtain.Log.Logger.Error(ex);
  3850. }
  3851. finally
  3852. {
  3853. conn.Close();
  3854. }
  3855. if (result1 > 0)
  3856. {
  3857. Curtain.Log.Logger.Debug(b + "年" + a + "月:export020产品入库单结转成功!");
  3858. }
  3859. else
  3860. {
  3861. Curtain.Log.Logger.Debug(b + "年" + a + "月:export020产品入库单结转0条!");
  3862. }
  3863. }
  3864. }
  3865. public static void export021()
  3866. {
  3867. using (IDataAccess conn = DataAccess.Create())
  3868. {
  3869. try
  3870. {
  3871. conn.Open();
  3872. conn.BeginTransaction();
  3873. //2021-07-29 陈强
  3874. String sqlStr = @"delete AJZ_RPT021 where FORWARD_TIME = @c@";
  3875. int result = 0;
  3876. int m = DateTime.Now.AddMonths(-1).Month;
  3877. string mouth = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  3878. string year = DateTime.Now.AddMonths(-1).Year.ToString();
  3879. int c = Convert.ToInt32(year + mouth);
  3880. conn.ExecuteNonQuery(sqlStr, new CDAParameter("c", c));
  3881. DateTime dayBegin = new DateTime();
  3882. DateTime dayEnd = new DateTime();
  3883. for (int i = m; i <= m; i++)
  3884. {
  3885. dayBegin = Convert.ToDateTime(year + "-" + i.ToString().PadLeft(2, '0') + "-01");
  3886. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  3887. //for (int j = 0; j <= 2; j++)
  3888. //{
  3889. // String str = j + "#";
  3890. String sqlStr1 = @"INSERT INTO AJZ_RPT021 SELECT
  3891. *
  3892. FROM
  3893. (
  3894. SELECT DECODE(GID
  3895. ,7
  3896. ,TT.组别 || '[小计]'
  3897. ,15
  3898. ,TT.组别 || '[合计]'
  3899. ,TT.组别) 组别
  3900. ,TT.线号
  3901. ,TT.产品型号
  3902. ,DECODE(GID,15, null, TT.标准模型次数) 标准模型次数
  3903. ,DECODE(GID,15, null, TT.模型次数) 模型次数
  3904. ,TT.实摆模型
  3905. ,TT.实际注浆数
  3906. ,DECODE(GID,15, null, TT.成型工号) 成型工号
  3907. ,DECODE(GID,15, null, TT.姓名) 姓名
  3908. ,TT.交坯合格数
  3909. ,CASE
  3910. WHEN TT.实际注浆数 IS NULL OR
  3911. TT.实际注浆数 = 0 THEN
  3912. NULL
  3913. WHEN TT.交坯合格数 IS NULL OR
  3914. TT.交坯合格数 = 0 THEN
  3915. '0%'
  3916. ELSE
  3917. TO_CHAR(ROUND(TT.交坯合格数 / TT.实际注浆数, 4) * 100) || '%'
  3918. END 实际出坯率 --实际出坯率【交坯合格/注浆数】
  3919. ,DECODE(GID,15, null, @DAYS@) 计划出勤
  3920. ,DECODE(GID,15, null, TT.实际出勤) 实际出勤
  3921. ,DECODE(GID,15, null, TT.实际模具总数) 实际模具总数
  3922. ,DECODE(GID,15, null, TT.计划批次) 计划批次
  3923. ,DECODE(GID,15, null, @DAYS@ * TT.实摆模型 * TT.计划批次) 计划模具总数 -- 计划出勤 * 实摆模型数 * 计划批次
  3924. ,DECODE(GID,15, null, CASE
  3925. WHEN @DAYS@ * TT.实摆模型 * TT.计划批次 IS NULL OR @DAYS@ * TT.实摆模型 * TT.计划批次 = 0 THEN
  3926. NULL
  3927. WHEN TT.交坯合格数 IS NULL OR
  3928. TT.交坯合格数 = 0 THEN
  3929. '0%'
  3930. ELSE
  3931. TO_CHAR(ROUND(TT.交坯合格数 / (@DAYS@ * TT.实摆模型 * TT.计划批次), 4) * 100) || '%'
  3932. END) 实摆出坯率 ,--实摆出坯率【交坯合格/实际模具数】改为 交坯合格数 / 计划模具总数,
  3933. to_number( to_char( @YEAR@ ) || lpad( to_char(@I@ ), 2, '0' ) ),
  3934. '0' AS BUILDINGNO,
  3935. 0 AS GL_MOULDQUANTITY,
  3936. 0 AS gid,
  3937. '0' AS GROUTINGLINEID,
  3938. '0' AS HIGHPRESSUREFLAG,
  3939. '0' AS GOODSTYPECODE
  3940. FROM (
  3941. SELECT GROUPING_ID ( PT.M_USERNAME, PT.LINE_NO,PT.GROUTINGLINEID, PT.GOODS_CODE, PT.G_USERCODE ) gid
  3942. ,PT.M_USERNAME 组别
  3943. ,PT.LINE_NO 线号
  3944. ,PT.GOODS_CODE 产品型号
  3945. ,MAX(PT.STANDARDGROUTINGCOUNT) 标准模型次数
  3946. ,MAX(PT.MAX_MCOUNT) 模型次数
  3947. ,DECODE(PT.GOODS_CODE, null, max(PT.GL_MOULDQUANTITY), SUM(PT.MOULDQUANTITY)) 实摆模型
  3948. ,SUM(PT.GROUTINGNUM) 实际注浆数
  3949. ,REGEXP_REPLACE(LISTAGG(PT.G_USERCODE, '/') WITHIN
  3950. GROUP(ORDER BY PT.G_USERCODE)
  3951. ,'([^/]+)(/\1)*(/|$)'
  3952. ,'\1\3') 成型工号
  3953. ,REGEXP_REPLACE(LISTAGG(PT.G_USERNAME, '/') WITHIN
  3954. GROUP(ORDER BY PT.G_USERCODE)
  3955. ,'([^/]+)(/\1)*(/|$)'
  3956. ,'\1\3') 姓名
  3957. ,SUM(PT.D_OKCOUNT) 交坯合格数
  3958. ,MAX(PT.GROUTINGDATES) 实际出勤
  3959. ,SUM(PT.S_MOULDQUANTITY) 实际模具总数
  3960. ,CASE
  3961. WHEN PT.HIGHPRESSUREFLAG = '1' AND
  3962. --INSTR(PT.GOODSTYPECODE, '001001') = 1
  3963. MAX(PT.GOODSTYPECODE2) = '001001' THEN
  3964. 15
  3965. WHEN PT.HIGHPRESSUREFLAG = '1' AND
  3966. --INSTR(PT.GOODSTYPECODE, '001002') = 1
  3967. MAX(PT.GOODSTYPECODE2) = '001002' THEN
  3968. 25
  3969. WHEN PT.HIGHPRESSUREFLAG = '0' THEN 1
  3970. ELSE
  3971. NULL
  3972. END AS 计划批次
  3973. FROM (SELECT TO_CHAR(MU.USERNAME) AS M_USERNAME
  3974. ,GL.GROUTINGLINEID
  3975. ,GL.GROUTINGLINENAME AS LINE_NO
  3976. ,COALESCE(G.GOODSMODEL, P.GOODSMODEL, GL2.GOODSMODEL) AS GOODS_CODE
  3977. ,COALESCE(G.STANDARDGROUTINGCOUNT, GL2.STANDARDGROUTINGCOUNT) AS STANDARDGROUTINGCOUNT
  3978. ,COALESCE(G.MAX_MCOUNT, GL2.MAX_MCOUNT) MAX_MCOUNT
  3979. ,COALESCE(G.MOULDQUANTITY, GL2.MOULDQUANTITY) AS MOULDQUANTITY
  3980. ,COALESCE(G.GROUTINGNUM, 0) AS GROUTINGNUM
  3981. ,TO_CHAR(GU.USERCODE) AS G_USERCODE
  3982. ,TO_CHAR(GU.USERNAME) AS G_USERNAME
  3983. ,COALESCE(P.D_OKCOUNT, 0) AS D_OKCOUNT
  3984. ,COALESCE(G.GROUTINGDATES, 0) AS GROUTINGDATES
  3985. ,COALESCE(G.GROUTINGDATES, 0) * COALESCE(G.MOULDQUANTITY, 0) S_MOULDQUANTITY
  3986. --实际模具数【(计划出勤-核减)*成型线的模具数】
  3987. ,GL.HIGHPRESSUREFLAG,GL.MOULDQUANTITY GL_MOULDQUANTITY
  3988. ,COALESCE(G.GOODSTYPECODE2
  3989. ,P.GOODSTYPECODE2
  3990. ,GL2.GOODSTYPECODE2) AS GOODSTYPECODE2
  3991. FROM (SELECT GD.GROUTINGLINEID
  3992. ,GD.GOODSMODEL
  3993. ,MAX(GD.STANDARDGROUTINGCOUNT) STANDARDGROUTINGCOUNT
  3994. ,MAX(GD.MAX_MCOUNT) MAX_MCOUNT
  3995. ,MAX(GD.MOULDQUANTITY) MOULDQUANTITY
  3996. ,GD.USERCODE
  3997. ,GD.USERID
  3998. ,SUM(GD.GROUTINGNUM) GROUTINGNUM
  3999. ,COUNT(DISTINCT GD.GROUTINGDATE) GROUTINGDATES
  4000. ,GD.GOODSTYPECODE2
  4001. FROM (SELECT GGDD.GROUTINGDAILYID
  4002. ,GGDD.GROUTINGDATE
  4003. ,COUNT(GGDD.GROUTINGDAILYDETAILID) GROUTINGNUM
  4004. ,GOODS.GOODSMODEL
  4005. ,GGDD.USERCODE
  4006. ,GGDD.USERID
  4007. ,GGDD.GROUTINGLINEID
  4008. ,SUBSTR(GT.GOODSTYPECODE, 1, 6) GOODSTYPECODE2
  4009. ,COUNT(GGDD.GROUTINGLINEDETAILID) MOULDQUANTITY
  4010. ,MAX(GLD.STANDARDGROUTINGCOUNT) STANDARDGROUTINGCOUNT
  4011. ,MAX(GGDD.GROUTINGCOUNT) MAX_MCOUNT
  4012. FROM TP_PM_GROUTINGDAILYDETAIL GGDD
  4013. INNER JOIN TP_MST_GOODS GOODS
  4014. ON GOODS.GOODSID = GGDD.GOODSID
  4015. INNER JOIN TP_MST_GOODSTYPE GT
  4016. ON GT.GOODSTYPEID = GOODS.GOODSTYPEID
  4017. INNER JOIN TP_PC_GROUTINGLINEDETAIL GLD
  4018. ON GGDD.GROUTINGLINEDETAILID =
  4019. GLD.GROUTINGLINEDETAILID
  4020. WHERE GGDD.VALUEFLAG = '1'
  4021. AND GGDD.GROUTINGFLAG = '1'
  4022. AND GGDD.GROUTINGDATE >= @DATEBEGIN@
  4023. AND GGDD.GROUTINGDATE < @DATEEND@
  4024. -- AND ( GOODS.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL )
  4025. GROUP BY GGDD.GROUTINGDAILYID
  4026. ,GGDD.GROUTINGDATE
  4027. ,GOODS.GOODSMODEL
  4028. ,GGDD.USERCODE
  4029. ,GGDD.USERID
  4030. ,GGDD.GROUTINGLINEID
  4031. ,SUBSTR(GT.GOODSTYPECODE, 1, 6)) GD
  4032. GROUP BY GD.GROUTINGLINEID
  4033. ,GD.GOODSMODEL
  4034. --,GD.MOULDQUANTITY
  4035. ,GD.USERCODE
  4036. ,GD.USERID
  4037. ,GD.GOODSTYPECODE2) G
  4038. FULL JOIN (SELECT PP.GROUTINGLINEID
  4039. ,PP.GROUTINGUSERCODE USERCODE
  4040. ,PP.GROUTINGUSERID USERID
  4041. ,GOODS.GOODSMODEL
  4042. ,SUBSTR(GT.GOODSTYPECODE, 1, 6) GOODSTYPECODE2
  4043. ,COUNT(*) D_OKCOUNT
  4044. FROM TP_PM_PRODUCTIONDATA PP
  4045. INNER JOIN TP_MST_GOODS GOODS
  4046. ON GOODS.GOODSID = PP.GOODSID
  4047. INNER JOIN TP_MST_GOODSTYPE GT
  4048. ON GT.GOODSTYPEID = GOODS.GOODSTYPEID
  4049. WHERE PP.VALUEFLAG = '1'
  4050. AND PP.PROCEDUREID IN (3, 26)
  4051. AND PP.CREATETIME >= @DATEBEGIN@
  4052. AND PP.CREATETIME < @DATEEND@
  4053. -- AND ( GOODS.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL )
  4054. GROUP BY PP.GROUTINGLINEID
  4055. ,GOODS.GOODSMODEL
  4056. ,PP.GROUTINGUSERCODE
  4057. ,PP.GROUTINGUSERID
  4058. ,SUBSTR(GT.GOODSTYPECODE, 1, 6)) P
  4059. ON P.GROUTINGLINEID = G.GROUTINGLINEID
  4060. AND P.GOODSMODEL = G.GOODSMODEL
  4061. AND P.GOODSTYPECODE2 = G.GOODSTYPECODE2
  4062. AND P.USERID = G.USERID
  4063. FULL JOIN (SELECT GLL.GROUTINGLINEID
  4064. ,GOODS.GOODSMODEL
  4065. ,MAX(GLD.STANDARDGROUTINGCOUNT) STANDARDGROUTINGCOUNT
  4066. ,MAX(GLD.GROUTINGCOUNT) MAX_MCOUNT
  4067. ,COUNT(*) MOULDQUANTITY
  4068. ,SUBSTR(GT.GOODSTYPECODE, 1, 6) GOODSTYPECODE2
  4069. FROM TP_PC_GROUTINGLINE GLL
  4070. INNER JOIN TP_PC_GROUTINGLINEDETAIL GLD
  4071. ON GLD.GROUTINGLINEID = GLL.GROUTINGLINEID
  4072. INNER JOIN TP_MST_GOODS GOODS
  4073. ON GOODS.GOODSID = GLD.GOODSID
  4074. LEFT JOIN TP_MST_GOODSTYPE GT
  4075. ON GT.GOODSTYPEID = GOODS.GOODSTYPEID
  4076. WHERE GLD.VALUEFLAG = '1'
  4077. AND GLL.VALUEFLAG = '1'
  4078. AND GLL.GMOULDSTATUS = 1
  4079. -- AND GLD.GMOULDSTATUS = 1
  4080. -- AND (GOODS.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL)
  4081. GROUP BY GLL.GROUTINGLINEID
  4082. ,GOODS.GOODSMODEL
  4083. ,SUBSTR(GT.GOODSTYPECODE, 1, 6)) GL2
  4084. ON GL2.GROUTINGLINEID = NVL(G.GROUTINGLINEID, P.GROUTINGLINEID)
  4085. AND GL2.GOODSMODEL = NVL(G.GOODSMODEL, P.GOODSMODEL)
  4086. AND GL2.GOODSTYPECODE2 = NVL(G.GOODSTYPECODE2, P.GOODSTYPECODE2)
  4087. INNER JOIN TP_PC_GROUTINGLINE GL
  4088. ON GL.GROUTINGLINEID =
  4089. COALESCE(G.GROUTINGLINEID
  4090. ,P.GROUTINGLINEID
  4091. ,GL2.GROUTINGLINEID)
  4092. LEFT JOIN TP_MST_USER GU
  4093. ON (GU.USERID = P.USERID OR GU.USERID = G.USERID)
  4094. LEFT JOIN TP_MST_USER MU
  4095. ON MU.USERID = GL.MONITORID
  4096. -- WHERE (GL.BUILDINGNO = @BUILDINGNO@ OR @BUILDINGNO@ IS NULL)
  4097. -- AND (MU.USERNAME = @USERNAME@ OR @USERNAME@ IS NULL)
  4098. ORDER BY MU.USERNAME
  4099. ,GL.GROUTINGLINENAME
  4100. ,COALESCE(G.GOODSMODEL, P.GOODSMODEL, GL2.GOODSMODEL)
  4101. ,NVL(G.USERCODE, P.USERCODE)) PT
  4102. GROUP BY GROUPING SETS((PT.M_USERNAME, PT.LINE_NO,PT.GROUTINGLINEID,PT.GL_MOULDQUANTITY, PT.GOODS_CODE, PT.G_USERCODE, PT.G_USERNAME, PT.HIGHPRESSUREFLAG, PT.GOODSTYPECODE2),(PT.M_USERNAME, PT.LINE_NO, PT.HIGHPRESSUREFLAG),(PT.M_USERNAME))
  4103. ORDER BY PT.M_USERNAME, PT.LINE_NO, PT.G_USERCODE, PT.GOODS_CODE) TT)";
  4104. List<CDAParameter> sqlPara = new List<CDAParameter>();
  4105. sqlPara.Add(new CDAParameter("I", i));
  4106. sqlPara.Add(new CDAParameter("YEAR", year));
  4107. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  4108. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  4109. int days = (dayEnd.Date.AddSeconds(1) - dayBegin.Date).Days + 1;
  4110. days -= DayOfWeeksInDays(dayBegin, days, DayOfWeek.Sunday);
  4111. sqlPara.Add(new CDAParameter("DAYS", days));
  4112. result += conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  4113. //}
  4114. }
  4115. conn.Commit();
  4116. if (result > 0)
  4117. {
  4118. Curtain.Log.Logger.Debug(year + "年" + mouth + "月:export021模具使用表结转成功!");
  4119. }
  4120. else
  4121. {
  4122. Curtain.Log.Logger.Debug(year + "年" + mouth + "月:export021模具使用表结转0条!");
  4123. }
  4124. }
  4125. catch (Exception ex)
  4126. {
  4127. conn.Rollback();
  4128. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export021模具使用表结转失败!");
  4129. Curtain.Log.Logger.Error(ex);
  4130. }
  4131. finally
  4132. {
  4133. conn.Close();
  4134. }
  4135. }
  4136. }
  4137. public static void export022()
  4138. {
  4139. using (IDataAccess conn = DataAccess.Create())
  4140. {
  4141. try
  4142. {
  4143. conn.Open();
  4144. conn.BeginTransaction();
  4145. //2021-07-12 dongyan 修正什么问题
  4146. int result = 0;
  4147. int m = DateTime.Now.AddMonths(-1).Month;
  4148. DateTime dayBegin = new DateTime();
  4149. DateTime dayEnd = new DateTime();
  4150. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  4151. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  4152. int c = Convert.ToInt32(b + a);
  4153. String sqlStr = @"delete AJZ_RPT022 WHERE FORWARD_TIME = @C@";
  4154. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  4155. for (int i = m; i <= m; i++)
  4156. {
  4157. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  4158. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  4159. String sqlStr1 = @" INSERT INTO AJZ_RPT022
  4160. SELECT * FROM (SELECT
  4161. PC.工号 AS 工号1 ,
  4162. PC.姓名 AS 姓名1,
  4163. NVL(PC.产品编码,PD.产品编码) AS 产品编码1,
  4164. PC.出窑数,
  4165. PC.出窑数 - NVL( PD.合计, 0 ) AS 合格数,
  4166. --ROUND( (PC.出窑数 - NVL( PD.合计, 0 )) / DECODE( PC.出窑数, 0, 1, PC.出窑数 ), 4 ) * 100 AS 合格率,
  4167. TO_CHAR(100 - ROUND( (PC.出窑数 - NVL( PD.合计, 0 )) / DECODE( PC.出窑数, 0, 1, PC.出窑数 ), 4 ) * 100) || '%' AS 缺陷率,
  4168. PD.* ,
  4169. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  4170. FROM
  4171. (
  4172. SELECT
  4173. *
  4174. FROM
  4175. (
  4176. SELECT
  4177. --GID,
  4178. DECODE( GID, 6, USERCODE || '合计', 7, USERCODE || '合计', USERCODE ) AS 工号,
  4179. USERNAME AS 姓名,
  4180. GOODSCODE AS 产品编码,
  4181. DECODE( GID, 1, '合计', 3, '合计', 7, '合计', DEFECT ) AS DEFECT,
  4182. CNUM
  4183. FROM
  4184. (
  4185. SELECT
  4186. GROUPING_ID ( U.USERCODE, P.GOODSCODE, D.DEFECTID ) AS GID,
  4187. U.USERCODE,
  4188. U.USERNAME,
  4189. P.GOODSCODE,
  4190. D.DEFECTID,
  4191. M.DEFECTNAME AS DEFECT,
  4192. COUNT( * ) AS CNUM
  4193. FROM
  4194. TP_PM_PRODUCTIONDATA P
  4195. INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  4196. INNER JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID
  4197. --LEFT JOIN TP_MST_USER MU ON MU.USERID = L.MONITORID
  4198. INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
  4199. INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
  4200. LEFT JOIN TP_MST_DEFECTTYPE T ON T.DEFECTTYPEID = M.DEFECTTYPEID
  4201. INNER JOIN TP_PM_PRODUCTIONDATA PB ON P.BARCODE = PB.BARCODE
  4202. INNER JOIN TP_MST_USER U ON U.USERID = PB.USERID
  4203. WHERE
  4204. P.VALUEFLAG = '1' AND P.CHECKBATCHNO = 1
  4205. AND P.PROCEDUREID = 13
  4206. AND P.GOODSLEVELTYPEID <> 4
  4207. AND P.CHECKTIME >= @DATEBEGIN@
  4208. AND P.CHECKTIME <= @DATEEND@
  4209. AND P.ISREFIRE = '0'
  4210. --AND L.BUILDINGNO = @BUILDINGNO@
  4211. AND ( PB.PROCEDUREID = 1 )
  4212. AND (D.DEFECTPROCEDUREID IN (2,25))
  4213. AND (P.GOODSCODE = NULL OR NULL IS NULL)
  4214. AND (U.USERCODE = '' OR '' IS NULL)
  4215. GROUP BY
  4216. GROUPING SETS (
  4217. ( U.USERCODE, U.USERNAME, P.GOODSCODE, D.DEFECTID, M.DEFECTNAME ),
  4218. ( U.USERCODE, U.USERNAME, P.GOODSCODE ),
  4219. ( D.DEFECTID, M.DEFECTNAME ),
  4220. ( )
  4221. )
  4222. ORDER BY
  4223. USERCODE,
  4224. GROUPING_ID ( U.USERCODE, P.GOODSCODE, D.DEFECTID )
  4225. )
  4226. ) PIVOT (
  4227. SUM( CNUM ) FOR DEFECT IN ( '糙活' AS 糙活,'成裂' AS 成裂,'成脏' AS 成脏,'成走' AS 成走,'孔不良' AS 孔不良,'泥绺' AS 泥绺,'坯脏' AS 坯脏,'注泡' AS 注泡,'棕眼' AS 棕眼,'漏气' AS 漏气,'卡球' AS 卡球,'炸圈' AS 炸圈,'排水不良' AS 排水不良, '合计' AS 合计 )
  4228. )
  4229. ORDER BY
  4230. 工号, 产品编码
  4231. ) PD
  4232. RIGHT JOIN (
  4233. SELECT
  4234. GID,
  4235. DECODE(GID,3,'合计',工号) AS 工号,
  4236. T.姓名,
  4237. T.产品编码,
  4238. T.出窑数
  4239. FROM
  4240. (
  4241. SELECT
  4242. GROUPING_ID ( U.USERCODE, P.GOODSCODE ) AS GID,
  4243. U.USERCODE AS 工号,
  4244. U.USERNAME AS 姓名,
  4245. P.GOODSCODE AS 产品编码,
  4246. COUNT( * ) AS 出窑数
  4247. FROM
  4248. TP_PM_PRODUCTIONDATA P
  4249. INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  4250. INNER JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID
  4251. --LEFT JOIN TP_MST_USER MU ON MU.USERID = L.MONITORID
  4252. INNER JOIN TP_PM_PRODUCTIONDATA PB ON P.BARCODE = PB.BARCODE
  4253. INNER JOIN TP_MST_USER U ON U.USERID = PB.USERID
  4254. WHERE
  4255. P.VALUEFLAG = '1'
  4256. AND P.PROCEDUREID = 13 AND P.CHECKBATCHNO = 1
  4257. AND P.CHECKTIME >= @DATEBEGIN@
  4258. AND P.CHECKTIME <= @DATEEND@
  4259. --AND L.BUILDINGNO = @BUILDINGNO@
  4260. AND ( PB.PROCEDUREID = 1 )
  4261. AND P.ISREFIRE = '0'
  4262. AND PB.VALUEFLAG='1'
  4263. AND (P.GOODSCODE = NULL OR NULL IS NULL)
  4264. AND (U.USERCODE = '' OR '' IS NULL)
  4265. GROUP BY
  4266. GROUPING SETS (
  4267. ( U.USERCODE, U.USERNAME, P.GOODSCODE ),()
  4268. )
  4269. ) T
  4270. ORDER BY
  4271. 工号, 产品编码
  4272. ) PC ON (PC.GID = 3 AND PD.工号 = PC.工号 AND PD.产品编码 IS NULL ) OR ( PD.工号 = PC.工号 AND PD.产品编码 = PC.产品编码 )) A WHERE A.姓名1 IS NOT NULL
  4273. ";
  4274. List<CDAParameter> sqlPara = new List<CDAParameter>();
  4275. sqlPara.Add(new CDAParameter("I", i));
  4276. sqlPara.Add(new CDAParameter("YEAR", b));
  4277. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  4278. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  4279. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  4280. }
  4281. conn.Commit();
  4282. if (result > 0)
  4283. {
  4284. Curtain.Log.Logger.Debug(b + "年" + a + "月:export022修干坯缺陷统计表结转成功!");
  4285. }
  4286. else
  4287. {
  4288. Curtain.Log.Logger.Debug(b + "年" + a + "月:export022修干坯缺陷统计表结转0条!");
  4289. }
  4290. }
  4291. catch (Exception ex)
  4292. {
  4293. conn.Rollback();
  4294. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export022修干坯缺陷统计表结转失败!");
  4295. Curtain.Log.Logger.Error(ex);
  4296. }
  4297. finally
  4298. {
  4299. conn.Close();
  4300. }
  4301. }
  4302. }
  4303. public static void export024()
  4304. {
  4305. using (IDataAccess conn = DataAccess.Create())
  4306. {
  4307. try
  4308. {
  4309. conn.Open();
  4310. conn.BeginTransaction();
  4311. //2021-07-12 dongyan 修正什么问题
  4312. int result = 0;
  4313. int m = DateTime.Now.AddMonths(-1).Month;
  4314. DateTime dayBegin = new DateTime();
  4315. DateTime dayEnd = new DateTime();
  4316. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  4317. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  4318. int c = Convert.ToInt32(b + a);
  4319. String sqlStr = @"delete AJZ_RPT024 WHERE FORWARD_TIME = @C@";
  4320. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  4321. for (int i = m; i <= m; i++)
  4322. {
  4323. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  4324. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  4325. String sqlStr1 = @" INSERT INTO AJZ_RPT024
  4326. -- SELECT * FROM (
  4327. SELECT
  4328. NVL(PN.日期,PN2.日期) AS 日期,
  4329. NVL(PN.楼号,PN2.楼号) AS 楼号,
  4330. DECODE(PN.工序,13,'本烧',35,'重烧','') AS 工序,
  4331. NVL(PN.车数,0) AS 车数,
  4332. NVL(PN.出窑数量,0) AS 出窑数量,
  4333. NVL((PN.合格数量 + PN2.回收合格),0) AS 合格数量,
  4334. NVL(ROUND(( PN.合格数量 + PN2.回收合格)/DECODE(PN.出窑数量,0,1,PN.出窑数量)*100,2),0)||'%' AS 合格率,
  4335. NVL(ROUND(PN.总产值/DECODE(PN.车数,0,1,PN.车数),2),0) AS 单车产值,
  4336. NVL(PN.双A数量,0) AS 双A数量,
  4337. NVL(PN.出窑数量 - (PN.合格数量 + PN2.回收合格),0) AS 废品数量,
  4338. NVL(ROUND((PN.座便_合格数量+PN2.座便_回收合格)/DECODE(PN.合格数量+PN2.回收合格,0,1,DECODE(PN.合格数量,0,1,PN.合格数量)),2),0) AS 座便比例,
  4339. NVL(PN.连体_出窑数量,0) AS 连体_出窑数量,
  4340. NVL(PN.连体_合格数量 + PN2.连体_回收合格,0) AS 连体_回收合格,
  4341. NVL(ROUND((PN.连体_合格数量 + PN2.连体_回收合格)/DECODE(PN.连体_出窑数量,0,1,PN.连体_出窑数量)*100,2),0)||'%' AS 连体_合格率,
  4342. NVL(PN.座便_出窑数量,0) AS 座便_出窑数量,
  4343. NVL(PN.座便_合格数量 + PN2.座便_回收合格,0) AS 座便_合格数量,
  4344. NVL(ROUND((PN.座便_合格数量+PN2.座便_回收合格)/DECODE(PN.座便_出窑数量,0,1,PN.座便_出窑数量)*100,2),0)||'%' AS 座便_合格率,
  4345. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0')),
  4346. NVL(PN.总产值,0) AS 总产值,
  4347. NVL(ROUND(PN.总产值/DECODE(PN.合格数量+PN2.回收合格,0,1,PN.合格数量+PN2.回收合格),2),0) AS 平均单价
  4348. FROM
  4349. (
  4350. SELECT
  4351. DECODE( GROUPING_ID ( C.CDATE, C.BUILDINGNO ), 0, TO_CHAR( C.CDATE, 'YYYY-MM-DD' ), '合计' ) AS 日期,
  4352. DECODE( GROUPING_ID ( C.CDATE, C.BUILDINGNO ), 0, C.BUILDINGNO, '--' ) AS 楼号,
  4353. NVL(C.PROCEDUREID,0) AS 工序,
  4354. COUNT(DISTINCT C.KILNCARBATCHNO) AS 车数,
  4355. SUM( CASE WHEN C.PROCEDUREID IN ( 13,35 ) THEN C.CNUM ELSE 0 END ) AS 出窑数量,
  4356. SUM( CASE WHEN C.PROCEDUREID IN ( 13,35 ) AND C.GOODSLEVELTYPEID IN ( 4, 5 ) AND C.P2 IS NULL THEN C.CNUM ELSE 0 END ) AS 合格数量,
  4357. SUM( CASE WHEN C.PROCEDUREID IN ( 13,35 ) AND C.GOODSLEVELTYPEID IN ( 5 ) AND C.P2 IS NOT NULL THEN C.CNUM ELSE 0 END ) AS 双A数量,
  4358. SUM(C.UNITPRICE) AS 总产值,
  4359. SUM( CASE WHEN C.PROCEDUREID IN ( 13,35 ) AND C.GOODSTYPEID = 6 THEN C.CNUM ELSE 0 END ) AS 连体_出窑数量,
  4360. SUM( CASE WHEN C.PROCEDUREID IN ( 13,35 ) AND C.GOODSTYPEID = 6 AND C.GOODSLEVELTYPEID IN ( 4, 5 ) AND C.P2 IS NULL THEN C.CNUM ELSE 0 END ) AS 连体_合格数量,
  4361. SUM( CASE WHEN C.PROCEDUREID IN ( 13,35 ) AND C.GOODSTYPEID = 5 THEN C.CNUM ELSE 0 END ) AS 座便_出窑数量,
  4362. SUM( CASE WHEN C.PROCEDUREID IN ( 13,35 ) AND C.GOODSTYPEID = 5 AND C.GOODSLEVELTYPEID IN ( 4, 5 ) AND C.P2 IS NULL THEN C.CNUM ELSE 0 END ) AS 座便_合格数量
  4363. FROM
  4364. (
  4365. SELECT
  4366. T.CDATE,
  4367. T.GROUTINGLINEID,
  4368. T.PROCEDUREID,
  4369. T.GOODSLEVELTYPEID,
  4370. T.PRODUCTIONDATAID,
  4371. T.MAXPRODUCTIONDATAID,
  4372. T.CNUM,
  4373. L.BUILDINGNO,
  4374. P2.PROCEDUREID P2,
  4375. G.UNITPRICE,
  4376. G.GOODSTYPEID,
  4377. T.KILNCARID,
  4378. T.KILNCARBATCHNO
  4379. FROM
  4380. (
  4381. SELECT
  4382. TRUNC( P.CHECKTIME ) AS CDATE,
  4383. P.GROUTINGLINEID,
  4384. P.PROCEDUREID,
  4385. P.GOODSLEVELTYPEID,
  4386. P.PRODUCTIONDATAID,
  4387. MAX( PMAX.PRODUCTIONDATAID ) MAXPRODUCTIONDATAID,
  4388. P.GOODSID,
  4389. P.KILNCARID,
  4390. P.KILNCARBATCHNO,
  4391. 1 AS CNUM
  4392. FROM
  4393. TP_PM_PRODUCTIONDATA P
  4394. LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = P.GROUTINGDAILYDETAILID AND PMAX.PRODUCTIONDATAID < P.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'
  4395. WHERE
  4396. P.VALUEFLAG = '1' AND P.CHECKBATCHNO = 1
  4397. AND P.PROCEDUREID IN ( 13,35 )
  4398. AND P.CHECKTIME >= @DATEBEGIN@
  4399. AND P.CHECKTIME <= @DATEEND@
  4400. GROUP BY
  4401. P.CHECKTIME,
  4402. P.GROUTINGLINEID,
  4403. P.PROCEDUREID,
  4404. P.GOODSLEVELTYPEID,
  4405. P.PRODUCTIONDATAID,
  4406. P.GOODSID,
  4407. P.KILNCARID,
  4408. P.KILNCARBATCHNO
  4409. ) T
  4410. LEFT JOIN TP_PC_GROUTINGLINE L ON T.GROUTINGLINEID = L.GROUTINGLINEID
  4411. LEFT JOIN TP_PM_PRODUCTIONDATA P2 ON ( P2.PRODUCTIONDATAID = T.MAXPRODUCTIONDATAID AND P2.PROCEDUREID IN ( 22, 23 ) )
  4412. LEFT JOIN TP_MST_GOODS G ON T.GOODSID = G.GOODSID
  4413. LEFT JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  4414. WHERE
  4415. ( L.BUILDINGNO = '' OR '' IS NULL)
  4416. ) C
  4417. GROUP BY
  4418. GROUPING SETS ( ( C.CDATE, C.BUILDINGNO, C.PROCEDUREID ), ( ) )
  4419. ) PN
  4420. FULL JOIN
  4421. (
  4422. SELECT
  4423. DECODE( GROUPING_ID ( C.CDATE, C.BUILDINGNO ), 0, TO_CHAR( C.CDATE, 'YYYY-MM-DD' ), '合计' ) AS 日期,
  4424. DECODE( GROUPING_ID ( C.CDATE, C.BUILDINGNO ), 0, C.BUILDINGNO, '--' ) AS 楼号,
  4425. NVL(C.PROCEDUREID,0) AS 工序,
  4426. SUM( CASE WHEN C.PROCEDUREID IN (13,35) AND C.GOODSLEVELTYPEID IN (4, 5) AND C.P2 IN (22,23) THEN C.CNUM ELSE 0 END) AS 回收合格,
  4427. SUM( CASE WHEN C.PROCEDUREID IN (13,35) AND C.GOODSTYPEID = 6 AND C.GOODSLEVELTYPEID IN ( 4, 5 ) AND C.P2 IN(22,23) THEN C.CNUM ELSE 0 END ) AS 连体_回收合格,
  4428. SUM( CASE WHEN C.PROCEDUREID IN (13,35) AND C.GOODSTYPEID = 5 AND C.GOODSLEVELTYPEID IN ( 4, 5 ) AND C.P2 IN(22,23) THEN C.CNUM ELSE 0 END ) AS 座便_回收合格
  4429. FROM
  4430. (
  4431. SELECT
  4432. T.CDATE,
  4433. T.GROUTINGLINEID,
  4434. T.PROCEDUREID,
  4435. T.GOODSLEVELTYPEID,
  4436. T.PRODUCTIONDATAID,
  4437. T.MAXPRODUCTIONDATAID,
  4438. T.CNUM,
  4439. L.BUILDINGNO,
  4440. P2.PROCEDUREID P2,
  4441. G.UNITPRICE,
  4442. G.GOODSTYPEID,
  4443. T.KILNCARID,
  4444. T.KILNCARBATCHNO
  4445. FROM
  4446. (
  4447. SELECT
  4448. TRUNC( P.CREATETIME ) AS CDATE,
  4449. P.GROUTINGLINEID,
  4450. P.PROCEDUREID,
  4451. P.GOODSLEVELTYPEID,
  4452. P.PRODUCTIONDATAID,
  4453. MAX( PMAX.PRODUCTIONDATAID ) MAXPRODUCTIONDATAID,
  4454. P.GOODSID,
  4455. P.KILNCARID,
  4456. P.KILNCARBATCHNO,
  4457. 1 AS CNUM
  4458. FROM
  4459. TP_PM_PRODUCTIONDATA P
  4460. LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = P.GROUTINGDAILYDETAILID AND PMAX.PRODUCTIONDATAID < P.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'
  4461. WHERE
  4462. P.VALUEFLAG = '1' AND P.CHECKBATCHNO = 1
  4463. AND P.PROCEDUREID IN ( 13,35 )
  4464. AND P.CREATETIME >= @DATEBEGIN@
  4465. AND P.CREATETIME <= @DATEEND@
  4466. GROUP BY
  4467. P.CREATETIME,
  4468. P.GROUTINGLINEID,
  4469. P.PROCEDUREID,
  4470. P.GOODSLEVELTYPEID,
  4471. P.PRODUCTIONDATAID,
  4472. P.GOODSID,
  4473. P.KILNCARID,
  4474. P.KILNCARBATCHNO
  4475. ) T
  4476. LEFT JOIN TP_PC_GROUTINGLINE L ON T.GROUTINGLINEID = L.GROUTINGLINEID
  4477. LEFT JOIN TP_PM_PRODUCTIONDATA P2 ON ( P2.PRODUCTIONDATAID = T.MAXPRODUCTIONDATAID AND P2.PROCEDUREID IN ( 22, 23 ) )
  4478. LEFT JOIN TP_MST_GOODS G ON T.GOODSID = G.GOODSID
  4479. LEFT JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  4480. WHERE
  4481. ( L.BUILDINGNO = '' OR '' IS NULL)
  4482. ) C
  4483. GROUP BY
  4484. GROUPING SETS ( ( C.CDATE, C.BUILDINGNO, C.PROCEDUREID ), ( ) )
  4485. ) PN2
  4486. ON PN.日期 = PN2.日期 AND PN.楼号 = PN2.楼号 AND PN.工序 = PN2.工序
  4487. ORDER BY
  4488. 日期 ASC
  4489. -- ) A WHERE A.工序 IS NOT NULL)
  4490. ";
  4491. List<CDAParameter> sqlPara = new List<CDAParameter>();
  4492. sqlPara.Add(new CDAParameter("I", i));
  4493. sqlPara.Add(new CDAParameter("YEAR", b));
  4494. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  4495. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  4496. result += conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  4497. }
  4498. conn.Commit();
  4499. if (result > 0)
  4500. {
  4501. Curtain.Log.Logger.Debug(b + "年" + a + "月:export024生产进度表结转成功!");
  4502. }
  4503. else
  4504. {
  4505. Curtain.Log.Logger.Debug(b + "年" + a + "月:export024生产进度表结转0条!");
  4506. }
  4507. }
  4508. catch (Exception ex)
  4509. {
  4510. conn.Rollback();
  4511. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export024生产进度表结转失败!");
  4512. Curtain.Log.Logger.Error(ex);
  4513. }
  4514. finally
  4515. {
  4516. conn.Close();
  4517. }
  4518. }
  4519. }
  4520. public static void export025()
  4521. {
  4522. using (IDataAccess conn = DataAccess.Create())
  4523. {
  4524. try
  4525. {
  4526. conn.Open();
  4527. conn.BeginTransaction();
  4528. //2021-07-12 dongyan 修正什么问题
  4529. int result = 0;
  4530. int m = DateTime.Now.AddMonths(-1).Month;
  4531. DateTime dayBegin = new DateTime();
  4532. DateTime dayEnd = new DateTime();
  4533. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  4534. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  4535. int c = Convert.ToInt32(b + a);
  4536. string sqlStr = @"delete JZ_RPT025 WHERE FORWARD_TIME = @C@";
  4537. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  4538. for (int i = m; i <= m; i++)
  4539. {
  4540. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  4541. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  4542. string sqlStr1 = @"
  4543. insert INTO JZ_RPT025
  4544. SELECT
  4545. MU.USERNAME 组别,
  4546. GL.GROUTINGLINENAME 线号,
  4547. LISTAGG ( TO_CHAR( GP.GOODSMODEL ), '/' ) WITHIN GROUP ( ORDER BY GP.GOODSMODEL ) 产品型号,
  4548. LISTAGG ( TO_CHAR( GU.USERCODE ), '/' ) WITHIN GROUP ( ORDER BY GU.USERCODE ) 成型工号,
  4549. LISTAGG ( TO_CHAR( GU.USERNAME ), '/' ) WITHIN GROUP ( ORDER BY GU.USERCODE ) 姓名,
  4550. MAX( GP.MG_COUNT ) 注浆次数 ,
  4551. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  4552. FROM
  4553. (
  4554. SELECT
  4555. T.GROUTINGLINEID,
  4556. G.GOODSMODEL,
  4557. GDD.USERID,
  4558. MAX( GLD.GROUTINGCOUNT ) MG_COUNT
  4559. FROM
  4560. TP_PC_GMOULDRECORD T
  4561. LEFT JOIN TP_PC_GROUTINGLINEDETAIL GLD ON ( T.GMOULDRECORDTYPE = 6 AND GLD.LASTGMOULDRECORDID = T.GMOULDRECORDID )
  4562. OR ( T.GMOULDRECORDTYPE <> 6 AND T.GROUTINGLINEDETAILID = GLD.GROUTINGLINEDETAILID )
  4563. LEFT JOIN TP_MST_GOODS G1 ON G1.GOODSID = T.GOODSID
  4564. LEFT JOIN TP_MST_GOODS G2 ON G2.GOODSID = T.CHANGEDGOODSID
  4565. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGLINEDETAILID = GLD.GROUTINGLINEDETAILID
  4566. AND GDD.GROUTINGCOUNT = GLD.GROUTINGCOUNT
  4567. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = GLD.GOODSID
  4568. WHERE
  4569. T.CREATETIME >= @DATEBEGIN@
  4570. AND T.CREATETIME <= @DATEEND@
  4571. AND GLD.GROUTINGCOUNT > 0
  4572. AND T.GMOULDRECORDTYPE IN ( 3, 5, 6, 7 )
  4573. AND ( T.GMOULDRECORDTYPE <> 5 OR ( G1.GOODSMODEL <> G2.GOODSMODEL ) )
  4574. GROUP BY
  4575. T.GROUTINGLINEID,
  4576. G.GOODSMODEL,
  4577. GDD.USERID
  4578. ) GP
  4579. INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = GP.GROUTINGLINEID
  4580. LEFT JOIN TP_MST_USER MU ON MU.USERID = GL.MONITORID
  4581. --INNER JOIN TP_MST_GOODS G ON G.GOODSID = GP.GOODSID
  4582. LEFT JOIN TP_MST_USER GU ON GU.USERID = GP.USERID
  4583. WHERE GP.MG_COUNT >= 70
  4584. GROUP BY
  4585. MU.USERNAME,
  4586. GL.GROUTINGLINENAME
  4587. ";
  4588. List<CDAParameter> sqlPara = new List<CDAParameter>();
  4589. sqlPara.Add(new CDAParameter("I", i));
  4590. sqlPara.Add(new CDAParameter("YEAR", b));
  4591. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  4592. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  4593. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  4594. }
  4595. conn.Commit();
  4596. if (result > 0)
  4597. {
  4598. Curtain.Log.Logger.Debug(b + "年" + a + "月:export025历史注浆次数表结转成功!");
  4599. }
  4600. else
  4601. {
  4602. Curtain.Log.Logger.Debug(b + "年" + a + "月:export025历史注浆次数表结转0条!");
  4603. }
  4604. }
  4605. catch (Exception ex)
  4606. {
  4607. conn.Rollback();
  4608. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export025历史注浆次数表结转失败!");
  4609. Curtain.Log.Logger.Error(ex);
  4610. }
  4611. finally
  4612. {
  4613. conn.Close();
  4614. }
  4615. }
  4616. }
  4617. public static void export027()
  4618. {
  4619. using (IDataAccess conn = DataAccess.Create())
  4620. {
  4621. try
  4622. {
  4623. conn.Open();
  4624. conn.BeginTransaction();
  4625. //2021-8-2 陈强
  4626. string sqlStrc = @"delete JZ_RPT027 where FORWARDTIME = @c@ ";
  4627. string sqlStra = @" delete JZ_RPT027_D where FORWARDTIME = @a@ ";
  4628. int result = 0;
  4629. int m = DateTime.Now.AddMonths(-1).Month;
  4630. string mouth = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  4631. string year = DateTime.Now.AddMonths(-1).Year.ToString();
  4632. int c = Convert.ToInt32(year + m.ToString().PadLeft(2, '0'));
  4633. conn.ExecuteNonQuery(sqlStrc, new CDAParameter("c", c));
  4634. conn.ExecuteNonQuery(sqlStra, new CDAParameter("a", c));
  4635. DateTime dayBegin = new DateTime();
  4636. DateTime dayEnd = new DateTime();
  4637. for (int i = m; i <= m; i++)
  4638. {
  4639. dayBegin = Convert.ToDateTime(year + "-" + i.ToString().PadLeft(2, '0') + "-01");
  4640. dayEnd = dayBegin.AddMonths(1);
  4641. //总单
  4642. String sqlStr1 = @" INSERT INTO JZ_RPT027 SELECT * FROM (" +
  4643. "SELECT to_char(@DATEOUT@, 'yyyy-mm-dd') AS \"审核日期\"\n" +
  4644. " ,to_char(@DATEOUT@, 'yyyy-mm-dd') AS \"日期\"\n" +
  4645. " ,to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))" +
  4646. " ,'张迪' AS \"制单人_FName\"\n" +
  4647. " ,'' AS \"编 号\"\n" +
  4648. " ,'张迪' AS \"审核人_FName\"\n" +
  4649. " ,CASE\n" +
  4650. " WHEN SUM(T.DNUM) < 0 THEN\n" +
  4651. " '1'\n" +
  4652. " ELSE\n" +
  4653. " '0'\n" +
  4654. " END AS \"红蓝字\"\n" +
  4655. " ,'' AS \"单据号\"\n" +
  4656. " ,T.FNAME_CODE AS \"领料部门_FNumber\"\n" +
  4657. " ,T.FNAME AS \"领料部门_FName\"\n" +
  4658. " ,'' AS \"用途\"\n" +
  4659. " ,'01.094' AS \"领料_FNumber\"\n" +
  4660. " ,'张迪' AS \"领料_FName\"\n" +
  4661. " ,'01.094' AS \"发货_FNumber\"\n" +
  4662. " ,'张迪' AS \"发货_FName\"\n" +
  4663. " ,'01.001' AS \"客户_FNumber\"\n" +
  4664. " ,'唐山中陶实业有限公司' AS \"客户_FName\"\n" +
  4665. " ,'' AS \"出库类型_FNumber\"\n" +
  4666. " ,'0'" +
  4667. " FROM (\n" +
  4668. " SELECT -1 AS DNUM\n" +
  4669. " ,CASE\n" +
  4670. " WHEN TS.PROCEDUREID IN (26, 27, 38) THEN\n" +
  4671. " '精坯库(一期)'\n" +
  4672. " WHEN TS.PROCEDUREID IN (3, 39) THEN\n" +
  4673. //" '精坯库(二期)'\n" +
  4674. " '精坯库(一期)'\n" +
  4675. " WHEN TS.PROCEDUREID IN (28, 29, 30, 32, 33) THEN\n" +
  4676. " '釉坯库(一期)'\n" +
  4677. " WHEN TS.PROCEDUREID IN (24, 4,5, 6, 10, 16, 34) THEN\n" +
  4678. //" '釉坯库(二期)'\n" +
  4679. " '釉坯库(一期)'\n" +
  4680. " WHEN TS.PROCEDUREID = 31 OR\n" +
  4681. " (TS.PROCEDUREID = 9 AND PD.KILNID IN (1, 2)) THEN\n" +
  4682. " '窑坯(一期)'\n" +
  4683. " WHEN TS.PROCEDUREID = 21 OR\n" +
  4684. " (TS.PROCEDUREID = 9 AND PD.KILNID IN (3, 4)) THEN\n" +
  4685. //" '窑坯(二期)'\n" +
  4686. " '窑坯(一期)'\n" +
  4687. " ELSE\n" +
  4688. " NULL\n" +
  4689. " END FNAME_FLAG\n" +
  4690. " ,CASE\n" +
  4691. " WHEN TS.PROCEDUREID IN (26, 27, 38) THEN\n" +
  4692. " '009'\n" +
  4693. " WHEN TS.PROCEDUREID IN (3, 39) THEN\n" +
  4694. //" '035'\n" +
  4695. " '009'\n" +
  4696. " WHEN TS.PROCEDUREID IN (28, 29, 30, 32, 33) THEN\n" +
  4697. " '010'\n" +
  4698. " WHEN TS.PROCEDUREID IN (24, 4,5, 6, 10, 16, 34) THEN\n" +
  4699. //" '039'\n" +
  4700. " '010'\n" +
  4701. " WHEN TS.PROCEDUREID = 31 OR\n" +
  4702. " (TS.PROCEDUREID = 9 AND PD.KILNID IN (1, 2)) THEN\n" +
  4703. " '011'\n" +
  4704. " WHEN TS.PROCEDUREID = 21 OR\n" +
  4705. " (TS.PROCEDUREID = 9 AND PD.KILNID IN (3, 4)) THEN\n" +
  4706. //" '038'\n" +
  4707. " '011'\n" +
  4708. " ELSE\n" +
  4709. " NULL\n" +
  4710. " END FNAME_CODE\n" +
  4711. " ,CASE\n" +
  4712. " WHEN TS.PROCEDUREID IN (26, 27, 38) THEN\n" +
  4713. " '一期成型车间'\n" +
  4714. " WHEN TS.PROCEDUREID IN (3, 39) THEN\n" +
  4715. //" '二期成型车间'\n" +
  4716. " '一期成型车间'\n" +
  4717. " WHEN TS.PROCEDUREID IN (28, 29, 30, 32, 33) THEN\n" +
  4718. " '一期施釉车间'\n" +
  4719. " WHEN TS.PROCEDUREID IN (24, 4,5, 6, 10, 16, 34) THEN\n" +
  4720. //" '二期施釉车间'\n" +
  4721. " '一期施釉车间'\n" +
  4722. " WHEN TS.PROCEDUREID = 31 OR\n" +
  4723. " (TS.PROCEDUREID = 9 AND PD.KILNID IN (1, 2)) THEN\n" +
  4724. " '一期烧成车间'\n" +
  4725. " WHEN TS.PROCEDUREID = 21 OR\n" +
  4726. " (TS.PROCEDUREID = 9 AND PD.KILNID IN (3, 4)) THEN\n" +
  4727. //" '二期烧成车间'\n" +
  4728. " '一期烧成车间'\n" +
  4729. " ELSE\n" +
  4730. " NULL\n" +
  4731. " END FNAME\n" +
  4732. " FROM TP_PM_SCRAPPRODUCT TS\n" +
  4733. " INNER JOIN TP_PM_PRODUCTIONDATA PD\n" +
  4734. " ON TS.PRODUCTIONDATAID = PD.PRODUCTIONDATAID\n" +
  4735. " WHERE TS.AUDITSTATUS = 1\n" +
  4736. " AND TS.GOODSLEVELTYPEID = 8\n" +
  4737. " AND TS.BACKOUTTIME >= @DATEBEGIN@\n" +
  4738. " AND TS.BACKOUTTIME < @DATEEND@\n" +
  4739. " AND TS.PROCEDUREID IN (3\n" +
  4740. " ,26\n" +
  4741. " ,27\n" +
  4742. " ,38\n" +
  4743. " ,39\n" +
  4744. " ,28\n" +
  4745. " ,29\n" +
  4746. " ,30\n" +
  4747. " ,32\n" +
  4748. " ,33\n" +
  4749. " ,24\n" +
  4750. " ,4,5\n" +
  4751. " ,6\n" +
  4752. " ,10\n" +
  4753. " ,16, 34\n" +
  4754. " ,21\n" +
  4755. " ,31\n" +
  4756. //" ,9)) T\n" +
  4757. " ,9)\n" +
  4758. " UNION ALL\n" + // 产品清除
  4759. " SELECT -1 AS DNUM\n" +
  4760. " ,CASE\n" +
  4761. " WHEN TS.OTHERID IN (26, 27, 38) THEN\n" +
  4762. " '精坯库(一期)'\n" +
  4763. " WHEN TS.OTHERID IN (3, 39) THEN\n" +
  4764. //" '精坯库(二期)'\n" +
  4765. " '精坯库(一期)'\n" +
  4766. " WHEN TS.OTHERID IN (28, 29, 30, 32, 33) THEN\n" +
  4767. " '釉坯库(一期)'\n" +
  4768. " WHEN TS.OTHERID IN (24, 4,5, 6, 10, 16, 34) THEN\n" +
  4769. //" '釉坯库(二期)'\n" +
  4770. " '釉坯库(一期)'\n" +
  4771. " WHEN TS.OTHERID = 31 OR\n" +
  4772. " (TS.OTHERID = 9 AND PD.KILNID IN (1, 2)) THEN\n" +
  4773. " '窑坯(一期)'\n" +
  4774. " WHEN TS.OTHERID = 21 OR\n" +
  4775. " (TS.OTHERID = 9 AND PD.KILNID IN (3, 4)) THEN\n" +
  4776. //" '窑坯(二期)'\n" +
  4777. " '窑坯(一期)'\n" +
  4778. " ELSE\n" +
  4779. " NULL\n" +
  4780. " END FNAME_FLAG\n" +
  4781. " ,CASE\n" +
  4782. " WHEN TS.OTHERID IN (26, 27, 38) THEN\n" +
  4783. " '009'\n" +
  4784. " WHEN TS.OTHERID IN (3, 39) THEN\n" +
  4785. //" '035'\n" +
  4786. " '009'\n" +
  4787. " WHEN TS.OTHERID IN (28, 29, 30, 32, 33) THEN\n" +
  4788. " '010'\n" +
  4789. " WHEN TS.OTHERID IN (24, 4,5, 6, 10, 16, 34) THEN\n" +
  4790. //" '039'\n" +
  4791. " '010'\n" +
  4792. " WHEN TS.OTHERID = 31 OR\n" +
  4793. " (TS.OTHERID = 9 AND PD.KILNID IN (1, 2)) THEN\n" +
  4794. " '011'\n" +
  4795. " WHEN TS.OTHERID = 21 OR\n" +
  4796. " (TS.OTHERID = 9 AND PD.KILNID IN (3, 4)) THEN\n" +
  4797. //" '038'\n" +
  4798. " '011'\n" +
  4799. " ELSE\n" +
  4800. " NULL\n" +
  4801. " END FNAME_CODE\n" +
  4802. " ,CASE\n" +
  4803. " WHEN TS.OTHERID IN (26, 27, 38) THEN\n" +
  4804. " '一期成型车间'\n" +
  4805. " WHEN TS.OTHERID IN (3, 39) THEN\n" +
  4806. //" '二期成型车间'\n" +
  4807. " '一期成型车间'\n" +
  4808. " WHEN TS.OTHERID IN (28, 29, 30, 32, 33) THEN\n" +
  4809. " '一期施釉车间'\n" +
  4810. " WHEN TS.OTHERID IN (24, 4,5, 6, 10, 16, 34) THEN\n" +
  4811. //" '二期施釉车间'\n" +
  4812. " '一期施釉车间'\n" +
  4813. " WHEN TS.OTHERID = 31 OR\n" +
  4814. " (TS.OTHERID = 9 AND PD.KILNID IN (1, 2)) THEN\n" +
  4815. " '一期烧成车间'\n" +
  4816. " WHEN TS.OTHERID = 21 OR\n" +
  4817. " (TS.OTHERID = 9 AND PD.KILNID IN (3, 4)) THEN\n" +
  4818. //" '二期烧成车间'\n" +
  4819. " '一期烧成车间'\n" +
  4820. " ELSE\n" +
  4821. " NULL\n" +
  4822. " END FNAME\n" +
  4823. " FROM TP_PM_GOODSCHANGEHISTORY TS\n" +
  4824. " LEFT JOIN TP_PM_PRODUCTIONDATA PD\n" +
  4825. " ON TS.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID AND TS.OTHERID = 9 AND PD.PROCEDUREID=9\n" +
  4826. " WHERE TS.DATATYPE = 12\n" +
  4827. " AND TS.CREATETIME >= @DATEBEGIN@\n" +
  4828. " AND TS.CREATETIME < @DATEEND@\n" +
  4829. " AND TS.OTHERID IN (3\n" +
  4830. " ,26\n" +
  4831. " ,27\n" +
  4832. " ,38\n" +
  4833. " ,39\n" +
  4834. " ,28\n" +
  4835. " ,29\n" +
  4836. " ,30\n" +
  4837. " ,32\n" +
  4838. " ,33\n" +
  4839. " ,24\n" +
  4840. " ,4,5\n" +
  4841. " ,6\n" +
  4842. " ,10\n" +
  4843. " ,16, 34\n" +
  4844. " ,21\n" +
  4845. " ,31\n" +
  4846. " ,9)) T\n" +
  4847. // " WHERE (@FNAME_FLAG@ IS NULL OR T.FNAME_FLAG = @FNAME_FLAG@) \n" +
  4848. " GROUP BY T.FNAME_CODE, T.FNAME, T.FNAME_FLAG\n" +
  4849. " )";
  4850. List<CDAParameter> sqlPara1 = new List<CDAParameter>();
  4851. sqlPara1.Add(new CDAParameter("DATEOUT", dayEnd.AddDays(-1)));
  4852. sqlPara1.Add(new CDAParameter("I", i));
  4853. sqlPara1.Add(new CDAParameter("YEAR", year));
  4854. sqlPara1.Add(new CDAParameter("DATEEND", dayEnd));
  4855. sqlPara1.Add(new CDAParameter("DATEBEGIN", dayBegin));
  4856. result += conn.ExecuteNonQuery(sqlStr1, sqlPara1.ToArray());
  4857. //明细
  4858. string sqlStr2 = @"
  4859. INSERT INTO JZ_RPT027_D SELECT * FROM (" +
  4860. "SELECT '' AS 行号\n" +
  4861. " ,'' AS \"单据号_FBillno\"\n" +
  4862. " ,'' AS \"单据号_FTrantype\"\n" +
  4863. " ,K.K_CODE AS \"产品代码_FNumber\"\n" +
  4864. " ,T.GOODS_CODE AS \"产品代码_FName\"\n" +
  4865. " ,'' AS \"产品代码_FModel\"\n" +
  4866. " ,'' AS \"辅助属性_FNumber\"\n" +
  4867. " ,'' AS \"辅助属性_FName\"\n" +
  4868. " ,'*' AS \"辅助属性_FClassName\"\n" +
  4869. " ,'件' AS \"单位_FNumber\"\n" +
  4870. " ,'件' AS \"单位_FName\"\n" +
  4871. " ,0 AS \"单价\"\n" +
  4872. " ,SUM(T.DNUM) AS \"数量\"\n" +
  4873. " ,0 AS \"金额\"\n" +
  4874. " ,'破损' AS \"备注\"\n" +
  4875. " ,SUM(T.DNUM) AS \"基本单位数量\"\n" +
  4876. " ,'' AS \"生产_采购日期\"\n" +
  4877. " ,'' AS \"发货仓库_FNumber\"\n" +
  4878. " ,T.FNAME AS \"发货仓库_FName\"\n" +
  4879. " ,'' AS \"仓位_FName\"\n" +
  4880. " ,'' AS \"仓位_FGroupName\"\n" +
  4881. " ,to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))" +
  4882. " ,'0'" +
  4883. " FROM (\n" +
  4884. " SELECT CASE\n" +
  4885. " WHEN TS.PROCEDUREID IN (3, 26, 27, 38, 39) THEN\n" +
  4886. " 'J'\n" +
  4887. " WHEN TS.PROCEDUREID IN (21, 31, 9) THEN\n" +
  4888. " 'S'\n" +
  4889. " ELSE\n" +
  4890. " 'Y'\n" +
  4891. " END || G.GOODSMODEL AS GOODS_CODE\n" +
  4892. " ,-1 AS DNUM\n" +
  4893. " ,CASE\n" +
  4894. " WHEN TS.PROCEDUREID IN (26, 27, 38) THEN\n" +
  4895. " '精坯库(一期)'\n" +
  4896. " WHEN TS.PROCEDUREID IN (3, 39) THEN\n" +
  4897. //" '精坯库(二期)'\n" +
  4898. " '精坯库(一期)'\n" +
  4899. " WHEN TS.PROCEDUREID IN (28, 29, 30, 32, 33) THEN\n" +
  4900. " '釉坯库(一期)'\n" +
  4901. " WHEN TS.PROCEDUREID IN (24, 4,5, 6, 10, 16, 34) THEN\n" +
  4902. //" '釉坯库(二期)'\n" +
  4903. " '釉坯库(一期)'\n" +
  4904. " WHEN TS.PROCEDUREID = 31 OR\n" +
  4905. " (TS.PROCEDUREID = 9 AND PD.KILNID IN (1, 2)) THEN\n" +
  4906. " '窑坯(一期)'\n" +
  4907. " WHEN TS.PROCEDUREID = 21 OR\n" +
  4908. " (TS.PROCEDUREID = 9 AND PD.KILNID IN (3, 4)) THEN\n" +
  4909. //" '窑坯(二期)'\n" +
  4910. " '窑坯(一期)'\n" +
  4911. " ELSE\n" +
  4912. " NULL\n" +
  4913. " END FNAME\n" +
  4914. " FROM TP_PM_SCRAPPRODUCT TS\n" +
  4915. " INNER JOIN TP_MST_GOODS G\n" +
  4916. " ON TS.GOODSID = G.GOODSID\n" +
  4917. " INNER JOIN TP_PM_PRODUCTIONDATA PD\n" +
  4918. " ON TS.PRODUCTIONDATAID = PD.PRODUCTIONDATAID\n" +
  4919. " WHERE TS.AUDITSTATUS = 1\n" +
  4920. " AND TS.GOODSLEVELTYPEID = 8\n" +
  4921. " AND TS.BACKOUTTIME >= @DATEBEGIN@\n" +
  4922. " AND TS.BACKOUTTIME < @DATEEND@\n" +
  4923. " AND TS.PROCEDUREID IN (3\n" +
  4924. " ,26\n" +
  4925. " ,27\n" +
  4926. " ,38\n" +
  4927. " ,39\n" +
  4928. " ,28\n" +
  4929. " ,29\n" +
  4930. " ,30\n" +
  4931. " ,32\n" +
  4932. " ,33\n" +
  4933. " ,24\n" +
  4934. " ,4,5\n" +
  4935. " ,6\n" +
  4936. " ,10\n" +
  4937. " ,16, 34\n" +
  4938. " ,21\n" +
  4939. " ,31\n" +
  4940. " ,9)\n" +
  4941. " UNION ALL\n" + // 产品清除
  4942. " SELECT CASE\n" +
  4943. " WHEN TS.OTHERID IN (3, 26, 27, 38, 39) THEN\n" +
  4944. " 'J'\n" +
  4945. " WHEN TS.OTHERID IN (21, 31, 9) THEN\n" +
  4946. " 'S'\n" +
  4947. " ELSE\n" +
  4948. " 'Y'\n" +
  4949. " END || G.GOODSMODEL AS GOODS_CODE\n" +
  4950. " ,-1 AS DNUM\n" +
  4951. " ,CASE\n" +
  4952. " WHEN TS.OTHERID IN (26, 27, 38) THEN\n" +
  4953. " '精坯库(一期)'\n" +
  4954. " WHEN TS.OTHERID IN (3, 39) THEN\n" +
  4955. //" '精坯库(二期)'\n" +
  4956. " '精坯库(一期)'\n" +
  4957. " WHEN TS.OTHERID IN (28, 29, 30, 32, 33) THEN\n" +
  4958. " '釉坯库(一期)'\n" +
  4959. " WHEN TS.OTHERID IN (24, 4,5, 6, 10, 16, 34) THEN\n" +
  4960. //" '釉坯库(二期)'\n" +
  4961. " '釉坯库(一期)'\n" +
  4962. " WHEN TS.OTHERID = 31 OR\n" +
  4963. " (TS.OTHERID = 9 AND PD.KILNID IN (1, 2)) THEN\n" +
  4964. " '窑坯(一期)'\n" +
  4965. " WHEN TS.OTHERID = 21 OR\n" +
  4966. " (TS.OTHERID = 9 AND PD.KILNID IN (3, 4)) THEN\n" +
  4967. //" '窑坯(二期)'\n" +
  4968. " '窑坯(一期)'\n" +
  4969. " ELSE\n" +
  4970. " NULL\n" +
  4971. " END FNAME\n" +
  4972. " FROM TP_PM_GOODSCHANGEHISTORY TS\n" +
  4973. " INNER JOIN TP_MST_GOODS G\n" +
  4974. " ON TS.GOODSID = G.GOODSID\n" +
  4975. " LEFT JOIN TP_PM_PRODUCTIONDATA PD\n" +
  4976. " ON TS.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID AND TS.OTHERID = 9 AND PD.PROCEDUREID=9\n" +
  4977. " WHERE TS.DATATYPE = 12\n" +
  4978. " AND TS.CREATETIME >= @DATEBEGIN@\n" +
  4979. " AND TS.CREATETIME < @DATEEND@\n" +
  4980. " AND TS.OTHERID IN (3\n" +
  4981. " ,26\n" +
  4982. " ,27\n" +
  4983. " ,38\n" +
  4984. " ,39\n" +
  4985. " ,28\n" +
  4986. " ,29\n" +
  4987. " ,30\n" +
  4988. " ,32\n" +
  4989. " ,33\n" +
  4990. " ,24\n" +
  4991. " ,4,5\n" +
  4992. " ,6\n" +
  4993. " ,10\n" +
  4994. " ,16, 34\n" +
  4995. " ,21\n" +
  4996. " ,31\n" +
  4997. " ,9)" +
  4998. " ) T\n" +
  4999. " LEFT JOIN TA_IMEX_kingdee_Goodscode K ON T.GOODS_CODE = K.K_NAME AND T.FNAME = K.K_WAREHOUSE\n" +
  5000. // " WHERE (@FNAME_FLAG@ IS NULL OR T.FNAME = @FNAME_FLAG@) \n" +
  5001. " GROUP BY K.K_CODE, T.GOODS_CODE, T.FNAME\n" +
  5002. " )";
  5003. List<CDAParameter> sqlPara = new List<CDAParameter>();
  5004. sqlPara.Add(new CDAParameter("I", i));
  5005. sqlPara.Add(new CDAParameter("YEAR", year));
  5006. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  5007. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  5008. result += conn.ExecuteNonQuery(sqlStr2, sqlPara.ToArray());
  5009. }
  5010. conn.Commit();
  5011. if (result > 0)
  5012. {
  5013. Curtain.Log.Logger.Debug(year + "年" + mouth + "月:export027其他出库退单结转成功!");
  5014. }
  5015. else
  5016. {
  5017. Curtain.Log.Logger.Debug(year + "年" + mouth + "月:export027其他出库退单结转0条!");
  5018. }
  5019. }
  5020. catch (Exception ex)
  5021. {
  5022. conn.Rollback();
  5023. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export027其他出库退单结转失败!");
  5024. Curtain.Log.Logger.Error(ex);
  5025. }
  5026. finally
  5027. {
  5028. conn.Close();
  5029. }
  5030. }
  5031. }
  5032. public static void export028()
  5033. {
  5034. using (IDataAccess conn = DataAccess.Create())
  5035. {
  5036. //2021-08-2 dongyan 修正什么问题
  5037. int result = 0;
  5038. int result1 = 0;
  5039. int m = DateTime.Now.AddMonths(-1).Month;
  5040. DateTime dayBegin = new DateTime();
  5041. DateTime dayEnd = new DateTime();
  5042. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  5043. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  5044. int c = Convert.ToInt32(b + m.ToString().PadLeft(2, '0'));
  5045. string dayOut = b + "-" + a + "-" + DateTime.DaysInMonth(Convert.ToInt32(b), m).ToString();
  5046. conn.Open();
  5047. conn.BeginTransaction();
  5048. try
  5049. {
  5050. String sqlStr = @"delete JZ_RPT028_M WHERE FORWARDTIME = @C@";
  5051. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  5052. String Str = @"delete JZ_RPT028_D WHERE FORWARDTIME = @C@";
  5053. conn.ExecuteNonQuery(Str, new CDAParameter("C", c));
  5054. for (int i = m; i <= m; i++)
  5055. {
  5056. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  5057. dayEnd = dayBegin.AddMonths(1);
  5058. String sqlStr2 = @"INSERT INTO JZ_RPT028_D " +
  5059. "SELECT * FROM ( SELECT '' AS 序列号内码\n" +
  5060. " ,'' AS 行号\n" +
  5061. " ,'' AS \"单据号_FBillno\"\n" +
  5062. " ,'' AS \"单据号_FTrantype\"\n" +
  5063. " ,K.K_CODE AS \"物料代码_FNumber\"\n" +
  5064. " ,T.GOODS_CODE AS \"物料代码_FName\"\n" +
  5065. " ,'' AS \"物料代码_FModel\"\n" +
  5066. " ,'' AS \"辅助属性_FNumber\"\n" +
  5067. " ,'' AS \"辅助属性_FName\"\n" +
  5068. " ,'*' AS \"辅助属性_FClassName\"\n" +
  5069. " ,K2.K_CODE AS \"成本对象_FNumber\"\n" +
  5070. //" ,decode(T.P_CODE,'J','Y','Y','S') || T.GOODS_CODE AS \"成本对象_FName\"\n" +
  5071. " ,T.GOODS_CODE2 AS \"成本对象_FName\"\n" +
  5072. " ,'' AS \"成本对象_FItemClassID\"\n" +
  5073. " ,'*' AS \"成本对象组_FNumber\"\n" +
  5074. " ,'*' AS \"成本对象组_FName\"\n" +
  5075. " ,'0' AS \"成本对象组_FItemClassID\"\n" +
  5076. " ,'件' AS \"单位_FNumber\"\n" +
  5077. " ,'件' AS \"单位_FName\"\n" +
  5078. " ,0 AS \"单价\"\n" +
  5079. " ,'' AS \"批号\"\n" +
  5080. " ,0 AS \"金额\"\n" +
  5081. " ,0 AS \"客户BOM\"\n" +
  5082. " ,SUM(T.DNUM) AS \"实发数量\"\n" +
  5083. " ,'' AS \"备注\"\n" +
  5084. " ,SUM(T.DNUM) AS \"基本单位实发数量\"\n" +
  5085. " ,0 AS \" 保质期(天)\"\n" +
  5086. " ,'' AS \"有效期至\"\n" +
  5087. " ,'' AS \"发料仓库_FNumber\"\n" +
  5088. " ,T.FNAME AS \"发料仓库_FName\"\n" +
  5089. " ,NULL AS \"仓位_FName\"\n" +
  5090. " ,NULL AS \"仓位_FGroupName\"\n" +
  5091. " ,0 AS \"辅助数量\"\n" +
  5092. ",to_number(@YEAR@|| lpad(to_char(@I@),2,'0'))\n" +
  5093. " FROM (SELECT CASE\n" +
  5094. " WHEN TS.PROCEDUREID IN (28, 24,34) THEN\n" +
  5095. " 'J'\n" +
  5096. " WHEN TS.PROCEDUREID IN (13) THEN\n" +
  5097. " 'S'\n" +
  5098. " ELSE\n" +
  5099. " 'Y'\n" +
  5100. " END || G.GOODSMODEL AS GOODS_CODE\n" +
  5101. " ,CASE\n" +
  5102. " WHEN TS.PROCEDUREID IN (28, 24,34) THEN\n" +
  5103. " 'Y'\n" +
  5104. " WHEN TS.PROCEDUREID IN (13) THEN\n" +
  5105. " ''\n" +
  5106. " ELSE\n" +
  5107. " 'S'\n" +
  5108. " END || G.GOODSMODEL AS GOODS_CODE2\n" +
  5109. " ,-1 AS DNUM\n" +
  5110. " ,CASE\n" +
  5111. " WHEN TS.PROCEDUREID = 28 THEN\n" +
  5112. " '精坯库(一期)'\n" +
  5113. " WHEN TS.PROCEDUREID IN( 24,34) THEN\n" +
  5114. //" '精坯库(二期)'\n" +
  5115. " '精坯库(一期)'\n" +
  5116. " WHEN TS.PROCEDUREID = 31 THEN\n" +
  5117. " '釉坯库(一期)'\n" +
  5118. " WHEN TS.PROCEDUREID = 21 THEN\n" +
  5119. //" '釉坯库(二期)'\n" +
  5120. " '釉坯库(一期)'\n" +
  5121. " WHEN TS.PROCEDUREID = 13 AND\n" +
  5122. " TS.Kilnid IN (1, 2) THEN\n" +
  5123. " '窑坯(一期)'\n" +
  5124. " WHEN TS.PROCEDUREID = 13 AND\n" +
  5125. " TS.Kilnid IN (3, 4) THEN\n" +
  5126. //" '窑坯(二期)'\n" +
  5127. " '窑坯(一期)'\n" +
  5128. " ELSE\n" +
  5129. " NULL\n" +
  5130. " END FNAME\n" +
  5131. " FROM TP_PM_PRODUCTIONDATA TS\n" +
  5132. " INNER JOIN TP_MST_GOODS G\n" +
  5133. " ON TS.GOODSID = G.GOODSID\n" +
  5134. " WHERE TS.BACKOUTTIME >= @DATEBEGIN@\n" +
  5135. " AND TS.BACKOUTTIME < @DATEEND@\n" +
  5136. " AND TS.PROCEDUREID IN (28, 24,34, 21, 31)) T\n" + //13 质量登记不能撤销
  5137. " LEFT JOIN TA_IMEX_kingdee_Goodscode K ON T.GOODS_CODE = K.K_NAME AND T.FNAME = K.K_WAREHOUSE\n" +
  5138. " LEFT JOIN TA_IMEX_kingdee_Goodscode K2 ON K2.K_NAME = T.GOODS_CODE2 AND K2.buildingno = K.buildingno\n" +
  5139. // " WHERE (@FNAME_FLAG@ IS NULL OR T.FNAME = @FNAME_FLAG@) \n" +
  5140. " GROUP BY K.K_CODE, K2.K_CODE, T.GOODS_CODE,T.GOODS_CODE2, T.FNAME\n" +
  5141. " )";
  5142. List<CDAParameter> sqlPara = new List<CDAParameter>();
  5143. sqlPara.Add(new CDAParameter("I", i));
  5144. sqlPara.Add(new CDAParameter("YEAR", b));
  5145. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  5146. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  5147. result1 += conn.ExecuteNonQuery(sqlStr2, sqlPara.ToArray());
  5148. }
  5149. conn.Commit();
  5150. }
  5151. catch (Exception ex)
  5152. {
  5153. conn.Rollback();
  5154. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export028生产领料退单结转失败!");
  5155. Curtain.Log.Logger.Error(ex);
  5156. }
  5157. finally
  5158. {
  5159. conn.Close();
  5160. }
  5161. if (result1 > 0)
  5162. {
  5163. Curtain.Log.Logger.Debug(b + "年" + a + "月:export028生产领料退单结转成功!");
  5164. }
  5165. else
  5166. {
  5167. Curtain.Log.Logger.Debug(b + "年" + a + "月:export028生产领料退单结转0条!");
  5168. }
  5169. }
  5170. }
  5171. public static void export029()
  5172. {
  5173. using (IDataAccess conn = DataAccess.Create())
  5174. {
  5175. //2021-08-2 dongyan 修正什么问题
  5176. int result = 0;
  5177. int result1 = 0;
  5178. int m = DateTime.Now.AddMonths(-1).Month;
  5179. DateTime dayBegin = new DateTime();
  5180. DateTime dayEnd = new DateTime();
  5181. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  5182. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  5183. int c = Convert.ToInt32(b + a);
  5184. string dayOut = b + "-" + a + "-" + DateTime.DaysInMonth(Convert.ToInt32(b), m).ToString();
  5185. conn.Open();
  5186. conn.BeginTransaction();
  5187. try
  5188. {
  5189. String sqlStr = @"delete JZ_RPT020_D WHERE FORWARDTIME = @C@";
  5190. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  5191. String Str = @"delete JZ_RPT020_M WHERE FORWARDTIME = @C@";
  5192. conn.ExecuteNonQuery(Str, new CDAParameter("C", c));
  5193. for (int i = m; i <= m; i++)
  5194. {
  5195. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  5196. //dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  5197. dayEnd = dayBegin.AddMonths(1);
  5198. String sqlStr2 = @"INSERT INTO JZ_RPT029 select * from ( SELECT
  5199. '' AS 行号
  5200. ,'' AS 单据号_FBillno
  5201. ,'' AS 单据号_FTrantype
  5202. ,K.K_CODE AS 物料编码_FNumber
  5203. ,T.GOODS_CODE AS 物料编码_FName
  5204. ,'' AS 物料编码_FModel
  5205. ,'' AS 辅助属性_FNumber
  5206. ,'' AS 辅助属性_FName
  5207. ,'*' AS 辅助属性_FClassName
  5208. ,'件' AS 单位_FNumber
  5209. ,'件' AS 单位_FName
  5210. ,SUM(T.DNUM) AS 实收数量
  5211. ,0 AS 单价
  5212. ,0 AS 金额
  5213. ,'' AS 备注
  5214. ,SUM(T.DNUM) AS 基本单位实收数量
  5215. ,'' AS 生产_采购日期
  5216. ,'' AS 有效期至
  5217. ,'' AS 收货仓库_FNumber
  5218. ,T.FNAME AS 收货仓库_FName
  5219. ,NULL AS 仓位_FName
  5220. ,NULL AS 仓位_FGroupName
  5221. ,0 AS 辅助数量
  5222. ,to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  5223. FROM (
  5224. SELECT CASE
  5225. WHEN TS.PROCEDUREID IN (3, 26) THEN
  5226. 'J'
  5227. WHEN TS.PROCEDUREID IN (21, 31) THEN
  5228. 'S'
  5229. ELSE
  5230. 'Y'
  5231. END || G.GOODSMODEL AS GOODS_CODE
  5232. ,-1 AS DNUM
  5233. ,CASE
  5234. WHEN TS.PROCEDUREID = 26 THEN
  5235. '精坯库(一期)'
  5236. WHEN TS.PROCEDUREID = 3 THEN
  5237. '精坯库(一期)'
  5238. WHEN TS.PROCEDUREID = 28 THEN
  5239. '釉坯库(一期)'
  5240. WHEN TS.PROCEDUREID IN( 24,34) THEN
  5241. '釉坯库(一期)'
  5242. WHEN TS.PROCEDUREID = 31 THEN
  5243. '窑坯(一期)'
  5244. WHEN TS.PROCEDUREID = 21 THEN
  5245. '窑坯(一期)'
  5246. ELSE
  5247. NULL
  5248. END FNAME
  5249. FROM TP_PM_PRODUCTIONDATA TS
  5250. INNER JOIN TP_MST_GOODS G
  5251. ON TS.GOODSID = G.GOODSID
  5252. WHERE TS.BACKOUTTIME >= @DATEBEGIN@
  5253. AND TS.BACKOUTTIME < @DATEEND@
  5254. AND TS.PROCEDUREID IN (3, 26, 28, 24,34, 21, 31)
  5255. ) T
  5256. LEFT JOIN TA_IMEX_kingdee_Goodscode K ON T.GOODS_CODE = K.K_NAME AND T.FNAME = K.K_WAREHOUSE
  5257. GROUP BY K.K_CODE, T.GOODS_CODE, T.FNAME)";
  5258. List<CDAParameter> sqlPara = new List<CDAParameter>();
  5259. sqlPara.Add(new CDAParameter("I", i));
  5260. sqlPara.Add(new CDAParameter("YEAR", b));
  5261. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  5262. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  5263. result1 += conn.ExecuteNonQuery(sqlStr2, sqlPara.ToArray());
  5264. ;
  5265. }
  5266. conn.Commit();
  5267. }
  5268. catch (Exception ex)
  5269. {
  5270. conn.Rollback();
  5271. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export029产品入库退单结转失败!");
  5272. Curtain.Log.Logger.Error(ex);
  5273. }
  5274. finally
  5275. {
  5276. conn.Close();
  5277. }
  5278. //if (result > 0 && result1 > 0)
  5279. if (result1 > 0)
  5280. {
  5281. Curtain.Log.Logger.Debug(b + "年" + a + "月:export029产品入库退单结转成功!");
  5282. }
  5283. else
  5284. {
  5285. Curtain.Log.Logger.Debug(b + "年" + a + "月:export029产品入库退单结转0条!");
  5286. }
  5287. }
  5288. }
  5289. public static void export030()
  5290. {
  5291. using (IDataAccess conn = DataAccess.Create())
  5292. {
  5293. try
  5294. {
  5295. conn.Open();
  5296. conn.BeginTransaction();
  5297. //2021-8-4 陈强
  5298. String sqlStrc = @"delete JZ_RPT030 where FORWARDTIME = @c@ ";
  5299. int result = 0;
  5300. int m = DateTime.Now.AddMonths(-1).Month;
  5301. string mouth = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  5302. string year = DateTime.Now.AddMonths(-1).Year.ToString();
  5303. int c = Convert.ToInt32(year + mouth);
  5304. conn.ExecuteNonQuery(sqlStrc, new CDAParameter("c", c));
  5305. DateTime dayBegin = new DateTime();
  5306. DateTime dayEnd = new DateTime();
  5307. DateTime T = DateTime.Now.AddMonths(-1);
  5308. for (int i = m; i <= m; i++)
  5309. {
  5310. dayBegin = Convert.ToDateTime(year + "-" + i.ToString().PadLeft(2, '0') + "-01");
  5311. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  5312. //明细
  5313. String sqlStr1 = @" insert into JZ_RPT030 select * from (
  5314. SELECT to_number(@YEAR@|| lpad(to_char(@I@),2,'0')),
  5315. to_char(rownum) AS 行号
  5316. , TT.* FROM ( SELECT
  5317. '' AS ""单据号_FBillno""
  5318. ,'' AS ""单据号_FTrantype""
  5319. ,K.K_CODE AS ""物料代码_FNumber""
  5320. ,T.GOODS_CODE AS ""物料代码_FName""
  5321. ,'' AS ""物料代码_FModel""
  5322. ,'' AS ""辅助属性_FNumber""
  5323. ,'' AS ""辅助属性_FName""
  5324. ,'*' AS ""辅助属性_FClassName""
  5325. ,0 AS ""基本缺省调拨数量""
  5326. ,0 AS ""基本调入仓库存量""
  5327. ,'' AS ""批号""
  5328. ,'个' AS ""单位_FNumber""
  5329. ,'个' AS ""单位_FName""
  5330. ,0 AS ""缺省调拨数量""
  5331. ,0 AS ""调入仓库存量""
  5332. ,SUM(T.DNUM) AS ""数量""
  5333. ,0 AS ""单位成本""
  5334. ,SUM(T.DNUM) AS ""基本单位数量""
  5335. ,0 AS ""成本""
  5336. ,0 AS ""调拨单价""
  5337. ,0 AS ""调拨金额""
  5338. ,'' AS ""备注""
  5339. ,'' AS ""生产_采购日期""
  5340. ,0 AS ""保质期(天)""
  5341. ,'' AS ""有效期至""
  5342. ,'' AS ""调出仓库_FNumber""
  5343. ,FNAME_OUT AS ""调出仓库_FName""
  5344. ,'' AS ""调出仓位_FName""
  5345. ,'' AS ""调入仓库_FNumber""
  5346. ,FNAME_IN AS ""调入仓库_FName""
  5347. ,0 AS ""辅助数量""
  5348. FROM (SELECT 'J' || G.GOODSMODEL AS GOODS_CODE
  5349. ,1 AS DNUM
  5350. ,CASE
  5351. WHEN TS.PROCEDUREID = 39 THEN
  5352. '精坯库(一期)'
  5353. WHEN TS.PROCEDUREID = 38 THEN
  5354. '精坯库(二期)'
  5355. ELSE
  5356. NULL
  5357. END FNAME_OUT
  5358. ,CASE
  5359. WHEN TS.PROCEDUREID = 39 THEN
  5360. '010'
  5361. WHEN TS.PROCEDUREID = 38 THEN
  5362. '039'
  5363. ELSE
  5364. NULL
  5365. END FNAME_CODE_OUT
  5366. ,CASE
  5367. WHEN TS.PROCEDUREID = 38 THEN
  5368. '精坯库(一期)'
  5369. WHEN TS.PROCEDUREID = 39 THEN
  5370. '精坯库(二期)'
  5371. ELSE
  5372. NULL
  5373. END FNAME_IN
  5374. ,CASE
  5375. WHEN TS.PROCEDUREID = 38 THEN
  5376. '010'
  5377. WHEN TS.PROCEDUREID = 39 THEN
  5378. '039'
  5379. ELSE
  5380. NULL
  5381. END FNAME_CODE_IN
  5382. FROM TP_PM_PRODUCTIONDATA TS
  5383. INNER JOIN TP_MST_GOODS G
  5384. ON TS.GOODSID = G.GOODSID
  5385. WHERE TS.CREATETIME >= @DATEBEGIN@
  5386. AND TS.CREATETIME <= @DATEEND@
  5387. AND TS.PROCEDUREID IN (38,39) ) T
  5388. LEFT JOIN TA_IMEX_kingdee_Goodscode K ON T.GOODS_CODE = K.K_NAME AND T.FNAME_OUT = K.K_WAREHOUSE
  5389. GROUP BY K.K_CODE, T.GOODS_CODE, T.FNAME_OUT, FNAME_CODE_OUT,T.FNAME_IN, FNAME_CODE_IN
  5390. ORDER BY K.K_CODE, T.GOODS_CODE, T.FNAME_OUT ) TT)";
  5391. List<CDAParameter> sqlPara = new List<CDAParameter>();
  5392. sqlPara.Add(new CDAParameter("I", i));
  5393. sqlPara.Add(new CDAParameter("YEAR", year));
  5394. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  5395. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  5396. sqlPara.Add(new CDAParameter("T", T));
  5397. sqlPara.Add(new CDAParameter("D", DateTime.Now.AddDays(1 - DateTime.Now.Day).AddDays(-1)));
  5398. result += conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  5399. }
  5400. conn.Commit();
  5401. if (result > 0)
  5402. {
  5403. Curtain.Log.Logger.Debug(year + "年" + mouth + "月:export030产品调拨单结转成功!");
  5404. }
  5405. else
  5406. {
  5407. Curtain.Log.Logger.Debug(year + "年" + mouth + "月:export030产品调拨单结转0条!");
  5408. }
  5409. }
  5410. catch (Exception ex)
  5411. {
  5412. conn.Rollback();
  5413. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export030产品调拨单结转失败!");
  5414. Curtain.Log.Logger.Error(ex);
  5415. }
  5416. finally
  5417. {
  5418. conn.Close();
  5419. }
  5420. }
  5421. }
  5422. public static void export031()
  5423. {
  5424. using (IDataAccess conn = DataAccess.Create())
  5425. {
  5426. try
  5427. {
  5428. conn.Open();
  5429. conn.BeginTransaction();
  5430. //2021-07-12 dongyan 修正什么问题
  5431. int result = 0;
  5432. int m = DateTime.Now.AddMonths(-1).Month;
  5433. DateTime dayBegin = new DateTime();
  5434. DateTime dayEnd = new DateTime();
  5435. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  5436. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  5437. int c = Convert.ToInt32(b + a);
  5438. String sqlStr = @"delete JZ_RPT031 WHERE FORWARD_TIME = @C@";
  5439. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  5440. for (int i = m; i <= m; i++)
  5441. {
  5442. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  5443. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  5444. String sqlStr1 = @"INSERT INTO JZ_RPT031
  5445. SELECT * FROM
  5446. (SELECT DECODE(T.GROUTINGUSERCODE
  5447. ,NULL
  5448. ,MU.USERNAME || '[合计]'
  5449. ,MU.USERNAME) AS 组别
  5450. ,T.GROUTINGUSERCODE AS 成型工号
  5451. ,T.GOODSCODE AS 产品编码
  5452. ,T.USERCODE AS 生产工号
  5453. ,T.USERNAME AS 姓名
  5454. ,COUNT(distinct T.MPID) AS 回收合格数
  5455. ,'0'AS BUILDINGNO
  5456. ,to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  5457. FROM (SELECT PD.PRODUCTIONDATAID
  5458. ,U.USERCODE
  5459. ,U.USERNAME
  5460. ,PD.GOODSCODE
  5461. ,PD.GROUTINGUSERCODE
  5462. ,PD.GROUTINGLINEID
  5463. ,MIN(MPD.PRODUCTIONDATAID) MPID
  5464. FROM TP_PM_PRODUCTIONDATA PD
  5465. INNER JOIN TP_PM_PRODUCTIONDATA MPD
  5466. ON MPD.BARCODE = PD.BARCODE
  5467. LEFT JOIN TP_PM_PRODUCTIONDATA RPD
  5468. ON RPD.BARCODE = PD.BARCODE
  5469. AND RPD.MODELTYPE = 9
  5470. AND RPD.PRODUCTIONDATAID > PD.PRODUCTIONDATAID
  5471. AND RPD.PRODUCTIONDATAID < MPD.PRODUCTIONDATAID
  5472. INNER JOIN TP_MST_USER U
  5473. ON U.USERID = PD.USERID
  5474. WHERE PD.PROCEDUREID = 37
  5475. AND PD.VALUEFLAG = '1'
  5476. AND PD.CREATETIME >= @DATEBEGIN@
  5477. AND PD.CREATETIME <= @DATEEND@
  5478. AND MPD.PRODUCTIONDATAID > PD.PRODUCTIONDATAID
  5479. AND MPD.MODELTYPE = -1
  5480. AND MPD.VALUEFLAG = '1'
  5481. AND RPD.PRODUCTIONDATAID IS NULL
  5482. GROUP BY PD.PRODUCTIONDATAID
  5483. ,U.USERCODE
  5484. ,U.USERNAME
  5485. ,PD.GOODSCODE
  5486. ,PD.GROUTINGUSERCODE
  5487. ,PD.GROUTINGLINEID) T
  5488. INNER JOIN TP_PM_PRODUCTIONDATA P
  5489. ON P.PRODUCTIONDATAID = T.MPID
  5490. LEFT JOIN TP_PM_DEFECT D
  5491. ON D.PRODUCTIONDATAID = T.MPID
  5492. INNER JOIN TP_PC_GROUTINGLINE GL
  5493. ON GL.GROUTINGLINEID = T.GROUTINGLINEID
  5494. LEFT JOIN TP_MST_USER MU
  5495. ON MU.USERID = GL.MONITORID
  5496. WHERE P.GOODSLEVELTYPEID IN (4, 5)
  5497. AND (GL.BUILDINGNO = '' OR '' IS NULL)
  5498. GROUP BY GROUPING SETS((MU.USERNAME, T.GROUTINGUSERCODE, T.USERCODE, T.USERNAME, T.GOODSCODE,GL.BUILDINGNO),(MU.USERNAME,GL.BUILDINGNO))
  5499. ORDER BY MU.USERNAME, T.GROUTINGUSERCODE) DD WHERE DD .产品编码 IS NOT NULL";
  5500. List<CDAParameter> sqlPara = new List<CDAParameter>();
  5501. sqlPara.Add(new CDAParameter("I", i));
  5502. sqlPara.Add(new CDAParameter("YEAR", b));
  5503. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  5504. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  5505. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  5506. }
  5507. conn.Commit();
  5508. if (result > 0)
  5509. {
  5510. Curtain.Log.Logger.Debug(b + "年" + a + "月:export031堵漏气回收合格汇总表结转成功!");
  5511. }
  5512. else
  5513. {
  5514. Curtain.Log.Logger.Debug(b + "年" + a + "月:export031堵漏气回收合格汇总表结转0条!");
  5515. }
  5516. }
  5517. catch (Exception ex)
  5518. {
  5519. conn.Rollback();
  5520. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export031堵漏气回收合格汇总表结转失败!");
  5521. Curtain.Log.Logger.Error(ex);
  5522. }
  5523. finally
  5524. {
  5525. conn.Close();
  5526. }
  5527. }
  5528. }
  5529. public static void export032()
  5530. {
  5531. using (IDataAccess conn = DataAccess.Create())
  5532. {
  5533. try
  5534. {
  5535. conn.Open();
  5536. conn.BeginTransaction();
  5537. //2021-07-29 陈强
  5538. String sqlStr = @"delete AJZ_RPT032 where FORWARDTIME = @c@";
  5539. int result = 0;
  5540. int m = DateTime.Now.AddMonths(-1).Month;
  5541. string mouth = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  5542. string year = DateTime.Now.AddMonths(-1).Year.ToString();
  5543. int c = Convert.ToInt32(year + mouth);
  5544. string result1 = "";
  5545. conn.ExecuteNonQuery(sqlStr, new CDAParameter("c", c));
  5546. DateTime dayBegin = new DateTime();
  5547. DateTime dayEnd = new DateTime();
  5548. //String[] arr = { "13", "35" };
  5549. for (int i = m; i <= m; i++)
  5550. {
  5551. dayBegin = Convert.ToDateTime(year + "-" + i.ToString().PadLeft(2, '0') + "-01");
  5552. dayEnd = dayBegin.AddMonths(1);
  5553. //for (int a = 0; a < arr.Length; a++)
  5554. //{
  5555. // String s = arr[a];
  5556. // for (int j = 0; j <= 2; j++)
  5557. // {
  5558. // String str = j + "#";
  5559. // for (int b = 0; b <= 4; b++)
  5560. // {
  5561. // String br = b.ToString();
  5562. String sqlStr1 = @" INSERT INTO AJZ_RPT032
  5563. SELECT
  5564. *
  5565. FROM
  5566. (
  5567. SELECT
  5568. DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
  5569. TA.GOODSNAME AS 产品名称,
  5570. DECODE( TA.OUT_K, 0, NULL, TA.OUT_K ) AS 出窑数,
  5571. DECODE( TA.COUNT_U4, 0, NULL, TA.COUNT_U4 ) AS U级,
  5572. DECODE( TA.COUNT_U5 + TA.COUNT_AB, 0, NULL, TA.COUNT_U5 + TA.COUNT_AB ) A级,
  5573. DECODE( TA.COUNT_AA, 0, NULL, TA.COUNT_AA ) AS AA级,
  5574. DECODE( TA.COUNT_B, 0, NULL, TA.COUNT_B ) AS B级,
  5575. DECODE( TA.COUNT_R, 0, NULL, TA.COUNT_R ) AS R级,
  5576. DECODE( TA.COUNT_L, 0, NULL, TA.COUNT_L ) AS L级,
  5577. DECODE(
  5578. TA.COUNT_U7 - TA.COUNT_B + TA.COUNT_H + TA.COUNT_F,
  5579. 0,
  5580. NULL,
  5581. TA.COUNT_U7 - TA.COUNT_B + TA.COUNT_H + TA.COUNT_F
  5582. ) AS F级,
  5583. DECODE( TA.COUNT_Z, 0, NULL, TA.COUNT_Z ) AS Z级,
  5584. CASE
  5585. WHEN TA.OUT_K IS NULL
  5586. OR TA.OUT_K = 0 THEN
  5587. NULL ELSE ROUND( ( TA.COUNT_U4 + TA.COUNT_U5 + TA.COUNT_AB + TA.COUNT_AA ) / TA.OUT_K, 4 ) * 100
  5588. END AS UA率,
  5589. to_number( to_char( @YEAR@ ) || lpad( to_char( @I@), 2, '0' ) ),
  5590. TA.BUILDINGNO ,
  5591. 0 as KILNID,
  5592. TA.PROCEDUREID,
  5593. TD.成型缺陷_糙活,
  5594. TD.成型缺陷_成裂,
  5595. TD.成型缺陷_成脏,
  5596. TD.成型缺陷_成走,
  5597. TD.成型缺陷_孔不良,
  5598. TD.成型缺陷_泥绺,
  5599. TD.成型缺陷_坯脏,
  5600. TD.成型缺陷_注泡,
  5601. TD.成型缺陷_棕眼,
  5602. TD.成型缺陷_合计,
  5603. TD.施釉缺陷_爆釉,
  5604. TD.施釉缺陷_标不良,
  5605. TD.施釉缺陷_脱釉,
  5606. TD.施釉缺陷_釉薄,
  5607. TD.施釉缺陷_釉磕,
  5608. TD.施釉缺陷_釉绺,
  5609. TD.施釉缺陷_釉脏,
  5610. TD.施釉缺陷_釉粘,
  5611. TD.施釉缺陷_釉泡,
  5612. TD.施釉缺陷_合计,
  5613. TD.合计
  5614. FROM
  5615. (
  5616. SELECT
  5617. GROUPING_ID ( T.PROCEDUREID,T.BUILDINGNO,GT.GOODSTYPECODE, G.GOODSCODE ) GID,
  5618. GT.GOODSTYPECODE,
  5619. GT.GOODSTYPENAME,
  5620. G.GOODSCODE,
  5621. G.GOODSNAME,
  5622. T.BUILDINGNO,
  5623. T.PROCEDUREID,
  5624. SUM( T.OUT_K ) OUT_K,
  5625. SUM( CASE WHEN T.H_NUM = 0 AND T.GOODSLEVELTYPEID = 4 THEN OUT_K ELSE 0 END ) COUNT_U4, -- 直接正品
  5626. SUM( CASE WHEN T.H_NUM = 0 AND T.GOODSLEVELTYPEID = 5 THEN OUT_K ELSE 0 END ) COUNT_U5, -- 直接副品
  5627. SUM( CASE WHEN T.H_NUM = 0 AND T.GOODSLEVELTYPEID = 7 THEN OUT_K ELSE 0 END ) COUNT_U7, -- 直接次品
  5628. SUM( CASE WHEN T.H_NUM = 0 AND T.GOODSLEVELTYPEID = 6 AND T.REWORKPROCEDUREID = 19 THEN OUT_K ELSE 0 END ) AS COUNT_R,
  5629. SUM( CASE WHEN T.H_NUM = 0 AND T.GOODSLEVELTYPEID = 6 AND T.REWORKPROCEDUREID = 36 THEN OUT_K ELSE 0 END ) AS COUNT_Z,
  5630. SUM( T.B_NUM ) AS COUNT_B,
  5631. SUM( CASE WHEN T.H_NUM = 1 THEN OUT_K ELSE 0 END ) AS COUNT_H,
  5632. SUM( CASE WHEN RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN - 1 ELSE 0 END ) COUNT_L, -- 冷补、堵漏气检验数 + 研磨+刷洗
  5633. SUM( CASE WHEN T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23 ) THEN 1 ELSE 0 END ) COUNT_AA, -- 冷补合格数
  5634. SUM( CASE WHEN T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 37, 20, 41 ) THEN 1 ELSE 0 END ) COUNT_AB, -- 堵漏气合格数 + 研磨+刷洗
  5635. SUM( CASE WHEN T.GOODSLEVELTYPEID NOT IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN 1 ELSE 0 END ) COUNT_F -- 冷补、堵漏气不合格数 + 研磨+刷洗
  5636. FROM
  5637. (
  5638. SELECT
  5639. PD.PRODUCTIONDATAID,
  5640. NULL MPDID,
  5641. CPD.GOODSLEVELTYPEID,
  5642. PD.GOODSID,
  5643. CPD.REWORKPROCEDUREID,
  5644. CASE WHEN CPD.GOODSLEVELTYPEID = 7 AND COUNT( D.PRODUCTIONDEFECTID ) > 0 THEN 1 ELSE 0 END B_NUM, --B级品
  5645. 1 OUT_K,
  5646. CASE WHEN COUNT( MPD.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_NUM,
  5647. GL.BUILDINGNO as BUILDINGNO,
  5648. pd.PROCEDUREID as PROCEDUREID
  5649. FROM
  5650. TP_PM_PRODUCTIONDATA PD
  5651. INNER JOIN TP_PM_PRODUCTIONDATA CPD ON PD.GROUTINGDAILYDETAILID = CPD.GROUTINGDAILYDETAILID
  5652. AND CPD.CHECKBATCHNO = 1
  5653. AND CPD.KILNCARBATCHNO = PD.KILNCARBATCHNO
  5654. LEFT JOIN TP_PM_PRODUCTIONDATA MPD ON PD.CHECKBATCHNO <> 1
  5655. AND PD.GROUTINGDAILYDETAILID = MPD.GROUTINGDAILYDETAILID
  5656. AND MPD.VALUEFLAG = '1'
  5657. AND MPD.PRODUCTIONDATAID < CPD.PRODUCTIONDATAID
  5658. AND MPD.PRODUCTIONDATAID > PD.PRODUCTIONDATAID
  5659. AND MPD.PROCEDUREMODEL = '1'
  5660. LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = CPD.PRODUCTIONDATAID
  5661. AND D.DEFECTID = 92
  5662. AND D.VALUEFLAG = '1'
  5663. INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
  5664. /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
  5665. --AND MPD.PROCEDUREID IN (20, 22, 23, 37, 41)
  5666. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = PD.GOODSID
  5667. WHERE
  5668. PD.PROCEDUREID IN(13,35)
  5669. AND
  5670. PD.CHECKFLAG = 1
  5671. AND PD.CREATETIME >= @DATEBEGIN@
  5672. AND PD.CREATETIME < @DATEEND@
  5673. -- AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL)
  5674. -- AND (PD.GOODSCODE = @GOODSCODE@ OR @GOODSCODE@ IS NULL)
  5675. -- AND GL.BUILDINGNO = @BUILDINGNO@
  5676. AND G.GOODSTYPEID = 8
  5677. GROUP BY
  5678. PD.PRODUCTIONDATAID,
  5679. CPD.GOODSLEVELTYPEID,
  5680. PD.GOODSID,
  5681. CPD.REWORKPROCEDUREID,
  5682. GL.BUILDINGNO,
  5683. PD.PROCEDUREID
  5684. UNION ALL
  5685. SELECT
  5686. PD.PRODUCTIONDATAID,
  5687. MAX( MPD.PRODUCTIONDATAID ) MPDID,
  5688. PD.GOODSLEVELTYPEID,
  5689. PD.GOODSID,
  5690. PD.REWORKPROCEDUREID,
  5691. 0 B_NUM,
  5692. 0 OUT_K,
  5693. 1 H_NUM,
  5694. GL.BUILDINGNO as BUILDINGNO,
  5695. PD.PROCEDUREID as PROCEDUREID
  5696. FROM
  5697. TP_PM_PRODUCTIONDATA PD
  5698. INNER JOIN TP_PM_PRODUCTIONDATA MPD ON PD.GROUTINGDAILYDETAILID = MPD.GROUTINGDAILYDETAILID
  5699. AND MPD.VALUEFLAG = '1'
  5700. AND MPD.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
  5701. AND MPD.PROCEDUREMODEL = '1'
  5702. INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
  5703. /* 20 研磨 22 直接冷补 23 研磨后冷补(非回收)37 堵漏气 41 刷洗不良 */
  5704. --AND MPD.PROCEDUREID IN (20, 22, 23, 37, 41)
  5705. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = PD.GOODSID
  5706. WHERE
  5707. PD.VALUEFLAG = '1'
  5708. AND PD.PROCEDUREID IN(13,35)
  5709. AND PD.CHECKBATCHNO = 1
  5710. AND PD.CREATETIME >= @DATEBEGIN@
  5711. AND PD.CREATETIME < @DATEEND@
  5712. -- AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL)
  5713. -- AND (PD.GOODSCODE = @GOODSCODE@ OR @GOODSCODE@ IS NULL)
  5714. -- AND GL.BUILDINGNO = @BUILDINGNO@
  5715. AND G.GOODSTYPEID = 8
  5716. GROUP BY
  5717. PD.PRODUCTIONDATAID,
  5718. PD.GOODSLEVELTYPEID,
  5719. PD.GOODSID,
  5720. PD.REWORKPROCEDUREID ,
  5721. GL.BUILDINGNO,
  5722. PD.PROCEDUREID
  5723. ) T
  5724. LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID
  5725. INNER JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
  5726. INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  5727. GROUP BY
  5728. GROUPING SETS ( ( T.BUILDINGNO,T.PROCEDUREID,GT.GOODSTYPECODE, GT.GOODSTYPENAME, G.GOODSCODE, G.GOODSNAME ), ( T.BUILDINGNO,T.PROCEDUREID,GT.GOODSTYPECODE, GT.GOODSTYPENAME ), ( ) )
  5729. ) TA
  5730. LEFT JOIN (
  5731. SELECT
  5732. *
  5733. FROM
  5734. (
  5735. SELECT
  5736. CASE WHEN TT.GID IN ( 12, 13, 15 ) THEN 3 WHEN TT.GID IN ( 4, 5, 7 ) THEN 1 ELSE 0 END AS D_GID,
  5737. TT.GOODSTYPECODE D_GOODSTYPECODE, --,TT.GOODSTYPENAME D_
  5738. TT.GOODSCODE D_GOODSCODE,
  5739. CASE WHEN TT.GID IN ( 1, 5, 13 ) THEN TT.DEFECT || '合计' WHEN TT.GID IN ( 3, 7, 15 ) THEN '合计' ELSE TT.DEFECT END AS DEFECT,
  5740. TT.CNUM,
  5741. TT.BUILDINGNO,
  5742. TT.PROCEDUREID
  5743. FROM
  5744. (
  5745. SELECT
  5746. GROUPING_ID ( L.BUILDINGNO,p.PROCEDUREID,GT.GOODSTYPECODE, G.GOODSCODE, PDP.DEFECTGROUPNAME, M.DEFECTNAME ) AS GID,
  5747. GT.GOODSTYPECODE,
  5748. GT.GOODSTYPENAME,
  5749. G.GOODSCODE,
  5750. PDP.DEFECTGROUPNAME,
  5751. TO_CHAR( PDP.DEFECTGROUPNAME || '_' || M.DEFECTNAME ) AS DEFECT,
  5752. COUNT( * ) AS CNUM,
  5753. L.BUILDINGNO AS BUILDINGNO,
  5754. P.PROCEDUREID AS PROCEDUREID
  5755. FROM
  5756. TP_PM_PRODUCTIONDATA P
  5757. INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
  5758. INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  5759. INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
  5760. INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
  5761. --只取缺陷位置defectpositionid=8 注修工defectjobs=37
  5762. AND D.DEFECTPOSITIONID = 8
  5763. --AND D.DEFECTJOBS = 37
  5764. INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
  5765. LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
  5766. INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '水箱盖%'
  5767. WHERE
  5768. P.VALUEFLAG = '1'
  5769. AND P.PROCEDUREID IN(13,35)
  5770. AND P.CHECKBATCHNO = 1
  5771. AND P.CREATETIME >= @DATEBEGIN@
  5772. AND P.CREATETIME < @DATEEND@
  5773. AND P.GOODSLEVELTYPEID <> 4
  5774. -- AND (P.KILNID = @KILNID@ OR @KILNID@ IS NULL)
  5775. -- AND (P.GOODSCODE = @GOODSCODE@ OR @GOODSCODE@ IS NULL)
  5776. -- AND L.BUILDINGNO = @BUILDINGNO@
  5777. --XUWEI 2020-07-10 ADD
  5778. --AND (NOT D.DEFECTPROCEDUREID IS NULL)
  5779. AND G.GOODSTYPEID = 8
  5780. GROUP BY
  5781. GROUPING SETS (
  5782. ( L.BUILDINGNO,P.PROCEDUREID,GT.GOODSTYPECODE, GT.GOODSTYPENAME, G.GOODSCODE, PDP.DEFECTGROUPNAME, M.DEFECTNAME ),
  5783. ( L.BUILDINGNO,P.PROCEDUREID,GT.GOODSTYPECODE, GT.GOODSTYPENAME, G.GOODSCODE, PDP.DEFECTGROUPNAME ),
  5784. ( L.BUILDINGNO,P.PROCEDUREID,GT.GOODSTYPECODE, GT.GOODSTYPENAME, G.GOODSCODE ),
  5785. ( L.BUILDINGNO,P.PROCEDUREID,GT.GOODSTYPECODE, GT.GOODSTYPENAME, PDP.DEFECTGROUPNAME, M.DEFECTNAME ),
  5786. ( L.BUILDINGNO,P.PROCEDUREID,GT.GOODSTYPECODE, GT.GOODSTYPENAME, PDP.DEFECTGROUPNAME ),
  5787. ( L.BUILDINGNO,P.PROCEDUREID,GT.GOODSTYPECODE, GT.GOODSTYPENAME ),
  5788. ( L.BUILDINGNO,P.PROCEDUREID,PDP.DEFECTGROUPNAME, M.DEFECTNAME ),
  5789. ( L.BUILDINGNO,P.PROCEDUREID,PDP.DEFECTGROUPNAME ),
  5790. ( )
  5791. )
  5792. -- ORDER BY
  5793. -- GT.GOODSTYPECODE,
  5794. -- G.GOODSCODE,
  5795. -- PDP.DEFECTGROUPNAME,
  5796. -- M.DEFECTNAME
  5797. ) TT
  5798. ) PIVOT (
  5799. SUM( CNUM ) FOR DEFECT IN (
  5800. '成型缺陷_糙活' AS 成型缺陷_糙活,
  5801. '成型缺陷_成裂' AS 成型缺陷_成裂,
  5802. '成型缺陷_成脏' AS 成型缺陷_成脏,
  5803. '成型缺陷_成走' AS 成型缺陷_成走,
  5804. '成型缺陷_孔不良' AS 成型缺陷_孔不良,
  5805. '成型缺陷_泥绺' AS 成型缺陷_泥绺,
  5806. '成型缺陷_坯脏' AS 成型缺陷_坯脏,
  5807. '成型缺陷_注泡' AS 成型缺陷_注泡,
  5808. '成型缺陷_棕眼' AS 成型缺陷_棕眼,
  5809. '成型缺陷_合计' AS 成型缺陷_合计,
  5810. '施釉缺陷_爆釉' AS 施釉缺陷_爆釉,
  5811. '施釉缺陷_标不良' AS 施釉缺陷_标不良,
  5812. '施釉缺陷_脱釉' AS 施釉缺陷_脱釉,
  5813. '施釉缺陷_釉薄' AS 施釉缺陷_釉薄,
  5814. '施釉缺陷_釉磕' AS 施釉缺陷_釉磕,
  5815. '施釉缺陷_釉绺' AS 施釉缺陷_釉绺,
  5816. '施釉缺陷_釉脏' AS 施釉缺陷_釉脏,
  5817. '施釉缺陷_釉粘' AS 施釉缺陷_釉粘,
  5818. '施釉缺陷_釉泡' AS 施釉缺陷_釉泡,
  5819. '施釉缺陷_合计' AS 施釉缺陷_合计,
  5820. '合计' AS 合计
  5821. )
  5822. )
  5823. ) TD ON TA.GID = TD.D_GID
  5824. AND TA.BUILDINGNO = TD.BUILDINGNO
  5825. AND TA.PROCEDUREID = TD.PROCEDUREID
  5826. AND
  5827. (
  5828. ( TA.GID = 0 AND TA.GOODSTYPECODE = TD.D_GOODSTYPECODE AND TA.GOODSCODE = TD.D_GOODSCODE )
  5829. OR ( TA.GID = 1 AND TA.GOODSTYPECODE = TD.D_GOODSTYPECODE )
  5830. OR ( TA.GID = 3 )
  5831. )
  5832. ) t
  5833. WHERE
  5834. t.产品名称 IS NOT NULL";
  5835. List<CDAParameter> sqlPara = new List<CDAParameter>();
  5836. sqlPara.Add(new CDAParameter("I", i));
  5837. sqlPara.Add(new CDAParameter("YEAR", year));
  5838. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  5839. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  5840. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  5841. // }
  5842. //}
  5843. // }
  5844. }
  5845. conn.Commit();
  5846. if (result > 0)
  5847. {
  5848. Curtain.Log.Logger.Debug(year + "年" + mouth + "月:export032水箱盖每窑质量统计表结转成功!");
  5849. }
  5850. else
  5851. {
  5852. Curtain.Log.Logger.Debug(year + "年" + mouth + "月:export032水箱盖每窑质量统计表结转0条!");
  5853. }
  5854. }
  5855. catch (Exception ex)
  5856. {
  5857. conn.Rollback();
  5858. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export032水箱盖每窑质量统计表结转失败!");
  5859. Curtain.Log.Logger.Error(ex);
  5860. }
  5861. finally
  5862. {
  5863. conn.Close();
  5864. }
  5865. }
  5866. }
  5867. public static void export033()
  5868. {
  5869. using (IDataAccess conn = DataAccess.Create())
  5870. {
  5871. try
  5872. {
  5873. conn.Open();
  5874. conn.BeginTransaction();
  5875. //2021-07-12 dongyan 修正什么问题
  5876. int result = 0;
  5877. int m = DateTime.Now.AddMonths(-1).Month; ;
  5878. DateTime dayBegin = new DateTime();
  5879. DateTime dayEnd = new DateTime();
  5880. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  5881. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  5882. int c = Convert.ToInt32(b + a);
  5883. String sqlStr = @"delete AJZ_RPT033 WHERE FORWARD_TIME = @C@";
  5884. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  5885. for (int i = m; i <= m; i++)
  5886. {
  5887. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  5888. dayEnd = dayBegin.AddMonths(1);
  5889. String sqlStr1 = @" INSERT INTO AJZ_RPT033 SELECT
  5890. 工号,
  5891. 工种,
  5892. 姓名,
  5893. FORWARD_TIME,
  5894. 挂座,
  5895. 座便,
  5896. 连体,
  5897. 水箱,
  5898. 盆,
  5899. 柱,
  5900. 合计
  5901. FROM
  5902. (
  5903. SELECT
  5904. DECODE( GID, 14, '[合计]', 15, '[合计]',工号 ) AS 工号,
  5905. 工种,
  5906. 姓名,
  5907. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0')) as FORWARD_TIME,
  5908. DECODE( GID, 1, '合计', 15, '合计',产品 ) AS 产品,
  5909. 数量 as 数量
  5910. FROM
  5911. (
  5912. SELECT
  5913. GROUPING_ID ( U.USERCODE, H.STAFFNAME, J.JOBSNAME, T.GOODSTYPENAME ) AS GID,
  5914. U.USERCODE AS 工号,
  5915. J.JOBSNAME AS 工种,
  5916. H.STAFFNAME AS 姓名,
  5917. T.GOODSTYPENAME AS 产品,
  5918. COUNT( * ) AS 数量
  5919. FROM
  5920. TP_PM_PRODUCTIONDATA P
  5921. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
  5922. INNER JOIN TP_MST_GOODSTYPE T ON T.GOODSTYPEID = G.GOODSTYPEID
  5923. AND ( T.GOODSTYPEID NOT IN ( 9, 11 ) )
  5924. LEFT JOIN TP_PC_CLASSESDETAIL C ON C.CLASSESSETTINGID = P.CLASSESSETTINGID
  5925. LEFT JOIN TP_MST_USER U ON U.USERID = C.USERID
  5926. LEFT JOIN TP_HR_STAFF H ON H.STAFFID = C.STAFFID
  5927. INNER JOIN TP_MST_JOBS J ON J.JOBSID = C.UJOBSID
  5928. WHERE
  5929. P.VALUEFLAG = '1'
  5930. AND PROCEDUREID = 15
  5931. AND P.CREATETIME >= @DATEBEGIN@
  5932. AND P.CREATETIME < @DATEEND@
  5933. GROUP BY
  5934. GROUPING SETS (
  5935. ( U.USERCODE, H.STAFFNAME, J.JOBSNAME, T.GOODSTYPENAME ),
  5936. ( U.USERCODE, H.STAFFNAME, J.JOBSNAME ),
  5937. ( T.GOODSTYPENAME ),
  5938. ( )
  5939. )
  5940. )
  5941. ) PIVOT (
  5942. SUM( 数量 ) FOR 产品 IN ( '挂座' AS 挂座, '座' AS 座便, '连体' AS 连体, '箱' AS 水箱, '盆' AS 盆, '柱' AS 柱, '合计' AS 合计 )
  5943. ) ";
  5944. List<CDAParameter> sqlPara = new List<CDAParameter>();
  5945. sqlPara.Add(new CDAParameter("I", i));
  5946. sqlPara.Add(new CDAParameter("YEAR", b));
  5947. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  5948. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  5949. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  5950. }
  5951. conn.Commit();
  5952. if (result > 0)
  5953. {
  5954. Curtain.Log.Logger.Debug(b + "年" + a + "月:export033包装入仓产量统计表结转成功!");
  5955. }
  5956. else
  5957. {
  5958. Curtain.Log.Logger.Debug(b + "年" + a + "月:export033包装入仓产量统计表结转0条!");
  5959. }
  5960. }
  5961. catch (Exception ex)
  5962. {
  5963. conn.Rollback();
  5964. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export033包装入仓产量统计表结转失败!");
  5965. Curtain.Log.Logger.Error(ex);
  5966. }
  5967. finally
  5968. {
  5969. conn.Close();
  5970. }
  5971. }
  5972. }
  5973. public static void export034()
  5974. {
  5975. using (IDataAccess conn = DataAccess.Create())
  5976. {
  5977. try
  5978. {
  5979. conn.Open();
  5980. conn.BeginTransaction();
  5981. //2021-07-12 dongyan 修正什么问题
  5982. int result = 0;
  5983. int result2 = 0;
  5984. int m = DateTime.Now.AddMonths(-1).Month; ;
  5985. DateTime dayBegin = new DateTime();
  5986. DateTime dayEnd = new DateTime();
  5987. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  5988. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  5989. int c = Convert.ToInt32(b + a);
  5990. String sqlStr = @"delete AJZ_RPT034 WHERE FORWARDTIME = @C@";
  5991. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  5992. for (int i = m; i <= m; i++)
  5993. {
  5994. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  5995. dayEnd = dayBegin.AddMonths(1);
  5996. String sqlStr1 = @"
  5997. INSERT INTO AJZ_RPT034 SELECT
  5998. P1.工号,
  5999. P1.姓名,
  6000. P1.产品,
  6001. P1.日期,
  6002. P1.出窑数量,
  6003. NVL(P2.缺陷数量s,0) AS 缺陷数量,
  6004. ROUND( NVL(P2.缺陷数量s,0)/ DECODE( P1.出窑数量 , 0, 1,P1.出窑数量 ), 4 ) * 100 || '%' AS 缺陷率,
  6005. '1#' AS BUILDINGNO,
  6006. '0' AS USERCODE1,
  6007. '0' AS STAFFNAME1,
  6008. '0' AS CHECKTIME1,
  6009. '0' AS GOODSNAME1,
  6010. 0 AS QX_COUNT1,
  6011. P2.合格数_上坯工,
  6012. P2.合格数_擦坯工,
  6013. P2.合格数_施釉工,
  6014. P2.合格数_找枪工,
  6015. P2.合格数_擦釉工,
  6016. P2.合格数_检修工,
  6017. P2.合格数_刷氯化镁,
  6018. P2.合格数_巡检工,
  6019. P2.合格数_下坯工,
  6020. P2.合格数_循环线施釉,
  6021. P2.合格数_循环线擦坯,
  6022. P2.合格数_合计,
  6023. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  6024. FROM
  6025. (
  6026. SELECT
  6027. U.USERCODE AS 工号,
  6028. H.STAFFNAME AS 姓名,
  6029. P.GOODSNAME AS 产品,
  6030. TO_CHAR( TRUNC( P.CHECKTIME ), 'YYYY-MM-DD' ) AS 日期,
  6031. COUNT( * ) AS 出窑数量
  6032. FROM
  6033. TP_PM_PRODUCTIONDATA P
  6034. INNER JOIN TP_PM_PRODUCTIONDATA XHX ON XHX.BARCODE = P.BARCODE
  6035. AND XHX.PROCEDUREID = 33
  6036. AND XHX.VALUEFLAG = '1'
  6037. LEFT JOIN TP_PC_CLASSESDETAIL C ON C.CLASSESSETTINGID = XHX.CLASSESSETTINGID
  6038. LEFT JOIN TP_MST_USER U ON U.USERID = C.USERID
  6039. LEFT JOIN TP_HR_STAFF H ON H.STAFFID = C.STAFFID
  6040. INNER JOIN TP_MST_JOBS J ON J.JOBSID = C.UJOBSID
  6041. AND J.JOBSID IN ( 59, 43, 42, 62, 63, 71, 73, 70, 60, 67, 68 )
  6042. WHERE
  6043. P.VALUEFLAG = '1'
  6044. AND P.PROCEDUREID = 13
  6045. AND P.CHECKBATCHNO = '1'
  6046. AND P.CHECKTIME >= @DATEBEGIN@
  6047. AND P.CHECKTIME < @DATEEND@
  6048. GROUP BY
  6049. U.USERCODE,
  6050. H.STAFFNAME,
  6051. P.GOODSNAME,
  6052. TRUNC( P.CHECKTIME )
  6053. ) P1
  6054. LEFT JOIN (
  6055. SELECT
  6056. *
  6057. FROM
  6058. (
  6059. SELECT--GID,
  6060. 工号 AS 工号s,
  6061. DECODE( GID, 6, 姓名 || '[合计]', 7, 姓名 || '[合计]', 姓名 ) AS 姓名s,
  6062. TO_CHAR( 日期, 'YYYY-MM-DD' ) AS 日期s,
  6063. DECODE( GID, 1, '合计', 7, '合计', 工种 ) AS 工种,
  6064. 产品 AS 产品s,
  6065. 合格数量,
  6066. 缺陷数量 AS 缺陷数量s
  6067. FROM
  6068. (
  6069. SELECT
  6070. GROUPING_ID ( U.USERCODE, H.STAFFNAME, TRUNC( P.CHECKTIME ), P.GOODSNAME, J.JOBSNAME ) AS GID,
  6071. U.USERCODE AS 工号,
  6072. H.STAFFNAME AS 姓名,
  6073. TRUNC( P.CHECKTIME ) AS 日期,
  6074. J.JOBSNAME AS 工种,
  6075. P.GOODSNAME AS 产品,
  6076. SUM( CASE WHEN P.GOODSLEVELTYPEID IN ( 4, 5 ) OR D.DEFECTPROCEDUREID <> 16 THEN 1 ELSE 0 END ) AS 合格数量,
  6077. SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN ( 4, 5 ) AND D.DEFECTPROCEDUREID = 16 THEN 1 ELSE 0 END ) AS 缺陷数量
  6078. FROM
  6079. TP_PM_PRODUCTIONDATA P
  6080. INNER JOIN TP_PM_PRODUCTIONDATA XHX ON XHX.BARCODE = P.BARCODE
  6081. AND XHX.PROCEDUREID = 33
  6082. AND XHX.VALUEFLAG = '1'
  6083. LEFT JOIN TP_PC_CLASSESDETAIL C ON C.CLASSESSETTINGID = XHX.CLASSESSETTINGID
  6084. LEFT JOIN TP_MST_USER U ON U.USERID = C.USERID
  6085. LEFT JOIN TP_HR_STAFF H ON H.STAFFID = C.STAFFID
  6086. INNER JOIN TP_MST_JOBS J ON J.JOBSID = C.UJOBSID
  6087. AND J.JOBSID IN ( 59, 43, 42, 62, 63, 71, 73, 70, 60, 67, 68 )
  6088. LEFT JOIN (
  6089. SELECT
  6090. PRODUCTIONDATAID,
  6091. DEFECTPROCEDUREID
  6092. FROM
  6093. TP_PM_DEFECT D
  6094. WHERE
  6095. PRODUCTIONDEFECTID IN ( SELECT MAX( PRODUCTIONDEFECTID ) FROM TP_PM_DEFECT T WHERE T.PRODUCTIONDATAID = D.PRODUCTIONDATAID )
  6096. ) D ON D.PRODUCTIONDATAID = P.PRODUCTIONDATAID
  6097. WHERE
  6098. P.VALUEFLAG = '1'
  6099. AND P.PROCEDUREID = 13
  6100. AND P.CHECKBATCHNO = '1'
  6101. AND P.CHECKTIME >= @DATEBEGIN@
  6102. AND P.CHECKTIME < @DATEEND@
  6103. GROUP BY
  6104. GROUPING SETS (
  6105. ( U.USERCODE, H.STAFFNAME, TRUNC( P.CHECKTIME ), P.GOODSNAME, J.JOBSNAME ),
  6106. ( U.USERCODE, H.STAFFNAME, TRUNC( P.CHECKTIME ), P.GOODSNAME ),
  6107. ( U.USERCODE, H.STAFFNAME, J.JOBSNAME ),
  6108. ( U.USERCODE, H.STAFFNAME )
  6109. )
  6110. )
  6111. ) PIVOT (
  6112. SUM( 合格数量 ) FOR 工种 IN (
  6113. '上坯工' AS 合格数_上坯工,
  6114. '擦坯工' AS 合格数_擦坯工,
  6115. '施釉工' AS 合格数_施釉工,
  6116. '找枪工' AS 合格数_找枪工,
  6117. '擦釉工' AS 合格数_擦釉工,
  6118. '检修工' AS 合格数_检修工,
  6119. '刷氯化镁' AS 合格数_刷氯化镁,
  6120. '巡检工' AS 合格数_巡检工,
  6121. '下坯工' AS 合格数_下坯工,
  6122. '循环线施釉' AS 合格数_循环线施釉,
  6123. '循环线擦坯' AS 合格数_循环线擦坯,
  6124. '合计' AS 合格数_合计
  6125. )
  6126. )
  6127. ORDER BY
  6128. 工号s,姓名s
  6129. ) P2 ON P1.工号 = P2.工号s
  6130. AND P1.姓名 = P2.姓名s
  6131. AND P1.产品 = P2.产品s
  6132. AND P1.日期 = P2.日期s
  6133. ";
  6134. String sqlStr2 = @"
  6135. INSERT INTO AJZ_RPT034 SELECT
  6136. P1.工号,
  6137. P1.姓名,
  6138. P1.产品,
  6139. P1.日期,
  6140. P1.出窑数量,
  6141. NVL(P2.缺陷数量s,0) AS 缺陷数量,
  6142. ROUND( NVL(P2.缺陷数量s,0)/ DECODE( P1.出窑数量 , 0, 1,P1.出窑数量 ), 4 ) * 100 || '%' AS 缺陷率,
  6143. '2#' AS BUILDINGNO,
  6144. '0' AS USERCODE1,
  6145. '0' AS STAFFNAME1,
  6146. '0' AS CHECKTIME1,
  6147. '0' AS GOODSNAME1,
  6148. 0 AS QX_COUNT1,
  6149. P2.合格数_上坯工,
  6150. P2.合格数_擦坯工,
  6151. P2.合格数_施釉工,
  6152. P2.合格数_找枪工,
  6153. P2.合格数_擦釉工,
  6154. P2.合格数_检修工,
  6155. P2.合格数_刷氯化镁,
  6156. P2.合格数_巡检工,
  6157. P2.合格数_下坯工,
  6158. P2.合格数_循环线施釉,
  6159. P2.合格数_循环线擦坯,
  6160. P2.合格数_合计,
  6161. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  6162. FROM
  6163. (
  6164. SELECT
  6165. U.USERCODE AS 工号,
  6166. H.STAFFNAME AS 姓名,
  6167. P.GOODSNAME AS 产品,
  6168. TO_CHAR( TRUNC( P.CHECKTIME ), 'YYYY-MM-DD' ) AS 日期,
  6169. COUNT( * ) AS 出窑数量
  6170. FROM
  6171. TP_PM_PRODUCTIONDATA P
  6172. INNER JOIN TP_PM_PRODUCTIONDATA XHX ON XHX.BARCODE = P.BARCODE
  6173. AND XHX.PROCEDUREID = 16
  6174. AND XHX.VALUEFLAG = '1'
  6175. LEFT JOIN TP_PC_CLASSESDETAIL C ON C.CLASSESSETTINGID = XHX.CLASSESSETTINGID
  6176. LEFT JOIN TP_MST_USER U ON U.USERID = C.USERID
  6177. LEFT JOIN TP_HR_STAFF H ON H.STAFFID = C.STAFFID
  6178. INNER JOIN TP_MST_JOBS J ON J.JOBSID = C.UJOBSID
  6179. AND J.JOBSID IN ( 59, 43, 42, 62, 63, 71, 73, 70, 60, 67, 68 )
  6180. WHERE
  6181. P.VALUEFLAG = '1'
  6182. AND P.PROCEDUREID = 13
  6183. AND P.CHECKBATCHNO = '1'
  6184. AND P.CHECKTIME >= @DATEBEGIN@
  6185. AND P.CHECKTIME < @DATEEND@
  6186. GROUP BY
  6187. U.USERCODE,
  6188. H.STAFFNAME,
  6189. P.GOODSNAME,
  6190. TRUNC( P.CHECKTIME )
  6191. ) P1
  6192. LEFT JOIN (
  6193. SELECT
  6194. *
  6195. FROM
  6196. (
  6197. SELECT--GID,
  6198. 工号 AS 工号s,
  6199. DECODE( GID, 6, 姓名 || '[合计]', 7, 姓名 || '[合计]', 姓名 ) AS 姓名s,
  6200. TO_CHAR( 日期, 'YYYY-MM-DD' ) AS 日期s,
  6201. DECODE( GID, 1, '合计', 7, '合计', 工种 ) AS 工种,
  6202. 产品 AS 产品s,
  6203. 合格数量,
  6204. 缺陷数量 AS 缺陷数量s
  6205. FROM
  6206. (
  6207. SELECT
  6208. GROUPING_ID ( U.USERCODE, H.STAFFNAME, TRUNC( P.CHECKTIME ), P.GOODSNAME, J.JOBSNAME ) AS GID,
  6209. U.USERCODE AS 工号,
  6210. H.STAFFNAME AS 姓名,
  6211. TRUNC( P.CHECKTIME ) AS 日期,
  6212. J.JOBSNAME AS 工种,
  6213. P.GOODSNAME AS 产品,
  6214. SUM( CASE WHEN P.GOODSLEVELTYPEID IN ( 4, 5 ) OR D.DEFECTPROCEDUREID <> 16 THEN 1 ELSE 0 END ) AS 合格数量,
  6215. SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN ( 4, 5 ) AND D.DEFECTPROCEDUREID = 16 THEN 1 ELSE 0 END ) AS 缺陷数量
  6216. FROM
  6217. TP_PM_PRODUCTIONDATA P
  6218. INNER JOIN TP_PM_PRODUCTIONDATA XHX ON XHX.BARCODE = P.BARCODE
  6219. AND XHX.PROCEDUREID = 16
  6220. AND XHX.VALUEFLAG = '1'
  6221. LEFT JOIN TP_PC_CLASSESDETAIL C ON C.CLASSESSETTINGID = XHX.CLASSESSETTINGID
  6222. LEFT JOIN TP_MST_USER U ON U.USERID = C.USERID
  6223. LEFT JOIN TP_HR_STAFF H ON H.STAFFID = C.STAFFID
  6224. INNER JOIN TP_MST_JOBS J ON J.JOBSID = C.UJOBSID
  6225. AND J.JOBSID IN ( 59, 43, 42, 62, 63, 71, 73, 70, 60, 67, 68 )
  6226. LEFT JOIN (
  6227. SELECT
  6228. PRODUCTIONDATAID,
  6229. DEFECTPROCEDUREID
  6230. FROM
  6231. TP_PM_DEFECT D
  6232. WHERE
  6233. PRODUCTIONDEFECTID IN ( SELECT MAX( PRODUCTIONDEFECTID ) FROM TP_PM_DEFECT T WHERE T.PRODUCTIONDATAID = D.PRODUCTIONDATAID )
  6234. ) D ON D.PRODUCTIONDATAID = P.PRODUCTIONDATAID
  6235. WHERE
  6236. P.VALUEFLAG = '1'
  6237. AND P.PROCEDUREID = 13
  6238. AND P.CHECKBATCHNO = '1'
  6239. AND P.CHECKTIME >= @DATEBEGIN@
  6240. AND P.CHECKTIME < @DATEEND@
  6241. GROUP BY
  6242. GROUPING SETS (
  6243. ( U.USERCODE, H.STAFFNAME, TRUNC( P.CHECKTIME ), P.GOODSNAME, J.JOBSNAME ),
  6244. ( U.USERCODE, H.STAFFNAME, TRUNC( P.CHECKTIME ), P.GOODSNAME ),
  6245. ( U.USERCODE, H.STAFFNAME, J.JOBSNAME ),
  6246. ( U.USERCODE, H.STAFFNAME )
  6247. )
  6248. )
  6249. ) PIVOT (
  6250. SUM( 合格数量 ) FOR 工种 IN (
  6251. '上坯工' AS 合格数_上坯工,
  6252. '擦坯工' AS 合格数_擦坯工,
  6253. '施釉工' AS 合格数_施釉工,
  6254. '找枪工' AS 合格数_找枪工,
  6255. '擦釉工' AS 合格数_擦釉工,
  6256. '检修工' AS 合格数_检修工,
  6257. '刷氯化镁' AS 合格数_刷氯化镁,
  6258. '巡检工' AS 合格数_巡检工,
  6259. '下坯工' AS 合格数_下坯工,
  6260. '循环线施釉' AS 合格数_循环线施釉,
  6261. '循环线擦坯' AS 合格数_循环线擦坯,
  6262. '合计' AS 合格数_合计
  6263. )
  6264. )
  6265. ORDER BY
  6266. 工号s,姓名s
  6267. ) P2 ON P1.工号 = P2.工号s
  6268. AND P1.姓名 = P2.姓名s
  6269. AND P1.产品 = P2.产品s
  6270. AND P1.日期 = P2.日期s
  6271. ";
  6272. List<CDAParameter> sqlPara = new List<CDAParameter>();
  6273. sqlPara.Add(new CDAParameter("I", i));
  6274. sqlPara.Add(new CDAParameter("YEAR", b));
  6275. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  6276. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  6277. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  6278. result2 = conn.ExecuteNonQuery(sqlStr2, sqlPara.ToArray());
  6279. }
  6280. conn.Commit();
  6281. if (result > 0 && result2 > 0)
  6282. {
  6283. Curtain.Log.Logger.Debug(b + "年" + a + "月:export034循环线产量统计表结转成功!");
  6284. }
  6285. else
  6286. {
  6287. Curtain.Log.Logger.Debug(b + "年" + a + "月:export034循环线产量统计表结转0条!");
  6288. }
  6289. }
  6290. catch (Exception ex)
  6291. {
  6292. conn.Rollback();
  6293. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export034循环线产量统计表结转失败!");
  6294. Curtain.Log.Logger.Error(ex);
  6295. }
  6296. finally
  6297. {
  6298. conn.Close();
  6299. }
  6300. }
  6301. }
  6302. public static void export035()
  6303. {
  6304. using (IDataAccess conn = DataAccess.Create())
  6305. {
  6306. try
  6307. {
  6308. conn.Open();
  6309. conn.BeginTransaction();
  6310. //2021-07-12 dongyan 修正什么问题
  6311. int result = 0;
  6312. int result1 = 0;
  6313. int result2 = 0;
  6314. int result3 = 0;
  6315. int result4 = 0;
  6316. int result5 = 0;
  6317. int m = DateTime.Now.AddMonths(-1).Month;
  6318. DateTime dayBegin = new DateTime();
  6319. DateTime dayEnd = new DateTime();
  6320. string a = DateTime.Now.AddMonths(-1).Month.ToString().PadLeft(2, '0');
  6321. string b = DateTime.Now.AddMonths(-1).Year.ToString();
  6322. int c = Convert.ToInt32(b + a);
  6323. String sqlStr = @"delete JZ_RPT035_01 WHERE FORWARD_TIME = @C@";
  6324. conn.ExecuteNonQuery(sqlStr, new CDAParameter("C", c));
  6325. String Str1 = @"delete JZ_RPT035_02 WHERE FORWARD_TIME = @C@";
  6326. conn.ExecuteNonQuery(Str1, new CDAParameter("C", c));
  6327. String Str2 = @"delete JZ_RPT035_03 WHERE FORWARD_TIME = @C@";
  6328. conn.ExecuteNonQuery(Str2, new CDAParameter("C", c));
  6329. String Str3 = @"delete JZ_RPT035_04 WHERE FORWARD_TIME = @C@";
  6330. conn.ExecuteNonQuery(Str3, new CDAParameter("C", c));
  6331. String Str4 = @"delete JZ_RPT035_05 WHERE FORWARD_TIME = @C@";
  6332. conn.ExecuteNonQuery(Str4, new CDAParameter("C", c));
  6333. String Str5 = @"delete JZ_RPT035_06 WHERE FORWARD_TIME = @C@";
  6334. conn.ExecuteNonQuery(Str5, new CDAParameter("C", c));
  6335. for (int i = m; i <= m; i++)
  6336. {
  6337. dayBegin = Convert.ToDateTime(b + "-" + i.ToString().PadLeft(2, '0') + "-01");
  6338. dayEnd = dayBegin.AddMonths(1).AddMilliseconds(-1);
  6339. String sqlStr1 = @" INSERT INTO JZ_RPT035_01
  6340. SELECT
  6341. sys_guid(),
  6342. USERCODE_CHECK_FRONT ,
  6343. OUT_COUNT ,
  6344. PROCEDUREID_CHECK_FRONT ,
  6345. USERCODE_FRONT ,
  6346. GOODSNAME_FRONT ,
  6347. GOODSNAME_BEHIND ,
  6348. USERCODE_BEHIND ,
  6349. PROCEDUREID_CHECK_BEHIND ,
  6350. USERCODE_CHECK_BEHIND ,
  6351. CNUM1 ,
  6352. CNUM2 ,
  6353. CNUM3 ,
  6354. CNUM4 ,
  6355. CNUM5 ,
  6356. CNUM6 ,
  6357. CNUM7 ,
  6358. CNUM8 ,
  6359. CNUM9 ,
  6360. CNUM10 ,
  6361. CNUM11 ,
  6362. C_COUNT ,
  6363. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  6364. FROM(SELECT
  6365. CY.*,
  6366. QX.*
  6367. FROM
  6368. (
  6369. SELECT
  6370. --GROUPING_ID(P.GOODSNAME,U.USERCODE) AS GID,
  6371. DECODE( GROUPING_ID ( P.GOODSNAME, U.USERCODE ), 3, '[合计]', P.GOODSNAME ) AS GOODSNAME_FRONT,
  6372. U.USERCODE AS USERCODE_FRONT,
  6373. COUNT( * ) AS OUT_COUNT,
  6374. P.PROCEDUREID AS PROCEDUREID_CHECK_FRONT,
  6375. P.USERCODE AS USERCODE_CHECK_FRONT
  6376. FROM
  6377. TP_PM_PRODUCTIONDATA P
  6378. INNER JOIN TP_PM_PRODUCTIONDATA U ON U.BARCODE = P.BARCODE
  6379. AND U.VALUEFLAG = '1'
  6380. AND U.PROCEDUREID IN ( 25,2 )
  6381. WHERE
  6382. P.CHECKFLAG = 1
  6383. AND P.CREATETIME >= @DATEBEGIN@
  6384. AND P.CREATETIME <= @DATEEND@
  6385. GROUP BY
  6386. GROUPING SETS ( ( P.GOODSNAME, U.USERCODE,P.PROCEDUREID,P.USERCODE ), (P.PROCEDUREID,P.USERCODE) )
  6387. ) CY
  6388. LEFT JOIN (
  6389. SELECT
  6390. *
  6391. FROM
  6392. (
  6393. SELECT
  6394. DECODE( GID, 14, '[合计]', 15, '[合计]',产品 ) AS GOODSNAME_BEHIND,
  6395. 工号 AS USERCODE_BEHIND,
  6396. DECODE( GID, 3, '合计', 15, '合计',缺陷名称 ) 缺陷名称,
  6397. 缺陷数 ,
  6398. pro AS PROCEDUREID_CHECK_BEHIND,
  6399. us AS USERCODE_CHECK_BEHIND
  6400. FROM
  6401. (
  6402. SELECT
  6403. GROUPING_ID ( P.GOODSNAME, U.USERCODE, D.DEFECTPROCEDUREID, D.DEFECTNAME ) AS GID,
  6404. P.GOODSNAME AS 产品,
  6405. U.USERCODE AS 工号,
  6406. D.DEFECTPROCEDUREID AS 责任工序,
  6407. D.DEFECTNAME AS 缺陷名称,
  6408. COUNT( * ) AS 缺陷数 ,
  6409. P.PROCEDUREID AS pro,
  6410. P.USERCODE AS us
  6411. FROM
  6412. TP_PM_PRODUCTIONDATA P
  6413. LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = P.PRODUCTIONDATAID
  6414. INNER JOIN TP_MST_DEFECTGROUP G ON INSTR( G.DEFECTGROUPTYPE, '大帐' ) = 1
  6415. AND G.DEFECTGROUPNAME = '成型缺陷'
  6416. AND D.DEFECTID = G.DEFECTID
  6417. AND ( D.DEFECTPROCEDUREID IN ( 25,2 ) )
  6418. INNER JOIN TP_PM_PRODUCTIONDATA U ON U.BARCODE = P.BARCODE
  6419. AND U.VALUEFLAG = '1'
  6420. AND ( U.PROCEDUREID IN ( 25,2 ) )
  6421. WHERE
  6422. P.VALUEFLAG = '1'
  6423. AND P.CREATETIME >= @DATEBEGIN@
  6424. AND P.CREATETIME <= @DATEEND@
  6425. GROUP BY
  6426. GROUPING SETS (
  6427. ( P.GOODSNAME, U.USERCODE, D.DEFECTPROCEDUREID, D.DEFECTNAME , P.PROCEDUREID ,P.USERCODE),
  6428. ( P.GOODSNAME, U.USERCODE, P.PROCEDUREID ,P.USERCODE ),
  6429. ( D.DEFECTNAME, P.PROCEDUREID ,P.USERCODE ),
  6430. ( P.PROCEDUREID ,P.USERCODE )
  6431. )
  6432. )
  6433. ) PIVOT (
  6434. SUM( 缺陷数 ) FOR 缺陷名称 IN (
  6435. '成裂' AS CNUM1,'棕眼' AS CNUM2,'糙活' AS CNUM3,'成脏' AS CNUM4,'成走' AS CNUM5,'注泡' AS CNUM6,'坯脏' AS CNUM7,'孔不良' AS CNUM8,'排水不良' AS CNUM9,'泥绺' AS CNUM10,'漏气' AS CNUM11,'合计' AS C_COUNT
  6436. )
  6437. )
  6438. ) QX ON CY.GOODSNAME_FRONT = QX.GOODSNAME_BEHIND
  6439. AND ( CY.USERCODE_FRONT = QX.USERCODE_BEHIND OR CY.USERCODE_FRONT IS NULL )
  6440. AND CY.PROCEDUREID_CHECK_FRONT = QX.PROCEDUREID_CHECK_BEHIND And CY.USERCODE_CHECK_FRONT = QX.USERCODE_CHECK_BEHIND
  6441. )
  6442. ";
  6443. String sqlStr2 = @" INSERT INTO JZ_RPT035_02
  6444. SELECT
  6445. sys_guid(),
  6446. USERCODE_CHECK_FRONT ,
  6447. OUT_COUNT ,
  6448. PROCEDUREID_CHECK_FRONT ,
  6449. USERCODE_FRONT ,
  6450. GOODSNAME_FRONT ,
  6451. GOODSNAME_BEHIND ,
  6452. USERCODE_BEHIND ,
  6453. PROCEDUREID_CHECK_BEHIND ,
  6454. USERCODE_CHECK_BEHIND ,
  6455. CNUM1 ,
  6456. CNUM2 ,
  6457. CNUM3 ,
  6458. CNUM4 ,
  6459. CNUM5 ,
  6460. CNUM6 ,
  6461. C_COUNT ,
  6462. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  6463. FROM(SELECT
  6464. CY.*,
  6465. QX.*
  6466. FROM
  6467. (
  6468. SELECT
  6469. --GROUPING_ID(P.GOODSNAME,U.USERCODE) AS GID,
  6470. DECODE( GROUPING_ID ( P.GOODSNAME, U.USERCODE ), 3, '[合计]', P.GOODSNAME ) AS GOODSNAME_FRONT,
  6471. U.USERCODE AS USERCODE_FRONT,
  6472. COUNT( * ) AS OUT_COUNT ,
  6473. P.PROCEDUREID AS PROCEDUREID_CHECK_FRONT,
  6474. P.USERCODE AS USERCODE_CHECK_FRONT
  6475. FROM
  6476. TP_PM_PRODUCTIONDATA P
  6477. INNER JOIN TP_PM_PRODUCTIONDATA U ON U.BARCODE = P.BARCODE
  6478. AND U.VALUEFLAG = '1'
  6479. AND U.PROCEDUREID IN ( 7,0 )
  6480. WHERE
  6481. P.CHECKFLAG = 1
  6482. AND P.CREATETIME >= @DATEBEGIN@
  6483. AND P.CREATETIME <= @DATEEND@
  6484. GROUP BY
  6485. GROUPING SETS ( ( P.GOODSNAME, U.USERCODE,P.PROCEDUREID,P.USERCODE ), (P.PROCEDUREID,P.USERCODE) )
  6486. ) CY
  6487. LEFT JOIN (
  6488. SELECT
  6489. *
  6490. FROM
  6491. (
  6492. SELECT
  6493. DECODE( GID, 14, '[合计]', 15, '[合计]',产品 ) AS GOODSNAME_BEHIND,
  6494. 工号 AS USERCODE_BEHIND,
  6495. DECODE( GID, 3, '合计', 15, '合计',缺陷名称 ) 缺陷名称,
  6496. 缺陷数 ,
  6497. pro AS PROCEDUREID_CHECK_BEHIND,
  6498. us AS USERCODE_CHECK_BEHIND
  6499. FROM
  6500. (
  6501. SELECT
  6502. GROUPING_ID ( P.GOODSNAME, U.USERCODE, D.DEFECTPROCEDUREID, D.DEFECTNAME ) AS GID,
  6503. P.GOODSNAME AS 产品,
  6504. U.USERCODE AS 工号,
  6505. D.DEFECTPROCEDUREID AS 责任工序,
  6506. D.DEFECTNAME AS 缺陷名称,
  6507. COUNT( * ) AS 缺陷数 ,
  6508. P.PROCEDUREID AS pro,
  6509. P.USERCODE AS us
  6510. FROM
  6511. TP_PM_PRODUCTIONDATA P
  6512. LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = P.PRODUCTIONDATAID
  6513. INNER JOIN TP_MST_DEFECTGROUP G ON INSTR( G.DEFECTGROUPTYPE, '大帐' ) = 1
  6514. AND G.DEFECTGROUPNAME = '登窑缺陷'
  6515. AND D.DEFECTID = G.DEFECTID
  6516. AND ( D.DEFECTPROCEDUREID IN ( 7,0 ) )
  6517. INNER JOIN TP_PM_PRODUCTIONDATA U ON U.BARCODE = P.BARCODE
  6518. AND U.VALUEFLAG = '1'
  6519. AND ( U.PROCEDUREID IN ( 7,0 ) )
  6520. WHERE
  6521. P.VALUEFLAG = '1'
  6522. AND P.CREATETIME >= @DATEBEGIN@
  6523. AND P.CREATETIME <= @DATEEND@
  6524. GROUP BY
  6525. GROUPING SETS (
  6526. ( P.GOODSNAME, U.USERCODE, D.DEFECTPROCEDUREID, D.DEFECTNAME , P.PROCEDUREID ,P.USERCODE),
  6527. ( P.GOODSNAME, U.USERCODE, P.PROCEDUREID ,P.USERCODE ),
  6528. ( D.DEFECTNAME, P.PROCEDUREID ,P.USERCODE ),
  6529. ( P.PROCEDUREID ,P.USERCODE )
  6530. )
  6531. )
  6532. ) PIVOT (
  6533. SUM( 缺陷数 ) FOR 缺陷名称 IN (
  6534. '装磕' AS CNUM1,'装粘' AS CNUM2,'装走' AS CNUM3,'蹭釉' AS CNUM4,'落脏' AS CNUM5,'装脏' AS CNUM6,'合计' AS C_COUNT
  6535. )
  6536. )
  6537. ) QX ON CY.GOODSNAME_FRONT = QX.GOODSNAME_BEHIND
  6538. AND ( CY.USERCODE_FRONT = QX.USERCODE_BEHIND OR CY.USERCODE_FRONT IS NULL )
  6539. AND CY.PROCEDUREID_CHECK_FRONT = QX.PROCEDUREID_CHECK_BEHIND And CY.USERCODE_CHECK_FRONT = QX.USERCODE_CHECK_BEHIND
  6540. ) ";
  6541. string sqlStr3 = @" INSERT INTO JZ_RPT035_05
  6542. SELECT
  6543. sys_guid(),
  6544. USERCODE_CHECK_FRONT ,
  6545. OUT_COUNT ,
  6546. PROCEDUREID_CHECK_FRONT ,
  6547. USERCODE_FRONT ,
  6548. GOODSNAME_FRONT ,
  6549. GOODSNAME_BEHIND ,
  6550. USERCODE_BEHIND ,
  6551. PROCEDUREID_CHECK_BEHIND ,
  6552. USERCODE_CHECK_BEHIND ,
  6553. CNUM1 ,
  6554. CNUM2 ,
  6555. CNUM3 ,
  6556. CNUM4 ,
  6557. CNUM5 ,
  6558. CNUM6 ,
  6559. CNUM7 ,
  6560. CNUM8 ,
  6561. CNUM9 ,
  6562. CNUM10 ,
  6563. CNUM11 ,
  6564. C_COUNT ,
  6565. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  6566. FROM( SELECT
  6567. CY.*,
  6568. QX.*
  6569. FROM
  6570. (
  6571. SELECT
  6572. --GROUPING_ID(P.GOODSNAME,U.USERCODE) AS GID,
  6573. DECODE( GROUPING_ID ( P.GOODSNAME, U.USERCODE ), 3, '[合计]', P.GOODSNAME ) AS GOODSNAME_FRONT,
  6574. U.USERCODE AS USERCODE_FRONT,
  6575. COUNT( * ) AS OUT_COUNT ,
  6576. P.PROCEDUREID AS PROCEDUREID_CHECK_FRONT,
  6577. P.USERCODE AS USERCODE_CHECK_FRONT
  6578. FROM
  6579. TP_PM_PRODUCTIONDATA P
  6580. INNER JOIN TP_PM_PRODUCTIONDATA U ON U.BARCODE = P.BARCODE
  6581. AND U.VALUEFLAG = '1'
  6582. AND U.PROCEDUREID IN ( 8,0 )
  6583. WHERE
  6584. P.CHECKFLAG = 1
  6585. AND P.CREATETIME >= @DATEBEGIN@
  6586. AND P.CREATETIME <=@DATEEND@
  6587. GROUP BY
  6588. GROUPING SETS ( ( P.GOODSNAME, U.USERCODE,P.PROCEDUREID,P.USERCODE ), (P.PROCEDUREID,P.USERCODE) )
  6589. ) CY
  6590. LEFT JOIN (
  6591. SELECT
  6592. *
  6593. FROM
  6594. (
  6595. SELECT
  6596. DECODE( GID, 14, '[合计]', 15, '[合计]',产品 ) AS GOODSNAME_BEHIND,
  6597. 工号 AS USERCODE_BEHIND,
  6598. DECODE( GID, 3, '合计', 15, '合计',缺陷名称 ) 缺陷名称,
  6599. 缺陷数 ,
  6600. pro AS PROCEDUREID_CHECK_BEHIND,
  6601. us AS USERCODE_CHECK_BEHIND
  6602. FROM
  6603. (
  6604. SELECT
  6605. GROUPING_ID ( P.GOODSNAME, U.USERCODE, D.DEFECTPROCEDUREID, D.DEFECTNAME ) AS GID,
  6606. P.GOODSNAME AS 产品,
  6607. U.USERCODE AS 工号,
  6608. D.DEFECTPROCEDUREID AS 责任工序,
  6609. D.DEFECTNAME AS 缺陷名称,
  6610. COUNT( * ) AS 缺陷数 ,
  6611. P.PROCEDUREID AS pro,
  6612. P.USERCODE AS us
  6613. FROM
  6614. TP_PM_PRODUCTIONDATA P
  6615. LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = P.PRODUCTIONDATAID
  6616. INNER JOIN TP_MST_DEFECTGROUP G ON INSTR( G.DEFECTGROUPTYPE, '大帐' ) = 1
  6617. AND G.DEFECTGROUPNAME = '烧窑缺陷'
  6618. AND D.DEFECTID = G.DEFECTID
  6619. AND ( D.DEFECTPROCEDUREID IN ( 8,0 ) )
  6620. INNER JOIN TP_PM_PRODUCTIONDATA U ON U.BARCODE = P.BARCODE
  6621. AND U.VALUEFLAG = '1'
  6622. AND ( U.PROCEDUREID IN ( 8,0 ) )
  6623. WHERE
  6624. P.VALUEFLAG = '1'
  6625. AND P.CREATETIME >= @DATEBEGIN@
  6626. AND P.CREATETIME <=@DATEEND@
  6627. GROUP BY
  6628. GROUPING SETS (
  6629. ( P.GOODSNAME, U.USERCODE, D.DEFECTPROCEDUREID, D.DEFECTNAME , P.PROCEDUREID ,P.USERCODE),
  6630. ( P.GOODSNAME, U.USERCODE, P.PROCEDUREID ,P.USERCODE ),
  6631. ( D.DEFECTNAME, P.PROCEDUREID ,P.USERCODE ),
  6632. ( P.PROCEDUREID ,P.USERCODE )
  6633. )
  6634. )
  6635. ) PIVOT (
  6636. SUM( 缺陷数 ) FOR 缺陷名称 IN (
  6637. '桔釉' AS CNUM1,'烧裂' AS CNUM2,'烧生' AS CNUM3,'烧炸' AS CNUM4,'过火泡' AS CNUM5,'针孔' AS CNUM6,'麻坑' AS CNUM7,'窑脏' AS CNUM8,'烟熏' AS CNUM9,'风惊' AS CNUM10,'水滴' AS CNUM11,'合计' AS C_COUNT
  6638. )
  6639. )
  6640. ) QX ON CY.GOODSNAME_FRONT = QX.GOODSNAME_BEHIND
  6641. AND ( CY.USERCODE_FRONT = QX.USERCODE_BEHIND OR CY.USERCODE_FRONT IS NULL )
  6642. AND CY.PROCEDUREID_CHECK_FRONT = QX.PROCEDUREID_CHECK_BEHIND And CY.USERCODE_CHECK_FRONT = QX.USERCODE_CHECK_BEHIND
  6643. ) ";
  6644. string sqlStr4 = @" INSERT INTO JZ_RPT035_04
  6645. SELECT
  6646. sys_guid(),
  6647. USERCODE_CHECK_FRONT ,
  6648. OUT_COUNT ,
  6649. PROCEDUREID_CHECK_FRONT ,
  6650. USERCODE_FRONT ,
  6651. GOODSNAME_FRONT ,
  6652. GOODSNAME_BEHIND ,
  6653. USERCODE_BEHIND ,
  6654. PROCEDUREID_CHECK_BEHIND ,
  6655. USERCODE_CHECK_BEHIND ,
  6656. CNUM1 ,
  6657. CNUM2 ,
  6658. CNUM3 ,
  6659. CNUM4 ,
  6660. CNUM5 ,
  6661. CNUM6 ,
  6662. CNUM7 ,
  6663. CNUM8 ,
  6664. CNUM9 ,
  6665. CNUM10 ,
  6666. C_COUNT ,
  6667. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  6668. FROM( SELECT
  6669. CY.*,
  6670. QX.*
  6671. FROM
  6672. (
  6673. SELECT
  6674. --GROUPING_ID(P.GOODSNAME,U.USERCODE) AS GID,
  6675. DECODE( GROUPING_ID ( P.GOODSNAME, U.USERCODE ), 3, '[合计]', P.GOODSNAME ) AS GOODSNAME_FRONT,
  6676. U.USERCODE AS USERCODE_FRONT,
  6677. COUNT( * ) AS OUT_COUNT ,
  6678. P.PROCEDUREID AS PROCEDUREID_CHECK_FRONT,
  6679. P.USERCODE AS USERCODE_CHECK_FRONT
  6680. FROM
  6681. TP_PM_PRODUCTIONDATA P
  6682. INNER JOIN TP_PM_PRODUCTIONDATA U ON U.BARCODE = P.BARCODE
  6683. AND U.VALUEFLAG = '1'
  6684. AND U.PROCEDUREID IN ( 30,6 )
  6685. WHERE
  6686. P.CHECKFLAG = 1
  6687. AND P.CREATETIME >=@DATEBEGIN@
  6688. AND P.CREATETIME <= @DATEEND@
  6689. GROUP BY
  6690. GROUPING SETS ( ( P.GOODSNAME, U.USERCODE,P.PROCEDUREID,P.USERCODE ), (P.PROCEDUREID,P.USERCODE) )
  6691. ) CY
  6692. LEFT JOIN (
  6693. SELECT
  6694. *
  6695. FROM
  6696. (
  6697. SELECT
  6698. DECODE( GID, 14, '[合计]', 15, '[合计]',产品 ) AS GOODSNAME_BEHIND,
  6699. 工号 AS USERCODE_BEHIND,
  6700. DECODE( GID, 3, '合计', 15, '合计',缺陷名称 ) 缺陷名称,
  6701. 缺陷数 ,
  6702. pro AS PROCEDUREID_CHECK_BEHIND,
  6703. us AS USERCODE_CHECK_BEHIND
  6704. FROM
  6705. (
  6706. SELECT
  6707. GROUPING_ID ( P.GOODSNAME, U.USERCODE, D.DEFECTPROCEDUREID, D.DEFECTNAME ) AS GID,
  6708. P.GOODSNAME AS 产品,
  6709. U.USERCODE AS 工号,
  6710. D.DEFECTPROCEDUREID AS 责任工序,
  6711. D.DEFECTNAME AS 缺陷名称,
  6712. COUNT( * ) AS 缺陷数 ,
  6713. P.PROCEDUREID AS pro,
  6714. P.USERCODE AS us
  6715. FROM
  6716. TP_PM_PRODUCTIONDATA P
  6717. LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = P.PRODUCTIONDATAID
  6718. INNER JOIN TP_MST_DEFECTGROUP G ON INSTR( G.DEFECTGROUPTYPE, '大帐' ) = 1
  6719. AND G.DEFECTGROUPNAME = '施釉缺陷'
  6720. AND D.DEFECTID = G.DEFECTID
  6721. AND ( D.DEFECTPROCEDUREID IN ( 30,6 ) )
  6722. INNER JOIN TP_PM_PRODUCTIONDATA U ON U.BARCODE = P.BARCODE
  6723. AND U.VALUEFLAG = '1'
  6724. AND ( U.PROCEDUREID IN ( 30,6 ) )
  6725. WHERE
  6726. P.VALUEFLAG = '1'
  6727. AND P.CREATETIME >= @DATEBEGIN@
  6728. AND P.CREATETIME <= @DATEEND@
  6729. GROUP BY
  6730. GROUPING SETS (
  6731. ( P.GOODSNAME, U.USERCODE, D.DEFECTPROCEDUREID, D.DEFECTNAME , P.PROCEDUREID ,P.USERCODE),
  6732. ( P.GOODSNAME, U.USERCODE, P.PROCEDUREID ,P.USERCODE ),
  6733. ( D.DEFECTNAME, P.PROCEDUREID ,P.USERCODE ),
  6734. ( P.PROCEDUREID ,P.USERCODE )
  6735. )
  6736. )
  6737. ) PIVOT (
  6738. SUM( 缺陷数 ) FOR 缺陷名称 IN (
  6739. '爆釉' AS CNUM1,'脱釉' AS CNUM2,'釉磕' AS CNUM3,'釉粘' AS CNUM4,'釉薄' AS CNUM5,'波纹' AS CNUM6,'釉脏' AS CNUM7,'标不良' AS CNUM8,'釉绺' AS CNUM9,'釉泡' AS CNUM10,'合计' AS C_COUNT
  6740. )
  6741. )
  6742. ) QX ON CY.GOODSNAME_FRONT = QX.GOODSNAME_BEHIND
  6743. AND ( CY.USERCODE_FRONT = QX.USERCODE_BEHIND OR CY.USERCODE_FRONT IS NULL )
  6744. AND CY.PROCEDUREID_CHECK_FRONT = QX.PROCEDUREID_CHECK_BEHIND And CY.USERCODE_CHECK_FRONT = QX.USERCODE_CHECK_BEHIND
  6745. ) ";
  6746. string sqlStr5 = @" INSERT INTO JZ_RPT035_06
  6747. SELECT
  6748. sys_guid(),
  6749. USERCODE_CHECK_FRONT ,
  6750. OUT_COUNT ,
  6751. PROCEDUREID_CHECK_FRONT ,
  6752. USERCODE_FRONT ,
  6753. GOODSNAME_FRONT ,
  6754. GOODSNAME_BEHIND ,
  6755. USERCODE_BEHIND ,
  6756. PROCEDUREID_CHECK_BEHIND ,
  6757. USERCODE_CHECK_BEHIND ,
  6758. CNUM1 ,
  6759. CNUM2 ,
  6760. C_COUNT ,
  6761. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  6762. FROM( SELECT
  6763. CY.*,
  6764. QX.*
  6765. FROM
  6766. (
  6767. SELECT
  6768. --GROUPING_ID(P.GOODSNAME,U.USERCODE) AS GID,
  6769. DECODE( GROUPING_ID ( P.GOODSNAME, U.USERCODE ), 3, '[合计]', P.GOODSNAME ) AS GOODSNAME_FRONT,
  6770. U.USERCODE AS USERCODE_FRONT,
  6771. COUNT( * ) AS OUT_COUNT ,
  6772. P.PROCEDUREID AS PROCEDUREID_CHECK_FRONT,
  6773. P.USERCODE AS USERCODE_CHECK_FRONT
  6774. FROM
  6775. TP_PM_PRODUCTIONDATA P
  6776. INNER JOIN TP_PM_PRODUCTIONDATA U ON U.BARCODE = P.BARCODE
  6777. AND U.VALUEFLAG = '1'
  6778. AND U.PROCEDUREID IN ( 9,0 )
  6779. WHERE
  6780. P.CHECKFLAG = 1
  6781. AND P.CREATETIME >=@DATEBEGIN@
  6782. AND P.CREATETIME <= @DATEEND@
  6783. GROUP BY
  6784. GROUPING SETS ( ( P.GOODSNAME, U.USERCODE,P.PROCEDUREID,P.USERCODE ), (P.PROCEDUREID,P.USERCODE) )
  6785. ) CY
  6786. LEFT JOIN (
  6787. SELECT
  6788. *
  6789. FROM
  6790. (
  6791. SELECT
  6792. DECODE( GID, 14, '[合计]', 15, '[合计]',产品 ) AS GOODSNAME_BEHIND,
  6793. 工号 AS USERCODE_BEHIND,
  6794. DECODE( GID, 3, '合计', 15, '合计',缺陷名称 ) 缺陷名称,
  6795. 缺陷数 ,
  6796. pro AS PROCEDUREID_CHECK_BEHIND,
  6797. us AS USERCODE_CHECK_BEHIND
  6798. FROM
  6799. (
  6800. SELECT
  6801. GROUPING_ID ( P.GOODSNAME, U.USERCODE, D.DEFECTPROCEDUREID, D.DEFECTNAME ) AS GID,
  6802. P.GOODSNAME AS 产品,
  6803. U.USERCODE AS 工号,
  6804. D.DEFECTPROCEDUREID AS 责任工序,
  6805. D.DEFECTNAME AS 缺陷名称,
  6806. COUNT( * ) AS 缺陷数 ,
  6807. P.PROCEDUREID AS pro,
  6808. P.USERCODE AS us
  6809. FROM
  6810. TP_PM_PRODUCTIONDATA P
  6811. LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = P.PRODUCTIONDATAID
  6812. INNER JOIN TP_MST_DEFECTGROUP G ON INSTR( G.DEFECTGROUPTYPE, '大帐' ) = 1
  6813. AND G.DEFECTGROUPNAME = '卸窑缺陷'
  6814. AND D.DEFECTID = G.DEFECTID
  6815. AND ( D.DEFECTPROCEDUREID IN ( 9,0 ) )
  6816. INNER JOIN TP_PM_PRODUCTIONDATA U ON U.BARCODE = P.BARCODE
  6817. AND U.VALUEFLAG = '1'
  6818. AND ( U.PROCEDUREID IN ( 9,0 ) )
  6819. WHERE
  6820. P.VALUEFLAG = '1'
  6821. AND P.CREATETIME >=@DATEBEGIN@
  6822. AND P.CREATETIME <= @DATEEND@
  6823. GROUP BY
  6824. GROUPING SETS (
  6825. ( P.GOODSNAME, U.USERCODE, D.DEFECTPROCEDUREID, D.DEFECTNAME , P.PROCEDUREID ,P.USERCODE),
  6826. ( P.GOODSNAME, U.USERCODE, P.PROCEDUREID ,P.USERCODE ),
  6827. ( D.DEFECTNAME, P.PROCEDUREID ,P.USERCODE ),
  6828. ( P.PROCEDUREID ,P.USERCODE )
  6829. )
  6830. )
  6831. ) PIVOT (
  6832. SUM( 缺陷数 ) FOR 缺陷名称 IN (
  6833. '出磕' AS CNUM1,'划釉' AS CNUM2,'合计' AS C_COUNT
  6834. )
  6835. )
  6836. ) QX ON CY.GOODSNAME_FRONT = QX.GOODSNAME_BEHIND
  6837. AND ( CY.USERCODE_FRONT = QX.USERCODE_BEHIND OR CY.USERCODE_FRONT IS NULL )
  6838. AND CY.PROCEDUREID_CHECK_FRONT = QX.PROCEDUREID_CHECK_BEHIND And CY.USERCODE_CHECK_FRONT = QX.USERCODE_CHECK_BEHIND
  6839. ) ";
  6840. string sqlStr6 = @" INSERT INTO JZ_RPT035_03
  6841. SELECT
  6842. sys_guid(),
  6843. USERCODE_CHECK_FRONT ,
  6844. OUT_COUNT ,
  6845. PROCEDUREID_CHECK_FRONT ,
  6846. USERCODE_FRONT ,
  6847. GOODSNAME_FRONT ,
  6848. GOODSNAME_BEHIND ,
  6849. USERCODE_BEHIND ,
  6850. PROCEDUREID_CHECK_BEHIND ,
  6851. USERCODE_CHECK_BEHIND ,
  6852. CNUM1 ,
  6853. CNUM2 ,
  6854. CNUM3 ,
  6855. CNUM4 ,
  6856. CNUM5 ,
  6857. CNUM6 ,
  6858. CNUM7 ,
  6859. CNUM8 ,
  6860. CNUM9 ,
  6861. CNUM10 ,
  6862. C_COUNT ,
  6863. to_number(to_char(@YEAR@) || lpad(to_char(@I@),2,'0'))
  6864. FROM(SELECT
  6865. CY.*,
  6866. QX.*
  6867. FROM
  6868. (
  6869. SELECT
  6870. --GROUPING_ID(P.GOODSNAME,U.USERCODE) AS GID,
  6871. DECODE( GROUPING_ID ( P.GOODSNAME, U.USERCODE ), 3, '[合计]', P.GOODSNAME ) AS GOODSNAME_FRONT,
  6872. U.USERCODE AS USERCODE_FRONT,
  6873. COUNT( * ) AS OUT_COUNT ,
  6874. P.PROCEDUREID AS PROCEDUREID_CHECK_FRONT,
  6875. P.USERCODE AS USERCODE_CHECK_FRONT
  6876. FROM
  6877. TP_PM_PRODUCTIONDATA P
  6878. INNER JOIN TP_PM_PRODUCTIONDATA U ON U.BARCODE = P.BARCODE
  6879. AND U.VALUEFLAG = '1'
  6880. AND U.PROCEDUREID IN ( 33,16 )
  6881. WHERE
  6882. P.CHECKFLAG = 1
  6883. AND P.CREATETIME >=@DATEBEGIN@
  6884. AND P.CREATETIME <= @DATEEND@
  6885. GROUP BY
  6886. GROUPING SETS ( ( P.GOODSNAME, U.USERCODE,P.PROCEDUREID,P.USERCODE ), (P.PROCEDUREID,P.USERCODE) )
  6887. ) CY
  6888. LEFT JOIN (
  6889. SELECT
  6890. *
  6891. FROM
  6892. (
  6893. SELECT
  6894. DECODE( GID, 14, '[合计]', 15, '[合计]',产品 ) AS GOODSNAME_BEHIND,
  6895. 工号 AS USERCODE_BEHIND,
  6896. DECODE( GID, 3, '合计', 15, '合计',缺陷名称 ) 缺陷名称,
  6897. 缺陷数 ,
  6898. pro AS PROCEDUREID_CHECK_BEHIND,
  6899. us AS USERCODE_CHECK_BEHIND
  6900. FROM
  6901. (
  6902. SELECT
  6903. GROUPING_ID ( P.GOODSNAME, U.USERCODE, D.DEFECTPROCEDUREID, D.DEFECTNAME ) AS GID,
  6904. P.GOODSNAME AS 产品,
  6905. U.USERCODE AS 工号,
  6906. D.DEFECTPROCEDUREID AS 责任工序,
  6907. D.DEFECTNAME AS 缺陷名称,
  6908. COUNT( * ) AS 缺陷数 ,
  6909. P.PROCEDUREID AS pro,
  6910. P.USERCODE AS us
  6911. FROM
  6912. TP_PM_PRODUCTIONDATA P
  6913. LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = P.PRODUCTIONDATAID
  6914. INNER JOIN TP_MST_DEFECTGROUP G ON INSTR( G.DEFECTGROUPTYPE, '大帐' ) = 1
  6915. AND G.DEFECTGROUPNAME = '循环线施釉缺陷'
  6916. AND D.DEFECTID = G.DEFECTID
  6917. AND ( D.DEFECTPROCEDUREID IN ( 33,16 ) )
  6918. INNER JOIN TP_PM_PRODUCTIONDATA U ON U.BARCODE = P.BARCODE
  6919. AND U.VALUEFLAG = '1'
  6920. AND ( U.PROCEDUREID IN ( 33,16 ) )
  6921. WHERE
  6922. P.VALUEFLAG = '1'
  6923. AND P.CREATETIME >=@DATEBEGIN@
  6924. AND P.CREATETIME <= @DATEEND@
  6925. GROUP BY
  6926. GROUPING SETS (
  6927. ( P.GOODSNAME, U.USERCODE, D.DEFECTPROCEDUREID, D.DEFECTNAME , P.PROCEDUREID ,P.USERCODE),
  6928. ( P.GOODSNAME, U.USERCODE, P.PROCEDUREID ,P.USERCODE ),
  6929. ( D.DEFECTNAME, P.PROCEDUREID ,P.USERCODE ),
  6930. ( P.PROCEDUREID ,P.USERCODE )
  6931. )
  6932. )
  6933. ) PIVOT (
  6934. SUM( 缺陷数 ) FOR 缺陷名称 IN (
  6935. '爆釉' AS CNUM1,'脱釉' AS CNUM2,'釉磕' AS CNUM3,'釉粘' AS CNUM4,'釉薄' AS CNUM5,'波纹' AS CNUM6,'釉脏' AS CNUM7,'标不良' AS CNUM8,'釉绺' AS CNUM9,'釉泡' AS CNUM10,'合计' AS C_COUNT
  6936. )
  6937. )
  6938. ) QX ON CY.GOODSNAME_FRONT = QX.GOODSNAME_BEHIND
  6939. AND ( CY.USERCODE_FRONT = QX.USERCODE_BEHIND OR CY.USERCODE_FRONT IS NULL )
  6940. AND CY.PROCEDUREID_CHECK_FRONT = QX.PROCEDUREID_CHECK_BEHIND And CY.USERCODE_CHECK_FRONT = QX.USERCODE_CHECK_BEHIND
  6941. )";
  6942. List<CDAParameter> sqlPara = new List<CDAParameter>();
  6943. sqlPara.Add(new CDAParameter("I", i));
  6944. sqlPara.Add(new CDAParameter("YEAR", b));
  6945. sqlPara.Add(new CDAParameter("DATEEND", dayEnd));
  6946. sqlPara.Add(new CDAParameter("DATEBEGIN", dayBegin));
  6947. result = conn.ExecuteNonQuery(sqlStr1, sqlPara.ToArray());
  6948. result1 = conn.ExecuteNonQuery(sqlStr2, sqlPara.ToArray());
  6949. result2 = conn.ExecuteNonQuery(sqlStr3, sqlPara.ToArray());
  6950. result3 = conn.ExecuteNonQuery(sqlStr4, sqlPara.ToArray());
  6951. result4 = conn.ExecuteNonQuery(sqlStr5, sqlPara.ToArray());
  6952. result5 = conn.ExecuteNonQuery(sqlStr6, sqlPara.ToArray());
  6953. }
  6954. conn.Commit();
  6955. if (result > 0 || result1 > 0 || result2 > 0 || result3 > 0 || result4 > 0 || result5 > 0)
  6956. {
  6957. Curtain.Log.Logger.Debug(b + "年" + a + "月:export035成检大帐结转成功!");
  6958. }
  6959. else
  6960. {
  6961. Curtain.Log.Logger.Debug(b + "年" + a + "月:export035成检大帐结转0条!");
  6962. }
  6963. }
  6964. catch (Exception ex)
  6965. {
  6966. conn.Rollback();
  6967. Curtain.Log.Logger.Debug(DateTime.Now.AddMonths(-1).Year.ToString() + "年" + DateTime.Now.AddMonths(-1).Month + "月:export035成检大帐结转失败!");
  6968. Curtain.Log.Logger.Error(ex);
  6969. }
  6970. finally
  6971. {
  6972. conn.Close();
  6973. }
  6974. }
  6975. }
  6976. #endregion
  6977. #region 新增结转
  6978. #endregion
  6979. /// <summary>
  6980. /// 在指定日期内有几个星期几
  6981. /// days 小于1时,返回 -1
  6982. /// weeks 未指定时,默认星期日
  6983. /// </summary>
  6984. /// <param name="beginDate"></param>
  6985. /// <param name="days"></param>
  6986. /// <param name="weeks"></param>
  6987. /// <returns></returns>
  6988. public static int DayOfWeeksInDays(DateTime beginDate, int days, DayOfWeek week)
  6989. {
  6990. if (days < 1)
  6991. {
  6992. return -1;
  6993. }
  6994. DayOfWeek dw = beginDate.DayOfWeek;
  6995. int ws = (days + (int)dw - (int)week - 1) / 7;
  6996. if (dw <= week)
  6997. {
  6998. ws += 1;
  6999. }
  7000. return ws;
  7001. }
  7002. /// <summary>
  7003. /// 在指定日期内有几个星期几
  7004. /// endDate 小于 beginDate 时,返回 -1
  7005. /// weeks 未指定时,默认星期日
  7006. /// </summary>
  7007. /// <param name="beginDate"></param>
  7008. /// <param name="endDate"></param>
  7009. /// <param name="weeks"></param>
  7010. /// <returns></returns>
  7011. public static int DayOfWeeksInDays(DateTime beginDate, DateTime endDate, DayOfWeek week)
  7012. {
  7013. return DayOfWeeksInDays(beginDate, (endDate.Date - beginDate.Date).Days + 1, week);
  7014. }
  7015. }