Fourth.php 561 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289
  1. <?php
  2. namespace app\api\controller;
  3. use think\console\command\make\Model;
  4. use think\Controller;
  5. use think\Db;
  6. use think\Request;
  7. use think\Route;
  8. use think\Session;
  9. /**
  10. * 第四屏幕(营销管理)
  11. */
  12. class Fourth extends Controller{
  13. //开始时间方法--当年01月01日
  14. public function start_time(){
  15. return gettimeinfo();
  16. }
  17. //结束时间方法--当年12月31日
  18. public function end_time(){
  19. return gettimeinfo(1);
  20. }
  21. //开始时间方法--去年01月01日
  22. public function qstart_time(){
  23. return getLastYear();
  24. }
  25. //结束时间方法--去年12月31日
  26. public function qend_time(){
  27. return getLastYear(1);
  28. }
  29. /**
  30. * 第一页(经营总览)
  31. */
  32. /**
  33. * 本年度累计业务承揽收入、本年度累计毛利收入、本年度累计产量情况(色令)
  34. */
  35. //本年度累计业务承揽收入、本年度累计毛利收入、本年度累计产量情况(色令)->缓存
  36. public function year_ywcl_redis(){
  37. //存缓存Redis
  38. $redis = redis();
  39. $name='业务承揽收入(万元)';
  40. $target=Db::name('target')->where('name',$name)->value('year_target');
  41. $list[0]['name'] = ' ';
  42. $list[0]['value'] = $target;
  43. $list[1]['name'] = ' ';
  44. $list[1]['value'] = round(json_decode($redis->get(md5('getxssrs_redis')),true)['data']['series'][0]['data'][2]);
  45. $res['status'] = 0;
  46. $res['msg'] = '';
  47. $res['data'] = $list;
  48. $year_ywcls = md5('year_ywcls');
  49. $redis->set($year_ywcls, json_encode($res));
  50. $res=[];
  51. $res['status'] = 0;
  52. $res['msg'] = '';
  53. $res['data'] = round(json_decode($redis->get(md5('getxssrs_redis')),true)['data']['series'][0]['data'][2]/$target*100);
  54. $year_ywcls_wcl = md5('year_ywcls_wcl');
  55. $redis->set($year_ywcls_wcl, json_encode($res));
  56. $result2=json_decode($redis->get(md5('month_jgml_redis')),true);
  57. $zxsml=0;
  58. foreach($result2 as $v){
  59. if($v['承印时间']>=date('Y').'-01'){
  60. $zxsml+=$v['总销售毛利'];
  61. }
  62. }
  63. $name='毛利收入(万元)';
  64. $target=Db::name('target')->where('name',$name)->value('year_target');
  65. $list=[];
  66. $res=[];
  67. $list[0]['name'] = ' ';
  68. $list[0]['value'] = $target;
  69. $list[1]['name'] = ' ';
  70. $list[1]['value'] = round($zxsml);
  71. $res['status'] = 0;
  72. $res['msg'] = '';
  73. $res['data'] = $list;
  74. $year_ywclml = md5('year_ywclmls');
  75. $redis->set($year_ywclml, json_encode($res));
  76. $res=[];
  77. $res['status'] = 0;
  78. $res['msg'] = '';
  79. $res['data'] = round($zxsml/$target*100);
  80. $year_ywclml_wcl = md5('year_ywclml_wcls');
  81. $redis->set($year_ywclml_wcl, json_encode($res));
  82. $name='产量情况(万色令)';
  83. $yu=Db::name('target')->where('name',$name)->value('year_target');
  84. $result1 = Db::query("SELECT
  85. round( M.总色令/$yu*100,0) 色令百分比,round( m.总色令) 色令,$yu 常量, year(M.rq) 年度
  86. FROM (SELECT t5.rq as rq,sum(t5.sl)/10000 as 总色令,sum(t5.zl) as 总纸令 FROM ( SELECT DATE_FORMAT( dcyrq, '%Y-%m-%d' ) as rq,sum(objmatier.nyssl) as sl,sum(objmatier.nysls) as zl
  87. FROM `mcyd` `ord` LEFT JOIN (( SELECT icydid,sum(nyssl) as nyssl,sum(nysls) as nysls
  88. FROM `scyddx` `objmatier` GROUP BY `icydid` )) as objmatier ON `ord`.`icydid`=`objmatier`.`icydid`
  89. WHERE `ord`.`icydstate` > 0 and chy != '集团教材外' GROUP BY `rq` ) t5 WHERE ( t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}' )
  90. GROUP BY year(t5.rq) ) M");
  91. // and chy != '集团教材外'
  92. $list=[];
  93. $res=[];
  94. $list[0]['name'] = ' ';
  95. $list[0]['value'] = $yu;
  96. $list[1]['name'] = ' ';
  97. $list[1]['value'] = round($result1[0]['色令']);
  98. $res['status'] = 0;
  99. $res['msg'] = '';
  100. $res['data'] = $list;
  101. $year_ywclsl = md5('year_ywclsl');
  102. $redis->set($year_ywclsl, json_encode($res));
  103. $res=[];
  104. $res['status'] = 0;
  105. $res['msg'] = '';
  106. $res['data'] = round($result1[0]['色令百分比']);
  107. $year_ywclsl_wcl = md5('year_ywclsl_wcl');
  108. $redis->set($year_ywclsl_wcl, json_encode($res));
  109. return json($res);
  110. }
  111. //销售收入->接口
  112. // public function year_ywcls(){
  113. // //取合同价格
  114. // $redis = redis();
  115. // return $redis->get(md5('year_ywcls'));
  116. // }
  117. //销售收入-完成率百分比->接口
  118. // public function year_ywcls_wcl(){
  119. // //取合同价格/目标收入
  120. // $redis = redis();
  121. // return $redis->get(md5('year_ywcls_wcl'));
  122. // }
  123. public function year_ywcls() {
  124. // 取合同价格
  125. $redis = redis();
  126. $list = $redis->get(md5('ndxs_redis'));
  127. // 检查 $list 是否为空,且是否是一个有效的 JSON 字符串
  128. if ($list) {
  129. // 解码 JSON 字符串为 PHP 数组
  130. $list = json_decode($list, true);
  131. // 判断解码是否成功
  132. if (is_array($list)) {
  133. // 取出第一个和第二个元素
  134. $secondItem = isset($list['data'][0]) ? $list['data'][0] : null;
  135. $firstItem = isset($list['data'][1]) ? $list['data'][1] : null;
  136. // 构造返回数据
  137. $response = [
  138. "status" => 0,
  139. "msg" => "",
  140. "data" => []
  141. ];
  142. // 如果第一个元素存在,加入返回数据
  143. if ($firstItem) {
  144. $response['data'][] = $firstItem;
  145. }
  146. // 如果第二个元素存在,加入返回数据
  147. if ($secondItem) {
  148. $response['data'][] = $secondItem;
  149. }
  150. // 返回最终结果
  151. return json_encode($response);
  152. } else {
  153. // 如果解码失败,返回错误信息
  154. return json_encode([
  155. "status" => 1,
  156. "msg" => "数据格式错误",
  157. "data" => []
  158. ]);
  159. }
  160. } else {
  161. // 如果 Redis 中没有数据
  162. return json_encode([
  163. "status" => 1,
  164. "msg" => "未获取到数据",
  165. "data" => []
  166. ]);
  167. }
  168. }
  169. public function year_ywcls_wcl() {
  170. // 获取 Redis 实例
  171. $redis = redis();
  172. // 获取 Redis 缓存数据
  173. $list = $redis->get(md5('ndxs_redis'));
  174. // 解析 JSON 数据
  175. $data = json_decode($list, true);
  176. // 判断数据是否正确解析
  177. if (!isset($data['data']) || !is_array($data['data']) || empty($data['data'])) {
  178. return json_encode([
  179. 'status' => 1,
  180. 'msg' => '数据格式错误或数据为空',
  181. 'data' => null
  182. ]);
  183. }
  184. // 获取最后一个元素
  185. $lastItem = end($data['data']);
  186. // 确保 $lastItem 是一个数组并且有 'value' 键
  187. if (!is_array($lastItem) || !isset($lastItem['value'])) {
  188. return json_encode([
  189. 'status' => 1,
  190. 'msg' => '数据格式错误',
  191. 'data' => null
  192. ]);
  193. }
  194. // 返回结果,data 直接返回最后的 value
  195. return json_encode([
  196. 'status' => 0,
  197. 'msg' => '',
  198. 'data' => $lastItem['value']
  199. ]);
  200. }
  201. //毛利收入->接口
  202. public function year_ywclml(){
  203. //取生产毛利不含税
  204. $redis = redis();
  205. return $redis->get(md5('year_ywclmls'));
  206. }
  207. //毛利收入-完成率百分比->接口
  208. public function year_ywclml_wcl(){
  209. //取生产毛利不含税/目标收入
  210. $redis = redis();
  211. return $redis->get(md5('year_ywclml_wcls'));
  212. }
  213. //承接产量(万色令)->接口
  214. public function year_ywclsl(){
  215. //取色令
  216. $redis = redis();
  217. return $redis->get(md5('year_ywclsl'));
  218. }
  219. //承接产量(万色令)完成率百分比->接口
  220. public function year_ywclsl_wcl(){
  221. //取色令/目标收入
  222. $redis = redis();
  223. return $redis->get(md5('year_ywclsl_wcl'));
  224. }
  225. /**
  226. * 承印产量情况、业务承揽收入情况、加工收入情况、加工考核毛利收入情况
  227. */
  228. //承印产量情况(万色令)缓存 本级不包含集团教材外
  229. public function month_cjcl_redis(){
  230. //链接定义 Redis
  231. $redis = redis();
  232. $redis_key = md5('month_cjcl_redis');
  233. $sql = "SELECT DATE_FORMAT( dcyrq, '%Y-%m' ) as rq,sum(objmatier.nyssl)/10000 as sl,sum(objmatier.nysls) as zl
  234. FROM `mcyd` `ord` LEFT JOIN (( SELECT icydid,sum(nyssl) as nyssl,sum(nysls) as nysls
  235. FROM `scyddx` `objmatier` GROUP BY `icydid` )) as objmatier ON `ord`.`icydid`=`objmatier`.`icydid`
  236. WHERE `ord`.`icydstate` > 0 and chy != '集团教材外' AND ( dcyrq >= '{$this->qstart_time()}'AND dcyrq <= '{$this->end_time()}' ) GROUP BY `rq` ORDER BY `rq` ASC";
  237. $res=Db::query($sql);
  238. if($res){
  239. //将查询结果存入 Redis 缓存中
  240. $redis->set($redis_key, json_encode($res));
  241. echo date("Y-m-d H:i:s").' 存进去了';
  242. return json($res);
  243. }
  244. }
  245. //承印产量情况(万色令)缓存 全部包含集团教材外
  246. public function month_cjcls_redis(){
  247. //链接定义 Redis
  248. $redis = redis();
  249. $redis_key = md5('month_cjcls_redis');
  250. $sql = "SELECT DATE_FORMAT( dcyrq, '%Y-%m' ) as rq,sum(objmatier.nyssl)/10000 as sl,sum(objmatier.nysls) as zl
  251. FROM `mcyd` `ord` LEFT JOIN (( SELECT icydid,sum(nyssl) as nyssl,sum(nysls) as nysls
  252. FROM `scyddx` `objmatier` GROUP BY `icydid` )) as objmatier ON `ord`.`icydid`=`objmatier`.`icydid`
  253. WHERE `ord`.`icydstate` > 0 AND ( dcyrq >= '{$this->qstart_time()}'AND dcyrq <= '{$this->end_time()}' ) GROUP BY `rq` ORDER BY `rq` ASC";
  254. $res=Db::query($sql);
  255. if($res){
  256. //将查询结果存入 Redis 缓存中
  257. $redis->set($redis_key, json_encode($res));
  258. echo date("Y-m-d H:i:s").' 存进去了';
  259. return json($res);
  260. }
  261. }
  262. //承印产量情况(万色令)->接口
  263. public function month_cjcl(){
  264. $data = input('post.');
  265. if (isset($data['dependence'])) {
  266. $dependence = $data['dependence'];
  267. } else {
  268. $dependence['item']['value'] = '全部';
  269. }
  270. // 获取 Redis 数据
  271. $redis = redis();
  272. if ($dependence['item']['value'] == '全部') {
  273. $result = json_decode($redis->get(md5('month_cjcls_redis')), true);
  274. } else {
  275. $result = json_decode($redis->get(md5('month_cjcl_redis')), true);
  276. }
  277. $name = 'sl'; // 对应字段名
  278. $currentYear = date('Y'); // 当前年份
  279. $previousYear = $currentYear - 1; // 前一年
  280. // 初始化数据
  281. $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
  282. $list['series'] = [
  283. [
  284. 'name' => '同比增减百分比',
  285. 'type' => 'line',
  286. 'yAxisIndex' => 1,
  287. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  288. ],
  289. [
  290. 'name' => $previousYear . '年',
  291. 'type' => 'bar',
  292. 'yAxisIndex' => 0,
  293. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  294. ],
  295. [
  296. 'name' => $currentYear . '年',
  297. 'type' => 'bar',
  298. 'yAxisIndex' => 0,
  299. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  300. ]
  301. ];
  302. // 判断 Redis 数据是否为空
  303. if (!empty($result)) {
  304. foreach ($result as $k => $v) {
  305. if (isset($v['rq']) && $v['rq'] >= $currentYear . '-01') {
  306. // 获取对应月份的目标值(假设目标值存储在数据库中)
  307. $target = Db::name('targetmonth')
  308. ->where('name', '承印产量情况')
  309. ->where('month', substr($v['rq'], -2, 2))
  310. ->value('month_target');
  311. // 计算同比增减百分比
  312. $monthIndex = (int)substr($v['rq'], -2, 2) - 1; // 月份索引
  313. $list['series'][0]['data'][$monthIndex] = isset($result[$k - 12]) && $result[$k - 12][$name] != 0
  314. ? round(($v[$name] - $result[$k - 12][$name]) / $result[$k - 12][$name] * 100, 2)
  315. : 0;
  316. // 当前年份数据
  317. $list['series'][2]['data'][$monthIndex] = round($v[$name]);
  318. } else {
  319. // 前一年数据
  320. if (isset($v['rq'])) {
  321. $monthIndex = (int)substr($v['rq'], -2, 2) - 1; // 月份索引
  322. $list['series'][1]['data'][$monthIndex] = round($v[$name]);
  323. }
  324. }
  325. }
  326. }
  327. // 设置返回数据
  328. $res['status'] = 0;
  329. $res['msg'] = '';
  330. $res['data'] = $list;
  331. return json($res);
  332. }
  333. // public function month_cjcl(){
  334. // $data = input('post.');
  335. // if(isset($data['dependence'])){
  336. // $dependence=$data['dependence'];
  337. // }else{
  338. // $dependence['item']['value']= '全部';
  339. // }
  340. // if($dependence['item']['value'] == '全部'){
  341. // $redis = redis();
  342. // $result = json_decode($redis->get(md5('month_cjcls_redis')),true);
  343. // }else{
  344. // $redis = redis();
  345. // $result = json_decode($redis->get(md5('month_cjcl_redis')),true);
  346. // }
  347. //// $name='色令(万)';
  348. // $name='sl';
  349. // //按每月设置的指标显示
  350. // $list['categories']=[];
  351. // $list['series'][0]=[];
  352. // foreach($result as $k=>$v){
  353. // if($v['rq']>=date('Y').'-01'){
  354. // $target=Db::name('targetmonth')->where('name','承印产量情况')->where('month',substr($v['rq'],-2,2))->value('month_target');
  355. // // $list['series'][0]['name']=date('Y').'指标达成率';
  356. // $list['series'][0]['name']='同比增减百分比';
  357. // $list['series'][0]['type']='line';
  358. // $list['series'][0]['yAxisIndex']=1;
  359. // $list['series'][0]['data'][]=round(($v[$name]-$result[$k-12][$name])/$result[$k-12][$name]*100);
  360. // $list['series'][2]['name']=date('Y').'年';
  361. // $list['series'][2]['type']='bar';
  362. // $list['series'][2]['yAxisIndex']=0;
  363. // $list['series'][2]['data'][]=round($v[$name]);
  364. // }else{
  365. // $list['categories'][]=substr($v['rq'],-2,2);
  366. // $list['series'][1]['name']=(date('Y')-1).'年';
  367. // $list['series'][1]['type']='bar';
  368. // $list['series'][1]['yAxisIndex']=0;
  369. // $list['series'][1]['data'][]=round($v[$name]);
  370. // }
  371. // }
  372. //
  373. // $res['status'] = 0;
  374. // $res['msg'] = '';
  375. // $res['data'] = $list;
  376. // return json($res);
  377. // }
  378. //业务承揽收入情况(万元)->缓存 本级不包含集团教材外
  379. public function month_ywcl_redis(){
  380. $redis=redis();
  381. $redis_key = md5('month_ywcl_redis');
  382. $field = [
  383. 'ldz',
  384. 'mcyd.icydid',
  385. 'year(mcyd.dcyrq) as 年',
  386. "DATE_FORMAT( mcyd.dcyrq, '%Y-%m') as 日期",
  387. 'sum(mcyd.nwshjje) nwshjje',
  388. 'sum(mcyd.nwsgjhj) nwsgjhj',
  389. 'sum(tjob.namount) namount',
  390. 'sum(tjob.namount) - sum(tjob.nclje * 100 / (100 + tjob.itax)) as sum_clje',
  391. 'tjob.itax',
  392. ];
  393. //当年
  394. $erp2023 = Db::table('mcyd')->field($field)
  395. ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
  396. ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->end_time()])
  397. ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
  398. ->where('mcyd.icydstate','>',0)
  399. ->select();
  400. foreach($erp2023 as $v){
  401. $list[$v['日期']]=0;
  402. }
  403. // 遍历查询结果,进行统计
  404. foreach ($erp2023 as $v){
  405. if($v['ldz'] == 1 ){
  406. $list[$v['日期']]+=$v['namount'];
  407. }else{
  408. $list[$v['日期']]+=$v['nwshjje'];
  409. }
  410. }
  411. foreach($list as $k=>$v){
  412. $res[]=['年月'=>$k,'合同价格(万元)'=>round($v/10000)];
  413. }
  414. array_multisort($res,SORT_ASC);
  415. if($res){
  416. //将查询结果存入 Redis 缓存中
  417. $redis->set($redis_key, json_encode($res));
  418. echo date("Y-m-d H:i:s").' 存进去了';
  419. return json($res);
  420. }
  421. }
  422. //业务承揽收入情况缓存(万元)->缓存 全部包含集团教材外
  423. public function month_ywcls_redis(){
  424. $redis=redis();
  425. $redis_key = md5('month_ywcls_redis');
  426. $field = [
  427. 'ldz',
  428. 'mcyd.icydid',
  429. 'year(mcyd.dcyrq) as 年',
  430. "DATE_FORMAT( mcyd.dcyrq, '%Y-%m') as 日期",
  431. 'sum(mcyd.nwshjje) nwshjje',
  432. 'sum(mcyd.nwsgjhj) nwsgjhj',
  433. 'sum(tjob.namount) namount',
  434. 'sum(tjob.namount) - sum(tjob.nclje * 100 / (100 + tjob.itax)) as sum_clje',
  435. 'tjob.itax',
  436. ];
  437. //当年
  438. $erp2023 = Db::table('mcyd')->field($field)
  439. ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
  440. ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->end_time()])
  441. ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
  442. ->where('mcyd.icydstate','>',0)
  443. ->where('mcyd.chy','<>','集团教材外')
  444. ->select();
  445. foreach($erp2023 as $v){
  446. $list[$v['日期']]=0;
  447. }
  448. // 遍历查询结果,进行统计
  449. foreach ($erp2023 as $v){
  450. if($v['ldz'] == 1 ){
  451. $list[$v['日期']]+=$v['namount'];
  452. }else{
  453. $list[$v['日期']]+=$v['nwshjje'];
  454. }
  455. }
  456. foreach($list as $k=>$v){
  457. $res[]=['年月'=>$k,'合同价格(万元)'=>round($v/10000)];
  458. }
  459. array_multisort($res,SORT_ASC);
  460. if($res){
  461. //将查询结果存入 Redis 缓存中
  462. $redis->set($redis_key, json_encode($res));
  463. echo date("Y-m-d H:i:s").' 存进去了';
  464. return json($res);
  465. }
  466. }
  467. //业务承揽收入情况(万元)->接口
  468. public function month_ywcl(){
  469. $data = input('post.');
  470. if(isset($data['dependence'])){
  471. $dependence = $data['dependence'];
  472. }else{
  473. $dependence['item']['value'] = '全部';
  474. }
  475. // 获取 Redis 数据
  476. $redis = redis();
  477. if($dependence['item']['value'] == '全部'){
  478. $result = json_decode($redis->get(md5('month_ywcls_redis')), true);
  479. }else{
  480. $result = json_decode($redis->get(md5('month_ywcl_redis')), true);
  481. }
  482. $name = '合同价格(万元)'; // 数据字段名
  483. $currentYear = date('Y'); // 当前年份
  484. $previousYear = $currentYear - 1; // 前一年
  485. // 初始化数据
  486. $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
  487. $list['series'] = [
  488. [
  489. 'name' => '同比增减百分比',
  490. 'type' => 'line',
  491. 'yAxisIndex' => 1,
  492. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  493. ],
  494. [
  495. 'name' => $previousYear . '年',
  496. 'type' => 'bar',
  497. 'yAxisIndex' => 0,
  498. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  499. ],
  500. [
  501. 'name' => $currentYear . '年',
  502. 'type' => 'bar',
  503. 'yAxisIndex' => 0,
  504. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  505. ]
  506. ];
  507. // 判断 Redis 数据是否为空
  508. if (!empty($result)) {
  509. foreach ($result as $k => $v) {
  510. if (isset($v['年月']) && $v['年月'] >= $currentYear . '-01') {
  511. // 获取对应月份的目标值(假设目标值存储在数据库中)
  512. $target = Db::name('targetmonth')
  513. ->where('name', '业务承揽收入情况')
  514. ->where('month', substr($v['年月'], -2, 2))
  515. ->value('month_target');
  516. // 计算同比增减百分比
  517. $monthIndex = (int)substr($v['年月'], -2, 2) - 1; // 月份索引
  518. $list['series'][0]['data'][$monthIndex] = isset($result[$k - 12]) && $result[$k - 12][$name] != 0
  519. ? round(($v[$name] - $result[$k - 12][$name]) / $result[$k - 12][$name] * 100, 2)
  520. : 0;
  521. // 当前年份数据
  522. $list['series'][2]['data'][$monthIndex] = round($v[$name]);
  523. } else {
  524. // 前一年数据
  525. if (isset($v['年月'])) {
  526. $monthIndex = (int)substr($v['年月'], -2, 2) - 1; // 月份索引
  527. $list['series'][1]['data'][$monthIndex] = round($v[$name]);
  528. }
  529. }
  530. }
  531. }
  532. // 设置返回数据
  533. $res['status'] = 0;
  534. $res['msg'] = '';
  535. $res['data'] = $list;
  536. return json($res);
  537. }
  538. // public function month_ywcl(){
  539. // $data = input('post.');
  540. // if(isset($data['dependence'])){
  541. // $dependence=$data['dependence'];
  542. // }else{
  543. // $dependence['item']['value']= '全部';
  544. // }
  545. // $redis = redis();
  546. // if($dependence['item']['value'] == '全部'){
  547. // $result = json_decode($redis->get(md5('month_ywcls_redis')),true);
  548. // }else{
  549. // $result = json_decode($redis->get(md5('month_ywcl_redis')),true);
  550. // }
  551. // $name='合同价格(万元)';
  552. //// $redis = redis();
  553. //// $result = json_decode($redis->get(md5('month_ywcl_redis')),true);
  554. // $list['categories']=[];
  555. // $list['series'][0]=[];
  556. // foreach($result as $k=>$v){
  557. // if($v['年月']>=date('Y').'-01'){
  558. // $target=Db::name('targetmonth')->where('name','业务承揽收入情况')->where('month',substr($v['年月'],-2,2))->value('month_target');
  559. // // $list['series'][0]['name']=date('Y').'指标达成率';
  560. // $list['series'][0]['name']='同比增减百分比';
  561. // $list['series'][0]['type']='line';
  562. // $list['series'][0]['yAxisIndex']=1;
  563. // // $list['series'][0]['data'][]=round($v[$name]/$target*100);
  564. // $list['series'][0]['data'][]=round(($v[$name]-$result[$k-12][$name])/$result[$k-12][$name]*100);
  565. // $list['series'][2]['name']=date('Y').'年';
  566. // $list['series'][2]['type']='bar';
  567. // $list['series'][2]['yAxisIndex']=0;
  568. // $list['series'][2]['data'][]=round($v[$name]);
  569. // }else{
  570. // $list['categories'][]=substr($v['年月'],-2,2);
  571. // $list['series'][1]['name']=(date('Y')-1).'年';
  572. // $list['series'][1]['type']='bar';
  573. // $list['series'][1]['yAxisIndex']=0;
  574. // $list['series'][1]['data'][]=round($v[$name]);
  575. // }
  576. // }
  577. // $res['status'] = 0;
  578. // $res['msg'] = '';
  579. // $res['data'] = $list;
  580. // return json($res);
  581. // }
  582. //加工收入情况(万元)->缓存 本级包含集团教材外
  583. public function month_jgsr_redis(){
  584. $redis=redis();
  585. $redis_key = md5('month_jgsr_redis');
  586. $field = [
  587. 'ldz',
  588. 'mcyd.icydid',
  589. 'year(mcyd.dcyrq) as 年',
  590. "DATE_FORMAT( mcyd.dcyrq, '%Y-%m') as 日期",
  591. 'sum(mcyd.nwshjje) nwshjje',
  592. 'sum(mcyd.nwsgjhj) nwsgjhj',
  593. 'sum(tjob.namount) namount',
  594. 'sum(tjob.namount) - sum(tjob.nclje * 100 / (100 + tjob.itax)) as sum_clje',
  595. 'tjob.itax',
  596. ];
  597. //当年
  598. $erp2023 = Db::table('mcyd')->field($field)
  599. ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
  600. ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->end_time()])
  601. ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
  602. ->where('mcyd.icydstate','>',0)
  603. ->select();
  604. foreach($erp2023 as $v){
  605. $list[$v['日期']]=0;
  606. }
  607. // 遍历查询结果,进行统计
  608. foreach ($erp2023 as $v){
  609. if($v['ldz'] == 1 ){
  610. $list[$v['日期']]+=$v['sum_clje'];
  611. }else{
  612. $list[$v['日期']]+=$v['nwsgjhj'];
  613. }
  614. }
  615. foreach($list as $k=>$v){
  616. $res[]=['日期'=>$k,'加工收入'=>round($v/10000)];
  617. }
  618. array_multisort($res,SORT_ASC);
  619. if($res){
  620. //将查询结果存入 Redis 缓存中
  621. $redis->set($redis_key, json_encode($res));
  622. echo date("Y-m-d H:i:s").' 存进去了';
  623. return json($res);
  624. }
  625. }
  626. //加工收入情况(万元)->缓存 全部包含集团教材外
  627. public function month_jgsrs_redis(){
  628. $redis=redis();
  629. $redis_key = md5('month_jgsrs_redis');
  630. $field = [
  631. 'ldz',
  632. 'mcyd.icydid',
  633. 'year(mcyd.dcyrq) as 年',
  634. "DATE_FORMAT( mcyd.dcyrq, '%Y-%m') as 日期",
  635. 'sum(mcyd.nwshjje) nwshjje',
  636. 'sum(mcyd.nwsgjhj) nwsgjhj',
  637. 'sum(tjob.namount) namount',
  638. 'sum(tjob.namount) - sum(tjob.nclje * 100 / (100 + tjob.itax)) as sum_clje',
  639. 'tjob.itax',
  640. ];
  641. //当年
  642. $erp2023 = Db::table('mcyd')->field($field)
  643. ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
  644. ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->end_time()])
  645. ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
  646. ->where('mcyd.icydstate','>',0)
  647. ->where('mcyd.chy','<>','集团教材外')
  648. ->select();
  649. foreach($erp2023 as $v){
  650. $list[$v['日期']]=0;
  651. }
  652. // 遍历查询结果,进行统计
  653. foreach ($erp2023 as $v){
  654. if($v['ldz'] == 1 ){
  655. $list[$v['日期']]+=$v['sum_clje'];
  656. }else{
  657. $list[$v['日期']]+=$v['nwsgjhj'];
  658. }
  659. }
  660. foreach($list as $k=>$v){
  661. $res[]=['日期'=>$k,'加工收入'=>round($v/10000)];
  662. }
  663. array_multisort($res,SORT_ASC);
  664. if($res){
  665. //将查询结果存入 Redis 缓存中
  666. $redis->set($redis_key, json_encode($res));
  667. echo date("Y-m-d H:i:s").' 存进去了';
  668. return json($res);
  669. }
  670. }
  671. //加工收入情况(万元)->接口
  672. public function month_jgsr() {
  673. $data = input('post.');
  674. if (isset($data['dependence'])) {
  675. $dependence = $data['dependence'];
  676. } else {
  677. $dependence['item']['value'] = '全部';
  678. }
  679. // 获取 Redis 数据
  680. $redis = redis();
  681. if ($dependence['item']['value'] == '全部') {
  682. $result = json_decode($redis->get(md5('month_jgsrs_redis')), true);
  683. } else {
  684. $result = json_decode($redis->get(md5('month_jgsr_redis')), true);
  685. }
  686. $name = '加工收入'; // 数据字段名
  687. $currentYear = date('Y'); // 当前年份
  688. $previousYear = $currentYear - 1; // 前一年
  689. // 初始化数据
  690. $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
  691. $list['series'] = [
  692. [
  693. 'name' => '同比增减百分比',
  694. 'type' => 'line',
  695. 'yAxisIndex' => 1,
  696. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  697. ],
  698. [
  699. 'name' => $previousYear . '年',
  700. 'type' => 'bar',
  701. 'yAxisIndex' => 0,
  702. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  703. ],
  704. [
  705. 'name' => $currentYear . '年',
  706. 'type' => 'bar',
  707. 'yAxisIndex' => 0,
  708. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  709. ]
  710. ];
  711. // 判断 Redis 数据是否为空
  712. if (!empty($result)) {
  713. foreach ($result as $k => $v) {
  714. if (isset($v['日期']) && $v['日期'] >= $currentYear . '-01') {
  715. // 获取目标值(假设目标值存储在数据库中)
  716. $target = Db::name('targetmonth')
  717. ->where('name', '加工收入情况')
  718. ->where('month', substr($v['日期'], -2, 2))
  719. ->value('month_target');
  720. // 计算同比增减百分比
  721. $monthIndex = (int)substr($v['日期'], -2, 2) - 1; // 月份索引
  722. $list['series'][0]['data'][$monthIndex] = isset($result[$k - 12]) && $result[$k - 12][$name] != 0
  723. ? round(($v[$name] - $result[$k - 12][$name]) / $result[$k - 12][$name] * 100, 2)
  724. : 0;
  725. // 当前年份数据
  726. $list['series'][2]['data'][$monthIndex] = round($v[$name]);
  727. } else {
  728. // 前一年数据
  729. if (isset($v['日期'])) {
  730. $monthIndex = (int)substr($v['日期'], -2, 2) - 1; // 月份索引
  731. $list['series'][1]['data'][$monthIndex] = round($v[$name]);
  732. }
  733. }
  734. }
  735. }
  736. // 设置返回数据
  737. $res['status'] = 0;
  738. $res['msg'] = '';
  739. $res['data'] = $list;
  740. return json($res);
  741. }
  742. // public function month_jgsr(){
  743. // $data = input('post.');
  744. // if(isset($data['dependence'])){
  745. // $dependence=$data['dependence'];
  746. // }else{
  747. // $dependence['item']['value']= '全部';
  748. // }
  749. // $redis = redis();
  750. // if($dependence['item']['value'] == '全部'){
  751. // $result = json_decode($redis->get(md5('month_jgsrs_redis')),true);
  752. // }else{
  753. // $result = json_decode($redis->get(md5('month_jgsr_redis')),true);
  754. // }
  755. //
  756. // // $name='加工收入(万元)';
  757. // $name='加工收入';
  758. //// $redis = redis();
  759. //// $result = json_decode($redis->get(md5('month_jgsr_redis')),true);
  760. // $list['categories']=[];
  761. // $list['series'][0]=[];
  762. // foreach($result as $k=>$v){
  763. // if($v['日期']>=date('Y').'-01'){
  764. // $target=Db::name('targetmonth')->where('name','加工收入情况')->where('month',substr($v['日期'],-2,2))->value('month_target');
  765. // $list['series'][0]['name']='同比增减百分比';
  766. // $list['series'][0]['type']='line';
  767. // $list['series'][0]['yAxisIndex']=1;
  768. // // $list['series'][0]['data'][]=round($v[$name]/$target*100);
  769. // $list['series'][0]['data'][]=round(($v[$name]-$result[$k-12][$name])/$result[$k-12][$name]*100);
  770. // $list['series'][2]['name']=date('Y').'年';
  771. // $list['series'][2]['type']='bar';
  772. // $list['series'][2]['yAxisIndex']=0;
  773. // $list['series'][2]['data'][]=round($v[$name]);
  774. // }else{
  775. // $list['categories'][]=substr($v['日期'],-2,2);
  776. // $list['series'][1]['name']=(date('Y')-1).'年';
  777. // $list['series'][1]['type']='bar';
  778. // $list['series'][1]['yAxisIndex']=0;
  779. // $list['series'][1]['data'][]=round($v[$name]);
  780. // }
  781. // }
  782. // $res['status'] = 0;
  783. // $res['msg'] = '';
  784. // $res['data'] = $list;
  785. // return json($res);
  786. // }
  787. //加工考核毛利收入情况(万元)->缓存 本级包含集团教材外
  788. public function month_jgml_redis(){
  789. $redis=redis();
  790. $redis_key = md5('month_jgml_redis');
  791. $res=Db::query("SELECT DATE_FORMAT(t.承印日期,'%Y-%m') 承印时间,
  792. Sum(t.印令) 总纸令,
  793. Sum(t.色令) 总色令,
  794. Sum(t.销售收入不含税) 总销售收入,
  795. Sum(t.销售收入工价不含税) 总销售工价,
  796. Sum(t.销售收入料价不含税) 总销售料价,
  797. Sum(t.不含税考核计算毛利)/10000 总销售毛利
  798. FROM (SELECT CASE
  799. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  800. ELSE '否'
  801. END 登账,
  802. DATE_FORMAT(DCYRQ,'%Y-%m-%d') AS 承印日期,
  803. ObjMatier.nysls AS 印令,
  804. ObjMatier.nyssl AS 色令,
  805. CYJLX AS 印件类型,
  806. CHY AS 活源,
  807. CASE
  808. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  809. ELSE
  810. CASE
  811. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  812. + CASE
  813. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  814. ELSE ( CASE
  815. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  816. ELSE ( CASE
  817. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  818. ELSE IFNULL(tj.sum_clje, 0)
  819. END )
  820. END )
  821. END = 0
  822. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  823. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  824. + CASE
  825. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  826. ELSE ( CASE
  827. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  828. ELSE ( CASE
  829. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  830. ELSE IFNULL(tj.sum_clje, 0)
  831. END )
  832. END )
  833. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  834. END
  835. END AS 不含税考核计算毛利,
  836. CASE
  837. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  838. ELSE
  839. CASE
  840. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  841. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  842. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  843. END
  844. END AS 考核计算工价毛利不含税,
  845. CASE
  846. WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0)
  847. ELSE IFNULL(tj.sum_namount, 0)
  848. END AS 销售收入不含税,
  849. CASE
  850. WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwsgjhj, 0)
  851. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0)
  852. END AS 销售收入工价不含税,
  853. CASE
  854. WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwsclhj, 0)
  855. ELSE IFNULL(tj.sum_clje, 0)
  856. END AS 销售收入料价不含税
  857. FROM MCYD Ord
  858. LEFT JOIN (SELECT ICYDID,
  859. Max(Nsc) AS Nsc
  860. FROM SCYDDX
  861. WHERE IDXLXID = 573
  862. GROUP BY ICYDID) AS Obj
  863. ON ord.ICYDID = Obj.ICYDID
  864. LEFT JOIN (SELECT ICYDID,
  865. Sum(NYSLS) AS nysls,
  866. Sum(nyssl) AS nyssl,
  867. Sum(nsyl) AS nsyl
  868. FROM SCYDDX
  869. GROUP BY ICYDID) AS ObjMatier
  870. ON Ord.ICYDID = ObjMatier.ICYDID
  871. LEFT JOIN (SELECT Sum(CASE
  872. WHEN hz.dz = 1 THEN hz.nhjje
  873. ELSE hz.传票预计价
  874. END) AS sum_nhjje_in,
  875. Sum(CASE
  876. WHEN hz.dz = 1 THEN hz.nhjje
  877. ELSE hz.传票预计价
  878. END) AS sum_ngjje_in,
  879. Sum(CASE
  880. WHEN hz.dz = 1 THEN hz.nclje
  881. ELSE hz.nclje
  882. END) AS sum_nclje_in,
  883. hz.ICYDID
  884. FROM (SELECT yjj.传票预计价单号,
  885. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  886. yjj.iCYDID,
  887. d.cjjdh 计价单号,
  888. d.ccydh 订单号,
  889. d.cbz 备注,
  890. d.ngjje,
  891. d.nclje,
  892. IFNULL(d.iwjg, 0) iwjg,
  893. IFNULL(d.lzfbs, 0) lzfbs,
  894. d.nhjje,
  895. IFNULL(d.ldz, 0) dz
  896. FROM (SELECT b.csccpbh 传票预计价单号,
  897. a.ccydh,
  898. a.icydid,
  899. Sum(c.fje) 传票预计价
  900. FROM mcyd a
  901. LEFT JOIN sccp b
  902. ON a.icydid = b.icydid
  903. LEFT JOIN ZbHjXm c
  904. ON c.sccpid = b.sccpid
  905. GROUP BY b.csccpbh,
  906. a.icydid,
  907. a.CCYDH) yjj
  908. LEFT JOIN tbluey d
  909. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  910. WHERE hz.iwjg = 0
  911. AND hz.lzfbs = 0
  912. GROUP BY hz.ICYDID) tb_in
  913. ON ord.icydid = tb_in.iCydid
  914. LEFT JOIN (SELECT fw.iCYDID,
  915. sum_nhjje_out,
  916. sum_ngjje_out,
  917. sum_nclje_out,
  918. bz.cbz
  919. FROM (SELECT Cast(Sum(( CASE
  920. WHEN hz.dz = 1
  921. OR hz.dz = -1 THEN hz.nhjje
  922. ELSE hz.传票预计价
  923. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  924. Cast(Sum(( CASE
  925. WHEN hz.dz = 1
  926. OR hz.dz = -1 THEN hz.nhjje
  927. ELSE hz.传票预计价
  928. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  929. Cast(Sum(CASE
  930. WHEN hz.dz = 1
  931. OR hz.dz = -1 THEN hz.nclje
  932. ELSE hz.nclje
  933. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  934. iCydid
  935. FROM (SELECT yjj.传票预计价单号,
  936. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  937. yjj.iCYDID,
  938. d.cjjdh 计价单号,
  939. d.ccydh 订单号,
  940. d.cbz 备注,
  941. d.ngjje,
  942. d.nclje,
  943. d.itax,
  944. IFNULL(d.iwjg, 0) iwjg,
  945. IFNULL(d.lzfbs, 0) lzfbs,
  946. d.nhjje,
  947. IFNULL(d.ldz, 0) dz
  948. FROM (SELECT b.csccpbh 传票预计价单号,
  949. a.ccydh,
  950. a.icydid,
  951. Sum(c.fje) 传票预计价
  952. FROM mcyd a
  953. LEFT JOIN sccp b
  954. ON a.icydid = b.icydid
  955. LEFT JOIN ZbHjXm c
  956. ON c.sccpid = b.sccpid
  957. GROUP BY b.csccpbh,
  958. a.icydid,
  959. a.CCYDH) yjj
  960. LEFT JOIN tbluey d
  961. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  962. WHERE hz.iwjg = 1
  963. AND hz.lzfbs = 0
  964. GROUP BY hz.ICYDID) fw
  965. LEFT JOIN (SELECT icydid,
  966. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  967. WHERE icydid = a.icydid) AS cbz
  968. FROM TBluey a
  969. GROUP BY icydid) bz
  970. ON bz.icydid = fw.iCYDID) tb_out
  971. ON ord.icydid = tb_out.iCydid
  972. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  973. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  974. iCydid,
  975. CASE
  976. WHEN ldz = 1 THEN 1
  977. ELSE 0
  978. END ldz
  979. FROM TJob
  980. WHERE lzfbs = 0
  981. GROUP BY iCydid,
  982. nclje,
  983. itax,
  984. ldz) tj
  985. ON ord.ICYDID = tj.iCydid
  986. WHERE ord.ICYDSTATE > 0) t
  987. WHERE T.承印日期 >= '{$this->qstart_time()}'
  988. AND T.承印日期 <= '{$this->end_time()}'
  989. GROUP BY 承印时间
  990. ORDER BY 承印时间");
  991. if($res){
  992. //将查询结果存入 Redis 缓存中
  993. $redis->set($redis_key, json_encode($res));
  994. echo date("Y-m-d H:i:s").' 存进去了';
  995. return json($res);
  996. }
  997. }
  998. //加工考核毛利收入情况(万元)->缓存 全部包含集团教材外
  999. public function month_jgmls_redis(){
  1000. $redis=redis();
  1001. $redis_key = md5('month_jgmls_redis');
  1002. $res=Db::query("SELECT DATE_FORMAT(t.承印日期,'%Y-%m') 承印时间,
  1003. Sum(t.印令) 总纸令,
  1004. Sum(t.色令) 总色令,
  1005. Sum(t.销售收入不含税) 总销售收入,
  1006. Sum(t.销售收入工价不含税) 总销售工价,
  1007. Sum(t.销售收入料价不含税) 总销售料价,
  1008. Sum(t.不含税考核计算毛利)/10000 总销售毛利
  1009. FROM (SELECT CASE
  1010. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  1011. ELSE '否'
  1012. END 登账,
  1013. DATE_FORMAT(DCYRQ,'%Y-%m-%d') AS 承印日期,
  1014. ObjMatier.nysls AS 印令,
  1015. ObjMatier.nyssl AS 色令,
  1016. CYJLX AS 印件类型,
  1017. CHY AS 活源,
  1018. CASE
  1019. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  1020. ELSE
  1021. CASE
  1022. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  1023. + CASE
  1024. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  1025. ELSE ( CASE
  1026. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  1027. ELSE ( CASE
  1028. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  1029. ELSE IFNULL(tj.sum_clje, 0)
  1030. END )
  1031. END )
  1032. END = 0
  1033. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  1034. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  1035. + CASE
  1036. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  1037. ELSE ( CASE
  1038. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  1039. ELSE ( CASE
  1040. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  1041. ELSE IFNULL(tj.sum_clje, 0)
  1042. END )
  1043. END )
  1044. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  1045. END
  1046. END AS 不含税考核计算毛利,
  1047. CASE
  1048. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  1049. ELSE
  1050. CASE
  1051. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  1052. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  1053. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  1054. END
  1055. END AS 考核计算工价毛利不含税,
  1056. CASE
  1057. WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0)
  1058. ELSE IFNULL(tj.sum_namount, 0)
  1059. END AS 销售收入不含税,
  1060. CASE
  1061. WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwsgjhj, 0)
  1062. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0)
  1063. END AS 销售收入工价不含税,
  1064. CASE
  1065. WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwsclhj, 0)
  1066. ELSE IFNULL(tj.sum_clje, 0)
  1067. END AS 销售收入料价不含税
  1068. FROM MCYD Ord
  1069. LEFT JOIN (SELECT ICYDID,
  1070. Max(Nsc) AS Nsc
  1071. FROM SCYDDX
  1072. WHERE IDXLXID = 573
  1073. GROUP BY ICYDID) AS Obj
  1074. ON ord.ICYDID = Obj.ICYDID
  1075. LEFT JOIN (SELECT ICYDID,
  1076. Sum(NYSLS) AS nysls,
  1077. Sum(nyssl) AS nyssl,
  1078. Sum(nsyl) AS nsyl
  1079. FROM SCYDDX
  1080. GROUP BY ICYDID) AS ObjMatier
  1081. ON Ord.ICYDID = ObjMatier.ICYDID
  1082. LEFT JOIN (SELECT Sum(CASE
  1083. WHEN hz.dz = 1 THEN hz.nhjje
  1084. ELSE hz.传票预计价
  1085. END) AS sum_nhjje_in,
  1086. Sum(CASE
  1087. WHEN hz.dz = 1 THEN hz.nhjje
  1088. ELSE hz.传票预计价
  1089. END) AS sum_ngjje_in,
  1090. Sum(CASE
  1091. WHEN hz.dz = 1 THEN hz.nclje
  1092. ELSE hz.nclje
  1093. END) AS sum_nclje_in,
  1094. hz.ICYDID
  1095. FROM (SELECT yjj.传票预计价单号,
  1096. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  1097. yjj.iCYDID,
  1098. d.cjjdh 计价单号,
  1099. d.ccydh 订单号,
  1100. d.cbz 备注,
  1101. d.ngjje,
  1102. d.nclje,
  1103. IFNULL(d.iwjg, 0) iwjg,
  1104. IFNULL(d.lzfbs, 0) lzfbs,
  1105. d.nhjje,
  1106. IFNULL(d.ldz, 0) dz
  1107. FROM (SELECT b.csccpbh 传票预计价单号,
  1108. a.ccydh,
  1109. a.icydid,
  1110. Sum(c.fje) 传票预计价
  1111. FROM mcyd a
  1112. LEFT JOIN sccp b
  1113. ON a.icydid = b.icydid
  1114. LEFT JOIN ZbHjXm c
  1115. ON c.sccpid = b.sccpid
  1116. GROUP BY b.csccpbh,
  1117. a.icydid,
  1118. a.CCYDH) yjj
  1119. LEFT JOIN tbluey d
  1120. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  1121. WHERE hz.iwjg = 0
  1122. AND hz.lzfbs = 0
  1123. GROUP BY hz.ICYDID) tb_in
  1124. ON ord.icydid = tb_in.iCydid
  1125. LEFT JOIN (SELECT fw.iCYDID,
  1126. sum_nhjje_out,
  1127. sum_ngjje_out,
  1128. sum_nclje_out,
  1129. bz.cbz
  1130. FROM (SELECT Cast(Sum(( CASE
  1131. WHEN hz.dz = 1
  1132. OR hz.dz = -1 THEN hz.nhjje
  1133. ELSE hz.传票预计价
  1134. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  1135. Cast(Sum(( CASE
  1136. WHEN hz.dz = 1
  1137. OR hz.dz = -1 THEN hz.nhjje
  1138. ELSE hz.传票预计价
  1139. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  1140. Cast(Sum(CASE
  1141. WHEN hz.dz = 1
  1142. OR hz.dz = -1 THEN hz.nclje
  1143. ELSE hz.nclje
  1144. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  1145. iCydid
  1146. FROM (SELECT yjj.传票预计价单号,
  1147. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  1148. yjj.iCYDID,
  1149. d.cjjdh 计价单号,
  1150. d.ccydh 订单号,
  1151. d.cbz 备注,
  1152. d.ngjje,
  1153. d.nclje,
  1154. d.itax,
  1155. IFNULL(d.iwjg, 0) iwjg,
  1156. IFNULL(d.lzfbs, 0) lzfbs,
  1157. d.nhjje,
  1158. IFNULL(d.ldz, 0) dz
  1159. FROM (SELECT b.csccpbh 传票预计价单号,
  1160. a.ccydh,
  1161. a.icydid,
  1162. Sum(c.fje) 传票预计价
  1163. FROM mcyd a
  1164. LEFT JOIN sccp b
  1165. ON a.icydid = b.icydid
  1166. LEFT JOIN ZbHjXm c
  1167. ON c.sccpid = b.sccpid
  1168. GROUP BY b.csccpbh,
  1169. a.icydid,
  1170. a.CCYDH) yjj
  1171. LEFT JOIN tbluey d
  1172. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  1173. WHERE hz.iwjg = 1
  1174. AND hz.lzfbs = 0
  1175. GROUP BY hz.ICYDID) fw
  1176. LEFT JOIN (SELECT icydid,
  1177. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  1178. WHERE icydid = a.icydid) AS cbz
  1179. FROM TBluey a
  1180. GROUP BY icydid) bz
  1181. ON bz.icydid = fw.iCYDID) tb_out
  1182. ON ord.icydid = tb_out.iCydid
  1183. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  1184. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  1185. iCydid,
  1186. CASE
  1187. WHEN ldz = 1 THEN 1
  1188. ELSE 0
  1189. END ldz
  1190. FROM TJob
  1191. WHERE lzfbs = 0
  1192. GROUP BY iCydid,
  1193. nclje,
  1194. itax,
  1195. ldz) tj
  1196. ON ord.ICYDID = tj.iCydid
  1197. WHERE ord.ICYDSTATE > 0 AND chy != '集团教材外') t
  1198. WHERE T.承印日期 >= '{$this->qstart_time()}'
  1199. AND T.承印日期 <= '{$this->end_time()}'
  1200. GROUP BY 承印时间
  1201. ORDER BY 承印时间");
  1202. if($res){
  1203. //将查询结果存入 Redis 缓存中
  1204. $redis->set($redis_key, json_encode($res));
  1205. echo date("Y-m-d H:i:s").' 存进去了';
  1206. return json($res);
  1207. };
  1208. }
  1209. //加工考核毛利收入情况(万元)->接口
  1210. public function month_jgml() {
  1211. $data = input('post.');
  1212. if (isset($data['dependence'])) {
  1213. $dependence = $data['dependence'];
  1214. } else {
  1215. $dependence['item']['value'] = '全部';
  1216. }
  1217. // 获取 Redis 数据
  1218. $redis = redis();
  1219. if ($dependence['item']['value'] == '全部') {
  1220. $result = json_decode($redis->get(md5('month_jgmls_redis')), true);
  1221. } else {
  1222. $result = json_decode($redis->get(md5('month_jgml_redis')), true);
  1223. }
  1224. $name = '总销售毛利'; // 数据字段名
  1225. $currentYear = date('Y'); // 当前年份
  1226. $previousYear = $currentYear - 1; // 前一年
  1227. // 初始化数据
  1228. $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
  1229. $list['series'] = [
  1230. [
  1231. 'name' => '同比增减率百分比',
  1232. 'type' => 'line',
  1233. 'yAxisIndex' => 1,
  1234. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  1235. ],
  1236. [
  1237. 'name' => $previousYear . '年',
  1238. 'type' => 'bar',
  1239. 'yAxisIndex' => 0,
  1240. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  1241. ],
  1242. [
  1243. 'name' => $currentYear . '年',
  1244. 'type' => 'bar',
  1245. 'yAxisIndex' => 0,
  1246. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  1247. ]
  1248. ];
  1249. // 判断 Redis 数据是否为空
  1250. if (!empty($result)) {
  1251. foreach ($result as $k => $v) {
  1252. if (isset($v['承印时间']) && $v['承印时间'] >= $currentYear . '-01') {
  1253. // 计算同比增减率百分比
  1254. $monthIndex = (int)substr($v['承印时间'], -2, 2) - 1; // 获取月份索引
  1255. $list['series'][0]['data'][$monthIndex] = isset($result[$k - 12]) && $result[$k - 12][$name] != 0
  1256. ? round(($v[$name] - $result[$k - 12][$name]) / $result[$k - 12][$name] * 100, 2)
  1257. : 0;
  1258. // 当前年份数据
  1259. $list['series'][2]['data'][$monthIndex] = round($v[$name]);
  1260. } else {
  1261. if (isset($v['承印时间'])) {
  1262. // 前一年数据
  1263. $monthIndex = (int)substr($v['承印时间'], -2, 2) - 1; // 获取月份索引
  1264. $list['series'][1]['data'][$monthIndex] = round($v[$name]);
  1265. }
  1266. }
  1267. }
  1268. }
  1269. // 设置返回数据
  1270. $res['status'] = 0;
  1271. $res['msg'] = '';
  1272. $res['data'] = $list;
  1273. return json($res);
  1274. }
  1275. // public function month_jgml(){
  1276. //// $redis = redis();
  1277. //// $result = json_decode($redis->get(md5('month_jgmls_redis')),true);
  1278. //
  1279. // $data = input('post.');
  1280. // if(isset($data['dependence'])){
  1281. // $dependence=$data['dependence'];
  1282. // }else{
  1283. // $dependence['item']['value']= '全部';
  1284. // }
  1285. // $redis = redis();
  1286. // if($dependence['item']['value'] == '全部'){
  1287. // $result = json_decode($redis->get(md5('month_jgmls_redis')),true);
  1288. // }else{
  1289. // $result = json_decode($redis->get(md5('month_jgml_redis')),true);
  1290. // }
  1291. //
  1292. // // $name='加工毛利收入(万元)';
  1293. // $name='总销售毛利';
  1294. //// $redis = redis();
  1295. //// $result = json_decode($redis->get(md5('month_jgml_redis')),true);
  1296. // $list['categories']=[];
  1297. // $list['series'][0]=[];
  1298. // foreach($result as $k=>$v){
  1299. // // if($v['年月']>=date('Y').'-01'){
  1300. // if($v['承印时间']>=date('Y').'-01'){
  1301. // // $target=Db::name('targetmonth')->where('name','加工毛利收入情况')->where('month',substr($v['年月'],-2,2))->value('month_target');
  1302. // // $list['series'][0]['name']=date('Y').'指标达成率';
  1303. // $list['series'][0]['name']='同比增减率百分比';
  1304. // $list['series'][0]['type']='line';
  1305. // $list['series'][0]['yAxisIndex']=1;
  1306. // // $list['series'][0]['data'][]=round($v[$name]/$target*100);
  1307. // $list['series'][0]['data'][]=round(($v[$name]-$result[$k-12][$name])/$result[$k-12][$name]*100);
  1308. // $list['series'][2]['name']=date('Y').'年';
  1309. // $list['series'][2]['type']='bar';
  1310. // $list['series'][2]['yAxisIndex']=0;
  1311. // $list['series'][2]['data'][]=round($v[$name]);
  1312. // }else{
  1313. // // $list['categories'][]=substr($v['年月'],-2,2);
  1314. // $list['categories'][]=substr($v['承印时间'],-2,2);
  1315. // $list['series'][1]['name']=(date('Y')-1).'年';
  1316. // $list['series'][1]['type']='bar';
  1317. // $list['series'][1]['yAxisIndex']=0;
  1318. // $list['series'][1]['data'][]=round($v[$name]);
  1319. // }
  1320. // }
  1321. // $res['status'] = 0;
  1322. // $res['msg'] = '';
  1323. // $res['data'] = $list;
  1324. // return json($res);
  1325. // }
  1326. /**
  1327. * 各版块业务承揽收入占比一览表
  1328. */
  1329. //CONCAT(LTRIM(CAST((SUM(db.集团出版社销售收入) * 100 / (SUM(db.总销售收入) - IFNULL(SUM(db.集团教材外销售收入), 0))) AS DECIMAL(10, 2)))) AS 系统图书,
  1330. //Ltrim(Cast((Sum(db.总销售收入-IFNULL(db.期刊销售收入, 0)-IFNULL(db.集团出版社销售收入, 0)-IFNULL(db.集团教材内销售收入, 0)-IFNULL(db.集团教材外销售收入, 0)-IFNULL(db.外贸订单销售收入, 0))*100/ NULLIF(Sum(db.总销售收入-IFNULL(db.集团教材外销售收入, 0)), 0)) AS DECIMAL(10, 2))) + '%' 社会图书,
  1331. //CONCAT(LTRIM(CAST((SUM(db.外贸订单销售收入) * 100 / (SUM(db.总销售收入) - IFNULL(SUM(db.集团教材外销售收入), 0))) AS DECIMAL(10, 2)))) AS 外贸板块,
  1332. //CONCAT(LTRIM(CAST((SUM(db.期刊销售收入) * 100 / (SUM(db.总销售收入) - IFNULL(SUM(db.集团教材外销售收入), 0))) AS DECIMAL(10, 2)))) AS 期刊板块,
  1333. //CONCAT(LTRIM(CAST((SUM(db.集团教材内销售收入) * 100 / (SUM(db.总销售收入) - IFNULL(SUM(db.集团教材外销售收入), 0))) AS DECIMAL(10, 2)))) AS 教材板块,
  1334. //LTRIM(CAST((100 - SUM(db.总销售收入 - IFNULL(db.集团教材外销售收入, 0)) * 100 / NULLIF(SUM(db.总销售收入), 0)) AS DECIMAL(10, 2))) + '%' AS 过账业务,
  1335. //当年各版块业务承揽收入与占比一览表->缓存
  1336. public function percentageasc_redis(){
  1337. $redis = redis();
  1338. $redis_key = md5('percentageasc_redis');
  1339. $firstDayOfYear = date("Y-01-01");
  1340. $today = date("Y-m-d");
  1341. $sql = "SELECT
  1342. CONCAT(LTRIM(CAST((SUM(db.集团出版社销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 系统图书,
  1343. CONCAT(LTRIM(CAST(((SUM(db.其它板块销售收入) + SUM(db.上海出版社订单销售收入)) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 社会图书,
  1344. -- Ltrim(Cast((Sum(db.总销售收入-IFNULL(db.期刊销售收入, 0)-IFNULL(db.集团出版社销售收入, 0)-IFNULL(db.集团教材内销售收入, 0)-IFNULL(db.外贸订单销售收入, 0))*100/ NULLIF(Sum(db.总销售收入), 0)) AS DECIMAL(10, 2))) + '%' 社会图书,
  1345. CONCAT(LTRIM(CAST((SUM(db.外贸订单销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 外贸板块,
  1346. CONCAT(LTRIM(CAST((SUM(db.期刊销售收入) * 100 / (SUM(db.总销售收入))) AS DECIMAL(10, 2)))) AS 期刊板块,
  1347. CONCAT(LTRIM(CAST((SUM(db.集团教材内销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 教材板块,
  1348. CONCAT(TRIM(CAST(ROUND(SUM(db.集团教材外销售收入) / 10000, 2) * 100 / ROUND(SUM(db.总销售收入) / 10000, 2) AS DECIMAL(10, 2)))) AS '过账业务',
  1349. -- db.总销售收入 AS '总销售收入',
  1350. CAST(ROUND(SUM(db.总销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '总销售收入',
  1351. -- SUM(db.上海出版社订单销售收入) AS '上海出版社订单销售收入',
  1352. CAST(ROUND(SUM(db.上海出版社订单销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '上海出版社订单销售收入',
  1353. CAST(ROUND(SUM(db.集团出版社销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '系统图书(万元)',
  1354. CAST(ROUND(SUM(db.其它板块销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '社会图书(万元)',
  1355. CAST(ROUND(SUM(db.外贸订单销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '外贸板块(万元)',
  1356. CAST(ROUND(SUM(db.期刊销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '期刊板块(万元)',
  1357. CAST(ROUND(SUM(db.集团教材内销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '教材板块(万元)',
  1358. CAST(ROUND((SUM(db.总销售收入) - SUM(db.本级销售收入)) / 10000, 2) AS DECIMAL(10, 2)) AS '过账业务(万元)'
  1359. FROM
  1360. (SELECT DISTINCT
  1361. a.承印日期 日期,
  1362. t5.总销售收入,
  1363. t5.总销售收入 - IFNULL(t3.集团教材外销售收入, 0) 本级销售收入,
  1364. G.期刊销售收入,
  1365. T1.集团出版社销售收入,
  1366. t2.集团教材内销售收入,
  1367. t3.集团教材外销售收入,
  1368. t4.外贸订单销售收入,
  1369. t6.上海出版社订单销售收入,
  1370. t5.总销售收入 - IFNULL(G.期刊销售收入, 0) - IFNULL(T1.集团出版社销售收入, 0) - IFNULL(t2.集团教材内销售收入, 0) - IFNULL(t3.集团教材外销售收入, 0) - IFNULL(t4.外贸订单销售收入, 0) - IFNULL(t6.上海出版社订单销售收入, 0) 其它板块销售收入
  1371. FROM
  1372. (SELECT DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期 FROM MCYD) a
  1373. LEFT JOIN (SELECT dd.承印日期 承印时间,SUM(dd.不含税销售收入) 期刊销售收入 FROM
  1374. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1375. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型,
  1376. CHY 活源,
  1377. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 不含税销售收入
  1378. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1379. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz) tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND (CHY = '集团期刊' OR CHY = '社会期刊')) dd GROUP BY dd.承印日期) G ON g.承印时间 = a.承印日期
  1380. LEFT JOIN (SELECT t.承印日期 承印时间,Sum(t.不含税销售收入) 集团出版社销售收入 FROM
  1381. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1382. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1383. CYJLX 印件类型,
  1384. CHY 活源,
  1385. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 不含税销售收入
  1386. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1387. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz) tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND CHY = '集团出版社') t GROUP BY T.承印日期) T1 ON T1.承印时间 = a.承印日期
  1388. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 集团教材内销售收入 FROM
  1389. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1390. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1391. CYJLX 印件类型,
  1392. CHY 活源,
  1393. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1394. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1395. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz)tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND CHY = '集团教材内' AND CYWDWMC = '浙江出版传媒股份有限公司') t GROUP BY T.承印日期) T2 ON T2.承印时间 = a.承印日期
  1396. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 集团教材外销售收入 FROM
  1397. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1398. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1399. CYJLX 印件类型,
  1400. CHY 活源,
  1401. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1402. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1403. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz) tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND CHY = '集团教材外') t GROUP BY T.承印日期) T3 ON T3.承印时间 = a.承印日期
  1404. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 外贸订单销售收入 FROM
  1405. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1406. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1407. CYJLX 印件类型,
  1408. CHY 活源,
  1409. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1410. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1411. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz)tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND CHY = '外贸订单') t GROUP BY T.承印日期) T4 ON T4.承印时间 = a.承印日期
  1412. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 总销售收入 FROM
  1413. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1414. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1415. CYJLX 印件类型,
  1416. CHY 活源,
  1417. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1418. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1419. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz) tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0) t GROUP BY T.承印日期) T5 ON T5.承印时间 = a.承印日期
  1420. LEFT JOIN (SELECT t.承印日期 承印时间,Sum(t.销售收入不含税) 上海出版社订单销售收入 FROM
  1421. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1422. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1423. CYJLX 印件类型,
  1424. CHY 活源,
  1425. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1426. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1427. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz) tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND CHY = '上海出版社') t GROUP BY T.承印日期) T6 ON T6.承印时间 = a.承印日期
  1428. )db WHERE 1 = 1
  1429. AND db.日期 >= '{$firstDayOfYear}'
  1430. AND db.日期 <= '{$today}'";
  1431. $res=Db::query($sql);
  1432. //将查询结果存入 Redis 缓存中
  1433. if ($res) {
  1434. $redis->set($redis_key, json_encode($res));
  1435. echo date("Y-m-d H:i:s").' 存进去了';
  1436. return json($res);
  1437. }
  1438. }
  1439. //去年各版块业务承揽收入与占比一览表->缓存
  1440. public function q_percentageasc_redis(){
  1441. $redis = redis();
  1442. $redis_key = md5('q_percentageasc_redis');
  1443. $firstDayOfLastYear = date("Y-01-01", strtotime("last year"));
  1444. $todayLastYear = date("Y-m-d", strtotime("last year"));
  1445. $sql = "SELECT
  1446. CONCAT(LTRIM(CAST((SUM(db.集团出版社销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 系统图书,
  1447. CONCAT(LTRIM(CAST(((SUM(db.其它板块销售收入) + SUM(db.上海出版社订单销售收入)) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 社会图书,
  1448. -- Ltrim(Cast((Sum(db.总销售收入-IFNULL(db.期刊销售收入, 0)-IFNULL(db.集团出版社销售收入, 0)-IFNULL(db.集团教材内销售收入, 0)-IFNULL(db.外贸订单销售收入, 0))*100/ NULLIF(Sum(db.总销售收入), 0)) AS DECIMAL(10, 2))) + '%' 社会图书,
  1449. CONCAT(LTRIM(CAST((SUM(db.外贸订单销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 外贸板块,
  1450. CONCAT(LTRIM(CAST((SUM(db.期刊销售收入) * 100 / (SUM(db.总销售收入))) AS DECIMAL(10, 2)))) AS 期刊板块,
  1451. CONCAT(LTRIM(CAST((SUM(db.集团教材内销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 教材板块,
  1452. CONCAT(TRIM(CAST(ROUND(SUM(db.集团教材外销售收入) / 10000, 2) * 100 / ROUND(SUM(db.总销售收入) / 10000, 2) AS DECIMAL(10, 2)))) AS '过账业务',
  1453. -- db.总销售收入 AS '总销售收入',
  1454. CAST(ROUND(SUM(db.总销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '总销售收入',
  1455. -- SUM(db.上海出版社订单销售收入) AS '上海出版社订单销售收入',
  1456. CAST(ROUND(SUM(db.上海出版社订单销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '上海出版社订单销售收入',
  1457. CAST(ROUND(SUM(db.集团出版社销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '系统图书(万元)',
  1458. CAST(ROUND(SUM(db.其它板块销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '社会图书(万元)',
  1459. CAST(ROUND(SUM(db.外贸订单销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '外贸板块(万元)',
  1460. CAST(ROUND(SUM(db.期刊销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '期刊板块(万元)',
  1461. CAST(ROUND(SUM(db.集团教材内销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '教材板块(万元)',
  1462. CAST(ROUND((SUM(db.总销售收入) - SUM(db.本级销售收入)) / 10000, 2) AS DECIMAL(10, 2)) AS '过账业务(万元)'
  1463. FROM
  1464. (SELECT DISTINCT
  1465. a.承印日期 日期,
  1466. t5.总销售收入,
  1467. t5.总销售收入 - IFNULL(t3.集团教材外销售收入, 0) 本级销售收入,
  1468. G.期刊销售收入,
  1469. T1.集团出版社销售收入,
  1470. t2.集团教材内销售收入,
  1471. t3.集团教材外销售收入,
  1472. t4.外贸订单销售收入,
  1473. t6.上海出版社订单销售收入,
  1474. t5.总销售收入 - IFNULL(G.期刊销售收入, 0) - IFNULL(T1.集团出版社销售收入, 0) - IFNULL(t2.集团教材内销售收入, 0) - IFNULL(t3.集团教材外销售收入, 0) - IFNULL(t4.外贸订单销售收入, 0) - IFNULL(t6.上海出版社订单销售收入, 0) 其它板块销售收入
  1475. FROM
  1476. (SELECT DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期 FROM MCYD) a
  1477. LEFT JOIN (SELECT dd.承印日期 承印时间,SUM(dd.不含税销售收入) 期刊销售收入 FROM
  1478. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1479. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型,
  1480. CHY 活源,
  1481. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 不含税销售收入
  1482. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1483. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz) tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND (CHY = '集团期刊' OR CHY = '社会期刊')) dd GROUP BY dd.承印日期) G ON g.承印时间 = a.承印日期
  1484. LEFT JOIN (SELECT t.承印日期 承印时间,Sum(t.不含税销售收入) 集团出版社销售收入 FROM
  1485. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1486. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1487. CYJLX 印件类型,
  1488. CHY 活源,
  1489. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 不含税销售收入
  1490. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1491. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz) tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND CHY = '集团出版社') t GROUP BY T.承印日期) T1 ON T1.承印时间 = a.承印日期
  1492. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 集团教材内销售收入 FROM
  1493. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1494. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1495. CYJLX 印件类型,
  1496. CHY 活源,
  1497. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1498. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1499. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz)tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND CHY = '集团教材内' AND CYWDWMC = '浙江出版传媒股份有限公司') t GROUP BY T.承印日期) T2 ON T2.承印时间 = a.承印日期
  1500. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 集团教材外销售收入 FROM
  1501. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1502. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1503. CYJLX 印件类型,
  1504. CHY 活源,
  1505. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1506. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1507. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz) tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND CHY = '集团教材外') t GROUP BY T.承印日期) T3 ON T3.承印时间 = a.承印日期
  1508. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 外贸订单销售收入 FROM
  1509. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1510. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1511. CYJLX 印件类型,
  1512. CHY 活源,
  1513. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1514. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1515. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz)tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND CHY = '外贸订单') t GROUP BY T.承印日期) T4 ON T4.承印时间 = a.承印日期
  1516. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 总销售收入 FROM
  1517. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1518. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1519. CYJLX 印件类型,
  1520. CHY 活源,
  1521. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1522. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1523. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz) tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0) t GROUP BY T.承印日期) T5 ON T5.承印时间 = a.承印日期
  1524. LEFT JOIN (SELECT t.承印日期 承印时间,Sum(t.销售收入不含税) 上海出版社订单销售收入 FROM
  1525. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1526. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1527. CYJLX 印件类型,
  1528. CHY 活源,
  1529. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1530. FROM MCYD Ord LEFT JOIN (SELECT SUM(namount) AS sum_namount, ROUND(SUM(nclje * 100 / (100 + itax)), 2) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END AS ldz
  1531. FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz) tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND CHY = '上海出版社') t GROUP BY T.承印日期) T6 ON T6.承印时间 = a.承印日期
  1532. )db WHERE 1 = 1
  1533. AND db.日期 >= '{$firstDayOfLastYear}' AND db.日期 <= '{$todayLastYear}'";
  1534. $res=Db::query($sql);
  1535. //将查询结果存入 Redis 缓存中
  1536. if ($res) {
  1537. $redis->set($redis_key, json_encode($res));
  1538. echo date("Y-m-d H:i:s").' 存进去了';
  1539. return json($res);
  1540. }
  1541. // $redis->set($redis_key, json_encode($res));
  1542. // echo date("Y-m-d H:i:s").' 存进去了';
  1543. // return json($res);
  1544. }
  1545. //各版块业务承揽收入与占比一览表->接口
  1546. public function tecl_list() {
  1547. $redis = redis();
  1548. $result = json_decode($redis->get(md5('percentageasc_redis')), true);
  1549. $qresult = json_decode($redis->get(md5('q_percentageasc_redis')), true);
  1550. // 初始化返回数据
  1551. $list = [
  1552. 'categories' => ['系统图书', '社会业务', '外贸板块', '期刊板块', '教材板块', '其他业务'],
  1553. 'series' => []
  1554. ];
  1555. // 判断数据是否为空
  1556. if (empty($result) || empty($qresult)) {
  1557. $res = [
  1558. 'status' => 0,
  1559. 'msg' => '暂无数据',
  1560. 'data' => $list
  1561. ];
  1562. return json($res);
  1563. }
  1564. // 去年与今年收入占比
  1565. foreach ($result as $index => $rv) {
  1566. $list['series'][0]['name'] = '同比增减百分比';
  1567. $list['series'][0]['type'] = 'line';
  1568. $list['series'][0]['yAxisIndex'] = 1;
  1569. // 确保数据不为 0,避免除以 0 的错误
  1570. $currentValueSystem = $rv['系统图书(万元)'] ?: 1;
  1571. $currentValueSocial = $rv['社会图书(万元)'] ?: 1;
  1572. $currentValueTrade = $rv['外贸板块(万元)'] ?: 1;
  1573. $currentValueJournal = $rv['期刊板块(万元)'] ?: 1;
  1574. $currentValueTextbook = $rv['教材板块(万元)'] ?: 1;
  1575. $currentValuePosting = $rv['过账业务(万元)'] ?: 1;
  1576. $qcurrentValueSystem = $qresult[$index]['系统图书(万元)'] ?: 1;
  1577. $qcurrentValueSocial = $qresult[$index]['社会图书(万元)'] ?: 1;
  1578. $qcurrentValueTrade = $qresult[$index]['外贸板块(万元)'] ?: 1;
  1579. $qcurrentValueJournal = $qresult[$index]['期刊板块(万元)'] ?: 1;
  1580. $qcurrentValueTextbook = $qresult[$index]['教材板块(万元)'] ?: 1;
  1581. $qcurrentValuePosting = $qresult[$index]['过账业务(万元)'] ?: 1;
  1582. // 计算同比增减百分比
  1583. // 计算同比增减百分比,避免除以 0 的错误
  1584. $list['series'][0]['data'][] = $qcurrentValueSystem != 0
  1585. ? round((($currentValueSystem - $qcurrentValueSystem) / $qcurrentValueSystem) * 100, 2)
  1586. : 0;
  1587. $list['series'][0]['data'][] = $qcurrentValueSocial != 0
  1588. ? round((($currentValueSocial - $qcurrentValueSocial) / $qcurrentValueSocial) * 100, 2)
  1589. : 0;
  1590. $list['series'][0]['data'][] = $qcurrentValueTrade != 0
  1591. ? round((($currentValueTrade - $qcurrentValueTrade) / $qcurrentValueTrade) * 100, 2)
  1592. : 0;
  1593. $list['series'][0]['data'][] = $qcurrentValueJournal != 0
  1594. ? round((($currentValueJournal - $qcurrentValueJournal) / $qcurrentValueJournal) * 100, 2)
  1595. : 0;
  1596. $list['series'][0]['data'][] = $qcurrentValueTextbook != 0
  1597. ? round((($currentValueTextbook - $qcurrentValueTextbook) / $qcurrentValueTextbook) * 100, 2)
  1598. : 0;
  1599. $list['series'][0]['data'][] = $qcurrentValuePosting != 0
  1600. ? round((($currentValuePosting - $qcurrentValuePosting) / $qcurrentValuePosting) * 100, 2)
  1601. : 0;
  1602. }
  1603. // 去年数据
  1604. foreach ($qresult as $v) {
  1605. $list['series'][1]['name'] = (date('Y') - 1) . '年';
  1606. $list['series'][1]['type'] = 'bar';
  1607. $list['series'][1]['yAxisIndex'] = 0;
  1608. $list['series'][1]['data'][] = round($v['系统图书(万元)']);
  1609. $list['series'][1]['data'][] = round($v['社会图书(万元)'] + $v['上海出版社订单销售收入']);
  1610. $list['series'][1]['data'][] = round($v['外贸板块(万元)']);
  1611. $list['series'][1]['data'][] = round($v['期刊板块(万元)']);
  1612. $list['series'][1]['data'][] = round($v['教材板块(万元)']);
  1613. $list['series'][1]['data'][] = round($v['过账业务(万元)']);
  1614. }
  1615. // 当年数据
  1616. foreach ($result as $v) {
  1617. $list['series'][2]['name'] = date('Y') . '年';
  1618. $list['series'][2]['type'] = 'bar';
  1619. $list['series'][2]['yAxisIndex'] = 0;
  1620. $list['series'][2]['data'][] = round($v['系统图书(万元)']);
  1621. $list['series'][2]['data'][] = round($v['社会图书(万元)'] + $v['上海出版社订单销售收入']);
  1622. $list['series'][2]['data'][] = round($v['外贸板块(万元)']);
  1623. $list['series'][2]['data'][] = round($v['期刊板块(万元)']);
  1624. $list['series'][2]['data'][] = round($v['教材板块(万元)']);
  1625. $list['series'][2]['data'][] = round($v['过账业务(万元)']);
  1626. }
  1627. // 返回结果
  1628. $res = [
  1629. 'status' => 0,
  1630. 'msg' => '',
  1631. 'data' => $list
  1632. ];
  1633. return json($res);
  1634. }
  1635. // public function tecl_list(){
  1636. // $redis = redis();
  1637. // $result = json_decode($redis->get(md5('percentageasc_redis')),true);
  1638. //
  1639. // $qresult = json_decode($redis->get(md5('q_percentageasc_redis')),true);
  1640. // $list['categories']=['系统图书','社会业务','外贸板块','期刊板块','教材板块','其他业务'];
  1641. // //去年与今年收入占比
  1642. // foreach ($result as $index => $rv) {
  1643. // $list['series'][0]['name'] = '同比增减百分比';
  1644. // $list['series'][0]['type'] = 'line';
  1645. // $list['series'][0]['yAxisIndex'] = 1;
  1646. // // 确保2023年的收入不为0,如果为0则使用1代替,以避免除以0的错误
  1647. // $currentValueSystem = $rv['系统图书(万元)'] ?: 1;
  1648. // $currentValueSocial = $rv['社会图书(万元)'] ?: 1;
  1649. // $currentValueTrade = $rv['外贸板块(万元)'] ?: 1;
  1650. // $currentValueJournal = $rv['期刊板块(万元)'] ?: 1;
  1651. // $currentValueTextbook = $rv['教材板块(万元)'] ?: 1;
  1652. // $currentValuePosting = $rv['过账业务(万元)'] ?: 1;
  1653. //
  1654. // $qcurrentValueSystem = $qresult[$index]['系统图书(万元)'] ?: 1;
  1655. // $qcurrentValueSocial = $qresult[$index]['社会图书(万元)'] ?: 1;
  1656. // $qcurrentValueTrade = $qresult[$index]['外贸板块(万元)'] ?: 1;
  1657. // $qcurrentValueJournal = $qresult[$index]['期刊板块(万元)'] ?: 1;
  1658. // $qcurrentValueTextbook = $qresult[$index]['教材板块(万元)'] ?: 1;
  1659. // $qcurrentValuePosting = $qresult[$index]['过账业务(万元)'] ?: 1;
  1660. //
  1661. // // 计算2023年收入占2022年收入的百分比
  1662. // $list['series'][0]['data'][] = round((($currentValueSystem - $qcurrentValueSystem) / $qcurrentValueSystem) * 100, 2);
  1663. // $list['series'][0]['data'][] = round((($currentValueSocial - $qcurrentValueSocial) / $qcurrentValueSocial) * 100, 2);
  1664. // $list['series'][0]['data'][] = round((($currentValueTrade - $qcurrentValueTrade) / $qcurrentValueTrade) * 100, 2);
  1665. // $list['series'][0]['data'][] = round((($currentValueJournal - $qcurrentValueJournal) / $qcurrentValueJournal) * 100, 2);
  1666. // $list['series'][0]['data'][] = round((($currentValueTextbook - $qcurrentValueTextbook) / $qcurrentValueTextbook) * 100, 2);
  1667. // $list['series'][0]['data'][] = round((($currentValuePosting - $qcurrentValuePosting) / $qcurrentValuePosting) * 100, 2);
  1668. // }
  1669. // //去年
  1670. // foreach($qresult as $v){
  1671. // $list['series'][1]['name']=(date('Y')-1).'年';
  1672. // $list['series'][1]['type']='bar';
  1673. // $list['series'][1]['yAxisIndex']=0;
  1674. // $list['series'][1]['data'][]=round($v['系统图书(万元)']);
  1675. // $list['series'][1]['data'][]=round($v['社会图书(万元)'] + $v['上海出版社订单销售收入']);
  1676. // $list['series'][1]['data'][]=round($v['外贸板块(万元)']);
  1677. // $list['series'][1]['data'][]=round($v['期刊板块(万元)']);
  1678. // $list['series'][1]['data'][]=round($v['教材板块(万元)']);
  1679. // $list['series'][1]['data'][]=round($v['过账业务(万元)']);
  1680. // }
  1681. // //当年
  1682. // foreach($result as $v){
  1683. // $list['series'][2]['name']=date('Y').'年';
  1684. // $list['series'][2]['type']='bar';
  1685. // $list['series'][2]['yAxisIndex']=0;
  1686. // $list['series'][2]['data'][]=round($v['系统图书(万元)']);
  1687. // $list['series'][2]['data'][]=round($v['社会图书(万元)'] + $v['上海出版社订单销售收入']);
  1688. // $list['series'][2]['data'][]=round($v['外贸板块(万元)']);
  1689. // $list['series'][2]['data'][]=round($v['期刊板块(万元)']);
  1690. // $list['series'][2]['data'][]=round($v['教材板块(万元)']);
  1691. // $list['series'][2]['data'][]=round($v['过账业务(万元)']);
  1692. // }
  1693. // $res['status'] = 0;
  1694. // $res['msg'] = '';
  1695. // $res['data'] = $list;
  1696. // return json($res);
  1697. // }
  1698. //各版块业务承揽收入与占比百分比前三(左侧)->接口
  1699. public function percentageasc(){
  1700. $redis = redis();
  1701. $result = json_decode($redis->get(md5('percentageasc_redis')),true);
  1702. $list = [];
  1703. // 判断 $result 是否为空
  1704. if(empty($result) || $result == null) {
  1705. $list[0]['name'] = ' ';
  1706. $list[0]['value'] = 0;
  1707. $list[1]['name'] = ' ';
  1708. $list[1]['value'] = 0;
  1709. $list[2]['name'] = ' ';
  1710. $list[2]['value'] = 0;
  1711. } else {
  1712. foreach($result as $v){
  1713. $list[0]['name'] = ' ';
  1714. $list[0]['value'] = empty($v['系统图书']) ? 0 : $v['系统图书'];
  1715. $list[1]['name'] = ' ';
  1716. $list[1]['value'] = empty($v['外贸板块']) ? 0 : $v['外贸板块'];
  1717. $list[2]['name'] = ' ';
  1718. $list[2]['value'] = empty($v['教材板块']) ? 0 : $v['教材板块'];
  1719. }
  1720. }
  1721. $res['status'] = 0;
  1722. $res['msg'] = '';
  1723. $res['data'] = $list;
  1724. return json($res);
  1725. }
  1726. //各版块业务承揽收入与占比百分比后三(右侧)->接口
  1727. public function percentagedesc(){
  1728. $redis = redis();
  1729. $result = json_decode($redis->get(md5('percentageasc_redis')),true);
  1730. $list = [];
  1731. // 判断 $result 是否为空
  1732. if(empty($result) || $result == null) {
  1733. $list[0]['name'] = ' ';
  1734. $list[0]['value'] = 0;
  1735. $list[1]['name'] = ' ';
  1736. $list[1]['value'] = 0;
  1737. $list[2]['name'] = ' ';
  1738. $list[2]['value'] = 0;
  1739. } else {
  1740. foreach($result as $v){
  1741. $list[0]['name'] = ' ';
  1742. $list[0]['value'] = empty($v['社会图书']) ? 0 : $v['社会图书'];
  1743. $list[1]['name'] = ' ';
  1744. $list[1]['value'] = empty($v['期刊板块']) ? 0 : $v['期刊板块'];
  1745. $list[2]['name'] = ' ';
  1746. $list[2]['value'] = empty($v['过账业务']) ? 0 : $v['过账业务'];
  1747. }
  1748. }
  1749. $res['status'] = 0;
  1750. $res['msg'] = '';
  1751. $res['data'] = $list;
  1752. return json($res);
  1753. }
  1754. /**
  1755. * 图书板块业务结构分析
  1756. */
  1757. //特殊开本、16开、大32开、小16开->缓存
  1758. public function book_one_redis(){
  1759. $redis = redis();
  1760. $redis_key = md5('book_one_redis');
  1761. $sql = "SELECT
  1762. *
  1763. FROM
  1764. (
  1765. SELECT
  1766. 1 AS 序号,
  1767. aa.年份,
  1768. '开本' AS 分类,
  1769. aa.类别,
  1770. ROUND(SUM(aa.nyssl) / 10000, 2) AS '色令(万)',
  1771. ROUND(SUM(aa.nyssl) * 100.0 / SUM(SUM(aa.nyssl)) OVER (PARTITION BY aa.年份), 2) AS 占比
  1772. FROM
  1773. (
  1774. SELECT
  1775. YEAR(a.DCYRQ) AS 年份,
  1776. a.CCYDH,
  1777. a.CYJMC,
  1778. b.NKB,
  1779. CASE
  1780. WHEN a.CZWKB like '16%' THEN '16开'
  1781. WHEN a.CZWKB like '小16%' THEN '小16开'
  1782. WHEN a.CZWKB like '大16%' THEN '大16开'
  1783. WHEN a.CZWKB like '32%' THEN '32开'
  1784. WHEN a.CZWKB like '大32%' THEN '大32开'
  1785. ELSE '特殊开本'
  1786. END AS 类别,
  1787. b.CDXMC,
  1788. b.nyssl
  1789. FROM
  1790. MCYD a
  1791. LEFT JOIN SCYDDX b ON a.ICYDID = b.ICYDID
  1792. WHERE
  1793. 1 = 1
  1794. AND a.DCYRQ BETWEEN '{$this->start_time()}' AND '{$this->end_time()}'
  1795. ) aa
  1796. GROUP BY
  1797. aa.年份,
  1798. aa.类别
  1799. ) bb
  1800. ORDER BY
  1801. bb.占比 DESC;";
  1802. $res=Db::query($sql);
  1803. // echo "<pre>";print_r($res);echo "</pre>";die;
  1804. //将查询结果存入 Redis 缓存中
  1805. $redis->set($redis_key, json_encode($res));
  1806. echo date("Y-m-d H:i:s").' 存进去了';
  1807. return json($res);
  1808. }
  1809. //32开->接口
  1810. public function book_one_dsek() {
  1811. $name = '32开';
  1812. $redis = redis();
  1813. $result = json_decode($redis->get(md5('book_one_redis')), true);
  1814. // 初始化返回数据
  1815. $res = [];
  1816. $res['status'] = 0;
  1817. $res['msg'] = '';
  1818. $res['data'] = 0; // 默认返回 0
  1819. // 如果数据非空,进行筛选处理
  1820. if (!empty($result)) {
  1821. foreach ($result as $v) {
  1822. if ($v['类别'] == $name) {
  1823. $res['data'] = $v['占比'];
  1824. break; // 找到匹配项后退出循环
  1825. }
  1826. }
  1827. }
  1828. return json($res);
  1829. }
  1830. // 小16开->接口
  1831. public function book_one_xslk(){
  1832. $name='小16开';
  1833. $redis = redis();
  1834. $result = json_decode($redis->get(md5('book_one_redis')),true);
  1835. // 初始化返回数据
  1836. $res = [];
  1837. $res['status'] = 0;
  1838. $res['msg'] = '';
  1839. $res['data'] = 0; // 默认返回 0
  1840. // 如果数据非空,进行筛选处理
  1841. if (!empty($result)) {
  1842. foreach ($result as $v) {
  1843. if ($v['类别'] == $name) {
  1844. $res['data'] = $v['占比'];
  1845. break; // 找到匹配项后退出循环
  1846. }
  1847. }
  1848. }
  1849. return json($res);
  1850. }
  1851. // 特殊开本->接口
  1852. public function book_one_tskb(){
  1853. $name='特殊开本';
  1854. $redis = redis();
  1855. $result = json_decode($redis->get(md5('book_one_redis')),true);
  1856. // 初始化返回数据
  1857. $res = [];
  1858. $res['status'] = 0;
  1859. $res['msg'] = '';
  1860. $res['data'] = 0; // 默认返回 0
  1861. // 如果数据非空,进行筛选处理
  1862. if (!empty($result)) {
  1863. foreach ($result as $v) {
  1864. if ($v['类别'] == $name) {
  1865. $res['data'] = $v['占比'];
  1866. break; // 找到匹配项后退出循环
  1867. }
  1868. }
  1869. }
  1870. return json($res);
  1871. }
  1872. // 16开->接口
  1873. public function book_one_slk(){
  1874. $name='16开';
  1875. $redis = redis();
  1876. $result = json_decode($redis->get(md5('book_one_redis')),true);
  1877. // 初始化返回数据
  1878. $res = [];
  1879. $res['status'] = 0;
  1880. $res['msg'] = '';
  1881. $res['data'] = 0; // 默认返回 0
  1882. // 如果数据非空,进行筛选处理
  1883. if (!empty($result)) {
  1884. foreach ($result as $v) {
  1885. if ($v['类别'] == $name) {
  1886. $res['data'] = $v['占比'];
  1887. break; // 找到匹配项后退出循环
  1888. }
  1889. }
  1890. }
  1891. return json($res);
  1892. }
  1893. // 大16开->接口
  1894. public function book_one_dslk(){
  1895. $name='大16开';
  1896. $redis = redis();
  1897. $result = json_decode($redis->get(md5('book_one_redis')),true);
  1898. // 初始化返回数据
  1899. $res = [];
  1900. $res['status'] = 0;
  1901. $res['msg'] = '';
  1902. $res['data'] = 0; // 默认返回 0
  1903. // 如果数据非空,进行筛选处理
  1904. if (!empty($result)) {
  1905. foreach ($result as $v) {
  1906. if ($v['类别'] == $name) {
  1907. $res['data'] = $v['占比'];
  1908. break; // 找到匹配项后退出循环
  1909. }
  1910. }
  1911. }
  1912. return json($res);
  1913. }
  1914. // 大32开->接口
  1915. public function book_one_selk(){
  1916. $name='大32开';
  1917. $redis = redis();
  1918. $result = json_decode($redis->get(md5('book_one_redis')),true);
  1919. // 初始化返回数据
  1920. $res = [];
  1921. $res['status'] = 0;
  1922. $res['msg'] = '';
  1923. $res['data'] = 0; // 默认返回 0
  1924. // 如果数据非空,进行筛选处理
  1925. if (!empty($result)) {
  1926. foreach ($result as $v) {
  1927. if ($v['类别'] == $name) {
  1928. $res['data'] = $v['占比'];
  1929. break; // 找到匹配项后退出循环
  1930. }
  1931. }
  1932. }
  1933. return json($res);
  1934. }
  1935. //单色、彩色、双色->缓存
  1936. public function book_two_redis(){
  1937. $redis = redis();
  1938. $redis_key = md5('book_two_redis');
  1939. $sql = "SELECT
  1940. 1 AS 序号,
  1941. aa.年份,
  1942. '彩色化' AS 分类,
  1943. aa.类别,
  1944. ROUND(SUM(aa.nyssl) / 10000, 2) AS '色令(万)',
  1945. ROUND(SUM(aa.nyssl) * 100.0 / SUM(SUM(aa.nyssl)) OVER (PARTITION BY aa.年份), 2) AS 占比
  1946. FROM
  1947. (
  1948. SELECT
  1949. YEAR(a.DCYRQ) AS 年份,
  1950. a.CCYDH,
  1951. a.CYJMC,
  1952. b.CSC,
  1953. CASE
  1954. WHEN b.CSC IN ('1/1', '1/0', '0/1') THEN '单色'
  1955. WHEN b.CSC IN ('2/2', '2/0', '0/2', '2/1', '1/2') THEN '双色'
  1956. ELSE '彩色'
  1957. END AS 类别,
  1958. b.CDXMC,
  1959. b.nyssl
  1960. FROM
  1961. MCYD a
  1962. LEFT JOIN SCYDDX b ON a.ICYDID = b.ICYDID
  1963. WHERE
  1964. 1 = 1
  1965. AND a.DCYRQ BETWEEN '{$this->start_time()}' AND '{$this->end_time()}'
  1966. ) aa
  1967. GROUP BY
  1968. aa.年份,
  1969. aa.类别
  1970. ORDER BY
  1971. 占比 DESC;";
  1972. $res=Db::query($sql);
  1973. // echo "<pre>";print_r($res);echo "</pre>";die;
  1974. //将查询结果存入 Redis 缓存中
  1975. $redis->set($redis_key, json_encode($res));
  1976. echo date("Y-m-d H:i:s").' 存进去了';
  1977. return json($res);
  1978. }
  1979. // 单色->接口
  1980. public function book_two_ds(){
  1981. $name='单色';
  1982. $redis = redis();
  1983. $result = json_decode($redis->get(md5('book_two_redis')),true);
  1984. // 初始化返回数据
  1985. $res = [];
  1986. $res['status'] = 0;
  1987. $res['msg'] = '';
  1988. $res['data'] = 0; // 默认返回 0
  1989. // 如果数据非空,进行筛选处理
  1990. if (!empty($result)) {
  1991. foreach ($result as $v) {
  1992. if ($v['类别'] == $name) {
  1993. $res['data'] = $v['占比'];
  1994. break; // 找到匹配项后退出循环
  1995. }
  1996. }
  1997. }
  1998. return json($res);
  1999. }
  2000. //彩色->接口
  2001. public function book_two_cs(){
  2002. $name='彩色';
  2003. $redis = redis();
  2004. $result = json_decode($redis->get(md5('book_two_redis')),true);
  2005. // 初始化返回数据
  2006. $res = [];
  2007. $res['status'] = 0;
  2008. $res['msg'] = '';
  2009. $res['data'] = 0; // 默认返回 0
  2010. // 如果数据非空,进行筛选处理
  2011. if (!empty($result)) {
  2012. foreach ($result as $v) {
  2013. if ($v['类别'] == $name) {
  2014. $res['data'] = $v['占比'];
  2015. break; // 找到匹配项后退出循环
  2016. }
  2017. }
  2018. }
  2019. return json($res);
  2020. }
  2021. // 双色->接口
  2022. public function book_two_ss(){
  2023. $name='双色';
  2024. $redis = redis();
  2025. $result = json_decode($redis->get(md5('book_two_redis')),true);
  2026. // 初始化返回数据
  2027. $res = [];
  2028. $res['status'] = 0;
  2029. $res['msg'] = '';
  2030. $res['data'] = 0; // 默认返回 0
  2031. // 如果数据非空,进行筛选处理
  2032. if (!empty($result)) {
  2033. foreach ($result as $v) {
  2034. if ($v['类别'] == $name) {
  2035. $res['data'] = $v['占比'];
  2036. break; // 找到匹配项后退出循环
  2037. }
  2038. }
  2039. }
  2040. return json($res);
  2041. }
  2042. //无线胶钉、锁线胶钉、裸背锁线、骑马钉、平背精装、圆背精装->缓存
  2043. public function book_third_redis(){
  2044. $redis = redis();
  2045. $redis_key = md5('book_third_redis');
  2046. $sql = "SELECT
  2047. 1 AS 序号,
  2048. aa.年份,
  2049. '订法' AS 分类,
  2050. aa.类别,
  2051. ROUND(SUM(aa.nyssl) / 10000, 2) AS '色令(万)',
  2052. ROUND(SUM(aa.nyssl) * 100.0 / SUM(SUM(aa.nyssl)) OVER (PARTITION BY aa.年份), 2) AS 占比
  2053. FROM
  2054. (
  2055. SELECT
  2056. YEAR(a.DCYRQ) AS 年份,
  2057. a.CCYDH,
  2058. a.CYJMC,
  2059. CASE
  2060. WHEN a.CDF = '无线胶订' THEN '无线胶订'
  2061. WHEN a.CDF = '圆背精装' THEN '圆背精装'
  2062. WHEN a.CDF = '索线胶订' THEN '索线胶订'
  2063. WHEN a.CDF = '裸背锁线' THEN '裸背锁线'
  2064. WHEN a.CDF = '骑订' THEN '骑订'
  2065. ELSE '其他'
  2066. END AS 类别,
  2067. b.CDXMC,
  2068. b.nyssl
  2069. FROM
  2070. MCYD a
  2071. LEFT JOIN SCYDDX b ON a.ICYDID = b.ICYDID
  2072. WHERE
  2073. 1 = 1
  2074. AND a.DCYRQ BETWEEN '{$this->start_time()}' AND '{$this->end_time()}'
  2075. ) aa
  2076. GROUP BY
  2077. aa.年份,
  2078. aa.类别
  2079. ORDER BY
  2080. 占比 DESC;";
  2081. $res=Db::query($sql);
  2082. // echo "<pre>";print_r($res);echo "</pre>";die;
  2083. //将查询结果存入 Redis 缓存中
  2084. $redis->set($redis_key, json_encode($res));
  2085. echo date("Y-m-d H:i:s").' 存进去了';
  2086. return json($res);
  2087. }
  2088. // 无线胶订->接口
  2089. public function book_third_wxjd(){
  2090. $name = '无线胶订';
  2091. $redis = redis();
  2092. $result = json_decode($redis->get(md5('book_third_redis')), true);
  2093. $res = [];
  2094. $res['status'] = 0;
  2095. $res['msg'] = '';
  2096. $res['data'] = 0; // 默认占比为0
  2097. foreach ($result as $v) {
  2098. if ($v['类别'] == $name) {
  2099. $res['data'] = $v['占比'];
  2100. break; // 匹配到后跳出循环,无需继续查找
  2101. }
  2102. }
  2103. return json($res);
  2104. }
  2105. // 索线胶订->接口
  2106. public function book_third_sxjd(){
  2107. $name='索线胶订';
  2108. $redis = redis();
  2109. $result = json_decode($redis->get(md5('book_third_redis')), true);
  2110. $res = [];
  2111. $res['status'] = 0;
  2112. $res['msg'] = '';
  2113. $res['data'] = 0; // 默认占比为0
  2114. foreach ($result as $v) {
  2115. if ($v['类别'] == $name) {
  2116. $res['data'] = $v['占比'];
  2117. break; // 匹配到后跳出循环,无需继续查找
  2118. }
  2119. }
  2120. return json($res);
  2121. }
  2122. // 圆背精装->接口
  2123. public function book_third_ybjz(){
  2124. $name='圆背精装';
  2125. $redis = redis();
  2126. $result = json_decode($redis->get(md5('book_third_redis')), true);
  2127. $res = [];
  2128. $res['status'] = 0;
  2129. $res['msg'] = '';
  2130. $res['data'] = 0; // 默认占比为0
  2131. foreach ($result as $v) {
  2132. if ($v['类别'] == $name) {
  2133. $res['data'] = $v['占比'];
  2134. break; // 匹配到后跳出循环,无需继续查找
  2135. }
  2136. }
  2137. return json($res);
  2138. }
  2139. // 骑马订->接口
  2140. public function book_third_qmd(){
  2141. $name='骑订';
  2142. $redis = redis();
  2143. $result = json_decode($redis->get(md5('book_third_redis')), true);
  2144. $res = [];
  2145. $res['status'] = 0;
  2146. $res['msg'] = '';
  2147. $res['data'] = 0; // 默认占比为0
  2148. foreach ($result as $v) {
  2149. if ($v['类别'] == $name) {
  2150. $res['data'] = $v['占比'];
  2151. break; // 匹配到后跳出循环,无需继续查找
  2152. }
  2153. }
  2154. return json($res);
  2155. }
  2156. // 裸背锁线->接口
  2157. public function book_third_lbsx(){
  2158. $name='裸背锁线';
  2159. $redis = redis();
  2160. $result = json_decode($redis->get(md5('book_third_redis')), true);
  2161. $res = [];
  2162. $res['status'] = 0;
  2163. $res['msg'] = '';
  2164. $res['data'] = 0; // 默认占比为0
  2165. foreach ($result as $v) {
  2166. if ($v['类别'] == $name) {
  2167. $res['data'] = $v['占比'];
  2168. break; // 匹配到后跳出循环,无需继续查找
  2169. }
  2170. }
  2171. return json($res);
  2172. }
  2173. // 平背精装->接口
  2174. public function book_third_pbjz(){
  2175. $name='其他';
  2176. $redis = redis();
  2177. $result = json_decode($redis->get(md5('book_third_redis')), true);
  2178. $res = [];
  2179. $res['status'] = 0;
  2180. $res['msg'] = '';
  2181. $res['data'] = 0; // 默认占比为0
  2182. foreach ($result as $v) {
  2183. if ($v['类别'] == $name) {
  2184. $res['data'] = $v['占比'];
  2185. break; // 匹配到后跳出循环,无需继续查找
  2186. }
  2187. }
  2188. return json($res);
  2189. }
  2190. //重版书、新书-缓存->缓存
  2191. public function book_fouth_redis(){
  2192. $redis = redis();
  2193. $redis_key = md5('book_fouth_redis');
  2194. $sql = "SELECT
  2195. 1 AS 序号,
  2196. aa.年份,
  2197. '新书/重版' AS 分类,
  2198. aa.类别,
  2199. ROUND(SUM(aa.nyssl) / 10000, 2) AS '色令(万)',
  2200. ROUND(SUM(aa.nyssl) / SUM(SUM(aa.nyssl)) OVER (PARTITION BY aa.年份) * 100, 2) AS 占比
  2201. FROM
  2202. (SELECT
  2203. YEAR(a.DCYRQ) AS 年份,
  2204. a.CCYDH,
  2205. a.CYJMC,
  2206. CASE
  2207. WHEN IFNULL(a.CYC, 0) = 1 THEN '新书'
  2208. WHEN IFNULL(a.CYC, 0) = 0 THEN '其他'
  2209. ELSE '重版书'
  2210. END AS 类别,
  2211. b.CDXMC,
  2212. b.nyssl
  2213. FROM
  2214. MCYD a
  2215. LEFT JOIN SCYDDX b ON a.ICYDID = b.ICYDID
  2216. WHERE
  2217. 1 = 1
  2218. AND a.DCYRQ BETWEEN '{$this->start_time()}' AND '{$this->end_time()}') aa
  2219. GROUP BY
  2220. aa.年份,
  2221. aa.类别
  2222. ORDER BY
  2223. aa.类别 DESC";
  2224. $res=Db::query($sql);
  2225. // echo "<pre>";print_r($res);echo "</pre>";die;
  2226. //将查询结果存入 Redis 缓存中
  2227. $redis->set($redis_key, json_encode($res));
  2228. echo date("Y-m-d H:i:s").' 存进去了';
  2229. return json($res);
  2230. }
  2231. // 重版书->接口
  2232. public function book_fouth_cbs(){
  2233. $name='重版书';
  2234. $redis = redis();
  2235. $result = json_decode($redis->get(md5('book_fouth_redis')),true);
  2236. // 初始化返回数据
  2237. $res = [];
  2238. $res['status'] = 0;
  2239. $res['msg'] = '';
  2240. $res['data'] = 0; // 默认返回 0
  2241. // 如果数据非空,进行筛选处理
  2242. if (!empty($result)) {
  2243. foreach ($result as $v) {
  2244. if ($v['类别'] == $name) {
  2245. $res['data'] = $v['占比'];
  2246. break; // 找到匹配项后退出循环
  2247. }
  2248. }
  2249. }
  2250. return json($res);
  2251. }
  2252. // 新书->接口
  2253. public function book_fouth_xs(){
  2254. $redis = redis();
  2255. $result = json_decode($redis->get(md5('book_fouth_redis')),true);
  2256. $categories = ['新书', '其他'];
  2257. $totalPercentage = 0;
  2258. foreach ($result as $v) {
  2259. if (in_array($v['类别'], $categories)) {
  2260. $totalPercentage += $v['占比'];
  2261. }
  2262. }
  2263. $res=[];
  2264. $res['status'] = 0;
  2265. $res['msg'] = '';
  2266. $res['data'] = $totalPercentage;
  2267. return json($res);
  2268. // $name='新书';
  2269. // $redis = redis();
  2270. // $result = json_decode($redis->get(md5('book_fouth_redis')),true);
  2271. // echo "<pre>";
  2272. // print_r($result);
  2273. // echo "<pre>";
  2274. // $res=[];
  2275. // $res['status'] = 0;
  2276. // $res['msg'] = '';
  2277. // foreach($result as $v){
  2278. // if($v['类别']==$name){
  2279. // $res['data'] = $v['占比'];
  2280. // }
  2281. // }
  2282. // return json($res);
  2283. }
  2284. /**
  2285. * 第二页(客户分析)
  2286. */
  2287. //当日承揽订单量,每日承揽订单金额->缓存
  2288. public function yesterday_amount_redis(){
  2289. $redis = redis();
  2290. $redis_key = md5('yesterday_amount_redis');
  2291. $sql = "SELECT aa.承印日期,COUNT(aa.订单号) 订单量,SUM(aa.合同金额)订单金额,SUM(aa.nwshjje)未税订单金额
  2292. FROM (SELECT CONVERT(a.DCYRQ,CHAR(10)) 承印日期,
  2293. a.CCYDH 订单号,
  2294. a.CYWDWMC 委印单位,
  2295. a.CYJMC 印件名称,
  2296. a.NJSHJJE 合同金额,
  2297. a.nwshjje
  2298. FROM MCYD a
  2299. WHERE CONVERT(a.DCYRQ,CHAR(10)) = CONVERT(DATE_SUB(NOW(),INTERVAL 0 DAY),CHAR(10)))aa
  2300. GROUP BY aa.承印日期 ";
  2301. $result=Db::query($sql);
  2302. $res['status']=0;
  2303. $res['msg']='';
  2304. if($result==[]){
  2305. $res['data']=[['name'=>' ','value'=>0],['name'=>' ','value'=>0]];
  2306. }else{
  2307. $res['data']=[['name'=>' ','value'=>$result[0]['订单量']],['name'=>' ','value'=>round($result[0]['未税订单金额']/10000)]];
  2308. }
  2309. //将查询结果存入 Redis 缓存中
  2310. $redis->set($redis_key, json_encode($res));
  2311. echo date("Y-m-d H:i:s").' 存进去了';
  2312. return json($res);
  2313. }
  2314. //当日承揽订单量,每日承揽订单金额->接口
  2315. public function yesterday_amount(){
  2316. $redis = redis();
  2317. $result = $redis->get(md5('yesterday_amount_redis'));
  2318. return $result;
  2319. }
  2320. //年度承揽收入前五客户业务结构分析->缓存
  2321. public function chenglanshouru_redis_ssssss(){
  2322. $redis = redis();
  2323. $redis_key = md5('chenglanshouru_redis');
  2324. $sql = "
  2325. SELECT cc.客户,
  2326. cc.印数 总册数,
  2327. cc.销售收入(万元),
  2328. bb.印法,
  2329. bb.分类,
  2330. cast( bb.色令 as decimal(18,0)) 色令
  2331. FROM (SELECT aa.客户,
  2332. aa.印数,
  2333. Cast(aa.销售收入 AS DECIMAL(18, 2)) AS '销售收入(万元)'
  2334. FROM (SELECT zb.业务单位 客户,
  2335. SUM(zb.印数) 印数,
  2336. IFnull(Sum(zb.合并金额), 0.000) / 10000 销售收入
  2337. FROM (SELECT CASE
  2338. WHEN IFnull(ldz, 0) = 1 THEN '是'
  2339. ELSE '否'
  2340. END 登账,
  2341. CONVERT( DCYRQ, CHAR(10)) AS 承印日期,
  2342. CCYDH AS 订单号,
  2343. ord.IFCYDID,
  2344. CYJMC AS 印件名称,
  2345. CASE
  2346. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2347. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2348. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2349. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2350. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2351. OR CYWDWMC='浙江省新华书店集团有限公司'
  2352. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2353. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2354. WHEN CYWDWMC='浙江日报报业集团'
  2355. OR CYWDWMC='共产党员杂志社'
  2356. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2357. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2358. OR CYWDWMC='浙江出版传媒有限公司'
  2359. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2360. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2361. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2362. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2363. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2364. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2365. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2366. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2367. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2368. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2369. WHEN CYWDWMC='上海人民出版社有限公司'
  2370. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2371. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2372. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2373. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2374. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2375. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2376. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2377. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2378. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2379. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2380. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2381. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2382. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2383. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2384. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2385. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2386. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2387. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2388. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2389. ELSE CYWDWMC
  2390. END AS 业务单位,
  2391. cyjlx 印件类型,
  2392. NCS AS 印数,
  2393. CZWKB AS 开本,
  2394. CDF AS 订法,
  2395. NZWYZ AS 正文印张,
  2396. CASE
  2397. WHEN IFnull(ldz, 0) = 0 THEN( IFnull(nwshjje, 0) )
  2398. ELSE ( IFnull(tj.sum_namount, 0) )
  2399. END 合并金额
  2400. FROM MCYD Ord
  2401. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  2402. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  2403. iCydid,
  2404. CASE
  2405. WHEN ldz = 1 THEN 1
  2406. ELSE 0
  2407. END ldz
  2408. FROM TJob
  2409. WHERE lzfbs = 0
  2410. GROUP BY iCydid,
  2411. nclje,
  2412. itax,
  2413. ldz) tj
  2414. ON ord.ICYDID = tj.iCydid
  2415. WHERE ord.ICYDSTATE > 0) zb
  2416. WHERE CONVERT(zb.承印日期, CHAR(10)) >= '{$this->start_time()}'
  2417. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$this->end_time()}'
  2418. GROUP BY zb.业务单位) aa
  2419. ORDER BY aa.销售收入 DESC LIMIT 5)cc
  2420. LEFT JOIN (SELECT CYWDWMC,
  2421. CYF 印法,
  2422. CASE
  2423. WHEN cyf = '彩轮' THEN '彩色轮转'
  2424. WHEN cyf = '胶轮' THEN '黑白轮转'
  2425. WHEN cyf = '彩平' THEN '彩色平版'
  2426. WHEN cyf = '胶平' THEN '黑白平版'
  2427. ELSE NULL
  2428. END 分类,
  2429. cl.色令
  2430. FROM (SELECT IFnull(Sum(dx.NYSSL), 0) AS 色令,
  2431. CASE
  2432. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2433. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2434. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2435. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2436. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2437. OR CYWDWMC='浙江省新华书店集团有限公司'
  2438. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2439. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2440. WHEN CYWDWMC='浙江日报报业集团'
  2441. OR CYWDWMC='共产党员杂志社'
  2442. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2443. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2444. OR CYWDWMC='浙江出版传媒有限公司'
  2445. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2446. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2447. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2448. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2449. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2450. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2451. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2452. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2453. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2454. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2455. WHEN CYWDWMC='上海人民出版社有限公司'
  2456. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2457. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2458. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2459. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2460. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2461. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2462. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2463. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2464. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2465. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2466. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2467. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2468. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2469. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2470. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2471. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2472. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2473. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2474. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2475. ELSE CYWDWMC
  2476. END AS CYWDWMC,
  2477. dx.CYF
  2478. FROM MCYD cyd
  2479. LEFT JOIN SCYDDX DX
  2480. ON cyd.ICYDID = dx.ICYDID
  2481. WHERE cyd.ICYDSTATE > 0
  2482. AND cyd.icydid > 0
  2483. AND CYF IN( '彩轮', '彩平', '胶平', '胶轮' )
  2484. AND cyd.cyjlx <> '数字产品'
  2485. AND cyd.chy <> '集团教材外'
  2486. AND CONVERT(DCYRQ,CHAR(10)) >= '{$this->start_time()}'
  2487. AND CONVERT(DCYRQ,CHAR(10)) <= '{$this->end_time()}'
  2488. GROUP BY cyd.CYWDWMC,
  2489. CYF) cl)bb
  2490. ON cc.客户 = bb.CYWDWMC
  2491. ";
  2492. $result=Db::query($sql);
  2493. $redis->set($redis_key, json_encode($result));
  2494. echo date("Y-m-d H:i:s").' 存进去了';
  2495. return $result;
  2496. }
  2497. //年度承揽收入前五客户业务结构分析->接口
  2498. public function year_salewcl_sssss(){
  2499. $redis = redis();
  2500. $results = json_decode($redis->get(md5('chenglanshouru_redis')), true);
  2501. // 用于存储合并后数据的新数组
  2502. $mergedData = [];
  2503. // 遍历原始数组
  2504. foreach ($results as $item) {
  2505. // 使用 "khmc" 和 "fl" 作为合并的键
  2506. $khmc = $item["客户"];
  2507. $fl = $item["分类"];
  2508. // 构建合并后数组的键
  2509. $key = $khmc . "|" . $fl;
  2510. // 如果已经存在该 "khmc" 和 "fl" 的条目,则将数量相加
  2511. if (isset($mergedData[$key])) {
  2512. $mergedData[$key]["色令"] += $item["色令"];
  2513. } else {
  2514. // 否则,创建一个新条目
  2515. $mergedData[$key] = $item;
  2516. }
  2517. }
  2518. // 将合并后数组转换回原始格式
  2519. $result = array_values($mergedData);
  2520. $list['columns'] = [
  2521. ['name' => '客户', 'id' => 'khmc', 'width' => '50', 'autoWrap' => "true", 'textAlign' => 'left'],
  2522. ['name' => '总册数(万)', 'id' => 'zcs', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
  2523. ['name' => '销售收入(万元)', 'id' => 'xsss', 'width' => '20', 'autoWrap' => "true", 'textAlign' => 'center'],
  2524. ['name' => '类别', 'id' => 'fl', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
  2525. ['name' => '色令(万)', 'id' => 'sl', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
  2526. ];
  2527. $selectedRows = [];
  2528. if(empty($result)) {
  2529. $list['rows'][] = [
  2530. 'khmc' => '',
  2531. 'zcs' => '',
  2532. 'xsss' =>'',
  2533. 'yf' => '',
  2534. 'fl' => '',
  2535. 'sl' => '',
  2536. ];
  2537. $selectedRows = $list['rows'];
  2538. }else{
  2539. foreach ($result as $v) {
  2540. $selectedRows[] = [
  2541. 'khmc' => $v['客户'],
  2542. 'zcs' => number_format($v['总册数'] /10000,2),
  2543. 'xsss' => $v['销售收入(万元)'],
  2544. 'yf' => $v['印法'],
  2545. 'fl' => $v['分类'],
  2546. 'sl' => number_format($v['色令'] /10000,2),
  2547. ];
  2548. }
  2549. }
  2550. $res = [
  2551. 'status' => 0,
  2552. 'msg' => '',
  2553. 'data' => ['columns' => $list['columns'], 'rows' => $selectedRows],
  2554. ];
  2555. return json($res);
  2556. }
  2557. //年度承揽收入前五客户业务结构分析->缓存
  2558. public function chenglanshouru_redis(){
  2559. // $kais = explode(" ", $this->start_time());
  2560. // $jies = explode(" ", $this->end_time());
  2561. // $kai = $kais[0];
  2562. // $jie = $jies[0];
  2563. $kai = date('Y-m-d',strtotime('-1 year'));
  2564. $jie = date('Y-m-d');
  2565. $redis = redis();
  2566. $redis_key = md5('chenglanshouru_redis');
  2567. $sql = "SELECT * FROM (
  2568. SELECT bb.分类,
  2569. ROW_NUMBER() OVER (PARTITION BY bb.分类 ORDER BY bb.色令 DESC) AS 排名,
  2570. cc.客户,
  2571. cast( bb.色令 as decimal(18,0)) 色令,
  2572. cc.印数 AS 总册数,
  2573. cc.销售收入(万元),
  2574. bb.印法
  2575. FROM (SELECT aa.客户,
  2576. aa.印数,
  2577. Cast(aa.销售收入 AS DECIMAL(18, 2)) AS '销售收入(万元)'
  2578. FROM (SELECT zb.业务单位 客户,
  2579. Sum(zb.印数) 印数,
  2580. IFnull(Sum(zb.合并金额), 0.000) / 10000 销售收入
  2581. FROM (SELECT CASE
  2582. WHEN IFnull(ldz, 0) = 1 THEN '是'
  2583. ELSE '否'
  2584. END 登账,
  2585. CONVERT( DCYRQ, CHAR(10)) AS 承印日期,
  2586. CCYDH AS 订单号,
  2587. ord.IFCYDID,
  2588. CYJMC AS 印件名称,
  2589. CASE
  2590. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2591. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2592. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2593. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2594. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2595. OR CYWDWMC='浙江省新华书店集团有限公司'
  2596. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2597. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2598. WHEN CYWDWMC='浙江日报报业集团'
  2599. OR CYWDWMC='共产党员杂志社'
  2600. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2601. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2602. OR CYWDWMC='浙江出版传媒有限公司'
  2603. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2604. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2605. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2606. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2607. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2608. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2609. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2610. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2611. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2612. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2613. WHEN CYWDWMC='上海人民出版社有限公司'
  2614. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2615. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2616. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2617. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2618. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2619. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2620. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2621. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2622. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2623. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2624. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2625. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2626. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2627. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2628. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2629. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2630. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2631. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2632. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2633. ELSE CYWDWMC
  2634. END AS 业务单位,
  2635. cyjlx 印件类型,
  2636. NCS AS 印数,
  2637. CZWKB AS 开本,
  2638. CDF AS 订法,
  2639. NZWYZ AS 正文印张,
  2640. CASE
  2641. WHEN IFnull(ldz, 0) = 0 THEN( IFnull(nwshjje, 0) )
  2642. ELSE ( IFnull(tj.sum_namount, 0) )
  2643. END 合并金额
  2644. FROM MCYD Ord
  2645. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  2646. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  2647. iCydid,
  2648. CASE
  2649. WHEN ldz = 1 THEN 1
  2650. ELSE 0
  2651. END ldz
  2652. FROM TJob
  2653. WHERE lzfbs = 0
  2654. GROUP BY iCydid,
  2655. nclje,
  2656. itax,
  2657. ldz) tj
  2658. ON ord.ICYDID = tj.iCydid
  2659. WHERE ord.ICYDSTATE > 0) zb
  2660. WHERE CONVERT(zb.承印日期, CHAR(10)) >= '{$kai}'
  2661. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$jie}'
  2662. GROUP BY zb.业务单位 ) aa
  2663. ORDER BY aa.销售收入 DESC LIMIT 20)cc
  2664. LEFT JOIN (SELECT CYWDWMC,
  2665. CYF 印法,
  2666. CASE
  2667. WHEN cyf = '彩轮' THEN '彩色轮转'
  2668. WHEN cyf = '胶轮' THEN '黑白轮转'
  2669. WHEN cyf = '彩平' THEN '彩色平版'
  2670. WHEN cyf = '胶平' THEN '黑白平版'
  2671. ELSE NULL
  2672. END 分类,
  2673. cl.色令
  2674. FROM (SELECT IFnull(Sum(dx.NYSSL), 0) AS 色令,
  2675. CASE
  2676. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2677. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2678. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2679. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2680. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2681. OR CYWDWMC='浙江省新华书店集团有限公司'
  2682. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2683. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2684. WHEN CYWDWMC='浙江日报报业集团'
  2685. OR CYWDWMC='共产党员杂志社'
  2686. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2687. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2688. OR CYWDWMC='浙江出版传媒有限公司'
  2689. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2690. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2691. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2692. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2693. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2694. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2695. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2696. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2697. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2698. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2699. WHEN CYWDWMC='上海人民出版社有限公司'
  2700. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2701. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2702. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2703. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2704. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2705. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2706. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2707. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2708. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2709. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2710. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2711. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2712. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2713. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2714. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2715. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2716. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2717. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2718. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2719. ELSE CYWDWMC
  2720. END AS CYWDWMC,
  2721. dx.CYF
  2722. FROM MCYD cyd
  2723. LEFT JOIN SCYDDX DX
  2724. ON cyd.ICYDID = dx.ICYDID
  2725. WHERE cyd.ICYDSTATE > 0
  2726. AND cyd.icydid > 0
  2727. AND CYF IN( '彩轮', '彩平', '胶平', '胶轮' )
  2728. AND cyd.cyjlx <> '数字产品'
  2729. AND cyd.chy <> '集团教材外'
  2730. AND CONVERT(DCYRQ,CHAR(10)) >= '{$kai}'
  2731. AND CONVERT(DCYRQ,CHAR(10)) <= '{$jie}'
  2732. GROUP BY cyd.CYWDWMC,
  2733. CYF) cl)bb
  2734. ON cc.客户 = bb.CYWDWMC
  2735. )
  2736. hb
  2737. WHERE hb.排名<=5
  2738. -- and hb.客户='浙江出版传媒股份有限公司(含省出版公司)'
  2739. GROUP BY hb.分类,hb.排名, hb.客户,HB.色令,hb.总册数,hb.销售收入(万元),hb.印法
  2740. ORDER BY hb.分类,hb.排名 ";
  2741. $result=Db::query($sql);
  2742. $redis->set($redis_key, json_encode($result));
  2743. echo date("Y-m-d H:i:s").' 存进去了';
  2744. return $result;
  2745. }
  2746. //年度承揽收入前五客户业务结构分析->接口
  2747. public function year_salewcl(){
  2748. $redis = redis();
  2749. $results = json_decode($redis->get(md5('chenglanshouru_redis')), true);
  2750. $list['columns'] = [
  2751. ['name' => '分类', 'id' => 'fl', 'width' => '17', 'autoWrap' => "true", 'textAlign' => 'center'],
  2752. ['name' => '排名', 'id' => 'pm', 'width' => '11', 'autoWrap' => "true", 'textAlign' => 'center'],
  2753. ['name' => '客户', 'id' => 'khmc', 'width' => '40', 'autoWrap' => "true", 'textAlign' => 'left'],
  2754. ['name' => '总册数(万)', 'id' => 'zcs', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
  2755. ['name' => '销售收入(万元)', 'id' => 'xsss', 'width' => '20', 'autoWrap' => "true", 'textAlign' => 'center'],
  2756. ['name' => '色令(万)', 'id' => 'sl', 'width' => '15', 'autoWrap' => "true", 'textAlign' => 'center'],
  2757. ];
  2758. $selectedRows = [];
  2759. if(empty($results)) {
  2760. $list['rows'][] = [
  2761. 'fl' => '',
  2762. 'pm' =>'',
  2763. 'khmc' => '',
  2764. 'sl' => '',
  2765. 'zcs' => '',
  2766. 'xsss' =>'',
  2767. // 'yf' => '',
  2768. ];
  2769. $selectedRows = $list['rows'];
  2770. }else{
  2771. foreach ($results as $v) {
  2772. $selectedRows[] = [
  2773. 'fl' => $v['分类'],
  2774. 'pm' => $v['排名'],
  2775. 'khmc' => $v['客户'],
  2776. 'sl' => number_format($v['色令'] /10000,2),
  2777. 'zcs' => number_format($v['总册数'] /10000,2),
  2778. 'xsss' => $v['销售收入(万元)'],
  2779. 'yf' => $v['印法'],
  2780. ];
  2781. }
  2782. }
  2783. $res = [
  2784. 'status' => 0,
  2785. 'msg' => '',
  2786. 'data' => ['columns' => $list['columns'], 'rows' => $selectedRows],
  2787. ];
  2788. return json($res);
  2789. }
  2790. //年度考核毛利收入同比上升和下滑一览表->缓存
  2791. public function year_profit_redis(){
  2792. $redis = redis();
  2793. $redis_key = md5('year_profit_redis');
  2794. $januaryFirst = date('Y-01-01');
  2795. $today = date('Y-m-d');
  2796. $sql = "SELECT aa.客户,
  2797. aa.考核计算毛利(万元),
  2798. aa.考核计算毛利增减(万元),
  2799. CASE
  2800. WHEN IFNULL(aa.上年考核计算毛利(万元), 0) = 0 THEN 'New'
  2801. ELSE Ltrim(Cast( aa.考核计算毛利增减(万元)*100/aa.上年考核计算毛利(万元) AS DECIMAL(10, 2)))
  2802. + '%'
  2803. END AS 毛利增长率
  2804. FROM (SELECT a.客户,
  2805. CONVERT(Round(a.销售收入 / 10000, 2),DECIMAL(10, 2)) AS '销售收入(万元)',
  2806. CONVERT(Round(a.上年销售收入 / 10000, 2),DECIMAL(10, 2)) AS '上年销售收入(万元)',
  2807. CONVERT(Round(a.销售收入增减 / 10000, 2),DECIMAL(10, 2)) AS '销售收入增减(万元)',
  2808. CONVERT(Round(a.销售工价 / 10000, 2),DECIMAL(10, 2)) AS '销售工价(万元)',
  2809. CONVERT(Round(a.上年销售工价 / 10000, 2),DECIMAL(10, 2)) AS '上年销售工价(万元)',
  2810. CONVERT(Round(a.销售工价增减 / 10000, 2),DECIMAL(10, 2)) AS '销售工价增减(万元)',
  2811. CONVERT(Round(a.考核计算毛利 / 10000, 2),DECIMAL(10, 2)) AS '考核计算毛利(万元)',
  2812. CONVERT(Round(a.上年考核计算毛利 / 10000, 2),DECIMAL(10, 2))AS '上年考核计算毛利(万元)',
  2813. CONVERT(Round(a.考核计算毛利增减 / 10000, 2),DECIMAL(10, 2))AS '考核计算毛利增减(万元)'
  2814. FROM ((SELECT 1 AS flag,
  2815. IFNULL(dq.业务单位, hb.业务单位) 客户,
  2816. IFNULL(dq.销售收入, 000) 销售收入,
  2817. IFNULL(hb.上年销售收入, 0.000) 上年销售收入,
  2818. IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000) 销售收入增减,
  2819. CASE
  2820. WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
  2821. WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
  2822. AND IFNULL(dq.销售收入, 000) > 0 THEN 1
  2823. ELSE 0
  2824. END AS 销售收入同期比,
  2825. IFNULL(dq.销售工价, 000) 销售工价,
  2826. IFNULL(hb.上年销售工价, 0.000) 上年销售工价,
  2827. IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000) 销售工价增减,
  2828. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  2829. IFNULL(hb.上年考核计算毛利, 0.000) 上年考核计算毛利,
  2830. IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
  2831. CASE
  2832. WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
  2833. WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
  2834. AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
  2835. ELSE 0
  2836. END AS 毛利同期比
  2837. FROM (SELECT zb.业务单位 业务单位,
  2838. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  2839. IFNULL(Sum(zb.合并工价), 0.000) 销售工价,
  2840. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
  2841. FROM (SELECT CASE
  2842. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  2843. ELSE '否'
  2844. END 登账,
  2845. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  2846. CCYDH AS 订单号,
  2847. CYJMC AS 印件名称,
  2848. CASE
  2849. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2850. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2851. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2852. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2853. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2854. OR CYWDWMC='浙江省新华书店集团有限公司'
  2855. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2856. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2857. WHEN CYWDWMC='浙江日报报业集团'
  2858. OR CYWDWMC='共产党员杂志社'
  2859. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2860. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2861. OR CYWDWMC='浙江出版传媒有限公司'
  2862. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2863. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2864. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2865. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2866. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2867. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2868. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2869. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2870. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2871. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2872. WHEN CYWDWMC='上海人民出版社有限公司'
  2873. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2874. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2875. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2876. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2877. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2878. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2879. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2880. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2881. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2882. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2883. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2884. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2885. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2886. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2887. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2888. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2889. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2890. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2891. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2892. ELSE CYWDWMC
  2893. END AS 业务单位,
  2894. cyjlx 印件类型,
  2895. NCS AS 印数,
  2896. CZWKB AS 开本,
  2897. CDF AS 订法,
  2898. NZWYZ AS 正文印张,
  2899. CASE
  2900. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  2901. ELSE
  2902. CASE
  2903. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  2904. + CASE
  2905. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2906. ELSE ( CASE
  2907. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2908. ELSE ( CASE
  2909. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2910. ELSE IFNULL(tj.sum_clje, 0)
  2911. END )
  2912. END )
  2913. END = 0
  2914. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  2915. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  2916. + CASE
  2917. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2918. ELSE ( CASE
  2919. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2920. ELSE ( CASE
  2921. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2922. ELSE IFNULL(tj.sum_clje, 0)
  2923. END )
  2924. END )
  2925. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  2926. END
  2927. END AS 考核计算毛利不含税,
  2928. CASE
  2929. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  2930. ELSE
  2931. CASE
  2932. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  2933. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  2934. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  2935. END
  2936. END AS 考核计算工价毛利不含税,
  2937. ( CASE
  2938. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  2939. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  2940. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2941. ELSE ( CASE
  2942. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2943. ELSE ( CASE
  2944. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2945. ELSE IFNULL(tj.sum_clje, 0)
  2946. END )
  2947. END )
  2948. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  2949. END ) AS 考核计算料价毛利不含税,
  2950. CASE
  2951. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  2952. ELSE ( IFNULL(tj.sum_namount, 0) )
  2953. END 合并金额,
  2954. CASE
  2955. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  2956. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  2957. END 合并工价,
  2958. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  2959. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  2960. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  2961. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  2962. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  2963. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  2964. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  2965. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  2966. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  2967. ord.nzkl AS 折扣率,
  2968. CASE
  2969. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  2970. ELSE ( CASE
  2971. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  2972. + CASE
  2973. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2974. ELSE ( CASE
  2975. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2976. ELSE ( CASE
  2977. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2978. ELSE IFNULL(tj.sum_clje, 0)
  2979. END )
  2980. END )
  2981. END = 0
  2982. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  2983. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  2984. + CASE
  2985. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2986. ELSE ( CASE
  2987. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2988. ELSE ( CASE
  2989. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2990. ELSE IFNULL(tj.sum_clje, 0)
  2991. END )
  2992. END )
  2993. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  2994. END )
  2995. END AS 生产毛利不含税,
  2996. CASE
  2997. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  2998. ELSE ( CASE
  2999. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3000. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3001. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  3002. END )
  3003. END AS 生产工价毛利不含税,
  3004. IFNULL(tj.sum_clje, 0) - ( CASE
  3005. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3006. ELSE ( CASE
  3007. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3008. ELSE ( CASE
  3009. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3010. ELSE IFNULL(tj.sum_clje, 0)
  3011. END )
  3012. END )
  3013. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  3014. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  3015. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  3016. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  3017. IFNULL(tb_in.sum_ngjje_in, 0)
  3018. + CASE
  3019. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3020. ELSE ( CASE
  3021. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3022. ELSE ( CASE
  3023. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3024. ELSE IFNULL(tj.sum_clje, 0)
  3025. END )
  3026. END )
  3027. END AS 厂内传票合计不含税,
  3028. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  3029. CASE
  3030. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3031. ELSE ( CASE
  3032. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3033. ELSE ( CASE
  3034. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3035. ELSE IFNULL(tj.sum_clje, 0)
  3036. END )
  3037. END )
  3038. END AS 厂内传票料价不含税,
  3039. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  3040. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  3041. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  3042. CHY AS 活源,
  3043. CCLBMMC AS 承揽部门,
  3044. CYWYXM AS 业务员,
  3045. lwcbs AS 是否完工,
  3046. Dwcrq AS 完工日期,
  3047. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  3048. LJQBS AS 是否结清,
  3049. djqrq AS 结清日期,
  3050. izlconfirm AS 是否销货,
  3051. dzlconfirmrq AS 销货日期,
  3052. nzlconfirmje AS 销货金额,
  3053. nzlysje AS 销货应收,
  3054. IFNULL(ipaytime, 0) AS 帐龄,
  3055. ( CASE
  3056. WHEN ljqbs = 0
  3057. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  3058. ELSE 0
  3059. END ) AS 付款周期,
  3060. ( CASE
  3061. WHEN ljqbs = 0
  3062. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  3063. ELSE 0
  3064. END ) AS 过期天数,
  3065. ( CASE
  3066. WHEN bsfsk = 1 THEN 1
  3067. ELSE 0
  3068. END ) AS 是否收款,
  3069. nysje AS 预收款,
  3070. fskje AS 收款金额,
  3071. ( CASE
  3072. WHEN bsfdjfp = 1 THEN 1
  3073. ELSE 0
  3074. END ) AS '是否开票',
  3075. ffpje AS 发票金额,
  3076. cfph AS 发票号,
  3077. cfprq AS 发票日期,
  3078. ( CASE
  3079. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3080. ELSE 0
  3081. END ) AS 未开完票金额,
  3082. ( CASE
  3083. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  3084. ELSE 0
  3085. END ) AS 发票未收款金额,
  3086. iselforder AS 是否异常,
  3087. cselftype AS 异常类型,
  3088. CASE
  3089. WHEN bsfdjfp = 1 THEN ( CASE
  3090. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3091. ELSE 0
  3092. END )
  3093. ELSE ( CASE
  3094. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  3095. ELSE ( CASE
  3096. WHEN nzlconfirmje = 0 THEN nhjje
  3097. ELSE nzlconfirmje
  3098. END )
  3099. END )
  3100. END 未开票
  3101. FROM MCYD Ord
  3102. LEFT JOIN (SELECT Sum(CASE
  3103. WHEN hz.dz = 1 THEN hz.nhjje
  3104. ELSE hz.传票预计价
  3105. END) AS sum_nhjje_in,
  3106. Sum(CASE
  3107. WHEN hz.dz = 1 THEN hz.nhjje
  3108. ELSE hz.传票预计价
  3109. END) AS sum_ngjje_in,
  3110. Sum(CASE
  3111. WHEN hz.dz = 1 THEN hz.nclje
  3112. ELSE hz.nclje
  3113. END) AS sum_nclje_in,
  3114. hz.ICYDID
  3115. FROM (SELECT yjj.传票预计价单号,
  3116. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3117. yjj.iCYDID,
  3118. d.cjjdh 计价单号,
  3119. d.ccydh 订单号,
  3120. d.cbz 备注,
  3121. d.ngjje,
  3122. d.nclje,
  3123. IFNULL(d.iwjg, 0) iwjg,
  3124. IFNULL(d.lzfbs, 0) lzfbs,
  3125. d.nhjje,
  3126. IFNULL(d.ldz, 0) dz,
  3127. yjj.bShbz
  3128. FROM (SELECT b.csccpbh 传票预计价单号,
  3129. a.ccydh,
  3130. a.icydid,
  3131. Sum(c.fje) 传票预计价,
  3132. b.bshbz
  3133. FROM MCYD a
  3134. LEFT JOIN sccp b
  3135. ON a.icydid = b.icydid
  3136. LEFT JOIN ZbHjXm c
  3137. ON c.sccpid = b.sccpid
  3138. WHERE b.bOutProcess = '0 '
  3139. GROUP BY b.csccpbh,
  3140. a.icydid,
  3141. a.CCYDH,
  3142. b.bshbz,
  3143. b.bOutProcess) yjj
  3144. LEFT JOIN tbluey d
  3145. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3146. WHERE hz.iwjg = 0
  3147. AND hz.bshbz = 1
  3148. AND hz.lzfbs = 0
  3149. GROUP BY hz.ICYDID) tb_in
  3150. ON ord.icydid = tb_in.iCydid
  3151. LEFT JOIN (SELECT fw.iCYDID,
  3152. sum_nhjje_out,
  3153. sum_ngjje_out,
  3154. sum_nclje_out,
  3155. bz.cbz
  3156. FROM (SELECT Cast(Sum(( CASE
  3157. WHEN hz.dz = 0 THEN hz.传票预计价
  3158. ELSE hz.nhjje
  3159. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  3160. Cast(Sum(( CASE
  3161. WHEN hz.dz = 0 THEN hz.传票预计价
  3162. ELSE hz.nhjje
  3163. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  3164. Cast(Sum(CASE
  3165. WHEN hz.dz = 0 THEN hz.nclje
  3166. ELSE hz.nclje
  3167. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  3168. iCydid
  3169. FROM (SELECT yjj.传票预计价单号,
  3170. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3171. yjj.iCYDID,
  3172. d.cjjdh 计价单号,
  3173. d.ccydh 订单号,
  3174. d.cbz 备注,
  3175. d.ngjje,
  3176. d.nclje,
  3177. d.itax,
  3178. IFNULL(d.iwjg, 0) iwjg,
  3179. IFNULL(d.lzfbs, 0) lzfbs,
  3180. d.nhjje,
  3181. IFNULL(d.ldz, 0) dz,
  3182. yjj.bShbz
  3183. FROM (SELECT b.csccpbh 传票预计价单号,
  3184. a.ccydh,
  3185. a.icydid,
  3186. Sum(c.fje) 传票预计价,
  3187. b.bshbz
  3188. FROM MCYD a
  3189. LEFT JOIN sccp b
  3190. ON a.icydid = b.icydid
  3191. LEFT JOIN ZbHjXm c
  3192. ON c.sccpid = b.sccpid
  3193. WHERE b.bOutProcess = '1 '
  3194. GROUP BY b.csccpbh,
  3195. a.icydid,
  3196. a.CCYDH,
  3197. b.bshbz,
  3198. b.bOutProcess) yjj
  3199. LEFT JOIN tbluey d
  3200. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3201. WHERE hz.iwjg = 1
  3202. AND hz.lzfbs = 0
  3203. GROUP BY hz.ICYDID) fw
  3204. LEFT JOIN (SELECT icydid,
  3205. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  3206. WHERE icydid = a.icydid) AS cbz
  3207. FROM TBluey a
  3208. GROUP BY icydid) bz
  3209. ON bz.icydid = fw.iCYDID) tb_out
  3210. ON ord.icydid = tb_out.iCydid
  3211. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  3212. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  3213. iCydid,
  3214. CASE
  3215. WHEN ldz = 1 THEN 1
  3216. ELSE 0
  3217. END ldz
  3218. FROM TJob
  3219. WHERE lzfbs = 0
  3220. GROUP BY iCydid,
  3221. nclje,
  3222. itax,
  3223. ldz) tj
  3224. ON ord.ICYDID = tj.iCydid
  3225. WHERE ord.ICYDSTATE > 0
  3226. AND 1 = 1) zb
  3227. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
  3228. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  3229. GROUP BY zb.业务单位) dq
  3230. LEFT JOIN (SELECT zb1.业务单位,
  3231. Sum(zb1.合并金额) 上年销售收入,
  3232. Sum(zb1.合并工价) 上年销售工价,
  3233. Sum(zb1.考核计算毛利不含税)上年考核计算毛利
  3234. FROM (SELECT CASE
  3235. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  3236. ELSE '否'
  3237. END 登账,
  3238. CONVERT(DCYRQ, CHAR(10)) AS 承印日期,
  3239. CCYDH AS 订单号,
  3240. CYJMC AS 印件名称,
  3241. CASE
  3242. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  3243. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  3244. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  3245. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  3246. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  3247. OR CYWDWMC='浙江省新华书店集团有限公司'
  3248. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  3249. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  3250. WHEN CYWDWMC='浙江日报报业集团'
  3251. OR CYWDWMC='共产党员杂志社'
  3252. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  3253. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  3254. OR CYWDWMC='浙江出版传媒有限公司'
  3255. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  3256. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  3257. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  3258. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  3259. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  3260. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  3261. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  3262. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  3263. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  3264. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  3265. WHEN CYWDWMC='上海人民出版社有限公司'
  3266. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  3267. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  3268. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  3269. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  3270. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  3271. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  3272. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  3273. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  3274. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  3275. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  3276. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  3277. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  3278. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  3279. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  3280. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  3281. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  3282. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  3283. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  3284. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  3285. ELSE CYWDWMC
  3286. END AS 业务单位,
  3287. cyjlx 印件类型,
  3288. NCS AS 印数,
  3289. CZWKB AS 开本,
  3290. CDF AS 订法,
  3291. NZWYZ AS 正文印张,
  3292. cbz 发外备注,
  3293. CASE
  3294. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  3295. ELSE
  3296. CASE
  3297. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  3298. + CASE
  3299. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3300. ELSE ( CASE
  3301. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3302. ELSE ( CASE
  3303. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3304. ELSE IFNULL(tj.sum_clje, 0)
  3305. END )
  3306. END )
  3307. END = 0
  3308. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3309. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3310. + CASE
  3311. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3312. ELSE ( CASE
  3313. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3314. ELSE ( CASE
  3315. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3316. ELSE IFNULL(tj.sum_clje, 0)
  3317. END )
  3318. END )
  3319. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3320. END
  3321. END AS 考核计算毛利不含税,
  3322. CASE
  3323. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  3324. ELSE
  3325. CASE
  3326. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3327. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3328. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  3329. END
  3330. END AS 考核计算工价毛利不含税,
  3331. ( CASE
  3332. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  3333. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  3334. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3335. ELSE ( CASE
  3336. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3337. ELSE ( CASE
  3338. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3339. ELSE IFNULL(tj.sum_clje, 0)
  3340. END )
  3341. END )
  3342. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  3343. END ) AS 考核计算料价毛利不含税,
  3344. CASE
  3345. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  3346. ELSE ( IFNULL(tj.sum_namount, 0) )
  3347. END 合并金额,
  3348. CASE
  3349. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  3350. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  3351. END 合并工价,
  3352. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  3353. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  3354. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  3355. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  3356. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  3357. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  3358. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  3359. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  3360. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  3361. ord.nzkl AS 折扣率,
  3362. CASE
  3363. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3364. ELSE ( CASE
  3365. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  3366. + CASE
  3367. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3368. ELSE ( CASE
  3369. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3370. ELSE ( CASE
  3371. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3372. ELSE IFNULL(tj.sum_clje, 0)
  3373. END )
  3374. END )
  3375. END = 0
  3376. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3377. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3378. + CASE
  3379. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3380. ELSE ( CASE
  3381. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3382. ELSE ( CASE
  3383. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3384. ELSE IFNULL(tj.sum_clje, 0)
  3385. END )
  3386. END )
  3387. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3388. END )
  3389. END AS 生产毛利不含税,
  3390. CASE
  3391. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3392. ELSE ( CASE
  3393. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3394. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3395. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  3396. END )
  3397. END AS 生产工价毛利不含税,
  3398. IFNULL(tj.sum_clje, 0) - ( CASE
  3399. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3400. ELSE ( CASE
  3401. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3402. ELSE ( CASE
  3403. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3404. ELSE IFNULL(tj.sum_clje, 0)
  3405. END )
  3406. END )
  3407. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  3408. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  3409. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  3410. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  3411. IFNULL(tb_in.sum_ngjje_in, 0)
  3412. + CASE
  3413. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3414. ELSE ( CASE
  3415. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3416. ELSE ( CASE
  3417. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3418. ELSE IFNULL(tj.sum_clje, 0)
  3419. END )
  3420. END )
  3421. END AS 厂内传票合计不含税,
  3422. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  3423. CASE
  3424. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3425. ELSE ( CASE
  3426. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3427. ELSE ( CASE
  3428. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3429. ELSE IFNULL(tj.sum_clje, 0)
  3430. END )
  3431. END )
  3432. END AS 厂内传票料价不含税,
  3433. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  3434. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  3435. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  3436. CHY AS 活源,
  3437. CCLBMMC AS 承揽部门,
  3438. CYWYXM AS 业务员,
  3439. lwcbs AS 是否完工,
  3440. Dwcrq AS 完工日期,
  3441. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  3442. LJQBS AS 是否结清,
  3443. djqrq AS 结清日期,
  3444. izlconfirm AS 是否销货,
  3445. dzlconfirmrq AS 销货日期,
  3446. nzlconfirmje AS 销货金额,
  3447. nzlysje AS 销货应收,
  3448. IFNULL(ipaytime, 0) AS 帐龄,
  3449. ( CASE
  3450. WHEN ljqbs = 0
  3451. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  3452. ELSE 0
  3453. END ) AS 付款周期,
  3454. ( CASE
  3455. WHEN ljqbs = 0
  3456. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  3457. ELSE 0
  3458. END ) AS 过期天数,
  3459. ( CASE
  3460. WHEN bsfsk = 1 THEN 1
  3461. ELSE 0
  3462. END ) AS 是否收款,
  3463. nysje AS 预收款,
  3464. fskje AS 收款金额,
  3465. ( CASE
  3466. WHEN bsfdjfp = 1 THEN 1
  3467. ELSE 0
  3468. END ) AS '是否开票',
  3469. ffpje AS 发票金额,
  3470. cfph AS 发票号,
  3471. cfprq AS 发票日期,
  3472. ( CASE
  3473. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3474. ELSE 0
  3475. END ) AS 未开完票金额,
  3476. ( CASE
  3477. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  3478. ELSE 0
  3479. END ) AS 发票未收款金额,
  3480. iselforder AS 是否异常,
  3481. cselftype AS 异常类型,
  3482. CASE
  3483. WHEN bsfdjfp = 1 THEN ( CASE
  3484. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3485. ELSE 0
  3486. END )
  3487. ELSE ( CASE
  3488. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  3489. ELSE ( CASE
  3490. WHEN nzlconfirmje = 0 THEN nhjje
  3491. ELSE nzlconfirmje
  3492. END )
  3493. END )
  3494. END 未开票
  3495. FROM MCYD Ord
  3496. LEFT JOIN (SELECT ICYDID,
  3497. Max(Nsc) AS Nsc
  3498. FROM SCYDDX
  3499. WHERE IDXLXID = 573
  3500. GROUP BY ICYDID) AS Obj
  3501. ON ord.ICYDID = Obj.ICYDID
  3502. LEFT JOIN (SELECT ICYDID,
  3503. Sum(NYSLS) AS nysls,
  3504. Sum(nyssl) AS nyssl,
  3505. Sum(nsyl) AS nsyl
  3506. FROM SCYDDX
  3507. GROUP BY ICYDID) AS ObjMatier
  3508. ON Ord.ICYDID = ObjMatier.ICYDID
  3509. LEFT JOIN (SELECT Sum(CASE
  3510. WHEN hz.dz = 1 THEN hz.nhjje
  3511. ELSE hz.传票预计价
  3512. END) AS sum_nhjje_in,
  3513. Sum(CASE
  3514. WHEN hz.dz = 1 THEN hz.nhjje
  3515. ELSE hz.传票预计价
  3516. END) AS sum_ngjje_in,
  3517. Sum(CASE
  3518. WHEN hz.dz = 1 THEN hz.nclje
  3519. ELSE hz.nclje
  3520. END) AS sum_nclje_in,
  3521. hz.ICYDID
  3522. FROM (SELECT yjj.传票预计价单号,
  3523. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3524. yjj.iCYDID,
  3525. d.cjjdh 计价单号,
  3526. d.ccydh 订单号,
  3527. d.cbz 备注,
  3528. d.ngjje,
  3529. d.nclje,
  3530. IFNULL(d.iwjg, 0) iwjg,
  3531. IFNULL(d.lzfbs, 0) lzfbs,
  3532. d.nhjje,
  3533. IFNULL(d.ldz, 0) dz,
  3534. yjj.bShbz
  3535. FROM (SELECT b.csccpbh 传票预计价单号,
  3536. a.ccydh,
  3537. a.icydid,
  3538. Sum(c.fje) 传票预计价,
  3539. b.bshbz
  3540. FROM MCYD a
  3541. LEFT JOIN sccp b
  3542. ON a.icydid = b.icydid
  3543. LEFT JOIN ZbHjXm c
  3544. ON c.sccpid = b.sccpid
  3545. WHERE b.bOutProcess = '0 '
  3546. GROUP BY b.csccpbh,
  3547. a.icydid,
  3548. a.CCYDH,
  3549. b.bshbz,
  3550. b.bOutProcess) yjj
  3551. LEFT JOIN tbluey d
  3552. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3553. WHERE hz.iwjg = 0
  3554. AND hz.bshbz = 1
  3555. AND hz.lzfbs = 0
  3556. GROUP BY hz.ICYDID) tb_in
  3557. ON ord.icydid = tb_in.iCydid
  3558. LEFT JOIN (SELECT fw.iCYDID,
  3559. sum_nhjje_out,
  3560. sum_ngjje_out,
  3561. sum_nclje_out,
  3562. bz.cbz
  3563. FROM (SELECT Cast(Sum(( CASE
  3564. WHEN hz.dz = 0 THEN hz.传票预计价
  3565. ELSE hz.nhjje
  3566. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  3567. Cast(Sum(( CASE
  3568. WHEN hz.dz = 0 THEN hz.传票预计价
  3569. ELSE hz.nhjje
  3570. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  3571. Cast(Sum(CASE
  3572. WHEN hz.dz = 0 THEN hz.nclje
  3573. ELSE hz.nclje
  3574. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  3575. iCydid
  3576. FROM (SELECT yjj.传票预计价单号,
  3577. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3578. yjj.iCYDID,
  3579. d.cjjdh 计价单号,
  3580. d.ccydh 订单号,
  3581. d.cbz 备注,
  3582. d.ngjje,
  3583. d.nclje,
  3584. d.itax,
  3585. IFNULL(d.iwjg, 0) iwjg,
  3586. IFNULL(d.lzfbs, 0) lzfbs,
  3587. d.nhjje,
  3588. IFNULL(d.ldz, 0) dz,
  3589. yjj.bShbz
  3590. FROM (SELECT b.csccpbh 传票预计价单号,
  3591. a.ccydh,
  3592. a.icydid,
  3593. Sum(c.fje) 传票预计价,
  3594. b.bshbz
  3595. FROM MCYD a
  3596. LEFT JOIN sccp b
  3597. ON a.icydid = b.icydid
  3598. LEFT JOIN ZbHjXm c
  3599. ON c.sccpid = b.sccpid
  3600. WHERE b.bOutProcess = '1 '
  3601. GROUP BY b.csccpbh,
  3602. a.icydid,
  3603. a.CCYDH,
  3604. b.bshbz,
  3605. b.bOutProcess) yjj
  3606. LEFT JOIN tbluey d
  3607. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3608. WHERE hz.iwjg = 1
  3609. AND hz.lzfbs = 0
  3610. GROUP BY hz.ICYDID) fw
  3611. LEFT JOIN (SELECT icydid,
  3612. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  3613. WHERE icydid = a.icydid) AS cbz
  3614. FROM TBluey a
  3615. GROUP BY icydid) bz
  3616. ON bz.icydid = fw.iCYDID) tb_out
  3617. ON ord.icydid = tb_out.iCydid
  3618. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  3619. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  3620. iCydid,
  3621. CASE
  3622. WHEN ldz = 1 THEN 1
  3623. ELSE 0
  3624. END ldz
  3625. FROM TJob
  3626. WHERE lzfbs = 0
  3627. GROUP BY iCydid,
  3628. nclje,
  3629. itax,
  3630. ldz) tj
  3631. ON ord.ICYDID = tj.iCydid
  3632. WHERE ord.ICYDSTATE > 0
  3633. AND 1 = 1) zb1
  3634. WHERE CONVERT(zb1.承印日期,CHAR(10)) >= '2023-01-01'
  3635. AND CONVERT(zb1.承印日期,CHAR(10)) <= '2023-12-31'
  3636. GROUP BY zb1.业务单位) hb
  3637. ON hb.业务单位 = dq.业务单位) UNION (SELECT 1 AS flag,
  3638. IFNULL(dq.业务单位, hb.业务单位) 客户,
  3639. IFNULL(dq.销售收入, 000) 销售收入,
  3640. IFNULL(hb.上年销售收入, 0.000) 上年销售收入,
  3641. IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000) 销售收入增减,
  3642. CASE
  3643. WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
  3644. WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
  3645. AND IFNULL(dq.销售收入, 000) > 0 THEN 1
  3646. ELSE 0
  3647. END AS 销售收入同期比,
  3648. IFNULL(dq.销售工价, 000) 销售工价,
  3649. IFNULL(hb.上年销售工价, 0.000) 上年销售工价,
  3650. IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000) 销售工价增减,
  3651. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  3652. IFNULL(hb.上年考核计算毛利, 0.000) 上年考核计算毛利,
  3653. IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
  3654. CASE
  3655. WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
  3656. WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
  3657. AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
  3658. ELSE 0
  3659. END AS 毛利同期比
  3660. FROM (SELECT zb.业务单位 业务单位,
  3661. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  3662. IFNULL(Sum(zb.合并工价), 0.000) 销售工价,
  3663. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
  3664. FROM (SELECT CASE
  3665. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  3666. ELSE '否'
  3667. END 登账,
  3668. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  3669. CCYDH AS 订单号,
  3670. CYJMC AS 印件名称,
  3671. CASE
  3672. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  3673. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  3674. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  3675. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  3676. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  3677. OR CYWDWMC='浙江省新华书店集团有限公司'
  3678. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  3679. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  3680. WHEN CYWDWMC='浙江日报报业集团'
  3681. OR CYWDWMC='共产党员杂志社'
  3682. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  3683. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  3684. OR CYWDWMC='浙江出版传媒有限公司'
  3685. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  3686. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  3687. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  3688. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  3689. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  3690. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  3691. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  3692. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  3693. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  3694. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  3695. WHEN CYWDWMC='上海人民出版社有限公司'
  3696. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  3697. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  3698. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  3699. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  3700. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  3701. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  3702. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  3703. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  3704. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  3705. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  3706. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  3707. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  3708. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  3709. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  3710. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  3711. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  3712. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  3713. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  3714. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  3715. ELSE CYWDWMC
  3716. END AS 业务单位,
  3717. cyjlx 印件类型,
  3718. NCS AS 印数,
  3719. CZWKB AS 开本,
  3720. CDF AS 订法,
  3721. NZWYZ AS 正文印张,
  3722. CASE
  3723. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  3724. ELSE
  3725. CASE
  3726. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  3727. + CASE
  3728. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3729. ELSE ( CASE
  3730. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3731. ELSE ( CASE
  3732. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3733. ELSE IFNULL(tj.sum_clje, 0)
  3734. END )
  3735. END )
  3736. END = 0
  3737. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3738. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3739. + CASE
  3740. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3741. ELSE ( CASE
  3742. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3743. ELSE ( CASE
  3744. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3745. ELSE IFNULL(tj.sum_clje, 0)
  3746. END )
  3747. END )
  3748. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3749. END
  3750. END AS 考核计算毛利不含税,
  3751. CASE
  3752. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  3753. ELSE
  3754. CASE
  3755. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3756. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3757. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  3758. END
  3759. END AS 考核计算工价毛利不含税,
  3760. ( CASE
  3761. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  3762. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  3763. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3764. ELSE ( CASE
  3765. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3766. ELSE ( CASE
  3767. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3768. ELSE IFNULL(tj.sum_clje, 0)
  3769. END )
  3770. END )
  3771. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  3772. END ) AS 考核计算料价毛利不含税,
  3773. CASE
  3774. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  3775. ELSE ( IFNULL(tj.sum_namount, 0) )
  3776. END 合并金额,
  3777. CASE
  3778. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  3779. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  3780. END 合并工价,
  3781. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  3782. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  3783. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  3784. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  3785. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  3786. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  3787. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  3788. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  3789. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  3790. ord.nzkl AS 折扣率,
  3791. CASE
  3792. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3793. ELSE ( CASE
  3794. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  3795. + CASE
  3796. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3797. ELSE ( CASE
  3798. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3799. ELSE ( CASE
  3800. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3801. ELSE IFNULL(tj.sum_clje, 0)
  3802. END )
  3803. END )
  3804. END = 0
  3805. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3806. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3807. + CASE
  3808. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3809. ELSE ( CASE
  3810. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3811. ELSE ( CASE
  3812. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3813. ELSE IFNULL(tj.sum_clje, 0)
  3814. END )
  3815. END )
  3816. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3817. END )
  3818. END AS 生产毛利不含税,
  3819. CASE
  3820. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3821. ELSE ( CASE
  3822. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3823. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3824. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  3825. END )
  3826. END AS 生产工价毛利不含税,
  3827. IFNULL(tj.sum_clje, 0) - ( CASE
  3828. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3829. ELSE ( CASE
  3830. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3831. ELSE ( CASE
  3832. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3833. ELSE IFNULL(tj.sum_clje, 0)
  3834. END )
  3835. END )
  3836. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  3837. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  3838. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  3839. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  3840. IFNULL(tb_in.sum_ngjje_in, 0)
  3841. + CASE
  3842. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3843. ELSE ( CASE
  3844. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3845. ELSE ( CASE
  3846. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3847. ELSE IFNULL(tj.sum_clje, 0)
  3848. END )
  3849. END )
  3850. END AS 厂内传票合计不含税,
  3851. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  3852. CASE
  3853. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3854. ELSE ( CASE
  3855. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3856. ELSE ( CASE
  3857. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3858. ELSE IFNULL(tj.sum_clje, 0)
  3859. END )
  3860. END )
  3861. END AS 厂内传票料价不含税,
  3862. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  3863. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  3864. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  3865. CHY AS 活源,
  3866. CCLBMMC AS 承揽部门,
  3867. CYWYXM AS 业务员,
  3868. lwcbs AS 是否完工,
  3869. Dwcrq AS 完工日期,
  3870. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  3871. LJQBS AS 是否结清,
  3872. djqrq AS 结清日期,
  3873. izlconfirm AS 是否销货,
  3874. dzlconfirmrq AS 销货日期,
  3875. nzlconfirmje AS 销货金额,
  3876. nzlysje AS 销货应收,
  3877. IFNULL(ipaytime, 0) AS 帐龄,
  3878. ( CASE
  3879. WHEN ljqbs = 0
  3880. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  3881. ELSE 0
  3882. END ) AS 付款周期,
  3883. ( CASE
  3884. WHEN ljqbs = 0
  3885. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  3886. ELSE 0
  3887. END ) AS 过期天数,
  3888. ( CASE
  3889. WHEN bsfsk = 1 THEN 1
  3890. ELSE 0
  3891. END ) AS 是否收款,
  3892. nysje AS 预收款,
  3893. fskje AS 收款金额,
  3894. ( CASE
  3895. WHEN bsfdjfp = 1 THEN 1
  3896. ELSE 0
  3897. END ) AS '是否开票',
  3898. ffpje AS 发票金额,
  3899. cfph AS 发票号,
  3900. cfprq AS 发票日期,
  3901. ( CASE
  3902. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3903. ELSE 0
  3904. END ) AS 未开完票金额,
  3905. ( CASE
  3906. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  3907. ELSE 0
  3908. END ) AS 发票未收款金额,
  3909. iselforder AS 是否异常,
  3910. cselftype AS 异常类型,
  3911. CASE
  3912. WHEN bsfdjfp = 1 THEN ( CASE
  3913. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3914. ELSE 0
  3915. END )
  3916. ELSE ( CASE
  3917. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  3918. ELSE ( CASE
  3919. WHEN nzlconfirmje = 0 THEN nhjje
  3920. ELSE nzlconfirmje
  3921. END )
  3922. END )
  3923. END 未开票
  3924. FROM MCYD Ord
  3925. LEFT JOIN (SELECT Sum(CASE
  3926. WHEN hz.dz = 1 THEN hz.nhjje
  3927. ELSE hz.传票预计价
  3928. END) AS sum_nhjje_in,
  3929. Sum(CASE
  3930. WHEN hz.dz = 1 THEN hz.nhjje
  3931. ELSE hz.传票预计价
  3932. END) AS sum_ngjje_in,
  3933. Sum(CASE
  3934. WHEN hz.dz = 1 THEN hz.nclje
  3935. ELSE hz.nclje
  3936. END) AS sum_nclje_in,
  3937. hz.ICYDID
  3938. FROM (SELECT yjj.传票预计价单号,
  3939. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3940. yjj.iCYDID,
  3941. d.cjjdh 计价单号,
  3942. d.ccydh 订单号,
  3943. d.cbz 备注,
  3944. d.ngjje,
  3945. d.nclje,
  3946. IFNULL(d.iwjg, 0) iwjg,
  3947. IFNULL(d.lzfbs, 0) lzfbs,
  3948. d.nhjje,
  3949. IFNULL(d.ldz, 0) dz,
  3950. yjj.bShbz
  3951. FROM (SELECT b.csccpbh 传票预计价单号,
  3952. a.ccydh,
  3953. a.icydid,
  3954. Sum(c.fje) 传票预计价,
  3955. b.bshbz
  3956. FROM MCYD a
  3957. LEFT JOIN sccp b
  3958. ON a.icydid = b.icydid
  3959. LEFT JOIN ZbHjXm c
  3960. ON c.sccpid = b.sccpid
  3961. WHERE b.bOutProcess = '0 '
  3962. GROUP BY b.csccpbh,
  3963. a.icydid,
  3964. a.CCYDH,
  3965. b.bshbz,
  3966. b.bOutProcess) yjj
  3967. LEFT JOIN tbluey d
  3968. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3969. WHERE hz.iwjg = 0
  3970. AND hz.bshbz = 1
  3971. AND hz.lzfbs = 0
  3972. GROUP BY hz.ICYDID) tb_in
  3973. ON ord.icydid = tb_in.iCydid
  3974. LEFT JOIN (SELECT fw.iCYDID,
  3975. sum_nhjje_out,
  3976. sum_ngjje_out,
  3977. sum_nclje_out,
  3978. bz.cbz
  3979. FROM (SELECT Cast(Sum(( CASE
  3980. WHEN hz.dz = 0 THEN hz.传票预计价
  3981. ELSE hz.nhjje
  3982. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  3983. Cast(Sum(( CASE
  3984. WHEN hz.dz = 0 THEN hz.传票预计价
  3985. ELSE hz.nhjje
  3986. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  3987. Cast(Sum(CASE
  3988. WHEN hz.dz = 0 THEN hz.nclje
  3989. ELSE hz.nclje
  3990. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  3991. iCydid
  3992. FROM (SELECT yjj.传票预计价单号,
  3993. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3994. yjj.iCYDID,
  3995. d.cjjdh 计价单号,
  3996. d.ccydh 订单号,
  3997. d.cbz 备注,
  3998. d.ngjje,
  3999. d.nclje,
  4000. d.itax,
  4001. IFNULL(d.iwjg, 0) iwjg,
  4002. IFNULL(d.lzfbs, 0) lzfbs,
  4003. d.nhjje,
  4004. IFNULL(d.ldz, 0) dz,
  4005. yjj.bShbz
  4006. FROM (SELECT b.csccpbh 传票预计价单号,
  4007. a.ccydh,
  4008. a.icydid,
  4009. Sum(c.fje) 传票预计价,
  4010. b.bshbz
  4011. FROM MCYD a
  4012. LEFT JOIN sccp b
  4013. ON a.icydid = b.icydid
  4014. LEFT JOIN ZbHjXm c
  4015. ON c.sccpid = b.sccpid
  4016. WHERE b.bOutProcess = '1 '
  4017. GROUP BY b.csccpbh,
  4018. a.icydid,
  4019. a.CCYDH,
  4020. b.bshbz,
  4021. b.bOutProcess) yjj
  4022. LEFT JOIN tbluey d
  4023. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  4024. WHERE hz.iwjg = 1
  4025. AND hz.lzfbs = 0
  4026. GROUP BY hz.ICYDID) fw
  4027. LEFT JOIN (SELECT icydid,
  4028. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  4029. WHERE icydid = a.icydid) AS cbz
  4030. FROM TBluey a
  4031. GROUP BY icydid) bz
  4032. ON bz.icydid = fw.iCYDID) tb_out
  4033. ON ord.icydid = tb_out.iCydid
  4034. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  4035. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  4036. iCydid,
  4037. CASE
  4038. WHEN ldz = 1 THEN 1
  4039. ELSE 0
  4040. END ldz
  4041. FROM TJob
  4042. WHERE lzfbs = 0
  4043. GROUP BY iCydid,
  4044. nclje,
  4045. itax,
  4046. ldz) tj
  4047. ON ord.ICYDID = tj.iCydid
  4048. WHERE ord.ICYDSTATE > 0
  4049. AND 1 = 1) zb
  4050. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
  4051. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  4052. GROUP BY zb.业务单位) dq
  4053. RIGHT JOIN (SELECT zb1.业务单位,
  4054. Sum(zb1.合并金额) 上年销售收入,
  4055. Sum(zb1.合并工价) 上年销售工价,
  4056. Sum(zb1.考核计算毛利不含税)上年考核计算毛利
  4057. FROM (SELECT CASE
  4058. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  4059. ELSE '否'
  4060. END 登账,
  4061. CONVERT(DCYRQ, CHAR(10)) AS 承印日期,
  4062. CCYDH AS 订单号,
  4063. CYJMC AS 印件名称,
  4064. CASE
  4065. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  4066. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  4067. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  4068. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  4069. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  4070. OR CYWDWMC='浙江省新华书店集团有限公司'
  4071. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  4072. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  4073. WHEN CYWDWMC='浙江日报报业集团'
  4074. OR CYWDWMC='共产党员杂志社'
  4075. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  4076. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  4077. OR CYWDWMC='浙江出版传媒有限公司'
  4078. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  4079. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  4080. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  4081. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  4082. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  4083. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  4084. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  4085. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  4086. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  4087. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  4088. WHEN CYWDWMC='上海人民出版社有限公司'
  4089. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  4090. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  4091. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  4092. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  4093. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  4094. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  4095. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  4096. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  4097. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  4098. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  4099. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  4100. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  4101. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  4102. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  4103. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  4104. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  4105. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  4106. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  4107. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  4108. ELSE CYWDWMC
  4109. END AS 业务单位,
  4110. cyjlx 印件类型,
  4111. NCS AS 印数,
  4112. CZWKB AS 开本,
  4113. CDF AS 订法,
  4114. NZWYZ AS 正文印张,
  4115. cbz 发外备注,
  4116. CASE
  4117. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  4118. ELSE
  4119. CASE
  4120. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  4121. + CASE
  4122. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4123. ELSE ( CASE
  4124. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4125. ELSE ( CASE
  4126. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4127. ELSE IFNULL(tj.sum_clje, 0)
  4128. END )
  4129. END )
  4130. END = 0
  4131. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  4132. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  4133. + CASE
  4134. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4135. ELSE ( CASE
  4136. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4137. ELSE ( CASE
  4138. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4139. ELSE IFNULL(tj.sum_clje, 0)
  4140. END )
  4141. END )
  4142. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  4143. END
  4144. END AS 考核计算毛利不含税,
  4145. CASE
  4146. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  4147. ELSE
  4148. CASE
  4149. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  4150. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  4151. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  4152. END
  4153. END AS 考核计算工价毛利不含税,
  4154. ( CASE
  4155. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  4156. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  4157. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4158. ELSE ( CASE
  4159. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4160. ELSE ( CASE
  4161. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4162. ELSE IFNULL(tj.sum_clje, 0)
  4163. END )
  4164. END )
  4165. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  4166. END ) AS 考核计算料价毛利不含税,
  4167. CASE
  4168. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  4169. ELSE ( IFNULL(tj.sum_namount, 0) )
  4170. END 合并金额,
  4171. CASE
  4172. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  4173. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  4174. END 合并工价,
  4175. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  4176. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  4177. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  4178. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  4179. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  4180. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  4181. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  4182. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  4183. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  4184. ord.nzkl AS 折扣率,
  4185. CASE
  4186. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  4187. ELSE ( CASE
  4188. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  4189. + CASE
  4190. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4191. ELSE ( CASE
  4192. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4193. ELSE ( CASE
  4194. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4195. ELSE IFNULL(tj.sum_clje, 0)
  4196. END )
  4197. END )
  4198. END = 0
  4199. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  4200. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  4201. + CASE
  4202. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4203. ELSE ( CASE
  4204. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4205. ELSE ( CASE
  4206. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4207. ELSE IFNULL(tj.sum_clje, 0)
  4208. END )
  4209. END )
  4210. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  4211. END )
  4212. END AS 生产毛利不含税,
  4213. CASE
  4214. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  4215. ELSE ( CASE
  4216. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  4217. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  4218. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  4219. END )
  4220. END AS 生产工价毛利不含税,
  4221. IFNULL(tj.sum_clje, 0) - ( CASE
  4222. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4223. ELSE ( CASE
  4224. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4225. ELSE ( CASE
  4226. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4227. ELSE IFNULL(tj.sum_clje, 0)
  4228. END )
  4229. END )
  4230. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  4231. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  4232. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  4233. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  4234. IFNULL(tb_in.sum_ngjje_in, 0)
  4235. + CASE
  4236. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4237. ELSE ( CASE
  4238. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4239. ELSE ( CASE
  4240. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4241. ELSE IFNULL(tj.sum_clje, 0)
  4242. END )
  4243. END )
  4244. END AS 厂内传票合计不含税,
  4245. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  4246. CASE
  4247. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4248. ELSE ( CASE
  4249. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4250. ELSE ( CASE
  4251. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4252. ELSE IFNULL(tj.sum_clje, 0)
  4253. END )
  4254. END )
  4255. END AS 厂内传票料价不含税,
  4256. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  4257. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  4258. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  4259. CHY AS 活源,
  4260. CCLBMMC AS 承揽部门,
  4261. CYWYXM AS 业务员,
  4262. lwcbs AS 是否完工,
  4263. Dwcrq AS 完工日期,
  4264. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  4265. LJQBS AS 是否结清,
  4266. djqrq AS 结清日期,
  4267. izlconfirm AS 是否销货,
  4268. dzlconfirmrq AS 销货日期,
  4269. nzlconfirmje AS 销货金额,
  4270. nzlysje AS 销货应收,
  4271. IFNULL(ipaytime, 0) AS 帐龄,
  4272. ( CASE
  4273. WHEN ljqbs = 0
  4274. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  4275. ELSE 0
  4276. END ) AS 付款周期,
  4277. ( CASE
  4278. WHEN ljqbs = 0
  4279. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  4280. ELSE 0
  4281. END ) AS 过期天数,
  4282. ( CASE
  4283. WHEN bsfsk = 1 THEN 1
  4284. ELSE 0
  4285. END ) AS 是否收款,
  4286. nysje AS 预收款,
  4287. fskje AS 收款金额,
  4288. ( CASE
  4289. WHEN bsfdjfp = 1 THEN 1
  4290. ELSE 0
  4291. END ) AS '是否开票',
  4292. ffpje AS 发票金额,
  4293. cfph AS 发票号,
  4294. cfprq AS 发票日期,
  4295. ( CASE
  4296. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  4297. ELSE 0
  4298. END ) AS 未开完票金额,
  4299. ( CASE
  4300. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  4301. ELSE 0
  4302. END ) AS 发票未收款金额,
  4303. iselforder AS 是否异常,
  4304. cselftype AS 异常类型,
  4305. CASE
  4306. WHEN bsfdjfp = 1 THEN ( CASE
  4307. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  4308. ELSE 0
  4309. END )
  4310. ELSE ( CASE
  4311. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  4312. ELSE ( CASE
  4313. WHEN nzlconfirmje = 0 THEN nhjje
  4314. ELSE nzlconfirmje
  4315. END )
  4316. END )
  4317. END 未开票
  4318. FROM MCYD Ord
  4319. LEFT JOIN (SELECT ICYDID,
  4320. Max(Nsc) AS Nsc
  4321. FROM SCYDDX
  4322. WHERE IDXLXID = 573
  4323. GROUP BY ICYDID) AS Obj
  4324. ON ord.ICYDID = Obj.ICYDID
  4325. LEFT JOIN (SELECT ICYDID,
  4326. Sum(NYSLS) AS nysls,
  4327. Sum(nyssl) AS nyssl,
  4328. Sum(nsyl) AS nsyl
  4329. FROM SCYDDX
  4330. GROUP BY ICYDID) AS ObjMatier
  4331. ON Ord.ICYDID = ObjMatier.ICYDID
  4332. LEFT JOIN (SELECT Sum(CASE
  4333. WHEN hz.dz = 1 THEN hz.nhjje
  4334. ELSE hz.传票预计价
  4335. END) AS sum_nhjje_in,
  4336. Sum(CASE
  4337. WHEN hz.dz = 1 THEN hz.nhjje
  4338. ELSE hz.传票预计价
  4339. END) AS sum_ngjje_in,
  4340. Sum(CASE
  4341. WHEN hz.dz = 1 THEN hz.nclje
  4342. ELSE hz.nclje
  4343. END) AS sum_nclje_in,
  4344. hz.ICYDID
  4345. FROM (SELECT yjj.传票预计价单号,
  4346. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  4347. yjj.iCYDID,
  4348. d.cjjdh 计价单号,
  4349. d.ccydh 订单号,
  4350. d.cbz 备注,
  4351. d.ngjje,
  4352. d.nclje,
  4353. IFNULL(d.iwjg, 0) iwjg,
  4354. IFNULL(d.lzfbs, 0) lzfbs,
  4355. d.nhjje,
  4356. IFNULL(d.ldz, 0) dz,
  4357. yjj.bShbz
  4358. FROM (SELECT b.csccpbh 传票预计价单号,
  4359. a.ccydh,
  4360. a.icydid,
  4361. Sum(c.fje) 传票预计价,
  4362. b.bshbz
  4363. FROM MCYD a
  4364. LEFT JOIN sccp b
  4365. ON a.icydid = b.icydid
  4366. LEFT JOIN ZbHjXm c
  4367. ON c.sccpid = b.sccpid
  4368. WHERE b.bOutProcess = '0 '
  4369. GROUP BY b.csccpbh,
  4370. a.icydid,
  4371. a.CCYDH,
  4372. b.bshbz,
  4373. b.bOutProcess) yjj
  4374. LEFT JOIN tbluey d
  4375. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  4376. WHERE hz.iwjg = 0
  4377. AND hz.bshbz = 1
  4378. AND hz.lzfbs = 0
  4379. GROUP BY hz.ICYDID) tb_in
  4380. ON ord.icydid = tb_in.iCydid
  4381. LEFT JOIN (SELECT fw.iCYDID,
  4382. sum_nhjje_out,
  4383. sum_ngjje_out,
  4384. sum_nclje_out,
  4385. bz.cbz
  4386. FROM (SELECT Cast(Sum(( CASE
  4387. WHEN hz.dz = 0 THEN hz.传票预计价
  4388. ELSE hz.nhjje
  4389. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  4390. Cast(Sum(( CASE
  4391. WHEN hz.dz = 0 THEN hz.传票预计价
  4392. ELSE hz.nhjje
  4393. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  4394. Cast(Sum(CASE
  4395. WHEN hz.dz = 0 THEN hz.nclje
  4396. ELSE hz.nclje
  4397. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  4398. iCydid
  4399. FROM (SELECT yjj.传票预计价单号,
  4400. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  4401. yjj.iCYDID,
  4402. d.cjjdh 计价单号,
  4403. d.ccydh 订单号,
  4404. d.cbz 备注,
  4405. d.ngjje,
  4406. d.nclje,
  4407. d.itax,
  4408. IFNULL(d.iwjg, 0) iwjg,
  4409. IFNULL(d.lzfbs, 0) lzfbs,
  4410. d.nhjje,
  4411. IFNULL(d.ldz, 0) dz,
  4412. yjj.bShbz
  4413. FROM (SELECT b.csccpbh 传票预计价单号,
  4414. a.ccydh,
  4415. a.icydid,
  4416. Sum(c.fje) 传票预计价,
  4417. b.bshbz
  4418. FROM MCYD a
  4419. LEFT JOIN sccp b
  4420. ON a.icydid = b.icydid
  4421. LEFT JOIN ZbHjXm c
  4422. ON c.sccpid = b.sccpid
  4423. WHERE b.bOutProcess = '1 '
  4424. GROUP BY b.csccpbh,
  4425. a.icydid,
  4426. a.CCYDH,
  4427. b.bshbz,
  4428. b.bOutProcess) yjj
  4429. LEFT JOIN tbluey d
  4430. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  4431. WHERE hz.iwjg = 1
  4432. AND hz.lzfbs = 0
  4433. GROUP BY hz.ICYDID) fw
  4434. LEFT JOIN (SELECT icydid,
  4435. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  4436. WHERE icydid = a.icydid) AS cbz
  4437. FROM TBluey a
  4438. GROUP BY icydid) bz
  4439. ON bz.icydid = fw.iCYDID) tb_out
  4440. ON ord.icydid = tb_out.iCydid
  4441. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  4442. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  4443. iCydid,
  4444. CASE
  4445. WHEN ldz = 1 THEN 1
  4446. ELSE 0
  4447. END ldz
  4448. FROM TJob
  4449. WHERE lzfbs = 0
  4450. GROUP BY iCydid,
  4451. nclje,
  4452. itax,
  4453. ldz) tj
  4454. ON ord.ICYDID = tj.iCydid
  4455. WHERE ord.ICYDSTATE > 0
  4456. AND 1 = 1) zb1
  4457. -- WHERE CONVERT(Dateadd(YEAR, 1, zb1.承印日期),CHAR(10)) >= '{$januaryFirst}'
  4458. -- AND CONVERT(Dateadd(YEAR, 1, zb1.承印日期),CHAR(10)) <= '{$today}'
  4459. GROUP BY zb1.业务单位) hb
  4460. ON hb.业务单位 = dq.业务单位))a) aa
  4461. ORDER BY Aa.考核计算毛利(万元) DESC
  4462. ";
  4463. // WHERE CONVERT(zb1.承印日期,CHAR(10)) >= '{$lastYearJanuaryFirst}'
  4464. // AND CONVERT(zb1.承印日期,CHAR(10)) <= '{$lastYearDecember31 }'
  4465. $result=Db::query($sql);
  4466. if ($result) {
  4467. $redis->set($redis_key, json_encode($result));
  4468. echo date("Y-m-d H:i:s").' 存进去了';
  4469. return $result;
  4470. }
  4471. // $redis->set($redis_key, json_encode($result));
  4472. // echo date("Y-m-d H:i:s").' 存进去了';
  4473. }
  4474. //年度考核毛利收入同比上升和下滑一览表->获取固定公司名称
  4475. public function getcustomerlist() {
  4476. return [
  4477. '浙江出版传媒股份有限公司(含省出版公司)',
  4478. '杭州印校印务有限公司',
  4479. '人民教育出版社有限公司',
  4480. '浙江省新华书店集团有限公司(含教育、少儿)',
  4481. '浙江教育出版社集团有限公司',
  4482. '求是杂志社',
  4483. '读者出版传媒股份有限公司',
  4484. '浙江科学技术出版社有限公司',
  4485. '大星(上海)文化传媒有限公司',
  4486. '浙江教育报刊总社',
  4487. '浙江省财税政策研究室',
  4488. '浙江人民美术出版社有限公司',
  4489. '《今日浙江》杂志社',
  4490. '浙江新华数码印务有限公司',
  4491. '宁波出版社有限公司',
  4492. '浙江人民出版社有限公司',
  4493. '浙江中烟工业有限责任公司',
  4494. '中国大百科全书出版社',
  4495. '上海人民出版社有限责任公司',
  4496. '浙江省新华书店集团物流配送有限公司',
  4497. '上海译文出版社有限公司',
  4498. '浙江少年儿童出版社有限公司',
  4499. '浙江日报报业集团(含共产党员)',
  4500. '复旦大学出版社有限公司',
  4501. '浙江旅游职业学院',
  4502. '浙江文艺出版社有限公司',
  4503. '上海市社会科学事业发展研究中心(《学术月刊》杂志社)',
  4504. '中国青年出版总社有限公司',
  4505. '浙江摄影出版社有限公司',
  4506. '湖北知音传媒股份有限公司',
  4507. '中信出版集团股份有限公司',
  4508. '杭州国家版本馆',
  4509. '人民美术出版社有限公司',
  4510. '上海古籍出版社有限公司',
  4511. '浙江省期刊总社有限公司',
  4512. '中国农业科学院茶叶研究所',
  4513. '浙江华硕国际贸易有限责任公司',
  4514. '浙江《职业教育》杂志社有限公司',
  4515. '半月选读杂志社',
  4516. '《纺织服装周刊》杂志社有限公司',
  4517. '浙江古籍出版社有限公司',
  4518. '浙江省卫生健康综合保障中心',
  4519. '浙江新华广告有限公司',
  4520. '人民出版社',
  4521. '党建读物出版社',
  4522. '杭州师范大学附属中学',
  4523. '宁波市大港印务有限公司',
  4524. '杭州市萧山区教育局',
  4525. '浙江临安曙光印务有限公司',
  4526. '浙江省体育彩票管理中心',
  4527. '中共浙江省委主题教育领导小组办公室',
  4528. '浙江省新华书店集团有限公司(作业本)',
  4529. '浙江大学医学院附属邵逸夫医院',
  4530. '上海卓文印刷包装材料有限公司',
  4531. '红旗出版社有限公司',
  4532. '浙江省公安厅',
  4533. '文化交流杂志社',
  4534. '浙江艺术职业学院',
  4535. '杭州蓝狮子文化创意股份有限公司(工商大学出版)',
  4536. '湖北知音动漫有限公司',
  4537. '浙江省国资委',
  4538. '浙江音乐学院',
  4539. '浙江超能印业有限公司',
  4540. '杭州风景名胜传媒有限公司',
  4541. '上海市社会科学界联合会',
  4542. '自然资源部第二海洋研究所',
  4543. '学习出版社有限公司',
  4544. '浙江印刷集团有限公司',
  4545. '浙江省文学艺术界联合会',
  4546. '杭州长命印刷有限公司',
  4547. '浙江省新闻出版广电局',
  4548. '中国(杭州)智慧城市研究院有限公司',
  4549. '浙江双溪印业有限公司',
  4550. '浙江省人民检察院',
  4551. '杭州顺峰纸制品有限公司',
  4552. '上海辞书出版社有限公司',
  4553. '浙江电子音像出版社有限公司',
  4554. '杭州休闲文化传媒有限公司',
  4555. '浙江大学出版社有限责任公司',
  4556. '杭州出版社有限公司',
  4557. '星球地图出版社',
  4558. '浙江新华印刷技术有限公司',
  4559. '教育科学出版社有限公司',
  4560. '浙江新世纪电子音像发行有限公司',
  4561. ];
  4562. }
  4563. //年度考核毛利收入同比上升和下滑一览表 接口
  4564. public function year_profit(){
  4565. $redis = redis();
  4566. $result = json_decode($redis->get(md5('year_profit_redis')), true);
  4567. $list['columns'] = [
  4568. ['name' => '客户名称', 'id' => 'khmc', 'width' => '55', 'autoWrap' => "true", 'textAlign' => 'left'],
  4569. ['name' => '毛利收入(万元)', 'id' => 'mlsr', 'width' => '24', 'autoWrap' => "true", 'textAlign' => 'left'],
  4570. ['name' => '同比增长率', 'id' => 'zzl', 'width' => '18', 'autoWrap' => "true", 'textAlign' => 'left']
  4571. ];
  4572. // 判断 $result 是否为空
  4573. if(empty($result)) {
  4574. $list['rows'] = [];
  4575. } else {
  4576. //去掉重复名称的数据
  4577. $list_result = [];
  4578. foreach($result as $tvalue)
  4579. {
  4580. $key = md5(trim($tvalue['客户']));
  4581. if(!isset($list_result[$key])){
  4582. $list_result[$key] = $tvalue;
  4583. }
  4584. }
  4585. //获取固定公司名的数据
  4586. $list_result2 = [];
  4587. $customer_list = $this->getcustomerlist();
  4588. foreach($list_result as $tvalue2)
  4589. {
  4590. if(in_array(trim($tvalue2['客户']),$customer_list)){
  4591. $list_result2[] = $tvalue2;
  4592. }
  4593. }
  4594. if($list_result2){
  4595. // 获取前六个
  4596. $firstFour = array_slice($list_result2, 0, 6);
  4597. // 获取后六个
  4598. $lastThree = array_slice($list_result2, -6, 6);
  4599. // 合并数组,获取前六个和后六个
  4600. $combinedResult = array_merge($firstFour, $lastThree);
  4601. foreach ($combinedResult as $k => $v) {
  4602. $list['rows'][$k]['khmc'] = $v['客户'];
  4603. $list['rows'][$k]['mlsr'] = $v['考核计算毛利(万元)'];
  4604. $list['rows'][$k]['zzl'] = $v['毛利增长率'];
  4605. }
  4606. }
  4607. }
  4608. $res['status'] = 0;
  4609. $res['msg'] = '';
  4610. $res['data'] = $list;
  4611. return json($res);
  4612. }
  4613. //年度考核销售收入同比上升和下滑一览表 缓存
  4614. public function year_dclandsx_redis(){
  4615. $redis = redis();
  4616. $redis_key = md5('year_dclandsx_redis');
  4617. $januaryFirst = date('Y-01-01');
  4618. $today = date('Y-m-d');
  4619. $sql = "SELECT bb.客户,
  4620. bb.销售收入(万元),
  4621. bb.上年销售收入(万元),
  4622. bb.销售收入增减(万元),bb.销售收入增长率 FROM(SELECT aa.客户,
  4623. aa.销售收入(万元),
  4624. aa.上年销售收入(万元),
  4625. aa.销售收入增减(万元),
  4626. CASE
  4627. WHEN IFNULL(aa.上年销售收入(万元), 0) = 0 THEN '/'
  4628. ELSE Ltrim(Cast(aa.销售收入增减(万元)*100/aa.上年销售收入(万元) AS DECIMAL(10, 2)))
  4629. END AS 销售收入增长率
  4630. FROM (SELECT a.客户,
  4631. CONVERT(Round(a.销售收入 / 10000, 2),DECIMAL(10, 2)) AS '销售收入(万元)',
  4632. CONVERT(Round(a.上年销售收入 / 10000, 2),DECIMAL(10, 2)) AS '上年销售收入(万元)',
  4633. CONVERT(Round(a.销售收入增减 / 10000, 2),DECIMAL(10, 2)) AS '销售收入增减(万元)',
  4634. CONVERT(Round(a.销售工价 / 10000, 2),DECIMAL(10, 2)) AS '销售工价(万元)',
  4635. CONVERT(Round(a.上年销售工价 / 10000, 2),DECIMAL(10, 2)) AS '上年销售工价(万元)',
  4636. CONVERT(Round(a.销售工价增减 / 10000, 2),DECIMAL(10, 2)) AS '销售工价增减(万元)',
  4637. CONVERT(Round(a.考核计算毛利 / 10000, 2),DECIMAL(10, 2)) AS '考核计算毛利(万元)',
  4638. CONVERT(Round(a.上年考核计算毛利 / 10000, 2),DECIMAL(10, 2))AS '上年考核计算毛利(万元)',
  4639. CONVERT(Round(a.考核计算毛利增减 / 10000, 2),DECIMAL(10, 2))AS '考核计算毛利增减(万元)'
  4640. FROM ((SELECT 1 AS flag,
  4641. IFNULL(dq.业务单位, hb.业务单位) 客户,
  4642. IFNULL(dq.销售收入, 000) 销售收入,
  4643. IFNULL(hb.上年销售收入, 0.000) 上年销售收入,
  4644. IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000) 销售收入增减,
  4645. CASE
  4646. WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
  4647. WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
  4648. AND IFNULL(dq.销售收入, 000) > 0 THEN 1
  4649. ELSE 0
  4650. END AS 销售收入同期比,
  4651. IFNULL(dq.销售工价, 000) 销售工价,
  4652. IFNULL(hb.上年销售工价, 0.000) 上年销售工价,
  4653. IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000) 销售工价增减,
  4654. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  4655. IFNULL(hb.上年考核计算毛利, 0.000) 上年考核计算毛利,
  4656. IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
  4657. CASE
  4658. WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
  4659. WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
  4660. AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
  4661. ELSE 0
  4662. END AS 毛利同期比
  4663. FROM (SELECT zb.业务单位 业务单位,
  4664. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  4665. IFNULL(Sum(zb.合并工价), 0.000) 销售工价,
  4666. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
  4667. FROM (SELECT CASE
  4668. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  4669. ELSE '否'
  4670. END 登账,
  4671. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  4672. CCYDH AS 订单号,
  4673. CYJMC AS 印件名称,
  4674. CASE
  4675. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  4676. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  4677. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  4678. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  4679. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  4680. OR CYWDWMC='浙江省新华书店集团有限公司'
  4681. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  4682. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  4683. WHEN CYWDWMC='浙江日报报业集团'
  4684. OR CYWDWMC='共产党员杂志社'
  4685. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  4686. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  4687. OR CYWDWMC='浙江出版传媒有限公司'
  4688. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  4689. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  4690. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  4691. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  4692. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  4693. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  4694. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  4695. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  4696. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  4697. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  4698. WHEN CYWDWMC='上海人民出版社有限公司'
  4699. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  4700. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  4701. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  4702. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  4703. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  4704. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  4705. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  4706. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  4707. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  4708. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  4709. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  4710. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  4711. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  4712. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  4713. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  4714. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  4715. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  4716. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  4717. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  4718. ELSE CYWDWMC
  4719. END AS 业务单位,
  4720. cyjlx 印件类型,
  4721. NCS AS 印数,
  4722. CZWKB AS 开本,
  4723. CDF AS 订法,
  4724. NZWYZ AS 正文印张,
  4725. CASE
  4726. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  4727. ELSE
  4728. CASE
  4729. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  4730. + CASE
  4731. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4732. ELSE ( CASE
  4733. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4734. ELSE ( CASE
  4735. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4736. ELSE IFNULL(tj.sum_clje, 0)
  4737. END )
  4738. END )
  4739. END = 0
  4740. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  4741. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  4742. + CASE
  4743. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4744. ELSE ( CASE
  4745. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4746. ELSE ( CASE
  4747. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4748. ELSE IFNULL(tj.sum_clje, 0)
  4749. END )
  4750. END )
  4751. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  4752. END
  4753. END AS 考核计算毛利不含税,
  4754. CASE
  4755. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  4756. ELSE
  4757. CASE
  4758. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  4759. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  4760. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  4761. END
  4762. END AS 考核计算工价毛利不含税,
  4763. ( CASE
  4764. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  4765. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  4766. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4767. ELSE ( CASE
  4768. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4769. ELSE ( CASE
  4770. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4771. ELSE IFNULL(tj.sum_clje, 0)
  4772. END )
  4773. END )
  4774. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  4775. END ) AS 考核计算料价毛利不含税,
  4776. CASE
  4777. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  4778. ELSE ( IFNULL(tj.sum_namount, 0) )
  4779. END 合并金额,
  4780. CASE
  4781. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  4782. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  4783. END 合并工价,
  4784. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  4785. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  4786. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  4787. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  4788. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  4789. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  4790. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  4791. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  4792. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  4793. ord.nzkl AS 折扣率,
  4794. CASE
  4795. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  4796. ELSE ( CASE
  4797. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  4798. + CASE
  4799. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4800. ELSE ( CASE
  4801. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4802. ELSE ( CASE
  4803. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4804. ELSE IFNULL(tj.sum_clje, 0)
  4805. END )
  4806. END )
  4807. END = 0
  4808. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  4809. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  4810. + CASE
  4811. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4812. ELSE ( CASE
  4813. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4814. ELSE ( CASE
  4815. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4816. ELSE IFNULL(tj.sum_clje, 0)
  4817. END )
  4818. END )
  4819. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  4820. END )
  4821. END AS 生产毛利不含税,
  4822. CASE
  4823. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  4824. ELSE ( CASE
  4825. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  4826. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  4827. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  4828. END )
  4829. END AS 生产工价毛利不含税,
  4830. IFNULL(tj.sum_clje, 0) - ( CASE
  4831. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4832. ELSE ( CASE
  4833. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4834. ELSE ( CASE
  4835. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4836. ELSE IFNULL(tj.sum_clje, 0)
  4837. END )
  4838. END )
  4839. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  4840. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  4841. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  4842. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  4843. IFNULL(tb_in.sum_ngjje_in, 0)
  4844. + CASE
  4845. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4846. ELSE ( CASE
  4847. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4848. ELSE ( CASE
  4849. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4850. ELSE IFNULL(tj.sum_clje, 0)
  4851. END )
  4852. END )
  4853. END AS 厂内传票合计不含税,
  4854. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  4855. CASE
  4856. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4857. ELSE ( CASE
  4858. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4859. ELSE ( CASE
  4860. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4861. ELSE IFNULL(tj.sum_clje, 0)
  4862. END )
  4863. END )
  4864. END AS 厂内传票料价不含税,
  4865. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  4866. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  4867. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  4868. CHY AS 活源,
  4869. CCLBMMC AS 承揽部门,
  4870. CYWYXM AS 业务员,
  4871. lwcbs AS 是否完工,
  4872. Dwcrq AS 完工日期,
  4873. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  4874. LJQBS AS 是否结清,
  4875. djqrq AS 结清日期,
  4876. izlconfirm AS 是否销货,
  4877. dzlconfirmrq AS 销货日期,
  4878. nzlconfirmje AS 销货金额,
  4879. nzlysje AS 销货应收,
  4880. IFNULL(ipaytime, 0) AS 帐龄,
  4881. ( CASE
  4882. WHEN ljqbs = 0
  4883. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  4884. ELSE 0
  4885. END ) AS 付款周期,
  4886. ( CASE
  4887. WHEN ljqbs = 0
  4888. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  4889. ELSE 0
  4890. END ) AS 过期天数,
  4891. ( CASE
  4892. WHEN bsfsk = 1 THEN 1
  4893. ELSE 0
  4894. END ) AS 是否收款,
  4895. nysje AS 预收款,
  4896. fskje AS 收款金额,
  4897. ( CASE
  4898. WHEN bsfdjfp = 1 THEN 1
  4899. ELSE 0
  4900. END ) AS '是否开票',
  4901. ffpje AS 发票金额,
  4902. cfph AS 发票号,
  4903. cfprq AS 发票日期,
  4904. ( CASE
  4905. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  4906. ELSE 0
  4907. END ) AS 未开完票金额,
  4908. ( CASE
  4909. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  4910. ELSE 0
  4911. END ) AS 发票未收款金额,
  4912. iselforder AS 是否异常,
  4913. cselftype AS 异常类型,
  4914. CASE
  4915. WHEN bsfdjfp = 1 THEN ( CASE
  4916. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  4917. ELSE 0
  4918. END )
  4919. ELSE ( CASE
  4920. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  4921. ELSE ( CASE
  4922. WHEN nzlconfirmje = 0 THEN nhjje
  4923. ELSE nzlconfirmje
  4924. END )
  4925. END )
  4926. END 未开票
  4927. FROM MCYD Ord
  4928. LEFT JOIN (SELECT Sum(CASE
  4929. WHEN hz.dz = 1 THEN hz.nhjje
  4930. ELSE hz.传票预计价
  4931. END) AS sum_nhjje_in,
  4932. Sum(CASE
  4933. WHEN hz.dz = 1 THEN hz.nhjje
  4934. ELSE hz.传票预计价
  4935. END) AS sum_ngjje_in,
  4936. Sum(CASE
  4937. WHEN hz.dz = 1 THEN hz.nclje
  4938. ELSE hz.nclje
  4939. END) AS sum_nclje_in,
  4940. hz.ICYDID
  4941. FROM (SELECT yjj.传票预计价单号,
  4942. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  4943. yjj.iCYDID,
  4944. d.cjjdh 计价单号,
  4945. d.ccydh 订单号,
  4946. d.cbz 备注,
  4947. d.ngjje,
  4948. d.nclje,
  4949. IFNULL(d.iwjg, 0) iwjg,
  4950. IFNULL(d.lzfbs, 0) lzfbs,
  4951. d.nhjje,
  4952. IFNULL(d.ldz, 0) dz,
  4953. yjj.bShbz
  4954. FROM (SELECT b.csccpbh 传票预计价单号,
  4955. a.ccydh,
  4956. a.icydid,
  4957. Sum(c.fje) 传票预计价,
  4958. b.bshbz
  4959. FROM MCYD a
  4960. LEFT JOIN sccp b
  4961. ON a.icydid = b.icydid
  4962. LEFT JOIN ZbHjXm c
  4963. ON c.sccpid = b.sccpid
  4964. WHERE b.bOutProcess = '0 '
  4965. GROUP BY b.csccpbh,
  4966. a.icydid,
  4967. a.CCYDH,
  4968. b.bshbz,
  4969. b.bOutProcess) yjj
  4970. LEFT JOIN tbluey d
  4971. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  4972. WHERE hz.iwjg = 0
  4973. AND hz.bshbz = 1
  4974. AND hz.lzfbs = 0
  4975. GROUP BY hz.ICYDID) tb_in
  4976. ON ord.icydid = tb_in.iCydid
  4977. LEFT JOIN (SELECT fw.iCYDID,
  4978. sum_nhjje_out,
  4979. sum_ngjje_out,
  4980. sum_nclje_out,
  4981. bz.cbz
  4982. FROM (SELECT Cast(Sum(( CASE
  4983. WHEN hz.dz = 0 THEN hz.传票预计价
  4984. ELSE hz.nhjje
  4985. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  4986. Cast(Sum(( CASE
  4987. WHEN hz.dz = 0 THEN hz.传票预计价
  4988. ELSE hz.nhjje
  4989. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  4990. Cast(Sum(CASE
  4991. WHEN hz.dz = 0 THEN hz.nclje
  4992. ELSE hz.nclje
  4993. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  4994. iCydid
  4995. FROM (SELECT yjj.传票预计价单号,
  4996. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  4997. yjj.iCYDID,
  4998. d.cjjdh 计价单号,
  4999. d.ccydh 订单号,
  5000. d.cbz 备注,
  5001. d.ngjje,
  5002. d.nclje,
  5003. d.itax,
  5004. IFNULL(d.iwjg, 0) iwjg,
  5005. IFNULL(d.lzfbs, 0) lzfbs,
  5006. d.nhjje,
  5007. IFNULL(d.ldz, 0) dz,
  5008. yjj.bShbz
  5009. FROM (SELECT b.csccpbh 传票预计价单号,
  5010. a.ccydh,
  5011. a.icydid,
  5012. Sum(c.fje) 传票预计价,
  5013. b.bshbz
  5014. FROM MCYD a
  5015. LEFT JOIN sccp b
  5016. ON a.icydid = b.icydid
  5017. LEFT JOIN ZbHjXm c
  5018. ON c.sccpid = b.sccpid
  5019. WHERE b.bOutProcess = '1 '
  5020. GROUP BY b.csccpbh,
  5021. a.icydid,
  5022. a.CCYDH,
  5023. b.bshbz,
  5024. b.bOutProcess) yjj
  5025. LEFT JOIN tbluey d
  5026. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5027. WHERE hz.iwjg = 1
  5028. AND hz.lzfbs = 0
  5029. GROUP BY hz.ICYDID) fw
  5030. LEFT JOIN (SELECT icydid,
  5031. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  5032. WHERE icydid = a.icydid) AS cbz
  5033. FROM TBluey a
  5034. GROUP BY icydid) bz
  5035. ON bz.icydid = fw.iCYDID) tb_out
  5036. ON ord.icydid = tb_out.iCydid
  5037. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  5038. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  5039. iCydid,
  5040. CASE
  5041. WHEN ldz = 1 THEN 1
  5042. ELSE 0
  5043. END ldz
  5044. FROM TJob
  5045. WHERE lzfbs = 0
  5046. GROUP BY iCydid,
  5047. nclje,
  5048. itax,
  5049. ldz) tj
  5050. ON ord.ICYDID = tj.iCydid
  5051. WHERE ord.ICYDSTATE > 0
  5052. AND 1 = 1) zb
  5053. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
  5054. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  5055. GROUP BY zb.业务单位) dq
  5056. LEFT JOIN (SELECT zb1.业务单位,
  5057. Sum(zb1.合并金额) 上年销售收入,
  5058. Sum(zb1.合并工价) 上年销售工价,
  5059. Sum(zb1.考核计算毛利不含税)上年考核计算毛利
  5060. FROM (SELECT CASE
  5061. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  5062. ELSE '否'
  5063. END 登账,
  5064. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  5065. CCYDH AS 订单号,
  5066. CYJMC AS 印件名称,
  5067. CASE
  5068. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  5069. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  5070. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  5071. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  5072. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  5073. OR CYWDWMC='浙江省新华书店集团有限公司'
  5074. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  5075. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  5076. WHEN CYWDWMC='浙江日报报业集团'
  5077. OR CYWDWMC='共产党员杂志社'
  5078. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  5079. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  5080. OR CYWDWMC='浙江出版传媒有限公司'
  5081. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  5082. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  5083. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  5084. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  5085. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  5086. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  5087. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  5088. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  5089. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  5090. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  5091. WHEN CYWDWMC='上海人民出版社有限公司'
  5092. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  5093. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  5094. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  5095. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  5096. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  5097. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  5098. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  5099. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  5100. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  5101. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  5102. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  5103. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  5104. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  5105. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  5106. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  5107. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  5108. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  5109. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  5110. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  5111. ELSE CYWDWMC
  5112. END AS 业务单位,
  5113. cyjlx 印件类型,
  5114. NCS AS 印数,
  5115. CZWKB AS 开本,
  5116. CDF AS 订法,
  5117. NZWYZ AS 正文印张,
  5118. cbz 发外备注,
  5119. CASE
  5120. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  5121. ELSE
  5122. CASE
  5123. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5124. + CASE
  5125. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5126. ELSE ( CASE
  5127. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5128. ELSE ( CASE
  5129. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5130. ELSE IFNULL(tj.sum_clje, 0)
  5131. END )
  5132. END )
  5133. END = 0
  5134. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5135. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5136. + CASE
  5137. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5138. ELSE ( CASE
  5139. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5140. ELSE ( CASE
  5141. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5142. ELSE IFNULL(tj.sum_clje, 0)
  5143. END )
  5144. END )
  5145. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5146. END
  5147. END AS 考核计算毛利不含税,
  5148. CASE
  5149. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  5150. ELSE
  5151. CASE
  5152. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5153. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5154. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  5155. END
  5156. END AS 考核计算工价毛利不含税,
  5157. ( CASE
  5158. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  5159. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  5160. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5161. ELSE ( CASE
  5162. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5163. ELSE ( CASE
  5164. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5165. ELSE IFNULL(tj.sum_clje, 0)
  5166. END )
  5167. END )
  5168. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  5169. END ) AS 考核计算料价毛利不含税,
  5170. CASE
  5171. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  5172. ELSE ( IFNULL(tj.sum_namount, 0) )
  5173. END 合并金额,
  5174. CASE
  5175. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  5176. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  5177. END 合并工价,
  5178. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  5179. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  5180. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  5181. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  5182. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  5183. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  5184. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  5185. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  5186. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  5187. ord.nzkl AS 折扣率,
  5188. CASE
  5189. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5190. ELSE ( CASE
  5191. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5192. + CASE
  5193. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5194. ELSE ( CASE
  5195. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5196. ELSE ( CASE
  5197. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5198. ELSE IFNULL(tj.sum_clje, 0)
  5199. END )
  5200. END )
  5201. END = 0
  5202. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5203. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5204. + CASE
  5205. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5206. ELSE ( CASE
  5207. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5208. ELSE ( CASE
  5209. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5210. ELSE IFNULL(tj.sum_clje, 0)
  5211. END )
  5212. END )
  5213. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5214. END )
  5215. END AS 生产毛利不含税,
  5216. CASE
  5217. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5218. ELSE ( CASE
  5219. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5220. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5221. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  5222. END )
  5223. END AS 生产工价毛利不含税,
  5224. IFNULL(tj.sum_clje, 0) - ( CASE
  5225. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5226. ELSE ( CASE
  5227. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5228. ELSE ( CASE
  5229. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5230. ELSE IFNULL(tj.sum_clje, 0)
  5231. END )
  5232. END )
  5233. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  5234. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  5235. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  5236. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  5237. IFNULL(tb_in.sum_ngjje_in, 0)
  5238. + CASE
  5239. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5240. ELSE ( CASE
  5241. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5242. ELSE ( CASE
  5243. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5244. ELSE IFNULL(tj.sum_clje, 0)
  5245. END )
  5246. END )
  5247. END AS 厂内传票合计不含税,
  5248. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  5249. CASE
  5250. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5251. ELSE ( CASE
  5252. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5253. ELSE ( CASE
  5254. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5255. ELSE IFNULL(tj.sum_clje, 0)
  5256. END )
  5257. END )
  5258. END AS 厂内传票料价不含税,
  5259. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  5260. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  5261. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  5262. CHY AS 活源,
  5263. CCLBMMC AS 承揽部门,
  5264. CYWYXM AS 业务员,
  5265. lwcbs AS 是否完工,
  5266. Dwcrq AS 完工日期,
  5267. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  5268. LJQBS AS 是否结清,
  5269. djqrq AS 结清日期,
  5270. izlconfirm AS 是否销货,
  5271. dzlconfirmrq AS 销货日期,
  5272. nzlconfirmje AS 销货金额,
  5273. nzlysje AS 销货应收,
  5274. IFNULL(ipaytime, 0) AS 帐龄,
  5275. ( CASE
  5276. WHEN ljqbs = 0
  5277. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  5278. ELSE 0
  5279. END ) AS 付款周期,
  5280. ( CASE
  5281. WHEN ljqbs = 0
  5282. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  5283. ELSE 0
  5284. END ) AS 过期天数,
  5285. ( CASE
  5286. WHEN bsfsk = 1 THEN 1
  5287. ELSE 0
  5288. END ) AS 是否收款,
  5289. nysje AS 预收款,
  5290. fskje AS 收款金额,
  5291. ( CASE
  5292. WHEN bsfdjfp = 1 THEN 1
  5293. ELSE 0
  5294. END ) AS '是否开票',
  5295. ffpje AS 发票金额,
  5296. cfph AS 发票号,
  5297. cfprq AS 发票日期,
  5298. ( CASE
  5299. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  5300. ELSE 0
  5301. END ) AS 未开完票金额,
  5302. ( CASE
  5303. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  5304. ELSE 0
  5305. END ) AS 发票未收款金额,
  5306. iselforder AS 是否异常,
  5307. cselftype AS 异常类型,
  5308. CASE
  5309. WHEN bsfdjfp = 1 THEN ( CASE
  5310. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  5311. ELSE 0
  5312. END )
  5313. ELSE ( CASE
  5314. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  5315. ELSE ( CASE
  5316. WHEN nzlconfirmje = 0 THEN nhjje
  5317. ELSE nzlconfirmje
  5318. END )
  5319. END )
  5320. END 未开票
  5321. FROM MCYD Ord
  5322. LEFT JOIN (SELECT ICYDID,
  5323. Max(Nsc) AS Nsc
  5324. FROM SCYDDX
  5325. WHERE IDXLXID = 573
  5326. GROUP BY ICYDID) AS Obj
  5327. ON ord.ICYDID = Obj.ICYDID
  5328. LEFT JOIN (SELECT ICYDID,
  5329. Sum(NYSLS) AS nysls,
  5330. Sum(nyssl) AS nyssl,
  5331. Sum(nsyl) AS nsyl
  5332. FROM SCYDDX
  5333. GROUP BY ICYDID) AS ObjMatier
  5334. ON Ord.ICYDID = ObjMatier.ICYDID
  5335. LEFT JOIN (SELECT Sum(CASE
  5336. WHEN hz.dz = 1 THEN hz.nhjje
  5337. ELSE hz.传票预计价
  5338. END) AS sum_nhjje_in,
  5339. Sum(CASE
  5340. WHEN hz.dz = 1 THEN hz.nhjje
  5341. ELSE hz.传票预计价
  5342. END) AS sum_ngjje_in,
  5343. Sum(CASE
  5344. WHEN hz.dz = 1 THEN hz.nclje
  5345. ELSE hz.nclje
  5346. END) AS sum_nclje_in,
  5347. hz.ICYDID
  5348. FROM (SELECT yjj.传票预计价单号,
  5349. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5350. yjj.iCYDID,
  5351. d.cjjdh 计价单号,
  5352. d.ccydh 订单号,
  5353. d.cbz 备注,
  5354. d.ngjje,
  5355. d.nclje,
  5356. IFNULL(d.iwjg, 0) iwjg,
  5357. IFNULL(d.lzfbs, 0) lzfbs,
  5358. d.nhjje,
  5359. IFNULL(d.ldz, 0) dz,
  5360. yjj.bShbz
  5361. FROM (SELECT b.csccpbh 传票预计价单号,
  5362. a.ccydh,
  5363. a.icydid,
  5364. Sum(c.fje) 传票预计价,
  5365. b.bshbz
  5366. FROM MCYD a
  5367. LEFT JOIN sccp b
  5368. ON a.icydid = b.icydid
  5369. LEFT JOIN ZbHjXm c
  5370. ON c.sccpid = b.sccpid
  5371. WHERE b.bOutProcess = '0 '
  5372. GROUP BY b.csccpbh,
  5373. a.icydid,
  5374. a.CCYDH,
  5375. b.bshbz,
  5376. b.bOutProcess) yjj
  5377. LEFT JOIN tbluey d
  5378. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5379. WHERE hz.iwjg = 0
  5380. AND hz.bshbz = 1
  5381. AND hz.lzfbs = 0
  5382. GROUP BY hz.ICYDID) tb_in
  5383. ON ord.icydid = tb_in.iCydid
  5384. LEFT JOIN (SELECT fw.iCYDID,
  5385. sum_nhjje_out,
  5386. sum_ngjje_out,
  5387. sum_nclje_out,
  5388. bz.cbz
  5389. FROM (SELECT Cast(Sum(( CASE
  5390. WHEN hz.dz = 0 THEN hz.传票预计价
  5391. ELSE hz.nhjje
  5392. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  5393. Cast(Sum(( CASE
  5394. WHEN hz.dz = 0 THEN hz.传票预计价
  5395. ELSE hz.nhjje
  5396. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  5397. Cast(Sum(CASE
  5398. WHEN hz.dz = 0 THEN hz.nclje
  5399. ELSE hz.nclje
  5400. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  5401. iCydid
  5402. FROM (SELECT yjj.传票预计价单号,
  5403. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5404. yjj.iCYDID,
  5405. d.cjjdh 计价单号,
  5406. d.ccydh 订单号,
  5407. d.cbz 备注,
  5408. d.ngjje,
  5409. d.nclje,
  5410. d.itax,
  5411. IFNULL(d.iwjg, 0) iwjg,
  5412. IFNULL(d.lzfbs, 0) lzfbs,
  5413. d.nhjje,
  5414. IFNULL(d.ldz, 0) dz,
  5415. yjj.bShbz
  5416. FROM (SELECT b.csccpbh 传票预计价单号,
  5417. a.ccydh,
  5418. a.icydid,
  5419. Sum(c.fje) 传票预计价,
  5420. b.bshbz
  5421. FROM MCYD a
  5422. LEFT JOIN sccp b
  5423. ON a.icydid = b.icydid
  5424. LEFT JOIN ZbHjXm c
  5425. ON c.sccpid = b.sccpid
  5426. WHERE b.bOutProcess = '1 '
  5427. GROUP BY b.csccpbh,
  5428. a.icydid,
  5429. a.CCYDH,
  5430. b.bshbz,
  5431. b.bOutProcess) yjj
  5432. LEFT JOIN tbluey d
  5433. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5434. WHERE hz.iwjg = 1
  5435. AND hz.lzfbs = 0
  5436. GROUP BY hz.ICYDID) fw
  5437. LEFT JOIN (SELECT icydid,
  5438. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  5439. WHERE icydid = a.icydid) AS cbz
  5440. FROM TBluey a
  5441. GROUP BY icydid) bz
  5442. ON bz.icydid = fw.iCYDID) tb_out
  5443. ON ord.icydid = tb_out.iCydid
  5444. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  5445. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  5446. iCydid,
  5447. CASE
  5448. WHEN ldz = 1 THEN 1
  5449. ELSE 0
  5450. END ldz
  5451. FROM TJob
  5452. WHERE lzfbs = 0
  5453. GROUP BY iCydid,
  5454. nclje,
  5455. itax,
  5456. ldz) tj
  5457. ON ord.ICYDID = tj.iCydid
  5458. WHERE ord.ICYDSTATE > 0
  5459. AND 1 = 1) zb1
  5460. WHERE CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) >= '{$januaryFirst}'
  5461. AND CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) <= '{$today}'
  5462. GROUP BY zb1.业务单位) hb
  5463. ON hb.业务单位 = dq.业务单位)UNION(SELECT 1 AS flag,
  5464. IFNULL(dq.业务单位, hb.业务单位) 客户,
  5465. IFNULL(dq.销售收入, 000) 销售收入,
  5466. IFNULL(hb.上年销售收入, 0.000) 上年销售收入,
  5467. IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000) 销售收入增减,
  5468. CASE
  5469. WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
  5470. WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
  5471. AND IFNULL(dq.销售收入, 000) > 0 THEN 1
  5472. ELSE 0
  5473. END AS 销售收入同期比,
  5474. IFNULL(dq.销售工价, 000) 销售工价,
  5475. IFNULL(hb.上年销售工价, 0.000) 上年销售工价,
  5476. IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000) 销售工价增减,
  5477. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  5478. IFNULL(hb.上年考核计算毛利, 0.000) 上年考核计算毛利,
  5479. IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
  5480. CASE
  5481. WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
  5482. WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
  5483. AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
  5484. ELSE 0
  5485. END AS 毛利同期比
  5486. FROM (SELECT zb.业务单位 业务单位,
  5487. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  5488. IFNULL(Sum(zb.合并工价), 0.000) 销售工价,
  5489. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
  5490. FROM (SELECT CASE
  5491. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  5492. ELSE '否'
  5493. END 登账,
  5494. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  5495. CCYDH AS 订单号,
  5496. CYJMC AS 印件名称,
  5497. CASE
  5498. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  5499. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  5500. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  5501. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  5502. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  5503. OR CYWDWMC='浙江省新华书店集团有限公司'
  5504. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  5505. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  5506. WHEN CYWDWMC='浙江日报报业集团'
  5507. OR CYWDWMC='共产党员杂志社'
  5508. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  5509. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  5510. OR CYWDWMC='浙江出版传媒有限公司'
  5511. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  5512. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  5513. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  5514. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  5515. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  5516. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  5517. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  5518. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  5519. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  5520. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  5521. WHEN CYWDWMC='上海人民出版社有限公司'
  5522. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  5523. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  5524. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  5525. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  5526. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  5527. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  5528. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  5529. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  5530. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  5531. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  5532. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  5533. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  5534. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  5535. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  5536. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  5537. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  5538. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  5539. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  5540. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  5541. ELSE CYWDWMC
  5542. END AS 业务单位,
  5543. cyjlx 印件类型,
  5544. NCS AS 印数,
  5545. CZWKB AS 开本,
  5546. CDF AS 订法,
  5547. NZWYZ AS 正文印张,
  5548. CASE
  5549. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  5550. ELSE
  5551. CASE
  5552. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5553. + CASE
  5554. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5555. ELSE ( CASE
  5556. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5557. ELSE ( CASE
  5558. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5559. ELSE IFNULL(tj.sum_clje, 0)
  5560. END )
  5561. END )
  5562. END = 0
  5563. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5564. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5565. + CASE
  5566. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5567. ELSE ( CASE
  5568. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5569. ELSE ( CASE
  5570. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5571. ELSE IFNULL(tj.sum_clje, 0)
  5572. END )
  5573. END )
  5574. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5575. END
  5576. END AS 考核计算毛利不含税,
  5577. CASE
  5578. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  5579. ELSE
  5580. CASE
  5581. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5582. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5583. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  5584. END
  5585. END AS 考核计算工价毛利不含税,
  5586. ( CASE
  5587. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  5588. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  5589. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5590. ELSE ( CASE
  5591. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5592. ELSE ( CASE
  5593. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5594. ELSE IFNULL(tj.sum_clje, 0)
  5595. END )
  5596. END )
  5597. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  5598. END ) AS 考核计算料价毛利不含税,
  5599. CASE
  5600. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  5601. ELSE ( IFNULL(tj.sum_namount, 0) )
  5602. END 合并金额,
  5603. CASE
  5604. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  5605. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  5606. END 合并工价,
  5607. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  5608. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  5609. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  5610. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  5611. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  5612. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  5613. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  5614. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  5615. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  5616. ord.nzkl AS 折扣率,
  5617. CASE
  5618. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5619. ELSE ( CASE
  5620. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5621. + CASE
  5622. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5623. ELSE ( CASE
  5624. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5625. ELSE ( CASE
  5626. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5627. ELSE IFNULL(tj.sum_clje, 0)
  5628. END )
  5629. END )
  5630. END = 0
  5631. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5632. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5633. + CASE
  5634. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5635. ELSE ( CASE
  5636. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5637. ELSE ( CASE
  5638. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5639. ELSE IFNULL(tj.sum_clje, 0)
  5640. END )
  5641. END )
  5642. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5643. END )
  5644. END AS 生产毛利不含税,
  5645. CASE
  5646. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5647. ELSE ( CASE
  5648. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5649. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5650. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  5651. END )
  5652. END AS 生产工价毛利不含税,
  5653. IFNULL(tj.sum_clje, 0) - ( CASE
  5654. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5655. ELSE ( CASE
  5656. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5657. ELSE ( CASE
  5658. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5659. ELSE IFNULL(tj.sum_clje, 0)
  5660. END )
  5661. END )
  5662. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  5663. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  5664. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  5665. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  5666. IFNULL(tb_in.sum_ngjje_in, 0)
  5667. + CASE
  5668. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5669. ELSE ( CASE
  5670. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5671. ELSE ( CASE
  5672. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5673. ELSE IFNULL(tj.sum_clje, 0)
  5674. END )
  5675. END )
  5676. END AS 厂内传票合计不含税,
  5677. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  5678. CASE
  5679. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5680. ELSE ( CASE
  5681. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5682. ELSE ( CASE
  5683. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5684. ELSE IFNULL(tj.sum_clje, 0)
  5685. END )
  5686. END )
  5687. END AS 厂内传票料价不含税,
  5688. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  5689. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  5690. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  5691. CHY AS 活源,
  5692. CCLBMMC AS 承揽部门,
  5693. CYWYXM AS 业务员,
  5694. lwcbs AS 是否完工,
  5695. Dwcrq AS 完工日期,
  5696. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  5697. LJQBS AS 是否结清,
  5698. djqrq AS 结清日期,
  5699. izlconfirm AS 是否销货,
  5700. dzlconfirmrq AS 销货日期,
  5701. nzlconfirmje AS 销货金额,
  5702. nzlysje AS 销货应收,
  5703. IFNULL(ipaytime, 0) AS 帐龄,
  5704. ( CASE
  5705. WHEN ljqbs = 0
  5706. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  5707. ELSE 0
  5708. END ) AS 付款周期,
  5709. ( CASE
  5710. WHEN ljqbs = 0
  5711. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  5712. ELSE 0
  5713. END ) AS 过期天数,
  5714. ( CASE
  5715. WHEN bsfsk = 1 THEN 1
  5716. ELSE 0
  5717. END ) AS 是否收款,
  5718. nysje AS 预收款,
  5719. fskje AS 收款金额,
  5720. ( CASE
  5721. WHEN bsfdjfp = 1 THEN 1
  5722. ELSE 0
  5723. END ) AS '是否开票',
  5724. ffpje AS 发票金额,
  5725. cfph AS 发票号,
  5726. cfprq AS 发票日期,
  5727. ( CASE
  5728. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  5729. ELSE 0
  5730. END ) AS 未开完票金额,
  5731. ( CASE
  5732. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  5733. ELSE 0
  5734. END ) AS 发票未收款金额,
  5735. iselforder AS 是否异常,
  5736. cselftype AS 异常类型,
  5737. CASE
  5738. WHEN bsfdjfp = 1 THEN ( CASE
  5739. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  5740. ELSE 0
  5741. END )
  5742. ELSE ( CASE
  5743. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  5744. ELSE ( CASE
  5745. WHEN nzlconfirmje = 0 THEN nhjje
  5746. ELSE nzlconfirmje
  5747. END )
  5748. END )
  5749. END 未开票
  5750. FROM MCYD Ord
  5751. LEFT JOIN (SELECT Sum(CASE
  5752. WHEN hz.dz = 1 THEN hz.nhjje
  5753. ELSE hz.传票预计价
  5754. END) AS sum_nhjje_in,
  5755. Sum(CASE
  5756. WHEN hz.dz = 1 THEN hz.nhjje
  5757. ELSE hz.传票预计价
  5758. END) AS sum_ngjje_in,
  5759. Sum(CASE
  5760. WHEN hz.dz = 1 THEN hz.nclje
  5761. ELSE hz.nclje
  5762. END) AS sum_nclje_in,
  5763. hz.ICYDID
  5764. FROM (SELECT yjj.传票预计价单号,
  5765. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5766. yjj.iCYDID,
  5767. d.cjjdh 计价单号,
  5768. d.ccydh 订单号,
  5769. d.cbz 备注,
  5770. d.ngjje,
  5771. d.nclje,
  5772. IFNULL(d.iwjg, 0) iwjg,
  5773. IFNULL(d.lzfbs, 0) lzfbs,
  5774. d.nhjje,
  5775. IFNULL(d.ldz, 0) dz,
  5776. yjj.bShbz
  5777. FROM (SELECT b.csccpbh 传票预计价单号,
  5778. a.ccydh,
  5779. a.icydid,
  5780. Sum(c.fje) 传票预计价,
  5781. b.bshbz
  5782. FROM MCYD a
  5783. LEFT JOIN sccp b
  5784. ON a.icydid = b.icydid
  5785. LEFT JOIN ZbHjXm c
  5786. ON c.sccpid = b.sccpid
  5787. WHERE b.bOutProcess = '0 '
  5788. GROUP BY b.csccpbh,
  5789. a.icydid,
  5790. a.CCYDH,
  5791. b.bshbz,
  5792. b.bOutProcess) yjj
  5793. LEFT JOIN tbluey d
  5794. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5795. WHERE hz.iwjg = 0
  5796. AND hz.bshbz = 1
  5797. AND hz.lzfbs = 0
  5798. GROUP BY hz.ICYDID) tb_in
  5799. ON ord.icydid = tb_in.iCydid
  5800. LEFT JOIN (SELECT fw.iCYDID,
  5801. sum_nhjje_out,
  5802. sum_ngjje_out,
  5803. sum_nclje_out,
  5804. bz.cbz
  5805. FROM (SELECT Cast(Sum(( CASE
  5806. WHEN hz.dz = 0 THEN hz.传票预计价
  5807. ELSE hz.nhjje
  5808. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  5809. Cast(Sum(( CASE
  5810. WHEN hz.dz = 0 THEN hz.传票预计价
  5811. ELSE hz.nhjje
  5812. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  5813. Cast(Sum(CASE
  5814. WHEN hz.dz = 0 THEN hz.nclje
  5815. ELSE hz.nclje
  5816. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  5817. iCydid
  5818. FROM (SELECT yjj.传票预计价单号,
  5819. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5820. yjj.iCYDID,
  5821. d.cjjdh 计价单号,
  5822. d.ccydh 订单号,
  5823. d.cbz 备注,
  5824. d.ngjje,
  5825. d.nclje,
  5826. d.itax,
  5827. IFNULL(d.iwjg, 0) iwjg,
  5828. IFNULL(d.lzfbs, 0) lzfbs,
  5829. d.nhjje,
  5830. IFNULL(d.ldz, 0) dz,
  5831. yjj.bShbz
  5832. FROM (SELECT b.csccpbh 传票预计价单号,
  5833. a.ccydh,
  5834. a.icydid,
  5835. Sum(c.fje) 传票预计价,
  5836. b.bshbz
  5837. FROM MCYD a
  5838. LEFT JOIN sccp b
  5839. ON a.icydid = b.icydid
  5840. LEFT JOIN ZbHjXm c
  5841. ON c.sccpid = b.sccpid
  5842. WHERE b.bOutProcess = '1 '
  5843. GROUP BY b.csccpbh,
  5844. a.icydid,
  5845. a.CCYDH,
  5846. b.bshbz,
  5847. b.bOutProcess) yjj
  5848. LEFT JOIN tbluey d
  5849. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5850. WHERE hz.iwjg = 1
  5851. AND hz.lzfbs = 0
  5852. GROUP BY hz.ICYDID) fw
  5853. LEFT JOIN (SELECT icydid,
  5854. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  5855. WHERE icydid = a.icydid) AS cbz
  5856. FROM TBluey a
  5857. GROUP BY icydid) bz
  5858. ON bz.icydid = fw.iCYDID) tb_out
  5859. ON ord.icydid = tb_out.iCydid
  5860. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  5861. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  5862. iCydid,
  5863. CASE
  5864. WHEN ldz = 1 THEN 1
  5865. ELSE 0
  5866. END ldz
  5867. FROM TJob
  5868. WHERE lzfbs = 0
  5869. GROUP BY iCydid,
  5870. nclje,
  5871. itax,
  5872. ldz) tj
  5873. ON ord.ICYDID = tj.iCydid
  5874. WHERE ord.ICYDSTATE > 0
  5875. AND 1 = 1) zb
  5876. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
  5877. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  5878. GROUP BY zb.业务单位) dq
  5879. RIGHT JOIN (SELECT zb1.业务单位,
  5880. Sum(zb1.合并金额) 上年销售收入,
  5881. Sum(zb1.合并工价) 上年销售工价,
  5882. Sum(zb1.考核计算毛利不含税)上年考核计算毛利
  5883. FROM (SELECT CASE
  5884. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  5885. ELSE '否'
  5886. END 登账,
  5887. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  5888. CCYDH AS 订单号,
  5889. CYJMC AS 印件名称,
  5890. CASE
  5891. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  5892. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  5893. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  5894. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  5895. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  5896. OR CYWDWMC='浙江省新华书店集团有限公司'
  5897. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  5898. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  5899. WHEN CYWDWMC='浙江日报报业集团'
  5900. OR CYWDWMC='共产党员杂志社'
  5901. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  5902. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  5903. OR CYWDWMC='浙江出版传媒有限公司'
  5904. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  5905. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  5906. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  5907. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  5908. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  5909. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  5910. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  5911. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  5912. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  5913. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  5914. WHEN CYWDWMC='上海人民出版社有限公司'
  5915. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  5916. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  5917. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  5918. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  5919. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  5920. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  5921. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  5922. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  5923. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  5924. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  5925. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  5926. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  5927. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  5928. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  5929. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  5930. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  5931. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  5932. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  5933. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  5934. ELSE CYWDWMC
  5935. END AS 业务单位,
  5936. cyjlx 印件类型,
  5937. NCS AS 印数,
  5938. CZWKB AS 开本,
  5939. CDF AS 订法,
  5940. NZWYZ AS 正文印张,
  5941. cbz 发外备注,
  5942. CASE
  5943. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  5944. ELSE
  5945. CASE
  5946. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5947. + CASE
  5948. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5949. ELSE ( CASE
  5950. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5951. ELSE ( CASE
  5952. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5953. ELSE IFNULL(tj.sum_clje, 0)
  5954. END )
  5955. END )
  5956. END = 0
  5957. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5958. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5959. + CASE
  5960. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5961. ELSE ( CASE
  5962. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5963. ELSE ( CASE
  5964. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5965. ELSE IFNULL(tj.sum_clje, 0)
  5966. END )
  5967. END )
  5968. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5969. END
  5970. END AS 考核计算毛利不含税,
  5971. CASE
  5972. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  5973. ELSE
  5974. CASE
  5975. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5976. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5977. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  5978. END
  5979. END AS 考核计算工价毛利不含税,
  5980. ( CASE
  5981. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  5982. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  5983. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5984. ELSE ( CASE
  5985. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5986. ELSE ( CASE
  5987. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5988. ELSE IFNULL(tj.sum_clje, 0)
  5989. END )
  5990. END )
  5991. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  5992. END ) AS 考核计算料价毛利不含税,
  5993. CASE
  5994. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  5995. ELSE ( IFNULL(tj.sum_namount, 0) )
  5996. END 合并金额,
  5997. CASE
  5998. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  5999. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  6000. END 合并工价,
  6001. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  6002. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  6003. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  6004. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  6005. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  6006. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  6007. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  6008. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  6009. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  6010. ord.nzkl AS 折扣率,
  6011. CASE
  6012. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  6013. ELSE ( CASE
  6014. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  6015. + CASE
  6016. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6017. ELSE ( CASE
  6018. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6019. ELSE ( CASE
  6020. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6021. ELSE IFNULL(tj.sum_clje, 0)
  6022. END )
  6023. END )
  6024. END = 0
  6025. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  6026. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  6027. + CASE
  6028. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6029. ELSE ( CASE
  6030. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6031. ELSE ( CASE
  6032. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6033. ELSE IFNULL(tj.sum_clje, 0)
  6034. END )
  6035. END )
  6036. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  6037. END )
  6038. END AS 生产毛利不含税,
  6039. CASE
  6040. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  6041. ELSE ( CASE
  6042. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  6043. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  6044. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) - IFNULL(tb_in.sum_ngjje_in, 0) - IFNULL(tb_out.sum_ngjje_out, 0)
  6045. END )
  6046. END AS 生产工价毛利不含税,
  6047. IFNULL(tj.sum_clje, 0) - ( CASE
  6048. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6049. ELSE ( CASE
  6050. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6051. ELSE ( CASE
  6052. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6053. ELSE IFNULL(tj.sum_clje, 0)
  6054. END )
  6055. END )
  6056. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  6057. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  6058. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  6059. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  6060. IFNULL(tb_in.sum_ngjje_in, 0)
  6061. + CASE
  6062. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6063. ELSE ( CASE
  6064. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6065. ELSE ( CASE
  6066. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6067. ELSE IFNULL(tj.sum_clje, 0)
  6068. END )
  6069. END )
  6070. END AS 厂内传票合计不含税,
  6071. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  6072. CASE
  6073. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6074. ELSE ( CASE
  6075. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6076. ELSE ( CASE
  6077. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6078. ELSE IFNULL(tj.sum_clje, 0)
  6079. END )
  6080. END )
  6081. END AS 厂内传票料价不含税,
  6082. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  6083. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  6084. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  6085. CHY AS 活源,
  6086. CCLBMMC AS 承揽部门,
  6087. CYWYXM AS 业务员,
  6088. lwcbs AS 是否完工,
  6089. Dwcrq AS 完工日期,
  6090. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  6091. LJQBS AS 是否结清,
  6092. djqrq AS 结清日期,
  6093. izlconfirm AS 是否销货,
  6094. dzlconfirmrq AS 销货日期,
  6095. nzlconfirmje AS 销货金额,
  6096. nzlysje AS 销货应收,
  6097. IFNULL(ipaytime, 0) AS 帐龄,
  6098. ( CASE
  6099. WHEN ljqbs = 0
  6100. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  6101. ELSE 0
  6102. END ) AS 付款周期,
  6103. ( CASE
  6104. WHEN ljqbs = 0
  6105. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  6106. ELSE 0
  6107. END ) AS 过期天数,
  6108. ( CASE
  6109. WHEN bsfsk = 1 THEN 1
  6110. ELSE 0
  6111. END ) AS 是否收款,
  6112. nysje AS 预收款,
  6113. fskje AS 收款金额,
  6114. ( CASE
  6115. WHEN bsfdjfp = 1 THEN 1
  6116. ELSE 0
  6117. END ) AS '是否开票',
  6118. ffpje AS 发票金额,
  6119. cfph AS 发票号,
  6120. cfprq AS 发票日期,
  6121. ( CASE
  6122. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  6123. ELSE 0
  6124. END ) AS 未开完票金额,
  6125. ( CASE
  6126. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  6127. ELSE 0
  6128. END ) AS 发票未收款金额,
  6129. iselforder AS 是否异常,
  6130. cselftype AS 异常类型,
  6131. CASE
  6132. WHEN bsfdjfp = 1 THEN ( CASE
  6133. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  6134. ELSE 0
  6135. END )
  6136. ELSE ( CASE
  6137. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  6138. ELSE ( CASE
  6139. WHEN nzlconfirmje = 0 THEN nhjje
  6140. ELSE nzlconfirmje
  6141. END )
  6142. END )
  6143. END 未开票
  6144. FROM MCYD Ord
  6145. LEFT JOIN (SELECT ICYDID,
  6146. Max(Nsc) AS Nsc
  6147. FROM SCYDDX
  6148. WHERE IDXLXID = 573
  6149. GROUP BY ICYDID) AS Obj
  6150. ON ord.ICYDID = Obj.ICYDID
  6151. LEFT JOIN (SELECT ICYDID,
  6152. Sum(NYSLS) AS nysls,
  6153. Sum(nyssl) AS nyssl,
  6154. Sum(nsyl) AS nsyl
  6155. FROM SCYDDX
  6156. GROUP BY ICYDID) AS ObjMatier
  6157. ON Ord.ICYDID = ObjMatier.ICYDID
  6158. LEFT JOIN (SELECT Sum(CASE
  6159. WHEN hz.dz = 1 THEN hz.nhjje
  6160. ELSE hz.传票预计价
  6161. END) AS sum_nhjje_in,
  6162. Sum(CASE
  6163. WHEN hz.dz = 1 THEN hz.nhjje
  6164. ELSE hz.传票预计价
  6165. END) AS sum_ngjje_in,
  6166. Sum(CASE
  6167. WHEN hz.dz = 1 THEN hz.nclje
  6168. ELSE hz.nclje
  6169. END) AS sum_nclje_in,
  6170. hz.ICYDID
  6171. FROM (SELECT yjj.传票预计价单号,
  6172. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  6173. yjj.iCYDID,
  6174. d.cjjdh 计价单号,
  6175. d.ccydh 订单号,
  6176. d.cbz 备注,
  6177. d.ngjje,
  6178. d.nclje,
  6179. IFNULL(d.iwjg, 0) iwjg,
  6180. IFNULL(d.lzfbs, 0) lzfbs,
  6181. d.nhjje,
  6182. IFNULL(d.ldz, 0) dz,
  6183. yjj.bShbz
  6184. FROM (SELECT b.csccpbh 传票预计价单号,
  6185. a.ccydh,
  6186. a.icydid,
  6187. Sum(c.fje) 传票预计价,
  6188. b.bshbz
  6189. FROM MCYD a
  6190. LEFT JOIN sccp b
  6191. ON a.icydid = b.icydid
  6192. LEFT JOIN ZbHjXm c
  6193. ON c.sccpid = b.sccpid
  6194. WHERE b.bOutProcess = '0 '
  6195. GROUP BY b.csccpbh,
  6196. a.icydid,
  6197. a.CCYDH,
  6198. b.bshbz,
  6199. b.bOutProcess) yjj
  6200. LEFT JOIN tbluey d
  6201. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  6202. WHERE hz.iwjg = 0
  6203. AND hz.bshbz = 1
  6204. AND hz.lzfbs = 0
  6205. GROUP BY hz.ICYDID) tb_in
  6206. ON ord.icydid = tb_in.iCydid
  6207. LEFT JOIN (SELECT fw.iCYDID,
  6208. sum_nhjje_out,
  6209. sum_ngjje_out,
  6210. sum_nclje_out,
  6211. bz.cbz
  6212. FROM (SELECT Cast(Sum(( CASE
  6213. WHEN hz.dz = 0 THEN hz.传票预计价
  6214. ELSE hz.nhjje
  6215. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  6216. Cast(Sum(( CASE
  6217. WHEN hz.dz = 0 THEN hz.传票预计价
  6218. ELSE hz.nhjje
  6219. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  6220. Cast(Sum(CASE
  6221. WHEN hz.dz = 0 THEN hz.nclje
  6222. ELSE hz.nclje
  6223. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  6224. iCydid
  6225. FROM (SELECT yjj.传票预计价单号,
  6226. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  6227. yjj.iCYDID,
  6228. d.cjjdh 计价单号,
  6229. d.ccydh 订单号,
  6230. d.cbz 备注,
  6231. d.ngjje,
  6232. d.nclje,
  6233. d.itax,
  6234. IFNULL(d.iwjg, 0) iwjg,
  6235. IFNULL(d.lzfbs, 0) lzfbs,
  6236. d.nhjje,
  6237. IFNULL(d.ldz, 0) dz,
  6238. yjj.bShbz
  6239. FROM (SELECT b.csccpbh 传票预计价单号,
  6240. a.ccydh,
  6241. a.icydid,
  6242. Sum(c.fje) 传票预计价,
  6243. b.bshbz
  6244. FROM MCYD a
  6245. LEFT JOIN sccp b
  6246. ON a.icydid = b.icydid
  6247. LEFT JOIN ZbHjXm c
  6248. ON c.sccpid = b.sccpid
  6249. WHERE b.bOutProcess = '1 '
  6250. GROUP BY b.csccpbh,
  6251. a.icydid,
  6252. a.CCYDH,
  6253. b.bshbz,
  6254. b.bOutProcess) yjj
  6255. LEFT JOIN tbluey d
  6256. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  6257. WHERE hz.iwjg = 1
  6258. AND hz.lzfbs = 0
  6259. GROUP BY hz.ICYDID) fw
  6260. LEFT JOIN (SELECT icydid,
  6261. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  6262. WHERE icydid = a.icydid) AS cbz
  6263. FROM TBluey a
  6264. GROUP BY icydid) bz
  6265. ON bz.icydid = fw.iCYDID) tb_out
  6266. ON ord.icydid = tb_out.iCydid
  6267. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  6268. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  6269. iCydid,
  6270. CASE
  6271. WHEN ldz = 1 THEN 1
  6272. ELSE 0
  6273. END ldz
  6274. FROM TJob
  6275. WHERE lzfbs = 0
  6276. GROUP BY iCydid,
  6277. nclje,
  6278. itax,
  6279. ldz) tj
  6280. ON ord.ICYDID = tj.iCydid
  6281. WHERE ord.ICYDSTATE > 0
  6282. AND 1 = 1) zb1
  6283. WHERE CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) >= '{$januaryFirst}'
  6284. AND CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) <= '{$today}'
  6285. GROUP BY zb1.业务单位) hb
  6286. ON hb.业务单位 = dq.业务单位))a) aa
  6287. )bb
  6288. ORDER BY bb.销售收入(万元) desc
  6289. ";
  6290. // WHERE bb.销售收入(万元)>200
  6291. $result=Db::query($sql);
  6292. if ($result) {
  6293. $redis->set($redis_key, json_encode($result));
  6294. echo date("Y-m-d H:i:s").' 存进去了';
  6295. return $result;
  6296. }
  6297. }
  6298. //年度考核销售收入同比上升和下滑一览表->接口
  6299. public function year_sale() {
  6300. $redis = redis();
  6301. $result = json_decode($redis->get(md5('year_dclandsx_redis')), true);
  6302. // 排除销售收入增长率为负100的值
  6303. $result = array_filter($result, function ($item) {
  6304. return $item['销售收入增长率'] != -100;
  6305. });
  6306. // $result = array_filter($result, function ($item) {
  6307. // return $item['销售收入增长率'] != '/';
  6308. // });
  6309. // $result = array_filter($result, function ($item) {
  6310. // return $item['销售收入增长率'] != '0.00';
  6311. // });
  6312. //排序
  6313. usort($result, function ($a, $b) {
  6314. $a_value = $a['销售收入(万元)'];
  6315. $b_value = $b['销售收入(万元)'];
  6316. return $b_value <=> $a_value; // 按照销售收入降序排序
  6317. });
  6318. // 获取数据列定义
  6319. $list['columns'] = [
  6320. ['name' => '客户名称', 'id' => 'khmc', 'width' => '55', 'autoWrap' => "true", 'textAlign' => 'left'],
  6321. ['name' => '销售金额(万元)', 'id' => 'xsje', 'width' => '24', 'autoWrap' => "true", 'textAlign' => 'left'],
  6322. ['name' => '同比增长率', 'id' => 'zzl', 'width' => '18', 'autoWrap' => "true", 'textAlign' => 'left']
  6323. ];
  6324. // 截取前几客户
  6325. $top_clients = array_slice($result, 0, 6);
  6326. // 截取后几客户
  6327. $bottom_clients = array_slice($result, -6);
  6328. // 合并前四个和后三个客户
  6329. $merged_clients = array_merge($top_clients, $bottom_clients);
  6330. // 填充行数据
  6331. foreach ($merged_clients as $v) {
  6332. $list['rows'][] = [
  6333. 'khmc' => $v['客户'],
  6334. 'xsje' => $v['销售收入(万元)'],
  6335. 'zzl' => $v['销售收入增长率'],
  6336. ];
  6337. }
  6338. $res['status'] = 0;
  6339. $res['msg'] = '';
  6340. $res['data'] = $list;
  6341. return json($res);
  6342. }
  6343. //图书板块大客户分析列表->缓存
  6344. public function customer_analysis_redis(){
  6345. $redis = redis();
  6346. $redis_key = md5('customer_analysis_redis');
  6347. $today = date("Y-m-d");
  6348. $qtoday = date("Y-m-d", strtotime("-1 year"));
  6349. $sql = "SELECT hz.客户,
  6350. hz.销售得分 + hz.毛利得分 + hz.单均金额得分 + hz.库存数得分 + hz.投诉次数得分 AS 总分,
  6351. hz.销售收入(万元),
  6352. hz.销售排名,
  6353. hz.销售得分,
  6354. hz.考核计算毛利(万元),
  6355. hz.毛利排名,
  6356. hz.毛利得分,
  6357. hz.单均金额(万元),
  6358. hz.单均金额排名,
  6359. hz.单均金额得分,
  6360. hz.库存数,
  6361. hz.库存数排名,
  6362. hz.库存数得分,
  6363. hz.投诉次数,
  6364. hz.投诉次数排名,
  6365. hz.投诉次数得分
  6366. FROM (SELECT *,
  6367. Row_number()
  6368. OVER (
  6369. ORDER BY tb.销售收入(万元) DESC) AS 销售排名,
  6370. CASE
  6371. WHEN Row_number()
  6372. OVER (
  6373. ORDER BY tb.销售收入(万元) DESC) <= 30 THEN 30 - Row_number()
  6374. OVER (
  6375. ORDER BY tb.销售收入(万元) DESC) + 1
  6376. ELSE 0
  6377. END AS 销售得分,
  6378. Row_number()
  6379. OVER (
  6380. ORDER BY tb.考核计算毛利(万元) DESC) AS 毛利排名,
  6381. CASE
  6382. WHEN Row_number()
  6383. OVER (
  6384. ORDER BY tb.考核计算毛利(万元) DESC) <= 25 THEN 25 - Row_number()
  6385. OVER (
  6386. ORDER BY tb.考核计算毛利(万元) DESC) + 1
  6387. ELSE 0
  6388. END AS 毛利得分,
  6389. Row_number()
  6390. OVER (
  6391. ORDER BY tb.单均金额(万元) DESC) AS 单均金额排名,
  6392. CASE
  6393. WHEN Row_number()
  6394. OVER (
  6395. ORDER BY tb.单均金额(万元) DESC) <= 15 THEN 15 - Row_number()
  6396. OVER (
  6397. ORDER BY tb.单均金额(万元) DESC) + 1
  6398. ELSE 0
  6399. END AS 单均金额得分,
  6400. Dense_rank()
  6401. OVER (
  6402. ORDER BY tb.库存数 ) AS 库存数排名,
  6403. CASE
  6404. WHEN Dense_rank()
  6405. OVER (
  6406. ORDER BY tb.库存数 ) <= 15 THEN 15 - Dense_rank()
  6407. OVER (
  6408. ORDER BY tb.库存数 ) + 1
  6409. ELSE 0
  6410. END AS 库存数得分,
  6411. Dense_rank()
  6412. OVER (
  6413. ORDER BY tb.投诉次数 ) AS 投诉次数排名,
  6414. CASE
  6415. WHEN Dense_rank()
  6416. OVER (
  6417. ORDER BY tb.投诉次数 ) <= 15 THEN 15 - Dense_rank()
  6418. OVER (
  6419. ORDER BY tb.投诉次数 ) + 1
  6420. ELSE 0
  6421. END AS 投诉次数得分
  6422. FROM (SELECT aa.客户,
  6423. aa.销售收入(万元),
  6424. aa.考核计算毛利(万元),
  6425. Cast(aa.销售收入(万元) / aa.订单数 AS DECIMAL(5, 2)) '单均金额(万元)',
  6426. IFNULL(Cast(aa.库存数 AS SIGNED), 0) 库存数,
  6427. IFNULL(bb.投诉次数, 0) 投诉次数
  6428. FROM (SELECT a.客户,
  6429. CONVERT(Round(a.销售收入 / 10000, 2),DECIMAL(10, 2)) AS '销售收入(万元)',
  6430. CONVERT(Round(a.考核计算毛利 / 10000, 2),DECIMAL(10, 2)) AS '考核计算毛利(万元)',
  6431. a.订单数,
  6432. a.库存数
  6433. FROM (SELECT dq.业务单位 客户,
  6434. IFNULL(dq.销售收入, 000) 销售收入,
  6435. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  6436. dq.订单数,
  6437. dq.库存数
  6438. FROM (SELECT zb.业务单位 业务单位,
  6439. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  6440. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利,
  6441. Count(DISTINCT zb.订单号) 订单数,
  6442. Sum(zb.nAmount) 库存数
  6443. FROM (SELECT CASE
  6444. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  6445. ELSE '否'
  6446. END 登账,
  6447. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  6448. CCYDH AS 订单号,
  6449. ord.IFCYDID,
  6450. CYJMC AS 印件名称,
  6451. (CASE
  6452. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  6453. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  6454. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  6455. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  6456. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  6457. OR CYWDWMC='浙江省新华书店集团有限公司'
  6458. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  6459. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  6460. WHEN CYWDWMC='浙江日报报业集团'
  6461. OR CYWDWMC='共产党员杂志社'
  6462. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  6463. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  6464. OR CYWDWMC='浙江出版传媒有限公司'
  6465. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  6466. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  6467. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  6468. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  6469. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  6470. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  6471. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  6472. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  6473. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  6474. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  6475. WHEN CYWDWMC='上海人民出版社有限公司'
  6476. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  6477. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  6478. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  6479. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  6480. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  6481. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  6482. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  6483. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  6484. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  6485. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  6486. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  6487. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  6488. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  6489. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  6490. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  6491. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  6492. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  6493. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  6494. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  6495. ELSE CYWDWMC
  6496. END) AS 业务单位,
  6497. cyjlx 印件类型,
  6498. NCS AS 印数,
  6499. CZWKB AS 开本,
  6500. CDF AS 订法,
  6501. NZWYZ AS 正文印张,
  6502. fn.nAmount,
  6503. CASE
  6504. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  6505. ELSE ( IFNULL(tj.sum_namount, 0) )
  6506. END 合并金额,
  6507. CASE
  6508. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  6509. ELSE
  6510. CASE
  6511. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  6512. + CASE
  6513. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6514. ELSE ( CASE
  6515. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6516. ELSE ( CASE
  6517. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6518. ELSE IFNULL(tj.sum_clje, 0)
  6519. END )
  6520. END )
  6521. END = 0
  6522. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  6523. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  6524. + CASE
  6525. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6526. ELSE ( CASE
  6527. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6528. ELSE ( CASE
  6529. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6530. ELSE IFNULL(tj.sum_clje, 0)
  6531. END )
  6532. END )
  6533. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  6534. END
  6535. END AS 考核计算毛利不含税
  6536. FROM MCYD Ord
  6537. LEFT JOIN (SELECT Sum(CASE
  6538. WHEN hz.dz = 1 THEN hz.nhjje
  6539. ELSE hz.传票预计价
  6540. END) AS sum_nhjje_in,
  6541. Sum(CASE
  6542. WHEN hz.dz = 1 THEN hz.nhjje
  6543. ELSE hz.传票预计价
  6544. END) AS sum_ngjje_in,
  6545. Sum(CASE
  6546. WHEN hz.dz = 1 THEN hz.nclje
  6547. ELSE hz.nclje
  6548. END) AS sum_nclje_in,
  6549. hz.ICYDID
  6550. FROM (SELECT yjj.传票预计价单号,
  6551. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  6552. yjj.iCYDID,
  6553. d.cjjdh 计价单号,
  6554. d.ccydh 订单号,
  6555. d.cbz 备注,
  6556. d.ngjje,
  6557. d.nclje,
  6558. IFNULL(d.iwjg, 0) iwjg,
  6559. IFNULL(d.lzfbs, 0) lzfbs,
  6560. d.nhjje,
  6561. IFNULL(d.ldz, 0) dz,
  6562. yjj.bShbz
  6563. FROM (SELECT b.csccpbh 传票预计价单号,
  6564. a.ccydh,
  6565. a.icydid,
  6566. Sum(c.fje) 传票预计价,
  6567. b.bshbz
  6568. FROM MCYD a
  6569. LEFT JOIN sccp b
  6570. ON a.icydid = b.icydid
  6571. LEFT JOIN ZbHjXm c
  6572. ON c.sccpid = b.sccpid
  6573. WHERE b.bOutProcess = '0 '
  6574. GROUP BY b.csccpbh,
  6575. a.icydid,
  6576. a.CCYDH,
  6577. b.bshbz,
  6578. b.bOutProcess) yjj
  6579. LEFT JOIN tbluey d
  6580. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  6581. WHERE hz.iwjg = 0
  6582. AND hz.bshbz = 1
  6583. AND hz.lzfbs = 0
  6584. GROUP BY hz.ICYDID) tb_in
  6585. ON ord.icydid = tb_in.iCydid
  6586. LEFT JOIN (SELECT fw.iCYDID,
  6587. sum_nhjje_out,
  6588. sum_ngjje_out,
  6589. sum_nclje_out,
  6590. bz.cbz
  6591. FROM (SELECT Cast(Sum(( CASE
  6592. WHEN hz.dz = 0 THEN hz.传票预计价
  6593. ELSE hz.nhjje
  6594. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  6595. Cast(Sum(( CASE
  6596. WHEN hz.dz = 0 THEN hz.传票预计价
  6597. ELSE hz.nhjje
  6598. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  6599. Cast(Sum(CASE
  6600. WHEN hz.dz = 0 THEN hz.nclje
  6601. ELSE hz.nclje
  6602. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  6603. iCydid
  6604. FROM (SELECT yjj.传票预计价单号,
  6605. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  6606. yjj.iCYDID,
  6607. d.cjjdh 计价单号,
  6608. d.ccydh 订单号,
  6609. d.cbz 备注,
  6610. d.ngjje,
  6611. d.nclje,
  6612. d.itax,
  6613. IFNULL(d.iwjg, 0) iwjg,
  6614. IFNULL(d.lzfbs, 0) lzfbs,
  6615. d.nhjje,
  6616. IFNULL(d.ldz, 0) dz,
  6617. yjj.bShbz
  6618. FROM (SELECT b.csccpbh 传票预计价单号,
  6619. a.ccydh,
  6620. a.icydid,
  6621. Sum(c.fje) 传票预计价,
  6622. b.bshbz
  6623. FROM MCYD a
  6624. LEFT JOIN sccp b
  6625. ON a.icydid = b.icydid
  6626. LEFT JOIN ZbHjXm c
  6627. ON c.sccpid = b.sccpid
  6628. WHERE b.bOutProcess = '1 '
  6629. GROUP BY b.csccpbh,
  6630. a.icydid,
  6631. a.CCYDH,
  6632. b.bshbz,
  6633. b.bOutProcess) yjj
  6634. LEFT JOIN tbluey d
  6635. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  6636. WHERE hz.iwjg = 1
  6637. AND hz.lzfbs = 0
  6638. GROUP BY hz.ICYDID) fw
  6639. LEFT JOIN (SELECT icydid,
  6640. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  6641. WHERE icydid = a.icydid) AS cbz
  6642. FROM TBluey a
  6643. GROUP BY icydid) bz
  6644. ON bz.icydid = fw.iCYDID) tb_out
  6645. ON ord.icydid = tb_out.iCydid
  6646. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  6647. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  6648. iCydid,
  6649. CASE
  6650. WHEN ldz = 1 THEN 1
  6651. ELSE 0
  6652. END ldz
  6653. FROM TJob
  6654. WHERE lzfbs = 0
  6655. GROUP BY iCydid,
  6656. nclje,
  6657. itax,
  6658. ldz) tj
  6659. ON ord.ICYDID = tj.iCydid
  6660. LEFT JOIN fnSubstance fn
  6661. ON ord.CCYDH = fn.cBatchCode
  6662. WHERE ord.ICYDSTATE > 0
  6663. AND ( ord.CYJLX NOT LIKE '%课本'
  6664. OR ord.CYJLX NOT LIKE '%教辅' )/*销售收入、考核计算毛利、订单数、品种数、库存数据排除其教材教辅*/
  6665. ) zb
  6666. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$qtoday}'
  6667. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  6668. GROUP BY zb.业务单位) dq)a) aa
  6669. LEFT JOIN (SELECT D2.cdwmc 客户单位,
  6670. Count(*) AS 投诉次数
  6671. FROM ecComplainFeedback B
  6672. LEFT JOIN (SELECT d1.iywdwid,
  6673. CASE
  6674. WHEN d1.cdwmc = '浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  6675. WHEN d1.cdwmc = '中国茶叶杂志社'THEN'中国农业科学院茶叶研究所'
  6676. WHEN d1.cdwmc = '中国青年出版社' THEN '中国青年出版总社有限公司'
  6677. WHEN d1.cdwmc = '中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  6678. WHEN d1.cdwmc = '浙江科学技术出版社有限公司(期刊总社)'
  6679. OR d1.cdwmc = '浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  6680. WHEN d1.cdwmc = '《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  6681. WHEN d1.cdwmc = '《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  6682. WHEN d1.cdwmc = '上海辞书出版社' THEN '上海辞书出版社有限公司'
  6683. WHEN d1.cdwmc = '上海译文出版社' THEN '上海译文出版社有限公司'
  6684. WHEN d1.cdwmc = '安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  6685. WHEN d1.cdwmc = '中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  6686. WHEN d1.cdwmc = '人民出版社有限公司' THEN '人民出版社'
  6687. WHEN d1.cdwmc = '教育科学出版社' THEN '教育科学出版社有限公司'
  6688. WHEN d1.cdwmc = '读者杂志社' THEN '读者出版传媒股份有限公司'
  6689. WHEN d1.cdwmc = '浙江教育报刊社' THEN '浙江教育报刊总社'
  6690. WHEN d1.cdwmc = '复旦大学出版社' THEN '复旦大学出版社有限公司'
  6691. WHEN d1.cdwmc = '中等职业教育杂志社有限公司'
  6692. OR d1.cdwmc = '浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  6693. WHEN d1.cdwmc = '上海人民出版社有限公司'
  6694. OR d1.cdwmc = '上海人民出版社' THEN '上海人民出版社有限责任公司'
  6695. WHEN d1.cdwmc = '大星(上海)文化传媒有限公司(上海文艺)'
  6696. OR d1.cdwmc = '大星(上海)文化传媒有限公司(浙江文艺)'
  6697. OR d1.cdwmc = '大星(上海)文化传媒有限公司(河南文艺)'
  6698. OR d1.cdwmc = '大星(上海)文化传媒有限公司(上海书店)'
  6699. OR d1.cdwmc = '大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  6700. WHEN d1.cdwmc = '上海古籍出版社' THEN '上海古籍出版社有限公司'
  6701. WHEN d1.cdwmc = '中信出版集团股份有限公司(上海三辉)'
  6702. OR d1.cdwmc = '中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  6703. WHEN d1.cdwmc = '浙江日报报业集团'
  6704. OR d1.cdwmc = '《浙江共产党员》杂志有限公司'
  6705. OR d1.cdwmc = '共产党员杂志社' THEN '浙江日报报业集团(含共产党员)'
  6706. WHEN d1.cdwmc = '浙江出版传媒股份有限公司'
  6707. OR d1.cdwmc = '浙江出版传媒有限公司'
  6708. OR d1.cdwmc = '浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  6709. WHEN d1.cdwmc = '浙江教育出版社有限公司(省店)'
  6710. OR d1.cdwmc = '浙江省新华书店集团有限公司(教育)'
  6711. OR d1.cdwmc = '浙江省新华书店集团有限公司(少儿)'
  6712. OR d1.cdwmc = '浙江少年儿童出版社有限公司(省店)'
  6713. OR d1.cdwmc = '浙江省新华书店集团有限公司'
  6714. OR d1.cdwmc = '浙江教育出版社集团有限公司(省店)'
  6715. OR d1.cdwmc = '浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  6716. WHEN d1.cdwmc = '浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  6717. ELSE d1.cdwmc
  6718. END AS cdwmc
  6719. FROM DZYWDW d1)D2
  6720. ON D2.iywdwid = B.iClientID
  6721. LEFT JOIN MCYD M
  6722. ON M.CCYDH = B.cOrderBillCode
  6723. INNER JOIN qlOrderProduct p
  6724. ON M.ICYDID = p.ID_Mcyd
  6725. LEFT JOIN (SELECT a.ID_qlOrderProduct,
  6726. Sum(a.iAmountOut) iAmount_Out
  6727. FROM SCYDYSQX a
  6728. GROUP BY a.ID_qlOrderProduct) c
  6729. ON c.ID_qlOrderProduct = p.ID
  6730. LEFT JOIN ecComplainContent DD
  6731. ON DD.iComplainFBID = B.iID
  6732. LEFT JOIN tbConfig E
  6733. ON E.iNoConfig = DD.iClassID_C
  6734. LEFT JOIN tbConfig T
  6735. ON T.iNoConfig = DD.iClassID_P
  6736. LEFT JOIN (SELECT R.iComplainFBID,
  6737. CR1.cRespDept
  6738. FROM ecComplainReasonAnalysis R
  6739. LEFT JOIN ecComplainResponsibility CR1
  6740. ON CR1.iComplainRAID = R.iID) CR
  6741. ON B.iID = CR.iComplainFBID
  6742. WHERE 1 = 1
  6743. AND ( M.CYJLX NOT LIKE '%课本'
  6744. OR M.CYJLX NOT LIKE '%教辅' ) /*质量问题数据排除教材教辅*/
  6745. AND b.dFeedbackDate >= '{$qtoday}'
  6746. AND b.dFeedbackDate <= '{$today}'
  6747. GROUP BY D2.cdwmc)bb
  6748. ON aa.客户 = bb.客户单位
  6749. /*WHERE aa.[销售收入(万元)] > 200*/
  6750. WHERE aa.客户 NOT IN ( '浙江出版传媒股份有限公司(含省出版公司)', '人民教育出版社有限公司', '教育科学出版社有限公司' ))tb)hz
  6751. ORDER BY 总分 DESC";
  6752. $res=Db::query($sql);
  6753. if($res){
  6754. $redis->set($redis_key, json_encode($res));
  6755. echo date("Y-m-d H:i:s").' 存进去了';
  6756. return $res;
  6757. }
  6758. }
  6759. //图书板块大客户分析列表->接口
  6760. public function customer_analysis(){
  6761. $redis = redis();
  6762. $result = json_decode($redis->get(md5('customer_analysis_redis')), true);
  6763. // echo "<pre>";
  6764. // print_r($result);
  6765. // echo "<pre>";
  6766. $new_result = [];
  6767. $new_result['columns'] = [
  6768. // ['name' => '排名', 'id' => 'rank', 'width' => '16', 'color' => 'blue', 'autoWrap' => "true", 'textAlign' => 'left'],
  6769. ['name' => ' ', 'id' => 'kong', 'width' => '10', 'color' => 'blue', 'autoWrap' => "true", 'textAlign' => 'left'],
  6770. ['name' => '客户名称', 'id' => 'kh', 'width' => '70', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  6771. ];
  6772. foreach ($result as $key => $value) {
  6773. if ($key >= 20) {
  6774. break;
  6775. }
  6776. $new_result['rows'][$key]['kong'] = ' ';
  6777. $new_result['rows'][$key]['kh'] = $value['客户'];
  6778. // $new_result['rows'][$key]['rank'] = $key + 1;
  6779. }
  6780. $res['status'] = 0;
  6781. $res['msg'] = '';
  6782. $res['data'] = $new_result;
  6783. return json($res);
  6784. }
  6785. //应收账款情况汇总->缓存【按客户】
  6786. public function Summary_redis(){
  6787. $redis = redis();
  6788. $redis_key = md5('Summary_redis');
  6789. $sql = "SELECT '汇总' AS 业务单位,
  6790. Sum(hz.销货未收款) AS 销货未收款,
  6791. Avg(hz.账期) AS 账期,
  6792. Sum(hz.超期订单数量) AS 超期订单数量,
  6793. Sum(hz.超期订单金额) AS 超期订单金额
  6794. FROM (SELECT YSZK.业务员,
  6795. YSZK.业务单位,
  6796. YSZK.销货未收款,
  6797. D.iPaytime 账期,
  6798. YSZK.超期订单数量,
  6799. IFnull(YSZK.超期订单金额, 0) 超期订单金额
  6800. FROM (SELECT a.cywdwmc 业务单位,
  6801. a.cywdwbh,
  6802. a.cywy 业务员,
  6803. Sum(a.nxhys) AS 销货未收款,
  6804. (SELECT Count(ccydh)
  6805. FROM tmaintz
  6806. WHERE isign = 1
  6807. AND cywdwmc = a.cywdwmc
  6808. AND ixhconfirm = 1
  6809. AND ljqbz = 0
  6810. AND crectype = '订单应收') AS 销货订单数,
  6811. (SELECT Count(*)
  6812. FROM Mcyd e
  6813. JOIN tMainTz f
  6814. ON e.ccydh = f.ccydh
  6815. AND f.isign = 1
  6816. AND ( e.icydstate <> -1
  6817. OR e.icydstate IS NULL )
  6818. AND e.ljqbs = 0
  6819. AND e.iZLConfirm = 1
  6820. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6821. AND f.cywdwmc = a.cywdwmc
  6822. AND cywy = a.cywy) AS 超期订单数量,
  6823. (SELECT Sum(c.nxhys)
  6824. FROM tMainTz c
  6825. JOIN mcyd e
  6826. ON c.ccydh = e.ccydh
  6827. AND c.isign = 1
  6828. AND ( e.icydstate <> -1
  6829. OR e.icydstate IS NULL )
  6830. AND e.ljqbs = 0
  6831. AND e.iZLConfirm = 1
  6832. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6833. AND c.cywdwmc = a.cywdwmc
  6834. AND cywy = a.cywy) AS 超期订单金额
  6835. FROM tmaintz A
  6836. LEFT JOIN Dzywdw b
  6837. ON a.cYwdwbh = b.cywdwbh
  6838. WHERE a.isign = 1
  6839. AND ljqbz = 0
  6840. AND ccydh NOT IN (SELECT ccydh
  6841. FROM mcyd
  6842. WHERE icydstate = -1)
  6843. AND a.cRECtype = '订单应收'
  6844. AND LOCATE('提', a.ccydh) = 0
  6845. GROUP BY a.cywdwmc,
  6846. a.cywdwbh,
  6847. a.cywy)YSZK
  6848. LEFT JOIN Dzywdw d
  6849. ON YSZK.cywdwbh = d.cywdwbh
  6850. WHERE YSZK.销货未收款 > 0)hz
  6851. UNION ALL
  6852. SELECT *
  6853. FROM (SELECT
  6854. YSZK.业务单位,
  6855. YSZK.销货未收款,
  6856. D.iPaytime 账期,
  6857. YSZK.超期订单数量,
  6858. IFnull(YSZK.超期订单金额, 0) 超期订单金额
  6859. FROM (SELECT a.cywdwmc 业务单位,
  6860. a.cywdwbh,
  6861. Sum(a.nxhys) AS 销货未收款,
  6862. (SELECT Count(ccydh)
  6863. FROM tmaintz
  6864. WHERE isign = 1
  6865. AND cywdwmc = a.cywdwmc
  6866. AND ixhconfirm = 1
  6867. AND ljqbz = 0
  6868. AND crectype = '订单应收') AS 销货订单数,
  6869. (SELECT Count(*)
  6870. FROM Mcyd e
  6871. JOIN tMainTz f
  6872. ON e.ccydh = f.ccydh
  6873. AND f.isign = 1
  6874. AND ( e.icydstate <> -1
  6875. OR e.icydstate IS NULL )
  6876. AND e.ljqbs = 0
  6877. AND e.iZLConfirm = 1
  6878. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6879. AND f.cywdwmc = a.cywdwmc
  6880. ) AS 超期订单数量,
  6881. (SELECT Sum(c.nxhys)
  6882. FROM tMainTz c
  6883. JOIN mcyd e
  6884. ON c.ccydh = e.ccydh
  6885. AND c.isign = 1
  6886. AND ( e.icydstate <> -1
  6887. OR e.icydstate IS NULL )
  6888. AND e.ljqbs = 0
  6889. AND e.iZLConfirm = 1
  6890. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6891. AND c.cywdwmc = a.cywdwmc
  6892. ) AS 超期订单金额
  6893. FROM tmaintz A
  6894. LEFT JOIN Dzywdw b
  6895. ON a.cYwdwbh = b.cywdwbh
  6896. WHERE a.isign = 1
  6897. AND ljqbz = 0
  6898. AND ccydh NOT IN (SELECT ccydh
  6899. FROM mcyd
  6900. WHERE icydstate = -1)
  6901. AND a.cRECtype = '订单应收'
  6902. AND LOCATE('提', a.ccydh) = 0
  6903. GROUP BY a.cywdwmc,
  6904. a.cywdwbh )YSZK
  6905. LEFT JOIN Dzywdw d
  6906. ON YSZK.cywdwbh = d.cywdwbh
  6907. WHERE YSZK.销货未收款 > 0
  6908. )MX
  6909. ORDER BY 超期订单金额 DESC ";
  6910. $res=Db::query($sql);
  6911. if($res){
  6912. $redis->set($redis_key, json_encode($res));
  6913. echo date("Y-m-d H:i:s").' 存进去了';
  6914. return $res;
  6915. }
  6916. }
  6917. //应收账款情况汇总->缓存【按业务员】
  6918. public function Summary_ywy_redis(){
  6919. $redis = redis();
  6920. $redis_key = md5('Summary_ywy_redis');
  6921. $sql = "SELECT tb.业务员,
  6922. Sum(tb.销货未收款) AS 销货未收款,
  6923. Avg(tb.账期) AS 账期,
  6924. Sum(tb.超期订单数量) AS 超期订单数量,
  6925. Sum(tb.超期订单金额) AS 超期订单金额
  6926. FROM (SELECT '汇总' AS 业务员,
  6927. '' AS 业务单位,
  6928. Sum(hz.销货未收款) AS 销货未收款,
  6929. Avg(hz.账期) AS 账期,
  6930. Sum(hz.超期订单数量) AS 超期订单数量,
  6931. Sum(hz.超期订单金额) AS 超期订单金额
  6932. FROM (SELECT YSZK.业务员,
  6933. YSZK.业务单位,
  6934. YSZK.销货未收款,
  6935. D.iPaytime 账期,
  6936. YSZK.超期订单数量,
  6937. IFnull(YSZK.超期订单金额, 0) 超期订单金额
  6938. FROM (SELECT a.cywdwmc 业务单位,
  6939. a.cywdwbh,
  6940. a.cywy 业务员,
  6941. Sum(a.nxhys) AS 销货未收款,
  6942. (SELECT Count(ccydh)
  6943. FROM tmaintz
  6944. WHERE isign = 1
  6945. AND cywdwmc = a.cywdwmc
  6946. AND ixhconfirm = 1
  6947. AND ljqbz = 0
  6948. AND crectype = '订单应收') AS 销货订单数,
  6949. (SELECT Count(*)
  6950. FROM Mcyd e
  6951. JOIN tMainTz f
  6952. ON e.ccydh = f.ccydh
  6953. AND f.isign = 1
  6954. AND ( e.icydstate <> -1
  6955. OR e.icydstate IS NULL )
  6956. AND e.ljqbs = 0
  6957. AND e.iZLConfirm = 1
  6958. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6959. AND f.cywdwmc = a.cywdwmc
  6960. AND cywy = a.cywy) AS 超期订单数量,
  6961. (SELECT Sum(c.nxhys)
  6962. FROM tMainTz c
  6963. JOIN mcyd e
  6964. ON c.ccydh = e.ccydh
  6965. AND c.isign = 1
  6966. AND ( e.icydstate <> -1
  6967. OR e.icydstate IS NULL )
  6968. AND e.ljqbs = 0
  6969. AND e.iZLConfirm = 1
  6970. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6971. AND c.cywdwmc = a.cywdwmc
  6972. AND cywy = a.cywy) AS 超期订单金额
  6973. FROM tmaintz A
  6974. LEFT JOIN Dzywdw b
  6975. ON a.cYwdwbh = b.cywdwbh
  6976. WHERE a.isign = 1
  6977. AND ljqbz = 0
  6978. AND ccydh NOT IN (SELECT ccydh
  6979. FROM mcyd
  6980. WHERE icydstate = -1)
  6981. AND a.cRECtype = '订单应收'
  6982. AND LOCATE('提', a.ccydh) = 0
  6983. GROUP BY a.cywdwmc,
  6984. a.cywdwbh,
  6985. a.cywy)YSZK
  6986. LEFT JOIN Dzywdw d
  6987. ON YSZK.cywdwbh = d.cywdwbh
  6988. WHERE YSZK.销货未收款 > 0)hz
  6989. UNION ALL
  6990. SELECT *
  6991. FROM (SELECT YSZK.业务员,
  6992. YSZK.业务单位,
  6993. YSZK.销货未收款,
  6994. D.iPaytime 账期,
  6995. YSZK.超期订单数量,
  6996. IFnull(YSZK.超期订单金额, 0) 超期订单金额
  6997. FROM (SELECT a.cywdwmc 业务单位,
  6998. a.cywdwbh,
  6999. a.cywy 业务员,
  7000. Sum(a.nxhys) AS 销货未收款,
  7001. (SELECT Count(ccydh)
  7002. FROM tmaintz
  7003. WHERE isign = 1
  7004. AND cywdwmc = a.cywdwmc
  7005. AND ixhconfirm = 1
  7006. AND ljqbz = 0
  7007. AND crectype = '订单应收') AS 销货订单数,
  7008. (SELECT Count(*)
  7009. FROM Mcyd e
  7010. JOIN tMainTz f
  7011. ON e.ccydh = f.ccydh
  7012. AND f.isign = 1
  7013. AND ( e.icydstate <> -1
  7014. OR e.icydstate IS NULL )
  7015. AND e.ljqbs = 0
  7016. AND e.iZLConfirm = 1
  7017. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  7018. AND f.cywdwmc = a.cywdwmc
  7019. AND cywy = a.cywy) AS 超期订单数量,
  7020. (SELECT Sum(c.nxhys)
  7021. FROM tMainTz c
  7022. JOIN mcyd e
  7023. ON c.ccydh = e.ccydh
  7024. AND c.isign = 1
  7025. AND ( e.icydstate <> -1
  7026. OR e.icydstate IS NULL )
  7027. AND e.ljqbs = 0
  7028. AND e.iZLConfirm = 1
  7029. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  7030. AND c.cywdwmc = a.cywdwmc
  7031. AND cywy = a.cywy) AS 超期订单金额
  7032. FROM tmaintz A
  7033. LEFT JOIN Dzywdw b
  7034. ON a.cYwdwbh = b.cywdwbh
  7035. WHERE a.isign = 1
  7036. AND ljqbz = 0
  7037. AND ccydh NOT IN (SELECT ccydh
  7038. FROM mcyd
  7039. WHERE icydstate = -1)
  7040. AND a.cRECtype = '订单应收'
  7041. AND LOCATE('提', a.ccydh) = 0
  7042. GROUP BY a.cywdwmc,
  7043. a.cywdwbh,
  7044. a.cywy)YSZK
  7045. LEFT JOIN Dzywdw d
  7046. ON YSZK.cywdwbh = d.cywdwbh
  7047. WHERE YSZK.销货未收款 > 0)MX) tb
  7048. GROUP BY TB.业务员
  7049. ORDER BY 超期订单金额 DESC
  7050. ";
  7051. $res=Db::query($sql);
  7052. if($res){
  7053. $redis->set($redis_key, json_encode($res));
  7054. echo date("Y-m-d H:i:s").' 存进去了';
  7055. return $res;
  7056. }
  7057. }
  7058. // 应收账款情况汇总->接口
  7059. public function Summary(){
  7060. $data = input('post.');
  7061. if(isset($data['dependence'])){
  7062. $dependence=$data['dependence'];
  7063. }else{
  7064. $dependence['item']['value']= '客户';
  7065. }
  7066. $redis = redis();
  7067. $new_result = [];
  7068. if($dependence['item']['value'] == '业务员'){
  7069. $result_ywy = json_decode($redis->get(md5('Summary_ywy_redis')),true);
  7070. $result_ywy[0]['业务员'] = '合计';
  7071. $result_ywy[0]['账期'] = '';
  7072. $new_result['columns'] = [
  7073. ['name' => '业务员', 'id' => 'ywdw', 'width' => '40', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7074. ['name' => '销货未收款(万元)', 'id' => 'xhwsk', 'width' => '18', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7075. ['name' => '账期(天)', 'id' => 'zq', 'width' => '10', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7076. ['name' => '超期订单数量', 'id' => 'cqddsl', 'width' => '12', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7077. ['name' => '超期订单金额(万元)', 'id' => 'cqddje', 'width' => '15', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7078. ];
  7079. foreach ($result_ywy as $key => $value) {
  7080. if ($value['销货未收款'] != 0) {
  7081. $new_result['rows'][$key]['ywdw'] = $value['业务员'];
  7082. $new_result['rows'][$key]['xhwsk'] = number_format($value['销货未收款'] /10000,2);
  7083. $new_result['rows'][$key]['zq'] = round($value['账期']);
  7084. $new_result['rows'][$key]['cqddsl'] = $value['超期订单数量'];
  7085. $new_result['rows'][$key]['cqddje'] = number_format($value['超期订单金额'] /10000,2);
  7086. }
  7087. }
  7088. $res['status'] = 0;
  7089. $res['msg'] = '';
  7090. $res['data'] = $new_result;
  7091. return json($res);
  7092. }else{
  7093. $result = json_decode($redis->get(md5('Summary_redis')),true);
  7094. $result[0]['业务单位'] = '合计';
  7095. $result[0]['账期'] = '';
  7096. $new_result['columns'] = [
  7097. ['name' => '业务单位', 'id' => 'ywdw', 'width' => '30', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7098. ['name' => '销货未收款(万元)', 'id' => 'xhwsk', 'width' => '18', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7099. ['name' => '账期(天)', 'id' => 'zq', 'width' => '10', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7100. ['name' => '超期订单数量', 'id' => 'cqddsl', 'width' => '12', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7101. ['name' => '超期订单金额(万元)', 'id' => 'cqddje', 'width' => '15', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7102. ];
  7103. foreach ($result as $key => $value) {
  7104. if ($value['销货未收款'] != 0) {
  7105. $new_result['rows'][$key]['ywdw'] = $value['业务单位'];
  7106. $new_result['rows'][$key]['xhwsk'] = number_format($value['销货未收款'] /10000,2);
  7107. $new_result['rows'][$key]['zq'] = round($value['账期']);
  7108. $new_result['rows'][$key]['cqddsl'] = $value['超期订单数量'];
  7109. $new_result['rows'][$key]['cqddje'] = number_format($value['超期订单金额'] /10000,2);
  7110. }
  7111. }
  7112. $res['status'] = 0;
  7113. $res['msg'] = '';
  7114. $res['data'] = $new_result;
  7115. return json($res);
  7116. }
  7117. }
  7118. }