Fourth.php 562 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310
  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 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. //优化前面
  2292. // $sql = "SELECT aa.承印日期,COUNT(aa.订单号) 订单量,SUM(aa.合同金额)订单金额,SUM(aa.nwshjje)未税订单金额
  2293. // FROM (SELECT CONVERT(a.DCYRQ,CHAR(10)) 承印日期,
  2294. // a.CCYDH 订单号,
  2295. // a.CYWDWMC 委印单位,
  2296. // a.CYJMC 印件名称,
  2297. // a.NJSHJJE 合同金额,
  2298. // a.nwshjje
  2299. // FROM MCYD a
  2300. // WHERE CONVERT(a.DCYRQ,CHAR(10)) = CONVERT(DATE_SUB(NOW(),INTERVAL 0 DAY),CHAR(10)))aa
  2301. // GROUP BY aa.承印日期 ";
  2302. //优化后sql
  2303. $sql = "SELECT CONVERT
  2304. (
  2305. a.DCYRQ,
  2306. CHAR ( 10 )) 承印日期,
  2307. COUNT( a.CCYDH ) 订单量,
  2308. SUM( a.NJSHJJE ) 订单金额,
  2309. SUM( a.nwshjje ) 未税订单金额
  2310. FROM
  2311. MCYD a
  2312. WHERE
  2313. a.DCYRQ >= CURDATE()
  2314. AND a.DCYRQ < CURDATE() + INTERVAL 1 DAY
  2315. GROUP BY
  2316. CONVERT (
  2317. a.DCYRQ,
  2318. CHAR ( 10 ))";
  2319. $result=Db::query($sql);
  2320. $res['status']=0;
  2321. $res['msg']='';
  2322. if($result==[]){
  2323. $res['data']=[['name'=>' ','value'=>0],['name'=>' ','value'=>0]];
  2324. }else{
  2325. $res['data']=[['name'=>' ','value'=>$result[0]['订单量']],['name'=>' ','value'=>round($result[0]['未税订单金额']/10000)]];
  2326. }
  2327. //将查询结果存入 Redis 缓存中
  2328. $redis->set($redis_key, json_encode($res));
  2329. echo date("Y-m-d H:i:s").' 存进去了';
  2330. return json($res);
  2331. }
  2332. //当日承揽订单量,每日承揽订单金额->接口
  2333. public function yesterday_amount(){
  2334. $redis = redis();
  2335. $result = $redis->get(md5('yesterday_amount_redis'));
  2336. return $result;
  2337. }
  2338. //年度承揽收入前五客户业务结构分析->缓存
  2339. public function chenglanshouru_redis_ssssss(){
  2340. $redis = redis();
  2341. $redis_key = md5('chenglanshouru_redis');
  2342. $sql = "
  2343. SELECT cc.客户,
  2344. cc.印数 总册数,
  2345. cc.销售收入(万元),
  2346. bb.印法,
  2347. bb.分类,
  2348. cast( bb.色令 as decimal(18,0)) 色令
  2349. FROM (SELECT aa.客户,
  2350. aa.印数,
  2351. Cast(aa.销售收入 AS DECIMAL(18, 2)) AS '销售收入(万元)'
  2352. FROM (SELECT zb.业务单位 客户,
  2353. SUM(zb.印数) 印数,
  2354. IFnull(Sum(zb.合并金额), 0.000) / 10000 销售收入
  2355. FROM (SELECT CASE
  2356. WHEN IFnull(ldz, 0) = 1 THEN '是'
  2357. ELSE '否'
  2358. END 登账,
  2359. CONVERT( DCYRQ, CHAR(10)) AS 承印日期,
  2360. CCYDH AS 订单号,
  2361. ord.IFCYDID,
  2362. CYJMC AS 印件名称,
  2363. CASE
  2364. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2365. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2366. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2367. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2368. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2369. OR CYWDWMC='浙江省新华书店集团有限公司'
  2370. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2371. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2372. WHEN CYWDWMC='浙江日报报业集团'
  2373. OR CYWDWMC='共产党员杂志社'
  2374. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2375. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2376. OR CYWDWMC='浙江出版传媒有限公司'
  2377. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2378. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2379. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2380. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2381. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2382. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2383. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2384. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2385. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2386. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2387. WHEN CYWDWMC='上海人民出版社有限公司'
  2388. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2389. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2390. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2391. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2392. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2393. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2394. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2395. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2396. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2397. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2398. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2399. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2400. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2401. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2402. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2403. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2404. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2405. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2406. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2407. ELSE CYWDWMC
  2408. END AS 业务单位,
  2409. cyjlx 印件类型,
  2410. NCS AS 印数,
  2411. CZWKB AS 开本,
  2412. CDF AS 订法,
  2413. NZWYZ AS 正文印张,
  2414. CASE
  2415. WHEN IFnull(ldz, 0) = 0 THEN( IFnull(nwshjje, 0) )
  2416. ELSE ( IFnull(tj.sum_namount, 0) )
  2417. END 合并金额
  2418. FROM MCYD Ord
  2419. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  2420. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  2421. iCydid,
  2422. CASE
  2423. WHEN ldz = 1 THEN 1
  2424. ELSE 0
  2425. END ldz
  2426. FROM TJob
  2427. WHERE lzfbs = 0
  2428. GROUP BY iCydid,
  2429. nclje,
  2430. itax,
  2431. ldz) tj
  2432. ON ord.ICYDID = tj.iCydid
  2433. WHERE ord.ICYDSTATE > 0) zb
  2434. WHERE CONVERT(zb.承印日期, CHAR(10)) >= '{$this->start_time()}'
  2435. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$this->end_time()}'
  2436. GROUP BY zb.业务单位) aa
  2437. ORDER BY aa.销售收入 DESC LIMIT 5)cc
  2438. LEFT JOIN (SELECT CYWDWMC,
  2439. CYF 印法,
  2440. CASE
  2441. WHEN cyf = '彩轮' THEN '彩色轮转'
  2442. WHEN cyf = '胶轮' THEN '黑白轮转'
  2443. WHEN cyf = '彩平' THEN '彩色平版'
  2444. WHEN cyf = '胶平' THEN '黑白平版'
  2445. ELSE NULL
  2446. END 分类,
  2447. cl.色令
  2448. FROM (SELECT IFnull(Sum(dx.NYSSL), 0) AS 色令,
  2449. CASE
  2450. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2451. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2452. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2453. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2454. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2455. OR CYWDWMC='浙江省新华书店集团有限公司'
  2456. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2457. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2458. WHEN CYWDWMC='浙江日报报业集团'
  2459. OR CYWDWMC='共产党员杂志社'
  2460. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2461. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2462. OR CYWDWMC='浙江出版传媒有限公司'
  2463. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2464. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2465. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2466. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2467. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2468. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2469. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2470. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2471. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2472. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2473. WHEN CYWDWMC='上海人民出版社有限公司'
  2474. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2475. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2476. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2477. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2478. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2479. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2480. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2481. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2482. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2483. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2484. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2485. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2486. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2487. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2488. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2489. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2490. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2491. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2492. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2493. ELSE CYWDWMC
  2494. END AS CYWDWMC,
  2495. dx.CYF
  2496. FROM MCYD cyd
  2497. LEFT JOIN SCYDDX DX
  2498. ON cyd.ICYDID = dx.ICYDID
  2499. WHERE cyd.ICYDSTATE > 0
  2500. AND cyd.icydid > 0
  2501. AND CYF IN( '彩轮', '彩平', '胶平', '胶轮' )
  2502. AND cyd.cyjlx <> '数字产品'
  2503. AND cyd.chy <> '集团教材外'
  2504. AND CONVERT(DCYRQ,CHAR(10)) >= '{$this->start_time()}'
  2505. AND CONVERT(DCYRQ,CHAR(10)) <= '{$this->end_time()}'
  2506. GROUP BY cyd.CYWDWMC,
  2507. CYF) cl)bb
  2508. ON cc.客户 = bb.CYWDWMC
  2509. ";
  2510. $result=Db::query($sql);
  2511. $redis->set($redis_key, json_encode($result));
  2512. echo date("Y-m-d H:i:s").' 存进去了';
  2513. return $result;
  2514. }
  2515. //年度承揽收入前五客户业务结构分析->接口
  2516. public function year_salewcl_sssss(){
  2517. $redis = redis();
  2518. $results = json_decode($redis->get(md5('chenglanshouru_redis')), true);
  2519. // 用于存储合并后数据的新数组
  2520. $mergedData = [];
  2521. // 遍历原始数组
  2522. foreach ($results as $item) {
  2523. // 使用 "khmc" 和 "fl" 作为合并的键
  2524. $khmc = $item["客户"];
  2525. $fl = $item["分类"];
  2526. // 构建合并后数组的键
  2527. $key = $khmc . "|" . $fl;
  2528. // 如果已经存在该 "khmc" 和 "fl" 的条目,则将数量相加
  2529. if (isset($mergedData[$key])) {
  2530. $mergedData[$key]["色令"] += $item["色令"];
  2531. } else {
  2532. // 否则,创建一个新条目
  2533. $mergedData[$key] = $item;
  2534. }
  2535. }
  2536. // 将合并后数组转换回原始格式
  2537. $result = array_values($mergedData);
  2538. $list['columns'] = [
  2539. ['name' => '客户', 'id' => 'khmc', 'width' => '50', 'autoWrap' => "true", 'textAlign' => 'left'],
  2540. ['name' => '总册数(万)', 'id' => 'zcs', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
  2541. ['name' => '销售收入(万元)', 'id' => 'xsss', 'width' => '20', 'autoWrap' => "true", 'textAlign' => 'center'],
  2542. ['name' => '类别', 'id' => 'fl', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
  2543. ['name' => '色令(万)', 'id' => 'sl', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
  2544. ];
  2545. $selectedRows = [];
  2546. if(empty($result)) {
  2547. $list['rows'][] = [
  2548. 'khmc' => '',
  2549. 'zcs' => '',
  2550. 'xsss' =>'',
  2551. 'yf' => '',
  2552. 'fl' => '',
  2553. 'sl' => '',
  2554. ];
  2555. $selectedRows = $list['rows'];
  2556. }else{
  2557. foreach ($result as $v) {
  2558. $selectedRows[] = [
  2559. 'khmc' => $v['客户'],
  2560. 'zcs' => number_format($v['总册数'] /10000,2),
  2561. 'xsss' => $v['销售收入(万元)'],
  2562. 'yf' => $v['印法'],
  2563. 'fl' => $v['分类'],
  2564. 'sl' => number_format($v['色令'] /10000,2),
  2565. ];
  2566. }
  2567. }
  2568. $res = [
  2569. 'status' => 0,
  2570. 'msg' => '',
  2571. 'data' => ['columns' => $list['columns'], 'rows' => $selectedRows],
  2572. ];
  2573. return json($res);
  2574. }
  2575. //年度承揽收入前五客户业务结构分析->缓存
  2576. public function chenglanshouru_redis(){
  2577. // $kais = explode(" ", $this->start_time());
  2578. // $jies = explode(" ", $this->end_time());
  2579. // $kai = $kais[0];
  2580. // $jie = $jies[0];
  2581. $kai = date('Y-m-d',strtotime('-1 year'));
  2582. $jie = date('Y-m-d');
  2583. $redis = redis();
  2584. $redis_key = md5('chenglanshouru_redis');
  2585. $sql = "SELECT * FROM (
  2586. SELECT bb.分类,
  2587. ROW_NUMBER() OVER (PARTITION BY bb.分类 ORDER BY bb.色令 DESC) AS 排名,
  2588. cc.客户,
  2589. cast( bb.色令 as decimal(18,0)) 色令,
  2590. cc.印数 AS 总册数,
  2591. cc.销售收入(万元),
  2592. bb.印法
  2593. FROM (SELECT aa.客户,
  2594. aa.印数,
  2595. Cast(aa.销售收入 AS DECIMAL(18, 2)) AS '销售收入(万元)'
  2596. FROM (SELECT zb.业务单位 客户,
  2597. Sum(zb.印数) 印数,
  2598. IFnull(Sum(zb.合并金额), 0.000) / 10000 销售收入
  2599. FROM (SELECT CASE
  2600. WHEN IFnull(ldz, 0) = 1 THEN '是'
  2601. ELSE '否'
  2602. END 登账,
  2603. CONVERT( DCYRQ, CHAR(10)) AS 承印日期,
  2604. CCYDH AS 订单号,
  2605. ord.IFCYDID,
  2606. CYJMC AS 印件名称,
  2607. CASE
  2608. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2609. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2610. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2611. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2612. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2613. OR CYWDWMC='浙江省新华书店集团有限公司'
  2614. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2615. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2616. WHEN CYWDWMC='浙江日报报业集团'
  2617. OR CYWDWMC='共产党员杂志社'
  2618. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2619. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2620. OR CYWDWMC='浙江出版传媒有限公司'
  2621. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2622. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2623. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2624. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2625. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2626. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2627. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2628. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2629. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2630. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2631. WHEN CYWDWMC='上海人民出版社有限公司'
  2632. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2633. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2634. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2635. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2636. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2637. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2638. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2639. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2640. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2641. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2642. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2643. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2644. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2645. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2646. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2647. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2648. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2649. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2650. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2651. ELSE CYWDWMC
  2652. END AS 业务单位,
  2653. cyjlx 印件类型,
  2654. NCS AS 印数,
  2655. CZWKB AS 开本,
  2656. CDF AS 订法,
  2657. NZWYZ AS 正文印张,
  2658. CASE
  2659. WHEN IFnull(ldz, 0) = 0 THEN( IFnull(nwshjje, 0) )
  2660. ELSE ( IFnull(tj.sum_namount, 0) )
  2661. END 合并金额
  2662. FROM MCYD Ord
  2663. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  2664. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  2665. iCydid,
  2666. CASE
  2667. WHEN ldz = 1 THEN 1
  2668. ELSE 0
  2669. END ldz
  2670. FROM TJob
  2671. WHERE lzfbs = 0
  2672. GROUP BY iCydid,
  2673. nclje,
  2674. itax,
  2675. ldz) tj
  2676. ON ord.ICYDID = tj.iCydid
  2677. WHERE ord.ICYDSTATE > 0) zb
  2678. WHERE CONVERT(zb.承印日期, CHAR(10)) >= '{$kai}'
  2679. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$jie}'
  2680. GROUP BY zb.业务单位 ) aa
  2681. ORDER BY aa.销售收入 DESC LIMIT 20)cc
  2682. LEFT JOIN (SELECT CYWDWMC,
  2683. CYF 印法,
  2684. CASE
  2685. WHEN cyf = '彩轮' THEN '彩色轮转'
  2686. WHEN cyf = '胶轮' THEN '黑白轮转'
  2687. WHEN cyf = '彩平' THEN '彩色平版'
  2688. WHEN cyf = '胶平' THEN '黑白平版'
  2689. ELSE NULL
  2690. END 分类,
  2691. cl.色令
  2692. FROM (SELECT IFnull(Sum(dx.NYSSL), 0) AS 色令,
  2693. CASE
  2694. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2695. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2696. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2697. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2698. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2699. OR CYWDWMC='浙江省新华书店集团有限公司'
  2700. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2701. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2702. WHEN CYWDWMC='浙江日报报业集团'
  2703. OR CYWDWMC='共产党员杂志社'
  2704. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2705. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2706. OR CYWDWMC='浙江出版传媒有限公司'
  2707. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2708. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2709. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2710. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2711. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2712. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2713. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2714. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2715. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2716. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2717. WHEN CYWDWMC='上海人民出版社有限公司'
  2718. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2719. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2720. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2721. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2722. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2723. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2724. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2725. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2726. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2727. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2728. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2729. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2730. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2731. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2732. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2733. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2734. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2735. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2736. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2737. ELSE CYWDWMC
  2738. END AS CYWDWMC,
  2739. dx.CYF
  2740. FROM MCYD cyd
  2741. LEFT JOIN SCYDDX DX
  2742. ON cyd.ICYDID = dx.ICYDID
  2743. WHERE cyd.ICYDSTATE > 0
  2744. AND cyd.icydid > 0
  2745. AND CYF IN( '彩轮', '彩平', '胶平', '胶轮' )
  2746. AND cyd.cyjlx <> '数字产品'
  2747. AND cyd.chy <> '集团教材外'
  2748. AND CONVERT(DCYRQ,CHAR(10)) >= '{$kai}'
  2749. AND CONVERT(DCYRQ,CHAR(10)) <= '{$jie}'
  2750. GROUP BY cyd.CYWDWMC,
  2751. CYF) cl)bb
  2752. ON cc.客户 = bb.CYWDWMC
  2753. )
  2754. hb
  2755. WHERE hb.排名<=5
  2756. -- and hb.客户='浙江出版传媒股份有限公司(含省出版公司)'
  2757. GROUP BY hb.分类,hb.排名, hb.客户,HB.色令,hb.总册数,hb.销售收入(万元),hb.印法
  2758. ORDER BY hb.分类,hb.排名 ";
  2759. $result=Db::query($sql);
  2760. $redis->set($redis_key, json_encode($result));
  2761. echo date("Y-m-d H:i:s").' 存进去了';
  2762. return $result;
  2763. }
  2764. //年度承揽收入前五客户业务结构分析->接口
  2765. public function year_salewcl(){
  2766. $redis = redis();
  2767. $results = json_decode($redis->get(md5('chenglanshouru_redis')), true);
  2768. $list['columns'] = [
  2769. ['name' => '分类', 'id' => 'fl', 'width' => '17', 'autoWrap' => "true", 'textAlign' => 'center'],
  2770. ['name' => '排名', 'id' => 'pm', 'width' => '11', 'autoWrap' => "true", 'textAlign' => 'center'],
  2771. ['name' => '客户', 'id' => 'khmc', 'width' => '40', 'autoWrap' => "true", 'textAlign' => 'left'],
  2772. ['name' => '总册数(万)', 'id' => 'zcs', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
  2773. ['name' => '销售收入(万元)', 'id' => 'xsss', 'width' => '20', 'autoWrap' => "true", 'textAlign' => 'center'],
  2774. ['name' => '色令(万)', 'id' => 'sl', 'width' => '15', 'autoWrap' => "true", 'textAlign' => 'center'],
  2775. ];
  2776. $selectedRows = [];
  2777. if(empty($results)) {
  2778. $list['rows'][] = [
  2779. 'fl' => '',
  2780. 'pm' =>'',
  2781. 'khmc' => '',
  2782. 'sl' => '',
  2783. 'zcs' => '',
  2784. 'xsss' =>'',
  2785. // 'yf' => '',
  2786. ];
  2787. $selectedRows = $list['rows'];
  2788. }else{
  2789. foreach ($results as $v) {
  2790. $selectedRows[] = [
  2791. 'fl' => $v['分类'],
  2792. 'pm' => $v['排名'],
  2793. 'khmc' => $v['客户'],
  2794. 'sl' => number_format($v['色令'] /10000,2),
  2795. 'zcs' => number_format($v['总册数'] /10000,2),
  2796. 'xsss' => $v['销售收入(万元)'],
  2797. 'yf' => $v['印法'],
  2798. ];
  2799. }
  2800. }
  2801. $res = [
  2802. 'status' => 0,
  2803. 'msg' => '',
  2804. 'data' => ['columns' => $list['columns'], 'rows' => $selectedRows],
  2805. ];
  2806. return json($res);
  2807. }
  2808. //年度考核毛利收入同比上升和下滑一览表->缓存
  2809. public function year_profit_redis(){
  2810. $redis = redis();
  2811. $redis_key = md5('year_profit_redis');
  2812. $januaryFirst = date('Y-01-01');
  2813. $today = date('Y-m-d');
  2814. $sql = "SELECT aa.客户,
  2815. aa.考核计算毛利(万元),
  2816. aa.考核计算毛利增减(万元),
  2817. CASE
  2818. WHEN IFNULL(aa.上年考核计算毛利(万元), 0) = 0 THEN 'New'
  2819. ELSE Ltrim(Cast( aa.考核计算毛利增减(万元)*100/aa.上年考核计算毛利(万元) AS DECIMAL(10, 2)))
  2820. + '%'
  2821. END AS 毛利增长率
  2822. FROM (SELECT a.客户,
  2823. CONVERT(Round(a.销售收入 / 10000, 2),DECIMAL(10, 2)) AS '销售收入(万元)',
  2824. CONVERT(Round(a.上年销售收入 / 10000, 2),DECIMAL(10, 2)) AS '上年销售收入(万元)',
  2825. CONVERT(Round(a.销售收入增减 / 10000, 2),DECIMAL(10, 2)) AS '销售收入增减(万元)',
  2826. CONVERT(Round(a.销售工价 / 10000, 2),DECIMAL(10, 2)) AS '销售工价(万元)',
  2827. CONVERT(Round(a.上年销售工价 / 10000, 2),DECIMAL(10, 2)) AS '上年销售工价(万元)',
  2828. CONVERT(Round(a.销售工价增减 / 10000, 2),DECIMAL(10, 2)) AS '销售工价增减(万元)',
  2829. CONVERT(Round(a.考核计算毛利 / 10000, 2),DECIMAL(10, 2)) AS '考核计算毛利(万元)',
  2830. CONVERT(Round(a.上年考核计算毛利 / 10000, 2),DECIMAL(10, 2))AS '上年考核计算毛利(万元)',
  2831. CONVERT(Round(a.考核计算毛利增减 / 10000, 2),DECIMAL(10, 2))AS '考核计算毛利增减(万元)'
  2832. FROM ((SELECT 1 AS flag,
  2833. IFNULL(dq.业务单位, hb.业务单位) 客户,
  2834. IFNULL(dq.销售收入, 000) 销售收入,
  2835. IFNULL(hb.上年销售收入, 0.000) 上年销售收入,
  2836. IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000) 销售收入增减,
  2837. CASE
  2838. WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
  2839. WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
  2840. AND IFNULL(dq.销售收入, 000) > 0 THEN 1
  2841. ELSE 0
  2842. END AS 销售收入同期比,
  2843. IFNULL(dq.销售工价, 000) 销售工价,
  2844. IFNULL(hb.上年销售工价, 0.000) 上年销售工价,
  2845. IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000) 销售工价增减,
  2846. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  2847. IFNULL(hb.上年考核计算毛利, 0.000) 上年考核计算毛利,
  2848. IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
  2849. CASE
  2850. WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
  2851. WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
  2852. AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
  2853. ELSE 0
  2854. END AS 毛利同期比
  2855. FROM (SELECT zb.业务单位 业务单位,
  2856. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  2857. IFNULL(Sum(zb.合并工价), 0.000) 销售工价,
  2858. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
  2859. FROM (SELECT CASE
  2860. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  2861. ELSE '否'
  2862. END 登账,
  2863. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  2864. CCYDH AS 订单号,
  2865. CYJMC AS 印件名称,
  2866. CASE
  2867. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2868. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2869. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2870. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2871. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2872. OR CYWDWMC='浙江省新华书店集团有限公司'
  2873. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2874. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2875. WHEN CYWDWMC='浙江日报报业集团'
  2876. OR CYWDWMC='共产党员杂志社'
  2877. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2878. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2879. OR CYWDWMC='浙江出版传媒有限公司'
  2880. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2881. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2882. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2883. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2884. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2885. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2886. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2887. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2888. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2889. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2890. WHEN CYWDWMC='上海人民出版社有限公司'
  2891. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2892. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2893. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2894. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2895. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2896. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2897. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2898. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2899. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2900. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2901. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2902. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2903. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2904. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2905. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2906. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2907. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2908. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2909. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2910. ELSE CYWDWMC
  2911. END AS 业务单位,
  2912. cyjlx 印件类型,
  2913. NCS AS 印数,
  2914. CZWKB AS 开本,
  2915. CDF AS 订法,
  2916. NZWYZ AS 正文印张,
  2917. CASE
  2918. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  2919. ELSE
  2920. CASE
  2921. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  2922. + CASE
  2923. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2924. ELSE ( CASE
  2925. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2926. ELSE ( CASE
  2927. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2928. ELSE IFNULL(tj.sum_clje, 0)
  2929. END )
  2930. END )
  2931. END = 0
  2932. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  2933. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  2934. + CASE
  2935. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2936. ELSE ( CASE
  2937. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2938. ELSE ( CASE
  2939. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2940. ELSE IFNULL(tj.sum_clje, 0)
  2941. END )
  2942. END )
  2943. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  2944. END
  2945. END AS 考核计算毛利不含税,
  2946. CASE
  2947. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  2948. ELSE
  2949. CASE
  2950. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  2951. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  2952. 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)
  2953. END
  2954. END AS 考核计算工价毛利不含税,
  2955. ( CASE
  2956. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  2957. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  2958. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2959. ELSE ( CASE
  2960. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2961. ELSE ( CASE
  2962. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2963. ELSE IFNULL(tj.sum_clje, 0)
  2964. END )
  2965. END )
  2966. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  2967. END ) AS 考核计算料价毛利不含税,
  2968. CASE
  2969. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  2970. ELSE ( IFNULL(tj.sum_namount, 0) )
  2971. END 合并金额,
  2972. CASE
  2973. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  2974. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  2975. END 合并工价,
  2976. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  2977. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  2978. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  2979. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  2980. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  2981. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  2982. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  2983. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  2984. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  2985. ord.nzkl AS 折扣率,
  2986. CASE
  2987. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  2988. ELSE ( CASE
  2989. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  2990. + CASE
  2991. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2992. ELSE ( CASE
  2993. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2994. ELSE ( CASE
  2995. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2996. ELSE IFNULL(tj.sum_clje, 0)
  2997. END )
  2998. END )
  2999. END = 0
  3000. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3001. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3002. + CASE
  3003. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3004. ELSE ( CASE
  3005. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3006. ELSE ( CASE
  3007. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3008. ELSE IFNULL(tj.sum_clje, 0)
  3009. END )
  3010. END )
  3011. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3012. END )
  3013. END AS 生产毛利不含税,
  3014. CASE
  3015. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3016. ELSE ( CASE
  3017. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3018. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3019. 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)
  3020. END )
  3021. END AS 生产工价毛利不含税,
  3022. IFNULL(tj.sum_clje, 0) - ( CASE
  3023. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3024. ELSE ( CASE
  3025. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3026. ELSE ( CASE
  3027. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3028. ELSE IFNULL(tj.sum_clje, 0)
  3029. END )
  3030. END )
  3031. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  3032. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  3033. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  3034. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  3035. IFNULL(tb_in.sum_ngjje_in, 0)
  3036. + CASE
  3037. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3038. ELSE ( CASE
  3039. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3040. ELSE ( CASE
  3041. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3042. ELSE IFNULL(tj.sum_clje, 0)
  3043. END )
  3044. END )
  3045. END AS 厂内传票合计不含税,
  3046. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  3047. CASE
  3048. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3049. ELSE ( CASE
  3050. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3051. ELSE ( CASE
  3052. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3053. ELSE IFNULL(tj.sum_clje, 0)
  3054. END )
  3055. END )
  3056. END AS 厂内传票料价不含税,
  3057. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  3058. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  3059. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  3060. CHY AS 活源,
  3061. CCLBMMC AS 承揽部门,
  3062. CYWYXM AS 业务员,
  3063. lwcbs AS 是否完工,
  3064. Dwcrq AS 完工日期,
  3065. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  3066. LJQBS AS 是否结清,
  3067. djqrq AS 结清日期,
  3068. izlconfirm AS 是否销货,
  3069. dzlconfirmrq AS 销货日期,
  3070. nzlconfirmje AS 销货金额,
  3071. nzlysje AS 销货应收,
  3072. IFNULL(ipaytime, 0) AS 帐龄,
  3073. ( CASE
  3074. WHEN ljqbs = 0
  3075. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  3076. ELSE 0
  3077. END ) AS 付款周期,
  3078. ( CASE
  3079. WHEN ljqbs = 0
  3080. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  3081. ELSE 0
  3082. END ) AS 过期天数,
  3083. ( CASE
  3084. WHEN bsfsk = 1 THEN 1
  3085. ELSE 0
  3086. END ) AS 是否收款,
  3087. nysje AS 预收款,
  3088. fskje AS 收款金额,
  3089. ( CASE
  3090. WHEN bsfdjfp = 1 THEN 1
  3091. ELSE 0
  3092. END ) AS '是否开票',
  3093. ffpje AS 发票金额,
  3094. cfph AS 发票号,
  3095. cfprq AS 发票日期,
  3096. ( CASE
  3097. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3098. ELSE 0
  3099. END ) AS 未开完票金额,
  3100. ( CASE
  3101. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  3102. ELSE 0
  3103. END ) AS 发票未收款金额,
  3104. iselforder AS 是否异常,
  3105. cselftype AS 异常类型,
  3106. CASE
  3107. WHEN bsfdjfp = 1 THEN ( CASE
  3108. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3109. ELSE 0
  3110. END )
  3111. ELSE ( CASE
  3112. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  3113. ELSE ( CASE
  3114. WHEN nzlconfirmje = 0 THEN nhjje
  3115. ELSE nzlconfirmje
  3116. END )
  3117. END )
  3118. END 未开票
  3119. FROM MCYD Ord
  3120. LEFT JOIN (SELECT Sum(CASE
  3121. WHEN hz.dz = 1 THEN hz.nhjje
  3122. ELSE hz.传票预计价
  3123. END) AS sum_nhjje_in,
  3124. Sum(CASE
  3125. WHEN hz.dz = 1 THEN hz.nhjje
  3126. ELSE hz.传票预计价
  3127. END) AS sum_ngjje_in,
  3128. Sum(CASE
  3129. WHEN hz.dz = 1 THEN hz.nclje
  3130. ELSE hz.nclje
  3131. END) AS sum_nclje_in,
  3132. hz.ICYDID
  3133. FROM (SELECT yjj.传票预计价单号,
  3134. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3135. yjj.iCYDID,
  3136. d.cjjdh 计价单号,
  3137. d.ccydh 订单号,
  3138. d.cbz 备注,
  3139. d.ngjje,
  3140. d.nclje,
  3141. IFNULL(d.iwjg, 0) iwjg,
  3142. IFNULL(d.lzfbs, 0) lzfbs,
  3143. d.nhjje,
  3144. IFNULL(d.ldz, 0) dz,
  3145. yjj.bShbz
  3146. FROM (SELECT b.csccpbh 传票预计价单号,
  3147. a.ccydh,
  3148. a.icydid,
  3149. Sum(c.fje) 传票预计价,
  3150. b.bshbz
  3151. FROM MCYD a
  3152. LEFT JOIN sccp b
  3153. ON a.icydid = b.icydid
  3154. LEFT JOIN ZbHjXm c
  3155. ON c.sccpid = b.sccpid
  3156. WHERE b.bOutProcess = '0 '
  3157. GROUP BY b.csccpbh,
  3158. a.icydid,
  3159. a.CCYDH,
  3160. b.bshbz,
  3161. b.bOutProcess) yjj
  3162. LEFT JOIN tbluey d
  3163. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3164. WHERE hz.iwjg = 0
  3165. AND hz.bshbz = 1
  3166. AND hz.lzfbs = 0
  3167. GROUP BY hz.ICYDID) tb_in
  3168. ON ord.icydid = tb_in.iCydid
  3169. LEFT JOIN (SELECT fw.iCYDID,
  3170. sum_nhjje_out,
  3171. sum_ngjje_out,
  3172. sum_nclje_out,
  3173. bz.cbz
  3174. FROM (SELECT Cast(Sum(( CASE
  3175. WHEN hz.dz = 0 THEN hz.传票预计价
  3176. ELSE hz.nhjje
  3177. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  3178. Cast(Sum(( CASE
  3179. WHEN hz.dz = 0 THEN hz.传票预计价
  3180. ELSE hz.nhjje
  3181. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  3182. Cast(Sum(CASE
  3183. WHEN hz.dz = 0 THEN hz.nclje
  3184. ELSE hz.nclje
  3185. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  3186. iCydid
  3187. FROM (SELECT yjj.传票预计价单号,
  3188. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3189. yjj.iCYDID,
  3190. d.cjjdh 计价单号,
  3191. d.ccydh 订单号,
  3192. d.cbz 备注,
  3193. d.ngjje,
  3194. d.nclje,
  3195. d.itax,
  3196. IFNULL(d.iwjg, 0) iwjg,
  3197. IFNULL(d.lzfbs, 0) lzfbs,
  3198. d.nhjje,
  3199. IFNULL(d.ldz, 0) dz,
  3200. yjj.bShbz
  3201. FROM (SELECT b.csccpbh 传票预计价单号,
  3202. a.ccydh,
  3203. a.icydid,
  3204. Sum(c.fje) 传票预计价,
  3205. b.bshbz
  3206. FROM MCYD a
  3207. LEFT JOIN sccp b
  3208. ON a.icydid = b.icydid
  3209. LEFT JOIN ZbHjXm c
  3210. ON c.sccpid = b.sccpid
  3211. WHERE b.bOutProcess = '1 '
  3212. GROUP BY b.csccpbh,
  3213. a.icydid,
  3214. a.CCYDH,
  3215. b.bshbz,
  3216. b.bOutProcess) yjj
  3217. LEFT JOIN tbluey d
  3218. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3219. WHERE hz.iwjg = 1
  3220. AND hz.lzfbs = 0
  3221. GROUP BY hz.ICYDID) fw
  3222. LEFT JOIN (SELECT icydid,
  3223. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  3224. WHERE icydid = a.icydid) AS cbz
  3225. FROM TBluey a
  3226. GROUP BY icydid) bz
  3227. ON bz.icydid = fw.iCYDID) tb_out
  3228. ON ord.icydid = tb_out.iCydid
  3229. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  3230. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  3231. iCydid,
  3232. CASE
  3233. WHEN ldz = 1 THEN 1
  3234. ELSE 0
  3235. END ldz
  3236. FROM TJob
  3237. WHERE lzfbs = 0
  3238. GROUP BY iCydid,
  3239. nclje,
  3240. itax,
  3241. ldz) tj
  3242. ON ord.ICYDID = tj.iCydid
  3243. WHERE ord.ICYDSTATE > 0
  3244. AND 1 = 1) zb
  3245. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
  3246. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  3247. GROUP BY zb.业务单位) dq
  3248. LEFT JOIN (SELECT zb1.业务单位,
  3249. Sum(zb1.合并金额) 上年销售收入,
  3250. Sum(zb1.合并工价) 上年销售工价,
  3251. Sum(zb1.考核计算毛利不含税)上年考核计算毛利
  3252. FROM (SELECT CASE
  3253. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  3254. ELSE '否'
  3255. END 登账,
  3256. CONVERT(DCYRQ, CHAR(10)) AS 承印日期,
  3257. CCYDH AS 订单号,
  3258. CYJMC AS 印件名称,
  3259. CASE
  3260. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  3261. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  3262. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  3263. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  3264. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  3265. OR CYWDWMC='浙江省新华书店集团有限公司'
  3266. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  3267. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  3268. WHEN CYWDWMC='浙江日报报业集团'
  3269. OR CYWDWMC='共产党员杂志社'
  3270. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  3271. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  3272. OR CYWDWMC='浙江出版传媒有限公司'
  3273. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  3274. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  3275. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  3276. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  3277. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  3278. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  3279. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  3280. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  3281. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  3282. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  3283. WHEN CYWDWMC='上海人民出版社有限公司'
  3284. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  3285. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  3286. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  3287. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  3288. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  3289. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  3290. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  3291. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  3292. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  3293. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  3294. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  3295. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  3296. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  3297. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  3298. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  3299. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  3300. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  3301. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  3302. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  3303. ELSE CYWDWMC
  3304. END AS 业务单位,
  3305. cyjlx 印件类型,
  3306. NCS AS 印数,
  3307. CZWKB AS 开本,
  3308. CDF AS 订法,
  3309. NZWYZ AS 正文印张,
  3310. cbz 发外备注,
  3311. CASE
  3312. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  3313. ELSE
  3314. CASE
  3315. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  3316. + CASE
  3317. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3318. ELSE ( CASE
  3319. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3320. ELSE ( CASE
  3321. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3322. ELSE IFNULL(tj.sum_clje, 0)
  3323. END )
  3324. END )
  3325. END = 0
  3326. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3327. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3328. + CASE
  3329. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3330. ELSE ( CASE
  3331. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3332. ELSE ( CASE
  3333. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3334. ELSE IFNULL(tj.sum_clje, 0)
  3335. END )
  3336. END )
  3337. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3338. END
  3339. END AS 考核计算毛利不含税,
  3340. CASE
  3341. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  3342. ELSE
  3343. CASE
  3344. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3345. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3346. 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)
  3347. END
  3348. END AS 考核计算工价毛利不含税,
  3349. ( CASE
  3350. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  3351. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  3352. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3353. ELSE ( CASE
  3354. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3355. ELSE ( CASE
  3356. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3357. ELSE IFNULL(tj.sum_clje, 0)
  3358. END )
  3359. END )
  3360. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  3361. END ) AS 考核计算料价毛利不含税,
  3362. CASE
  3363. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  3364. ELSE ( IFNULL(tj.sum_namount, 0) )
  3365. END 合并金额,
  3366. CASE
  3367. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  3368. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  3369. END 合并工价,
  3370. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  3371. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  3372. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  3373. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  3374. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  3375. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  3376. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  3377. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  3378. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  3379. ord.nzkl AS 折扣率,
  3380. CASE
  3381. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3382. ELSE ( CASE
  3383. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  3384. + CASE
  3385. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3386. ELSE ( CASE
  3387. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3388. ELSE ( CASE
  3389. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3390. ELSE IFNULL(tj.sum_clje, 0)
  3391. END )
  3392. END )
  3393. END = 0
  3394. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3395. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3396. + CASE
  3397. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3398. ELSE ( CASE
  3399. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3400. ELSE ( CASE
  3401. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3402. ELSE IFNULL(tj.sum_clje, 0)
  3403. END )
  3404. END )
  3405. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3406. END )
  3407. END AS 生产毛利不含税,
  3408. CASE
  3409. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3410. ELSE ( CASE
  3411. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3412. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3413. 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)
  3414. END )
  3415. END AS 生产工价毛利不含税,
  3416. IFNULL(tj.sum_clje, 0) - ( CASE
  3417. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3418. ELSE ( CASE
  3419. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3420. ELSE ( CASE
  3421. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3422. ELSE IFNULL(tj.sum_clje, 0)
  3423. END )
  3424. END )
  3425. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  3426. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  3427. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  3428. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  3429. IFNULL(tb_in.sum_ngjje_in, 0)
  3430. + CASE
  3431. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3432. ELSE ( CASE
  3433. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3434. ELSE ( CASE
  3435. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3436. ELSE IFNULL(tj.sum_clje, 0)
  3437. END )
  3438. END )
  3439. END AS 厂内传票合计不含税,
  3440. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  3441. CASE
  3442. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3443. ELSE ( CASE
  3444. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3445. ELSE ( CASE
  3446. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3447. ELSE IFNULL(tj.sum_clje, 0)
  3448. END )
  3449. END )
  3450. END AS 厂内传票料价不含税,
  3451. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  3452. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  3453. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  3454. CHY AS 活源,
  3455. CCLBMMC AS 承揽部门,
  3456. CYWYXM AS 业务员,
  3457. lwcbs AS 是否完工,
  3458. Dwcrq AS 完工日期,
  3459. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  3460. LJQBS AS 是否结清,
  3461. djqrq AS 结清日期,
  3462. izlconfirm AS 是否销货,
  3463. dzlconfirmrq AS 销货日期,
  3464. nzlconfirmje AS 销货金额,
  3465. nzlysje AS 销货应收,
  3466. IFNULL(ipaytime, 0) AS 帐龄,
  3467. ( CASE
  3468. WHEN ljqbs = 0
  3469. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  3470. ELSE 0
  3471. END ) AS 付款周期,
  3472. ( CASE
  3473. WHEN ljqbs = 0
  3474. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  3475. ELSE 0
  3476. END ) AS 过期天数,
  3477. ( CASE
  3478. WHEN bsfsk = 1 THEN 1
  3479. ELSE 0
  3480. END ) AS 是否收款,
  3481. nysje AS 预收款,
  3482. fskje AS 收款金额,
  3483. ( CASE
  3484. WHEN bsfdjfp = 1 THEN 1
  3485. ELSE 0
  3486. END ) AS '是否开票',
  3487. ffpje AS 发票金额,
  3488. cfph AS 发票号,
  3489. cfprq AS 发票日期,
  3490. ( CASE
  3491. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3492. ELSE 0
  3493. END ) AS 未开完票金额,
  3494. ( CASE
  3495. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  3496. ELSE 0
  3497. END ) AS 发票未收款金额,
  3498. iselforder AS 是否异常,
  3499. cselftype AS 异常类型,
  3500. CASE
  3501. WHEN bsfdjfp = 1 THEN ( CASE
  3502. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3503. ELSE 0
  3504. END )
  3505. ELSE ( CASE
  3506. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  3507. ELSE ( CASE
  3508. WHEN nzlconfirmje = 0 THEN nhjje
  3509. ELSE nzlconfirmje
  3510. END )
  3511. END )
  3512. END 未开票
  3513. FROM MCYD Ord
  3514. LEFT JOIN (SELECT ICYDID,
  3515. Max(Nsc) AS Nsc
  3516. FROM SCYDDX
  3517. WHERE IDXLXID = 573
  3518. GROUP BY ICYDID) AS Obj
  3519. ON ord.ICYDID = Obj.ICYDID
  3520. LEFT JOIN (SELECT ICYDID,
  3521. Sum(NYSLS) AS nysls,
  3522. Sum(nyssl) AS nyssl,
  3523. Sum(nsyl) AS nsyl
  3524. FROM SCYDDX
  3525. GROUP BY ICYDID) AS ObjMatier
  3526. ON Ord.ICYDID = ObjMatier.ICYDID
  3527. LEFT JOIN (SELECT Sum(CASE
  3528. WHEN hz.dz = 1 THEN hz.nhjje
  3529. ELSE hz.传票预计价
  3530. END) AS sum_nhjje_in,
  3531. Sum(CASE
  3532. WHEN hz.dz = 1 THEN hz.nhjje
  3533. ELSE hz.传票预计价
  3534. END) AS sum_ngjje_in,
  3535. Sum(CASE
  3536. WHEN hz.dz = 1 THEN hz.nclje
  3537. ELSE hz.nclje
  3538. END) AS sum_nclje_in,
  3539. hz.ICYDID
  3540. FROM (SELECT yjj.传票预计价单号,
  3541. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3542. yjj.iCYDID,
  3543. d.cjjdh 计价单号,
  3544. d.ccydh 订单号,
  3545. d.cbz 备注,
  3546. d.ngjje,
  3547. d.nclje,
  3548. IFNULL(d.iwjg, 0) iwjg,
  3549. IFNULL(d.lzfbs, 0) lzfbs,
  3550. d.nhjje,
  3551. IFNULL(d.ldz, 0) dz,
  3552. yjj.bShbz
  3553. FROM (SELECT b.csccpbh 传票预计价单号,
  3554. a.ccydh,
  3555. a.icydid,
  3556. Sum(c.fje) 传票预计价,
  3557. b.bshbz
  3558. FROM MCYD a
  3559. LEFT JOIN sccp b
  3560. ON a.icydid = b.icydid
  3561. LEFT JOIN ZbHjXm c
  3562. ON c.sccpid = b.sccpid
  3563. WHERE b.bOutProcess = '0 '
  3564. GROUP BY b.csccpbh,
  3565. a.icydid,
  3566. a.CCYDH,
  3567. b.bshbz,
  3568. b.bOutProcess) yjj
  3569. LEFT JOIN tbluey d
  3570. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3571. WHERE hz.iwjg = 0
  3572. AND hz.bshbz = 1
  3573. AND hz.lzfbs = 0
  3574. GROUP BY hz.ICYDID) tb_in
  3575. ON ord.icydid = tb_in.iCydid
  3576. LEFT JOIN (SELECT fw.iCYDID,
  3577. sum_nhjje_out,
  3578. sum_ngjje_out,
  3579. sum_nclje_out,
  3580. bz.cbz
  3581. FROM (SELECT Cast(Sum(( CASE
  3582. WHEN hz.dz = 0 THEN hz.传票预计价
  3583. ELSE hz.nhjje
  3584. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  3585. Cast(Sum(( CASE
  3586. WHEN hz.dz = 0 THEN hz.传票预计价
  3587. ELSE hz.nhjje
  3588. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  3589. Cast(Sum(CASE
  3590. WHEN hz.dz = 0 THEN hz.nclje
  3591. ELSE hz.nclje
  3592. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  3593. iCydid
  3594. FROM (SELECT yjj.传票预计价单号,
  3595. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3596. yjj.iCYDID,
  3597. d.cjjdh 计价单号,
  3598. d.ccydh 订单号,
  3599. d.cbz 备注,
  3600. d.ngjje,
  3601. d.nclje,
  3602. d.itax,
  3603. IFNULL(d.iwjg, 0) iwjg,
  3604. IFNULL(d.lzfbs, 0) lzfbs,
  3605. d.nhjje,
  3606. IFNULL(d.ldz, 0) dz,
  3607. yjj.bShbz
  3608. FROM (SELECT b.csccpbh 传票预计价单号,
  3609. a.ccydh,
  3610. a.icydid,
  3611. Sum(c.fje) 传票预计价,
  3612. b.bshbz
  3613. FROM MCYD a
  3614. LEFT JOIN sccp b
  3615. ON a.icydid = b.icydid
  3616. LEFT JOIN ZbHjXm c
  3617. ON c.sccpid = b.sccpid
  3618. WHERE b.bOutProcess = '1 '
  3619. GROUP BY b.csccpbh,
  3620. a.icydid,
  3621. a.CCYDH,
  3622. b.bshbz,
  3623. b.bOutProcess) yjj
  3624. LEFT JOIN tbluey d
  3625. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3626. WHERE hz.iwjg = 1
  3627. AND hz.lzfbs = 0
  3628. GROUP BY hz.ICYDID) fw
  3629. LEFT JOIN (SELECT icydid,
  3630. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  3631. WHERE icydid = a.icydid) AS cbz
  3632. FROM TBluey a
  3633. GROUP BY icydid) bz
  3634. ON bz.icydid = fw.iCYDID) tb_out
  3635. ON ord.icydid = tb_out.iCydid
  3636. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  3637. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  3638. iCydid,
  3639. CASE
  3640. WHEN ldz = 1 THEN 1
  3641. ELSE 0
  3642. END ldz
  3643. FROM TJob
  3644. WHERE lzfbs = 0
  3645. GROUP BY iCydid,
  3646. nclje,
  3647. itax,
  3648. ldz) tj
  3649. ON ord.ICYDID = tj.iCydid
  3650. WHERE ord.ICYDSTATE > 0
  3651. AND 1 = 1) zb1
  3652. WHERE CONVERT(zb1.承印日期,CHAR(10)) >= '2023-01-01'
  3653. AND CONVERT(zb1.承印日期,CHAR(10)) <= '2023-12-31'
  3654. GROUP BY zb1.业务单位) hb
  3655. ON hb.业务单位 = dq.业务单位) UNION (SELECT 1 AS flag,
  3656. IFNULL(dq.业务单位, hb.业务单位) 客户,
  3657. IFNULL(dq.销售收入, 000) 销售收入,
  3658. IFNULL(hb.上年销售收入, 0.000) 上年销售收入,
  3659. IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000) 销售收入增减,
  3660. CASE
  3661. WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
  3662. WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
  3663. AND IFNULL(dq.销售收入, 000) > 0 THEN 1
  3664. ELSE 0
  3665. END AS 销售收入同期比,
  3666. IFNULL(dq.销售工价, 000) 销售工价,
  3667. IFNULL(hb.上年销售工价, 0.000) 上年销售工价,
  3668. IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000) 销售工价增减,
  3669. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  3670. IFNULL(hb.上年考核计算毛利, 0.000) 上年考核计算毛利,
  3671. IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
  3672. CASE
  3673. WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
  3674. WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
  3675. AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
  3676. ELSE 0
  3677. END AS 毛利同期比
  3678. FROM (SELECT zb.业务单位 业务单位,
  3679. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  3680. IFNULL(Sum(zb.合并工价), 0.000) 销售工价,
  3681. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
  3682. FROM (SELECT CASE
  3683. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  3684. ELSE '否'
  3685. END 登账,
  3686. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  3687. CCYDH AS 订单号,
  3688. CYJMC AS 印件名称,
  3689. CASE
  3690. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  3691. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  3692. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  3693. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  3694. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  3695. OR CYWDWMC='浙江省新华书店集团有限公司'
  3696. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  3697. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  3698. WHEN CYWDWMC='浙江日报报业集团'
  3699. OR CYWDWMC='共产党员杂志社'
  3700. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  3701. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  3702. OR CYWDWMC='浙江出版传媒有限公司'
  3703. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  3704. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  3705. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  3706. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  3707. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  3708. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  3709. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  3710. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  3711. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  3712. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  3713. WHEN CYWDWMC='上海人民出版社有限公司'
  3714. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  3715. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  3716. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  3717. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  3718. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  3719. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  3720. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  3721. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  3722. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  3723. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  3724. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  3725. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  3726. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  3727. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  3728. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  3729. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  3730. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  3731. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  3732. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  3733. ELSE CYWDWMC
  3734. END AS 业务单位,
  3735. cyjlx 印件类型,
  3736. NCS AS 印数,
  3737. CZWKB AS 开本,
  3738. CDF AS 订法,
  3739. NZWYZ AS 正文印张,
  3740. CASE
  3741. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  3742. ELSE
  3743. CASE
  3744. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  3745. + CASE
  3746. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3747. ELSE ( CASE
  3748. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3749. ELSE ( CASE
  3750. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3751. ELSE IFNULL(tj.sum_clje, 0)
  3752. END )
  3753. END )
  3754. END = 0
  3755. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3756. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3757. + CASE
  3758. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3759. ELSE ( CASE
  3760. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3761. ELSE ( CASE
  3762. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3763. ELSE IFNULL(tj.sum_clje, 0)
  3764. END )
  3765. END )
  3766. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3767. END
  3768. END AS 考核计算毛利不含税,
  3769. CASE
  3770. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  3771. ELSE
  3772. CASE
  3773. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3774. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3775. 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)
  3776. END
  3777. END AS 考核计算工价毛利不含税,
  3778. ( CASE
  3779. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  3780. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  3781. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3782. ELSE ( CASE
  3783. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3784. ELSE ( CASE
  3785. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3786. ELSE IFNULL(tj.sum_clje, 0)
  3787. END )
  3788. END )
  3789. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  3790. END ) AS 考核计算料价毛利不含税,
  3791. CASE
  3792. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  3793. ELSE ( IFNULL(tj.sum_namount, 0) )
  3794. END 合并金额,
  3795. CASE
  3796. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  3797. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  3798. END 合并工价,
  3799. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  3800. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  3801. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  3802. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  3803. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  3804. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  3805. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  3806. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  3807. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  3808. ord.nzkl AS 折扣率,
  3809. CASE
  3810. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3811. ELSE ( CASE
  3812. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  3813. + CASE
  3814. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3815. ELSE ( CASE
  3816. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3817. ELSE ( CASE
  3818. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3819. ELSE IFNULL(tj.sum_clje, 0)
  3820. END )
  3821. END )
  3822. END = 0
  3823. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3824. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3825. + CASE
  3826. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3827. ELSE ( CASE
  3828. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3829. ELSE ( CASE
  3830. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3831. ELSE IFNULL(tj.sum_clje, 0)
  3832. END )
  3833. END )
  3834. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3835. END )
  3836. END AS 生产毛利不含税,
  3837. CASE
  3838. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3839. ELSE ( CASE
  3840. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3841. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3842. 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)
  3843. END )
  3844. END AS 生产工价毛利不含税,
  3845. IFNULL(tj.sum_clje, 0) - ( CASE
  3846. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3847. ELSE ( CASE
  3848. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3849. ELSE ( CASE
  3850. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3851. ELSE IFNULL(tj.sum_clje, 0)
  3852. END )
  3853. END )
  3854. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  3855. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  3856. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  3857. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  3858. IFNULL(tb_in.sum_ngjje_in, 0)
  3859. + CASE
  3860. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3861. ELSE ( CASE
  3862. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3863. ELSE ( CASE
  3864. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3865. ELSE IFNULL(tj.sum_clje, 0)
  3866. END )
  3867. END )
  3868. END AS 厂内传票合计不含税,
  3869. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  3870. CASE
  3871. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3872. ELSE ( CASE
  3873. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3874. ELSE ( CASE
  3875. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3876. ELSE IFNULL(tj.sum_clje, 0)
  3877. END )
  3878. END )
  3879. END AS 厂内传票料价不含税,
  3880. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  3881. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  3882. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  3883. CHY AS 活源,
  3884. CCLBMMC AS 承揽部门,
  3885. CYWYXM AS 业务员,
  3886. lwcbs AS 是否完工,
  3887. Dwcrq AS 完工日期,
  3888. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  3889. LJQBS AS 是否结清,
  3890. djqrq AS 结清日期,
  3891. izlconfirm AS 是否销货,
  3892. dzlconfirmrq AS 销货日期,
  3893. nzlconfirmje AS 销货金额,
  3894. nzlysje AS 销货应收,
  3895. IFNULL(ipaytime, 0) AS 帐龄,
  3896. ( CASE
  3897. WHEN ljqbs = 0
  3898. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  3899. ELSE 0
  3900. END ) AS 付款周期,
  3901. ( CASE
  3902. WHEN ljqbs = 0
  3903. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  3904. ELSE 0
  3905. END ) AS 过期天数,
  3906. ( CASE
  3907. WHEN bsfsk = 1 THEN 1
  3908. ELSE 0
  3909. END ) AS 是否收款,
  3910. nysje AS 预收款,
  3911. fskje AS 收款金额,
  3912. ( CASE
  3913. WHEN bsfdjfp = 1 THEN 1
  3914. ELSE 0
  3915. END ) AS '是否开票',
  3916. ffpje AS 发票金额,
  3917. cfph AS 发票号,
  3918. cfprq AS 发票日期,
  3919. ( CASE
  3920. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3921. ELSE 0
  3922. END ) AS 未开完票金额,
  3923. ( CASE
  3924. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  3925. ELSE 0
  3926. END ) AS 发票未收款金额,
  3927. iselforder AS 是否异常,
  3928. cselftype AS 异常类型,
  3929. CASE
  3930. WHEN bsfdjfp = 1 THEN ( CASE
  3931. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3932. ELSE 0
  3933. END )
  3934. ELSE ( CASE
  3935. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  3936. ELSE ( CASE
  3937. WHEN nzlconfirmje = 0 THEN nhjje
  3938. ELSE nzlconfirmje
  3939. END )
  3940. END )
  3941. END 未开票
  3942. FROM MCYD Ord
  3943. LEFT JOIN (SELECT Sum(CASE
  3944. WHEN hz.dz = 1 THEN hz.nhjje
  3945. ELSE hz.传票预计价
  3946. END) AS sum_nhjje_in,
  3947. Sum(CASE
  3948. WHEN hz.dz = 1 THEN hz.nhjje
  3949. ELSE hz.传票预计价
  3950. END) AS sum_ngjje_in,
  3951. Sum(CASE
  3952. WHEN hz.dz = 1 THEN hz.nclje
  3953. ELSE hz.nclje
  3954. END) AS sum_nclje_in,
  3955. hz.ICYDID
  3956. FROM (SELECT yjj.传票预计价单号,
  3957. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3958. yjj.iCYDID,
  3959. d.cjjdh 计价单号,
  3960. d.ccydh 订单号,
  3961. d.cbz 备注,
  3962. d.ngjje,
  3963. d.nclje,
  3964. IFNULL(d.iwjg, 0) iwjg,
  3965. IFNULL(d.lzfbs, 0) lzfbs,
  3966. d.nhjje,
  3967. IFNULL(d.ldz, 0) dz,
  3968. yjj.bShbz
  3969. FROM (SELECT b.csccpbh 传票预计价单号,
  3970. a.ccydh,
  3971. a.icydid,
  3972. Sum(c.fje) 传票预计价,
  3973. b.bshbz
  3974. FROM MCYD a
  3975. LEFT JOIN sccp b
  3976. ON a.icydid = b.icydid
  3977. LEFT JOIN ZbHjXm c
  3978. ON c.sccpid = b.sccpid
  3979. WHERE b.bOutProcess = '0 '
  3980. GROUP BY b.csccpbh,
  3981. a.icydid,
  3982. a.CCYDH,
  3983. b.bshbz,
  3984. b.bOutProcess) yjj
  3985. LEFT JOIN tbluey d
  3986. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3987. WHERE hz.iwjg = 0
  3988. AND hz.bshbz = 1
  3989. AND hz.lzfbs = 0
  3990. GROUP BY hz.ICYDID) tb_in
  3991. ON ord.icydid = tb_in.iCydid
  3992. LEFT JOIN (SELECT fw.iCYDID,
  3993. sum_nhjje_out,
  3994. sum_ngjje_out,
  3995. sum_nclje_out,
  3996. bz.cbz
  3997. FROM (SELECT Cast(Sum(( CASE
  3998. WHEN hz.dz = 0 THEN hz.传票预计价
  3999. ELSE hz.nhjje
  4000. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  4001. Cast(Sum(( CASE
  4002. WHEN hz.dz = 0 THEN hz.传票预计价
  4003. ELSE hz.nhjje
  4004. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  4005. Cast(Sum(CASE
  4006. WHEN hz.dz = 0 THEN hz.nclje
  4007. ELSE hz.nclje
  4008. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  4009. iCydid
  4010. FROM (SELECT yjj.传票预计价单号,
  4011. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  4012. yjj.iCYDID,
  4013. d.cjjdh 计价单号,
  4014. d.ccydh 订单号,
  4015. d.cbz 备注,
  4016. d.ngjje,
  4017. d.nclje,
  4018. d.itax,
  4019. IFNULL(d.iwjg, 0) iwjg,
  4020. IFNULL(d.lzfbs, 0) lzfbs,
  4021. d.nhjje,
  4022. IFNULL(d.ldz, 0) dz,
  4023. yjj.bShbz
  4024. FROM (SELECT b.csccpbh 传票预计价单号,
  4025. a.ccydh,
  4026. a.icydid,
  4027. Sum(c.fje) 传票预计价,
  4028. b.bshbz
  4029. FROM MCYD a
  4030. LEFT JOIN sccp b
  4031. ON a.icydid = b.icydid
  4032. LEFT JOIN ZbHjXm c
  4033. ON c.sccpid = b.sccpid
  4034. WHERE b.bOutProcess = '1 '
  4035. GROUP BY b.csccpbh,
  4036. a.icydid,
  4037. a.CCYDH,
  4038. b.bshbz,
  4039. b.bOutProcess) yjj
  4040. LEFT JOIN tbluey d
  4041. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  4042. WHERE hz.iwjg = 1
  4043. AND hz.lzfbs = 0
  4044. GROUP BY hz.ICYDID) fw
  4045. LEFT JOIN (SELECT icydid,
  4046. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  4047. WHERE icydid = a.icydid) AS cbz
  4048. FROM TBluey a
  4049. GROUP BY icydid) bz
  4050. ON bz.icydid = fw.iCYDID) tb_out
  4051. ON ord.icydid = tb_out.iCydid
  4052. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  4053. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  4054. iCydid,
  4055. CASE
  4056. WHEN ldz = 1 THEN 1
  4057. ELSE 0
  4058. END ldz
  4059. FROM TJob
  4060. WHERE lzfbs = 0
  4061. GROUP BY iCydid,
  4062. nclje,
  4063. itax,
  4064. ldz) tj
  4065. ON ord.ICYDID = tj.iCydid
  4066. WHERE ord.ICYDSTATE > 0
  4067. AND 1 = 1) zb
  4068. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
  4069. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  4070. GROUP BY zb.业务单位) dq
  4071. RIGHT JOIN (SELECT zb1.业务单位,
  4072. Sum(zb1.合并金额) 上年销售收入,
  4073. Sum(zb1.合并工价) 上年销售工价,
  4074. Sum(zb1.考核计算毛利不含税)上年考核计算毛利
  4075. FROM (SELECT CASE
  4076. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  4077. ELSE '否'
  4078. END 登账,
  4079. CONVERT(DCYRQ, CHAR(10)) AS 承印日期,
  4080. CCYDH AS 订单号,
  4081. CYJMC AS 印件名称,
  4082. CASE
  4083. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  4084. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  4085. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  4086. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  4087. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  4088. OR CYWDWMC='浙江省新华书店集团有限公司'
  4089. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  4090. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  4091. WHEN CYWDWMC='浙江日报报业集团'
  4092. OR CYWDWMC='共产党员杂志社'
  4093. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  4094. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  4095. OR CYWDWMC='浙江出版传媒有限公司'
  4096. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  4097. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  4098. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  4099. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  4100. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  4101. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  4102. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  4103. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  4104. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  4105. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  4106. WHEN CYWDWMC='上海人民出版社有限公司'
  4107. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  4108. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  4109. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  4110. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  4111. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  4112. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  4113. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  4114. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  4115. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  4116. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  4117. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  4118. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  4119. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  4120. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  4121. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  4122. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  4123. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  4124. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  4125. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  4126. ELSE CYWDWMC
  4127. END AS 业务单位,
  4128. cyjlx 印件类型,
  4129. NCS AS 印数,
  4130. CZWKB AS 开本,
  4131. CDF AS 订法,
  4132. NZWYZ AS 正文印张,
  4133. cbz 发外备注,
  4134. CASE
  4135. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  4136. ELSE
  4137. CASE
  4138. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  4139. + CASE
  4140. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4141. ELSE ( CASE
  4142. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4143. ELSE ( CASE
  4144. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4145. ELSE IFNULL(tj.sum_clje, 0)
  4146. END )
  4147. END )
  4148. END = 0
  4149. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  4150. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  4151. + CASE
  4152. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4153. ELSE ( CASE
  4154. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4155. ELSE ( CASE
  4156. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4157. ELSE IFNULL(tj.sum_clje, 0)
  4158. END )
  4159. END )
  4160. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  4161. END
  4162. END AS 考核计算毛利不含税,
  4163. CASE
  4164. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  4165. ELSE
  4166. CASE
  4167. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  4168. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  4169. 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)
  4170. END
  4171. END AS 考核计算工价毛利不含税,
  4172. ( CASE
  4173. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  4174. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  4175. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4176. ELSE ( CASE
  4177. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4178. ELSE ( CASE
  4179. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4180. ELSE IFNULL(tj.sum_clje, 0)
  4181. END )
  4182. END )
  4183. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  4184. END ) AS 考核计算料价毛利不含税,
  4185. CASE
  4186. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  4187. ELSE ( IFNULL(tj.sum_namount, 0) )
  4188. END 合并金额,
  4189. CASE
  4190. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  4191. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  4192. END 合并工价,
  4193. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  4194. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  4195. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  4196. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  4197. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  4198. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  4199. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  4200. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  4201. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  4202. ord.nzkl AS 折扣率,
  4203. CASE
  4204. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  4205. ELSE ( CASE
  4206. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  4207. + CASE
  4208. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4209. ELSE ( CASE
  4210. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4211. ELSE ( CASE
  4212. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4213. ELSE IFNULL(tj.sum_clje, 0)
  4214. END )
  4215. END )
  4216. END = 0
  4217. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  4218. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  4219. + CASE
  4220. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4221. ELSE ( CASE
  4222. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4223. ELSE ( CASE
  4224. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4225. ELSE IFNULL(tj.sum_clje, 0)
  4226. END )
  4227. END )
  4228. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  4229. END )
  4230. END AS 生产毛利不含税,
  4231. CASE
  4232. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  4233. ELSE ( CASE
  4234. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  4235. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  4236. 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)
  4237. END )
  4238. END AS 生产工价毛利不含税,
  4239. IFNULL(tj.sum_clje, 0) - ( CASE
  4240. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4241. ELSE ( CASE
  4242. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4243. ELSE ( CASE
  4244. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4245. ELSE IFNULL(tj.sum_clje, 0)
  4246. END )
  4247. END )
  4248. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  4249. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  4250. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  4251. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  4252. IFNULL(tb_in.sum_ngjje_in, 0)
  4253. + CASE
  4254. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4255. ELSE ( CASE
  4256. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4257. ELSE ( CASE
  4258. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4259. ELSE IFNULL(tj.sum_clje, 0)
  4260. END )
  4261. END )
  4262. END AS 厂内传票合计不含税,
  4263. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  4264. CASE
  4265. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4266. ELSE ( CASE
  4267. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4268. ELSE ( CASE
  4269. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4270. ELSE IFNULL(tj.sum_clje, 0)
  4271. END )
  4272. END )
  4273. END AS 厂内传票料价不含税,
  4274. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  4275. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  4276. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  4277. CHY AS 活源,
  4278. CCLBMMC AS 承揽部门,
  4279. CYWYXM AS 业务员,
  4280. lwcbs AS 是否完工,
  4281. Dwcrq AS 完工日期,
  4282. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  4283. LJQBS AS 是否结清,
  4284. djqrq AS 结清日期,
  4285. izlconfirm AS 是否销货,
  4286. dzlconfirmrq AS 销货日期,
  4287. nzlconfirmje AS 销货金额,
  4288. nzlysje AS 销货应收,
  4289. IFNULL(ipaytime, 0) AS 帐龄,
  4290. ( CASE
  4291. WHEN ljqbs = 0
  4292. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  4293. ELSE 0
  4294. END ) AS 付款周期,
  4295. ( CASE
  4296. WHEN ljqbs = 0
  4297. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  4298. ELSE 0
  4299. END ) AS 过期天数,
  4300. ( CASE
  4301. WHEN bsfsk = 1 THEN 1
  4302. ELSE 0
  4303. END ) AS 是否收款,
  4304. nysje AS 预收款,
  4305. fskje AS 收款金额,
  4306. ( CASE
  4307. WHEN bsfdjfp = 1 THEN 1
  4308. ELSE 0
  4309. END ) AS '是否开票',
  4310. ffpje AS 发票金额,
  4311. cfph AS 发票号,
  4312. cfprq AS 发票日期,
  4313. ( CASE
  4314. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  4315. ELSE 0
  4316. END ) AS 未开完票金额,
  4317. ( CASE
  4318. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  4319. ELSE 0
  4320. END ) AS 发票未收款金额,
  4321. iselforder AS 是否异常,
  4322. cselftype AS 异常类型,
  4323. CASE
  4324. WHEN bsfdjfp = 1 THEN ( CASE
  4325. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  4326. ELSE 0
  4327. END )
  4328. ELSE ( CASE
  4329. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  4330. ELSE ( CASE
  4331. WHEN nzlconfirmje = 0 THEN nhjje
  4332. ELSE nzlconfirmje
  4333. END )
  4334. END )
  4335. END 未开票
  4336. FROM MCYD Ord
  4337. LEFT JOIN (SELECT ICYDID,
  4338. Max(Nsc) AS Nsc
  4339. FROM SCYDDX
  4340. WHERE IDXLXID = 573
  4341. GROUP BY ICYDID) AS Obj
  4342. ON ord.ICYDID = Obj.ICYDID
  4343. LEFT JOIN (SELECT ICYDID,
  4344. Sum(NYSLS) AS nysls,
  4345. Sum(nyssl) AS nyssl,
  4346. Sum(nsyl) AS nsyl
  4347. FROM SCYDDX
  4348. GROUP BY ICYDID) AS ObjMatier
  4349. ON Ord.ICYDID = ObjMatier.ICYDID
  4350. LEFT JOIN (SELECT Sum(CASE
  4351. WHEN hz.dz = 1 THEN hz.nhjje
  4352. ELSE hz.传票预计价
  4353. END) AS sum_nhjje_in,
  4354. Sum(CASE
  4355. WHEN hz.dz = 1 THEN hz.nhjje
  4356. ELSE hz.传票预计价
  4357. END) AS sum_ngjje_in,
  4358. Sum(CASE
  4359. WHEN hz.dz = 1 THEN hz.nclje
  4360. ELSE hz.nclje
  4361. END) AS sum_nclje_in,
  4362. hz.ICYDID
  4363. FROM (SELECT yjj.传票预计价单号,
  4364. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  4365. yjj.iCYDID,
  4366. d.cjjdh 计价单号,
  4367. d.ccydh 订单号,
  4368. d.cbz 备注,
  4369. d.ngjje,
  4370. d.nclje,
  4371. IFNULL(d.iwjg, 0) iwjg,
  4372. IFNULL(d.lzfbs, 0) lzfbs,
  4373. d.nhjje,
  4374. IFNULL(d.ldz, 0) dz,
  4375. yjj.bShbz
  4376. FROM (SELECT b.csccpbh 传票预计价单号,
  4377. a.ccydh,
  4378. a.icydid,
  4379. Sum(c.fje) 传票预计价,
  4380. b.bshbz
  4381. FROM MCYD a
  4382. LEFT JOIN sccp b
  4383. ON a.icydid = b.icydid
  4384. LEFT JOIN ZbHjXm c
  4385. ON c.sccpid = b.sccpid
  4386. WHERE b.bOutProcess = '0 '
  4387. GROUP BY b.csccpbh,
  4388. a.icydid,
  4389. a.CCYDH,
  4390. b.bshbz,
  4391. b.bOutProcess) yjj
  4392. LEFT JOIN tbluey d
  4393. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  4394. WHERE hz.iwjg = 0
  4395. AND hz.bshbz = 1
  4396. AND hz.lzfbs = 0
  4397. GROUP BY hz.ICYDID) tb_in
  4398. ON ord.icydid = tb_in.iCydid
  4399. LEFT JOIN (SELECT fw.iCYDID,
  4400. sum_nhjje_out,
  4401. sum_ngjje_out,
  4402. sum_nclje_out,
  4403. bz.cbz
  4404. FROM (SELECT Cast(Sum(( CASE
  4405. WHEN hz.dz = 0 THEN hz.传票预计价
  4406. ELSE hz.nhjje
  4407. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  4408. Cast(Sum(( CASE
  4409. WHEN hz.dz = 0 THEN hz.传票预计价
  4410. ELSE hz.nhjje
  4411. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  4412. Cast(Sum(CASE
  4413. WHEN hz.dz = 0 THEN hz.nclje
  4414. ELSE hz.nclje
  4415. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  4416. iCydid
  4417. FROM (SELECT yjj.传票预计价单号,
  4418. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  4419. yjj.iCYDID,
  4420. d.cjjdh 计价单号,
  4421. d.ccydh 订单号,
  4422. d.cbz 备注,
  4423. d.ngjje,
  4424. d.nclje,
  4425. d.itax,
  4426. IFNULL(d.iwjg, 0) iwjg,
  4427. IFNULL(d.lzfbs, 0) lzfbs,
  4428. d.nhjje,
  4429. IFNULL(d.ldz, 0) dz,
  4430. yjj.bShbz
  4431. FROM (SELECT b.csccpbh 传票预计价单号,
  4432. a.ccydh,
  4433. a.icydid,
  4434. Sum(c.fje) 传票预计价,
  4435. b.bshbz
  4436. FROM MCYD a
  4437. LEFT JOIN sccp b
  4438. ON a.icydid = b.icydid
  4439. LEFT JOIN ZbHjXm c
  4440. ON c.sccpid = b.sccpid
  4441. WHERE b.bOutProcess = '1 '
  4442. GROUP BY b.csccpbh,
  4443. a.icydid,
  4444. a.CCYDH,
  4445. b.bshbz,
  4446. b.bOutProcess) yjj
  4447. LEFT JOIN tbluey d
  4448. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  4449. WHERE hz.iwjg = 1
  4450. AND hz.lzfbs = 0
  4451. GROUP BY hz.ICYDID) fw
  4452. LEFT JOIN (SELECT icydid,
  4453. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  4454. WHERE icydid = a.icydid) AS cbz
  4455. FROM TBluey a
  4456. GROUP BY icydid) bz
  4457. ON bz.icydid = fw.iCYDID) tb_out
  4458. ON ord.icydid = tb_out.iCydid
  4459. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  4460. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  4461. iCydid,
  4462. CASE
  4463. WHEN ldz = 1 THEN 1
  4464. ELSE 0
  4465. END ldz
  4466. FROM TJob
  4467. WHERE lzfbs = 0
  4468. GROUP BY iCydid,
  4469. nclje,
  4470. itax,
  4471. ldz) tj
  4472. ON ord.ICYDID = tj.iCydid
  4473. WHERE ord.ICYDSTATE > 0
  4474. AND 1 = 1) zb1
  4475. -- WHERE CONVERT(Dateadd(YEAR, 1, zb1.承印日期),CHAR(10)) >= '{$januaryFirst}'
  4476. -- AND CONVERT(Dateadd(YEAR, 1, zb1.承印日期),CHAR(10)) <= '{$today}'
  4477. GROUP BY zb1.业务单位) hb
  4478. ON hb.业务单位 = dq.业务单位))a) aa
  4479. ORDER BY Aa.考核计算毛利(万元) DESC
  4480. ";
  4481. // WHERE CONVERT(zb1.承印日期,CHAR(10)) >= '{$lastYearJanuaryFirst}'
  4482. // AND CONVERT(zb1.承印日期,CHAR(10)) <= '{$lastYearDecember31 }'
  4483. $result=Db::query($sql);
  4484. if ($result) {
  4485. $redis->set($redis_key, json_encode($result));
  4486. echo date("Y-m-d H:i:s").' 存进去了';
  4487. return $result;
  4488. }
  4489. // $redis->set($redis_key, json_encode($result));
  4490. // echo date("Y-m-d H:i:s").' 存进去了';
  4491. }
  4492. //年度考核毛利收入同比上升和下滑一览表->获取固定公司名称
  4493. public function getcustomerlist() {
  4494. return [
  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. '杭州长命印刷有限公司',
  4565. '浙江省新闻出版广电局',
  4566. '中国(杭州)智慧城市研究院有限公司',
  4567. '浙江双溪印业有限公司',
  4568. '浙江省人民检察院',
  4569. '杭州顺峰纸制品有限公司',
  4570. '上海辞书出版社有限公司',
  4571. '浙江电子音像出版社有限公司',
  4572. '杭州休闲文化传媒有限公司',
  4573. '浙江大学出版社有限责任公司',
  4574. '杭州出版社有限公司',
  4575. '星球地图出版社',
  4576. '浙江新华印刷技术有限公司',
  4577. '教育科学出版社有限公司',
  4578. '浙江新世纪电子音像发行有限公司',
  4579. ];
  4580. }
  4581. //年度考核毛利收入同比上升和下滑一览表 接口
  4582. public function year_profit(){
  4583. $redis = redis();
  4584. $result = json_decode($redis->get(md5('year_profit_redis')), true);
  4585. $list['columns'] = [
  4586. ['name' => '客户名称', 'id' => 'khmc', 'width' => '55', 'autoWrap' => "true", 'textAlign' => 'left'],
  4587. ['name' => '毛利收入(万元)', 'id' => 'mlsr', 'width' => '24', 'autoWrap' => "true", 'textAlign' => 'left'],
  4588. ['name' => '同比增长率', 'id' => 'zzl', 'width' => '18', 'autoWrap' => "true", 'textAlign' => 'left']
  4589. ];
  4590. // 判断 $result 是否为空
  4591. if(empty($result)) {
  4592. $list['rows'] = [];
  4593. } else {
  4594. //去掉重复名称的数据
  4595. $list_result = [];
  4596. foreach($result as $tvalue)
  4597. {
  4598. $key = md5(trim($tvalue['客户']));
  4599. if(!isset($list_result[$key])){
  4600. $list_result[$key] = $tvalue;
  4601. }
  4602. }
  4603. //获取固定公司名的数据
  4604. $list_result2 = [];
  4605. $customer_list = $this->getcustomerlist();
  4606. foreach($list_result as $tvalue2)
  4607. {
  4608. if(in_array(trim($tvalue2['客户']),$customer_list)){
  4609. $list_result2[] = $tvalue2;
  4610. }
  4611. }
  4612. if($list_result2){
  4613. // 获取前六个
  4614. $firstFour = array_slice($list_result2, 0, 6);
  4615. // 获取后六个
  4616. $lastThree = array_slice($list_result2, -6, 6);
  4617. // 合并数组,获取前六个和后六个
  4618. $combinedResult = array_merge($firstFour, $lastThree);
  4619. foreach ($combinedResult as $k => $v) {
  4620. $list['rows'][$k]['khmc'] = $v['客户'];
  4621. $list['rows'][$k]['mlsr'] = $v['考核计算毛利(万元)'];
  4622. $list['rows'][$k]['zzl'] = $v['毛利增长率'];
  4623. }
  4624. }
  4625. }
  4626. $res['status'] = 0;
  4627. $res['msg'] = '';
  4628. $res['data'] = $list;
  4629. return json($res);
  4630. }
  4631. //年度考核销售收入同比上升和下滑一览表 缓存
  4632. public function year_dclandsx_redis(){
  4633. $redis = redis();
  4634. $redis_key = md5('year_dclandsx_redis');
  4635. $januaryFirst = date('Y-01-01');
  4636. $today = date('Y-m-d');
  4637. $sql = "SELECT bb.客户,
  4638. bb.销售收入(万元),
  4639. bb.上年销售收入(万元),
  4640. bb.销售收入增减(万元),bb.销售收入增长率 FROM(SELECT aa.客户,
  4641. aa.销售收入(万元),
  4642. aa.上年销售收入(万元),
  4643. aa.销售收入增减(万元),
  4644. CASE
  4645. WHEN IFNULL(aa.上年销售收入(万元), 0) = 0 THEN '/'
  4646. ELSE Ltrim(Cast(aa.销售收入增减(万元)*100/aa.上年销售收入(万元) AS DECIMAL(10, 2)))
  4647. END AS 销售收入增长率
  4648. FROM (SELECT a.客户,
  4649. CONVERT(Round(a.销售收入 / 10000, 2),DECIMAL(10, 2)) AS '销售收入(万元)',
  4650. CONVERT(Round(a.上年销售收入 / 10000, 2),DECIMAL(10, 2)) AS '上年销售收入(万元)',
  4651. CONVERT(Round(a.销售收入增减 / 10000, 2),DECIMAL(10, 2)) AS '销售收入增减(万元)',
  4652. CONVERT(Round(a.销售工价 / 10000, 2),DECIMAL(10, 2)) AS '销售工价(万元)',
  4653. CONVERT(Round(a.上年销售工价 / 10000, 2),DECIMAL(10, 2)) AS '上年销售工价(万元)',
  4654. CONVERT(Round(a.销售工价增减 / 10000, 2),DECIMAL(10, 2)) AS '销售工价增减(万元)',
  4655. CONVERT(Round(a.考核计算毛利 / 10000, 2),DECIMAL(10, 2)) AS '考核计算毛利(万元)',
  4656. CONVERT(Round(a.上年考核计算毛利 / 10000, 2),DECIMAL(10, 2))AS '上年考核计算毛利(万元)',
  4657. CONVERT(Round(a.考核计算毛利增减 / 10000, 2),DECIMAL(10, 2))AS '考核计算毛利增减(万元)'
  4658. FROM ((SELECT 1 AS flag,
  4659. IFNULL(dq.业务单位, hb.业务单位) 客户,
  4660. IFNULL(dq.销售收入, 000) 销售收入,
  4661. IFNULL(hb.上年销售收入, 0.000) 上年销售收入,
  4662. IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000) 销售收入增减,
  4663. CASE
  4664. WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
  4665. WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
  4666. AND IFNULL(dq.销售收入, 000) > 0 THEN 1
  4667. ELSE 0
  4668. END AS 销售收入同期比,
  4669. IFNULL(dq.销售工价, 000) 销售工价,
  4670. IFNULL(hb.上年销售工价, 0.000) 上年销售工价,
  4671. IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000) 销售工价增减,
  4672. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  4673. IFNULL(hb.上年考核计算毛利, 0.000) 上年考核计算毛利,
  4674. IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
  4675. CASE
  4676. WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
  4677. WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
  4678. AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
  4679. ELSE 0
  4680. END AS 毛利同期比
  4681. FROM (SELECT zb.业务单位 业务单位,
  4682. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  4683. IFNULL(Sum(zb.合并工价), 0.000) 销售工价,
  4684. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
  4685. FROM (SELECT CASE
  4686. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  4687. ELSE '否'
  4688. END 登账,
  4689. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  4690. CCYDH AS 订单号,
  4691. CYJMC AS 印件名称,
  4692. CASE
  4693. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  4694. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  4695. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  4696. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  4697. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  4698. OR CYWDWMC='浙江省新华书店集团有限公司'
  4699. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  4700. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  4701. WHEN CYWDWMC='浙江日报报业集团'
  4702. OR CYWDWMC='共产党员杂志社'
  4703. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  4704. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  4705. OR CYWDWMC='浙江出版传媒有限公司'
  4706. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  4707. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  4708. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  4709. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  4710. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  4711. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  4712. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  4713. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  4714. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  4715. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  4716. WHEN CYWDWMC='上海人民出版社有限公司'
  4717. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  4718. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  4719. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  4720. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  4721. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  4722. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  4723. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  4724. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  4725. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  4726. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  4727. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  4728. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  4729. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  4730. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  4731. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  4732. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  4733. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  4734. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  4735. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  4736. ELSE CYWDWMC
  4737. END AS 业务单位,
  4738. cyjlx 印件类型,
  4739. NCS AS 印数,
  4740. CZWKB AS 开本,
  4741. CDF AS 订法,
  4742. NZWYZ AS 正文印张,
  4743. CASE
  4744. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  4745. ELSE
  4746. CASE
  4747. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  4748. + CASE
  4749. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4750. ELSE ( CASE
  4751. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4752. ELSE ( CASE
  4753. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4754. ELSE IFNULL(tj.sum_clje, 0)
  4755. END )
  4756. END )
  4757. END = 0
  4758. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  4759. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  4760. + CASE
  4761. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4762. ELSE ( CASE
  4763. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4764. ELSE ( CASE
  4765. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4766. ELSE IFNULL(tj.sum_clje, 0)
  4767. END )
  4768. END )
  4769. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  4770. END
  4771. END AS 考核计算毛利不含税,
  4772. CASE
  4773. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  4774. ELSE
  4775. CASE
  4776. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  4777. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  4778. 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)
  4779. END
  4780. END AS 考核计算工价毛利不含税,
  4781. ( CASE
  4782. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  4783. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  4784. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4785. ELSE ( CASE
  4786. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4787. ELSE ( CASE
  4788. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4789. ELSE IFNULL(tj.sum_clje, 0)
  4790. END )
  4791. END )
  4792. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  4793. END ) AS 考核计算料价毛利不含税,
  4794. CASE
  4795. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  4796. ELSE ( IFNULL(tj.sum_namount, 0) )
  4797. END 合并金额,
  4798. CASE
  4799. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  4800. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  4801. END 合并工价,
  4802. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  4803. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  4804. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  4805. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  4806. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  4807. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  4808. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  4809. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  4810. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  4811. ord.nzkl AS 折扣率,
  4812. CASE
  4813. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  4814. ELSE ( CASE
  4815. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  4816. + CASE
  4817. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4818. ELSE ( CASE
  4819. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4820. ELSE ( CASE
  4821. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4822. ELSE IFNULL(tj.sum_clje, 0)
  4823. END )
  4824. END )
  4825. END = 0
  4826. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  4827. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  4828. + CASE
  4829. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4830. ELSE ( CASE
  4831. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4832. ELSE ( CASE
  4833. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4834. ELSE IFNULL(tj.sum_clje, 0)
  4835. END )
  4836. END )
  4837. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  4838. END )
  4839. END AS 生产毛利不含税,
  4840. CASE
  4841. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  4842. ELSE ( CASE
  4843. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  4844. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  4845. 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)
  4846. END )
  4847. END AS 生产工价毛利不含税,
  4848. IFNULL(tj.sum_clje, 0) - ( CASE
  4849. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4850. ELSE ( CASE
  4851. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4852. ELSE ( CASE
  4853. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4854. ELSE IFNULL(tj.sum_clje, 0)
  4855. END )
  4856. END )
  4857. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  4858. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  4859. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  4860. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  4861. IFNULL(tb_in.sum_ngjje_in, 0)
  4862. + CASE
  4863. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4864. ELSE ( CASE
  4865. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4866. ELSE ( CASE
  4867. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4868. ELSE IFNULL(tj.sum_clje, 0)
  4869. END )
  4870. END )
  4871. END AS 厂内传票合计不含税,
  4872. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  4873. CASE
  4874. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4875. ELSE ( CASE
  4876. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4877. ELSE ( CASE
  4878. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4879. ELSE IFNULL(tj.sum_clje, 0)
  4880. END )
  4881. END )
  4882. END AS 厂内传票料价不含税,
  4883. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  4884. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  4885. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  4886. CHY AS 活源,
  4887. CCLBMMC AS 承揽部门,
  4888. CYWYXM AS 业务员,
  4889. lwcbs AS 是否完工,
  4890. Dwcrq AS 完工日期,
  4891. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  4892. LJQBS AS 是否结清,
  4893. djqrq AS 结清日期,
  4894. izlconfirm AS 是否销货,
  4895. dzlconfirmrq AS 销货日期,
  4896. nzlconfirmje AS 销货金额,
  4897. nzlysje AS 销货应收,
  4898. IFNULL(ipaytime, 0) AS 帐龄,
  4899. ( CASE
  4900. WHEN ljqbs = 0
  4901. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  4902. ELSE 0
  4903. END ) AS 付款周期,
  4904. ( CASE
  4905. WHEN ljqbs = 0
  4906. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  4907. ELSE 0
  4908. END ) AS 过期天数,
  4909. ( CASE
  4910. WHEN bsfsk = 1 THEN 1
  4911. ELSE 0
  4912. END ) AS 是否收款,
  4913. nysje AS 预收款,
  4914. fskje AS 收款金额,
  4915. ( CASE
  4916. WHEN bsfdjfp = 1 THEN 1
  4917. ELSE 0
  4918. END ) AS '是否开票',
  4919. ffpje AS 发票金额,
  4920. cfph AS 发票号,
  4921. cfprq AS 发票日期,
  4922. ( CASE
  4923. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  4924. ELSE 0
  4925. END ) AS 未开完票金额,
  4926. ( CASE
  4927. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  4928. ELSE 0
  4929. END ) AS 发票未收款金额,
  4930. iselforder AS 是否异常,
  4931. cselftype AS 异常类型,
  4932. CASE
  4933. WHEN bsfdjfp = 1 THEN ( CASE
  4934. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  4935. ELSE 0
  4936. END )
  4937. ELSE ( CASE
  4938. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  4939. ELSE ( CASE
  4940. WHEN nzlconfirmje = 0 THEN nhjje
  4941. ELSE nzlconfirmje
  4942. END )
  4943. END )
  4944. END 未开票
  4945. FROM MCYD Ord
  4946. LEFT JOIN (SELECT Sum(CASE
  4947. WHEN hz.dz = 1 THEN hz.nhjje
  4948. ELSE hz.传票预计价
  4949. END) AS sum_nhjje_in,
  4950. Sum(CASE
  4951. WHEN hz.dz = 1 THEN hz.nhjje
  4952. ELSE hz.传票预计价
  4953. END) AS sum_ngjje_in,
  4954. Sum(CASE
  4955. WHEN hz.dz = 1 THEN hz.nclje
  4956. ELSE hz.nclje
  4957. END) AS sum_nclje_in,
  4958. hz.ICYDID
  4959. FROM (SELECT yjj.传票预计价单号,
  4960. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  4961. yjj.iCYDID,
  4962. d.cjjdh 计价单号,
  4963. d.ccydh 订单号,
  4964. d.cbz 备注,
  4965. d.ngjje,
  4966. d.nclje,
  4967. IFNULL(d.iwjg, 0) iwjg,
  4968. IFNULL(d.lzfbs, 0) lzfbs,
  4969. d.nhjje,
  4970. IFNULL(d.ldz, 0) dz,
  4971. yjj.bShbz
  4972. FROM (SELECT b.csccpbh 传票预计价单号,
  4973. a.ccydh,
  4974. a.icydid,
  4975. Sum(c.fje) 传票预计价,
  4976. b.bshbz
  4977. FROM MCYD a
  4978. LEFT JOIN sccp b
  4979. ON a.icydid = b.icydid
  4980. LEFT JOIN ZbHjXm c
  4981. ON c.sccpid = b.sccpid
  4982. WHERE b.bOutProcess = '0 '
  4983. GROUP BY b.csccpbh,
  4984. a.icydid,
  4985. a.CCYDH,
  4986. b.bshbz,
  4987. b.bOutProcess) yjj
  4988. LEFT JOIN tbluey d
  4989. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  4990. WHERE hz.iwjg = 0
  4991. AND hz.bshbz = 1
  4992. AND hz.lzfbs = 0
  4993. GROUP BY hz.ICYDID) tb_in
  4994. ON ord.icydid = tb_in.iCydid
  4995. LEFT JOIN (SELECT fw.iCYDID,
  4996. sum_nhjje_out,
  4997. sum_ngjje_out,
  4998. sum_nclje_out,
  4999. bz.cbz
  5000. FROM (SELECT Cast(Sum(( CASE
  5001. WHEN hz.dz = 0 THEN hz.传票预计价
  5002. ELSE hz.nhjje
  5003. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  5004. Cast(Sum(( CASE
  5005. WHEN hz.dz = 0 THEN hz.传票预计价
  5006. ELSE hz.nhjje
  5007. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  5008. Cast(Sum(CASE
  5009. WHEN hz.dz = 0 THEN hz.nclje
  5010. ELSE hz.nclje
  5011. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  5012. iCydid
  5013. FROM (SELECT yjj.传票预计价单号,
  5014. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5015. yjj.iCYDID,
  5016. d.cjjdh 计价单号,
  5017. d.ccydh 订单号,
  5018. d.cbz 备注,
  5019. d.ngjje,
  5020. d.nclje,
  5021. d.itax,
  5022. IFNULL(d.iwjg, 0) iwjg,
  5023. IFNULL(d.lzfbs, 0) lzfbs,
  5024. d.nhjje,
  5025. IFNULL(d.ldz, 0) dz,
  5026. yjj.bShbz
  5027. FROM (SELECT b.csccpbh 传票预计价单号,
  5028. a.ccydh,
  5029. a.icydid,
  5030. Sum(c.fje) 传票预计价,
  5031. b.bshbz
  5032. FROM MCYD a
  5033. LEFT JOIN sccp b
  5034. ON a.icydid = b.icydid
  5035. LEFT JOIN ZbHjXm c
  5036. ON c.sccpid = b.sccpid
  5037. WHERE b.bOutProcess = '1 '
  5038. GROUP BY b.csccpbh,
  5039. a.icydid,
  5040. a.CCYDH,
  5041. b.bshbz,
  5042. b.bOutProcess) yjj
  5043. LEFT JOIN tbluey d
  5044. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5045. WHERE hz.iwjg = 1
  5046. AND hz.lzfbs = 0
  5047. GROUP BY hz.ICYDID) fw
  5048. LEFT JOIN (SELECT icydid,
  5049. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  5050. WHERE icydid = a.icydid) AS cbz
  5051. FROM TBluey a
  5052. GROUP BY icydid) bz
  5053. ON bz.icydid = fw.iCYDID) tb_out
  5054. ON ord.icydid = tb_out.iCydid
  5055. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  5056. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  5057. iCydid,
  5058. CASE
  5059. WHEN ldz = 1 THEN 1
  5060. ELSE 0
  5061. END ldz
  5062. FROM TJob
  5063. WHERE lzfbs = 0
  5064. GROUP BY iCydid,
  5065. nclje,
  5066. itax,
  5067. ldz) tj
  5068. ON ord.ICYDID = tj.iCydid
  5069. WHERE ord.ICYDSTATE > 0
  5070. AND 1 = 1) zb
  5071. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
  5072. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  5073. GROUP BY zb.业务单位) dq
  5074. LEFT JOIN (SELECT zb1.业务单位,
  5075. Sum(zb1.合并金额) 上年销售收入,
  5076. Sum(zb1.合并工价) 上年销售工价,
  5077. Sum(zb1.考核计算毛利不含税)上年考核计算毛利
  5078. FROM (SELECT CASE
  5079. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  5080. ELSE '否'
  5081. END 登账,
  5082. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  5083. CCYDH AS 订单号,
  5084. CYJMC AS 印件名称,
  5085. CASE
  5086. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  5087. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  5088. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  5089. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  5090. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  5091. OR CYWDWMC='浙江省新华书店集团有限公司'
  5092. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  5093. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  5094. WHEN CYWDWMC='浙江日报报业集团'
  5095. OR CYWDWMC='共产党员杂志社'
  5096. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  5097. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  5098. OR CYWDWMC='浙江出版传媒有限公司'
  5099. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  5100. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  5101. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  5102. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  5103. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  5104. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  5105. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  5106. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  5107. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  5108. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  5109. WHEN CYWDWMC='上海人民出版社有限公司'
  5110. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  5111. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  5112. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  5113. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  5114. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  5115. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  5116. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  5117. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  5118. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  5119. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  5120. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  5121. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  5122. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  5123. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  5124. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  5125. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  5126. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  5127. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  5128. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  5129. ELSE CYWDWMC
  5130. END AS 业务单位,
  5131. cyjlx 印件类型,
  5132. NCS AS 印数,
  5133. CZWKB AS 开本,
  5134. CDF AS 订法,
  5135. NZWYZ AS 正文印张,
  5136. cbz 发外备注,
  5137. CASE
  5138. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  5139. ELSE
  5140. CASE
  5141. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5142. + CASE
  5143. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5144. ELSE ( CASE
  5145. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5146. ELSE ( CASE
  5147. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5148. ELSE IFNULL(tj.sum_clje, 0)
  5149. END )
  5150. END )
  5151. END = 0
  5152. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5153. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5154. + CASE
  5155. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5156. ELSE ( CASE
  5157. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5158. ELSE ( CASE
  5159. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5160. ELSE IFNULL(tj.sum_clje, 0)
  5161. END )
  5162. END )
  5163. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5164. END
  5165. END AS 考核计算毛利不含税,
  5166. CASE
  5167. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  5168. ELSE
  5169. CASE
  5170. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5171. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5172. 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)
  5173. END
  5174. END AS 考核计算工价毛利不含税,
  5175. ( CASE
  5176. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  5177. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  5178. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5179. ELSE ( CASE
  5180. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5181. ELSE ( CASE
  5182. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5183. ELSE IFNULL(tj.sum_clje, 0)
  5184. END )
  5185. END )
  5186. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  5187. END ) AS 考核计算料价毛利不含税,
  5188. CASE
  5189. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  5190. ELSE ( IFNULL(tj.sum_namount, 0) )
  5191. END 合并金额,
  5192. CASE
  5193. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  5194. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  5195. END 合并工价,
  5196. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  5197. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  5198. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  5199. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  5200. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  5201. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  5202. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  5203. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  5204. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  5205. ord.nzkl AS 折扣率,
  5206. CASE
  5207. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5208. ELSE ( CASE
  5209. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5210. + CASE
  5211. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5212. ELSE ( CASE
  5213. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5214. ELSE ( CASE
  5215. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5216. ELSE IFNULL(tj.sum_clje, 0)
  5217. END )
  5218. END )
  5219. END = 0
  5220. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5221. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5222. + CASE
  5223. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5224. ELSE ( CASE
  5225. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5226. ELSE ( CASE
  5227. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5228. ELSE IFNULL(tj.sum_clje, 0)
  5229. END )
  5230. END )
  5231. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5232. END )
  5233. END AS 生产毛利不含税,
  5234. CASE
  5235. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5236. ELSE ( CASE
  5237. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5238. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5239. 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)
  5240. END )
  5241. END AS 生产工价毛利不含税,
  5242. IFNULL(tj.sum_clje, 0) - ( CASE
  5243. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5244. ELSE ( CASE
  5245. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5246. ELSE ( CASE
  5247. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5248. ELSE IFNULL(tj.sum_clje, 0)
  5249. END )
  5250. END )
  5251. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  5252. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  5253. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  5254. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  5255. IFNULL(tb_in.sum_ngjje_in, 0)
  5256. + CASE
  5257. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5258. ELSE ( CASE
  5259. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5260. ELSE ( CASE
  5261. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5262. ELSE IFNULL(tj.sum_clje, 0)
  5263. END )
  5264. END )
  5265. END AS 厂内传票合计不含税,
  5266. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  5267. CASE
  5268. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5269. ELSE ( CASE
  5270. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5271. ELSE ( CASE
  5272. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5273. ELSE IFNULL(tj.sum_clje, 0)
  5274. END )
  5275. END )
  5276. END AS 厂内传票料价不含税,
  5277. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  5278. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  5279. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  5280. CHY AS 活源,
  5281. CCLBMMC AS 承揽部门,
  5282. CYWYXM AS 业务员,
  5283. lwcbs AS 是否完工,
  5284. Dwcrq AS 完工日期,
  5285. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  5286. LJQBS AS 是否结清,
  5287. djqrq AS 结清日期,
  5288. izlconfirm AS 是否销货,
  5289. dzlconfirmrq AS 销货日期,
  5290. nzlconfirmje AS 销货金额,
  5291. nzlysje AS 销货应收,
  5292. IFNULL(ipaytime, 0) AS 帐龄,
  5293. ( CASE
  5294. WHEN ljqbs = 0
  5295. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  5296. ELSE 0
  5297. END ) AS 付款周期,
  5298. ( CASE
  5299. WHEN ljqbs = 0
  5300. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  5301. ELSE 0
  5302. END ) AS 过期天数,
  5303. ( CASE
  5304. WHEN bsfsk = 1 THEN 1
  5305. ELSE 0
  5306. END ) AS 是否收款,
  5307. nysje AS 预收款,
  5308. fskje AS 收款金额,
  5309. ( CASE
  5310. WHEN bsfdjfp = 1 THEN 1
  5311. ELSE 0
  5312. END ) AS '是否开票',
  5313. ffpje AS 发票金额,
  5314. cfph AS 发票号,
  5315. cfprq AS 发票日期,
  5316. ( CASE
  5317. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  5318. ELSE 0
  5319. END ) AS 未开完票金额,
  5320. ( CASE
  5321. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  5322. ELSE 0
  5323. END ) AS 发票未收款金额,
  5324. iselforder AS 是否异常,
  5325. cselftype AS 异常类型,
  5326. CASE
  5327. WHEN bsfdjfp = 1 THEN ( CASE
  5328. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  5329. ELSE 0
  5330. END )
  5331. ELSE ( CASE
  5332. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  5333. ELSE ( CASE
  5334. WHEN nzlconfirmje = 0 THEN nhjje
  5335. ELSE nzlconfirmje
  5336. END )
  5337. END )
  5338. END 未开票
  5339. FROM MCYD Ord
  5340. LEFT JOIN (SELECT ICYDID,
  5341. Max(Nsc) AS Nsc
  5342. FROM SCYDDX
  5343. WHERE IDXLXID = 573
  5344. GROUP BY ICYDID) AS Obj
  5345. ON ord.ICYDID = Obj.ICYDID
  5346. LEFT JOIN (SELECT ICYDID,
  5347. Sum(NYSLS) AS nysls,
  5348. Sum(nyssl) AS nyssl,
  5349. Sum(nsyl) AS nsyl
  5350. FROM SCYDDX
  5351. GROUP BY ICYDID) AS ObjMatier
  5352. ON Ord.ICYDID = ObjMatier.ICYDID
  5353. LEFT JOIN (SELECT Sum(CASE
  5354. WHEN hz.dz = 1 THEN hz.nhjje
  5355. ELSE hz.传票预计价
  5356. END) AS sum_nhjje_in,
  5357. Sum(CASE
  5358. WHEN hz.dz = 1 THEN hz.nhjje
  5359. ELSE hz.传票预计价
  5360. END) AS sum_ngjje_in,
  5361. Sum(CASE
  5362. WHEN hz.dz = 1 THEN hz.nclje
  5363. ELSE hz.nclje
  5364. END) AS sum_nclje_in,
  5365. hz.ICYDID
  5366. FROM (SELECT yjj.传票预计价单号,
  5367. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5368. yjj.iCYDID,
  5369. d.cjjdh 计价单号,
  5370. d.ccydh 订单号,
  5371. d.cbz 备注,
  5372. d.ngjje,
  5373. d.nclje,
  5374. IFNULL(d.iwjg, 0) iwjg,
  5375. IFNULL(d.lzfbs, 0) lzfbs,
  5376. d.nhjje,
  5377. IFNULL(d.ldz, 0) dz,
  5378. yjj.bShbz
  5379. FROM (SELECT b.csccpbh 传票预计价单号,
  5380. a.ccydh,
  5381. a.icydid,
  5382. Sum(c.fje) 传票预计价,
  5383. b.bshbz
  5384. FROM MCYD a
  5385. LEFT JOIN sccp b
  5386. ON a.icydid = b.icydid
  5387. LEFT JOIN ZbHjXm c
  5388. ON c.sccpid = b.sccpid
  5389. WHERE b.bOutProcess = '0 '
  5390. GROUP BY b.csccpbh,
  5391. a.icydid,
  5392. a.CCYDH,
  5393. b.bshbz,
  5394. b.bOutProcess) yjj
  5395. LEFT JOIN tbluey d
  5396. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5397. WHERE hz.iwjg = 0
  5398. AND hz.bshbz = 1
  5399. AND hz.lzfbs = 0
  5400. GROUP BY hz.ICYDID) tb_in
  5401. ON ord.icydid = tb_in.iCydid
  5402. LEFT JOIN (SELECT fw.iCYDID,
  5403. sum_nhjje_out,
  5404. sum_ngjje_out,
  5405. sum_nclje_out,
  5406. bz.cbz
  5407. FROM (SELECT Cast(Sum(( CASE
  5408. WHEN hz.dz = 0 THEN hz.传票预计价
  5409. ELSE hz.nhjje
  5410. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  5411. Cast(Sum(( CASE
  5412. WHEN hz.dz = 0 THEN hz.传票预计价
  5413. ELSE hz.nhjje
  5414. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  5415. Cast(Sum(CASE
  5416. WHEN hz.dz = 0 THEN hz.nclje
  5417. ELSE hz.nclje
  5418. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  5419. iCydid
  5420. FROM (SELECT yjj.传票预计价单号,
  5421. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5422. yjj.iCYDID,
  5423. d.cjjdh 计价单号,
  5424. d.ccydh 订单号,
  5425. d.cbz 备注,
  5426. d.ngjje,
  5427. d.nclje,
  5428. d.itax,
  5429. IFNULL(d.iwjg, 0) iwjg,
  5430. IFNULL(d.lzfbs, 0) lzfbs,
  5431. d.nhjje,
  5432. IFNULL(d.ldz, 0) dz,
  5433. yjj.bShbz
  5434. FROM (SELECT b.csccpbh 传票预计价单号,
  5435. a.ccydh,
  5436. a.icydid,
  5437. Sum(c.fje) 传票预计价,
  5438. b.bshbz
  5439. FROM MCYD a
  5440. LEFT JOIN sccp b
  5441. ON a.icydid = b.icydid
  5442. LEFT JOIN ZbHjXm c
  5443. ON c.sccpid = b.sccpid
  5444. WHERE b.bOutProcess = '1 '
  5445. GROUP BY b.csccpbh,
  5446. a.icydid,
  5447. a.CCYDH,
  5448. b.bshbz,
  5449. b.bOutProcess) yjj
  5450. LEFT JOIN tbluey d
  5451. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5452. WHERE hz.iwjg = 1
  5453. AND hz.lzfbs = 0
  5454. GROUP BY hz.ICYDID) fw
  5455. LEFT JOIN (SELECT icydid,
  5456. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  5457. WHERE icydid = a.icydid) AS cbz
  5458. FROM TBluey a
  5459. GROUP BY icydid) bz
  5460. ON bz.icydid = fw.iCYDID) tb_out
  5461. ON ord.icydid = tb_out.iCydid
  5462. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  5463. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  5464. iCydid,
  5465. CASE
  5466. WHEN ldz = 1 THEN 1
  5467. ELSE 0
  5468. END ldz
  5469. FROM TJob
  5470. WHERE lzfbs = 0
  5471. GROUP BY iCydid,
  5472. nclje,
  5473. itax,
  5474. ldz) tj
  5475. ON ord.ICYDID = tj.iCydid
  5476. WHERE ord.ICYDSTATE > 0
  5477. AND 1 = 1) zb1
  5478. WHERE CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) >= '{$januaryFirst}'
  5479. AND CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) <= '{$today}'
  5480. GROUP BY zb1.业务单位) hb
  5481. ON hb.业务单位 = dq.业务单位)UNION(SELECT 1 AS flag,
  5482. IFNULL(dq.业务单位, hb.业务单位) 客户,
  5483. IFNULL(dq.销售收入, 000) 销售收入,
  5484. IFNULL(hb.上年销售收入, 0.000) 上年销售收入,
  5485. IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000) 销售收入增减,
  5486. CASE
  5487. WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
  5488. WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
  5489. AND IFNULL(dq.销售收入, 000) > 0 THEN 1
  5490. ELSE 0
  5491. END AS 销售收入同期比,
  5492. IFNULL(dq.销售工价, 000) 销售工价,
  5493. IFNULL(hb.上年销售工价, 0.000) 上年销售工价,
  5494. IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000) 销售工价增减,
  5495. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  5496. IFNULL(hb.上年考核计算毛利, 0.000) 上年考核计算毛利,
  5497. IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
  5498. CASE
  5499. WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
  5500. WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
  5501. AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
  5502. ELSE 0
  5503. END AS 毛利同期比
  5504. FROM (SELECT zb.业务单位 业务单位,
  5505. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  5506. IFNULL(Sum(zb.合并工价), 0.000) 销售工价,
  5507. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
  5508. FROM (SELECT CASE
  5509. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  5510. ELSE '否'
  5511. END 登账,
  5512. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  5513. CCYDH AS 订单号,
  5514. CYJMC AS 印件名称,
  5515. CASE
  5516. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  5517. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  5518. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  5519. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  5520. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  5521. OR CYWDWMC='浙江省新华书店集团有限公司'
  5522. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  5523. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  5524. WHEN CYWDWMC='浙江日报报业集团'
  5525. OR CYWDWMC='共产党员杂志社'
  5526. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  5527. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  5528. OR CYWDWMC='浙江出版传媒有限公司'
  5529. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  5530. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  5531. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  5532. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  5533. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  5534. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  5535. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  5536. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  5537. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  5538. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  5539. WHEN CYWDWMC='上海人民出版社有限公司'
  5540. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  5541. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  5542. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  5543. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  5544. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  5545. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  5546. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  5547. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  5548. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  5549. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  5550. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  5551. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  5552. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  5553. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  5554. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  5555. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  5556. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  5557. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  5558. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  5559. ELSE CYWDWMC
  5560. END AS 业务单位,
  5561. cyjlx 印件类型,
  5562. NCS AS 印数,
  5563. CZWKB AS 开本,
  5564. CDF AS 订法,
  5565. NZWYZ AS 正文印张,
  5566. CASE
  5567. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  5568. ELSE
  5569. CASE
  5570. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5571. + CASE
  5572. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5573. ELSE ( CASE
  5574. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5575. ELSE ( CASE
  5576. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5577. ELSE IFNULL(tj.sum_clje, 0)
  5578. END )
  5579. END )
  5580. END = 0
  5581. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5582. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5583. + CASE
  5584. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5585. ELSE ( CASE
  5586. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5587. ELSE ( CASE
  5588. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5589. ELSE IFNULL(tj.sum_clje, 0)
  5590. END )
  5591. END )
  5592. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5593. END
  5594. END AS 考核计算毛利不含税,
  5595. CASE
  5596. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  5597. ELSE
  5598. CASE
  5599. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5600. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5601. 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)
  5602. END
  5603. END AS 考核计算工价毛利不含税,
  5604. ( CASE
  5605. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  5606. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  5607. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5608. ELSE ( CASE
  5609. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5610. ELSE ( CASE
  5611. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5612. ELSE IFNULL(tj.sum_clje, 0)
  5613. END )
  5614. END )
  5615. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  5616. END ) AS 考核计算料价毛利不含税,
  5617. CASE
  5618. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  5619. ELSE ( IFNULL(tj.sum_namount, 0) )
  5620. END 合并金额,
  5621. CASE
  5622. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  5623. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  5624. END 合并工价,
  5625. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  5626. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  5627. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  5628. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  5629. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  5630. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  5631. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  5632. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  5633. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  5634. ord.nzkl AS 折扣率,
  5635. CASE
  5636. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5637. ELSE ( CASE
  5638. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5639. + CASE
  5640. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5641. ELSE ( CASE
  5642. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5643. ELSE ( CASE
  5644. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5645. ELSE IFNULL(tj.sum_clje, 0)
  5646. END )
  5647. END )
  5648. END = 0
  5649. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5650. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5651. + CASE
  5652. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5653. ELSE ( CASE
  5654. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5655. ELSE ( CASE
  5656. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5657. ELSE IFNULL(tj.sum_clje, 0)
  5658. END )
  5659. END )
  5660. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5661. END )
  5662. END AS 生产毛利不含税,
  5663. CASE
  5664. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5665. ELSE ( CASE
  5666. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5667. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5668. 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)
  5669. END )
  5670. END AS 生产工价毛利不含税,
  5671. IFNULL(tj.sum_clje, 0) - ( CASE
  5672. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5673. ELSE ( CASE
  5674. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5675. ELSE ( CASE
  5676. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5677. ELSE IFNULL(tj.sum_clje, 0)
  5678. END )
  5679. END )
  5680. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  5681. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  5682. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  5683. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  5684. IFNULL(tb_in.sum_ngjje_in, 0)
  5685. + CASE
  5686. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5687. ELSE ( CASE
  5688. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5689. ELSE ( CASE
  5690. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5691. ELSE IFNULL(tj.sum_clje, 0)
  5692. END )
  5693. END )
  5694. END AS 厂内传票合计不含税,
  5695. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  5696. CASE
  5697. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5698. ELSE ( CASE
  5699. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5700. ELSE ( CASE
  5701. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5702. ELSE IFNULL(tj.sum_clje, 0)
  5703. END )
  5704. END )
  5705. END AS 厂内传票料价不含税,
  5706. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  5707. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  5708. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  5709. CHY AS 活源,
  5710. CCLBMMC AS 承揽部门,
  5711. CYWYXM AS 业务员,
  5712. lwcbs AS 是否完工,
  5713. Dwcrq AS 完工日期,
  5714. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  5715. LJQBS AS 是否结清,
  5716. djqrq AS 结清日期,
  5717. izlconfirm AS 是否销货,
  5718. dzlconfirmrq AS 销货日期,
  5719. nzlconfirmje AS 销货金额,
  5720. nzlysje AS 销货应收,
  5721. IFNULL(ipaytime, 0) AS 帐龄,
  5722. ( CASE
  5723. WHEN ljqbs = 0
  5724. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  5725. ELSE 0
  5726. END ) AS 付款周期,
  5727. ( CASE
  5728. WHEN ljqbs = 0
  5729. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  5730. ELSE 0
  5731. END ) AS 过期天数,
  5732. ( CASE
  5733. WHEN bsfsk = 1 THEN 1
  5734. ELSE 0
  5735. END ) AS 是否收款,
  5736. nysje AS 预收款,
  5737. fskje AS 收款金额,
  5738. ( CASE
  5739. WHEN bsfdjfp = 1 THEN 1
  5740. ELSE 0
  5741. END ) AS '是否开票',
  5742. ffpje AS 发票金额,
  5743. cfph AS 发票号,
  5744. cfprq AS 发票日期,
  5745. ( CASE
  5746. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  5747. ELSE 0
  5748. END ) AS 未开完票金额,
  5749. ( CASE
  5750. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  5751. ELSE 0
  5752. END ) AS 发票未收款金额,
  5753. iselforder AS 是否异常,
  5754. cselftype AS 异常类型,
  5755. CASE
  5756. WHEN bsfdjfp = 1 THEN ( CASE
  5757. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  5758. ELSE 0
  5759. END )
  5760. ELSE ( CASE
  5761. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  5762. ELSE ( CASE
  5763. WHEN nzlconfirmje = 0 THEN nhjje
  5764. ELSE nzlconfirmje
  5765. END )
  5766. END )
  5767. END 未开票
  5768. FROM MCYD Ord
  5769. LEFT JOIN (SELECT Sum(CASE
  5770. WHEN hz.dz = 1 THEN hz.nhjje
  5771. ELSE hz.传票预计价
  5772. END) AS sum_nhjje_in,
  5773. Sum(CASE
  5774. WHEN hz.dz = 1 THEN hz.nhjje
  5775. ELSE hz.传票预计价
  5776. END) AS sum_ngjje_in,
  5777. Sum(CASE
  5778. WHEN hz.dz = 1 THEN hz.nclje
  5779. ELSE hz.nclje
  5780. END) AS sum_nclje_in,
  5781. hz.ICYDID
  5782. FROM (SELECT yjj.传票预计价单号,
  5783. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5784. yjj.iCYDID,
  5785. d.cjjdh 计价单号,
  5786. d.ccydh 订单号,
  5787. d.cbz 备注,
  5788. d.ngjje,
  5789. d.nclje,
  5790. IFNULL(d.iwjg, 0) iwjg,
  5791. IFNULL(d.lzfbs, 0) lzfbs,
  5792. d.nhjje,
  5793. IFNULL(d.ldz, 0) dz,
  5794. yjj.bShbz
  5795. FROM (SELECT b.csccpbh 传票预计价单号,
  5796. a.ccydh,
  5797. a.icydid,
  5798. Sum(c.fje) 传票预计价,
  5799. b.bshbz
  5800. FROM MCYD a
  5801. LEFT JOIN sccp b
  5802. ON a.icydid = b.icydid
  5803. LEFT JOIN ZbHjXm c
  5804. ON c.sccpid = b.sccpid
  5805. WHERE b.bOutProcess = '0 '
  5806. GROUP BY b.csccpbh,
  5807. a.icydid,
  5808. a.CCYDH,
  5809. b.bshbz,
  5810. b.bOutProcess) yjj
  5811. LEFT JOIN tbluey d
  5812. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5813. WHERE hz.iwjg = 0
  5814. AND hz.bshbz = 1
  5815. AND hz.lzfbs = 0
  5816. GROUP BY hz.ICYDID) tb_in
  5817. ON ord.icydid = tb_in.iCydid
  5818. LEFT JOIN (SELECT fw.iCYDID,
  5819. sum_nhjje_out,
  5820. sum_ngjje_out,
  5821. sum_nclje_out,
  5822. bz.cbz
  5823. FROM (SELECT Cast(Sum(( CASE
  5824. WHEN hz.dz = 0 THEN hz.传票预计价
  5825. ELSE hz.nhjje
  5826. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  5827. Cast(Sum(( CASE
  5828. WHEN hz.dz = 0 THEN hz.传票预计价
  5829. ELSE hz.nhjje
  5830. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  5831. Cast(Sum(CASE
  5832. WHEN hz.dz = 0 THEN hz.nclje
  5833. ELSE hz.nclje
  5834. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  5835. iCydid
  5836. FROM (SELECT yjj.传票预计价单号,
  5837. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5838. yjj.iCYDID,
  5839. d.cjjdh 计价单号,
  5840. d.ccydh 订单号,
  5841. d.cbz 备注,
  5842. d.ngjje,
  5843. d.nclje,
  5844. d.itax,
  5845. IFNULL(d.iwjg, 0) iwjg,
  5846. IFNULL(d.lzfbs, 0) lzfbs,
  5847. d.nhjje,
  5848. IFNULL(d.ldz, 0) dz,
  5849. yjj.bShbz
  5850. FROM (SELECT b.csccpbh 传票预计价单号,
  5851. a.ccydh,
  5852. a.icydid,
  5853. Sum(c.fje) 传票预计价,
  5854. b.bshbz
  5855. FROM MCYD a
  5856. LEFT JOIN sccp b
  5857. ON a.icydid = b.icydid
  5858. LEFT JOIN ZbHjXm c
  5859. ON c.sccpid = b.sccpid
  5860. WHERE b.bOutProcess = '1 '
  5861. GROUP BY b.csccpbh,
  5862. a.icydid,
  5863. a.CCYDH,
  5864. b.bshbz,
  5865. b.bOutProcess) yjj
  5866. LEFT JOIN tbluey d
  5867. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5868. WHERE hz.iwjg = 1
  5869. AND hz.lzfbs = 0
  5870. GROUP BY hz.ICYDID) fw
  5871. LEFT JOIN (SELECT icydid,
  5872. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  5873. WHERE icydid = a.icydid) AS cbz
  5874. FROM TBluey a
  5875. GROUP BY icydid) bz
  5876. ON bz.icydid = fw.iCYDID) tb_out
  5877. ON ord.icydid = tb_out.iCydid
  5878. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  5879. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  5880. iCydid,
  5881. CASE
  5882. WHEN ldz = 1 THEN 1
  5883. ELSE 0
  5884. END ldz
  5885. FROM TJob
  5886. WHERE lzfbs = 0
  5887. GROUP BY iCydid,
  5888. nclje,
  5889. itax,
  5890. ldz) tj
  5891. ON ord.ICYDID = tj.iCydid
  5892. WHERE ord.ICYDSTATE > 0
  5893. AND 1 = 1) zb
  5894. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
  5895. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  5896. GROUP BY zb.业务单位) dq
  5897. RIGHT JOIN (SELECT zb1.业务单位,
  5898. Sum(zb1.合并金额) 上年销售收入,
  5899. Sum(zb1.合并工价) 上年销售工价,
  5900. Sum(zb1.考核计算毛利不含税)上年考核计算毛利
  5901. FROM (SELECT CASE
  5902. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  5903. ELSE '否'
  5904. END 登账,
  5905. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  5906. CCYDH AS 订单号,
  5907. CYJMC AS 印件名称,
  5908. CASE
  5909. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  5910. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  5911. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  5912. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  5913. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  5914. OR CYWDWMC='浙江省新华书店集团有限公司'
  5915. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  5916. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  5917. WHEN CYWDWMC='浙江日报报业集团'
  5918. OR CYWDWMC='共产党员杂志社'
  5919. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  5920. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  5921. OR CYWDWMC='浙江出版传媒有限公司'
  5922. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  5923. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  5924. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  5925. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  5926. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  5927. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  5928. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  5929. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  5930. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  5931. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  5932. WHEN CYWDWMC='上海人民出版社有限公司'
  5933. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  5934. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  5935. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  5936. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  5937. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  5938. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  5939. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  5940. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  5941. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  5942. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  5943. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  5944. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  5945. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  5946. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  5947. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  5948. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  5949. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  5950. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  5951. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  5952. ELSE CYWDWMC
  5953. END AS 业务单位,
  5954. cyjlx 印件类型,
  5955. NCS AS 印数,
  5956. CZWKB AS 开本,
  5957. CDF AS 订法,
  5958. NZWYZ AS 正文印张,
  5959. cbz 发外备注,
  5960. CASE
  5961. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  5962. ELSE
  5963. CASE
  5964. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5965. + CASE
  5966. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5967. ELSE ( CASE
  5968. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5969. ELSE ( CASE
  5970. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5971. ELSE IFNULL(tj.sum_clje, 0)
  5972. END )
  5973. END )
  5974. END = 0
  5975. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5976. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5977. + CASE
  5978. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5979. ELSE ( CASE
  5980. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5981. ELSE ( CASE
  5982. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5983. ELSE IFNULL(tj.sum_clje, 0)
  5984. END )
  5985. END )
  5986. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5987. END
  5988. END AS 考核计算毛利不含税,
  5989. CASE
  5990. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  5991. ELSE
  5992. CASE
  5993. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5994. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5995. 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)
  5996. END
  5997. END AS 考核计算工价毛利不含税,
  5998. ( CASE
  5999. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  6000. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  6001. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6002. ELSE ( CASE
  6003. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6004. ELSE ( CASE
  6005. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6006. ELSE IFNULL(tj.sum_clje, 0)
  6007. END )
  6008. END )
  6009. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  6010. END ) AS 考核计算料价毛利不含税,
  6011. CASE
  6012. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  6013. ELSE ( IFNULL(tj.sum_namount, 0) )
  6014. END 合并金额,
  6015. CASE
  6016. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  6017. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  6018. END 合并工价,
  6019. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  6020. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  6021. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  6022. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  6023. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  6024. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  6025. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  6026. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  6027. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  6028. ord.nzkl AS 折扣率,
  6029. CASE
  6030. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  6031. ELSE ( CASE
  6032. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  6033. + CASE
  6034. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6035. ELSE ( CASE
  6036. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6037. ELSE ( CASE
  6038. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6039. ELSE IFNULL(tj.sum_clje, 0)
  6040. END )
  6041. END )
  6042. END = 0
  6043. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  6044. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  6045. + CASE
  6046. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6047. ELSE ( CASE
  6048. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6049. ELSE ( CASE
  6050. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6051. ELSE IFNULL(tj.sum_clje, 0)
  6052. END )
  6053. END )
  6054. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  6055. END )
  6056. END AS 生产毛利不含税,
  6057. CASE
  6058. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  6059. ELSE ( CASE
  6060. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  6061. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  6062. 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)
  6063. END )
  6064. END AS 生产工价毛利不含税,
  6065. IFNULL(tj.sum_clje, 0) - ( CASE
  6066. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6067. ELSE ( CASE
  6068. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6069. ELSE ( CASE
  6070. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6071. ELSE IFNULL(tj.sum_clje, 0)
  6072. END )
  6073. END )
  6074. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  6075. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  6076. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  6077. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  6078. IFNULL(tb_in.sum_ngjje_in, 0)
  6079. + CASE
  6080. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6081. ELSE ( CASE
  6082. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6083. ELSE ( CASE
  6084. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6085. ELSE IFNULL(tj.sum_clje, 0)
  6086. END )
  6087. END )
  6088. END AS 厂内传票合计不含税,
  6089. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  6090. CASE
  6091. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6092. ELSE ( CASE
  6093. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6094. ELSE ( CASE
  6095. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6096. ELSE IFNULL(tj.sum_clje, 0)
  6097. END )
  6098. END )
  6099. END AS 厂内传票料价不含税,
  6100. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  6101. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  6102. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  6103. CHY AS 活源,
  6104. CCLBMMC AS 承揽部门,
  6105. CYWYXM AS 业务员,
  6106. lwcbs AS 是否完工,
  6107. Dwcrq AS 完工日期,
  6108. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  6109. LJQBS AS 是否结清,
  6110. djqrq AS 结清日期,
  6111. izlconfirm AS 是否销货,
  6112. dzlconfirmrq AS 销货日期,
  6113. nzlconfirmje AS 销货金额,
  6114. nzlysje AS 销货应收,
  6115. IFNULL(ipaytime, 0) AS 帐龄,
  6116. ( CASE
  6117. WHEN ljqbs = 0
  6118. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  6119. ELSE 0
  6120. END ) AS 付款周期,
  6121. ( CASE
  6122. WHEN ljqbs = 0
  6123. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  6124. ELSE 0
  6125. END ) AS 过期天数,
  6126. ( CASE
  6127. WHEN bsfsk = 1 THEN 1
  6128. ELSE 0
  6129. END ) AS 是否收款,
  6130. nysje AS 预收款,
  6131. fskje AS 收款金额,
  6132. ( CASE
  6133. WHEN bsfdjfp = 1 THEN 1
  6134. ELSE 0
  6135. END ) AS '是否开票',
  6136. ffpje AS 发票金额,
  6137. cfph AS 发票号,
  6138. cfprq AS 发票日期,
  6139. ( CASE
  6140. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  6141. ELSE 0
  6142. END ) AS 未开完票金额,
  6143. ( CASE
  6144. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  6145. ELSE 0
  6146. END ) AS 发票未收款金额,
  6147. iselforder AS 是否异常,
  6148. cselftype AS 异常类型,
  6149. CASE
  6150. WHEN bsfdjfp = 1 THEN ( CASE
  6151. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  6152. ELSE 0
  6153. END )
  6154. ELSE ( CASE
  6155. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  6156. ELSE ( CASE
  6157. WHEN nzlconfirmje = 0 THEN nhjje
  6158. ELSE nzlconfirmje
  6159. END )
  6160. END )
  6161. END 未开票
  6162. FROM MCYD Ord
  6163. LEFT JOIN (SELECT ICYDID,
  6164. Max(Nsc) AS Nsc
  6165. FROM SCYDDX
  6166. WHERE IDXLXID = 573
  6167. GROUP BY ICYDID) AS Obj
  6168. ON ord.ICYDID = Obj.ICYDID
  6169. LEFT JOIN (SELECT ICYDID,
  6170. Sum(NYSLS) AS nysls,
  6171. Sum(nyssl) AS nyssl,
  6172. Sum(nsyl) AS nsyl
  6173. FROM SCYDDX
  6174. GROUP BY ICYDID) AS ObjMatier
  6175. ON Ord.ICYDID = ObjMatier.ICYDID
  6176. LEFT JOIN (SELECT Sum(CASE
  6177. WHEN hz.dz = 1 THEN hz.nhjje
  6178. ELSE hz.传票预计价
  6179. END) AS sum_nhjje_in,
  6180. Sum(CASE
  6181. WHEN hz.dz = 1 THEN hz.nhjje
  6182. ELSE hz.传票预计价
  6183. END) AS sum_ngjje_in,
  6184. Sum(CASE
  6185. WHEN hz.dz = 1 THEN hz.nclje
  6186. ELSE hz.nclje
  6187. END) AS sum_nclje_in,
  6188. hz.ICYDID
  6189. FROM (SELECT yjj.传票预计价单号,
  6190. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  6191. yjj.iCYDID,
  6192. d.cjjdh 计价单号,
  6193. d.ccydh 订单号,
  6194. d.cbz 备注,
  6195. d.ngjje,
  6196. d.nclje,
  6197. IFNULL(d.iwjg, 0) iwjg,
  6198. IFNULL(d.lzfbs, 0) lzfbs,
  6199. d.nhjje,
  6200. IFNULL(d.ldz, 0) dz,
  6201. yjj.bShbz
  6202. FROM (SELECT b.csccpbh 传票预计价单号,
  6203. a.ccydh,
  6204. a.icydid,
  6205. Sum(c.fje) 传票预计价,
  6206. b.bshbz
  6207. FROM MCYD a
  6208. LEFT JOIN sccp b
  6209. ON a.icydid = b.icydid
  6210. LEFT JOIN ZbHjXm c
  6211. ON c.sccpid = b.sccpid
  6212. WHERE b.bOutProcess = '0 '
  6213. GROUP BY b.csccpbh,
  6214. a.icydid,
  6215. a.CCYDH,
  6216. b.bshbz,
  6217. b.bOutProcess) yjj
  6218. LEFT JOIN tbluey d
  6219. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  6220. WHERE hz.iwjg = 0
  6221. AND hz.bshbz = 1
  6222. AND hz.lzfbs = 0
  6223. GROUP BY hz.ICYDID) tb_in
  6224. ON ord.icydid = tb_in.iCydid
  6225. LEFT JOIN (SELECT fw.iCYDID,
  6226. sum_nhjje_out,
  6227. sum_ngjje_out,
  6228. sum_nclje_out,
  6229. bz.cbz
  6230. FROM (SELECT Cast(Sum(( CASE
  6231. WHEN hz.dz = 0 THEN hz.传票预计价
  6232. ELSE hz.nhjje
  6233. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  6234. Cast(Sum(( CASE
  6235. WHEN hz.dz = 0 THEN hz.传票预计价
  6236. ELSE hz.nhjje
  6237. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  6238. Cast(Sum(CASE
  6239. WHEN hz.dz = 0 THEN hz.nclje
  6240. ELSE hz.nclje
  6241. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  6242. iCydid
  6243. FROM (SELECT yjj.传票预计价单号,
  6244. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  6245. yjj.iCYDID,
  6246. d.cjjdh 计价单号,
  6247. d.ccydh 订单号,
  6248. d.cbz 备注,
  6249. d.ngjje,
  6250. d.nclje,
  6251. d.itax,
  6252. IFNULL(d.iwjg, 0) iwjg,
  6253. IFNULL(d.lzfbs, 0) lzfbs,
  6254. d.nhjje,
  6255. IFNULL(d.ldz, 0) dz,
  6256. yjj.bShbz
  6257. FROM (SELECT b.csccpbh 传票预计价单号,
  6258. a.ccydh,
  6259. a.icydid,
  6260. Sum(c.fje) 传票预计价,
  6261. b.bshbz
  6262. FROM MCYD a
  6263. LEFT JOIN sccp b
  6264. ON a.icydid = b.icydid
  6265. LEFT JOIN ZbHjXm c
  6266. ON c.sccpid = b.sccpid
  6267. WHERE b.bOutProcess = '1 '
  6268. GROUP BY b.csccpbh,
  6269. a.icydid,
  6270. a.CCYDH,
  6271. b.bshbz,
  6272. b.bOutProcess) yjj
  6273. LEFT JOIN tbluey d
  6274. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  6275. WHERE hz.iwjg = 1
  6276. AND hz.lzfbs = 0
  6277. GROUP BY hz.ICYDID) fw
  6278. LEFT JOIN (SELECT icydid,
  6279. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  6280. WHERE icydid = a.icydid) AS cbz
  6281. FROM TBluey a
  6282. GROUP BY icydid) bz
  6283. ON bz.icydid = fw.iCYDID) tb_out
  6284. ON ord.icydid = tb_out.iCydid
  6285. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  6286. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  6287. iCydid,
  6288. CASE
  6289. WHEN ldz = 1 THEN 1
  6290. ELSE 0
  6291. END ldz
  6292. FROM TJob
  6293. WHERE lzfbs = 0
  6294. GROUP BY iCydid,
  6295. nclje,
  6296. itax,
  6297. ldz) tj
  6298. ON ord.ICYDID = tj.iCydid
  6299. WHERE ord.ICYDSTATE > 0
  6300. AND 1 = 1) zb1
  6301. WHERE CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) >= '{$januaryFirst}'
  6302. AND CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) <= '{$today}'
  6303. GROUP BY zb1.业务单位) hb
  6304. ON hb.业务单位 = dq.业务单位))a) aa
  6305. )bb
  6306. ORDER BY bb.销售收入(万元) desc
  6307. ";
  6308. // WHERE bb.销售收入(万元)>200
  6309. $result=Db::query($sql);
  6310. if ($result) {
  6311. $redis->set($redis_key, json_encode($result));
  6312. echo date("Y-m-d H:i:s").' 存进去了';
  6313. return $result;
  6314. }
  6315. }
  6316. //年度考核销售收入同比上升和下滑一览表->接口
  6317. public function year_sale() {
  6318. $redis = redis();
  6319. $result = json_decode($redis->get(md5('year_dclandsx_redis')), true);
  6320. // 排除销售收入增长率为负100的值
  6321. $result = array_filter($result, function ($item) {
  6322. return $item['销售收入增长率'] != -100;
  6323. });
  6324. // $result = array_filter($result, function ($item) {
  6325. // return $item['销售收入增长率'] != '/';
  6326. // });
  6327. // $result = array_filter($result, function ($item) {
  6328. // return $item['销售收入增长率'] != '0.00';
  6329. // });
  6330. //排序
  6331. usort($result, function ($a, $b) {
  6332. $a_value = $a['销售收入(万元)'];
  6333. $b_value = $b['销售收入(万元)'];
  6334. return $b_value <=> $a_value; // 按照销售收入降序排序
  6335. });
  6336. // 获取数据列定义
  6337. $list['columns'] = [
  6338. ['name' => '客户名称', 'id' => 'khmc', 'width' => '55', 'autoWrap' => "true", 'textAlign' => 'left'],
  6339. ['name' => '销售金额(万元)', 'id' => 'xsje', 'width' => '24', 'autoWrap' => "true", 'textAlign' => 'left'],
  6340. ['name' => '同比增长率', 'id' => 'zzl', 'width' => '18', 'autoWrap' => "true", 'textAlign' => 'left']
  6341. ];
  6342. // 截取前几客户
  6343. $top_clients = array_slice($result, 0, 6);
  6344. // 截取后几客户
  6345. $bottom_clients = array_slice($result, -6);
  6346. // 合并前四个和后三个客户
  6347. $merged_clients = array_merge($top_clients, $bottom_clients);
  6348. // 填充行数据
  6349. foreach ($merged_clients as $v) {
  6350. $list['rows'][] = [
  6351. 'khmc' => $v['客户'],
  6352. 'xsje' => $v['销售收入(万元)'],
  6353. 'zzl' => $v['销售收入增长率'],
  6354. ];
  6355. }
  6356. $res['status'] = 0;
  6357. $res['msg'] = '';
  6358. $res['data'] = $list;
  6359. return json($res);
  6360. }
  6361. //图书板块大客户分析列表->缓存
  6362. public function customer_analysis_redis(){
  6363. $redis = redis();
  6364. $redis_key = md5('customer_analysis_redis');
  6365. $today = date("Y-m-d");
  6366. $qtoday = date("Y-m-d", strtotime("-1 year"));
  6367. $sql = "SELECT hz.客户,
  6368. hz.销售得分 + hz.毛利得分 + hz.单均金额得分 + hz.库存数得分 + hz.投诉次数得分 AS 总分,
  6369. hz.销售收入(万元),
  6370. hz.销售排名,
  6371. hz.销售得分,
  6372. hz.考核计算毛利(万元),
  6373. hz.毛利排名,
  6374. hz.毛利得分,
  6375. hz.单均金额(万元),
  6376. hz.单均金额排名,
  6377. hz.单均金额得分,
  6378. hz.库存数,
  6379. hz.库存数排名,
  6380. hz.库存数得分,
  6381. hz.投诉次数,
  6382. hz.投诉次数排名,
  6383. hz.投诉次数得分
  6384. FROM (SELECT *,
  6385. Row_number()
  6386. OVER (
  6387. ORDER BY tb.销售收入(万元) DESC) AS 销售排名,
  6388. CASE
  6389. WHEN Row_number()
  6390. OVER (
  6391. ORDER BY tb.销售收入(万元) DESC) <= 30 THEN 30 - Row_number()
  6392. OVER (
  6393. ORDER BY tb.销售收入(万元) DESC) + 1
  6394. ELSE 0
  6395. END AS 销售得分,
  6396. Row_number()
  6397. OVER (
  6398. ORDER BY tb.考核计算毛利(万元) DESC) AS 毛利排名,
  6399. CASE
  6400. WHEN Row_number()
  6401. OVER (
  6402. ORDER BY tb.考核计算毛利(万元) DESC) <= 25 THEN 25 - Row_number()
  6403. OVER (
  6404. ORDER BY tb.考核计算毛利(万元) DESC) + 1
  6405. ELSE 0
  6406. END AS 毛利得分,
  6407. Row_number()
  6408. OVER (
  6409. ORDER BY tb.单均金额(万元) DESC) AS 单均金额排名,
  6410. CASE
  6411. WHEN Row_number()
  6412. OVER (
  6413. ORDER BY tb.单均金额(万元) DESC) <= 15 THEN 15 - Row_number()
  6414. OVER (
  6415. ORDER BY tb.单均金额(万元) DESC) + 1
  6416. ELSE 0
  6417. END AS 单均金额得分,
  6418. Dense_rank()
  6419. OVER (
  6420. ORDER BY tb.库存数 ) AS 库存数排名,
  6421. CASE
  6422. WHEN Dense_rank()
  6423. OVER (
  6424. ORDER BY tb.库存数 ) <= 15 THEN 15 - Dense_rank()
  6425. OVER (
  6426. ORDER BY tb.库存数 ) + 1
  6427. ELSE 0
  6428. END AS 库存数得分,
  6429. Dense_rank()
  6430. OVER (
  6431. ORDER BY tb.投诉次数 ) AS 投诉次数排名,
  6432. CASE
  6433. WHEN Dense_rank()
  6434. OVER (
  6435. ORDER BY tb.投诉次数 ) <= 15 THEN 15 - Dense_rank()
  6436. OVER (
  6437. ORDER BY tb.投诉次数 ) + 1
  6438. ELSE 0
  6439. END AS 投诉次数得分
  6440. FROM (SELECT aa.客户,
  6441. aa.销售收入(万元),
  6442. aa.考核计算毛利(万元),
  6443. Cast(aa.销售收入(万元) / aa.订单数 AS DECIMAL(5, 2)) '单均金额(万元)',
  6444. IFNULL(Cast(aa.库存数 AS SIGNED), 0) 库存数,
  6445. IFNULL(bb.投诉次数, 0) 投诉次数
  6446. FROM (SELECT a.客户,
  6447. CONVERT(Round(a.销售收入 / 10000, 2),DECIMAL(10, 2)) AS '销售收入(万元)',
  6448. CONVERT(Round(a.考核计算毛利 / 10000, 2),DECIMAL(10, 2)) AS '考核计算毛利(万元)',
  6449. a.订单数,
  6450. a.库存数
  6451. FROM (SELECT dq.业务单位 客户,
  6452. IFNULL(dq.销售收入, 000) 销售收入,
  6453. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  6454. dq.订单数,
  6455. dq.库存数
  6456. FROM (SELECT zb.业务单位 业务单位,
  6457. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  6458. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利,
  6459. Count(DISTINCT zb.订单号) 订单数,
  6460. Sum(zb.nAmount) 库存数
  6461. FROM (SELECT CASE
  6462. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  6463. ELSE '否'
  6464. END 登账,
  6465. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  6466. CCYDH AS 订单号,
  6467. ord.IFCYDID,
  6468. CYJMC AS 印件名称,
  6469. (CASE
  6470. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  6471. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  6472. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  6473. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  6474. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  6475. OR CYWDWMC='浙江省新华书店集团有限公司'
  6476. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  6477. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  6478. WHEN CYWDWMC='浙江日报报业集团'
  6479. OR CYWDWMC='共产党员杂志社'
  6480. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  6481. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  6482. OR CYWDWMC='浙江出版传媒有限公司'
  6483. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  6484. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  6485. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  6486. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  6487. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  6488. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  6489. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  6490. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  6491. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  6492. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  6493. WHEN CYWDWMC='上海人民出版社有限公司'
  6494. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  6495. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  6496. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  6497. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  6498. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  6499. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  6500. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  6501. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  6502. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  6503. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  6504. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  6505. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  6506. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  6507. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  6508. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  6509. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  6510. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  6511. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  6512. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  6513. ELSE CYWDWMC
  6514. END) AS 业务单位,
  6515. cyjlx 印件类型,
  6516. NCS AS 印数,
  6517. CZWKB AS 开本,
  6518. CDF AS 订法,
  6519. NZWYZ AS 正文印张,
  6520. fn.nAmount,
  6521. CASE
  6522. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  6523. ELSE ( IFNULL(tj.sum_namount, 0) )
  6524. END 合并金额,
  6525. CASE
  6526. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  6527. ELSE
  6528. CASE
  6529. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  6530. + CASE
  6531. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6532. ELSE ( CASE
  6533. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6534. ELSE ( CASE
  6535. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6536. ELSE IFNULL(tj.sum_clje, 0)
  6537. END )
  6538. END )
  6539. END = 0
  6540. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  6541. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  6542. + CASE
  6543. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6544. ELSE ( CASE
  6545. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6546. ELSE ( CASE
  6547. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6548. ELSE IFNULL(tj.sum_clje, 0)
  6549. END )
  6550. END )
  6551. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  6552. END
  6553. END AS 考核计算毛利不含税
  6554. FROM MCYD Ord
  6555. LEFT JOIN (SELECT Sum(CASE
  6556. WHEN hz.dz = 1 THEN hz.nhjje
  6557. ELSE hz.传票预计价
  6558. END) AS sum_nhjje_in,
  6559. Sum(CASE
  6560. WHEN hz.dz = 1 THEN hz.nhjje
  6561. ELSE hz.传票预计价
  6562. END) AS sum_ngjje_in,
  6563. Sum(CASE
  6564. WHEN hz.dz = 1 THEN hz.nclje
  6565. ELSE hz.nclje
  6566. END) AS sum_nclje_in,
  6567. hz.ICYDID
  6568. FROM (SELECT yjj.传票预计价单号,
  6569. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  6570. yjj.iCYDID,
  6571. d.cjjdh 计价单号,
  6572. d.ccydh 订单号,
  6573. d.cbz 备注,
  6574. d.ngjje,
  6575. d.nclje,
  6576. IFNULL(d.iwjg, 0) iwjg,
  6577. IFNULL(d.lzfbs, 0) lzfbs,
  6578. d.nhjje,
  6579. IFNULL(d.ldz, 0) dz,
  6580. yjj.bShbz
  6581. FROM (SELECT b.csccpbh 传票预计价单号,
  6582. a.ccydh,
  6583. a.icydid,
  6584. Sum(c.fje) 传票预计价,
  6585. b.bshbz
  6586. FROM MCYD a
  6587. LEFT JOIN sccp b
  6588. ON a.icydid = b.icydid
  6589. LEFT JOIN ZbHjXm c
  6590. ON c.sccpid = b.sccpid
  6591. WHERE b.bOutProcess = '0 '
  6592. GROUP BY b.csccpbh,
  6593. a.icydid,
  6594. a.CCYDH,
  6595. b.bshbz,
  6596. b.bOutProcess) yjj
  6597. LEFT JOIN tbluey d
  6598. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  6599. WHERE hz.iwjg = 0
  6600. AND hz.bshbz = 1
  6601. AND hz.lzfbs = 0
  6602. GROUP BY hz.ICYDID) tb_in
  6603. ON ord.icydid = tb_in.iCydid
  6604. LEFT JOIN (SELECT fw.iCYDID,
  6605. sum_nhjje_out,
  6606. sum_ngjje_out,
  6607. sum_nclje_out,
  6608. bz.cbz
  6609. FROM (SELECT Cast(Sum(( CASE
  6610. WHEN hz.dz = 0 THEN hz.传票预计价
  6611. ELSE hz.nhjje
  6612. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  6613. Cast(Sum(( CASE
  6614. WHEN hz.dz = 0 THEN hz.传票预计价
  6615. ELSE hz.nhjje
  6616. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  6617. Cast(Sum(CASE
  6618. WHEN hz.dz = 0 THEN hz.nclje
  6619. ELSE hz.nclje
  6620. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  6621. iCydid
  6622. FROM (SELECT yjj.传票预计价单号,
  6623. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  6624. yjj.iCYDID,
  6625. d.cjjdh 计价单号,
  6626. d.ccydh 订单号,
  6627. d.cbz 备注,
  6628. d.ngjje,
  6629. d.nclje,
  6630. d.itax,
  6631. IFNULL(d.iwjg, 0) iwjg,
  6632. IFNULL(d.lzfbs, 0) lzfbs,
  6633. d.nhjje,
  6634. IFNULL(d.ldz, 0) dz,
  6635. yjj.bShbz
  6636. FROM (SELECT b.csccpbh 传票预计价单号,
  6637. a.ccydh,
  6638. a.icydid,
  6639. Sum(c.fje) 传票预计价,
  6640. b.bshbz
  6641. FROM MCYD a
  6642. LEFT JOIN sccp b
  6643. ON a.icydid = b.icydid
  6644. LEFT JOIN ZbHjXm c
  6645. ON c.sccpid = b.sccpid
  6646. WHERE b.bOutProcess = '1 '
  6647. GROUP BY b.csccpbh,
  6648. a.icydid,
  6649. a.CCYDH,
  6650. b.bshbz,
  6651. b.bOutProcess) yjj
  6652. LEFT JOIN tbluey d
  6653. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  6654. WHERE hz.iwjg = 1
  6655. AND hz.lzfbs = 0
  6656. GROUP BY hz.ICYDID) fw
  6657. LEFT JOIN (SELECT icydid,
  6658. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  6659. WHERE icydid = a.icydid) AS cbz
  6660. FROM TBluey a
  6661. GROUP BY icydid) bz
  6662. ON bz.icydid = fw.iCYDID) tb_out
  6663. ON ord.icydid = tb_out.iCydid
  6664. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  6665. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  6666. iCydid,
  6667. CASE
  6668. WHEN ldz = 1 THEN 1
  6669. ELSE 0
  6670. END ldz
  6671. FROM TJob
  6672. WHERE lzfbs = 0
  6673. GROUP BY iCydid,
  6674. nclje,
  6675. itax,
  6676. ldz) tj
  6677. ON ord.ICYDID = tj.iCydid
  6678. LEFT JOIN fnSubstance fn
  6679. ON ord.CCYDH = fn.cBatchCode
  6680. WHERE ord.ICYDSTATE > 0
  6681. AND ( ord.CYJLX NOT LIKE '%课本'
  6682. OR ord.CYJLX NOT LIKE '%教辅' )/*销售收入、考核计算毛利、订单数、品种数、库存数据排除其教材教辅*/
  6683. ) zb
  6684. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$qtoday}'
  6685. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  6686. GROUP BY zb.业务单位) dq)a) aa
  6687. LEFT JOIN (SELECT D2.cdwmc 客户单位,
  6688. Count(*) AS 投诉次数
  6689. FROM ecComplainFeedback B
  6690. LEFT JOIN (SELECT d1.iywdwid,
  6691. CASE
  6692. WHEN d1.cdwmc = '浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  6693. WHEN d1.cdwmc = '中国茶叶杂志社'THEN'中国农业科学院茶叶研究所'
  6694. WHEN d1.cdwmc = '中国青年出版社' THEN '中国青年出版总社有限公司'
  6695. WHEN d1.cdwmc = '中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  6696. WHEN d1.cdwmc = '浙江科学技术出版社有限公司(期刊总社)'
  6697. OR d1.cdwmc = '浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  6698. WHEN d1.cdwmc = '《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  6699. WHEN d1.cdwmc = '《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  6700. WHEN d1.cdwmc = '上海辞书出版社' THEN '上海辞书出版社有限公司'
  6701. WHEN d1.cdwmc = '上海译文出版社' THEN '上海译文出版社有限公司'
  6702. WHEN d1.cdwmc = '安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  6703. WHEN d1.cdwmc = '中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  6704. WHEN d1.cdwmc = '人民出版社有限公司' THEN '人民出版社'
  6705. WHEN d1.cdwmc = '教育科学出版社' THEN '教育科学出版社有限公司'
  6706. WHEN d1.cdwmc = '读者杂志社' THEN '读者出版传媒股份有限公司'
  6707. WHEN d1.cdwmc = '浙江教育报刊社' THEN '浙江教育报刊总社'
  6708. WHEN d1.cdwmc = '复旦大学出版社' THEN '复旦大学出版社有限公司'
  6709. WHEN d1.cdwmc = '中等职业教育杂志社有限公司'
  6710. OR d1.cdwmc = '浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  6711. WHEN d1.cdwmc = '上海人民出版社有限公司'
  6712. OR d1.cdwmc = '上海人民出版社' THEN '上海人民出版社有限责任公司'
  6713. WHEN d1.cdwmc = '大星(上海)文化传媒有限公司(上海文艺)'
  6714. OR d1.cdwmc = '大星(上海)文化传媒有限公司(浙江文艺)'
  6715. OR d1.cdwmc = '大星(上海)文化传媒有限公司(河南文艺)'
  6716. OR d1.cdwmc = '大星(上海)文化传媒有限公司(上海书店)'
  6717. OR d1.cdwmc = '大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  6718. WHEN d1.cdwmc = '上海古籍出版社' THEN '上海古籍出版社有限公司'
  6719. WHEN d1.cdwmc = '中信出版集团股份有限公司(上海三辉)'
  6720. OR d1.cdwmc = '中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  6721. WHEN d1.cdwmc = '浙江日报报业集团'
  6722. OR d1.cdwmc = '《浙江共产党员》杂志有限公司'
  6723. OR d1.cdwmc = '共产党员杂志社' THEN '浙江日报报业集团(含共产党员)'
  6724. WHEN d1.cdwmc = '浙江出版传媒股份有限公司'
  6725. OR d1.cdwmc = '浙江出版传媒有限公司'
  6726. OR d1.cdwmc = '浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  6727. WHEN d1.cdwmc = '浙江教育出版社有限公司(省店)'
  6728. OR d1.cdwmc = '浙江省新华书店集团有限公司(教育)'
  6729. OR d1.cdwmc = '浙江省新华书店集团有限公司(少儿)'
  6730. OR d1.cdwmc = '浙江少年儿童出版社有限公司(省店)'
  6731. OR d1.cdwmc = '浙江省新华书店集团有限公司'
  6732. OR d1.cdwmc = '浙江教育出版社集团有限公司(省店)'
  6733. OR d1.cdwmc = '浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  6734. WHEN d1.cdwmc = '浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  6735. ELSE d1.cdwmc
  6736. END AS cdwmc
  6737. FROM DZYWDW d1)D2
  6738. ON D2.iywdwid = B.iClientID
  6739. LEFT JOIN MCYD M
  6740. ON M.CCYDH = B.cOrderBillCode
  6741. INNER JOIN qlOrderProduct p
  6742. ON M.ICYDID = p.ID_Mcyd
  6743. LEFT JOIN (SELECT a.ID_qlOrderProduct,
  6744. Sum(a.iAmountOut) iAmount_Out
  6745. FROM SCYDYSQX a
  6746. GROUP BY a.ID_qlOrderProduct) c
  6747. ON c.ID_qlOrderProduct = p.ID
  6748. LEFT JOIN ecComplainContent DD
  6749. ON DD.iComplainFBID = B.iID
  6750. LEFT JOIN tbConfig E
  6751. ON E.iNoConfig = DD.iClassID_C
  6752. LEFT JOIN tbConfig T
  6753. ON T.iNoConfig = DD.iClassID_P
  6754. LEFT JOIN (SELECT R.iComplainFBID,
  6755. CR1.cRespDept
  6756. FROM ecComplainReasonAnalysis R
  6757. LEFT JOIN ecComplainResponsibility CR1
  6758. ON CR1.iComplainRAID = R.iID) CR
  6759. ON B.iID = CR.iComplainFBID
  6760. WHERE 1 = 1
  6761. AND ( M.CYJLX NOT LIKE '%课本'
  6762. OR M.CYJLX NOT LIKE '%教辅' ) /*质量问题数据排除教材教辅*/
  6763. AND b.dFeedbackDate >= '{$qtoday}'
  6764. AND b.dFeedbackDate <= '{$today}'
  6765. GROUP BY D2.cdwmc)bb
  6766. ON aa.客户 = bb.客户单位
  6767. /*WHERE aa.[销售收入(万元)] > 200*/
  6768. WHERE aa.客户 NOT IN ( '浙江出版传媒股份有限公司(含省出版公司)', '人民教育出版社有限公司', '教育科学出版社有限公司' ))tb)hz
  6769. ORDER BY 总分 DESC";
  6770. $res=Db::query($sql);
  6771. if($res){
  6772. $redis->set($redis_key, json_encode($res));
  6773. echo date("Y-m-d H:i:s").' 存进去了';
  6774. return $res;
  6775. }
  6776. }
  6777. //图书板块大客户分析列表->接口
  6778. public function customer_analysis(){
  6779. $redis = redis();
  6780. $result = json_decode($redis->get(md5('customer_analysis_redis')), true);
  6781. // echo "<pre>";
  6782. // print_r($result);
  6783. // echo "<pre>";
  6784. $new_result = [];
  6785. $new_result['columns'] = [
  6786. // ['name' => '排名', 'id' => 'rank', 'width' => '16', 'color' => 'blue', 'autoWrap' => "true", 'textAlign' => 'left'],
  6787. ['name' => ' ', 'id' => 'kong', 'width' => '10', 'color' => 'blue', 'autoWrap' => "true", 'textAlign' => 'left'],
  6788. ['name' => '客户名称', 'id' => 'kh', 'width' => '70', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  6789. ];
  6790. foreach ($result as $key => $value) {
  6791. if ($key >= 20) {
  6792. break;
  6793. }
  6794. $new_result['rows'][$key]['kong'] = ' ';
  6795. $new_result['rows'][$key]['kh'] = $value['客户'];
  6796. // $new_result['rows'][$key]['rank'] = $key + 1;
  6797. }
  6798. $res['status'] = 0;
  6799. $res['msg'] = '';
  6800. $res['data'] = $new_result;
  6801. return json($res);
  6802. }
  6803. //应收账款情况汇总->缓存【按客户】
  6804. public function Summary_redis(){
  6805. $redis = redis();
  6806. $redis_key = md5('Summary_redis');
  6807. $sql = "SELECT '汇总' AS 业务单位,
  6808. Sum(hz.销货未收款) AS 销货未收款,
  6809. Avg(hz.账期) AS 账期,
  6810. Sum(hz.超期订单数量) AS 超期订单数量,
  6811. Sum(hz.超期订单金额) AS 超期订单金额
  6812. FROM (SELECT YSZK.业务员,
  6813. YSZK.业务单位,
  6814. YSZK.销货未收款,
  6815. D.iPaytime 账期,
  6816. YSZK.超期订单数量,
  6817. IFnull(YSZK.超期订单金额, 0) 超期订单金额
  6818. FROM (SELECT a.cywdwmc 业务单位,
  6819. a.cywdwbh,
  6820. a.cywy 业务员,
  6821. Sum(a.nxhys) AS 销货未收款,
  6822. (SELECT Count(ccydh)
  6823. FROM tmaintz
  6824. WHERE isign = 1
  6825. AND cywdwmc = a.cywdwmc
  6826. AND ixhconfirm = 1
  6827. AND ljqbz = 0
  6828. AND crectype = '订单应收') AS 销货订单数,
  6829. (SELECT Count(*)
  6830. FROM Mcyd e
  6831. JOIN tMainTz f
  6832. ON e.ccydh = f.ccydh
  6833. AND f.isign = 1
  6834. AND ( e.icydstate <> -1
  6835. OR e.icydstate IS NULL )
  6836. AND e.ljqbs = 0
  6837. AND e.iZLConfirm = 1
  6838. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6839. AND f.cywdwmc = a.cywdwmc
  6840. AND cywy = a.cywy) AS 超期订单数量,
  6841. (SELECT Sum(c.nxhys)
  6842. FROM tMainTz c
  6843. JOIN mcyd e
  6844. ON c.ccydh = e.ccydh
  6845. AND c.isign = 1
  6846. AND ( e.icydstate <> -1
  6847. OR e.icydstate IS NULL )
  6848. AND e.ljqbs = 0
  6849. AND e.iZLConfirm = 1
  6850. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6851. AND c.cywdwmc = a.cywdwmc
  6852. AND cywy = a.cywy) AS 超期订单金额
  6853. FROM tmaintz A
  6854. LEFT JOIN Dzywdw b
  6855. ON a.cYwdwbh = b.cywdwbh
  6856. WHERE a.isign = 1
  6857. AND ljqbz = 0
  6858. AND ccydh NOT IN (SELECT ccydh
  6859. FROM mcyd
  6860. WHERE icydstate = -1)
  6861. AND a.cRECtype = '订单应收'
  6862. AND LOCATE('提', a.ccydh) = 0
  6863. GROUP BY a.cywdwmc,
  6864. a.cywdwbh,
  6865. a.cywy)YSZK
  6866. LEFT JOIN Dzywdw d
  6867. ON YSZK.cywdwbh = d.cywdwbh
  6868. WHERE YSZK.销货未收款 > 0)hz
  6869. UNION ALL
  6870. SELECT *
  6871. FROM (SELECT
  6872. YSZK.业务单位,
  6873. YSZK.销货未收款,
  6874. D.iPaytime 账期,
  6875. YSZK.超期订单数量,
  6876. IFnull(YSZK.超期订单金额, 0) 超期订单金额
  6877. FROM (SELECT a.cywdwmc 业务单位,
  6878. a.cywdwbh,
  6879. Sum(a.nxhys) AS 销货未收款,
  6880. (SELECT Count(ccydh)
  6881. FROM tmaintz
  6882. WHERE isign = 1
  6883. AND cywdwmc = a.cywdwmc
  6884. AND ixhconfirm = 1
  6885. AND ljqbz = 0
  6886. AND crectype = '订单应收') AS 销货订单数,
  6887. (SELECT Count(*)
  6888. FROM Mcyd e
  6889. JOIN tMainTz f
  6890. ON e.ccydh = f.ccydh
  6891. AND f.isign = 1
  6892. AND ( e.icydstate <> -1
  6893. OR e.icydstate IS NULL )
  6894. AND e.ljqbs = 0
  6895. AND e.iZLConfirm = 1
  6896. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6897. AND f.cywdwmc = a.cywdwmc
  6898. ) AS 超期订单数量,
  6899. (SELECT Sum(c.nxhys)
  6900. FROM tMainTz c
  6901. JOIN mcyd e
  6902. ON c.ccydh = e.ccydh
  6903. AND c.isign = 1
  6904. AND ( e.icydstate <> -1
  6905. OR e.icydstate IS NULL )
  6906. AND e.ljqbs = 0
  6907. AND e.iZLConfirm = 1
  6908. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6909. AND c.cywdwmc = a.cywdwmc
  6910. ) AS 超期订单金额
  6911. FROM tmaintz A
  6912. LEFT JOIN Dzywdw b
  6913. ON a.cYwdwbh = b.cywdwbh
  6914. WHERE a.isign = 1
  6915. AND ljqbz = 0
  6916. AND ccydh NOT IN (SELECT ccydh
  6917. FROM mcyd
  6918. WHERE icydstate = -1)
  6919. AND a.cRECtype = '订单应收'
  6920. AND LOCATE('提', a.ccydh) = 0
  6921. GROUP BY a.cywdwmc,
  6922. a.cywdwbh )YSZK
  6923. LEFT JOIN Dzywdw d
  6924. ON YSZK.cywdwbh = d.cywdwbh
  6925. WHERE YSZK.销货未收款 > 0
  6926. )MX
  6927. ORDER BY 超期订单金额 DESC ";
  6928. $res=Db::query($sql);
  6929. if($res){
  6930. $redis->set($redis_key, json_encode($res));
  6931. echo date("Y-m-d H:i:s").' 存进去了';
  6932. return $res;
  6933. }
  6934. }
  6935. //应收账款情况汇总->缓存【按业务员】
  6936. public function Summary_ywy_redis(){
  6937. $redis = redis();
  6938. $redis_key = md5('Summary_ywy_redis');
  6939. $sql = "SELECT tb.业务员,
  6940. Sum(tb.销货未收款) AS 销货未收款,
  6941. Avg(tb.账期) AS 账期,
  6942. Sum(tb.超期订单数量) AS 超期订单数量,
  6943. Sum(tb.超期订单金额) AS 超期订单金额
  6944. FROM (SELECT '汇总' AS 业务员,
  6945. '' AS 业务单位,
  6946. Sum(hz.销货未收款) AS 销货未收款,
  6947. Avg(hz.账期) AS 账期,
  6948. Sum(hz.超期订单数量) AS 超期订单数量,
  6949. Sum(hz.超期订单金额) AS 超期订单金额
  6950. FROM (SELECT YSZK.业务员,
  6951. YSZK.业务单位,
  6952. YSZK.销货未收款,
  6953. D.iPaytime 账期,
  6954. YSZK.超期订单数量,
  6955. IFnull(YSZK.超期订单金额, 0) 超期订单金额
  6956. FROM (SELECT a.cywdwmc 业务单位,
  6957. a.cywdwbh,
  6958. a.cywy 业务员,
  6959. Sum(a.nxhys) AS 销货未收款,
  6960. (SELECT Count(ccydh)
  6961. FROM tmaintz
  6962. WHERE isign = 1
  6963. AND cywdwmc = a.cywdwmc
  6964. AND ixhconfirm = 1
  6965. AND ljqbz = 0
  6966. AND crectype = '订单应收') AS 销货订单数,
  6967. (SELECT Count(*)
  6968. FROM Mcyd e
  6969. JOIN tMainTz f
  6970. ON e.ccydh = f.ccydh
  6971. AND f.isign = 1
  6972. AND ( e.icydstate <> -1
  6973. OR e.icydstate IS NULL )
  6974. AND e.ljqbs = 0
  6975. AND e.iZLConfirm = 1
  6976. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6977. AND f.cywdwmc = a.cywdwmc
  6978. AND cywy = a.cywy) AS 超期订单数量,
  6979. (SELECT Sum(c.nxhys)
  6980. FROM tMainTz c
  6981. JOIN mcyd e
  6982. ON c.ccydh = e.ccydh
  6983. AND c.isign = 1
  6984. AND ( e.icydstate <> -1
  6985. OR e.icydstate IS NULL )
  6986. AND e.ljqbs = 0
  6987. AND e.iZLConfirm = 1
  6988. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6989. AND c.cywdwmc = a.cywdwmc
  6990. AND cywy = a.cywy) AS 超期订单金额
  6991. FROM tmaintz A
  6992. LEFT JOIN Dzywdw b
  6993. ON a.cYwdwbh = b.cywdwbh
  6994. WHERE a.isign = 1
  6995. AND ljqbz = 0
  6996. AND ccydh NOT IN (SELECT ccydh
  6997. FROM mcyd
  6998. WHERE icydstate = -1)
  6999. AND a.cRECtype = '订单应收'
  7000. AND LOCATE('提', a.ccydh) = 0
  7001. GROUP BY a.cywdwmc,
  7002. a.cywdwbh,
  7003. a.cywy)YSZK
  7004. LEFT JOIN Dzywdw d
  7005. ON YSZK.cywdwbh = d.cywdwbh
  7006. WHERE YSZK.销货未收款 > 0)hz
  7007. UNION ALL
  7008. SELECT *
  7009. FROM (SELECT YSZK.业务员,
  7010. YSZK.业务单位,
  7011. YSZK.销货未收款,
  7012. D.iPaytime 账期,
  7013. YSZK.超期订单数量,
  7014. IFnull(YSZK.超期订单金额, 0) 超期订单金额
  7015. FROM (SELECT a.cywdwmc 业务单位,
  7016. a.cywdwbh,
  7017. a.cywy 业务员,
  7018. Sum(a.nxhys) AS 销货未收款,
  7019. (SELECT Count(ccydh)
  7020. FROM tmaintz
  7021. WHERE isign = 1
  7022. AND cywdwmc = a.cywdwmc
  7023. AND ixhconfirm = 1
  7024. AND ljqbz = 0
  7025. AND crectype = '订单应收') AS 销货订单数,
  7026. (SELECT Count(*)
  7027. FROM Mcyd e
  7028. JOIN tMainTz f
  7029. ON e.ccydh = f.ccydh
  7030. AND f.isign = 1
  7031. AND ( e.icydstate <> -1
  7032. OR e.icydstate IS NULL )
  7033. AND e.ljqbs = 0
  7034. AND e.iZLConfirm = 1
  7035. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  7036. AND f.cywdwmc = a.cywdwmc
  7037. AND cywy = a.cywy) AS 超期订单数量,
  7038. (SELECT Sum(c.nxhys)
  7039. FROM tMainTz c
  7040. JOIN mcyd e
  7041. ON c.ccydh = e.ccydh
  7042. AND c.isign = 1
  7043. AND ( e.icydstate <> -1
  7044. OR e.icydstate IS NULL )
  7045. AND e.ljqbs = 0
  7046. AND e.iZLConfirm = 1
  7047. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  7048. AND c.cywdwmc = a.cywdwmc
  7049. AND cywy = a.cywy) AS 超期订单金额
  7050. FROM tmaintz A
  7051. LEFT JOIN Dzywdw b
  7052. ON a.cYwdwbh = b.cywdwbh
  7053. WHERE a.isign = 1
  7054. AND ljqbz = 0
  7055. AND ccydh NOT IN (SELECT ccydh
  7056. FROM mcyd
  7057. WHERE icydstate = -1)
  7058. AND a.cRECtype = '订单应收'
  7059. AND LOCATE('提', a.ccydh) = 0
  7060. GROUP BY a.cywdwmc,
  7061. a.cywdwbh,
  7062. a.cywy)YSZK
  7063. LEFT JOIN Dzywdw d
  7064. ON YSZK.cywdwbh = d.cywdwbh
  7065. WHERE YSZK.销货未收款 > 0)MX) tb
  7066. GROUP BY TB.业务员
  7067. ORDER BY 超期订单金额 DESC
  7068. ";
  7069. $res=Db::query($sql);
  7070. if($res){
  7071. $redis->set($redis_key, json_encode($res));
  7072. echo date("Y-m-d H:i:s").' 存进去了';
  7073. return $res;
  7074. }
  7075. }
  7076. // 应收账款情况汇总->接口
  7077. public function Summary(){
  7078. $data = input('post.');
  7079. if(isset($data['dependence'])){
  7080. $dependence=$data['dependence'];
  7081. }else{
  7082. $dependence['item']['value']= '客户';
  7083. }
  7084. $redis = redis();
  7085. $new_result = [];
  7086. if($dependence['item']['value'] == '业务员'){
  7087. $result_ywy = json_decode($redis->get(md5('Summary_ywy_redis')),true);
  7088. $result_ywy[0]['业务员'] = '合计';
  7089. $result_ywy[0]['账期'] = '';
  7090. $new_result['columns'] = [
  7091. ['name' => '业务员', 'id' => 'ywdw', 'width' => '40', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7092. ['name' => '销货未收款(万元)', 'id' => 'xhwsk', 'width' => '18', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7093. ['name' => '账期(天)', 'id' => 'zq', 'width' => '10', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7094. ['name' => '超期订单数量', 'id' => 'cqddsl', 'width' => '12', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7095. ['name' => '超期订单金额(万元)', 'id' => 'cqddje', 'width' => '15', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7096. ];
  7097. foreach ($result_ywy as $key => $value) {
  7098. if ($value['销货未收款'] != 0) {
  7099. $new_result['rows'][$key]['ywdw'] = $value['业务员'];
  7100. $new_result['rows'][$key]['xhwsk'] = number_format($value['销货未收款'] /10000,2);
  7101. $new_result['rows'][$key]['zq'] = round($value['账期']);
  7102. $new_result['rows'][$key]['cqddsl'] = $value['超期订单数量'];
  7103. $new_result['rows'][$key]['cqddje'] = number_format($value['超期订单金额'] /10000,2);
  7104. }
  7105. }
  7106. $res['status'] = 0;
  7107. $res['msg'] = '';
  7108. $res['data'] = $new_result;
  7109. return json($res);
  7110. }else{
  7111. $result = json_decode($redis->get(md5('Summary_redis')),true);
  7112. $result[0]['业务单位'] = '合计';
  7113. $result[0]['账期'] = '';
  7114. $new_result['columns'] = [
  7115. ['name' => '业务单位', 'id' => 'ywdw', 'width' => '30', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7116. ['name' => '销货未收款(万元)', 'id' => 'xhwsk', 'width' => '18', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7117. ['name' => '账期(天)', 'id' => 'zq', 'width' => '10', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7118. ['name' => '超期订单数量', 'id' => 'cqddsl', 'width' => '12', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7119. ['name' => '超期订单金额(万元)', 'id' => 'cqddje', 'width' => '15', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7120. ];
  7121. foreach ($result as $key => $value) {
  7122. if ($value['销货未收款'] != 0) {
  7123. $new_result['rows'][$key]['ywdw'] = $value['业务单位'];
  7124. $new_result['rows'][$key]['xhwsk'] = number_format($value['销货未收款'] /10000,2);
  7125. $new_result['rows'][$key]['zq'] = round($value['账期']);
  7126. $new_result['rows'][$key]['cqddsl'] = $value['超期订单数量'];
  7127. $new_result['rows'][$key]['cqddje'] = number_format($value['超期订单金额'] /10000,2);
  7128. }
  7129. }
  7130. $res['status'] = 0;
  7131. $res['msg'] = '';
  7132. $res['data'] = $new_result;
  7133. return json($res);
  7134. }
  7135. }
  7136. }