Fourth.php 558 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197
  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('getxssr_redis')),true)['data']['series'][0]['data'][2]/$target*100);
  54. $year_ywcls_wcl = md5('year_ywcls_wcl');
  55. $redis->set($year_ywcls_wcl, json_encode($res));
  56. $result2=json_decode($redis->get(md5('month_jgml_redis')),true);
  57. $zxsml=0;
  58. foreach($result2 as $v){
  59. if($v['承印时间']>=date('Y').'-01'){
  60. $zxsml+=$v['总销售毛利'];
  61. }
  62. }
  63. $name='毛利收入(万元)';
  64. $target=Db::name('target')->where('name',$name)->value('year_target');
  65. $list=[];
  66. $res=[];
  67. $list[0]['name'] = ' ';
  68. $list[0]['value'] = $target;
  69. $list[1]['name'] = ' ';
  70. $list[1]['value'] = round($zxsml);
  71. $res['status'] = 0;
  72. $res['msg'] = '';
  73. $res['data'] = $list;
  74. $year_ywclml = md5('year_ywclmls');
  75. $redis->set($year_ywclml, json_encode($res));
  76. $res=[];
  77. $res['status'] = 0;
  78. $res['msg'] = '';
  79. $res['data'] = round($zxsml/$target*100);
  80. $year_ywclml_wcl = md5('year_ywclml_wcls');
  81. $redis->set($year_ywclml_wcl, json_encode($res));
  82. $name='产量情况(万色令)';
  83. $yu=Db::name('target')->where('name',$name)->value('year_target');
  84. $result1 = Db::query("SELECT
  85. round( M.总色令/$yu*100,0) 色令百分比,round( m.总色令) 色令,$yu 常量, year(M.rq) 年度
  86. FROM (SELECT t5.rq as rq,sum(t5.sl)/10000 as 总色令,sum(t5.zl) as 总纸令 FROM ( SELECT DATE_FORMAT( dcyrq, '%Y-%m-%d' ) as rq,sum(objmatier.nyssl) as sl,sum(objmatier.nysls) as zl
  87. FROM `mcyd` `ord` LEFT JOIN (( SELECT icydid,sum(nyssl) as nyssl,sum(nysls) as nysls
  88. FROM `scyddx` `objmatier` GROUP BY `icydid` )) as objmatier ON `ord`.`icydid`=`objmatier`.`icydid`
  89. WHERE `ord`.`icydstate` > 0 and chy != '集团教材外' GROUP BY `rq` ) t5 WHERE ( t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}' )
  90. GROUP BY year(t5.rq) ) M");
  91. // and chy != '集团教材外'
  92. $list=[];
  93. $res=[];
  94. $list[0]['name'] = ' ';
  95. $list[0]['value'] = $yu;
  96. $list[1]['name'] = ' ';
  97. $list[1]['value'] = round($result1[0]['色令']);
  98. $res['status'] = 0;
  99. $res['msg'] = '';
  100. $res['data'] = $list;
  101. $year_ywclsl = md5('year_ywclsl');
  102. $redis->set($year_ywclsl, json_encode($res));
  103. $res=[];
  104. $res['status'] = 0;
  105. $res['msg'] = '';
  106. $res['data'] = round($result1[0]['色令百分比']);
  107. $year_ywclsl_wcl = md5('year_ywclsl_wcl');
  108. $redis->set($year_ywclsl_wcl, json_encode($res));
  109. return json($res);
  110. }
  111. //销售收入->接口
  112. public function year_ywcls(){
  113. //取合同价格
  114. $redis = redis();
  115. return $redis->get(md5('year_ywcls'));
  116. }
  117. //销售收入-完成率百分比->接口
  118. public function year_ywcls_wcl(){
  119. //取合同价格/目标收入
  120. $redis = redis();
  121. return $redis->get(md5('year_ywcls_wcl'));
  122. }
  123. //毛利收入->接口
  124. public function year_ywclml(){
  125. //取生产毛利不含税
  126. $redis = redis();
  127. return $redis->get(md5('year_ywclmls'));
  128. }
  129. //毛利收入-完成率百分比->接口
  130. public function year_ywclml_wcl(){
  131. //取生产毛利不含税/目标收入
  132. $redis = redis();
  133. return $redis->get(md5('year_ywclml_wcls'));
  134. }
  135. //承接产量(万色令)->接口
  136. public function year_ywclsl(){
  137. //取色令
  138. $redis = redis();
  139. return $redis->get(md5('year_ywclsl'));
  140. }
  141. //承接产量(万色令)完成率百分比->接口
  142. public function year_ywclsl_wcl(){
  143. //取色令/目标收入
  144. $redis = redis();
  145. return $redis->get(md5('year_ywclsl_wcl'));
  146. }
  147. /**
  148. * 承印产量情况、业务承揽收入情况、加工收入情况、加工考核毛利收入情况
  149. */
  150. //承印产量情况(万色令)缓存 本级不包含集团教材外
  151. public function month_cjcl_redis(){
  152. //链接定义 Redis
  153. $redis = redis();
  154. $redis_key = md5('month_cjcl_redis');
  155. $sql = "SELECT DATE_FORMAT( dcyrq, '%Y-%m' ) as rq,sum(objmatier.nyssl)/10000 as sl,sum(objmatier.nysls) as zl
  156. FROM `mcyd` `ord` LEFT JOIN (( SELECT icydid,sum(nyssl) as nyssl,sum(nysls) as nysls
  157. FROM `scyddx` `objmatier` GROUP BY `icydid` )) as objmatier ON `ord`.`icydid`=`objmatier`.`icydid`
  158. WHERE `ord`.`icydstate` > 0 and chy != '集团教材外' AND ( dcyrq >= '{$this->qstart_time()}'AND dcyrq <= '{$this->end_time()}' ) GROUP BY `rq` ORDER BY `rq` ASC";
  159. $res=Db::query($sql);
  160. if($res){
  161. //将查询结果存入 Redis 缓存中
  162. $redis->set($redis_key, json_encode($res));
  163. echo date("Y-m-d H:i:s").' 存进去了';
  164. return json($res);
  165. }
  166. }
  167. //承印产量情况(万色令)缓存 全部包含集团教材外
  168. public function month_cjcls_redis(){
  169. //链接定义 Redis
  170. $redis = redis();
  171. $redis_key = md5('month_cjcls_redis');
  172. $sql = "SELECT DATE_FORMAT( dcyrq, '%Y-%m' ) as rq,sum(objmatier.nyssl)/10000 as sl,sum(objmatier.nysls) as zl
  173. FROM `mcyd` `ord` LEFT JOIN (( SELECT icydid,sum(nyssl) as nyssl,sum(nysls) as nysls
  174. FROM `scyddx` `objmatier` GROUP BY `icydid` )) as objmatier ON `ord`.`icydid`=`objmatier`.`icydid`
  175. WHERE `ord`.`icydstate` > 0 AND ( dcyrq >= '{$this->qstart_time()}'AND dcyrq <= '{$this->end_time()}' ) GROUP BY `rq` ORDER BY `rq` ASC";
  176. $res=Db::query($sql);
  177. if($res){
  178. //将查询结果存入 Redis 缓存中
  179. $redis->set($redis_key, json_encode($res));
  180. echo date("Y-m-d H:i:s").' 存进去了';
  181. return json($res);
  182. }
  183. }
  184. //承印产量情况(万色令)->接口
  185. public function month_cjcl(){
  186. $data = input('post.');
  187. if (isset($data['dependence'])) {
  188. $dependence = $data['dependence'];
  189. } else {
  190. $dependence['item']['value'] = '全部';
  191. }
  192. // 获取 Redis 数据
  193. $redis = redis();
  194. if ($dependence['item']['value'] == '全部') {
  195. $result = json_decode($redis->get(md5('month_cjcls_redis')), true);
  196. } else {
  197. $result = json_decode($redis->get(md5('month_cjcl_redis')), true);
  198. }
  199. $name = 'sl'; // 对应字段名
  200. $currentYear = date('Y'); // 当前年份
  201. $previousYear = $currentYear - 1; // 前一年
  202. // 初始化数据
  203. $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
  204. $list['series'] = [
  205. [
  206. 'name' => '同比增减百分比',
  207. 'type' => 'line',
  208. 'yAxisIndex' => 1,
  209. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  210. ],
  211. [
  212. 'name' => $previousYear . '年',
  213. 'type' => 'bar',
  214. 'yAxisIndex' => 0,
  215. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  216. ],
  217. [
  218. 'name' => $currentYear . '年',
  219. 'type' => 'bar',
  220. 'yAxisIndex' => 0,
  221. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  222. ]
  223. ];
  224. // 判断 Redis 数据是否为空
  225. if (!empty($result)) {
  226. foreach ($result as $k => $v) {
  227. if (isset($v['rq']) && $v['rq'] >= $currentYear . '-01') {
  228. // 获取对应月份的目标值(假设目标值存储在数据库中)
  229. $target = Db::name('targetmonth')
  230. ->where('name', '承印产量情况')
  231. ->where('month', substr($v['rq'], -2, 2))
  232. ->value('month_target');
  233. // 计算同比增减百分比
  234. $monthIndex = (int)substr($v['rq'], -2, 2) - 1; // 月份索引
  235. $list['series'][0]['data'][$monthIndex] = isset($result[$k - 12]) && $result[$k - 12][$name] != 0
  236. ? round(($v[$name] - $result[$k - 12][$name]) / $result[$k - 12][$name] * 100, 2)
  237. : 0;
  238. // 当前年份数据
  239. $list['series'][2]['data'][$monthIndex] = round($v[$name]);
  240. } else {
  241. // 前一年数据
  242. if (isset($v['rq'])) {
  243. $monthIndex = (int)substr($v['rq'], -2, 2) - 1; // 月份索引
  244. $list['series'][1]['data'][$monthIndex] = round($v[$name]);
  245. }
  246. }
  247. }
  248. }
  249. // 设置返回数据
  250. $res['status'] = 0;
  251. $res['msg'] = '';
  252. $res['data'] = $list;
  253. return json($res);
  254. }
  255. // public function month_cjcl(){
  256. // $data = input('post.');
  257. // if(isset($data['dependence'])){
  258. // $dependence=$data['dependence'];
  259. // }else{
  260. // $dependence['item']['value']= '全部';
  261. // }
  262. // if($dependence['item']['value'] == '全部'){
  263. // $redis = redis();
  264. // $result = json_decode($redis->get(md5('month_cjcls_redis')),true);
  265. // }else{
  266. // $redis = redis();
  267. // $result = json_decode($redis->get(md5('month_cjcl_redis')),true);
  268. // }
  269. //// $name='色令(万)';
  270. // $name='sl';
  271. // //按每月设置的指标显示
  272. // $list['categories']=[];
  273. // $list['series'][0]=[];
  274. // foreach($result as $k=>$v){
  275. // if($v['rq']>=date('Y').'-01'){
  276. // $target=Db::name('targetmonth')->where('name','承印产量情况')->where('month',substr($v['rq'],-2,2))->value('month_target');
  277. // // $list['series'][0]['name']=date('Y').'指标达成率';
  278. // $list['series'][0]['name']='同比增减百分比';
  279. // $list['series'][0]['type']='line';
  280. // $list['series'][0]['yAxisIndex']=1;
  281. // $list['series'][0]['data'][]=round(($v[$name]-$result[$k-12][$name])/$result[$k-12][$name]*100);
  282. // $list['series'][2]['name']=date('Y').'年';
  283. // $list['series'][2]['type']='bar';
  284. // $list['series'][2]['yAxisIndex']=0;
  285. // $list['series'][2]['data'][]=round($v[$name]);
  286. // }else{
  287. // $list['categories'][]=substr($v['rq'],-2,2);
  288. // $list['series'][1]['name']=(date('Y')-1).'年';
  289. // $list['series'][1]['type']='bar';
  290. // $list['series'][1]['yAxisIndex']=0;
  291. // $list['series'][1]['data'][]=round($v[$name]);
  292. // }
  293. // }
  294. //
  295. // $res['status'] = 0;
  296. // $res['msg'] = '';
  297. // $res['data'] = $list;
  298. // return json($res);
  299. // }
  300. //业务承揽收入情况(万元)->缓存 本级不包含集团教材外
  301. public function month_ywcl_redis(){
  302. $redis=redis();
  303. $redis_key = md5('month_ywcl_redis');
  304. $field = [
  305. 'ldz',
  306. 'mcyd.icydid',
  307. 'year(mcyd.dcyrq) as 年',
  308. "DATE_FORMAT( mcyd.dcyrq, '%Y-%m') as 日期",
  309. 'sum(mcyd.nwshjje) nwshjje',
  310. 'sum(mcyd.nwsgjhj) nwsgjhj',
  311. 'sum(tjob.namount) namount',
  312. 'sum(tjob.namount) - sum(tjob.nclje * 100 / (100 + tjob.itax)) as sum_clje',
  313. 'tjob.itax',
  314. ];
  315. //当年
  316. $erp2023 = Db::table('mcyd')->field($field)
  317. ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
  318. ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->end_time()])
  319. ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
  320. ->where('mcyd.icydstate','>',0)
  321. ->select();
  322. foreach($erp2023 as $v){
  323. $list[$v['日期']]=0;
  324. }
  325. // 遍历查询结果,进行统计
  326. foreach ($erp2023 as $v){
  327. if($v['ldz'] == 1 ){
  328. $list[$v['日期']]+=$v['namount'];
  329. }else{
  330. $list[$v['日期']]+=$v['nwshjje'];
  331. }
  332. }
  333. foreach($list as $k=>$v){
  334. $res[]=['年月'=>$k,'合同价格(万元)'=>round($v/10000)];
  335. }
  336. array_multisort($res,SORT_ASC);
  337. if($res){
  338. //将查询结果存入 Redis 缓存中
  339. $redis->set($redis_key, json_encode($res));
  340. echo date("Y-m-d H:i:s").' 存进去了';
  341. return json($res);
  342. }
  343. }
  344. //业务承揽收入情况缓存(万元)->缓存 全部包含集团教材外
  345. public function month_ywcls_redis(){
  346. $redis=redis();
  347. $redis_key = md5('month_ywcls_redis');
  348. $field = [
  349. 'ldz',
  350. 'mcyd.icydid',
  351. 'year(mcyd.dcyrq) as 年',
  352. "DATE_FORMAT( mcyd.dcyrq, '%Y-%m') as 日期",
  353. 'sum(mcyd.nwshjje) nwshjje',
  354. 'sum(mcyd.nwsgjhj) nwsgjhj',
  355. 'sum(tjob.namount) namount',
  356. 'sum(tjob.namount) - sum(tjob.nclje * 100 / (100 + tjob.itax)) as sum_clje',
  357. 'tjob.itax',
  358. ];
  359. //当年
  360. $erp2023 = Db::table('mcyd')->field($field)
  361. ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
  362. ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->end_time()])
  363. ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
  364. ->where('mcyd.icydstate','>',0)
  365. ->where('mcyd.chy','<>','集团教材外')
  366. ->select();
  367. foreach($erp2023 as $v){
  368. $list[$v['日期']]=0;
  369. }
  370. // 遍历查询结果,进行统计
  371. foreach ($erp2023 as $v){
  372. if($v['ldz'] == 1 ){
  373. $list[$v['日期']]+=$v['namount'];
  374. }else{
  375. $list[$v['日期']]+=$v['nwshjje'];
  376. }
  377. }
  378. foreach($list as $k=>$v){
  379. $res[]=['年月'=>$k,'合同价格(万元)'=>round($v/10000)];
  380. }
  381. array_multisort($res,SORT_ASC);
  382. if($res){
  383. //将查询结果存入 Redis 缓存中
  384. $redis->set($redis_key, json_encode($res));
  385. echo date("Y-m-d H:i:s").' 存进去了';
  386. return json($res);
  387. }
  388. }
  389. //业务承揽收入情况(万元)->接口
  390. public function month_ywcl(){
  391. $data = input('post.');
  392. if(isset($data['dependence'])){
  393. $dependence = $data['dependence'];
  394. }else{
  395. $dependence['item']['value'] = '全部';
  396. }
  397. // 获取 Redis 数据
  398. $redis = redis();
  399. if($dependence['item']['value'] == '全部'){
  400. $result = json_decode($redis->get(md5('month_ywcls_redis')), true);
  401. }else{
  402. $result = json_decode($redis->get(md5('month_ywcl_redis')), true);
  403. }
  404. $name = '合同价格(万元)'; // 数据字段名
  405. $currentYear = date('Y'); // 当前年份
  406. $previousYear = $currentYear - 1; // 前一年
  407. // 初始化数据
  408. $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
  409. $list['series'] = [
  410. [
  411. 'name' => '同比增减百分比',
  412. 'type' => 'line',
  413. 'yAxisIndex' => 1,
  414. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  415. ],
  416. [
  417. 'name' => $previousYear . '年',
  418. 'type' => 'bar',
  419. 'yAxisIndex' => 0,
  420. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  421. ],
  422. [
  423. 'name' => $currentYear . '年',
  424. 'type' => 'bar',
  425. 'yAxisIndex' => 0,
  426. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  427. ]
  428. ];
  429. // 判断 Redis 数据是否为空
  430. if (!empty($result)) {
  431. foreach ($result as $k => $v) {
  432. if (isset($v['年月']) && $v['年月'] >= $currentYear . '-01') {
  433. // 获取对应月份的目标值(假设目标值存储在数据库中)
  434. $target = Db::name('targetmonth')
  435. ->where('name', '业务承揽收入情况')
  436. ->where('month', substr($v['年月'], -2, 2))
  437. ->value('month_target');
  438. // 计算同比增减百分比
  439. $monthIndex = (int)substr($v['年月'], -2, 2) - 1; // 月份索引
  440. $list['series'][0]['data'][$monthIndex] = isset($result[$k - 12]) && $result[$k - 12][$name] != 0
  441. ? round(($v[$name] - $result[$k - 12][$name]) / $result[$k - 12][$name] * 100, 2)
  442. : 0;
  443. // 当前年份数据
  444. $list['series'][2]['data'][$monthIndex] = round($v[$name]);
  445. } else {
  446. // 前一年数据
  447. if (isset($v['年月'])) {
  448. $monthIndex = (int)substr($v['年月'], -2, 2) - 1; // 月份索引
  449. $list['series'][1]['data'][$monthIndex] = round($v[$name]);
  450. }
  451. }
  452. }
  453. }
  454. // 设置返回数据
  455. $res['status'] = 0;
  456. $res['msg'] = '';
  457. $res['data'] = $list;
  458. return json($res);
  459. }
  460. // public function month_ywcl(){
  461. // $data = input('post.');
  462. // if(isset($data['dependence'])){
  463. // $dependence=$data['dependence'];
  464. // }else{
  465. // $dependence['item']['value']= '全部';
  466. // }
  467. // $redis = redis();
  468. // if($dependence['item']['value'] == '全部'){
  469. // $result = json_decode($redis->get(md5('month_ywcls_redis')),true);
  470. // }else{
  471. // $result = json_decode($redis->get(md5('month_ywcl_redis')),true);
  472. // }
  473. // $name='合同价格(万元)';
  474. //// $redis = redis();
  475. //// $result = json_decode($redis->get(md5('month_ywcl_redis')),true);
  476. // $list['categories']=[];
  477. // $list['series'][0]=[];
  478. // foreach($result as $k=>$v){
  479. // if($v['年月']>=date('Y').'-01'){
  480. // $target=Db::name('targetmonth')->where('name','业务承揽收入情况')->where('month',substr($v['年月'],-2,2))->value('month_target');
  481. // // $list['series'][0]['name']=date('Y').'指标达成率';
  482. // $list['series'][0]['name']='同比增减百分比';
  483. // $list['series'][0]['type']='line';
  484. // $list['series'][0]['yAxisIndex']=1;
  485. // // $list['series'][0]['data'][]=round($v[$name]/$target*100);
  486. // $list['series'][0]['data'][]=round(($v[$name]-$result[$k-12][$name])/$result[$k-12][$name]*100);
  487. // $list['series'][2]['name']=date('Y').'年';
  488. // $list['series'][2]['type']='bar';
  489. // $list['series'][2]['yAxisIndex']=0;
  490. // $list['series'][2]['data'][]=round($v[$name]);
  491. // }else{
  492. // $list['categories'][]=substr($v['年月'],-2,2);
  493. // $list['series'][1]['name']=(date('Y')-1).'年';
  494. // $list['series'][1]['type']='bar';
  495. // $list['series'][1]['yAxisIndex']=0;
  496. // $list['series'][1]['data'][]=round($v[$name]);
  497. // }
  498. // }
  499. // $res['status'] = 0;
  500. // $res['msg'] = '';
  501. // $res['data'] = $list;
  502. // return json($res);
  503. // }
  504. //加工收入情况(万元)->缓存 本级包含集团教材外
  505. public function month_jgsr_redis(){
  506. $redis=redis();
  507. $redis_key = md5('month_jgsr_redis');
  508. $field = [
  509. 'ldz',
  510. 'mcyd.icydid',
  511. 'year(mcyd.dcyrq) as 年',
  512. "DATE_FORMAT( mcyd.dcyrq, '%Y-%m') as 日期",
  513. 'sum(mcyd.nwshjje) nwshjje',
  514. 'sum(mcyd.nwsgjhj) nwsgjhj',
  515. 'sum(tjob.namount) namount',
  516. 'sum(tjob.namount) - sum(tjob.nclje * 100 / (100 + tjob.itax)) as sum_clje',
  517. 'tjob.itax',
  518. ];
  519. //当年
  520. $erp2023 = Db::table('mcyd')->field($field)
  521. ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
  522. ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->end_time()])
  523. ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
  524. ->where('mcyd.icydstate','>',0)
  525. ->select();
  526. foreach($erp2023 as $v){
  527. $list[$v['日期']]=0;
  528. }
  529. // 遍历查询结果,进行统计
  530. foreach ($erp2023 as $v){
  531. if($v['ldz'] == 1 ){
  532. $list[$v['日期']]+=$v['sum_clje'];
  533. }else{
  534. $list[$v['日期']]+=$v['nwsgjhj'];
  535. }
  536. }
  537. foreach($list as $k=>$v){
  538. $res[]=['日期'=>$k,'加工收入'=>round($v/10000)];
  539. }
  540. array_multisort($res,SORT_ASC);
  541. if($res){
  542. //将查询结果存入 Redis 缓存中
  543. $redis->set($redis_key, json_encode($res));
  544. echo date("Y-m-d H:i:s").' 存进去了';
  545. return json($res);
  546. }
  547. }
  548. //加工收入情况(万元)->缓存 全部包含集团教材外
  549. public function month_jgsrs_redis(){
  550. $redis=redis();
  551. $redis_key = md5('month_jgsrs_redis');
  552. $field = [
  553. 'ldz',
  554. 'mcyd.icydid',
  555. 'year(mcyd.dcyrq) as 年',
  556. "DATE_FORMAT( mcyd.dcyrq, '%Y-%m') as 日期",
  557. 'sum(mcyd.nwshjje) nwshjje',
  558. 'sum(mcyd.nwsgjhj) nwsgjhj',
  559. 'sum(tjob.namount) namount',
  560. 'sum(tjob.namount) - sum(tjob.nclje * 100 / (100 + tjob.itax)) as sum_clje',
  561. 'tjob.itax',
  562. ];
  563. //当年
  564. $erp2023 = Db::table('mcyd')->field($field)
  565. ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
  566. ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->end_time()])
  567. ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
  568. ->where('mcyd.icydstate','>',0)
  569. ->where('mcyd.chy','<>','集团教材外')
  570. ->select();
  571. foreach($erp2023 as $v){
  572. $list[$v['日期']]=0;
  573. }
  574. // 遍历查询结果,进行统计
  575. foreach ($erp2023 as $v){
  576. if($v['ldz'] == 1 ){
  577. $list[$v['日期']]+=$v['sum_clje'];
  578. }else{
  579. $list[$v['日期']]+=$v['nwsgjhj'];
  580. }
  581. }
  582. foreach($list as $k=>$v){
  583. $res[]=['日期'=>$k,'加工收入'=>round($v/10000)];
  584. }
  585. array_multisort($res,SORT_ASC);
  586. if($res){
  587. //将查询结果存入 Redis 缓存中
  588. $redis->set($redis_key, json_encode($res));
  589. echo date("Y-m-d H:i:s").' 存进去了';
  590. return json($res);
  591. }
  592. }
  593. //加工收入情况(万元)->接口
  594. public function month_jgsr() {
  595. $data = input('post.');
  596. if (isset($data['dependence'])) {
  597. $dependence = $data['dependence'];
  598. } else {
  599. $dependence['item']['value'] = '全部';
  600. }
  601. // 获取 Redis 数据
  602. $redis = redis();
  603. if ($dependence['item']['value'] == '全部') {
  604. $result = json_decode($redis->get(md5('month_jgsrs_redis')), true);
  605. } else {
  606. $result = json_decode($redis->get(md5('month_jgsr_redis')), true);
  607. }
  608. $name = '加工收入'; // 数据字段名
  609. $currentYear = date('Y'); // 当前年份
  610. $previousYear = $currentYear - 1; // 前一年
  611. // 初始化数据
  612. $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
  613. $list['series'] = [
  614. [
  615. 'name' => '同比增减百分比',
  616. 'type' => 'line',
  617. 'yAxisIndex' => 1,
  618. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  619. ],
  620. [
  621. 'name' => $previousYear . '年',
  622. 'type' => 'bar',
  623. 'yAxisIndex' => 0,
  624. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  625. ],
  626. [
  627. 'name' => $currentYear . '年',
  628. 'type' => 'bar',
  629. 'yAxisIndex' => 0,
  630. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  631. ]
  632. ];
  633. // 判断 Redis 数据是否为空
  634. if (!empty($result)) {
  635. foreach ($result as $k => $v) {
  636. if (isset($v['日期']) && $v['日期'] >= $currentYear . '-01') {
  637. // 获取目标值(假设目标值存储在数据库中)
  638. $target = Db::name('targetmonth')
  639. ->where('name', '加工收入情况')
  640. ->where('month', substr($v['日期'], -2, 2))
  641. ->value('month_target');
  642. // 计算同比增减百分比
  643. $monthIndex = (int)substr($v['日期'], -2, 2) - 1; // 月份索引
  644. $list['series'][0]['data'][$monthIndex] = isset($result[$k - 12]) && $result[$k - 12][$name] != 0
  645. ? round(($v[$name] - $result[$k - 12][$name]) / $result[$k - 12][$name] * 100, 2)
  646. : 0;
  647. // 当前年份数据
  648. $list['series'][2]['data'][$monthIndex] = round($v[$name]);
  649. } else {
  650. // 前一年数据
  651. if (isset($v['日期'])) {
  652. $monthIndex = (int)substr($v['日期'], -2, 2) - 1; // 月份索引
  653. $list['series'][1]['data'][$monthIndex] = round($v[$name]);
  654. }
  655. }
  656. }
  657. }
  658. // 设置返回数据
  659. $res['status'] = 0;
  660. $res['msg'] = '';
  661. $res['data'] = $list;
  662. return json($res);
  663. }
  664. // public function month_jgsr(){
  665. // $data = input('post.');
  666. // if(isset($data['dependence'])){
  667. // $dependence=$data['dependence'];
  668. // }else{
  669. // $dependence['item']['value']= '全部';
  670. // }
  671. // $redis = redis();
  672. // if($dependence['item']['value'] == '全部'){
  673. // $result = json_decode($redis->get(md5('month_jgsrs_redis')),true);
  674. // }else{
  675. // $result = json_decode($redis->get(md5('month_jgsr_redis')),true);
  676. // }
  677. //
  678. // // $name='加工收入(万元)';
  679. // $name='加工收入';
  680. //// $redis = redis();
  681. //// $result = json_decode($redis->get(md5('month_jgsr_redis')),true);
  682. // $list['categories']=[];
  683. // $list['series'][0]=[];
  684. // foreach($result as $k=>$v){
  685. // if($v['日期']>=date('Y').'-01'){
  686. // $target=Db::name('targetmonth')->where('name','加工收入情况')->where('month',substr($v['日期'],-2,2))->value('month_target');
  687. // $list['series'][0]['name']='同比增减百分比';
  688. // $list['series'][0]['type']='line';
  689. // $list['series'][0]['yAxisIndex']=1;
  690. // // $list['series'][0]['data'][]=round($v[$name]/$target*100);
  691. // $list['series'][0]['data'][]=round(($v[$name]-$result[$k-12][$name])/$result[$k-12][$name]*100);
  692. // $list['series'][2]['name']=date('Y').'年';
  693. // $list['series'][2]['type']='bar';
  694. // $list['series'][2]['yAxisIndex']=0;
  695. // $list['series'][2]['data'][]=round($v[$name]);
  696. // }else{
  697. // $list['categories'][]=substr($v['日期'],-2,2);
  698. // $list['series'][1]['name']=(date('Y')-1).'年';
  699. // $list['series'][1]['type']='bar';
  700. // $list['series'][1]['yAxisIndex']=0;
  701. // $list['series'][1]['data'][]=round($v[$name]);
  702. // }
  703. // }
  704. // $res['status'] = 0;
  705. // $res['msg'] = '';
  706. // $res['data'] = $list;
  707. // return json($res);
  708. // }
  709. //加工考核毛利收入情况(万元)->缓存 本级包含集团教材外
  710. public function month_jgml_redis(){
  711. $redis=redis();
  712. $redis_key = md5('month_jgml_redis');
  713. $res=Db::query("SELECT DATE_FORMAT(t.承印日期,'%Y-%m') 承印时间,
  714. Sum(t.印令) 总纸令,
  715. Sum(t.色令) 总色令,
  716. Sum(t.销售收入不含税) 总销售收入,
  717. Sum(t.销售收入工价不含税) 总销售工价,
  718. Sum(t.销售收入料价不含税) 总销售料价,
  719. Sum(t.不含税考核计算毛利)/10000 总销售毛利
  720. FROM (SELECT CASE
  721. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  722. ELSE '否'
  723. END 登账,
  724. DATE_FORMAT(DCYRQ,'%Y-%m-%d') AS 承印日期,
  725. ObjMatier.nysls AS 印令,
  726. ObjMatier.nyssl AS 色令,
  727. CYJLX AS 印件类型,
  728. CHY AS 活源,
  729. CASE
  730. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  731. ELSE
  732. CASE
  733. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  734. + CASE
  735. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  736. ELSE ( CASE
  737. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  738. ELSE ( CASE
  739. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  740. ELSE IFNULL(tj.sum_clje, 0)
  741. END )
  742. END )
  743. END = 0
  744. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  745. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  746. + CASE
  747. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  748. ELSE ( CASE
  749. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  750. ELSE ( CASE
  751. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  752. ELSE IFNULL(tj.sum_clje, 0)
  753. END )
  754. END )
  755. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  756. END
  757. END AS 不含税考核计算毛利,
  758. CASE
  759. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  760. ELSE
  761. CASE
  762. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  763. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  764. 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)
  765. END
  766. END AS 考核计算工价毛利不含税,
  767. CASE
  768. WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0)
  769. ELSE IFNULL(tj.sum_namount, 0)
  770. END AS 销售收入不含税,
  771. CASE
  772. WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwsgjhj, 0)
  773. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0)
  774. END AS 销售收入工价不含税,
  775. CASE
  776. WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwsclhj, 0)
  777. ELSE IFNULL(tj.sum_clje, 0)
  778. END AS 销售收入料价不含税
  779. FROM MCYD Ord
  780. LEFT JOIN (SELECT ICYDID,
  781. Max(Nsc) AS Nsc
  782. FROM SCYDDX
  783. WHERE IDXLXID = 573
  784. GROUP BY ICYDID) AS Obj
  785. ON ord.ICYDID = Obj.ICYDID
  786. LEFT JOIN (SELECT ICYDID,
  787. Sum(NYSLS) AS nysls,
  788. Sum(nyssl) AS nyssl,
  789. Sum(nsyl) AS nsyl
  790. FROM SCYDDX
  791. GROUP BY ICYDID) AS ObjMatier
  792. ON Ord.ICYDID = ObjMatier.ICYDID
  793. LEFT JOIN (SELECT Sum(CASE
  794. WHEN hz.dz = 1 THEN hz.nhjje
  795. ELSE hz.传票预计价
  796. END) AS sum_nhjje_in,
  797. Sum(CASE
  798. WHEN hz.dz = 1 THEN hz.nhjje
  799. ELSE hz.传票预计价
  800. END) AS sum_ngjje_in,
  801. Sum(CASE
  802. WHEN hz.dz = 1 THEN hz.nclje
  803. ELSE hz.nclje
  804. END) AS sum_nclje_in,
  805. hz.ICYDID
  806. FROM (SELECT yjj.传票预计价单号,
  807. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  808. yjj.iCYDID,
  809. d.cjjdh 计价单号,
  810. d.ccydh 订单号,
  811. d.cbz 备注,
  812. d.ngjje,
  813. d.nclje,
  814. IFNULL(d.iwjg, 0) iwjg,
  815. IFNULL(d.lzfbs, 0) lzfbs,
  816. d.nhjje,
  817. IFNULL(d.ldz, 0) dz
  818. FROM (SELECT b.csccpbh 传票预计价单号,
  819. a.ccydh,
  820. a.icydid,
  821. Sum(c.fje) 传票预计价
  822. FROM mcyd a
  823. LEFT JOIN sccp b
  824. ON a.icydid = b.icydid
  825. LEFT JOIN ZbHjXm c
  826. ON c.sccpid = b.sccpid
  827. GROUP BY b.csccpbh,
  828. a.icydid,
  829. a.CCYDH) yjj
  830. LEFT JOIN tbluey d
  831. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  832. WHERE hz.iwjg = 0
  833. AND hz.lzfbs = 0
  834. GROUP BY hz.ICYDID) tb_in
  835. ON ord.icydid = tb_in.iCydid
  836. LEFT JOIN (SELECT fw.iCYDID,
  837. sum_nhjje_out,
  838. sum_ngjje_out,
  839. sum_nclje_out,
  840. bz.cbz
  841. FROM (SELECT Cast(Sum(( CASE
  842. WHEN hz.dz = 1
  843. OR hz.dz = -1 THEN hz.nhjje
  844. ELSE hz.传票预计价
  845. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  846. Cast(Sum(( CASE
  847. WHEN hz.dz = 1
  848. OR hz.dz = -1 THEN hz.nhjje
  849. ELSE hz.传票预计价
  850. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  851. Cast(Sum(CASE
  852. WHEN hz.dz = 1
  853. OR hz.dz = -1 THEN hz.nclje
  854. ELSE hz.nclje
  855. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  856. iCydid
  857. FROM (SELECT yjj.传票预计价单号,
  858. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  859. yjj.iCYDID,
  860. d.cjjdh 计价单号,
  861. d.ccydh 订单号,
  862. d.cbz 备注,
  863. d.ngjje,
  864. d.nclje,
  865. d.itax,
  866. IFNULL(d.iwjg, 0) iwjg,
  867. IFNULL(d.lzfbs, 0) lzfbs,
  868. d.nhjje,
  869. IFNULL(d.ldz, 0) dz
  870. FROM (SELECT b.csccpbh 传票预计价单号,
  871. a.ccydh,
  872. a.icydid,
  873. Sum(c.fje) 传票预计价
  874. FROM mcyd a
  875. LEFT JOIN sccp b
  876. ON a.icydid = b.icydid
  877. LEFT JOIN ZbHjXm c
  878. ON c.sccpid = b.sccpid
  879. GROUP BY b.csccpbh,
  880. a.icydid,
  881. a.CCYDH) yjj
  882. LEFT JOIN tbluey d
  883. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  884. WHERE hz.iwjg = 1
  885. AND hz.lzfbs = 0
  886. GROUP BY hz.ICYDID) fw
  887. LEFT JOIN (SELECT icydid,
  888. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  889. WHERE icydid = a.icydid) AS cbz
  890. FROM TBluey a
  891. GROUP BY icydid) bz
  892. ON bz.icydid = fw.iCYDID) tb_out
  893. ON ord.icydid = tb_out.iCydid
  894. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  895. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  896. iCydid,
  897. CASE
  898. WHEN ldz = 1 THEN 1
  899. ELSE 0
  900. END ldz
  901. FROM TJob
  902. WHERE lzfbs = 0
  903. GROUP BY iCydid,
  904. nclje,
  905. itax,
  906. ldz) tj
  907. ON ord.ICYDID = tj.iCydid
  908. WHERE ord.ICYDSTATE > 0) t
  909. WHERE T.承印日期 >= '{$this->qstart_time()}'
  910. AND T.承印日期 <= '{$this->end_time()}'
  911. GROUP BY 承印时间
  912. ORDER BY 承印时间");
  913. if($res){
  914. //将查询结果存入 Redis 缓存中
  915. $redis->set($redis_key, json_encode($res));
  916. echo date("Y-m-d H:i:s").' 存进去了';
  917. return json($res);
  918. }
  919. }
  920. //加工考核毛利收入情况(万元)->缓存 全部包含集团教材外
  921. public function month_jgmls_redis(){
  922. $redis=redis();
  923. $redis_key = md5('month_jgmls_redis');
  924. $res=Db::query("SELECT DATE_FORMAT(t.承印日期,'%Y-%m') 承印时间,
  925. Sum(t.印令) 总纸令,
  926. Sum(t.色令) 总色令,
  927. Sum(t.销售收入不含税) 总销售收入,
  928. Sum(t.销售收入工价不含税) 总销售工价,
  929. Sum(t.销售收入料价不含税) 总销售料价,
  930. Sum(t.不含税考核计算毛利)/10000 总销售毛利
  931. FROM (SELECT CASE
  932. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  933. ELSE '否'
  934. END 登账,
  935. DATE_FORMAT(DCYRQ,'%Y-%m-%d') AS 承印日期,
  936. ObjMatier.nysls AS 印令,
  937. ObjMatier.nyssl AS 色令,
  938. CYJLX AS 印件类型,
  939. CHY AS 活源,
  940. CASE
  941. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  942. ELSE
  943. CASE
  944. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  945. + CASE
  946. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  947. ELSE ( CASE
  948. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  949. ELSE ( CASE
  950. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  951. ELSE IFNULL(tj.sum_clje, 0)
  952. END )
  953. END )
  954. END = 0
  955. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  956. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  957. + CASE
  958. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  959. ELSE ( CASE
  960. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  961. ELSE ( CASE
  962. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  963. ELSE IFNULL(tj.sum_clje, 0)
  964. END )
  965. END )
  966. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  967. END
  968. END AS 不含税考核计算毛利,
  969. CASE
  970. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  971. ELSE
  972. CASE
  973. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  974. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  975. 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)
  976. END
  977. END AS 考核计算工价毛利不含税,
  978. CASE
  979. WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0)
  980. ELSE IFNULL(tj.sum_namount, 0)
  981. END AS 销售收入不含税,
  982. CASE
  983. WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwsgjhj, 0)
  984. ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0)
  985. END AS 销售收入工价不含税,
  986. CASE
  987. WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwsclhj, 0)
  988. ELSE IFNULL(tj.sum_clje, 0)
  989. END AS 销售收入料价不含税
  990. FROM MCYD Ord
  991. LEFT JOIN (SELECT ICYDID,
  992. Max(Nsc) AS Nsc
  993. FROM SCYDDX
  994. WHERE IDXLXID = 573
  995. GROUP BY ICYDID) AS Obj
  996. ON ord.ICYDID = Obj.ICYDID
  997. LEFT JOIN (SELECT ICYDID,
  998. Sum(NYSLS) AS nysls,
  999. Sum(nyssl) AS nyssl,
  1000. Sum(nsyl) AS nsyl
  1001. FROM SCYDDX
  1002. GROUP BY ICYDID) AS ObjMatier
  1003. ON Ord.ICYDID = ObjMatier.ICYDID
  1004. LEFT JOIN (SELECT Sum(CASE
  1005. WHEN hz.dz = 1 THEN hz.nhjje
  1006. ELSE hz.传票预计价
  1007. END) AS sum_nhjje_in,
  1008. Sum(CASE
  1009. WHEN hz.dz = 1 THEN hz.nhjje
  1010. ELSE hz.传票预计价
  1011. END) AS sum_ngjje_in,
  1012. Sum(CASE
  1013. WHEN hz.dz = 1 THEN hz.nclje
  1014. ELSE hz.nclje
  1015. END) AS sum_nclje_in,
  1016. hz.ICYDID
  1017. FROM (SELECT yjj.传票预计价单号,
  1018. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  1019. yjj.iCYDID,
  1020. d.cjjdh 计价单号,
  1021. d.ccydh 订单号,
  1022. d.cbz 备注,
  1023. d.ngjje,
  1024. d.nclje,
  1025. IFNULL(d.iwjg, 0) iwjg,
  1026. IFNULL(d.lzfbs, 0) lzfbs,
  1027. d.nhjje,
  1028. IFNULL(d.ldz, 0) dz
  1029. FROM (SELECT b.csccpbh 传票预计价单号,
  1030. a.ccydh,
  1031. a.icydid,
  1032. Sum(c.fje) 传票预计价
  1033. FROM mcyd a
  1034. LEFT JOIN sccp b
  1035. ON a.icydid = b.icydid
  1036. LEFT JOIN ZbHjXm c
  1037. ON c.sccpid = b.sccpid
  1038. GROUP BY b.csccpbh,
  1039. a.icydid,
  1040. a.CCYDH) yjj
  1041. LEFT JOIN tbluey d
  1042. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  1043. WHERE hz.iwjg = 0
  1044. AND hz.lzfbs = 0
  1045. GROUP BY hz.ICYDID) tb_in
  1046. ON ord.icydid = tb_in.iCydid
  1047. LEFT JOIN (SELECT fw.iCYDID,
  1048. sum_nhjje_out,
  1049. sum_ngjje_out,
  1050. sum_nclje_out,
  1051. bz.cbz
  1052. FROM (SELECT Cast(Sum(( CASE
  1053. WHEN hz.dz = 1
  1054. OR hz.dz = -1 THEN hz.nhjje
  1055. ELSE hz.传票预计价
  1056. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  1057. Cast(Sum(( CASE
  1058. WHEN hz.dz = 1
  1059. OR hz.dz = -1 THEN hz.nhjje
  1060. ELSE hz.传票预计价
  1061. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  1062. Cast(Sum(CASE
  1063. WHEN hz.dz = 1
  1064. OR hz.dz = -1 THEN hz.nclje
  1065. ELSE hz.nclje
  1066. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  1067. iCydid
  1068. FROM (SELECT yjj.传票预计价单号,
  1069. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  1070. yjj.iCYDID,
  1071. d.cjjdh 计价单号,
  1072. d.ccydh 订单号,
  1073. d.cbz 备注,
  1074. d.ngjje,
  1075. d.nclje,
  1076. d.itax,
  1077. IFNULL(d.iwjg, 0) iwjg,
  1078. IFNULL(d.lzfbs, 0) lzfbs,
  1079. d.nhjje,
  1080. IFNULL(d.ldz, 0) dz
  1081. FROM (SELECT b.csccpbh 传票预计价单号,
  1082. a.ccydh,
  1083. a.icydid,
  1084. Sum(c.fje) 传票预计价
  1085. FROM mcyd a
  1086. LEFT JOIN sccp b
  1087. ON a.icydid = b.icydid
  1088. LEFT JOIN ZbHjXm c
  1089. ON c.sccpid = b.sccpid
  1090. GROUP BY b.csccpbh,
  1091. a.icydid,
  1092. a.CCYDH) yjj
  1093. LEFT JOIN tbluey d
  1094. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  1095. WHERE hz.iwjg = 1
  1096. AND hz.lzfbs = 0
  1097. GROUP BY hz.ICYDID) fw
  1098. LEFT JOIN (SELECT icydid,
  1099. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  1100. WHERE icydid = a.icydid) AS cbz
  1101. FROM TBluey a
  1102. GROUP BY icydid) bz
  1103. ON bz.icydid = fw.iCYDID) tb_out
  1104. ON ord.icydid = tb_out.iCydid
  1105. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  1106. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  1107. iCydid,
  1108. CASE
  1109. WHEN ldz = 1 THEN 1
  1110. ELSE 0
  1111. END ldz
  1112. FROM TJob
  1113. WHERE lzfbs = 0
  1114. GROUP BY iCydid,
  1115. nclje,
  1116. itax,
  1117. ldz) tj
  1118. ON ord.ICYDID = tj.iCydid
  1119. WHERE ord.ICYDSTATE > 0 AND chy != '集团教材外') t
  1120. WHERE T.承印日期 >= '{$this->qstart_time()}'
  1121. AND T.承印日期 <= '{$this->end_time()}'
  1122. GROUP BY 承印时间
  1123. ORDER BY 承印时间");
  1124. if($res){
  1125. //将查询结果存入 Redis 缓存中
  1126. $redis->set($redis_key, json_encode($res));
  1127. echo date("Y-m-d H:i:s").' 存进去了';
  1128. return json($res);
  1129. };
  1130. }
  1131. //加工考核毛利收入情况(万元)->接口
  1132. public function month_jgml() {
  1133. $data = input('post.');
  1134. if (isset($data['dependence'])) {
  1135. $dependence = $data['dependence'];
  1136. } else {
  1137. $dependence['item']['value'] = '全部';
  1138. }
  1139. // 获取 Redis 数据
  1140. $redis = redis();
  1141. if ($dependence['item']['value'] == '全部') {
  1142. $result = json_decode($redis->get(md5('month_jgmls_redis')), true);
  1143. } else {
  1144. $result = json_decode($redis->get(md5('month_jgml_redis')), true);
  1145. }
  1146. $name = '总销售毛利'; // 数据字段名
  1147. $currentYear = date('Y'); // 当前年份
  1148. $previousYear = $currentYear - 1; // 前一年
  1149. // 初始化数据
  1150. $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
  1151. $list['series'] = [
  1152. [
  1153. 'name' => '同比增减率百分比',
  1154. 'type' => 'line',
  1155. 'yAxisIndex' => 1,
  1156. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  1157. ],
  1158. [
  1159. 'name' => $previousYear . '年',
  1160. 'type' => 'bar',
  1161. 'yAxisIndex' => 0,
  1162. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  1163. ],
  1164. [
  1165. 'name' => $currentYear . '年',
  1166. 'type' => 'bar',
  1167. 'yAxisIndex' => 0,
  1168. 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0
  1169. ]
  1170. ];
  1171. // 判断 Redis 数据是否为空
  1172. if (!empty($result)) {
  1173. foreach ($result as $k => $v) {
  1174. if (isset($v['承印时间']) && $v['承印时间'] >= $currentYear . '-01') {
  1175. // 计算同比增减率百分比
  1176. $monthIndex = (int)substr($v['承印时间'], -2, 2) - 1; // 获取月份索引
  1177. $list['series'][0]['data'][$monthIndex] = isset($result[$k - 12]) && $result[$k - 12][$name] != 0
  1178. ? round(($v[$name] - $result[$k - 12][$name]) / $result[$k - 12][$name] * 100, 2)
  1179. : 0;
  1180. // 当前年份数据
  1181. $list['series'][2]['data'][$monthIndex] = round($v[$name]);
  1182. } else {
  1183. if (isset($v['承印时间'])) {
  1184. // 前一年数据
  1185. $monthIndex = (int)substr($v['承印时间'], -2, 2) - 1; // 获取月份索引
  1186. $list['series'][1]['data'][$monthIndex] = round($v[$name]);
  1187. }
  1188. }
  1189. }
  1190. }
  1191. // 设置返回数据
  1192. $res['status'] = 0;
  1193. $res['msg'] = '';
  1194. $res['data'] = $list;
  1195. return json($res);
  1196. }
  1197. // public function month_jgml(){
  1198. //// $redis = redis();
  1199. //// $result = json_decode($redis->get(md5('month_jgmls_redis')),true);
  1200. //
  1201. // $data = input('post.');
  1202. // if(isset($data['dependence'])){
  1203. // $dependence=$data['dependence'];
  1204. // }else{
  1205. // $dependence['item']['value']= '全部';
  1206. // }
  1207. // $redis = redis();
  1208. // if($dependence['item']['value'] == '全部'){
  1209. // $result = json_decode($redis->get(md5('month_jgmls_redis')),true);
  1210. // }else{
  1211. // $result = json_decode($redis->get(md5('month_jgml_redis')),true);
  1212. // }
  1213. //
  1214. // // $name='加工毛利收入(万元)';
  1215. // $name='总销售毛利';
  1216. //// $redis = redis();
  1217. //// $result = json_decode($redis->get(md5('month_jgml_redis')),true);
  1218. // $list['categories']=[];
  1219. // $list['series'][0]=[];
  1220. // foreach($result as $k=>$v){
  1221. // // if($v['年月']>=date('Y').'-01'){
  1222. // if($v['承印时间']>=date('Y').'-01'){
  1223. // // $target=Db::name('targetmonth')->where('name','加工毛利收入情况')->where('month',substr($v['年月'],-2,2))->value('month_target');
  1224. // // $list['series'][0]['name']=date('Y').'指标达成率';
  1225. // $list['series'][0]['name']='同比增减率百分比';
  1226. // $list['series'][0]['type']='line';
  1227. // $list['series'][0]['yAxisIndex']=1;
  1228. // // $list['series'][0]['data'][]=round($v[$name]/$target*100);
  1229. // $list['series'][0]['data'][]=round(($v[$name]-$result[$k-12][$name])/$result[$k-12][$name]*100);
  1230. // $list['series'][2]['name']=date('Y').'年';
  1231. // $list['series'][2]['type']='bar';
  1232. // $list['series'][2]['yAxisIndex']=0;
  1233. // $list['series'][2]['data'][]=round($v[$name]);
  1234. // }else{
  1235. // // $list['categories'][]=substr($v['年月'],-2,2);
  1236. // $list['categories'][]=substr($v['承印时间'],-2,2);
  1237. // $list['series'][1]['name']=(date('Y')-1).'年';
  1238. // $list['series'][1]['type']='bar';
  1239. // $list['series'][1]['yAxisIndex']=0;
  1240. // $list['series'][1]['data'][]=round($v[$name]);
  1241. // }
  1242. // }
  1243. // $res['status'] = 0;
  1244. // $res['msg'] = '';
  1245. // $res['data'] = $list;
  1246. // return json($res);
  1247. // }
  1248. /**
  1249. * 各版块业务承揽收入占比一览表
  1250. */
  1251. //CONCAT(LTRIM(CAST((SUM(db.集团出版社销售收入) * 100 / (SUM(db.总销售收入) - IFNULL(SUM(db.集团教材外销售收入), 0))) AS DECIMAL(10, 2)))) AS 系统图书,
  1252. //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))) + '%' 社会图书,
  1253. //CONCAT(LTRIM(CAST((SUM(db.外贸订单销售收入) * 100 / (SUM(db.总销售收入) - IFNULL(SUM(db.集团教材外销售收入), 0))) AS DECIMAL(10, 2)))) AS 外贸板块,
  1254. //CONCAT(LTRIM(CAST((SUM(db.期刊销售收入) * 100 / (SUM(db.总销售收入) - IFNULL(SUM(db.集团教材外销售收入), 0))) AS DECIMAL(10, 2)))) AS 期刊板块,
  1255. //CONCAT(LTRIM(CAST((SUM(db.集团教材内销售收入) * 100 / (SUM(db.总销售收入) - IFNULL(SUM(db.集团教材外销售收入), 0))) AS DECIMAL(10, 2)))) AS 教材板块,
  1256. //LTRIM(CAST((100 - SUM(db.总销售收入 - IFNULL(db.集团教材外销售收入, 0)) * 100 / NULLIF(SUM(db.总销售收入), 0)) AS DECIMAL(10, 2))) + '%' AS 过账业务,
  1257. //当年各版块业务承揽收入与占比一览表->缓存
  1258. public function percentageasc_redis(){
  1259. $redis = redis();
  1260. $redis_key = md5('percentageasc_redis');
  1261. $firstDayOfYear = date("Y-01-01");
  1262. $today = date("Y-m-d");
  1263. $sql = "SELECT
  1264. CONCAT(LTRIM(CAST((SUM(db.集团出版社销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 系统图书,
  1265. CONCAT(LTRIM(CAST(((SUM(db.其它板块销售收入) + SUM(db.上海出版社订单销售收入)) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 社会图书,
  1266. -- 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))) + '%' 社会图书,
  1267. CONCAT(LTRIM(CAST((SUM(db.外贸订单销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 外贸板块,
  1268. CONCAT(LTRIM(CAST((SUM(db.期刊销售收入) * 100 / (SUM(db.总销售收入))) AS DECIMAL(10, 2)))) AS 期刊板块,
  1269. CONCAT(LTRIM(CAST((SUM(db.集团教材内销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 教材板块,
  1270. CONCAT(TRIM(CAST(ROUND(SUM(db.集团教材外销售收入) / 10000, 2) * 100 / ROUND(SUM(db.总销售收入) / 10000, 2) AS DECIMAL(10, 2)))) AS '过账业务',
  1271. -- db.总销售收入 AS '总销售收入',
  1272. CAST(ROUND(SUM(db.总销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '总销售收入',
  1273. -- SUM(db.上海出版社订单销售收入) AS '上海出版社订单销售收入',
  1274. CAST(ROUND(SUM(db.上海出版社订单销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '上海出版社订单销售收入',
  1275. CAST(ROUND(SUM(db.集团出版社销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '系统图书(万元)',
  1276. CAST(ROUND(SUM(db.其它板块销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '社会图书(万元)',
  1277. CAST(ROUND(SUM(db.外贸订单销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '外贸板块(万元)',
  1278. CAST(ROUND(SUM(db.期刊销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '期刊板块(万元)',
  1279. CAST(ROUND(SUM(db.集团教材内销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '教材板块(万元)',
  1280. CAST(ROUND((SUM(db.总销售收入) - SUM(db.本级销售收入)) / 10000, 2) AS DECIMAL(10, 2)) AS '过账业务(万元)'
  1281. FROM
  1282. (SELECT DISTINCT
  1283. a.承印日期 日期,
  1284. t5.总销售收入,
  1285. t5.总销售收入 - IFNULL(t3.集团教材外销售收入, 0) 本级销售收入,
  1286. G.期刊销售收入,
  1287. T1.集团出版社销售收入,
  1288. t2.集团教材内销售收入,
  1289. t3.集团教材外销售收入,
  1290. t4.外贸订单销售收入,
  1291. t6.上海出版社订单销售收入,
  1292. t5.总销售收入 - IFNULL(G.期刊销售收入, 0) - IFNULL(T1.集团出版社销售收入, 0) - IFNULL(t2.集团教材内销售收入, 0) - IFNULL(t3.集团教材外销售收入, 0) - IFNULL(t4.外贸订单销售收入, 0) - IFNULL(t6.上海出版社订单销售收入, 0) 其它板块销售收入
  1293. FROM
  1294. (SELECT DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期 FROM MCYD) a
  1295. LEFT JOIN (SELECT dd.承印日期 承印时间,SUM(dd.不含税销售收入) 期刊销售收入 FROM
  1296. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1297. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型,
  1298. CHY 活源,
  1299. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 不含税销售收入
  1300. 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
  1301. 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.承印日期
  1302. LEFT JOIN (SELECT t.承印日期 承印时间,Sum(t.不含税销售收入) 集团出版社销售收入 FROM
  1303. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1304. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1305. CYJLX 印件类型,
  1306. CHY 活源,
  1307. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 不含税销售收入
  1308. 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
  1309. 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.承印日期
  1310. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 集团教材内销售收入 FROM
  1311. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1312. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1313. CYJLX 印件类型,
  1314. CHY 活源,
  1315. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1316. 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
  1317. 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.承印日期
  1318. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 集团教材外销售收入 FROM
  1319. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1320. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1321. CYJLX 印件类型,
  1322. CHY 活源,
  1323. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1324. 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
  1325. 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.承印日期
  1326. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 外贸订单销售收入 FROM
  1327. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1328. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1329. CYJLX 印件类型,
  1330. CHY 活源,
  1331. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1332. 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
  1333. 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.承印日期
  1334. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 总销售收入 FROM
  1335. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1336. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1337. CYJLX 印件类型,
  1338. CHY 活源,
  1339. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1340. 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
  1341. 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.承印日期
  1342. LEFT JOIN (SELECT t.承印日期 承印时间,Sum(t.销售收入不含税) 上海出版社订单销售收入 FROM
  1343. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1344. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1345. CYJLX 印件类型,
  1346. CHY 活源,
  1347. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1348. 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
  1349. 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.承印日期
  1350. )db WHERE 1 = 1
  1351. AND db.日期 >= '{$firstDayOfYear}'
  1352. AND db.日期 <= '{$today}'";
  1353. $res=Db::query($sql);
  1354. //将查询结果存入 Redis 缓存中
  1355. if ($res) {
  1356. $redis->set($redis_key, json_encode($res));
  1357. echo date("Y-m-d H:i:s").' 存进去了';
  1358. return json($res);
  1359. }
  1360. }
  1361. //去年各版块业务承揽收入与占比一览表->缓存
  1362. public function q_percentageasc_redis(){
  1363. $redis = redis();
  1364. $redis_key = md5('q_percentageasc_redis');
  1365. $firstDayOfLastYear = date("Y-01-01", strtotime("last year"));
  1366. $todayLastYear = date("Y-m-d", strtotime("last year"));
  1367. $sql = "SELECT
  1368. CONCAT(LTRIM(CAST((SUM(db.集团出版社销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 系统图书,
  1369. CONCAT(LTRIM(CAST(((SUM(db.其它板块销售收入) + SUM(db.上海出版社订单销售收入)) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 社会图书,
  1370. -- 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))) + '%' 社会图书,
  1371. CONCAT(LTRIM(CAST((SUM(db.外贸订单销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 外贸板块,
  1372. CONCAT(LTRIM(CAST((SUM(db.期刊销售收入) * 100 / (SUM(db.总销售收入))) AS DECIMAL(10, 2)))) AS 期刊板块,
  1373. CONCAT(LTRIM(CAST((SUM(db.集团教材内销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 教材板块,
  1374. CONCAT(TRIM(CAST(ROUND(SUM(db.集团教材外销售收入) / 10000, 2) * 100 / ROUND(SUM(db.总销售收入) / 10000, 2) AS DECIMAL(10, 2)))) AS '过账业务',
  1375. -- db.总销售收入 AS '总销售收入',
  1376. CAST(ROUND(SUM(db.总销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '总销售收入',
  1377. -- SUM(db.上海出版社订单销售收入) AS '上海出版社订单销售收入',
  1378. CAST(ROUND(SUM(db.上海出版社订单销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '上海出版社订单销售收入',
  1379. CAST(ROUND(SUM(db.集团出版社销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '系统图书(万元)',
  1380. CAST(ROUND(SUM(db.其它板块销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '社会图书(万元)',
  1381. CAST(ROUND(SUM(db.外贸订单销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '外贸板块(万元)',
  1382. CAST(ROUND(SUM(db.期刊销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '期刊板块(万元)',
  1383. CAST(ROUND(SUM(db.集团教材内销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '教材板块(万元)',
  1384. CAST(ROUND((SUM(db.总销售收入) - SUM(db.本级销售收入)) / 10000, 2) AS DECIMAL(10, 2)) AS '过账业务(万元)'
  1385. FROM
  1386. (SELECT DISTINCT
  1387. a.承印日期 日期,
  1388. t5.总销售收入,
  1389. t5.总销售收入 - IFNULL(t3.集团教材外销售收入, 0) 本级销售收入,
  1390. G.期刊销售收入,
  1391. T1.集团出版社销售收入,
  1392. t2.集团教材内销售收入,
  1393. t3.集团教材外销售收入,
  1394. t4.外贸订单销售收入,
  1395. t6.上海出版社订单销售收入,
  1396. t5.总销售收入 - IFNULL(G.期刊销售收入, 0) - IFNULL(T1.集团出版社销售收入, 0) - IFNULL(t2.集团教材内销售收入, 0) - IFNULL(t3.集团教材外销售收入, 0) - IFNULL(t4.外贸订单销售收入, 0) - IFNULL(t6.上海出版社订单销售收入, 0) 其它板块销售收入
  1397. FROM
  1398. (SELECT DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期 FROM MCYD) a
  1399. LEFT JOIN (SELECT dd.承印日期 承印时间,SUM(dd.不含税销售收入) 期刊销售收入 FROM
  1400. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1401. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型,
  1402. CHY 活源,
  1403. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 不含税销售收入
  1404. 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
  1405. 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.承印日期
  1406. LEFT JOIN (SELECT t.承印日期 承印时间,Sum(t.不含税销售收入) 集团出版社销售收入 FROM
  1407. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1408. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1409. CYJLX 印件类型,
  1410. CHY 活源,
  1411. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 不含税销售收入
  1412. 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
  1413. 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.承印日期
  1414. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 集团教材内销售收入 FROM
  1415. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1416. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1417. CYJLX 印件类型,
  1418. CHY 活源,
  1419. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1420. 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
  1421. 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.承印日期
  1422. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 集团教材外销售收入 FROM
  1423. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1424. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1425. CYJLX 印件类型,
  1426. CHY 活源,
  1427. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1428. 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
  1429. 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.承印日期
  1430. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 外贸订单销售收入 FROM
  1431. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1432. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1433. CYJLX 印件类型,
  1434. CHY 活源,
  1435. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1436. 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
  1437. 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.承印日期
  1438. LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 总销售收入 FROM
  1439. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1440. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1441. CYJLX 印件类型,
  1442. CHY 活源,
  1443. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1444. 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
  1445. 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.承印日期
  1446. LEFT JOIN (SELECT t.承印日期 承印时间,Sum(t.销售收入不含税) 上海出版社订单销售收入 FROM
  1447. (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账,
  1448. DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期,
  1449. CYJLX 印件类型,
  1450. CHY 活源,
  1451. CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税
  1452. 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
  1453. 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.承印日期
  1454. )db WHERE 1 = 1
  1455. AND db.日期 >= '{$firstDayOfLastYear}' AND db.日期 <= '{$todayLastYear}'";
  1456. $res=Db::query($sql);
  1457. //将查询结果存入 Redis 缓存中
  1458. if ($res) {
  1459. $redis->set($redis_key, json_encode($res));
  1460. echo date("Y-m-d H:i:s").' 存进去了';
  1461. return json($res);
  1462. }
  1463. // $redis->set($redis_key, json_encode($res));
  1464. // echo date("Y-m-d H:i:s").' 存进去了';
  1465. // return json($res);
  1466. }
  1467. //各版块业务承揽收入与占比一览表->接口
  1468. public function tecl_list() {
  1469. $redis = redis();
  1470. $result = json_decode($redis->get(md5('percentageasc_redis')), true);
  1471. $qresult = json_decode($redis->get(md5('q_percentageasc_redis')), true);
  1472. // 初始化返回数据
  1473. $list = [
  1474. 'categories' => ['系统图书', '社会业务', '外贸板块', '期刊板块', '教材板块', '其他业务'],
  1475. 'series' => []
  1476. ];
  1477. // 判断数据是否为空
  1478. if (empty($result) || empty($qresult)) {
  1479. $res = [
  1480. 'status' => 0,
  1481. 'msg' => '暂无数据',
  1482. 'data' => $list
  1483. ];
  1484. return json($res);
  1485. }
  1486. // 去年与今年收入占比
  1487. foreach ($result as $index => $rv) {
  1488. $list['series'][0]['name'] = '同比增减百分比';
  1489. $list['series'][0]['type'] = 'line';
  1490. $list['series'][0]['yAxisIndex'] = 1;
  1491. // 确保数据不为 0,避免除以 0 的错误
  1492. $currentValueSystem = $rv['系统图书(万元)'] ?: 1;
  1493. $currentValueSocial = $rv['社会图书(万元)'] ?: 1;
  1494. $currentValueTrade = $rv['外贸板块(万元)'] ?: 1;
  1495. $currentValueJournal = $rv['期刊板块(万元)'] ?: 1;
  1496. $currentValueTextbook = $rv['教材板块(万元)'] ?: 1;
  1497. $currentValuePosting = $rv['过账业务(万元)'] ?: 1;
  1498. $qcurrentValueSystem = $qresult[$index]['系统图书(万元)'] ?: 1;
  1499. $qcurrentValueSocial = $qresult[$index]['社会图书(万元)'] ?: 1;
  1500. $qcurrentValueTrade = $qresult[$index]['外贸板块(万元)'] ?: 1;
  1501. $qcurrentValueJournal = $qresult[$index]['期刊板块(万元)'] ?: 1;
  1502. $qcurrentValueTextbook = $qresult[$index]['教材板块(万元)'] ?: 1;
  1503. $qcurrentValuePosting = $qresult[$index]['过账业务(万元)'] ?: 1;
  1504. // 计算同比增减百分比
  1505. // 计算同比增减百分比,避免除以 0 的错误
  1506. $list['series'][0]['data'][] = $qcurrentValueSystem != 0
  1507. ? round((($currentValueSystem - $qcurrentValueSystem) / $qcurrentValueSystem) * 100, 2)
  1508. : 0;
  1509. $list['series'][0]['data'][] = $qcurrentValueSocial != 0
  1510. ? round((($currentValueSocial - $qcurrentValueSocial) / $qcurrentValueSocial) * 100, 2)
  1511. : 0;
  1512. $list['series'][0]['data'][] = $qcurrentValueTrade != 0
  1513. ? round((($currentValueTrade - $qcurrentValueTrade) / $qcurrentValueTrade) * 100, 2)
  1514. : 0;
  1515. $list['series'][0]['data'][] = $qcurrentValueJournal != 0
  1516. ? round((($currentValueJournal - $qcurrentValueJournal) / $qcurrentValueJournal) * 100, 2)
  1517. : 0;
  1518. $list['series'][0]['data'][] = $qcurrentValueTextbook != 0
  1519. ? round((($currentValueTextbook - $qcurrentValueTextbook) / $qcurrentValueTextbook) * 100, 2)
  1520. : 0;
  1521. $list['series'][0]['data'][] = $qcurrentValuePosting != 0
  1522. ? round((($currentValuePosting - $qcurrentValuePosting) / $qcurrentValuePosting) * 100, 2)
  1523. : 0;
  1524. }
  1525. // 去年数据
  1526. foreach ($qresult as $v) {
  1527. $list['series'][1]['name'] = (date('Y') - 1) . '年';
  1528. $list['series'][1]['type'] = 'bar';
  1529. $list['series'][1]['yAxisIndex'] = 0;
  1530. $list['series'][1]['data'][] = round($v['系统图书(万元)']);
  1531. $list['series'][1]['data'][] = round($v['社会图书(万元)'] + $v['上海出版社订单销售收入']);
  1532. $list['series'][1]['data'][] = round($v['外贸板块(万元)']);
  1533. $list['series'][1]['data'][] = round($v['期刊板块(万元)']);
  1534. $list['series'][1]['data'][] = round($v['教材板块(万元)']);
  1535. $list['series'][1]['data'][] = round($v['过账业务(万元)']);
  1536. }
  1537. // 当年数据
  1538. foreach ($result as $v) {
  1539. $list['series'][2]['name'] = date('Y') . '年';
  1540. $list['series'][2]['type'] = 'bar';
  1541. $list['series'][2]['yAxisIndex'] = 0;
  1542. $list['series'][2]['data'][] = round($v['系统图书(万元)']);
  1543. $list['series'][2]['data'][] = round($v['社会图书(万元)'] + $v['上海出版社订单销售收入']);
  1544. $list['series'][2]['data'][] = round($v['外贸板块(万元)']);
  1545. $list['series'][2]['data'][] = round($v['期刊板块(万元)']);
  1546. $list['series'][2]['data'][] = round($v['教材板块(万元)']);
  1547. $list['series'][2]['data'][] = round($v['过账业务(万元)']);
  1548. }
  1549. // 返回结果
  1550. $res = [
  1551. 'status' => 0,
  1552. 'msg' => '',
  1553. 'data' => $list
  1554. ];
  1555. return json($res);
  1556. }
  1557. // public function tecl_list(){
  1558. // $redis = redis();
  1559. // $result = json_decode($redis->get(md5('percentageasc_redis')),true);
  1560. //
  1561. // $qresult = json_decode($redis->get(md5('q_percentageasc_redis')),true);
  1562. // $list['categories']=['系统图书','社会业务','外贸板块','期刊板块','教材板块','其他业务'];
  1563. // //去年与今年收入占比
  1564. // foreach ($result as $index => $rv) {
  1565. // $list['series'][0]['name'] = '同比增减百分比';
  1566. // $list['series'][0]['type'] = 'line';
  1567. // $list['series'][0]['yAxisIndex'] = 1;
  1568. // // 确保2023年的收入不为0,如果为0则使用1代替,以避免除以0的错误
  1569. // $currentValueSystem = $rv['系统图书(万元)'] ?: 1;
  1570. // $currentValueSocial = $rv['社会图书(万元)'] ?: 1;
  1571. // $currentValueTrade = $rv['外贸板块(万元)'] ?: 1;
  1572. // $currentValueJournal = $rv['期刊板块(万元)'] ?: 1;
  1573. // $currentValueTextbook = $rv['教材板块(万元)'] ?: 1;
  1574. // $currentValuePosting = $rv['过账业务(万元)'] ?: 1;
  1575. //
  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. // // 计算2023年收入占2022年收入的百分比
  1584. // $list['series'][0]['data'][] = round((($currentValueSystem - $qcurrentValueSystem) / $qcurrentValueSystem) * 100, 2);
  1585. // $list['series'][0]['data'][] = round((($currentValueSocial - $qcurrentValueSocial) / $qcurrentValueSocial) * 100, 2);
  1586. // $list['series'][0]['data'][] = round((($currentValueTrade - $qcurrentValueTrade) / $qcurrentValueTrade) * 100, 2);
  1587. // $list['series'][0]['data'][] = round((($currentValueJournal - $qcurrentValueJournal) / $qcurrentValueJournal) * 100, 2);
  1588. // $list['series'][0]['data'][] = round((($currentValueTextbook - $qcurrentValueTextbook) / $qcurrentValueTextbook) * 100, 2);
  1589. // $list['series'][0]['data'][] = round((($currentValuePosting - $qcurrentValuePosting) / $qcurrentValuePosting) * 100, 2);
  1590. // }
  1591. // //去年
  1592. // foreach($qresult as $v){
  1593. // $list['series'][1]['name']=(date('Y')-1).'年';
  1594. // $list['series'][1]['type']='bar';
  1595. // $list['series'][1]['yAxisIndex']=0;
  1596. // $list['series'][1]['data'][]=round($v['系统图书(万元)']);
  1597. // $list['series'][1]['data'][]=round($v['社会图书(万元)'] + $v['上海出版社订单销售收入']);
  1598. // $list['series'][1]['data'][]=round($v['外贸板块(万元)']);
  1599. // $list['series'][1]['data'][]=round($v['期刊板块(万元)']);
  1600. // $list['series'][1]['data'][]=round($v['教材板块(万元)']);
  1601. // $list['series'][1]['data'][]=round($v['过账业务(万元)']);
  1602. // }
  1603. // //当年
  1604. // foreach($result as $v){
  1605. // $list['series'][2]['name']=date('Y').'年';
  1606. // $list['series'][2]['type']='bar';
  1607. // $list['series'][2]['yAxisIndex']=0;
  1608. // $list['series'][2]['data'][]=round($v['系统图书(万元)']);
  1609. // $list['series'][2]['data'][]=round($v['社会图书(万元)'] + $v['上海出版社订单销售收入']);
  1610. // $list['series'][2]['data'][]=round($v['外贸板块(万元)']);
  1611. // $list['series'][2]['data'][]=round($v['期刊板块(万元)']);
  1612. // $list['series'][2]['data'][]=round($v['教材板块(万元)']);
  1613. // $list['series'][2]['data'][]=round($v['过账业务(万元)']);
  1614. // }
  1615. // $res['status'] = 0;
  1616. // $res['msg'] = '';
  1617. // $res['data'] = $list;
  1618. // return json($res);
  1619. // }
  1620. //各版块业务承揽收入与占比百分比前三(左侧)->接口
  1621. public function percentageasc(){
  1622. $redis = redis();
  1623. $result = json_decode($redis->get(md5('percentageasc_redis')),true);
  1624. $list = [];
  1625. // 判断 $result 是否为空
  1626. if(empty($result) || $result == null) {
  1627. $list[0]['name'] = ' ';
  1628. $list[0]['value'] = 0;
  1629. $list[1]['name'] = ' ';
  1630. $list[1]['value'] = 0;
  1631. $list[2]['name'] = ' ';
  1632. $list[2]['value'] = 0;
  1633. } else {
  1634. foreach($result as $v){
  1635. $list[0]['name'] = ' ';
  1636. $list[0]['value'] = empty($v['系统图书']) ? 0 : $v['系统图书'];
  1637. $list[1]['name'] = ' ';
  1638. $list[1]['value'] = empty($v['外贸板块']) ? 0 : $v['外贸板块'];
  1639. $list[2]['name'] = ' ';
  1640. $list[2]['value'] = empty($v['教材板块']) ? 0 : $v['教材板块'];
  1641. }
  1642. }
  1643. $res['status'] = 0;
  1644. $res['msg'] = '';
  1645. $res['data'] = $list;
  1646. return json($res);
  1647. }
  1648. //各版块业务承揽收入与占比百分比后三(右侧)->接口
  1649. public function percentagedesc(){
  1650. $redis = redis();
  1651. $result = json_decode($redis->get(md5('percentageasc_redis')),true);
  1652. $list = [];
  1653. // 判断 $result 是否为空
  1654. if(empty($result) || $result == null) {
  1655. $list[0]['name'] = ' ';
  1656. $list[0]['value'] = 0;
  1657. $list[1]['name'] = ' ';
  1658. $list[1]['value'] = 0;
  1659. $list[2]['name'] = ' ';
  1660. $list[2]['value'] = 0;
  1661. } else {
  1662. foreach($result as $v){
  1663. $list[0]['name'] = ' ';
  1664. $list[0]['value'] = empty($v['社会图书']) ? 0 : $v['社会图书'];
  1665. $list[1]['name'] = ' ';
  1666. $list[1]['value'] = empty($v['期刊板块']) ? 0 : $v['期刊板块'];
  1667. $list[2]['name'] = ' ';
  1668. $list[2]['value'] = empty($v['过账业务']) ? 0 : $v['过账业务'];
  1669. }
  1670. }
  1671. $res['status'] = 0;
  1672. $res['msg'] = '';
  1673. $res['data'] = $list;
  1674. return json($res);
  1675. }
  1676. /**
  1677. * 图书板块业务结构分析
  1678. */
  1679. //特殊开本、16开、大32开、小16开->缓存
  1680. public function book_one_redis(){
  1681. $redis = redis();
  1682. $redis_key = md5('book_one_redis');
  1683. $sql = "SELECT
  1684. *
  1685. FROM
  1686. (
  1687. SELECT
  1688. 1 AS 序号,
  1689. aa.年份,
  1690. '开本' AS 分类,
  1691. aa.类别,
  1692. ROUND(SUM(aa.nyssl) / 10000, 2) AS '色令(万)',
  1693. ROUND(SUM(aa.nyssl) * 100.0 / SUM(SUM(aa.nyssl)) OVER (PARTITION BY aa.年份), 2) AS 占比
  1694. FROM
  1695. (
  1696. SELECT
  1697. YEAR(a.DCYRQ) AS 年份,
  1698. a.CCYDH,
  1699. a.CYJMC,
  1700. b.NKB,
  1701. CASE
  1702. WHEN a.CZWKB like '16%' THEN '16开'
  1703. WHEN a.CZWKB like '小16%' THEN '小16开'
  1704. WHEN a.CZWKB like '大16%' THEN '大16开'
  1705. WHEN a.CZWKB like '32%' THEN '32开'
  1706. WHEN a.CZWKB like '大32%' THEN '大32开'
  1707. ELSE '特殊开本'
  1708. END AS 类别,
  1709. b.CDXMC,
  1710. b.nyssl
  1711. FROM
  1712. MCYD a
  1713. LEFT JOIN SCYDDX b ON a.ICYDID = b.ICYDID
  1714. WHERE
  1715. 1 = 1
  1716. AND a.DCYRQ BETWEEN '{$this->start_time()}' AND '{$this->end_time()}'
  1717. ) aa
  1718. GROUP BY
  1719. aa.年份,
  1720. aa.类别
  1721. ) bb
  1722. ORDER BY
  1723. bb.占比 DESC;";
  1724. $res=Db::query($sql);
  1725. // echo "<pre>";print_r($res);echo "</pre>";die;
  1726. //将查询结果存入 Redis 缓存中
  1727. $redis->set($redis_key, json_encode($res));
  1728. echo date("Y-m-d H:i:s").' 存进去了';
  1729. return json($res);
  1730. }
  1731. //32开->接口
  1732. public function book_one_dsek() {
  1733. $name = '32开';
  1734. $redis = redis();
  1735. $result = json_decode($redis->get(md5('book_one_redis')), true);
  1736. // 初始化返回数据
  1737. $res = [];
  1738. $res['status'] = 0;
  1739. $res['msg'] = '';
  1740. $res['data'] = 0; // 默认返回 0
  1741. // 如果数据非空,进行筛选处理
  1742. if (!empty($result)) {
  1743. foreach ($result as $v) {
  1744. if ($v['类别'] == $name) {
  1745. $res['data'] = $v['占比'];
  1746. break; // 找到匹配项后退出循环
  1747. }
  1748. }
  1749. }
  1750. return json($res);
  1751. }
  1752. // 小16开->接口
  1753. public function book_one_xslk(){
  1754. $name='小16开';
  1755. $redis = redis();
  1756. $result = json_decode($redis->get(md5('book_one_redis')),true);
  1757. // 初始化返回数据
  1758. $res = [];
  1759. $res['status'] = 0;
  1760. $res['msg'] = '';
  1761. $res['data'] = 0; // 默认返回 0
  1762. // 如果数据非空,进行筛选处理
  1763. if (!empty($result)) {
  1764. foreach ($result as $v) {
  1765. if ($v['类别'] == $name) {
  1766. $res['data'] = $v['占比'];
  1767. break; // 找到匹配项后退出循环
  1768. }
  1769. }
  1770. }
  1771. return json($res);
  1772. }
  1773. // 特殊开本->接口
  1774. public function book_one_tskb(){
  1775. $name='特殊开本';
  1776. $redis = redis();
  1777. $result = json_decode($redis->get(md5('book_one_redis')),true);
  1778. // 初始化返回数据
  1779. $res = [];
  1780. $res['status'] = 0;
  1781. $res['msg'] = '';
  1782. $res['data'] = 0; // 默认返回 0
  1783. // 如果数据非空,进行筛选处理
  1784. if (!empty($result)) {
  1785. foreach ($result as $v) {
  1786. if ($v['类别'] == $name) {
  1787. $res['data'] = $v['占比'];
  1788. break; // 找到匹配项后退出循环
  1789. }
  1790. }
  1791. }
  1792. return json($res);
  1793. }
  1794. // 16开->接口
  1795. public function book_one_slk(){
  1796. $name='16开';
  1797. $redis = redis();
  1798. $result = json_decode($redis->get(md5('book_one_redis')),true);
  1799. // 初始化返回数据
  1800. $res = [];
  1801. $res['status'] = 0;
  1802. $res['msg'] = '';
  1803. $res['data'] = 0; // 默认返回 0
  1804. // 如果数据非空,进行筛选处理
  1805. if (!empty($result)) {
  1806. foreach ($result as $v) {
  1807. if ($v['类别'] == $name) {
  1808. $res['data'] = $v['占比'];
  1809. break; // 找到匹配项后退出循环
  1810. }
  1811. }
  1812. }
  1813. return json($res);
  1814. }
  1815. // 大16开->接口
  1816. public function book_one_dslk(){
  1817. $name='大16开';
  1818. $redis = redis();
  1819. $result = json_decode($redis->get(md5('book_one_redis')),true);
  1820. // 初始化返回数据
  1821. $res = [];
  1822. $res['status'] = 0;
  1823. $res['msg'] = '';
  1824. $res['data'] = 0; // 默认返回 0
  1825. // 如果数据非空,进行筛选处理
  1826. if (!empty($result)) {
  1827. foreach ($result as $v) {
  1828. if ($v['类别'] == $name) {
  1829. $res['data'] = $v['占比'];
  1830. break; // 找到匹配项后退出循环
  1831. }
  1832. }
  1833. }
  1834. return json($res);
  1835. }
  1836. // 大32开->接口
  1837. public function book_one_selk(){
  1838. $name='大32开';
  1839. $redis = redis();
  1840. $result = json_decode($redis->get(md5('book_one_redis')),true);
  1841. // 初始化返回数据
  1842. $res = [];
  1843. $res['status'] = 0;
  1844. $res['msg'] = '';
  1845. $res['data'] = 0; // 默认返回 0
  1846. // 如果数据非空,进行筛选处理
  1847. if (!empty($result)) {
  1848. foreach ($result as $v) {
  1849. if ($v['类别'] == $name) {
  1850. $res['data'] = $v['占比'];
  1851. break; // 找到匹配项后退出循环
  1852. }
  1853. }
  1854. }
  1855. return json($res);
  1856. }
  1857. //单色、彩色、双色->缓存
  1858. public function book_two_redis(){
  1859. $redis = redis();
  1860. $redis_key = md5('book_two_redis');
  1861. $sql = "SELECT
  1862. 1 AS 序号,
  1863. aa.年份,
  1864. '彩色化' AS 分类,
  1865. aa.类别,
  1866. ROUND(SUM(aa.nyssl) / 10000, 2) AS '色令(万)',
  1867. ROUND(SUM(aa.nyssl) * 100.0 / SUM(SUM(aa.nyssl)) OVER (PARTITION BY aa.年份), 2) AS 占比
  1868. FROM
  1869. (
  1870. SELECT
  1871. YEAR(a.DCYRQ) AS 年份,
  1872. a.CCYDH,
  1873. a.CYJMC,
  1874. b.CSC,
  1875. CASE
  1876. WHEN b.CSC IN ('1/1', '1/0', '0/1') THEN '单色'
  1877. WHEN b.CSC IN ('2/2', '2/0', '0/2', '2/1', '1/2') THEN '双色'
  1878. ELSE '彩色'
  1879. END AS 类别,
  1880. b.CDXMC,
  1881. b.nyssl
  1882. FROM
  1883. MCYD a
  1884. LEFT JOIN SCYDDX b ON a.ICYDID = b.ICYDID
  1885. WHERE
  1886. 1 = 1
  1887. AND a.DCYRQ BETWEEN '{$this->start_time()}' AND '{$this->end_time()}'
  1888. ) aa
  1889. GROUP BY
  1890. aa.年份,
  1891. aa.类别
  1892. ORDER BY
  1893. 占比 DESC;";
  1894. $res=Db::query($sql);
  1895. // echo "<pre>";print_r($res);echo "</pre>";die;
  1896. //将查询结果存入 Redis 缓存中
  1897. $redis->set($redis_key, json_encode($res));
  1898. echo date("Y-m-d H:i:s").' 存进去了';
  1899. return json($res);
  1900. }
  1901. // 单色->接口
  1902. public function book_two_ds(){
  1903. $name='单色';
  1904. $redis = redis();
  1905. $result = json_decode($redis->get(md5('book_two_redis')),true);
  1906. // 初始化返回数据
  1907. $res = [];
  1908. $res['status'] = 0;
  1909. $res['msg'] = '';
  1910. $res['data'] = 0; // 默认返回 0
  1911. // 如果数据非空,进行筛选处理
  1912. if (!empty($result)) {
  1913. foreach ($result as $v) {
  1914. if ($v['类别'] == $name) {
  1915. $res['data'] = $v['占比'];
  1916. break; // 找到匹配项后退出循环
  1917. }
  1918. }
  1919. }
  1920. return json($res);
  1921. }
  1922. //彩色->接口
  1923. public function book_two_cs(){
  1924. $name='彩色';
  1925. $redis = redis();
  1926. $result = json_decode($redis->get(md5('book_two_redis')),true);
  1927. // 初始化返回数据
  1928. $res = [];
  1929. $res['status'] = 0;
  1930. $res['msg'] = '';
  1931. $res['data'] = 0; // 默认返回 0
  1932. // 如果数据非空,进行筛选处理
  1933. if (!empty($result)) {
  1934. foreach ($result as $v) {
  1935. if ($v['类别'] == $name) {
  1936. $res['data'] = $v['占比'];
  1937. break; // 找到匹配项后退出循环
  1938. }
  1939. }
  1940. }
  1941. return json($res);
  1942. }
  1943. // 双色->接口
  1944. public function book_two_ss(){
  1945. $name='双色';
  1946. $redis = redis();
  1947. $result = json_decode($redis->get(md5('book_two_redis')),true);
  1948. // 初始化返回数据
  1949. $res = [];
  1950. $res['status'] = 0;
  1951. $res['msg'] = '';
  1952. $res['data'] = 0; // 默认返回 0
  1953. // 如果数据非空,进行筛选处理
  1954. if (!empty($result)) {
  1955. foreach ($result as $v) {
  1956. if ($v['类别'] == $name) {
  1957. $res['data'] = $v['占比'];
  1958. break; // 找到匹配项后退出循环
  1959. }
  1960. }
  1961. }
  1962. return json($res);
  1963. }
  1964. //无线胶钉、锁线胶钉、裸背锁线、骑马钉、平背精装、圆背精装->缓存
  1965. public function book_third_redis(){
  1966. $redis = redis();
  1967. $redis_key = md5('book_third_redis');
  1968. $sql = "SELECT
  1969. 1 AS 序号,
  1970. aa.年份,
  1971. '订法' AS 分类,
  1972. aa.类别,
  1973. ROUND(SUM(aa.nyssl) / 10000, 2) AS '色令(万)',
  1974. ROUND(SUM(aa.nyssl) * 100.0 / SUM(SUM(aa.nyssl)) OVER (PARTITION BY aa.年份), 2) AS 占比
  1975. FROM
  1976. (
  1977. SELECT
  1978. YEAR(a.DCYRQ) AS 年份,
  1979. a.CCYDH,
  1980. a.CYJMC,
  1981. CASE
  1982. WHEN a.CDF = '无线胶订' THEN '无线胶订'
  1983. WHEN a.CDF = '圆背精装' THEN '圆背精装'
  1984. WHEN a.CDF = '索线胶订' THEN '索线胶订'
  1985. WHEN a.CDF = '裸背锁线' THEN '裸背锁线'
  1986. WHEN a.CDF = '骑订' THEN '骑订'
  1987. ELSE '其他'
  1988. END AS 类别,
  1989. b.CDXMC,
  1990. b.nyssl
  1991. FROM
  1992. MCYD a
  1993. LEFT JOIN SCYDDX b ON a.ICYDID = b.ICYDID
  1994. WHERE
  1995. 1 = 1
  1996. AND a.DCYRQ BETWEEN '{$this->start_time()}' AND '{$this->end_time()}'
  1997. ) aa
  1998. GROUP BY
  1999. aa.年份,
  2000. aa.类别
  2001. ORDER BY
  2002. 占比 DESC;";
  2003. $res=Db::query($sql);
  2004. // echo "<pre>";print_r($res);echo "</pre>";die;
  2005. //将查询结果存入 Redis 缓存中
  2006. $redis->set($redis_key, json_encode($res));
  2007. echo date("Y-m-d H:i:s").' 存进去了';
  2008. return json($res);
  2009. }
  2010. // 无线胶订->接口
  2011. public function book_third_wxjd(){
  2012. $name = '无线胶订';
  2013. $redis = redis();
  2014. $result = json_decode($redis->get(md5('book_third_redis')), true);
  2015. $res = [];
  2016. $res['status'] = 0;
  2017. $res['msg'] = '';
  2018. $res['data'] = 0; // 默认占比为0
  2019. foreach ($result as $v) {
  2020. if ($v['类别'] == $name) {
  2021. $res['data'] = $v['占比'];
  2022. break; // 匹配到后跳出循环,无需继续查找
  2023. }
  2024. }
  2025. return json($res);
  2026. }
  2027. // 索线胶订->接口
  2028. public function book_third_sxjd(){
  2029. $name='索线胶订';
  2030. $redis = redis();
  2031. $result = json_decode($redis->get(md5('book_third_redis')), true);
  2032. $res = [];
  2033. $res['status'] = 0;
  2034. $res['msg'] = '';
  2035. $res['data'] = 0; // 默认占比为0
  2036. foreach ($result as $v) {
  2037. if ($v['类别'] == $name) {
  2038. $res['data'] = $v['占比'];
  2039. break; // 匹配到后跳出循环,无需继续查找
  2040. }
  2041. }
  2042. return json($res);
  2043. }
  2044. // 圆背精装->接口
  2045. public function book_third_ybjz(){
  2046. $name='圆背精装';
  2047. $redis = redis();
  2048. $result = json_decode($redis->get(md5('book_third_redis')), true);
  2049. $res = [];
  2050. $res['status'] = 0;
  2051. $res['msg'] = '';
  2052. $res['data'] = 0; // 默认占比为0
  2053. foreach ($result as $v) {
  2054. if ($v['类别'] == $name) {
  2055. $res['data'] = $v['占比'];
  2056. break; // 匹配到后跳出循环,无需继续查找
  2057. }
  2058. }
  2059. return json($res);
  2060. }
  2061. // 骑马订->接口
  2062. public function book_third_qmd(){
  2063. $name='骑订';
  2064. $redis = redis();
  2065. $result = json_decode($redis->get(md5('book_third_redis')), true);
  2066. $res = [];
  2067. $res['status'] = 0;
  2068. $res['msg'] = '';
  2069. $res['data'] = 0; // 默认占比为0
  2070. foreach ($result as $v) {
  2071. if ($v['类别'] == $name) {
  2072. $res['data'] = $v['占比'];
  2073. break; // 匹配到后跳出循环,无需继续查找
  2074. }
  2075. }
  2076. return json($res);
  2077. }
  2078. // 裸背锁线->接口
  2079. public function book_third_lbsx(){
  2080. $name='裸背锁线';
  2081. $redis = redis();
  2082. $result = json_decode($redis->get(md5('book_third_redis')), true);
  2083. $res = [];
  2084. $res['status'] = 0;
  2085. $res['msg'] = '';
  2086. $res['data'] = 0; // 默认占比为0
  2087. foreach ($result as $v) {
  2088. if ($v['类别'] == $name) {
  2089. $res['data'] = $v['占比'];
  2090. break; // 匹配到后跳出循环,无需继续查找
  2091. }
  2092. }
  2093. return json($res);
  2094. }
  2095. // 平背精装->接口
  2096. public function book_third_pbjz(){
  2097. $name='其他';
  2098. $redis = redis();
  2099. $result = json_decode($redis->get(md5('book_third_redis')), true);
  2100. $res = [];
  2101. $res['status'] = 0;
  2102. $res['msg'] = '';
  2103. $res['data'] = 0; // 默认占比为0
  2104. foreach ($result as $v) {
  2105. if ($v['类别'] == $name) {
  2106. $res['data'] = $v['占比'];
  2107. break; // 匹配到后跳出循环,无需继续查找
  2108. }
  2109. }
  2110. return json($res);
  2111. }
  2112. //重版书、新书-缓存->缓存
  2113. public function book_fouth_redis(){
  2114. $redis = redis();
  2115. $redis_key = md5('book_fouth_redis');
  2116. $sql = "SELECT
  2117. 1 AS 序号,
  2118. aa.年份,
  2119. '新书/重版' AS 分类,
  2120. aa.类别,
  2121. ROUND(SUM(aa.nyssl) / 10000, 2) AS '色令(万)',
  2122. ROUND(SUM(aa.nyssl) / SUM(SUM(aa.nyssl)) OVER (PARTITION BY aa.年份) * 100, 2) AS 占比
  2123. FROM
  2124. (SELECT
  2125. YEAR(a.DCYRQ) AS 年份,
  2126. a.CCYDH,
  2127. a.CYJMC,
  2128. CASE
  2129. WHEN IFNULL(a.CYC, 0) = 1 THEN '新书'
  2130. WHEN IFNULL(a.CYC, 0) = 0 THEN '其他'
  2131. ELSE '重版书'
  2132. END AS 类别,
  2133. b.CDXMC,
  2134. b.nyssl
  2135. FROM
  2136. MCYD a
  2137. LEFT JOIN SCYDDX b ON a.ICYDID = b.ICYDID
  2138. WHERE
  2139. 1 = 1
  2140. AND a.DCYRQ BETWEEN '{$this->start_time()}' AND '{$this->end_time()}') aa
  2141. GROUP BY
  2142. aa.年份,
  2143. aa.类别
  2144. ORDER BY
  2145. aa.类别 DESC";
  2146. $res=Db::query($sql);
  2147. // echo "<pre>";print_r($res);echo "</pre>";die;
  2148. //将查询结果存入 Redis 缓存中
  2149. $redis->set($redis_key, json_encode($res));
  2150. echo date("Y-m-d H:i:s").' 存进去了';
  2151. return json($res);
  2152. }
  2153. // 重版书->接口
  2154. public function book_fouth_cbs(){
  2155. $name='重版书';
  2156. $redis = redis();
  2157. $result = json_decode($redis->get(md5('book_fouth_redis')),true);
  2158. // 初始化返回数据
  2159. $res = [];
  2160. $res['status'] = 0;
  2161. $res['msg'] = '';
  2162. $res['data'] = 0; // 默认返回 0
  2163. // 如果数据非空,进行筛选处理
  2164. if (!empty($result)) {
  2165. foreach ($result as $v) {
  2166. if ($v['类别'] == $name) {
  2167. $res['data'] = $v['占比'];
  2168. break; // 找到匹配项后退出循环
  2169. }
  2170. }
  2171. }
  2172. return json($res);
  2173. }
  2174. // 新书->接口
  2175. public function book_fouth_xs(){
  2176. $redis = redis();
  2177. $result = json_decode($redis->get(md5('book_fouth_redis')),true);
  2178. $categories = ['新书', '其他'];
  2179. $totalPercentage = 0;
  2180. foreach ($result as $v) {
  2181. if (in_array($v['类别'], $categories)) {
  2182. $totalPercentage += $v['占比'];
  2183. }
  2184. }
  2185. $res=[];
  2186. $res['status'] = 0;
  2187. $res['msg'] = '';
  2188. $res['data'] = $totalPercentage;
  2189. return json($res);
  2190. // $name='新书';
  2191. // $redis = redis();
  2192. // $result = json_decode($redis->get(md5('book_fouth_redis')),true);
  2193. // echo "<pre>";
  2194. // print_r($result);
  2195. // echo "<pre>";
  2196. // $res=[];
  2197. // $res['status'] = 0;
  2198. // $res['msg'] = '';
  2199. // foreach($result as $v){
  2200. // if($v['类别']==$name){
  2201. // $res['data'] = $v['占比'];
  2202. // }
  2203. // }
  2204. // return json($res);
  2205. }
  2206. /**
  2207. * 第二页(客户分析)
  2208. */
  2209. //当日承揽订单量,每日承揽订单金额->缓存
  2210. public function yesterday_amount_redis(){
  2211. $redis = redis();
  2212. $redis_key = md5('yesterday_amount_redis');
  2213. $sql = "SELECT aa.承印日期,COUNT(aa.订单号) 订单量,SUM(aa.合同金额)订单金额,SUM(aa.nwshjje)未税订单金额
  2214. FROM (SELECT CONVERT(a.DCYRQ,CHAR(10)) 承印日期,
  2215. a.CCYDH 订单号,
  2216. a.CYWDWMC 委印单位,
  2217. a.CYJMC 印件名称,
  2218. a.NJSHJJE 合同金额,
  2219. a.nwshjje
  2220. FROM MCYD a
  2221. WHERE CONVERT(a.DCYRQ,CHAR(10)) = CONVERT(DATE_SUB(NOW(),INTERVAL 0 DAY),CHAR(10)))aa
  2222. GROUP BY aa.承印日期 ";
  2223. $result=Db::query($sql);
  2224. $res['status']=0;
  2225. $res['msg']='';
  2226. if($result==[]){
  2227. $res['data']=[['name'=>' ','value'=>0],['name'=>' ','value'=>0]];
  2228. }else{
  2229. $res['data']=[['name'=>' ','value'=>$result[0]['订单量']],['name'=>' ','value'=>round($result[0]['未税订单金额']/10000)]];
  2230. }
  2231. //将查询结果存入 Redis 缓存中
  2232. $redis->set($redis_key, json_encode($res));
  2233. echo date("Y-m-d H:i:s").' 存进去了';
  2234. return json($res);
  2235. }
  2236. //当日承揽订单量,每日承揽订单金额->接口
  2237. public function yesterday_amount(){
  2238. $redis = redis();
  2239. $result = $redis->get(md5('yesterday_amount_redis'));
  2240. return $result;
  2241. }
  2242. //年度承揽收入前五客户业务结构分析->缓存
  2243. public function chenglanshouru_redis_ssssss(){
  2244. $redis = redis();
  2245. $redis_key = md5('chenglanshouru_redis');
  2246. $sql = "
  2247. SELECT cc.客户,
  2248. cc.印数 总册数,
  2249. cc.销售收入(万元),
  2250. bb.印法,
  2251. bb.分类,
  2252. cast( bb.色令 as decimal(18,0)) 色令
  2253. FROM (SELECT aa.客户,
  2254. aa.印数,
  2255. Cast(aa.销售收入 AS DECIMAL(18, 2)) AS '销售收入(万元)'
  2256. FROM (SELECT zb.业务单位 客户,
  2257. SUM(zb.印数) 印数,
  2258. IFnull(Sum(zb.合并金额), 0.000) / 10000 销售收入
  2259. FROM (SELECT CASE
  2260. WHEN IFnull(ldz, 0) = 1 THEN '是'
  2261. ELSE '否'
  2262. END 登账,
  2263. CONVERT( DCYRQ, CHAR(10)) AS 承印日期,
  2264. CCYDH AS 订单号,
  2265. ord.IFCYDID,
  2266. CYJMC AS 印件名称,
  2267. CASE
  2268. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2269. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2270. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2271. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2272. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2273. OR CYWDWMC='浙江省新华书店集团有限公司'
  2274. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2275. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2276. WHEN CYWDWMC='浙江日报报业集团'
  2277. OR CYWDWMC='共产党员杂志社'
  2278. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2279. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2280. OR CYWDWMC='浙江出版传媒有限公司'
  2281. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2282. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2283. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2284. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2285. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2286. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2287. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2288. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2289. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2290. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2291. WHEN CYWDWMC='上海人民出版社有限公司'
  2292. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2293. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2294. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2295. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2296. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2297. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2298. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2299. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2300. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2301. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2302. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2303. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2304. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2305. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2306. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2307. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2308. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2309. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2310. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2311. ELSE CYWDWMC
  2312. END AS 业务单位,
  2313. cyjlx 印件类型,
  2314. NCS AS 印数,
  2315. CZWKB AS 开本,
  2316. CDF AS 订法,
  2317. NZWYZ AS 正文印张,
  2318. CASE
  2319. WHEN IFnull(ldz, 0) = 0 THEN( IFnull(nwshjje, 0) )
  2320. ELSE ( IFnull(tj.sum_namount, 0) )
  2321. END 合并金额
  2322. FROM MCYD Ord
  2323. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  2324. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  2325. iCydid,
  2326. CASE
  2327. WHEN ldz = 1 THEN 1
  2328. ELSE 0
  2329. END ldz
  2330. FROM TJob
  2331. WHERE lzfbs = 0
  2332. GROUP BY iCydid,
  2333. nclje,
  2334. itax,
  2335. ldz) tj
  2336. ON ord.ICYDID = tj.iCydid
  2337. WHERE ord.ICYDSTATE > 0) zb
  2338. WHERE CONVERT(zb.承印日期, CHAR(10)) >= '{$this->start_time()}'
  2339. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$this->end_time()}'
  2340. GROUP BY zb.业务单位) aa
  2341. ORDER BY aa.销售收入 DESC LIMIT 5)cc
  2342. LEFT JOIN (SELECT CYWDWMC,
  2343. CYF 印法,
  2344. CASE
  2345. WHEN cyf = '彩轮' THEN '彩色轮转'
  2346. WHEN cyf = '胶轮' THEN '黑白轮转'
  2347. WHEN cyf = '彩平' THEN '彩色平版'
  2348. WHEN cyf = '胶平' THEN '黑白平版'
  2349. ELSE NULL
  2350. END 分类,
  2351. cl.色令
  2352. FROM (SELECT IFnull(Sum(dx.NYSSL), 0) AS 色令,
  2353. CASE
  2354. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2355. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2356. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2357. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2358. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2359. OR CYWDWMC='浙江省新华书店集团有限公司'
  2360. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2361. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2362. WHEN CYWDWMC='浙江日报报业集团'
  2363. OR CYWDWMC='共产党员杂志社'
  2364. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2365. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2366. OR CYWDWMC='浙江出版传媒有限公司'
  2367. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2368. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2369. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2370. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2371. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2372. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2373. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2374. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2375. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2376. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2377. WHEN CYWDWMC='上海人民出版社有限公司'
  2378. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2379. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2380. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2381. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2382. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2383. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2384. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2385. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2386. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2387. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2388. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2389. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2390. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2391. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2392. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2393. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2394. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2395. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2396. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2397. ELSE CYWDWMC
  2398. END AS CYWDWMC,
  2399. dx.CYF
  2400. FROM MCYD cyd
  2401. LEFT JOIN SCYDDX DX
  2402. ON cyd.ICYDID = dx.ICYDID
  2403. WHERE cyd.ICYDSTATE > 0
  2404. AND cyd.icydid > 0
  2405. AND CYF IN( '彩轮', '彩平', '胶平', '胶轮' )
  2406. AND cyd.cyjlx <> '数字产品'
  2407. AND cyd.chy <> '集团教材外'
  2408. AND CONVERT(DCYRQ,CHAR(10)) >= '{$this->start_time()}'
  2409. AND CONVERT(DCYRQ,CHAR(10)) <= '{$this->end_time()}'
  2410. GROUP BY cyd.CYWDWMC,
  2411. CYF) cl)bb
  2412. ON cc.客户 = bb.CYWDWMC
  2413. ";
  2414. $result=Db::query($sql);
  2415. $redis->set($redis_key, json_encode($result));
  2416. echo date("Y-m-d H:i:s").' 存进去了';
  2417. return $result;
  2418. }
  2419. //年度承揽收入前五客户业务结构分析->接口
  2420. public function year_salewcl_sssss(){
  2421. $redis = redis();
  2422. $results = json_decode($redis->get(md5('chenglanshouru_redis')), true);
  2423. // 用于存储合并后数据的新数组
  2424. $mergedData = [];
  2425. // 遍历原始数组
  2426. foreach ($results as $item) {
  2427. // 使用 "khmc" 和 "fl" 作为合并的键
  2428. $khmc = $item["客户"];
  2429. $fl = $item["分类"];
  2430. // 构建合并后数组的键
  2431. $key = $khmc . "|" . $fl;
  2432. // 如果已经存在该 "khmc" 和 "fl" 的条目,则将数量相加
  2433. if (isset($mergedData[$key])) {
  2434. $mergedData[$key]["色令"] += $item["色令"];
  2435. } else {
  2436. // 否则,创建一个新条目
  2437. $mergedData[$key] = $item;
  2438. }
  2439. }
  2440. // 将合并后数组转换回原始格式
  2441. $result = array_values($mergedData);
  2442. $list['columns'] = [
  2443. ['name' => '客户', 'id' => 'khmc', 'width' => '50', 'autoWrap' => "true", 'textAlign' => 'left'],
  2444. ['name' => '总册数(万)', 'id' => 'zcs', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
  2445. ['name' => '销售收入(万元)', 'id' => 'xsss', 'width' => '20', 'autoWrap' => "true", 'textAlign' => 'center'],
  2446. ['name' => '类别', 'id' => 'fl', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
  2447. ['name' => '色令(万)', 'id' => 'sl', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
  2448. ];
  2449. $selectedRows = [];
  2450. if(empty($result)) {
  2451. $list['rows'][] = [
  2452. 'khmc' => '',
  2453. 'zcs' => '',
  2454. 'xsss' =>'',
  2455. 'yf' => '',
  2456. 'fl' => '',
  2457. 'sl' => '',
  2458. ];
  2459. $selectedRows = $list['rows'];
  2460. }else{
  2461. foreach ($result as $v) {
  2462. $selectedRows[] = [
  2463. 'khmc' => $v['客户'],
  2464. 'zcs' => number_format($v['总册数'] /10000,2),
  2465. 'xsss' => $v['销售收入(万元)'],
  2466. 'yf' => $v['印法'],
  2467. 'fl' => $v['分类'],
  2468. 'sl' => number_format($v['色令'] /10000,2),
  2469. ];
  2470. }
  2471. }
  2472. $res = [
  2473. 'status' => 0,
  2474. 'msg' => '',
  2475. 'data' => ['columns' => $list['columns'], 'rows' => $selectedRows],
  2476. ];
  2477. return json($res);
  2478. }
  2479. //年度承揽收入前五客户业务结构分析->缓存
  2480. public function chenglanshouru_redis(){
  2481. // $kais = explode(" ", $this->start_time());
  2482. // $jies = explode(" ", $this->end_time());
  2483. // $kai = $kais[0];
  2484. // $jie = $jies[0];
  2485. $kai = date('Y-m-d',strtotime('-1 year'));
  2486. $jie = date('Y-m-d');
  2487. $redis = redis();
  2488. $redis_key = md5('chenglanshouru_redis');
  2489. $sql = "SELECT * FROM (
  2490. SELECT bb.分类,
  2491. ROW_NUMBER() OVER (PARTITION BY bb.分类 ORDER BY bb.色令 DESC) AS 排名,
  2492. cc.客户,
  2493. cast( bb.色令 as decimal(18,0)) 色令,
  2494. cc.印数 AS 总册数,
  2495. cc.销售收入(万元),
  2496. bb.印法
  2497. FROM (SELECT aa.客户,
  2498. aa.印数,
  2499. Cast(aa.销售收入 AS DECIMAL(18, 2)) AS '销售收入(万元)'
  2500. FROM (SELECT zb.业务单位 客户,
  2501. Sum(zb.印数) 印数,
  2502. IFnull(Sum(zb.合并金额), 0.000) / 10000 销售收入
  2503. FROM (SELECT CASE
  2504. WHEN IFnull(ldz, 0) = 1 THEN '是'
  2505. ELSE '否'
  2506. END 登账,
  2507. CONVERT( DCYRQ, CHAR(10)) AS 承印日期,
  2508. CCYDH AS 订单号,
  2509. ord.IFCYDID,
  2510. CYJMC AS 印件名称,
  2511. CASE
  2512. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2513. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2514. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2515. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2516. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2517. OR CYWDWMC='浙江省新华书店集团有限公司'
  2518. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2519. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2520. WHEN CYWDWMC='浙江日报报业集团'
  2521. OR CYWDWMC='共产党员杂志社'
  2522. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2523. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2524. OR CYWDWMC='浙江出版传媒有限公司'
  2525. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2526. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2527. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2528. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2529. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2530. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2531. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2532. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2533. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2534. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2535. WHEN CYWDWMC='上海人民出版社有限公司'
  2536. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2537. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2538. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2539. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2540. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2541. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2542. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2543. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2544. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2545. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2546. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2547. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2548. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2549. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2550. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2551. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2552. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2553. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2554. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2555. ELSE CYWDWMC
  2556. END AS 业务单位,
  2557. cyjlx 印件类型,
  2558. NCS AS 印数,
  2559. CZWKB AS 开本,
  2560. CDF AS 订法,
  2561. NZWYZ AS 正文印张,
  2562. CASE
  2563. WHEN IFnull(ldz, 0) = 0 THEN( IFnull(nwshjje, 0) )
  2564. ELSE ( IFnull(tj.sum_namount, 0) )
  2565. END 合并金额
  2566. FROM MCYD Ord
  2567. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  2568. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  2569. iCydid,
  2570. CASE
  2571. WHEN ldz = 1 THEN 1
  2572. ELSE 0
  2573. END ldz
  2574. FROM TJob
  2575. WHERE lzfbs = 0
  2576. GROUP BY iCydid,
  2577. nclje,
  2578. itax,
  2579. ldz) tj
  2580. ON ord.ICYDID = tj.iCydid
  2581. WHERE ord.ICYDSTATE > 0) zb
  2582. WHERE CONVERT(zb.承印日期, CHAR(10)) >= '{$kai}'
  2583. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$jie}'
  2584. GROUP BY zb.业务单位 ) aa
  2585. ORDER BY aa.销售收入 DESC LIMIT 20)cc
  2586. LEFT JOIN (SELECT CYWDWMC,
  2587. CYF 印法,
  2588. CASE
  2589. WHEN cyf = '彩轮' THEN '彩色轮转'
  2590. WHEN cyf = '胶轮' THEN '黑白轮转'
  2591. WHEN cyf = '彩平' THEN '彩色平版'
  2592. WHEN cyf = '胶平' THEN '黑白平版'
  2593. ELSE NULL
  2594. END 分类,
  2595. cl.色令
  2596. FROM (SELECT IFnull(Sum(dx.NYSSL), 0) AS 色令,
  2597. CASE
  2598. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2599. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2600. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2601. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2602. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2603. OR CYWDWMC='浙江省新华书店集团有限公司'
  2604. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2605. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2606. WHEN CYWDWMC='浙江日报报业集团'
  2607. OR CYWDWMC='共产党员杂志社'
  2608. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2609. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2610. OR CYWDWMC='浙江出版传媒有限公司'
  2611. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2612. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2613. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2614. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2615. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2616. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2617. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2618. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2619. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2620. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2621. WHEN CYWDWMC='上海人民出版社有限公司'
  2622. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2623. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2624. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2625. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2626. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2627. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2628. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2629. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2630. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2631. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2632. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2633. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2634. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2635. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2636. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2637. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2638. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2639. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2640. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2641. ELSE CYWDWMC
  2642. END AS CYWDWMC,
  2643. dx.CYF
  2644. FROM MCYD cyd
  2645. LEFT JOIN SCYDDX DX
  2646. ON cyd.ICYDID = dx.ICYDID
  2647. WHERE cyd.ICYDSTATE > 0
  2648. AND cyd.icydid > 0
  2649. AND CYF IN( '彩轮', '彩平', '胶平', '胶轮' )
  2650. AND cyd.cyjlx <> '数字产品'
  2651. AND cyd.chy <> '集团教材外'
  2652. AND CONVERT(DCYRQ,CHAR(10)) >= '{$kai}'
  2653. AND CONVERT(DCYRQ,CHAR(10)) <= '{$jie}'
  2654. GROUP BY cyd.CYWDWMC,
  2655. CYF) cl)bb
  2656. ON cc.客户 = bb.CYWDWMC
  2657. )
  2658. hb
  2659. WHERE hb.排名<=5
  2660. -- and hb.客户='浙江出版传媒股份有限公司(含省出版公司)'
  2661. GROUP BY hb.分类,hb.排名, hb.客户,HB.色令,hb.总册数,hb.销售收入(万元),hb.印法
  2662. ORDER BY hb.分类,hb.排名 ";
  2663. $result=Db::query($sql);
  2664. $redis->set($redis_key, json_encode($result));
  2665. echo date("Y-m-d H:i:s").' 存进去了';
  2666. return $result;
  2667. }
  2668. //年度承揽收入前五客户业务结构分析->接口
  2669. public function year_salewcl(){
  2670. $redis = redis();
  2671. $results = json_decode($redis->get(md5('chenglanshouru_redis')), true);
  2672. $list['columns'] = [
  2673. ['name' => '分类', 'id' => 'fl', 'width' => '17', 'autoWrap' => "true", 'textAlign' => 'center'],
  2674. ['name' => '排名', 'id' => 'pm', 'width' => '11', 'autoWrap' => "true", 'textAlign' => 'center'],
  2675. ['name' => '客户', 'id' => 'khmc', 'width' => '40', 'autoWrap' => "true", 'textAlign' => 'left'],
  2676. ['name' => '总册数(万)', 'id' => 'zcs', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
  2677. ['name' => '销售收入(万元)', 'id' => 'xsss', 'width' => '20', 'autoWrap' => "true", 'textAlign' => 'center'],
  2678. ['name' => '色令(万)', 'id' => 'sl', 'width' => '15', 'autoWrap' => "true", 'textAlign' => 'center'],
  2679. ];
  2680. $selectedRows = [];
  2681. if(empty($results)) {
  2682. $list['rows'][] = [
  2683. 'fl' => '',
  2684. 'pm' =>'',
  2685. 'khmc' => '',
  2686. 'sl' => '',
  2687. 'zcs' => '',
  2688. 'xsss' =>'',
  2689. // 'yf' => '',
  2690. ];
  2691. $selectedRows = $list['rows'];
  2692. }else{
  2693. foreach ($results as $v) {
  2694. $selectedRows[] = [
  2695. 'fl' => $v['分类'],
  2696. 'pm' => $v['排名'],
  2697. 'khmc' => $v['客户'],
  2698. 'sl' => number_format($v['色令'] /10000,2),
  2699. 'zcs' => number_format($v['总册数'] /10000,2),
  2700. 'xsss' => $v['销售收入(万元)'],
  2701. 'yf' => $v['印法'],
  2702. ];
  2703. }
  2704. }
  2705. $res = [
  2706. 'status' => 0,
  2707. 'msg' => '',
  2708. 'data' => ['columns' => $list['columns'], 'rows' => $selectedRows],
  2709. ];
  2710. return json($res);
  2711. }
  2712. //年度考核毛利收入同比上升和下滑一览表->缓存
  2713. public function year_profit_redis(){
  2714. $redis = redis();
  2715. $redis_key = md5('year_profit_redis');
  2716. $januaryFirst = date('Y-01-01');
  2717. $today = date('Y-m-d');
  2718. $sql = "SELECT aa.客户,
  2719. aa.考核计算毛利(万元),
  2720. aa.考核计算毛利增减(万元),
  2721. CASE
  2722. WHEN IFNULL(aa.上年考核计算毛利(万元), 0) = 0 THEN 'New'
  2723. ELSE Ltrim(Cast( aa.考核计算毛利增减(万元)*100/aa.上年考核计算毛利(万元) AS DECIMAL(10, 2)))
  2724. + '%'
  2725. END AS 毛利增长率
  2726. FROM (SELECT a.客户,
  2727. CONVERT(Round(a.销售收入 / 10000, 2),DECIMAL(10, 2)) AS '销售收入(万元)',
  2728. CONVERT(Round(a.上年销售收入 / 10000, 2),DECIMAL(10, 2)) AS '上年销售收入(万元)',
  2729. CONVERT(Round(a.销售收入增减 / 10000, 2),DECIMAL(10, 2)) AS '销售收入增减(万元)',
  2730. CONVERT(Round(a.销售工价 / 10000, 2),DECIMAL(10, 2)) AS '销售工价(万元)',
  2731. CONVERT(Round(a.上年销售工价 / 10000, 2),DECIMAL(10, 2)) AS '上年销售工价(万元)',
  2732. CONVERT(Round(a.销售工价增减 / 10000, 2),DECIMAL(10, 2)) AS '销售工价增减(万元)',
  2733. CONVERT(Round(a.考核计算毛利 / 10000, 2),DECIMAL(10, 2)) AS '考核计算毛利(万元)',
  2734. CONVERT(Round(a.上年考核计算毛利 / 10000, 2),DECIMAL(10, 2))AS '上年考核计算毛利(万元)',
  2735. CONVERT(Round(a.考核计算毛利增减 / 10000, 2),DECIMAL(10, 2))AS '考核计算毛利增减(万元)'
  2736. FROM ((SELECT 1 AS flag,
  2737. IFNULL(dq.业务单位, hb.业务单位) 客户,
  2738. IFNULL(dq.销售收入, 000) 销售收入,
  2739. IFNULL(hb.上年销售收入, 0.000) 上年销售收入,
  2740. IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000) 销售收入增减,
  2741. CASE
  2742. WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
  2743. WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
  2744. AND IFNULL(dq.销售收入, 000) > 0 THEN 1
  2745. ELSE 0
  2746. END AS 销售收入同期比,
  2747. IFNULL(dq.销售工价, 000) 销售工价,
  2748. IFNULL(hb.上年销售工价, 0.000) 上年销售工价,
  2749. IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000) 销售工价增减,
  2750. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  2751. IFNULL(hb.上年考核计算毛利, 0.000) 上年考核计算毛利,
  2752. IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
  2753. CASE
  2754. WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
  2755. WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
  2756. AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
  2757. ELSE 0
  2758. END AS 毛利同期比
  2759. FROM (SELECT zb.业务单位 业务单位,
  2760. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  2761. IFNULL(Sum(zb.合并工价), 0.000) 销售工价,
  2762. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
  2763. FROM (SELECT CASE
  2764. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  2765. ELSE '否'
  2766. END 登账,
  2767. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  2768. CCYDH AS 订单号,
  2769. CYJMC AS 印件名称,
  2770. CASE
  2771. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  2772. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  2773. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  2774. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  2775. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  2776. OR CYWDWMC='浙江省新华书店集团有限公司'
  2777. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  2778. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  2779. WHEN CYWDWMC='浙江日报报业集团'
  2780. OR CYWDWMC='共产党员杂志社'
  2781. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  2782. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  2783. OR CYWDWMC='浙江出版传媒有限公司'
  2784. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  2785. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  2786. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  2787. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  2788. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  2789. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  2790. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  2791. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  2792. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  2793. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  2794. WHEN CYWDWMC='上海人民出版社有限公司'
  2795. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  2796. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  2797. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  2798. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  2799. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  2800. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  2801. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  2802. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  2803. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  2804. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  2805. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  2806. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  2807. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  2808. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  2809. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  2810. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  2811. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  2812. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  2813. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  2814. ELSE CYWDWMC
  2815. END AS 业务单位,
  2816. cyjlx 印件类型,
  2817. NCS AS 印数,
  2818. CZWKB AS 开本,
  2819. CDF AS 订法,
  2820. NZWYZ AS 正文印张,
  2821. CASE
  2822. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  2823. ELSE
  2824. CASE
  2825. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  2826. + CASE
  2827. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2828. ELSE ( CASE
  2829. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2830. ELSE ( CASE
  2831. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2832. ELSE IFNULL(tj.sum_clje, 0)
  2833. END )
  2834. END )
  2835. END = 0
  2836. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  2837. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  2838. + CASE
  2839. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2840. ELSE ( CASE
  2841. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2842. ELSE ( CASE
  2843. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2844. ELSE IFNULL(tj.sum_clje, 0)
  2845. END )
  2846. END )
  2847. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  2848. END
  2849. END AS 考核计算毛利不含税,
  2850. CASE
  2851. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  2852. ELSE
  2853. CASE
  2854. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  2855. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  2856. 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)
  2857. END
  2858. END AS 考核计算工价毛利不含税,
  2859. ( CASE
  2860. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  2861. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  2862. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2863. ELSE ( CASE
  2864. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2865. ELSE ( CASE
  2866. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2867. ELSE IFNULL(tj.sum_clje, 0)
  2868. END )
  2869. END )
  2870. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  2871. END ) AS 考核计算料价毛利不含税,
  2872. CASE
  2873. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  2874. ELSE ( IFNULL(tj.sum_namount, 0) )
  2875. END 合并金额,
  2876. CASE
  2877. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  2878. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  2879. END 合并工价,
  2880. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  2881. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  2882. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  2883. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  2884. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  2885. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  2886. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  2887. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  2888. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  2889. ord.nzkl AS 折扣率,
  2890. CASE
  2891. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  2892. ELSE ( CASE
  2893. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  2894. + CASE
  2895. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2896. ELSE ( CASE
  2897. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2898. ELSE ( CASE
  2899. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2900. ELSE IFNULL(tj.sum_clje, 0)
  2901. END )
  2902. END )
  2903. END = 0
  2904. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  2905. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  2906. + CASE
  2907. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2908. ELSE ( CASE
  2909. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2910. ELSE ( CASE
  2911. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2912. ELSE IFNULL(tj.sum_clje, 0)
  2913. END )
  2914. END )
  2915. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  2916. END )
  2917. END AS 生产毛利不含税,
  2918. CASE
  2919. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  2920. ELSE ( CASE
  2921. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  2922. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  2923. 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)
  2924. END )
  2925. END AS 生产工价毛利不含税,
  2926. IFNULL(tj.sum_clje, 0) - ( CASE
  2927. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2928. ELSE ( CASE
  2929. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2930. ELSE ( CASE
  2931. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2932. ELSE IFNULL(tj.sum_clje, 0)
  2933. END )
  2934. END )
  2935. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  2936. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  2937. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  2938. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  2939. IFNULL(tb_in.sum_ngjje_in, 0)
  2940. + CASE
  2941. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2942. ELSE ( CASE
  2943. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2944. ELSE ( CASE
  2945. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2946. ELSE IFNULL(tj.sum_clje, 0)
  2947. END )
  2948. END )
  2949. END AS 厂内传票合计不含税,
  2950. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  2951. CASE
  2952. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  2953. ELSE ( CASE
  2954. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  2955. ELSE ( CASE
  2956. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  2957. ELSE IFNULL(tj.sum_clje, 0)
  2958. END )
  2959. END )
  2960. END AS 厂内传票料价不含税,
  2961. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  2962. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  2963. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  2964. CHY AS 活源,
  2965. CCLBMMC AS 承揽部门,
  2966. CYWYXM AS 业务员,
  2967. lwcbs AS 是否完工,
  2968. Dwcrq AS 完工日期,
  2969. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  2970. LJQBS AS 是否结清,
  2971. djqrq AS 结清日期,
  2972. izlconfirm AS 是否销货,
  2973. dzlconfirmrq AS 销货日期,
  2974. nzlconfirmje AS 销货金额,
  2975. nzlysje AS 销货应收,
  2976. IFNULL(ipaytime, 0) AS 帐龄,
  2977. ( CASE
  2978. WHEN ljqbs = 0
  2979. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  2980. ELSE 0
  2981. END ) AS 付款周期,
  2982. ( CASE
  2983. WHEN ljqbs = 0
  2984. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  2985. ELSE 0
  2986. END ) AS 过期天数,
  2987. ( CASE
  2988. WHEN bsfsk = 1 THEN 1
  2989. ELSE 0
  2990. END ) AS 是否收款,
  2991. nysje AS 预收款,
  2992. fskje AS 收款金额,
  2993. ( CASE
  2994. WHEN bsfdjfp = 1 THEN 1
  2995. ELSE 0
  2996. END ) AS '是否开票',
  2997. ffpje AS 发票金额,
  2998. cfph AS 发票号,
  2999. cfprq AS 发票日期,
  3000. ( CASE
  3001. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3002. ELSE 0
  3003. END ) AS 未开完票金额,
  3004. ( CASE
  3005. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  3006. ELSE 0
  3007. END ) AS 发票未收款金额,
  3008. iselforder AS 是否异常,
  3009. cselftype AS 异常类型,
  3010. CASE
  3011. WHEN bsfdjfp = 1 THEN ( CASE
  3012. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3013. ELSE 0
  3014. END )
  3015. ELSE ( CASE
  3016. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  3017. ELSE ( CASE
  3018. WHEN nzlconfirmje = 0 THEN nhjje
  3019. ELSE nzlconfirmje
  3020. END )
  3021. END )
  3022. END 未开票
  3023. FROM MCYD Ord
  3024. LEFT JOIN (SELECT Sum(CASE
  3025. WHEN hz.dz = 1 THEN hz.nhjje
  3026. ELSE hz.传票预计价
  3027. END) AS sum_nhjje_in,
  3028. Sum(CASE
  3029. WHEN hz.dz = 1 THEN hz.nhjje
  3030. ELSE hz.传票预计价
  3031. END) AS sum_ngjje_in,
  3032. Sum(CASE
  3033. WHEN hz.dz = 1 THEN hz.nclje
  3034. ELSE hz.nclje
  3035. END) AS sum_nclje_in,
  3036. hz.ICYDID
  3037. FROM (SELECT yjj.传票预计价单号,
  3038. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3039. yjj.iCYDID,
  3040. d.cjjdh 计价单号,
  3041. d.ccydh 订单号,
  3042. d.cbz 备注,
  3043. d.ngjje,
  3044. d.nclje,
  3045. IFNULL(d.iwjg, 0) iwjg,
  3046. IFNULL(d.lzfbs, 0) lzfbs,
  3047. d.nhjje,
  3048. IFNULL(d.ldz, 0) dz,
  3049. yjj.bShbz
  3050. FROM (SELECT b.csccpbh 传票预计价单号,
  3051. a.ccydh,
  3052. a.icydid,
  3053. Sum(c.fje) 传票预计价,
  3054. b.bshbz
  3055. FROM MCYD a
  3056. LEFT JOIN sccp b
  3057. ON a.icydid = b.icydid
  3058. LEFT JOIN ZbHjXm c
  3059. ON c.sccpid = b.sccpid
  3060. WHERE b.bOutProcess = '0 '
  3061. GROUP BY b.csccpbh,
  3062. a.icydid,
  3063. a.CCYDH,
  3064. b.bshbz,
  3065. b.bOutProcess) yjj
  3066. LEFT JOIN tbluey d
  3067. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3068. WHERE hz.iwjg = 0
  3069. AND hz.bshbz = 1
  3070. AND hz.lzfbs = 0
  3071. GROUP BY hz.ICYDID) tb_in
  3072. ON ord.icydid = tb_in.iCydid
  3073. LEFT JOIN (SELECT fw.iCYDID,
  3074. sum_nhjje_out,
  3075. sum_ngjje_out,
  3076. sum_nclje_out,
  3077. bz.cbz
  3078. FROM (SELECT Cast(Sum(( CASE
  3079. WHEN hz.dz = 0 THEN hz.传票预计价
  3080. ELSE hz.nhjje
  3081. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  3082. Cast(Sum(( CASE
  3083. WHEN hz.dz = 0 THEN hz.传票预计价
  3084. ELSE hz.nhjje
  3085. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  3086. Cast(Sum(CASE
  3087. WHEN hz.dz = 0 THEN hz.nclje
  3088. ELSE hz.nclje
  3089. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  3090. iCydid
  3091. FROM (SELECT yjj.传票预计价单号,
  3092. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3093. yjj.iCYDID,
  3094. d.cjjdh 计价单号,
  3095. d.ccydh 订单号,
  3096. d.cbz 备注,
  3097. d.ngjje,
  3098. d.nclje,
  3099. d.itax,
  3100. IFNULL(d.iwjg, 0) iwjg,
  3101. IFNULL(d.lzfbs, 0) lzfbs,
  3102. d.nhjje,
  3103. IFNULL(d.ldz, 0) dz,
  3104. yjj.bShbz
  3105. FROM (SELECT b.csccpbh 传票预计价单号,
  3106. a.ccydh,
  3107. a.icydid,
  3108. Sum(c.fje) 传票预计价,
  3109. b.bshbz
  3110. FROM MCYD a
  3111. LEFT JOIN sccp b
  3112. ON a.icydid = b.icydid
  3113. LEFT JOIN ZbHjXm c
  3114. ON c.sccpid = b.sccpid
  3115. WHERE b.bOutProcess = '1 '
  3116. GROUP BY b.csccpbh,
  3117. a.icydid,
  3118. a.CCYDH,
  3119. b.bshbz,
  3120. b.bOutProcess) yjj
  3121. LEFT JOIN tbluey d
  3122. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3123. WHERE hz.iwjg = 1
  3124. AND hz.lzfbs = 0
  3125. GROUP BY hz.ICYDID) fw
  3126. LEFT JOIN (SELECT icydid,
  3127. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  3128. WHERE icydid = a.icydid) AS cbz
  3129. FROM TBluey a
  3130. GROUP BY icydid) bz
  3131. ON bz.icydid = fw.iCYDID) tb_out
  3132. ON ord.icydid = tb_out.iCydid
  3133. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  3134. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  3135. iCydid,
  3136. CASE
  3137. WHEN ldz = 1 THEN 1
  3138. ELSE 0
  3139. END ldz
  3140. FROM TJob
  3141. WHERE lzfbs = 0
  3142. GROUP BY iCydid,
  3143. nclje,
  3144. itax,
  3145. ldz) tj
  3146. ON ord.ICYDID = tj.iCydid
  3147. WHERE ord.ICYDSTATE > 0
  3148. AND 1 = 1) zb
  3149. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
  3150. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  3151. GROUP BY zb.业务单位) dq
  3152. LEFT JOIN (SELECT zb1.业务单位,
  3153. Sum(zb1.合并金额) 上年销售收入,
  3154. Sum(zb1.合并工价) 上年销售工价,
  3155. Sum(zb1.考核计算毛利不含税)上年考核计算毛利
  3156. FROM (SELECT CASE
  3157. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  3158. ELSE '否'
  3159. END 登账,
  3160. CONVERT(DCYRQ, CHAR(10)) AS 承印日期,
  3161. CCYDH AS 订单号,
  3162. CYJMC AS 印件名称,
  3163. CASE
  3164. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  3165. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  3166. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  3167. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  3168. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  3169. OR CYWDWMC='浙江省新华书店集团有限公司'
  3170. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  3171. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  3172. WHEN CYWDWMC='浙江日报报业集团'
  3173. OR CYWDWMC='共产党员杂志社'
  3174. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  3175. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  3176. OR CYWDWMC='浙江出版传媒有限公司'
  3177. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  3178. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  3179. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  3180. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  3181. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  3182. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  3183. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  3184. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  3185. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  3186. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  3187. WHEN CYWDWMC='上海人民出版社有限公司'
  3188. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  3189. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  3190. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  3191. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  3192. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  3193. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  3194. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  3195. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  3196. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  3197. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  3198. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  3199. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  3200. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  3201. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  3202. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  3203. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  3204. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  3205. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  3206. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  3207. ELSE CYWDWMC
  3208. END AS 业务单位,
  3209. cyjlx 印件类型,
  3210. NCS AS 印数,
  3211. CZWKB AS 开本,
  3212. CDF AS 订法,
  3213. NZWYZ AS 正文印张,
  3214. cbz 发外备注,
  3215. CASE
  3216. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  3217. ELSE
  3218. CASE
  3219. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  3220. + CASE
  3221. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3222. ELSE ( CASE
  3223. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3224. ELSE ( CASE
  3225. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3226. ELSE IFNULL(tj.sum_clje, 0)
  3227. END )
  3228. END )
  3229. END = 0
  3230. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3231. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3232. + CASE
  3233. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3234. ELSE ( CASE
  3235. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3236. ELSE ( CASE
  3237. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3238. ELSE IFNULL(tj.sum_clje, 0)
  3239. END )
  3240. END )
  3241. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3242. END
  3243. END AS 考核计算毛利不含税,
  3244. CASE
  3245. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  3246. ELSE
  3247. CASE
  3248. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3249. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3250. 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)
  3251. END
  3252. END AS 考核计算工价毛利不含税,
  3253. ( CASE
  3254. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  3255. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  3256. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3257. ELSE ( CASE
  3258. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3259. ELSE ( CASE
  3260. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3261. ELSE IFNULL(tj.sum_clje, 0)
  3262. END )
  3263. END )
  3264. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  3265. END ) AS 考核计算料价毛利不含税,
  3266. CASE
  3267. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  3268. ELSE ( IFNULL(tj.sum_namount, 0) )
  3269. END 合并金额,
  3270. CASE
  3271. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  3272. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  3273. END 合并工价,
  3274. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  3275. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  3276. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  3277. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  3278. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  3279. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  3280. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  3281. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  3282. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  3283. ord.nzkl AS 折扣率,
  3284. CASE
  3285. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3286. ELSE ( CASE
  3287. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  3288. + CASE
  3289. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3290. ELSE ( CASE
  3291. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3292. ELSE ( CASE
  3293. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3294. ELSE IFNULL(tj.sum_clje, 0)
  3295. END )
  3296. END )
  3297. END = 0
  3298. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3299. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3300. + CASE
  3301. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3302. ELSE ( CASE
  3303. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3304. ELSE ( CASE
  3305. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3306. ELSE IFNULL(tj.sum_clje, 0)
  3307. END )
  3308. END )
  3309. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3310. END )
  3311. END AS 生产毛利不含税,
  3312. CASE
  3313. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3314. ELSE ( CASE
  3315. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3316. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3317. 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)
  3318. END )
  3319. END AS 生产工价毛利不含税,
  3320. IFNULL(tj.sum_clje, 0) - ( CASE
  3321. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3322. ELSE ( CASE
  3323. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3324. ELSE ( CASE
  3325. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3326. ELSE IFNULL(tj.sum_clje, 0)
  3327. END )
  3328. END )
  3329. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  3330. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  3331. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  3332. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  3333. IFNULL(tb_in.sum_ngjje_in, 0)
  3334. + CASE
  3335. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3336. ELSE ( CASE
  3337. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3338. ELSE ( CASE
  3339. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3340. ELSE IFNULL(tj.sum_clje, 0)
  3341. END )
  3342. END )
  3343. END AS 厂内传票合计不含税,
  3344. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  3345. CASE
  3346. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3347. ELSE ( CASE
  3348. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3349. ELSE ( CASE
  3350. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3351. ELSE IFNULL(tj.sum_clje, 0)
  3352. END )
  3353. END )
  3354. END AS 厂内传票料价不含税,
  3355. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  3356. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  3357. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  3358. CHY AS 活源,
  3359. CCLBMMC AS 承揽部门,
  3360. CYWYXM AS 业务员,
  3361. lwcbs AS 是否完工,
  3362. Dwcrq AS 完工日期,
  3363. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  3364. LJQBS AS 是否结清,
  3365. djqrq AS 结清日期,
  3366. izlconfirm AS 是否销货,
  3367. dzlconfirmrq AS 销货日期,
  3368. nzlconfirmje AS 销货金额,
  3369. nzlysje AS 销货应收,
  3370. IFNULL(ipaytime, 0) AS 帐龄,
  3371. ( CASE
  3372. WHEN ljqbs = 0
  3373. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  3374. ELSE 0
  3375. END ) AS 付款周期,
  3376. ( CASE
  3377. WHEN ljqbs = 0
  3378. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  3379. ELSE 0
  3380. END ) AS 过期天数,
  3381. ( CASE
  3382. WHEN bsfsk = 1 THEN 1
  3383. ELSE 0
  3384. END ) AS 是否收款,
  3385. nysje AS 预收款,
  3386. fskje AS 收款金额,
  3387. ( CASE
  3388. WHEN bsfdjfp = 1 THEN 1
  3389. ELSE 0
  3390. END ) AS '是否开票',
  3391. ffpje AS 发票金额,
  3392. cfph AS 发票号,
  3393. cfprq AS 发票日期,
  3394. ( CASE
  3395. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3396. ELSE 0
  3397. END ) AS 未开完票金额,
  3398. ( CASE
  3399. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  3400. ELSE 0
  3401. END ) AS 发票未收款金额,
  3402. iselforder AS 是否异常,
  3403. cselftype AS 异常类型,
  3404. CASE
  3405. WHEN bsfdjfp = 1 THEN ( CASE
  3406. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3407. ELSE 0
  3408. END )
  3409. ELSE ( CASE
  3410. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  3411. ELSE ( CASE
  3412. WHEN nzlconfirmje = 0 THEN nhjje
  3413. ELSE nzlconfirmje
  3414. END )
  3415. END )
  3416. END 未开票
  3417. FROM MCYD Ord
  3418. LEFT JOIN (SELECT ICYDID,
  3419. Max(Nsc) AS Nsc
  3420. FROM SCYDDX
  3421. WHERE IDXLXID = 573
  3422. GROUP BY ICYDID) AS Obj
  3423. ON ord.ICYDID = Obj.ICYDID
  3424. LEFT JOIN (SELECT ICYDID,
  3425. Sum(NYSLS) AS nysls,
  3426. Sum(nyssl) AS nyssl,
  3427. Sum(nsyl) AS nsyl
  3428. FROM SCYDDX
  3429. GROUP BY ICYDID) AS ObjMatier
  3430. ON Ord.ICYDID = ObjMatier.ICYDID
  3431. LEFT JOIN (SELECT Sum(CASE
  3432. WHEN hz.dz = 1 THEN hz.nhjje
  3433. ELSE hz.传票预计价
  3434. END) AS sum_nhjje_in,
  3435. Sum(CASE
  3436. WHEN hz.dz = 1 THEN hz.nhjje
  3437. ELSE hz.传票预计价
  3438. END) AS sum_ngjje_in,
  3439. Sum(CASE
  3440. WHEN hz.dz = 1 THEN hz.nclje
  3441. ELSE hz.nclje
  3442. END) AS sum_nclje_in,
  3443. hz.ICYDID
  3444. FROM (SELECT yjj.传票预计价单号,
  3445. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3446. yjj.iCYDID,
  3447. d.cjjdh 计价单号,
  3448. d.ccydh 订单号,
  3449. d.cbz 备注,
  3450. d.ngjje,
  3451. d.nclje,
  3452. IFNULL(d.iwjg, 0) iwjg,
  3453. IFNULL(d.lzfbs, 0) lzfbs,
  3454. d.nhjje,
  3455. IFNULL(d.ldz, 0) dz,
  3456. yjj.bShbz
  3457. FROM (SELECT b.csccpbh 传票预计价单号,
  3458. a.ccydh,
  3459. a.icydid,
  3460. Sum(c.fje) 传票预计价,
  3461. b.bshbz
  3462. FROM MCYD a
  3463. LEFT JOIN sccp b
  3464. ON a.icydid = b.icydid
  3465. LEFT JOIN ZbHjXm c
  3466. ON c.sccpid = b.sccpid
  3467. WHERE b.bOutProcess = '0 '
  3468. GROUP BY b.csccpbh,
  3469. a.icydid,
  3470. a.CCYDH,
  3471. b.bshbz,
  3472. b.bOutProcess) yjj
  3473. LEFT JOIN tbluey d
  3474. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3475. WHERE hz.iwjg = 0
  3476. AND hz.bshbz = 1
  3477. AND hz.lzfbs = 0
  3478. GROUP BY hz.ICYDID) tb_in
  3479. ON ord.icydid = tb_in.iCydid
  3480. LEFT JOIN (SELECT fw.iCYDID,
  3481. sum_nhjje_out,
  3482. sum_ngjje_out,
  3483. sum_nclje_out,
  3484. bz.cbz
  3485. FROM (SELECT Cast(Sum(( CASE
  3486. WHEN hz.dz = 0 THEN hz.传票预计价
  3487. ELSE hz.nhjje
  3488. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  3489. Cast(Sum(( CASE
  3490. WHEN hz.dz = 0 THEN hz.传票预计价
  3491. ELSE hz.nhjje
  3492. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  3493. Cast(Sum(CASE
  3494. WHEN hz.dz = 0 THEN hz.nclje
  3495. ELSE hz.nclje
  3496. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  3497. iCydid
  3498. FROM (SELECT yjj.传票预计价单号,
  3499. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3500. yjj.iCYDID,
  3501. d.cjjdh 计价单号,
  3502. d.ccydh 订单号,
  3503. d.cbz 备注,
  3504. d.ngjje,
  3505. d.nclje,
  3506. d.itax,
  3507. IFNULL(d.iwjg, 0) iwjg,
  3508. IFNULL(d.lzfbs, 0) lzfbs,
  3509. d.nhjje,
  3510. IFNULL(d.ldz, 0) dz,
  3511. yjj.bShbz
  3512. FROM (SELECT b.csccpbh 传票预计价单号,
  3513. a.ccydh,
  3514. a.icydid,
  3515. Sum(c.fje) 传票预计价,
  3516. b.bshbz
  3517. FROM MCYD a
  3518. LEFT JOIN sccp b
  3519. ON a.icydid = b.icydid
  3520. LEFT JOIN ZbHjXm c
  3521. ON c.sccpid = b.sccpid
  3522. WHERE b.bOutProcess = '1 '
  3523. GROUP BY b.csccpbh,
  3524. a.icydid,
  3525. a.CCYDH,
  3526. b.bshbz,
  3527. b.bOutProcess) yjj
  3528. LEFT JOIN tbluey d
  3529. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3530. WHERE hz.iwjg = 1
  3531. AND hz.lzfbs = 0
  3532. GROUP BY hz.ICYDID) fw
  3533. LEFT JOIN (SELECT icydid,
  3534. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  3535. WHERE icydid = a.icydid) AS cbz
  3536. FROM TBluey a
  3537. GROUP BY icydid) bz
  3538. ON bz.icydid = fw.iCYDID) tb_out
  3539. ON ord.icydid = tb_out.iCydid
  3540. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  3541. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  3542. iCydid,
  3543. CASE
  3544. WHEN ldz = 1 THEN 1
  3545. ELSE 0
  3546. END ldz
  3547. FROM TJob
  3548. WHERE lzfbs = 0
  3549. GROUP BY iCydid,
  3550. nclje,
  3551. itax,
  3552. ldz) tj
  3553. ON ord.ICYDID = tj.iCydid
  3554. WHERE ord.ICYDSTATE > 0
  3555. AND 1 = 1) zb1
  3556. WHERE CONVERT(zb1.承印日期,CHAR(10)) >= '2023-01-01'
  3557. AND CONVERT(zb1.承印日期,CHAR(10)) <= '2023-12-31'
  3558. GROUP BY zb1.业务单位) hb
  3559. ON hb.业务单位 = dq.业务单位) UNION (SELECT 1 AS flag,
  3560. IFNULL(dq.业务单位, hb.业务单位) 客户,
  3561. IFNULL(dq.销售收入, 000) 销售收入,
  3562. IFNULL(hb.上年销售收入, 0.000) 上年销售收入,
  3563. IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000) 销售收入增减,
  3564. CASE
  3565. WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
  3566. WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
  3567. AND IFNULL(dq.销售收入, 000) > 0 THEN 1
  3568. ELSE 0
  3569. END AS 销售收入同期比,
  3570. IFNULL(dq.销售工价, 000) 销售工价,
  3571. IFNULL(hb.上年销售工价, 0.000) 上年销售工价,
  3572. IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000) 销售工价增减,
  3573. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  3574. IFNULL(hb.上年考核计算毛利, 0.000) 上年考核计算毛利,
  3575. IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
  3576. CASE
  3577. WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
  3578. WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
  3579. AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
  3580. ELSE 0
  3581. END AS 毛利同期比
  3582. FROM (SELECT zb.业务单位 业务单位,
  3583. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  3584. IFNULL(Sum(zb.合并工价), 0.000) 销售工价,
  3585. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
  3586. FROM (SELECT CASE
  3587. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  3588. ELSE '否'
  3589. END 登账,
  3590. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  3591. CCYDH AS 订单号,
  3592. CYJMC AS 印件名称,
  3593. CASE
  3594. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  3595. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  3596. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  3597. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  3598. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  3599. OR CYWDWMC='浙江省新华书店集团有限公司'
  3600. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  3601. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  3602. WHEN CYWDWMC='浙江日报报业集团'
  3603. OR CYWDWMC='共产党员杂志社'
  3604. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  3605. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  3606. OR CYWDWMC='浙江出版传媒有限公司'
  3607. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  3608. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  3609. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  3610. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  3611. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  3612. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  3613. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  3614. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  3615. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  3616. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  3617. WHEN CYWDWMC='上海人民出版社有限公司'
  3618. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  3619. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  3620. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  3621. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  3622. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  3623. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  3624. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  3625. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  3626. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  3627. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  3628. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  3629. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  3630. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  3631. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  3632. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  3633. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  3634. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  3635. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  3636. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  3637. ELSE CYWDWMC
  3638. END AS 业务单位,
  3639. cyjlx 印件类型,
  3640. NCS AS 印数,
  3641. CZWKB AS 开本,
  3642. CDF AS 订法,
  3643. NZWYZ AS 正文印张,
  3644. CASE
  3645. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  3646. ELSE
  3647. CASE
  3648. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  3649. + CASE
  3650. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3651. ELSE ( CASE
  3652. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3653. ELSE ( CASE
  3654. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3655. ELSE IFNULL(tj.sum_clje, 0)
  3656. END )
  3657. END )
  3658. END = 0
  3659. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3660. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3661. + CASE
  3662. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3663. ELSE ( CASE
  3664. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3665. ELSE ( CASE
  3666. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3667. ELSE IFNULL(tj.sum_clje, 0)
  3668. END )
  3669. END )
  3670. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3671. END
  3672. END AS 考核计算毛利不含税,
  3673. CASE
  3674. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  3675. ELSE
  3676. CASE
  3677. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3678. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3679. 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)
  3680. END
  3681. END AS 考核计算工价毛利不含税,
  3682. ( CASE
  3683. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  3684. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  3685. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3686. ELSE ( CASE
  3687. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3688. ELSE ( CASE
  3689. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3690. ELSE IFNULL(tj.sum_clje, 0)
  3691. END )
  3692. END )
  3693. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  3694. END ) AS 考核计算料价毛利不含税,
  3695. CASE
  3696. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  3697. ELSE ( IFNULL(tj.sum_namount, 0) )
  3698. END 合并金额,
  3699. CASE
  3700. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  3701. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  3702. END 合并工价,
  3703. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  3704. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  3705. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  3706. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  3707. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  3708. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  3709. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  3710. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  3711. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  3712. ord.nzkl AS 折扣率,
  3713. CASE
  3714. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3715. ELSE ( CASE
  3716. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  3717. + CASE
  3718. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3719. ELSE ( CASE
  3720. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3721. ELSE ( CASE
  3722. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3723. ELSE IFNULL(tj.sum_clje, 0)
  3724. END )
  3725. END )
  3726. END = 0
  3727. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  3728. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  3729. + CASE
  3730. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3731. ELSE ( CASE
  3732. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3733. ELSE ( CASE
  3734. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3735. ELSE IFNULL(tj.sum_clje, 0)
  3736. END )
  3737. END )
  3738. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  3739. END )
  3740. END AS 生产毛利不含税,
  3741. CASE
  3742. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  3743. ELSE ( CASE
  3744. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  3745. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  3746. 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)
  3747. END )
  3748. END AS 生产工价毛利不含税,
  3749. IFNULL(tj.sum_clje, 0) - ( CASE
  3750. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3751. ELSE ( CASE
  3752. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3753. ELSE ( CASE
  3754. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3755. ELSE IFNULL(tj.sum_clje, 0)
  3756. END )
  3757. END )
  3758. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  3759. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  3760. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  3761. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  3762. IFNULL(tb_in.sum_ngjje_in, 0)
  3763. + CASE
  3764. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3765. ELSE ( CASE
  3766. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3767. ELSE ( CASE
  3768. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3769. ELSE IFNULL(tj.sum_clje, 0)
  3770. END )
  3771. END )
  3772. END AS 厂内传票合计不含税,
  3773. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  3774. CASE
  3775. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  3776. ELSE ( CASE
  3777. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  3778. ELSE ( CASE
  3779. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  3780. ELSE IFNULL(tj.sum_clje, 0)
  3781. END )
  3782. END )
  3783. END AS 厂内传票料价不含税,
  3784. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  3785. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  3786. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  3787. CHY AS 活源,
  3788. CCLBMMC AS 承揽部门,
  3789. CYWYXM AS 业务员,
  3790. lwcbs AS 是否完工,
  3791. Dwcrq AS 完工日期,
  3792. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  3793. LJQBS AS 是否结清,
  3794. djqrq AS 结清日期,
  3795. izlconfirm AS 是否销货,
  3796. dzlconfirmrq AS 销货日期,
  3797. nzlconfirmje AS 销货金额,
  3798. nzlysje AS 销货应收,
  3799. IFNULL(ipaytime, 0) AS 帐龄,
  3800. ( CASE
  3801. WHEN ljqbs = 0
  3802. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  3803. ELSE 0
  3804. END ) AS 付款周期,
  3805. ( CASE
  3806. WHEN ljqbs = 0
  3807. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  3808. ELSE 0
  3809. END ) AS 过期天数,
  3810. ( CASE
  3811. WHEN bsfsk = 1 THEN 1
  3812. ELSE 0
  3813. END ) AS 是否收款,
  3814. nysje AS 预收款,
  3815. fskje AS 收款金额,
  3816. ( CASE
  3817. WHEN bsfdjfp = 1 THEN 1
  3818. ELSE 0
  3819. END ) AS '是否开票',
  3820. ffpje AS 发票金额,
  3821. cfph AS 发票号,
  3822. cfprq AS 发票日期,
  3823. ( CASE
  3824. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3825. ELSE 0
  3826. END ) AS 未开完票金额,
  3827. ( CASE
  3828. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  3829. ELSE 0
  3830. END ) AS 发票未收款金额,
  3831. iselforder AS 是否异常,
  3832. cselftype AS 异常类型,
  3833. CASE
  3834. WHEN bsfdjfp = 1 THEN ( CASE
  3835. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  3836. ELSE 0
  3837. END )
  3838. ELSE ( CASE
  3839. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  3840. ELSE ( CASE
  3841. WHEN nzlconfirmje = 0 THEN nhjje
  3842. ELSE nzlconfirmje
  3843. END )
  3844. END )
  3845. END 未开票
  3846. FROM MCYD Ord
  3847. LEFT JOIN (SELECT Sum(CASE
  3848. WHEN hz.dz = 1 THEN hz.nhjje
  3849. ELSE hz.传票预计价
  3850. END) AS sum_nhjje_in,
  3851. Sum(CASE
  3852. WHEN hz.dz = 1 THEN hz.nhjje
  3853. ELSE hz.传票预计价
  3854. END) AS sum_ngjje_in,
  3855. Sum(CASE
  3856. WHEN hz.dz = 1 THEN hz.nclje
  3857. ELSE hz.nclje
  3858. END) AS sum_nclje_in,
  3859. hz.ICYDID
  3860. FROM (SELECT yjj.传票预计价单号,
  3861. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3862. yjj.iCYDID,
  3863. d.cjjdh 计价单号,
  3864. d.ccydh 订单号,
  3865. d.cbz 备注,
  3866. d.ngjje,
  3867. d.nclje,
  3868. IFNULL(d.iwjg, 0) iwjg,
  3869. IFNULL(d.lzfbs, 0) lzfbs,
  3870. d.nhjje,
  3871. IFNULL(d.ldz, 0) dz,
  3872. yjj.bShbz
  3873. FROM (SELECT b.csccpbh 传票预计价单号,
  3874. a.ccydh,
  3875. a.icydid,
  3876. Sum(c.fje) 传票预计价,
  3877. b.bshbz
  3878. FROM MCYD a
  3879. LEFT JOIN sccp b
  3880. ON a.icydid = b.icydid
  3881. LEFT JOIN ZbHjXm c
  3882. ON c.sccpid = b.sccpid
  3883. WHERE b.bOutProcess = '0 '
  3884. GROUP BY b.csccpbh,
  3885. a.icydid,
  3886. a.CCYDH,
  3887. b.bshbz,
  3888. b.bOutProcess) yjj
  3889. LEFT JOIN tbluey d
  3890. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3891. WHERE hz.iwjg = 0
  3892. AND hz.bshbz = 1
  3893. AND hz.lzfbs = 0
  3894. GROUP BY hz.ICYDID) tb_in
  3895. ON ord.icydid = tb_in.iCydid
  3896. LEFT JOIN (SELECT fw.iCYDID,
  3897. sum_nhjje_out,
  3898. sum_ngjje_out,
  3899. sum_nclje_out,
  3900. bz.cbz
  3901. FROM (SELECT Cast(Sum(( CASE
  3902. WHEN hz.dz = 0 THEN hz.传票预计价
  3903. ELSE hz.nhjje
  3904. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  3905. Cast(Sum(( CASE
  3906. WHEN hz.dz = 0 THEN hz.传票预计价
  3907. ELSE hz.nhjje
  3908. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  3909. Cast(Sum(CASE
  3910. WHEN hz.dz = 0 THEN hz.nclje
  3911. ELSE hz.nclje
  3912. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  3913. iCydid
  3914. FROM (SELECT yjj.传票预计价单号,
  3915. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  3916. yjj.iCYDID,
  3917. d.cjjdh 计价单号,
  3918. d.ccydh 订单号,
  3919. d.cbz 备注,
  3920. d.ngjje,
  3921. d.nclje,
  3922. d.itax,
  3923. IFNULL(d.iwjg, 0) iwjg,
  3924. IFNULL(d.lzfbs, 0) lzfbs,
  3925. d.nhjje,
  3926. IFNULL(d.ldz, 0) dz,
  3927. yjj.bShbz
  3928. FROM (SELECT b.csccpbh 传票预计价单号,
  3929. a.ccydh,
  3930. a.icydid,
  3931. Sum(c.fje) 传票预计价,
  3932. b.bshbz
  3933. FROM MCYD a
  3934. LEFT JOIN sccp b
  3935. ON a.icydid = b.icydid
  3936. LEFT JOIN ZbHjXm c
  3937. ON c.sccpid = b.sccpid
  3938. WHERE b.bOutProcess = '1 '
  3939. GROUP BY b.csccpbh,
  3940. a.icydid,
  3941. a.CCYDH,
  3942. b.bshbz,
  3943. b.bOutProcess) yjj
  3944. LEFT JOIN tbluey d
  3945. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  3946. WHERE hz.iwjg = 1
  3947. AND hz.lzfbs = 0
  3948. GROUP BY hz.ICYDID) fw
  3949. LEFT JOIN (SELECT icydid,
  3950. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  3951. WHERE icydid = a.icydid) AS cbz
  3952. FROM TBluey a
  3953. GROUP BY icydid) bz
  3954. ON bz.icydid = fw.iCYDID) tb_out
  3955. ON ord.icydid = tb_out.iCydid
  3956. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  3957. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  3958. iCydid,
  3959. CASE
  3960. WHEN ldz = 1 THEN 1
  3961. ELSE 0
  3962. END ldz
  3963. FROM TJob
  3964. WHERE lzfbs = 0
  3965. GROUP BY iCydid,
  3966. nclje,
  3967. itax,
  3968. ldz) tj
  3969. ON ord.ICYDID = tj.iCydid
  3970. WHERE ord.ICYDSTATE > 0
  3971. AND 1 = 1) zb
  3972. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
  3973. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  3974. GROUP BY zb.业务单位) dq
  3975. RIGHT JOIN (SELECT zb1.业务单位,
  3976. Sum(zb1.合并金额) 上年销售收入,
  3977. Sum(zb1.合并工价) 上年销售工价,
  3978. Sum(zb1.考核计算毛利不含税)上年考核计算毛利
  3979. FROM (SELECT CASE
  3980. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  3981. ELSE '否'
  3982. END 登账,
  3983. CONVERT(DCYRQ, CHAR(10)) AS 承印日期,
  3984. CCYDH AS 订单号,
  3985. CYJMC AS 印件名称,
  3986. CASE
  3987. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  3988. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  3989. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  3990. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  3991. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  3992. OR CYWDWMC='浙江省新华书店集团有限公司'
  3993. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  3994. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  3995. WHEN CYWDWMC='浙江日报报业集团'
  3996. OR CYWDWMC='共产党员杂志社'
  3997. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  3998. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  3999. OR CYWDWMC='浙江出版传媒有限公司'
  4000. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  4001. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  4002. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  4003. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  4004. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  4005. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  4006. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  4007. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  4008. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  4009. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  4010. WHEN CYWDWMC='上海人民出版社有限公司'
  4011. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  4012. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  4013. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  4014. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  4015. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  4016. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  4017. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  4018. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  4019. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  4020. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  4021. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  4022. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  4023. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  4024. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  4025. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  4026. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  4027. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  4028. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  4029. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  4030. ELSE CYWDWMC
  4031. END AS 业务单位,
  4032. cyjlx 印件类型,
  4033. NCS AS 印数,
  4034. CZWKB AS 开本,
  4035. CDF AS 订法,
  4036. NZWYZ AS 正文印张,
  4037. cbz 发外备注,
  4038. CASE
  4039. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  4040. ELSE
  4041. CASE
  4042. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  4043. + CASE
  4044. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4045. ELSE ( CASE
  4046. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4047. ELSE ( CASE
  4048. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4049. ELSE IFNULL(tj.sum_clje, 0)
  4050. END )
  4051. END )
  4052. END = 0
  4053. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  4054. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  4055. + CASE
  4056. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4057. ELSE ( CASE
  4058. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4059. ELSE ( CASE
  4060. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4061. ELSE IFNULL(tj.sum_clje, 0)
  4062. END )
  4063. END )
  4064. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  4065. END
  4066. END AS 考核计算毛利不含税,
  4067. CASE
  4068. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  4069. ELSE
  4070. CASE
  4071. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  4072. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  4073. 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)
  4074. END
  4075. END AS 考核计算工价毛利不含税,
  4076. ( CASE
  4077. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  4078. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  4079. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4080. ELSE ( CASE
  4081. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4082. ELSE ( CASE
  4083. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4084. ELSE IFNULL(tj.sum_clje, 0)
  4085. END )
  4086. END )
  4087. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  4088. END ) AS 考核计算料价毛利不含税,
  4089. CASE
  4090. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  4091. ELSE ( IFNULL(tj.sum_namount, 0) )
  4092. END 合并金额,
  4093. CASE
  4094. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  4095. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  4096. END 合并工价,
  4097. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  4098. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  4099. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  4100. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  4101. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  4102. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  4103. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  4104. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  4105. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  4106. ord.nzkl AS 折扣率,
  4107. CASE
  4108. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  4109. ELSE ( CASE
  4110. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  4111. + CASE
  4112. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4113. ELSE ( CASE
  4114. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4115. ELSE ( CASE
  4116. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4117. ELSE IFNULL(tj.sum_clje, 0)
  4118. END )
  4119. END )
  4120. END = 0
  4121. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  4122. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  4123. + CASE
  4124. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4125. ELSE ( CASE
  4126. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4127. ELSE ( CASE
  4128. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4129. ELSE IFNULL(tj.sum_clje, 0)
  4130. END )
  4131. END )
  4132. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  4133. END )
  4134. END AS 生产毛利不含税,
  4135. CASE
  4136. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  4137. ELSE ( CASE
  4138. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  4139. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  4140. 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)
  4141. END )
  4142. END AS 生产工价毛利不含税,
  4143. IFNULL(tj.sum_clje, 0) - ( CASE
  4144. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4145. ELSE ( CASE
  4146. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4147. ELSE ( CASE
  4148. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4149. ELSE IFNULL(tj.sum_clje, 0)
  4150. END )
  4151. END )
  4152. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  4153. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  4154. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  4155. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  4156. IFNULL(tb_in.sum_ngjje_in, 0)
  4157. + CASE
  4158. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4159. ELSE ( CASE
  4160. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4161. ELSE ( CASE
  4162. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4163. ELSE IFNULL(tj.sum_clje, 0)
  4164. END )
  4165. END )
  4166. END AS 厂内传票合计不含税,
  4167. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  4168. CASE
  4169. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4170. ELSE ( CASE
  4171. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4172. ELSE ( CASE
  4173. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4174. ELSE IFNULL(tj.sum_clje, 0)
  4175. END )
  4176. END )
  4177. END AS 厂内传票料价不含税,
  4178. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  4179. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  4180. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  4181. CHY AS 活源,
  4182. CCLBMMC AS 承揽部门,
  4183. CYWYXM AS 业务员,
  4184. lwcbs AS 是否完工,
  4185. Dwcrq AS 完工日期,
  4186. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  4187. LJQBS AS 是否结清,
  4188. djqrq AS 结清日期,
  4189. izlconfirm AS 是否销货,
  4190. dzlconfirmrq AS 销货日期,
  4191. nzlconfirmje AS 销货金额,
  4192. nzlysje AS 销货应收,
  4193. IFNULL(ipaytime, 0) AS 帐龄,
  4194. ( CASE
  4195. WHEN ljqbs = 0
  4196. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  4197. ELSE 0
  4198. END ) AS 付款周期,
  4199. ( CASE
  4200. WHEN ljqbs = 0
  4201. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  4202. ELSE 0
  4203. END ) AS 过期天数,
  4204. ( CASE
  4205. WHEN bsfsk = 1 THEN 1
  4206. ELSE 0
  4207. END ) AS 是否收款,
  4208. nysje AS 预收款,
  4209. fskje AS 收款金额,
  4210. ( CASE
  4211. WHEN bsfdjfp = 1 THEN 1
  4212. ELSE 0
  4213. END ) AS '是否开票',
  4214. ffpje AS 发票金额,
  4215. cfph AS 发票号,
  4216. cfprq AS 发票日期,
  4217. ( CASE
  4218. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  4219. ELSE 0
  4220. END ) AS 未开完票金额,
  4221. ( CASE
  4222. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  4223. ELSE 0
  4224. END ) AS 发票未收款金额,
  4225. iselforder AS 是否异常,
  4226. cselftype AS 异常类型,
  4227. CASE
  4228. WHEN bsfdjfp = 1 THEN ( CASE
  4229. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  4230. ELSE 0
  4231. END )
  4232. ELSE ( CASE
  4233. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  4234. ELSE ( CASE
  4235. WHEN nzlconfirmje = 0 THEN nhjje
  4236. ELSE nzlconfirmje
  4237. END )
  4238. END )
  4239. END 未开票
  4240. FROM MCYD Ord
  4241. LEFT JOIN (SELECT ICYDID,
  4242. Max(Nsc) AS Nsc
  4243. FROM SCYDDX
  4244. WHERE IDXLXID = 573
  4245. GROUP BY ICYDID) AS Obj
  4246. ON ord.ICYDID = Obj.ICYDID
  4247. LEFT JOIN (SELECT ICYDID,
  4248. Sum(NYSLS) AS nysls,
  4249. Sum(nyssl) AS nyssl,
  4250. Sum(nsyl) AS nsyl
  4251. FROM SCYDDX
  4252. GROUP BY ICYDID) AS ObjMatier
  4253. ON Ord.ICYDID = ObjMatier.ICYDID
  4254. LEFT JOIN (SELECT Sum(CASE
  4255. WHEN hz.dz = 1 THEN hz.nhjje
  4256. ELSE hz.传票预计价
  4257. END) AS sum_nhjje_in,
  4258. Sum(CASE
  4259. WHEN hz.dz = 1 THEN hz.nhjje
  4260. ELSE hz.传票预计价
  4261. END) AS sum_ngjje_in,
  4262. Sum(CASE
  4263. WHEN hz.dz = 1 THEN hz.nclje
  4264. ELSE hz.nclje
  4265. END) AS sum_nclje_in,
  4266. hz.ICYDID
  4267. FROM (SELECT yjj.传票预计价单号,
  4268. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  4269. yjj.iCYDID,
  4270. d.cjjdh 计价单号,
  4271. d.ccydh 订单号,
  4272. d.cbz 备注,
  4273. d.ngjje,
  4274. d.nclje,
  4275. IFNULL(d.iwjg, 0) iwjg,
  4276. IFNULL(d.lzfbs, 0) lzfbs,
  4277. d.nhjje,
  4278. IFNULL(d.ldz, 0) dz,
  4279. yjj.bShbz
  4280. FROM (SELECT b.csccpbh 传票预计价单号,
  4281. a.ccydh,
  4282. a.icydid,
  4283. Sum(c.fje) 传票预计价,
  4284. b.bshbz
  4285. FROM MCYD a
  4286. LEFT JOIN sccp b
  4287. ON a.icydid = b.icydid
  4288. LEFT JOIN ZbHjXm c
  4289. ON c.sccpid = b.sccpid
  4290. WHERE b.bOutProcess = '0 '
  4291. GROUP BY b.csccpbh,
  4292. a.icydid,
  4293. a.CCYDH,
  4294. b.bshbz,
  4295. b.bOutProcess) yjj
  4296. LEFT JOIN tbluey d
  4297. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  4298. WHERE hz.iwjg = 0
  4299. AND hz.bshbz = 1
  4300. AND hz.lzfbs = 0
  4301. GROUP BY hz.ICYDID) tb_in
  4302. ON ord.icydid = tb_in.iCydid
  4303. LEFT JOIN (SELECT fw.iCYDID,
  4304. sum_nhjje_out,
  4305. sum_ngjje_out,
  4306. sum_nclje_out,
  4307. bz.cbz
  4308. FROM (SELECT Cast(Sum(( CASE
  4309. WHEN hz.dz = 0 THEN hz.传票预计价
  4310. ELSE hz.nhjje
  4311. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  4312. Cast(Sum(( CASE
  4313. WHEN hz.dz = 0 THEN hz.传票预计价
  4314. ELSE hz.nhjje
  4315. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  4316. Cast(Sum(CASE
  4317. WHEN hz.dz = 0 THEN hz.nclje
  4318. ELSE hz.nclje
  4319. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  4320. iCydid
  4321. FROM (SELECT yjj.传票预计价单号,
  4322. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  4323. yjj.iCYDID,
  4324. d.cjjdh 计价单号,
  4325. d.ccydh 订单号,
  4326. d.cbz 备注,
  4327. d.ngjje,
  4328. d.nclje,
  4329. d.itax,
  4330. IFNULL(d.iwjg, 0) iwjg,
  4331. IFNULL(d.lzfbs, 0) lzfbs,
  4332. d.nhjje,
  4333. IFNULL(d.ldz, 0) dz,
  4334. yjj.bShbz
  4335. FROM (SELECT b.csccpbh 传票预计价单号,
  4336. a.ccydh,
  4337. a.icydid,
  4338. Sum(c.fje) 传票预计价,
  4339. b.bshbz
  4340. FROM MCYD a
  4341. LEFT JOIN sccp b
  4342. ON a.icydid = b.icydid
  4343. LEFT JOIN ZbHjXm c
  4344. ON c.sccpid = b.sccpid
  4345. WHERE b.bOutProcess = '1 '
  4346. GROUP BY b.csccpbh,
  4347. a.icydid,
  4348. a.CCYDH,
  4349. b.bshbz,
  4350. b.bOutProcess) yjj
  4351. LEFT JOIN tbluey d
  4352. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  4353. WHERE hz.iwjg = 1
  4354. AND hz.lzfbs = 0
  4355. GROUP BY hz.ICYDID) fw
  4356. LEFT JOIN (SELECT icydid,
  4357. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  4358. WHERE icydid = a.icydid) AS cbz
  4359. FROM TBluey a
  4360. GROUP BY icydid) bz
  4361. ON bz.icydid = fw.iCYDID) tb_out
  4362. ON ord.icydid = tb_out.iCydid
  4363. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  4364. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  4365. iCydid,
  4366. CASE
  4367. WHEN ldz = 1 THEN 1
  4368. ELSE 0
  4369. END ldz
  4370. FROM TJob
  4371. WHERE lzfbs = 0
  4372. GROUP BY iCydid,
  4373. nclje,
  4374. itax,
  4375. ldz) tj
  4376. ON ord.ICYDID = tj.iCydid
  4377. WHERE ord.ICYDSTATE > 0
  4378. AND 1 = 1) zb1
  4379. -- WHERE CONVERT(Dateadd(YEAR, 1, zb1.承印日期),CHAR(10)) >= '{$januaryFirst}'
  4380. -- AND CONVERT(Dateadd(YEAR, 1, zb1.承印日期),CHAR(10)) <= '{$today}'
  4381. GROUP BY zb1.业务单位) hb
  4382. ON hb.业务单位 = dq.业务单位))a) aa
  4383. ORDER BY Aa.考核计算毛利(万元) DESC
  4384. ";
  4385. // WHERE CONVERT(zb1.承印日期,CHAR(10)) >= '{$lastYearJanuaryFirst}'
  4386. // AND CONVERT(zb1.承印日期,CHAR(10)) <= '{$lastYearDecember31 }'
  4387. $result=Db::query($sql);
  4388. if ($result) {
  4389. $redis->set($redis_key, json_encode($result));
  4390. echo date("Y-m-d H:i:s").' 存进去了';
  4391. return $result;
  4392. }
  4393. // $redis->set($redis_key, json_encode($result));
  4394. // echo date("Y-m-d H:i:s").' 存进去了';
  4395. }
  4396. //年度考核毛利收入同比上升和下滑一览表->获取固定公司名称
  4397. public function getcustomerlist() {
  4398. return [
  4399. '浙江出版传媒股份有限公司(含省出版公司)',
  4400. '杭州印校印务有限公司',
  4401. '人民教育出版社有限公司',
  4402. '浙江省新华书店集团有限公司(含教育、少儿)',
  4403. '浙江教育出版社集团有限公司',
  4404. '求是杂志社',
  4405. '读者出版传媒股份有限公司',
  4406. '浙江科学技术出版社有限公司',
  4407. '大星(上海)文化传媒有限公司',
  4408. '浙江教育报刊总社',
  4409. '浙江省财税政策研究室',
  4410. '浙江人民美术出版社有限公司',
  4411. '《今日浙江》杂志社',
  4412. '浙江新华数码印务有限公司',
  4413. '宁波出版社有限公司',
  4414. '浙江人民出版社有限公司',
  4415. '浙江中烟工业有限责任公司',
  4416. '中国大百科全书出版社',
  4417. '上海人民出版社有限责任公司',
  4418. '浙江省新华书店集团物流配送有限公司',
  4419. '上海译文出版社有限公司',
  4420. '浙江少年儿童出版社有限公司',
  4421. '浙江日报报业集团(含共产党员)',
  4422. '复旦大学出版社有限公司',
  4423. '浙江旅游职业学院',
  4424. '浙江文艺出版社有限公司',
  4425. '上海市社会科学事业发展研究中心(《学术月刊》杂志社)',
  4426. '中国青年出版总社有限公司',
  4427. '浙江摄影出版社有限公司',
  4428. '湖北知音传媒股份有限公司',
  4429. '中信出版集团股份有限公司',
  4430. '杭州国家版本馆',
  4431. '人民美术出版社有限公司',
  4432. '上海古籍出版社有限公司',
  4433. '浙江省期刊总社有限公司',
  4434. '中国农业科学院茶叶研究所',
  4435. '浙江华硕国际贸易有限责任公司',
  4436. '浙江《职业教育》杂志社有限公司',
  4437. '半月选读杂志社',
  4438. '《纺织服装周刊》杂志社有限公司',
  4439. '浙江古籍出版社有限公司',
  4440. '浙江省卫生健康综合保障中心',
  4441. '浙江新华广告有限公司',
  4442. '人民出版社',
  4443. '党建读物出版社',
  4444. '杭州师范大学附属中学',
  4445. '宁波市大港印务有限公司',
  4446. '杭州市萧山区教育局',
  4447. '浙江临安曙光印务有限公司',
  4448. '浙江省体育彩票管理中心',
  4449. '中共浙江省委主题教育领导小组办公室',
  4450. '浙江省新华书店集团有限公司(作业本)',
  4451. '浙江大学医学院附属邵逸夫医院',
  4452. '上海卓文印刷包装材料有限公司',
  4453. '红旗出版社有限公司',
  4454. '浙江省公安厅',
  4455. '文化交流杂志社',
  4456. '浙江艺术职业学院',
  4457. '杭州蓝狮子文化创意股份有限公司(工商大学出版)',
  4458. '湖北知音动漫有限公司',
  4459. '浙江省国资委',
  4460. '浙江音乐学院',
  4461. '浙江超能印业有限公司',
  4462. '杭州风景名胜传媒有限公司',
  4463. '上海市社会科学界联合会',
  4464. '自然资源部第二海洋研究所',
  4465. '学习出版社有限公司',
  4466. '浙江印刷集团有限公司',
  4467. '浙江省文学艺术界联合会',
  4468. '杭州长命印刷有限公司',
  4469. '浙江省新闻出版广电局',
  4470. '中国(杭州)智慧城市研究院有限公司',
  4471. '浙江双溪印业有限公司',
  4472. '浙江省人民检察院',
  4473. '杭州顺峰纸制品有限公司',
  4474. '上海辞书出版社有限公司',
  4475. '浙江电子音像出版社有限公司',
  4476. '杭州休闲文化传媒有限公司',
  4477. '浙江大学出版社有限责任公司',
  4478. '杭州出版社有限公司',
  4479. '星球地图出版社',
  4480. '浙江新华印刷技术有限公司',
  4481. '教育科学出版社有限公司',
  4482. '浙江新世纪电子音像发行有限公司',
  4483. ];
  4484. }
  4485. //年度考核毛利收入同比上升和下滑一览表 接口
  4486. public function year_profit(){
  4487. $redis = redis();
  4488. $result = json_decode($redis->get(md5('year_profit_redis')), true);
  4489. $list['columns'] = [
  4490. ['name' => '客户名称', 'id' => 'khmc', 'width' => '55', 'autoWrap' => "true", 'textAlign' => 'left'],
  4491. ['name' => '毛利收入(万元)', 'id' => 'mlsr', 'width' => '24', 'autoWrap' => "true", 'textAlign' => 'left'],
  4492. ['name' => '同比增长率', 'id' => 'zzl', 'width' => '18', 'autoWrap' => "true", 'textAlign' => 'left']
  4493. ];
  4494. // 判断 $result 是否为空
  4495. if(empty($result)) {
  4496. $list['rows'] = [];
  4497. } else {
  4498. //去掉重复名称的数据
  4499. $list_result = [];
  4500. foreach($result as $tvalue)
  4501. {
  4502. $key = md5(trim($tvalue['客户']));
  4503. if(!isset($list_result[$key])){
  4504. $list_result[$key] = $tvalue;
  4505. }
  4506. }
  4507. //获取固定公司名的数据
  4508. $list_result2 = [];
  4509. $customer_list = $this->getcustomerlist();
  4510. foreach($list_result as $tvalue2)
  4511. {
  4512. if(in_array(trim($tvalue2['客户']),$customer_list)){
  4513. $list_result2[] = $tvalue2;
  4514. }
  4515. }
  4516. if($list_result2){
  4517. // 获取前六个
  4518. $firstFour = array_slice($list_result2, 0, 6);
  4519. // 获取后六个
  4520. $lastThree = array_slice($list_result2, -6, 6);
  4521. // 合并数组,获取前六个和后六个
  4522. $combinedResult = array_merge($firstFour, $lastThree);
  4523. foreach ($combinedResult as $k => $v) {
  4524. $list['rows'][$k]['khmc'] = $v['客户'];
  4525. $list['rows'][$k]['mlsr'] = $v['考核计算毛利(万元)'];
  4526. $list['rows'][$k]['zzl'] = $v['毛利增长率'];
  4527. }
  4528. }
  4529. }
  4530. $res['status'] = 0;
  4531. $res['msg'] = '';
  4532. $res['data'] = $list;
  4533. return json($res);
  4534. }
  4535. //年度考核销售收入同比上升和下滑一览表 缓存
  4536. public function year_dclandsx_redis(){
  4537. $redis = redis();
  4538. $redis_key = md5('year_dclandsx_redis');
  4539. $januaryFirst = date('Y-01-01');
  4540. $today = date('Y-m-d');
  4541. $sql = "SELECT bb.客户,
  4542. bb.销售收入(万元),
  4543. bb.上年销售收入(万元),
  4544. bb.销售收入增减(万元),bb.销售收入增长率 FROM(SELECT aa.客户,
  4545. aa.销售收入(万元),
  4546. aa.上年销售收入(万元),
  4547. aa.销售收入增减(万元),
  4548. CASE
  4549. WHEN IFNULL(aa.上年销售收入(万元), 0) = 0 THEN '/'
  4550. ELSE Ltrim(Cast(aa.销售收入增减(万元)*100/aa.上年销售收入(万元) AS DECIMAL(10, 2)))
  4551. END AS 销售收入增长率
  4552. FROM (SELECT a.客户,
  4553. CONVERT(Round(a.销售收入 / 10000, 2),DECIMAL(10, 2)) AS '销售收入(万元)',
  4554. CONVERT(Round(a.上年销售收入 / 10000, 2),DECIMAL(10, 2)) AS '上年销售收入(万元)',
  4555. CONVERT(Round(a.销售收入增减 / 10000, 2),DECIMAL(10, 2)) AS '销售收入增减(万元)',
  4556. CONVERT(Round(a.销售工价 / 10000, 2),DECIMAL(10, 2)) AS '销售工价(万元)',
  4557. CONVERT(Round(a.上年销售工价 / 10000, 2),DECIMAL(10, 2)) AS '上年销售工价(万元)',
  4558. CONVERT(Round(a.销售工价增减 / 10000, 2),DECIMAL(10, 2)) AS '销售工价增减(万元)',
  4559. CONVERT(Round(a.考核计算毛利 / 10000, 2),DECIMAL(10, 2)) AS '考核计算毛利(万元)',
  4560. CONVERT(Round(a.上年考核计算毛利 / 10000, 2),DECIMAL(10, 2))AS '上年考核计算毛利(万元)',
  4561. CONVERT(Round(a.考核计算毛利增减 / 10000, 2),DECIMAL(10, 2))AS '考核计算毛利增减(万元)'
  4562. FROM ((SELECT 1 AS flag,
  4563. IFNULL(dq.业务单位, hb.业务单位) 客户,
  4564. IFNULL(dq.销售收入, 000) 销售收入,
  4565. IFNULL(hb.上年销售收入, 0.000) 上年销售收入,
  4566. IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000) 销售收入增减,
  4567. CASE
  4568. WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
  4569. WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
  4570. AND IFNULL(dq.销售收入, 000) > 0 THEN 1
  4571. ELSE 0
  4572. END AS 销售收入同期比,
  4573. IFNULL(dq.销售工价, 000) 销售工价,
  4574. IFNULL(hb.上年销售工价, 0.000) 上年销售工价,
  4575. IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000) 销售工价增减,
  4576. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  4577. IFNULL(hb.上年考核计算毛利, 0.000) 上年考核计算毛利,
  4578. IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
  4579. CASE
  4580. WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
  4581. WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
  4582. AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
  4583. ELSE 0
  4584. END AS 毛利同期比
  4585. FROM (SELECT zb.业务单位 业务单位,
  4586. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  4587. IFNULL(Sum(zb.合并工价), 0.000) 销售工价,
  4588. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
  4589. FROM (SELECT CASE
  4590. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  4591. ELSE '否'
  4592. END 登账,
  4593. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  4594. CCYDH AS 订单号,
  4595. CYJMC AS 印件名称,
  4596. CASE
  4597. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  4598. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  4599. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  4600. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  4601. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  4602. OR CYWDWMC='浙江省新华书店集团有限公司'
  4603. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  4604. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  4605. WHEN CYWDWMC='浙江日报报业集团'
  4606. OR CYWDWMC='共产党员杂志社'
  4607. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  4608. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  4609. OR CYWDWMC='浙江出版传媒有限公司'
  4610. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  4611. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  4612. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  4613. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  4614. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  4615. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  4616. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  4617. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  4618. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  4619. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  4620. WHEN CYWDWMC='上海人民出版社有限公司'
  4621. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  4622. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  4623. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  4624. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  4625. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  4626. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  4627. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  4628. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  4629. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  4630. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  4631. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  4632. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  4633. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  4634. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  4635. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  4636. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  4637. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  4638. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  4639. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  4640. ELSE CYWDWMC
  4641. END AS 业务单位,
  4642. cyjlx 印件类型,
  4643. NCS AS 印数,
  4644. CZWKB AS 开本,
  4645. CDF AS 订法,
  4646. NZWYZ AS 正文印张,
  4647. CASE
  4648. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  4649. ELSE
  4650. CASE
  4651. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  4652. + CASE
  4653. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4654. ELSE ( CASE
  4655. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4656. ELSE ( CASE
  4657. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4658. ELSE IFNULL(tj.sum_clje, 0)
  4659. END )
  4660. END )
  4661. END = 0
  4662. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  4663. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  4664. + CASE
  4665. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4666. ELSE ( CASE
  4667. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4668. ELSE ( CASE
  4669. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4670. ELSE IFNULL(tj.sum_clje, 0)
  4671. END )
  4672. END )
  4673. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  4674. END
  4675. END AS 考核计算毛利不含税,
  4676. CASE
  4677. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  4678. ELSE
  4679. CASE
  4680. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  4681. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  4682. 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)
  4683. END
  4684. END AS 考核计算工价毛利不含税,
  4685. ( CASE
  4686. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  4687. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  4688. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4689. ELSE ( CASE
  4690. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4691. ELSE ( CASE
  4692. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4693. ELSE IFNULL(tj.sum_clje, 0)
  4694. END )
  4695. END )
  4696. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  4697. END ) AS 考核计算料价毛利不含税,
  4698. CASE
  4699. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  4700. ELSE ( IFNULL(tj.sum_namount, 0) )
  4701. END 合并金额,
  4702. CASE
  4703. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  4704. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  4705. END 合并工价,
  4706. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  4707. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  4708. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  4709. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  4710. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  4711. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  4712. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  4713. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  4714. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  4715. ord.nzkl AS 折扣率,
  4716. CASE
  4717. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  4718. ELSE ( CASE
  4719. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  4720. + CASE
  4721. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4722. ELSE ( CASE
  4723. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4724. ELSE ( CASE
  4725. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4726. ELSE IFNULL(tj.sum_clje, 0)
  4727. END )
  4728. END )
  4729. END = 0
  4730. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  4731. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  4732. + CASE
  4733. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4734. ELSE ( CASE
  4735. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4736. ELSE ( CASE
  4737. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4738. ELSE IFNULL(tj.sum_clje, 0)
  4739. END )
  4740. END )
  4741. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  4742. END )
  4743. END AS 生产毛利不含税,
  4744. CASE
  4745. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  4746. ELSE ( CASE
  4747. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  4748. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  4749. 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)
  4750. END )
  4751. END AS 生产工价毛利不含税,
  4752. IFNULL(tj.sum_clje, 0) - ( CASE
  4753. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4754. ELSE ( CASE
  4755. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4756. ELSE ( CASE
  4757. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4758. ELSE IFNULL(tj.sum_clje, 0)
  4759. END )
  4760. END )
  4761. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  4762. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  4763. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  4764. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  4765. IFNULL(tb_in.sum_ngjje_in, 0)
  4766. + CASE
  4767. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4768. ELSE ( CASE
  4769. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4770. ELSE ( CASE
  4771. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4772. ELSE IFNULL(tj.sum_clje, 0)
  4773. END )
  4774. END )
  4775. END AS 厂内传票合计不含税,
  4776. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  4777. CASE
  4778. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  4779. ELSE ( CASE
  4780. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  4781. ELSE ( CASE
  4782. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  4783. ELSE IFNULL(tj.sum_clje, 0)
  4784. END )
  4785. END )
  4786. END AS 厂内传票料价不含税,
  4787. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  4788. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  4789. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  4790. CHY AS 活源,
  4791. CCLBMMC AS 承揽部门,
  4792. CYWYXM AS 业务员,
  4793. lwcbs AS 是否完工,
  4794. Dwcrq AS 完工日期,
  4795. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  4796. LJQBS AS 是否结清,
  4797. djqrq AS 结清日期,
  4798. izlconfirm AS 是否销货,
  4799. dzlconfirmrq AS 销货日期,
  4800. nzlconfirmje AS 销货金额,
  4801. nzlysje AS 销货应收,
  4802. IFNULL(ipaytime, 0) AS 帐龄,
  4803. ( CASE
  4804. WHEN ljqbs = 0
  4805. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  4806. ELSE 0
  4807. END ) AS 付款周期,
  4808. ( CASE
  4809. WHEN ljqbs = 0
  4810. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  4811. ELSE 0
  4812. END ) AS 过期天数,
  4813. ( CASE
  4814. WHEN bsfsk = 1 THEN 1
  4815. ELSE 0
  4816. END ) AS 是否收款,
  4817. nysje AS 预收款,
  4818. fskje AS 收款金额,
  4819. ( CASE
  4820. WHEN bsfdjfp = 1 THEN 1
  4821. ELSE 0
  4822. END ) AS '是否开票',
  4823. ffpje AS 发票金额,
  4824. cfph AS 发票号,
  4825. cfprq AS 发票日期,
  4826. ( CASE
  4827. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  4828. ELSE 0
  4829. END ) AS 未开完票金额,
  4830. ( CASE
  4831. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  4832. ELSE 0
  4833. END ) AS 发票未收款金额,
  4834. iselforder AS 是否异常,
  4835. cselftype AS 异常类型,
  4836. CASE
  4837. WHEN bsfdjfp = 1 THEN ( CASE
  4838. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  4839. ELSE 0
  4840. END )
  4841. ELSE ( CASE
  4842. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  4843. ELSE ( CASE
  4844. WHEN nzlconfirmje = 0 THEN nhjje
  4845. ELSE nzlconfirmje
  4846. END )
  4847. END )
  4848. END 未开票
  4849. FROM MCYD Ord
  4850. LEFT JOIN (SELECT Sum(CASE
  4851. WHEN hz.dz = 1 THEN hz.nhjje
  4852. ELSE hz.传票预计价
  4853. END) AS sum_nhjje_in,
  4854. Sum(CASE
  4855. WHEN hz.dz = 1 THEN hz.nhjje
  4856. ELSE hz.传票预计价
  4857. END) AS sum_ngjje_in,
  4858. Sum(CASE
  4859. WHEN hz.dz = 1 THEN hz.nclje
  4860. ELSE hz.nclje
  4861. END) AS sum_nclje_in,
  4862. hz.ICYDID
  4863. FROM (SELECT yjj.传票预计价单号,
  4864. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  4865. yjj.iCYDID,
  4866. d.cjjdh 计价单号,
  4867. d.ccydh 订单号,
  4868. d.cbz 备注,
  4869. d.ngjje,
  4870. d.nclje,
  4871. IFNULL(d.iwjg, 0) iwjg,
  4872. IFNULL(d.lzfbs, 0) lzfbs,
  4873. d.nhjje,
  4874. IFNULL(d.ldz, 0) dz,
  4875. yjj.bShbz
  4876. FROM (SELECT b.csccpbh 传票预计价单号,
  4877. a.ccydh,
  4878. a.icydid,
  4879. Sum(c.fje) 传票预计价,
  4880. b.bshbz
  4881. FROM MCYD a
  4882. LEFT JOIN sccp b
  4883. ON a.icydid = b.icydid
  4884. LEFT JOIN ZbHjXm c
  4885. ON c.sccpid = b.sccpid
  4886. WHERE b.bOutProcess = '0 '
  4887. GROUP BY b.csccpbh,
  4888. a.icydid,
  4889. a.CCYDH,
  4890. b.bshbz,
  4891. b.bOutProcess) yjj
  4892. LEFT JOIN tbluey d
  4893. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  4894. WHERE hz.iwjg = 0
  4895. AND hz.bshbz = 1
  4896. AND hz.lzfbs = 0
  4897. GROUP BY hz.ICYDID) tb_in
  4898. ON ord.icydid = tb_in.iCydid
  4899. LEFT JOIN (SELECT fw.iCYDID,
  4900. sum_nhjje_out,
  4901. sum_ngjje_out,
  4902. sum_nclje_out,
  4903. bz.cbz
  4904. FROM (SELECT Cast(Sum(( CASE
  4905. WHEN hz.dz = 0 THEN hz.传票预计价
  4906. ELSE hz.nhjje
  4907. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  4908. Cast(Sum(( CASE
  4909. WHEN hz.dz = 0 THEN hz.传票预计价
  4910. ELSE hz.nhjje
  4911. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  4912. Cast(Sum(CASE
  4913. WHEN hz.dz = 0 THEN hz.nclje
  4914. ELSE hz.nclje
  4915. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  4916. iCydid
  4917. FROM (SELECT yjj.传票预计价单号,
  4918. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  4919. yjj.iCYDID,
  4920. d.cjjdh 计价单号,
  4921. d.ccydh 订单号,
  4922. d.cbz 备注,
  4923. d.ngjje,
  4924. d.nclje,
  4925. d.itax,
  4926. IFNULL(d.iwjg, 0) iwjg,
  4927. IFNULL(d.lzfbs, 0) lzfbs,
  4928. d.nhjje,
  4929. IFNULL(d.ldz, 0) dz,
  4930. yjj.bShbz
  4931. FROM (SELECT b.csccpbh 传票预计价单号,
  4932. a.ccydh,
  4933. a.icydid,
  4934. Sum(c.fje) 传票预计价,
  4935. b.bshbz
  4936. FROM MCYD a
  4937. LEFT JOIN sccp b
  4938. ON a.icydid = b.icydid
  4939. LEFT JOIN ZbHjXm c
  4940. ON c.sccpid = b.sccpid
  4941. WHERE b.bOutProcess = '1 '
  4942. GROUP BY b.csccpbh,
  4943. a.icydid,
  4944. a.CCYDH,
  4945. b.bshbz,
  4946. b.bOutProcess) yjj
  4947. LEFT JOIN tbluey d
  4948. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  4949. WHERE hz.iwjg = 1
  4950. AND hz.lzfbs = 0
  4951. GROUP BY hz.ICYDID) fw
  4952. LEFT JOIN (SELECT icydid,
  4953. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  4954. WHERE icydid = a.icydid) AS cbz
  4955. FROM TBluey a
  4956. GROUP BY icydid) bz
  4957. ON bz.icydid = fw.iCYDID) tb_out
  4958. ON ord.icydid = tb_out.iCydid
  4959. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  4960. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  4961. iCydid,
  4962. CASE
  4963. WHEN ldz = 1 THEN 1
  4964. ELSE 0
  4965. END ldz
  4966. FROM TJob
  4967. WHERE lzfbs = 0
  4968. GROUP BY iCydid,
  4969. nclje,
  4970. itax,
  4971. ldz) tj
  4972. ON ord.ICYDID = tj.iCydid
  4973. WHERE ord.ICYDSTATE > 0
  4974. AND 1 = 1) zb
  4975. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
  4976. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  4977. GROUP BY zb.业务单位) dq
  4978. LEFT JOIN (SELECT zb1.业务单位,
  4979. Sum(zb1.合并金额) 上年销售收入,
  4980. Sum(zb1.合并工价) 上年销售工价,
  4981. Sum(zb1.考核计算毛利不含税)上年考核计算毛利
  4982. FROM (SELECT CASE
  4983. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  4984. ELSE '否'
  4985. END 登账,
  4986. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  4987. CCYDH AS 订单号,
  4988. CYJMC AS 印件名称,
  4989. CASE
  4990. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  4991. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  4992. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  4993. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  4994. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  4995. OR CYWDWMC='浙江省新华书店集团有限公司'
  4996. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  4997. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  4998. WHEN CYWDWMC='浙江日报报业集团'
  4999. OR CYWDWMC='共产党员杂志社'
  5000. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  5001. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  5002. OR CYWDWMC='浙江出版传媒有限公司'
  5003. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  5004. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  5005. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  5006. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  5007. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  5008. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  5009. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  5010. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  5011. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  5012. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  5013. WHEN CYWDWMC='上海人民出版社有限公司'
  5014. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  5015. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  5016. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  5017. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  5018. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  5019. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  5020. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  5021. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  5022. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  5023. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  5024. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  5025. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  5026. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  5027. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  5028. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  5029. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  5030. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  5031. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  5032. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  5033. ELSE CYWDWMC
  5034. END AS 业务单位,
  5035. cyjlx 印件类型,
  5036. NCS AS 印数,
  5037. CZWKB AS 开本,
  5038. CDF AS 订法,
  5039. NZWYZ AS 正文印张,
  5040. cbz 发外备注,
  5041. CASE
  5042. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  5043. ELSE
  5044. CASE
  5045. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5046. + CASE
  5047. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5048. ELSE ( CASE
  5049. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5050. ELSE ( CASE
  5051. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5052. ELSE IFNULL(tj.sum_clje, 0)
  5053. END )
  5054. END )
  5055. END = 0
  5056. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5057. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5058. + CASE
  5059. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5060. ELSE ( CASE
  5061. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5062. ELSE ( CASE
  5063. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5064. ELSE IFNULL(tj.sum_clje, 0)
  5065. END )
  5066. END )
  5067. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5068. END
  5069. END AS 考核计算毛利不含税,
  5070. CASE
  5071. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  5072. ELSE
  5073. CASE
  5074. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5075. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5076. 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)
  5077. END
  5078. END AS 考核计算工价毛利不含税,
  5079. ( CASE
  5080. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  5081. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  5082. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5083. ELSE ( CASE
  5084. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5085. ELSE ( CASE
  5086. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5087. ELSE IFNULL(tj.sum_clje, 0)
  5088. END )
  5089. END )
  5090. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  5091. END ) AS 考核计算料价毛利不含税,
  5092. CASE
  5093. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  5094. ELSE ( IFNULL(tj.sum_namount, 0) )
  5095. END 合并金额,
  5096. CASE
  5097. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  5098. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  5099. END 合并工价,
  5100. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  5101. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  5102. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  5103. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  5104. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  5105. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  5106. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  5107. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  5108. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  5109. ord.nzkl AS 折扣率,
  5110. CASE
  5111. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5112. ELSE ( CASE
  5113. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5114. + CASE
  5115. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5116. ELSE ( CASE
  5117. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5118. ELSE ( CASE
  5119. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5120. ELSE IFNULL(tj.sum_clje, 0)
  5121. END )
  5122. END )
  5123. END = 0
  5124. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5125. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5126. + CASE
  5127. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5128. ELSE ( CASE
  5129. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5130. ELSE ( CASE
  5131. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5132. ELSE IFNULL(tj.sum_clje, 0)
  5133. END )
  5134. END )
  5135. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5136. END )
  5137. END AS 生产毛利不含税,
  5138. CASE
  5139. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5140. ELSE ( CASE
  5141. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5142. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5143. 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)
  5144. END )
  5145. END AS 生产工价毛利不含税,
  5146. IFNULL(tj.sum_clje, 0) - ( CASE
  5147. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5148. ELSE ( CASE
  5149. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5150. ELSE ( CASE
  5151. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5152. ELSE IFNULL(tj.sum_clje, 0)
  5153. END )
  5154. END )
  5155. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  5156. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  5157. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  5158. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  5159. IFNULL(tb_in.sum_ngjje_in, 0)
  5160. + CASE
  5161. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5162. ELSE ( CASE
  5163. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5164. ELSE ( CASE
  5165. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5166. ELSE IFNULL(tj.sum_clje, 0)
  5167. END )
  5168. END )
  5169. END AS 厂内传票合计不含税,
  5170. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  5171. CASE
  5172. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5173. ELSE ( CASE
  5174. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5175. ELSE ( CASE
  5176. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5177. ELSE IFNULL(tj.sum_clje, 0)
  5178. END )
  5179. END )
  5180. END AS 厂内传票料价不含税,
  5181. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  5182. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  5183. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  5184. CHY AS 活源,
  5185. CCLBMMC AS 承揽部门,
  5186. CYWYXM AS 业务员,
  5187. lwcbs AS 是否完工,
  5188. Dwcrq AS 完工日期,
  5189. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  5190. LJQBS AS 是否结清,
  5191. djqrq AS 结清日期,
  5192. izlconfirm AS 是否销货,
  5193. dzlconfirmrq AS 销货日期,
  5194. nzlconfirmje AS 销货金额,
  5195. nzlysje AS 销货应收,
  5196. IFNULL(ipaytime, 0) AS 帐龄,
  5197. ( CASE
  5198. WHEN ljqbs = 0
  5199. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  5200. ELSE 0
  5201. END ) AS 付款周期,
  5202. ( CASE
  5203. WHEN ljqbs = 0
  5204. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  5205. ELSE 0
  5206. END ) AS 过期天数,
  5207. ( CASE
  5208. WHEN bsfsk = 1 THEN 1
  5209. ELSE 0
  5210. END ) AS 是否收款,
  5211. nysje AS 预收款,
  5212. fskje AS 收款金额,
  5213. ( CASE
  5214. WHEN bsfdjfp = 1 THEN 1
  5215. ELSE 0
  5216. END ) AS '是否开票',
  5217. ffpje AS 发票金额,
  5218. cfph AS 发票号,
  5219. cfprq AS 发票日期,
  5220. ( CASE
  5221. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  5222. ELSE 0
  5223. END ) AS 未开完票金额,
  5224. ( CASE
  5225. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  5226. ELSE 0
  5227. END ) AS 发票未收款金额,
  5228. iselforder AS 是否异常,
  5229. cselftype AS 异常类型,
  5230. CASE
  5231. WHEN bsfdjfp = 1 THEN ( CASE
  5232. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  5233. ELSE 0
  5234. END )
  5235. ELSE ( CASE
  5236. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  5237. ELSE ( CASE
  5238. WHEN nzlconfirmje = 0 THEN nhjje
  5239. ELSE nzlconfirmje
  5240. END )
  5241. END )
  5242. END 未开票
  5243. FROM MCYD Ord
  5244. LEFT JOIN (SELECT ICYDID,
  5245. Max(Nsc) AS Nsc
  5246. FROM SCYDDX
  5247. WHERE IDXLXID = 573
  5248. GROUP BY ICYDID) AS Obj
  5249. ON ord.ICYDID = Obj.ICYDID
  5250. LEFT JOIN (SELECT ICYDID,
  5251. Sum(NYSLS) AS nysls,
  5252. Sum(nyssl) AS nyssl,
  5253. Sum(nsyl) AS nsyl
  5254. FROM SCYDDX
  5255. GROUP BY ICYDID) AS ObjMatier
  5256. ON Ord.ICYDID = ObjMatier.ICYDID
  5257. LEFT JOIN (SELECT Sum(CASE
  5258. WHEN hz.dz = 1 THEN hz.nhjje
  5259. ELSE hz.传票预计价
  5260. END) AS sum_nhjje_in,
  5261. Sum(CASE
  5262. WHEN hz.dz = 1 THEN hz.nhjje
  5263. ELSE hz.传票预计价
  5264. END) AS sum_ngjje_in,
  5265. Sum(CASE
  5266. WHEN hz.dz = 1 THEN hz.nclje
  5267. ELSE hz.nclje
  5268. END) AS sum_nclje_in,
  5269. hz.ICYDID
  5270. FROM (SELECT yjj.传票预计价单号,
  5271. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5272. yjj.iCYDID,
  5273. d.cjjdh 计价单号,
  5274. d.ccydh 订单号,
  5275. d.cbz 备注,
  5276. d.ngjje,
  5277. d.nclje,
  5278. IFNULL(d.iwjg, 0) iwjg,
  5279. IFNULL(d.lzfbs, 0) lzfbs,
  5280. d.nhjje,
  5281. IFNULL(d.ldz, 0) dz,
  5282. yjj.bShbz
  5283. FROM (SELECT b.csccpbh 传票预计价单号,
  5284. a.ccydh,
  5285. a.icydid,
  5286. Sum(c.fje) 传票预计价,
  5287. b.bshbz
  5288. FROM MCYD a
  5289. LEFT JOIN sccp b
  5290. ON a.icydid = b.icydid
  5291. LEFT JOIN ZbHjXm c
  5292. ON c.sccpid = b.sccpid
  5293. WHERE b.bOutProcess = '0 '
  5294. GROUP BY b.csccpbh,
  5295. a.icydid,
  5296. a.CCYDH,
  5297. b.bshbz,
  5298. b.bOutProcess) yjj
  5299. LEFT JOIN tbluey d
  5300. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5301. WHERE hz.iwjg = 0
  5302. AND hz.bshbz = 1
  5303. AND hz.lzfbs = 0
  5304. GROUP BY hz.ICYDID) tb_in
  5305. ON ord.icydid = tb_in.iCydid
  5306. LEFT JOIN (SELECT fw.iCYDID,
  5307. sum_nhjje_out,
  5308. sum_ngjje_out,
  5309. sum_nclje_out,
  5310. bz.cbz
  5311. FROM (SELECT Cast(Sum(( CASE
  5312. WHEN hz.dz = 0 THEN hz.传票预计价
  5313. ELSE hz.nhjje
  5314. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  5315. Cast(Sum(( CASE
  5316. WHEN hz.dz = 0 THEN hz.传票预计价
  5317. ELSE hz.nhjje
  5318. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  5319. Cast(Sum(CASE
  5320. WHEN hz.dz = 0 THEN hz.nclje
  5321. ELSE hz.nclje
  5322. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  5323. iCydid
  5324. FROM (SELECT yjj.传票预计价单号,
  5325. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5326. yjj.iCYDID,
  5327. d.cjjdh 计价单号,
  5328. d.ccydh 订单号,
  5329. d.cbz 备注,
  5330. d.ngjje,
  5331. d.nclje,
  5332. d.itax,
  5333. IFNULL(d.iwjg, 0) iwjg,
  5334. IFNULL(d.lzfbs, 0) lzfbs,
  5335. d.nhjje,
  5336. IFNULL(d.ldz, 0) dz,
  5337. yjj.bShbz
  5338. FROM (SELECT b.csccpbh 传票预计价单号,
  5339. a.ccydh,
  5340. a.icydid,
  5341. Sum(c.fje) 传票预计价,
  5342. b.bshbz
  5343. FROM MCYD a
  5344. LEFT JOIN sccp b
  5345. ON a.icydid = b.icydid
  5346. LEFT JOIN ZbHjXm c
  5347. ON c.sccpid = b.sccpid
  5348. WHERE b.bOutProcess = '1 '
  5349. GROUP BY b.csccpbh,
  5350. a.icydid,
  5351. a.CCYDH,
  5352. b.bshbz,
  5353. b.bOutProcess) yjj
  5354. LEFT JOIN tbluey d
  5355. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5356. WHERE hz.iwjg = 1
  5357. AND hz.lzfbs = 0
  5358. GROUP BY hz.ICYDID) fw
  5359. LEFT JOIN (SELECT icydid,
  5360. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  5361. WHERE icydid = a.icydid) AS cbz
  5362. FROM TBluey a
  5363. GROUP BY icydid) bz
  5364. ON bz.icydid = fw.iCYDID) tb_out
  5365. ON ord.icydid = tb_out.iCydid
  5366. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  5367. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  5368. iCydid,
  5369. CASE
  5370. WHEN ldz = 1 THEN 1
  5371. ELSE 0
  5372. END ldz
  5373. FROM TJob
  5374. WHERE lzfbs = 0
  5375. GROUP BY iCydid,
  5376. nclje,
  5377. itax,
  5378. ldz) tj
  5379. ON ord.ICYDID = tj.iCydid
  5380. WHERE ord.ICYDSTATE > 0
  5381. AND 1 = 1) zb1
  5382. WHERE CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) >= '{$januaryFirst}'
  5383. AND CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) <= '{$today}'
  5384. GROUP BY zb1.业务单位) hb
  5385. ON hb.业务单位 = dq.业务单位)UNION(SELECT 1 AS flag,
  5386. IFNULL(dq.业务单位, hb.业务单位) 客户,
  5387. IFNULL(dq.销售收入, 000) 销售收入,
  5388. IFNULL(hb.上年销售收入, 0.000) 上年销售收入,
  5389. IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000) 销售收入增减,
  5390. CASE
  5391. WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
  5392. WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
  5393. AND IFNULL(dq.销售收入, 000) > 0 THEN 1
  5394. ELSE 0
  5395. END AS 销售收入同期比,
  5396. IFNULL(dq.销售工价, 000) 销售工价,
  5397. IFNULL(hb.上年销售工价, 0.000) 上年销售工价,
  5398. IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000) 销售工价增减,
  5399. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  5400. IFNULL(hb.上年考核计算毛利, 0.000) 上年考核计算毛利,
  5401. IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
  5402. CASE
  5403. WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
  5404. WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
  5405. AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
  5406. ELSE 0
  5407. END AS 毛利同期比
  5408. FROM (SELECT zb.业务单位 业务单位,
  5409. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  5410. IFNULL(Sum(zb.合并工价), 0.000) 销售工价,
  5411. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
  5412. FROM (SELECT CASE
  5413. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  5414. ELSE '否'
  5415. END 登账,
  5416. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  5417. CCYDH AS 订单号,
  5418. CYJMC AS 印件名称,
  5419. CASE
  5420. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  5421. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  5422. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  5423. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  5424. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  5425. OR CYWDWMC='浙江省新华书店集团有限公司'
  5426. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  5427. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  5428. WHEN CYWDWMC='浙江日报报业集团'
  5429. OR CYWDWMC='共产党员杂志社'
  5430. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  5431. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  5432. OR CYWDWMC='浙江出版传媒有限公司'
  5433. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  5434. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  5435. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  5436. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  5437. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  5438. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  5439. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  5440. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  5441. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  5442. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  5443. WHEN CYWDWMC='上海人民出版社有限公司'
  5444. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  5445. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  5446. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  5447. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  5448. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  5449. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  5450. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  5451. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  5452. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  5453. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  5454. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  5455. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  5456. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  5457. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  5458. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  5459. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  5460. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  5461. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  5462. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  5463. ELSE CYWDWMC
  5464. END AS 业务单位,
  5465. cyjlx 印件类型,
  5466. NCS AS 印数,
  5467. CZWKB AS 开本,
  5468. CDF AS 订法,
  5469. NZWYZ AS 正文印张,
  5470. CASE
  5471. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  5472. ELSE
  5473. CASE
  5474. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5475. + CASE
  5476. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5477. ELSE ( CASE
  5478. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5479. ELSE ( CASE
  5480. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5481. ELSE IFNULL(tj.sum_clje, 0)
  5482. END )
  5483. END )
  5484. END = 0
  5485. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5486. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5487. + CASE
  5488. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5489. ELSE ( CASE
  5490. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5491. ELSE ( CASE
  5492. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5493. ELSE IFNULL(tj.sum_clje, 0)
  5494. END )
  5495. END )
  5496. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5497. END
  5498. END AS 考核计算毛利不含税,
  5499. CASE
  5500. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  5501. ELSE
  5502. CASE
  5503. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5504. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5505. 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)
  5506. END
  5507. END AS 考核计算工价毛利不含税,
  5508. ( CASE
  5509. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  5510. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  5511. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5512. ELSE ( CASE
  5513. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5514. ELSE ( CASE
  5515. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5516. ELSE IFNULL(tj.sum_clje, 0)
  5517. END )
  5518. END )
  5519. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  5520. END ) AS 考核计算料价毛利不含税,
  5521. CASE
  5522. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  5523. ELSE ( IFNULL(tj.sum_namount, 0) )
  5524. END 合并金额,
  5525. CASE
  5526. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  5527. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  5528. END 合并工价,
  5529. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  5530. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  5531. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  5532. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  5533. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  5534. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  5535. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  5536. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  5537. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  5538. ord.nzkl AS 折扣率,
  5539. CASE
  5540. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5541. ELSE ( CASE
  5542. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5543. + CASE
  5544. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5545. ELSE ( CASE
  5546. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5547. ELSE ( CASE
  5548. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5549. ELSE IFNULL(tj.sum_clje, 0)
  5550. END )
  5551. END )
  5552. END = 0
  5553. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5554. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5555. + CASE
  5556. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5557. ELSE ( CASE
  5558. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5559. ELSE ( CASE
  5560. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5561. ELSE IFNULL(tj.sum_clje, 0)
  5562. END )
  5563. END )
  5564. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5565. END )
  5566. END AS 生产毛利不含税,
  5567. CASE
  5568. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5569. ELSE ( CASE
  5570. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5571. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5572. 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)
  5573. END )
  5574. END AS 生产工价毛利不含税,
  5575. IFNULL(tj.sum_clje, 0) - ( CASE
  5576. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5577. ELSE ( CASE
  5578. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5579. ELSE ( CASE
  5580. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5581. ELSE IFNULL(tj.sum_clje, 0)
  5582. END )
  5583. END )
  5584. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  5585. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  5586. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  5587. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  5588. IFNULL(tb_in.sum_ngjje_in, 0)
  5589. + CASE
  5590. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5591. ELSE ( CASE
  5592. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5593. ELSE ( CASE
  5594. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5595. ELSE IFNULL(tj.sum_clje, 0)
  5596. END )
  5597. END )
  5598. END AS 厂内传票合计不含税,
  5599. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  5600. CASE
  5601. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5602. ELSE ( CASE
  5603. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5604. ELSE ( CASE
  5605. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5606. ELSE IFNULL(tj.sum_clje, 0)
  5607. END )
  5608. END )
  5609. END AS 厂内传票料价不含税,
  5610. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  5611. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  5612. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  5613. CHY AS 活源,
  5614. CCLBMMC AS 承揽部门,
  5615. CYWYXM AS 业务员,
  5616. lwcbs AS 是否完工,
  5617. Dwcrq AS 完工日期,
  5618. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  5619. LJQBS AS 是否结清,
  5620. djqrq AS 结清日期,
  5621. izlconfirm AS 是否销货,
  5622. dzlconfirmrq AS 销货日期,
  5623. nzlconfirmje AS 销货金额,
  5624. nzlysje AS 销货应收,
  5625. IFNULL(ipaytime, 0) AS 帐龄,
  5626. ( CASE
  5627. WHEN ljqbs = 0
  5628. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  5629. ELSE 0
  5630. END ) AS 付款周期,
  5631. ( CASE
  5632. WHEN ljqbs = 0
  5633. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  5634. ELSE 0
  5635. END ) AS 过期天数,
  5636. ( CASE
  5637. WHEN bsfsk = 1 THEN 1
  5638. ELSE 0
  5639. END ) AS 是否收款,
  5640. nysje AS 预收款,
  5641. fskje AS 收款金额,
  5642. ( CASE
  5643. WHEN bsfdjfp = 1 THEN 1
  5644. ELSE 0
  5645. END ) AS '是否开票',
  5646. ffpje AS 发票金额,
  5647. cfph AS 发票号,
  5648. cfprq AS 发票日期,
  5649. ( CASE
  5650. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  5651. ELSE 0
  5652. END ) AS 未开完票金额,
  5653. ( CASE
  5654. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  5655. ELSE 0
  5656. END ) AS 发票未收款金额,
  5657. iselforder AS 是否异常,
  5658. cselftype AS 异常类型,
  5659. CASE
  5660. WHEN bsfdjfp = 1 THEN ( CASE
  5661. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  5662. ELSE 0
  5663. END )
  5664. ELSE ( CASE
  5665. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  5666. ELSE ( CASE
  5667. WHEN nzlconfirmje = 0 THEN nhjje
  5668. ELSE nzlconfirmje
  5669. END )
  5670. END )
  5671. END 未开票
  5672. FROM MCYD Ord
  5673. LEFT JOIN (SELECT Sum(CASE
  5674. WHEN hz.dz = 1 THEN hz.nhjje
  5675. ELSE hz.传票预计价
  5676. END) AS sum_nhjje_in,
  5677. Sum(CASE
  5678. WHEN hz.dz = 1 THEN hz.nhjje
  5679. ELSE hz.传票预计价
  5680. END) AS sum_ngjje_in,
  5681. Sum(CASE
  5682. WHEN hz.dz = 1 THEN hz.nclje
  5683. ELSE hz.nclje
  5684. END) AS sum_nclje_in,
  5685. hz.ICYDID
  5686. FROM (SELECT yjj.传票预计价单号,
  5687. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5688. yjj.iCYDID,
  5689. d.cjjdh 计价单号,
  5690. d.ccydh 订单号,
  5691. d.cbz 备注,
  5692. d.ngjje,
  5693. d.nclje,
  5694. IFNULL(d.iwjg, 0) iwjg,
  5695. IFNULL(d.lzfbs, 0) lzfbs,
  5696. d.nhjje,
  5697. IFNULL(d.ldz, 0) dz,
  5698. yjj.bShbz
  5699. FROM (SELECT b.csccpbh 传票预计价单号,
  5700. a.ccydh,
  5701. a.icydid,
  5702. Sum(c.fje) 传票预计价,
  5703. b.bshbz
  5704. FROM MCYD a
  5705. LEFT JOIN sccp b
  5706. ON a.icydid = b.icydid
  5707. LEFT JOIN ZbHjXm c
  5708. ON c.sccpid = b.sccpid
  5709. WHERE b.bOutProcess = '0 '
  5710. GROUP BY b.csccpbh,
  5711. a.icydid,
  5712. a.CCYDH,
  5713. b.bshbz,
  5714. b.bOutProcess) yjj
  5715. LEFT JOIN tbluey d
  5716. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5717. WHERE hz.iwjg = 0
  5718. AND hz.bshbz = 1
  5719. AND hz.lzfbs = 0
  5720. GROUP BY hz.ICYDID) tb_in
  5721. ON ord.icydid = tb_in.iCydid
  5722. LEFT JOIN (SELECT fw.iCYDID,
  5723. sum_nhjje_out,
  5724. sum_ngjje_out,
  5725. sum_nclje_out,
  5726. bz.cbz
  5727. FROM (SELECT Cast(Sum(( CASE
  5728. WHEN hz.dz = 0 THEN hz.传票预计价
  5729. ELSE hz.nhjje
  5730. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  5731. Cast(Sum(( CASE
  5732. WHEN hz.dz = 0 THEN hz.传票预计价
  5733. ELSE hz.nhjje
  5734. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  5735. Cast(Sum(CASE
  5736. WHEN hz.dz = 0 THEN hz.nclje
  5737. ELSE hz.nclje
  5738. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  5739. iCydid
  5740. FROM (SELECT yjj.传票预计价单号,
  5741. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  5742. yjj.iCYDID,
  5743. d.cjjdh 计价单号,
  5744. d.ccydh 订单号,
  5745. d.cbz 备注,
  5746. d.ngjje,
  5747. d.nclje,
  5748. d.itax,
  5749. IFNULL(d.iwjg, 0) iwjg,
  5750. IFNULL(d.lzfbs, 0) lzfbs,
  5751. d.nhjje,
  5752. IFNULL(d.ldz, 0) dz,
  5753. yjj.bShbz
  5754. FROM (SELECT b.csccpbh 传票预计价单号,
  5755. a.ccydh,
  5756. a.icydid,
  5757. Sum(c.fje) 传票预计价,
  5758. b.bshbz
  5759. FROM MCYD a
  5760. LEFT JOIN sccp b
  5761. ON a.icydid = b.icydid
  5762. LEFT JOIN ZbHjXm c
  5763. ON c.sccpid = b.sccpid
  5764. WHERE b.bOutProcess = '1 '
  5765. GROUP BY b.csccpbh,
  5766. a.icydid,
  5767. a.CCYDH,
  5768. b.bshbz,
  5769. b.bOutProcess) yjj
  5770. LEFT JOIN tbluey d
  5771. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  5772. WHERE hz.iwjg = 1
  5773. AND hz.lzfbs = 0
  5774. GROUP BY hz.ICYDID) fw
  5775. LEFT JOIN (SELECT icydid,
  5776. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  5777. WHERE icydid = a.icydid) AS cbz
  5778. FROM TBluey a
  5779. GROUP BY icydid) bz
  5780. ON bz.icydid = fw.iCYDID) tb_out
  5781. ON ord.icydid = tb_out.iCydid
  5782. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  5783. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  5784. iCydid,
  5785. CASE
  5786. WHEN ldz = 1 THEN 1
  5787. ELSE 0
  5788. END ldz
  5789. FROM TJob
  5790. WHERE lzfbs = 0
  5791. GROUP BY iCydid,
  5792. nclje,
  5793. itax,
  5794. ldz) tj
  5795. ON ord.ICYDID = tj.iCydid
  5796. WHERE ord.ICYDSTATE > 0
  5797. AND 1 = 1) zb
  5798. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
  5799. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  5800. GROUP BY zb.业务单位) dq
  5801. RIGHT JOIN (SELECT zb1.业务单位,
  5802. Sum(zb1.合并金额) 上年销售收入,
  5803. Sum(zb1.合并工价) 上年销售工价,
  5804. Sum(zb1.考核计算毛利不含税)上年考核计算毛利
  5805. FROM (SELECT CASE
  5806. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  5807. ELSE '否'
  5808. END 登账,
  5809. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  5810. CCYDH AS 订单号,
  5811. CYJMC AS 印件名称,
  5812. CASE
  5813. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  5814. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  5815. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  5816. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  5817. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  5818. OR CYWDWMC='浙江省新华书店集团有限公司'
  5819. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  5820. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  5821. WHEN CYWDWMC='浙江日报报业集团'
  5822. OR CYWDWMC='共产党员杂志社'
  5823. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  5824. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  5825. OR CYWDWMC='浙江出版传媒有限公司'
  5826. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  5827. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  5828. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  5829. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  5830. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  5831. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  5832. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  5833. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  5834. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  5835. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  5836. WHEN CYWDWMC='上海人民出版社有限公司'
  5837. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  5838. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  5839. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  5840. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  5841. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  5842. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  5843. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  5844. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  5845. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  5846. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  5847. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  5848. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  5849. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  5850. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  5851. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  5852. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  5853. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  5854. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  5855. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  5856. ELSE CYWDWMC
  5857. END AS 业务单位,
  5858. cyjlx 印件类型,
  5859. NCS AS 印数,
  5860. CZWKB AS 开本,
  5861. CDF AS 订法,
  5862. NZWYZ AS 正文印张,
  5863. cbz 发外备注,
  5864. CASE
  5865. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  5866. ELSE
  5867. CASE
  5868. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5869. + CASE
  5870. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5871. ELSE ( CASE
  5872. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5873. ELSE ( CASE
  5874. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5875. ELSE IFNULL(tj.sum_clje, 0)
  5876. END )
  5877. END )
  5878. END = 0
  5879. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5880. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5881. + CASE
  5882. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5883. ELSE ( CASE
  5884. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5885. ELSE ( CASE
  5886. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5887. ELSE IFNULL(tj.sum_clje, 0)
  5888. END )
  5889. END )
  5890. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5891. END
  5892. END AS 考核计算毛利不含税,
  5893. CASE
  5894. WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
  5895. ELSE
  5896. CASE
  5897. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5898. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5899. 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)
  5900. END
  5901. END AS 考核计算工价毛利不含税,
  5902. ( CASE
  5903. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
  5904. ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
  5905. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5906. ELSE ( CASE
  5907. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5908. ELSE ( CASE
  5909. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5910. ELSE IFNULL(tj.sum_clje, 0)
  5911. END )
  5912. END )
  5913. END ) - IFNULL(tb_out.sum_nclje_out, 0) )
  5914. END ) AS 考核计算料价毛利不含税,
  5915. CASE
  5916. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  5917. ELSE ( IFNULL(tj.sum_namount, 0) )
  5918. END 合并金额,
  5919. CASE
  5920. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
  5921. ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
  5922. END 合并工价,
  5923. ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) AS 采购毛利不含税,
  5924. ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) AS 采购工价毛利不含税,
  5925. ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) ) AS 采购料价毛利不含税,
  5926. IFNULL(nwshjje, 0) AS 合同总金额不含税,
  5927. IFNULL(nwsgjhj, 0) AS 合同工价不含税,
  5928. IFNULL(nwsclhj, 0) AS 合同材料不含税,
  5929. IFNULL(nwsbzhjje, 0) AS 标准总金额不含税,
  5930. IFNULL(nwsbzgjhj, 0) AS 标准工价不含税,
  5931. IFNULL(nwsbzclhj, 0) AS 标准料价不含税,
  5932. ord.nzkl AS 折扣率,
  5933. CASE
  5934. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5935. ELSE ( CASE
  5936. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  5937. + CASE
  5938. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5939. ELSE ( CASE
  5940. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5941. ELSE ( CASE
  5942. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5943. ELSE IFNULL(tj.sum_clje, 0)
  5944. END )
  5945. END )
  5946. END = 0
  5947. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  5948. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  5949. + CASE
  5950. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5951. ELSE ( CASE
  5952. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5953. ELSE ( CASE
  5954. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5955. ELSE IFNULL(tj.sum_clje, 0)
  5956. END )
  5957. END )
  5958. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  5959. END )
  5960. END AS 生产毛利不含税,
  5961. CASE
  5962. WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
  5963. ELSE ( CASE
  5964. WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
  5965. AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
  5966. 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)
  5967. END )
  5968. END AS 生产工价毛利不含税,
  5969. IFNULL(tj.sum_clje, 0) - ( CASE
  5970. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5971. ELSE ( CASE
  5972. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5973. ELSE ( CASE
  5974. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5975. ELSE IFNULL(tj.sum_clje, 0)
  5976. END )
  5977. END )
  5978. END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
  5979. IFNULL(tj.sum_namount, 0) AS 订单计价金额不含税,
  5980. IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) AS 订单计价工价不含税,
  5981. IFNULL(tj.sum_clje, 0) AS 订单计价料价不含税,
  5982. IFNULL(tb_in.sum_ngjje_in, 0)
  5983. + CASE
  5984. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5985. ELSE ( CASE
  5986. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5987. ELSE ( CASE
  5988. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  5989. ELSE IFNULL(tj.sum_clje, 0)
  5990. END )
  5991. END )
  5992. END AS 厂内传票合计不含税,
  5993. IFNULL(tb_in.sum_ngjje_in, 0) AS 厂内传票工价不含税,
  5994. CASE
  5995. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  5996. ELSE ( CASE
  5997. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  5998. ELSE ( CASE
  5999. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6000. ELSE IFNULL(tj.sum_clje, 0)
  6001. END )
  6002. END )
  6003. END AS 厂内传票料价不含税,
  6004. IFNULL(tb_out.sum_nhjje_out, 0) AS 发外传票合计不含税,
  6005. IFNULL(tb_out.sum_ngjje_out, 0) AS 发外传票工价不含税,
  6006. IFNULL(tb_out.sum_nclje_out, 0) AS 发外传票料价不含税,
  6007. CHY AS 活源,
  6008. CCLBMMC AS 承揽部门,
  6009. CYWYXM AS 业务员,
  6010. lwcbs AS 是否完工,
  6011. Dwcrq AS 完工日期,
  6012. CONVERT(djfrq,CHAR(10)) AS 交付日期,
  6013. LJQBS AS 是否结清,
  6014. djqrq AS 结清日期,
  6015. izlconfirm AS 是否销货,
  6016. dzlconfirmrq AS 销货日期,
  6017. nzlconfirmje AS 销货金额,
  6018. nzlysje AS 销货应收,
  6019. IFNULL(ipaytime, 0) AS 帐龄,
  6020. ( CASE
  6021. WHEN ljqbs = 0
  6022. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
  6023. ELSE 0
  6024. END ) AS 付款周期,
  6025. ( CASE
  6026. WHEN ljqbs = 0
  6027. AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
  6028. ELSE 0
  6029. END ) AS 过期天数,
  6030. ( CASE
  6031. WHEN bsfsk = 1 THEN 1
  6032. ELSE 0
  6033. END ) AS 是否收款,
  6034. nysje AS 预收款,
  6035. fskje AS 收款金额,
  6036. ( CASE
  6037. WHEN bsfdjfp = 1 THEN 1
  6038. ELSE 0
  6039. END ) AS '是否开票',
  6040. ffpje AS 发票金额,
  6041. cfph AS 发票号,
  6042. cfprq AS 发票日期,
  6043. ( CASE
  6044. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  6045. ELSE 0
  6046. END ) AS 未开完票金额,
  6047. ( CASE
  6048. WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
  6049. ELSE 0
  6050. END ) AS 发票未收款金额,
  6051. iselforder AS 是否异常,
  6052. cselftype AS 异常类型,
  6053. CASE
  6054. WHEN bsfdjfp = 1 THEN ( CASE
  6055. WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
  6056. ELSE 0
  6057. END )
  6058. ELSE ( CASE
  6059. WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
  6060. ELSE ( CASE
  6061. WHEN nzlconfirmje = 0 THEN nhjje
  6062. ELSE nzlconfirmje
  6063. END )
  6064. END )
  6065. END 未开票
  6066. FROM MCYD Ord
  6067. LEFT JOIN (SELECT ICYDID,
  6068. Max(Nsc) AS Nsc
  6069. FROM SCYDDX
  6070. WHERE IDXLXID = 573
  6071. GROUP BY ICYDID) AS Obj
  6072. ON ord.ICYDID = Obj.ICYDID
  6073. LEFT JOIN (SELECT ICYDID,
  6074. Sum(NYSLS) AS nysls,
  6075. Sum(nyssl) AS nyssl,
  6076. Sum(nsyl) AS nsyl
  6077. FROM SCYDDX
  6078. GROUP BY ICYDID) AS ObjMatier
  6079. ON Ord.ICYDID = ObjMatier.ICYDID
  6080. LEFT JOIN (SELECT Sum(CASE
  6081. WHEN hz.dz = 1 THEN hz.nhjje
  6082. ELSE hz.传票预计价
  6083. END) AS sum_nhjje_in,
  6084. Sum(CASE
  6085. WHEN hz.dz = 1 THEN hz.nhjje
  6086. ELSE hz.传票预计价
  6087. END) AS sum_ngjje_in,
  6088. Sum(CASE
  6089. WHEN hz.dz = 1 THEN hz.nclje
  6090. ELSE hz.nclje
  6091. END) AS sum_nclje_in,
  6092. hz.ICYDID
  6093. FROM (SELECT yjj.传票预计价单号,
  6094. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  6095. yjj.iCYDID,
  6096. d.cjjdh 计价单号,
  6097. d.ccydh 订单号,
  6098. d.cbz 备注,
  6099. d.ngjje,
  6100. d.nclje,
  6101. IFNULL(d.iwjg, 0) iwjg,
  6102. IFNULL(d.lzfbs, 0) lzfbs,
  6103. d.nhjje,
  6104. IFNULL(d.ldz, 0) dz,
  6105. yjj.bShbz
  6106. FROM (SELECT b.csccpbh 传票预计价单号,
  6107. a.ccydh,
  6108. a.icydid,
  6109. Sum(c.fje) 传票预计价,
  6110. b.bshbz
  6111. FROM MCYD a
  6112. LEFT JOIN sccp b
  6113. ON a.icydid = b.icydid
  6114. LEFT JOIN ZbHjXm c
  6115. ON c.sccpid = b.sccpid
  6116. WHERE b.bOutProcess = '0 '
  6117. GROUP BY b.csccpbh,
  6118. a.icydid,
  6119. a.CCYDH,
  6120. b.bshbz,
  6121. b.bOutProcess) yjj
  6122. LEFT JOIN tbluey d
  6123. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  6124. WHERE hz.iwjg = 0
  6125. AND hz.bshbz = 1
  6126. AND hz.lzfbs = 0
  6127. GROUP BY hz.ICYDID) tb_in
  6128. ON ord.icydid = tb_in.iCydid
  6129. LEFT JOIN (SELECT fw.iCYDID,
  6130. sum_nhjje_out,
  6131. sum_ngjje_out,
  6132. sum_nclje_out,
  6133. bz.cbz
  6134. FROM (SELECT Cast(Sum(( CASE
  6135. WHEN hz.dz = 0 THEN hz.传票预计价
  6136. ELSE hz.nhjje
  6137. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  6138. Cast(Sum(( CASE
  6139. WHEN hz.dz = 0 THEN hz.传票预计价
  6140. ELSE hz.nhjje
  6141. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  6142. Cast(Sum(CASE
  6143. WHEN hz.dz = 0 THEN hz.nclje
  6144. ELSE hz.nclje
  6145. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  6146. iCydid
  6147. FROM (SELECT yjj.传票预计价单号,
  6148. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  6149. yjj.iCYDID,
  6150. d.cjjdh 计价单号,
  6151. d.ccydh 订单号,
  6152. d.cbz 备注,
  6153. d.ngjje,
  6154. d.nclje,
  6155. d.itax,
  6156. IFNULL(d.iwjg, 0) iwjg,
  6157. IFNULL(d.lzfbs, 0) lzfbs,
  6158. d.nhjje,
  6159. IFNULL(d.ldz, 0) dz,
  6160. yjj.bShbz
  6161. FROM (SELECT b.csccpbh 传票预计价单号,
  6162. a.ccydh,
  6163. a.icydid,
  6164. Sum(c.fje) 传票预计价,
  6165. b.bshbz
  6166. FROM MCYD a
  6167. LEFT JOIN sccp b
  6168. ON a.icydid = b.icydid
  6169. LEFT JOIN ZbHjXm c
  6170. ON c.sccpid = b.sccpid
  6171. WHERE b.bOutProcess = '1 '
  6172. GROUP BY b.csccpbh,
  6173. a.icydid,
  6174. a.CCYDH,
  6175. b.bshbz,
  6176. b.bOutProcess) yjj
  6177. LEFT JOIN tbluey d
  6178. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  6179. WHERE hz.iwjg = 1
  6180. AND hz.lzfbs = 0
  6181. GROUP BY hz.ICYDID) fw
  6182. LEFT JOIN (SELECT icydid,
  6183. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  6184. WHERE icydid = a.icydid) AS cbz
  6185. FROM TBluey a
  6186. GROUP BY icydid) bz
  6187. ON bz.icydid = fw.iCYDID) tb_out
  6188. ON ord.icydid = tb_out.iCydid
  6189. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  6190. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  6191. iCydid,
  6192. CASE
  6193. WHEN ldz = 1 THEN 1
  6194. ELSE 0
  6195. END ldz
  6196. FROM TJob
  6197. WHERE lzfbs = 0
  6198. GROUP BY iCydid,
  6199. nclje,
  6200. itax,
  6201. ldz) tj
  6202. ON ord.ICYDID = tj.iCydid
  6203. WHERE ord.ICYDSTATE > 0
  6204. AND 1 = 1) zb1
  6205. WHERE CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) >= '{$januaryFirst}'
  6206. AND CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) <= '{$today}'
  6207. GROUP BY zb1.业务单位) hb
  6208. ON hb.业务单位 = dq.业务单位))a) aa
  6209. )bb
  6210. ORDER BY bb.销售收入(万元) desc
  6211. ";
  6212. // WHERE bb.销售收入(万元)>200
  6213. $result=Db::query($sql);
  6214. if ($result) {
  6215. $redis->set($redis_key, json_encode($result));
  6216. echo date("Y-m-d H:i:s").' 存进去了';
  6217. return $result;
  6218. }
  6219. }
  6220. //年度考核销售收入同比上升和下滑一览表->接口
  6221. public function year_sale() {
  6222. $redis = redis();
  6223. $result = json_decode($redis->get(md5('year_dclandsx_redis')), true);
  6224. // 排除销售收入增长率为负100的值
  6225. $result = array_filter($result, function ($item) {
  6226. return $item['销售收入增长率'] != -100;
  6227. });
  6228. // $result = array_filter($result, function ($item) {
  6229. // return $item['销售收入增长率'] != '/';
  6230. // });
  6231. // $result = array_filter($result, function ($item) {
  6232. // return $item['销售收入增长率'] != '0.00';
  6233. // });
  6234. //排序
  6235. usort($result, function ($a, $b) {
  6236. $a_value = $a['销售收入(万元)'];
  6237. $b_value = $b['销售收入(万元)'];
  6238. return $b_value <=> $a_value; // 按照销售收入降序排序
  6239. });
  6240. // 获取数据列定义
  6241. $list['columns'] = [
  6242. ['name' => '客户名称', 'id' => 'khmc', 'width' => '55', 'autoWrap' => "true", 'textAlign' => 'left'],
  6243. ['name' => '销售金额(万元)', 'id' => 'xsje', 'width' => '24', 'autoWrap' => "true", 'textAlign' => 'left'],
  6244. ['name' => '同比增长率', 'id' => 'zzl', 'width' => '18', 'autoWrap' => "true", 'textAlign' => 'left']
  6245. ];
  6246. // 截取前几客户
  6247. $top_clients = array_slice($result, 0, 6);
  6248. // 截取后几客户
  6249. $bottom_clients = array_slice($result, -6);
  6250. // 合并前四个和后三个客户
  6251. $merged_clients = array_merge($top_clients, $bottom_clients);
  6252. // 填充行数据
  6253. foreach ($merged_clients as $v) {
  6254. $list['rows'][] = [
  6255. 'khmc' => $v['客户'],
  6256. 'xsje' => $v['销售收入(万元)'],
  6257. 'zzl' => $v['销售收入增长率'],
  6258. ];
  6259. }
  6260. $res['status'] = 0;
  6261. $res['msg'] = '';
  6262. $res['data'] = $list;
  6263. return json($res);
  6264. }
  6265. //图书板块大客户分析列表->缓存
  6266. public function customer_analysis_redis(){
  6267. $redis = redis();
  6268. $redis_key = md5('customer_analysis_redis');
  6269. $today = date("Y-m-d");
  6270. $qtoday = date("Y-m-d", strtotime("-1 year"));
  6271. $sql = "SELECT hz.客户,
  6272. hz.销售得分 + hz.毛利得分 + hz.单均金额得分 + hz.库存数得分 + hz.投诉次数得分 AS 总分,
  6273. hz.销售收入(万元),
  6274. hz.销售排名,
  6275. hz.销售得分,
  6276. hz.考核计算毛利(万元),
  6277. hz.毛利排名,
  6278. hz.毛利得分,
  6279. hz.单均金额(万元),
  6280. hz.单均金额排名,
  6281. hz.单均金额得分,
  6282. hz.库存数,
  6283. hz.库存数排名,
  6284. hz.库存数得分,
  6285. hz.投诉次数,
  6286. hz.投诉次数排名,
  6287. hz.投诉次数得分
  6288. FROM (SELECT *,
  6289. Row_number()
  6290. OVER (
  6291. ORDER BY tb.销售收入(万元) DESC) AS 销售排名,
  6292. CASE
  6293. WHEN Row_number()
  6294. OVER (
  6295. ORDER BY tb.销售收入(万元) DESC) <= 30 THEN 30 - Row_number()
  6296. OVER (
  6297. ORDER BY tb.销售收入(万元) DESC) + 1
  6298. ELSE 0
  6299. END AS 销售得分,
  6300. Row_number()
  6301. OVER (
  6302. ORDER BY tb.考核计算毛利(万元) DESC) AS 毛利排名,
  6303. CASE
  6304. WHEN Row_number()
  6305. OVER (
  6306. ORDER BY tb.考核计算毛利(万元) DESC) <= 25 THEN 25 - Row_number()
  6307. OVER (
  6308. ORDER BY tb.考核计算毛利(万元) DESC) + 1
  6309. ELSE 0
  6310. END AS 毛利得分,
  6311. Row_number()
  6312. OVER (
  6313. ORDER BY tb.单均金额(万元) DESC) AS 单均金额排名,
  6314. CASE
  6315. WHEN Row_number()
  6316. OVER (
  6317. ORDER BY tb.单均金额(万元) DESC) <= 15 THEN 15 - Row_number()
  6318. OVER (
  6319. ORDER BY tb.单均金额(万元) DESC) + 1
  6320. ELSE 0
  6321. END AS 单均金额得分,
  6322. Dense_rank()
  6323. OVER (
  6324. ORDER BY tb.库存数 ) AS 库存数排名,
  6325. CASE
  6326. WHEN Dense_rank()
  6327. OVER (
  6328. ORDER BY tb.库存数 ) <= 15 THEN 15 - Dense_rank()
  6329. OVER (
  6330. ORDER BY tb.库存数 ) + 1
  6331. ELSE 0
  6332. END AS 库存数得分,
  6333. Dense_rank()
  6334. OVER (
  6335. ORDER BY tb.投诉次数 ) AS 投诉次数排名,
  6336. CASE
  6337. WHEN Dense_rank()
  6338. OVER (
  6339. ORDER BY tb.投诉次数 ) <= 15 THEN 15 - Dense_rank()
  6340. OVER (
  6341. ORDER BY tb.投诉次数 ) + 1
  6342. ELSE 0
  6343. END AS 投诉次数得分
  6344. FROM (SELECT aa.客户,
  6345. aa.销售收入(万元),
  6346. aa.考核计算毛利(万元),
  6347. Cast(aa.销售收入(万元) / aa.订单数 AS DECIMAL(5, 2)) '单均金额(万元)',
  6348. IFNULL(Cast(aa.库存数 AS SIGNED), 0) 库存数,
  6349. IFNULL(bb.投诉次数, 0) 投诉次数
  6350. FROM (SELECT a.客户,
  6351. CONVERT(Round(a.销售收入 / 10000, 2),DECIMAL(10, 2)) AS '销售收入(万元)',
  6352. CONVERT(Round(a.考核计算毛利 / 10000, 2),DECIMAL(10, 2)) AS '考核计算毛利(万元)',
  6353. a.订单数,
  6354. a.库存数
  6355. FROM (SELECT dq.业务单位 客户,
  6356. IFNULL(dq.销售收入, 000) 销售收入,
  6357. IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
  6358. dq.订单数,
  6359. dq.库存数
  6360. FROM (SELECT zb.业务单位 业务单位,
  6361. IFNULL(Sum(zb.合并金额), 0.000) 销售收入,
  6362. IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利,
  6363. Count(DISTINCT zb.订单号) 订单数,
  6364. Sum(zb.nAmount) 库存数
  6365. FROM (SELECT CASE
  6366. WHEN IFNULL(ldz, 0) = 1 THEN '是'
  6367. ELSE '否'
  6368. END 登账,
  6369. CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
  6370. CCYDH AS 订单号,
  6371. ord.IFCYDID,
  6372. CYJMC AS 印件名称,
  6373. (CASE
  6374. WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  6375. WHEN CYWDWMC='浙江教育出版社有限公司(省店)'
  6376. OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
  6377. OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
  6378. OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
  6379. OR CYWDWMC='浙江省新华书店集团有限公司'
  6380. OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
  6381. OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  6382. WHEN CYWDWMC='浙江日报报业集团'
  6383. OR CYWDWMC='共产党员杂志社'
  6384. OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
  6385. WHEN CYWDWMC='浙江出版传媒股份有限公司'
  6386. OR CYWDWMC='浙江出版传媒有限公司'
  6387. OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  6388. WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
  6389. WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)'
  6390. OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  6391. WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
  6392. WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
  6393. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
  6394. OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
  6395. OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
  6396. OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  6397. WHEN CYWDWMC='上海人民出版社有限公司'
  6398. OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
  6399. WHEN CYWDWMC='中等职业教育杂志社有限公司'
  6400. OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  6401. WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
  6402. WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
  6403. WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
  6404. WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
  6405. WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
  6406. WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  6407. WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  6408. WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
  6409. WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
  6410. WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  6411. WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  6412. WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
  6413. OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  6414. WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
  6415. WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  6416. WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  6417. ELSE CYWDWMC
  6418. END) AS 业务单位,
  6419. cyjlx 印件类型,
  6420. NCS AS 印数,
  6421. CZWKB AS 开本,
  6422. CDF AS 订法,
  6423. NZWYZ AS 正文印张,
  6424. fn.nAmount,
  6425. CASE
  6426. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
  6427. ELSE ( IFNULL(tj.sum_namount, 0) )
  6428. END 合并金额,
  6429. CASE
  6430. WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
  6431. ELSE
  6432. CASE
  6433. WHEN IFNULL(tb_in.sum_ngjje_in, 0)
  6434. + CASE
  6435. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6436. ELSE ( CASE
  6437. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6438. ELSE ( CASE
  6439. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6440. ELSE IFNULL(tj.sum_clje, 0)
  6441. END )
  6442. END )
  6443. END = 0
  6444. AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
  6445. ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
  6446. + CASE
  6447. WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
  6448. ELSE ( CASE
  6449. WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
  6450. ELSE ( CASE
  6451. WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
  6452. ELSE IFNULL(tj.sum_clje, 0)
  6453. END )
  6454. END )
  6455. END ) - IFNULL(tb_out.sum_nhjje_out, 0)
  6456. END
  6457. END AS 考核计算毛利不含税
  6458. FROM MCYD Ord
  6459. LEFT JOIN (SELECT Sum(CASE
  6460. WHEN hz.dz = 1 THEN hz.nhjje
  6461. ELSE hz.传票预计价
  6462. END) AS sum_nhjje_in,
  6463. Sum(CASE
  6464. WHEN hz.dz = 1 THEN hz.nhjje
  6465. ELSE hz.传票预计价
  6466. END) AS sum_ngjje_in,
  6467. Sum(CASE
  6468. WHEN hz.dz = 1 THEN hz.nclje
  6469. ELSE hz.nclje
  6470. END) AS sum_nclje_in,
  6471. hz.ICYDID
  6472. FROM (SELECT yjj.传票预计价单号,
  6473. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  6474. yjj.iCYDID,
  6475. d.cjjdh 计价单号,
  6476. d.ccydh 订单号,
  6477. d.cbz 备注,
  6478. d.ngjje,
  6479. d.nclje,
  6480. IFNULL(d.iwjg, 0) iwjg,
  6481. IFNULL(d.lzfbs, 0) lzfbs,
  6482. d.nhjje,
  6483. IFNULL(d.ldz, 0) dz,
  6484. yjj.bShbz
  6485. FROM (SELECT b.csccpbh 传票预计价单号,
  6486. a.ccydh,
  6487. a.icydid,
  6488. Sum(c.fje) 传票预计价,
  6489. b.bshbz
  6490. FROM MCYD a
  6491. LEFT JOIN sccp b
  6492. ON a.icydid = b.icydid
  6493. LEFT JOIN ZbHjXm c
  6494. ON c.sccpid = b.sccpid
  6495. WHERE b.bOutProcess = '0 '
  6496. GROUP BY b.csccpbh,
  6497. a.icydid,
  6498. a.CCYDH,
  6499. b.bshbz,
  6500. b.bOutProcess) yjj
  6501. LEFT JOIN tbluey d
  6502. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  6503. WHERE hz.iwjg = 0
  6504. AND hz.bshbz = 1
  6505. AND hz.lzfbs = 0
  6506. GROUP BY hz.ICYDID) tb_in
  6507. ON ord.icydid = tb_in.iCydid
  6508. LEFT JOIN (SELECT fw.iCYDID,
  6509. sum_nhjje_out,
  6510. sum_ngjje_out,
  6511. sum_nclje_out,
  6512. bz.cbz
  6513. FROM (SELECT Cast(Sum(( CASE
  6514. WHEN hz.dz = 0 THEN hz.传票预计价
  6515. ELSE hz.nhjje
  6516. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
  6517. Cast(Sum(( CASE
  6518. WHEN hz.dz = 0 THEN hz.传票预计价
  6519. ELSE hz.nhjje
  6520. END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
  6521. Cast(Sum(CASE
  6522. WHEN hz.dz = 0 THEN hz.nclje
  6523. ELSE hz.nclje
  6524. END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out,
  6525. iCydid
  6526. FROM (SELECT yjj.传票预计价单号,
  6527. IFNULL(yjj. 传票预计价, 0) 传票预计价,
  6528. yjj.iCYDID,
  6529. d.cjjdh 计价单号,
  6530. d.ccydh 订单号,
  6531. d.cbz 备注,
  6532. d.ngjje,
  6533. d.nclje,
  6534. d.itax,
  6535. IFNULL(d.iwjg, 0) iwjg,
  6536. IFNULL(d.lzfbs, 0) lzfbs,
  6537. d.nhjje,
  6538. IFNULL(d.ldz, 0) dz,
  6539. yjj.bShbz
  6540. FROM (SELECT b.csccpbh 传票预计价单号,
  6541. a.ccydh,
  6542. a.icydid,
  6543. Sum(c.fje) 传票预计价,
  6544. b.bshbz
  6545. FROM MCYD a
  6546. LEFT JOIN sccp b
  6547. ON a.icydid = b.icydid
  6548. LEFT JOIN ZbHjXm c
  6549. ON c.sccpid = b.sccpid
  6550. WHERE b.bOutProcess = '1 '
  6551. GROUP BY b.csccpbh,
  6552. a.icydid,
  6553. a.CCYDH,
  6554. b.bshbz,
  6555. b.bOutProcess) yjj
  6556. LEFT JOIN tbluey d
  6557. ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
  6558. WHERE hz.iwjg = 1
  6559. AND hz.lzfbs = 0
  6560. GROUP BY hz.ICYDID) fw
  6561. LEFT JOIN (SELECT icydid,
  6562. (SELECT GROUP_CONCAT(cbz) FROM TBluey
  6563. WHERE icydid = a.icydid) AS cbz
  6564. FROM TBluey a
  6565. GROUP BY icydid) bz
  6566. ON bz.icydid = fw.iCYDID) tb_out
  6567. ON ord.icydid = tb_out.iCydid
  6568. LEFT JOIN (SELECT Sum(namount) AS sum_namount,
  6569. Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
  6570. iCydid,
  6571. CASE
  6572. WHEN ldz = 1 THEN 1
  6573. ELSE 0
  6574. END ldz
  6575. FROM TJob
  6576. WHERE lzfbs = 0
  6577. GROUP BY iCydid,
  6578. nclje,
  6579. itax,
  6580. ldz) tj
  6581. ON ord.ICYDID = tj.iCydid
  6582. LEFT JOIN fnSubstance fn
  6583. ON ord.CCYDH = fn.cBatchCode
  6584. WHERE ord.ICYDSTATE > 0
  6585. AND ( ord.CYJLX NOT LIKE '%课本'
  6586. OR ord.CYJLX NOT LIKE '%教辅' )/*销售收入、考核计算毛利、订单数、品种数、库存数据排除其教材教辅*/
  6587. ) zb
  6588. WHERE CONVERT(zb.承印日期,CHAR(10)) >= '{$qtoday}'
  6589. AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
  6590. GROUP BY zb.业务单位) dq)a) aa
  6591. LEFT JOIN (SELECT D2.cdwmc 客户单位,
  6592. Count(*) AS 投诉次数
  6593. FROM ecComplainFeedback B
  6594. LEFT JOIN (SELECT d1.iywdwid,
  6595. CASE
  6596. WHEN d1.cdwmc = '浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
  6597. WHEN d1.cdwmc = '中国茶叶杂志社'THEN'中国农业科学院茶叶研究所'
  6598. WHEN d1.cdwmc = '中国青年出版社' THEN '中国青年出版总社有限公司'
  6599. WHEN d1.cdwmc = '中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
  6600. WHEN d1.cdwmc = '浙江科学技术出版社有限公司(期刊总社)'
  6601. OR d1.cdwmc = '浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
  6602. WHEN d1.cdwmc = '《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
  6603. WHEN d1.cdwmc = '《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
  6604. WHEN d1.cdwmc = '上海辞书出版社' THEN '上海辞书出版社有限公司'
  6605. WHEN d1.cdwmc = '上海译文出版社' THEN '上海译文出版社有限公司'
  6606. WHEN d1.cdwmc = '安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
  6607. WHEN d1.cdwmc = '中国美术学院出版社' THEN '中国美术学院出版社有限公司'
  6608. WHEN d1.cdwmc = '人民出版社有限公司' THEN '人民出版社'
  6609. WHEN d1.cdwmc = '教育科学出版社' THEN '教育科学出版社有限公司'
  6610. WHEN d1.cdwmc = '读者杂志社' THEN '读者出版传媒股份有限公司'
  6611. WHEN d1.cdwmc = '浙江教育报刊社' THEN '浙江教育报刊总社'
  6612. WHEN d1.cdwmc = '复旦大学出版社' THEN '复旦大学出版社有限公司'
  6613. WHEN d1.cdwmc = '中等职业教育杂志社有限公司'
  6614. OR d1.cdwmc = '浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
  6615. WHEN d1.cdwmc = '上海人民出版社有限公司'
  6616. OR d1.cdwmc = '上海人民出版社' THEN '上海人民出版社有限责任公司'
  6617. WHEN d1.cdwmc = '大星(上海)文化传媒有限公司(上海文艺)'
  6618. OR d1.cdwmc = '大星(上海)文化传媒有限公司(浙江文艺)'
  6619. OR d1.cdwmc = '大星(上海)文化传媒有限公司(河南文艺)'
  6620. OR d1.cdwmc = '大星(上海)文化传媒有限公司(上海书店)'
  6621. OR d1.cdwmc = '大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
  6622. WHEN d1.cdwmc = '上海古籍出版社' THEN '上海古籍出版社有限公司'
  6623. WHEN d1.cdwmc = '中信出版集团股份有限公司(上海三辉)'
  6624. OR d1.cdwmc = '中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
  6625. WHEN d1.cdwmc = '浙江日报报业集团'
  6626. OR d1.cdwmc = '《浙江共产党员》杂志有限公司'
  6627. OR d1.cdwmc = '共产党员杂志社' THEN '浙江日报报业集团(含共产党员)'
  6628. WHEN d1.cdwmc = '浙江出版传媒股份有限公司'
  6629. OR d1.cdwmc = '浙江出版传媒有限公司'
  6630. OR d1.cdwmc = '浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
  6631. WHEN d1.cdwmc = '浙江教育出版社有限公司(省店)'
  6632. OR d1.cdwmc = '浙江省新华书店集团有限公司(教育)'
  6633. OR d1.cdwmc = '浙江省新华书店集团有限公司(少儿)'
  6634. OR d1.cdwmc = '浙江少年儿童出版社有限公司(省店)'
  6635. OR d1.cdwmc = '浙江省新华书店集团有限公司'
  6636. OR d1.cdwmc = '浙江教育出版社集团有限公司(省店)'
  6637. OR d1.cdwmc = '浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
  6638. WHEN d1.cdwmc = '浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
  6639. ELSE d1.cdwmc
  6640. END AS cdwmc
  6641. FROM DZYWDW d1)D2
  6642. ON D2.iywdwid = B.iClientID
  6643. LEFT JOIN MCYD M
  6644. ON M.CCYDH = B.cOrderBillCode
  6645. INNER JOIN qlOrderProduct p
  6646. ON M.ICYDID = p.ID_Mcyd
  6647. LEFT JOIN (SELECT a.ID_qlOrderProduct,
  6648. Sum(a.iAmountOut) iAmount_Out
  6649. FROM SCYDYSQX a
  6650. GROUP BY a.ID_qlOrderProduct) c
  6651. ON c.ID_qlOrderProduct = p.ID
  6652. LEFT JOIN ecComplainContent DD
  6653. ON DD.iComplainFBID = B.iID
  6654. LEFT JOIN tbConfig E
  6655. ON E.iNoConfig = DD.iClassID_C
  6656. LEFT JOIN tbConfig T
  6657. ON T.iNoConfig = DD.iClassID_P
  6658. LEFT JOIN (SELECT R.iComplainFBID,
  6659. CR1.cRespDept
  6660. FROM ecComplainReasonAnalysis R
  6661. LEFT JOIN ecComplainResponsibility CR1
  6662. ON CR1.iComplainRAID = R.iID) CR
  6663. ON B.iID = CR.iComplainFBID
  6664. WHERE 1 = 1
  6665. AND ( M.CYJLX NOT LIKE '%课本'
  6666. OR M.CYJLX NOT LIKE '%教辅' ) /*质量问题数据排除教材教辅*/
  6667. AND b.dFeedbackDate >= '{$qtoday}'
  6668. AND b.dFeedbackDate <= '{$today}'
  6669. GROUP BY D2.cdwmc)bb
  6670. ON aa.客户 = bb.客户单位
  6671. /*WHERE aa.[销售收入(万元)] > 200*/
  6672. WHERE aa.客户 NOT IN ( '浙江出版传媒股份有限公司(含省出版公司)', '人民教育出版社有限公司', '教育科学出版社有限公司' ))tb)hz
  6673. ORDER BY 总分 DESC";
  6674. $res=Db::query($sql);
  6675. if($res){
  6676. $redis->set($redis_key, json_encode($res));
  6677. echo date("Y-m-d H:i:s").' 存进去了';
  6678. return $res;
  6679. }
  6680. }
  6681. //图书板块大客户分析列表->接口
  6682. public function customer_analysis(){
  6683. $redis = redis();
  6684. $result = json_decode($redis->get(md5('customer_analysis_redis')), true);
  6685. // echo "<pre>";
  6686. // print_r($result);
  6687. // echo "<pre>";
  6688. $new_result = [];
  6689. $new_result['columns'] = [
  6690. // ['name' => '排名', 'id' => 'rank', 'width' => '16', 'color' => 'blue', 'autoWrap' => "true", 'textAlign' => 'left'],
  6691. ['name' => ' ', 'id' => 'kong', 'width' => '10', 'color' => 'blue', 'autoWrap' => "true", 'textAlign' => 'left'],
  6692. ['name' => '客户名称', 'id' => 'kh', 'width' => '70', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  6693. ];
  6694. foreach ($result as $key => $value) {
  6695. if ($key >= 20) {
  6696. break;
  6697. }
  6698. $new_result['rows'][$key]['kong'] = ' ';
  6699. $new_result['rows'][$key]['kh'] = $value['客户'];
  6700. // $new_result['rows'][$key]['rank'] = $key + 1;
  6701. }
  6702. $res['status'] = 0;
  6703. $res['msg'] = '';
  6704. $res['data'] = $new_result;
  6705. return json($res);
  6706. }
  6707. //应收账款情况汇总->缓存【按客户】
  6708. public function Summary_redis(){
  6709. $redis = redis();
  6710. $redis_key = md5('Summary_redis');
  6711. $sql = "SELECT '汇总' AS 业务单位,
  6712. Sum(hz.销货未收款) AS 销货未收款,
  6713. Avg(hz.账期) AS 账期,
  6714. Sum(hz.超期订单数量) AS 超期订单数量,
  6715. Sum(hz.超期订单金额) AS 超期订单金额
  6716. FROM (SELECT YSZK.业务员,
  6717. YSZK.业务单位,
  6718. YSZK.销货未收款,
  6719. D.iPaytime 账期,
  6720. YSZK.超期订单数量,
  6721. IFnull(YSZK.超期订单金额, 0) 超期订单金额
  6722. FROM (SELECT a.cywdwmc 业务单位,
  6723. a.cywdwbh,
  6724. a.cywy 业务员,
  6725. Sum(a.nxhys) AS 销货未收款,
  6726. (SELECT Count(ccydh)
  6727. FROM tmaintz
  6728. WHERE isign = 1
  6729. AND cywdwmc = a.cywdwmc
  6730. AND ixhconfirm = 1
  6731. AND ljqbz = 0
  6732. AND crectype = '订单应收') AS 销货订单数,
  6733. (SELECT Count(*)
  6734. FROM Mcyd e
  6735. JOIN tMainTz f
  6736. ON e.ccydh = f.ccydh
  6737. AND f.isign = 1
  6738. AND ( e.icydstate <> -1
  6739. OR e.icydstate IS NULL )
  6740. AND e.ljqbs = 0
  6741. AND e.iZLConfirm = 1
  6742. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6743. AND f.cywdwmc = a.cywdwmc
  6744. AND cywy = a.cywy) AS 超期订单数量,
  6745. (SELECT Sum(c.nxhys)
  6746. FROM tMainTz c
  6747. JOIN mcyd e
  6748. ON c.ccydh = e.ccydh
  6749. AND c.isign = 1
  6750. AND ( e.icydstate <> -1
  6751. OR e.icydstate IS NULL )
  6752. AND e.ljqbs = 0
  6753. AND e.iZLConfirm = 1
  6754. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6755. AND c.cywdwmc = a.cywdwmc
  6756. AND cywy = a.cywy) AS 超期订单金额
  6757. FROM tmaintz A
  6758. LEFT JOIN Dzywdw b
  6759. ON a.cYwdwbh = b.cywdwbh
  6760. WHERE a.isign = 1
  6761. AND ljqbz = 0
  6762. AND ccydh NOT IN (SELECT ccydh
  6763. FROM mcyd
  6764. WHERE icydstate = -1)
  6765. AND a.cRECtype = '订单应收'
  6766. AND LOCATE('提', a.ccydh) = 0
  6767. GROUP BY a.cywdwmc,
  6768. a.cywdwbh,
  6769. a.cywy)YSZK
  6770. LEFT JOIN Dzywdw d
  6771. ON YSZK.cywdwbh = d.cywdwbh
  6772. WHERE YSZK.销货未收款 > 0)hz
  6773. UNION ALL
  6774. SELECT *
  6775. FROM (SELECT
  6776. YSZK.业务单位,
  6777. YSZK.销货未收款,
  6778. D.iPaytime 账期,
  6779. YSZK.超期订单数量,
  6780. IFnull(YSZK.超期订单金额, 0) 超期订单金额
  6781. FROM (SELECT a.cywdwmc 业务单位,
  6782. a.cywdwbh,
  6783. Sum(a.nxhys) AS 销货未收款,
  6784. (SELECT Count(ccydh)
  6785. FROM tmaintz
  6786. WHERE isign = 1
  6787. AND cywdwmc = a.cywdwmc
  6788. AND ixhconfirm = 1
  6789. AND ljqbz = 0
  6790. AND crectype = '订单应收') AS 销货订单数,
  6791. (SELECT Count(*)
  6792. FROM Mcyd e
  6793. JOIN tMainTz f
  6794. ON e.ccydh = f.ccydh
  6795. AND f.isign = 1
  6796. AND ( e.icydstate <> -1
  6797. OR e.icydstate IS NULL )
  6798. AND e.ljqbs = 0
  6799. AND e.iZLConfirm = 1
  6800. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6801. AND f.cywdwmc = a.cywdwmc
  6802. ) AS 超期订单数量,
  6803. (SELECT Sum(c.nxhys)
  6804. FROM tMainTz c
  6805. JOIN mcyd e
  6806. ON c.ccydh = e.ccydh
  6807. AND c.isign = 1
  6808. AND ( e.icydstate <> -1
  6809. OR e.icydstate IS NULL )
  6810. AND e.ljqbs = 0
  6811. AND e.iZLConfirm = 1
  6812. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6813. AND c.cywdwmc = a.cywdwmc
  6814. ) AS 超期订单金额
  6815. FROM tmaintz A
  6816. LEFT JOIN Dzywdw b
  6817. ON a.cYwdwbh = b.cywdwbh
  6818. WHERE a.isign = 1
  6819. AND ljqbz = 0
  6820. AND ccydh NOT IN (SELECT ccydh
  6821. FROM mcyd
  6822. WHERE icydstate = -1)
  6823. AND a.cRECtype = '订单应收'
  6824. AND LOCATE('提', a.ccydh) = 0
  6825. GROUP BY a.cywdwmc,
  6826. a.cywdwbh )YSZK
  6827. LEFT JOIN Dzywdw d
  6828. ON YSZK.cywdwbh = d.cywdwbh
  6829. WHERE YSZK.销货未收款 > 0
  6830. )MX
  6831. ORDER BY 超期订单金额 DESC ";
  6832. $res=Db::query($sql);
  6833. if($res){
  6834. $redis->set($redis_key, json_encode($res));
  6835. echo date("Y-m-d H:i:s").' 存进去了';
  6836. return $res;
  6837. }
  6838. }
  6839. //应收账款情况汇总->缓存【按业务员】
  6840. public function Summary_ywy_redis(){
  6841. $redis = redis();
  6842. $redis_key = md5('Summary_ywy_redis');
  6843. $sql = "SELECT tb.业务员,
  6844. Sum(tb.销货未收款) AS 销货未收款,
  6845. Avg(tb.账期) AS 账期,
  6846. Sum(tb.超期订单数量) AS 超期订单数量,
  6847. Sum(tb.超期订单金额) AS 超期订单金额
  6848. FROM (SELECT '汇总' AS 业务员,
  6849. '' AS 业务单位,
  6850. Sum(hz.销货未收款) AS 销货未收款,
  6851. Avg(hz.账期) AS 账期,
  6852. Sum(hz.超期订单数量) AS 超期订单数量,
  6853. Sum(hz.超期订单金额) AS 超期订单金额
  6854. FROM (SELECT YSZK.业务员,
  6855. YSZK.业务单位,
  6856. YSZK.销货未收款,
  6857. D.iPaytime 账期,
  6858. YSZK.超期订单数量,
  6859. IFnull(YSZK.超期订单金额, 0) 超期订单金额
  6860. FROM (SELECT a.cywdwmc 业务单位,
  6861. a.cywdwbh,
  6862. a.cywy 业务员,
  6863. Sum(a.nxhys) AS 销货未收款,
  6864. (SELECT Count(ccydh)
  6865. FROM tmaintz
  6866. WHERE isign = 1
  6867. AND cywdwmc = a.cywdwmc
  6868. AND ixhconfirm = 1
  6869. AND ljqbz = 0
  6870. AND crectype = '订单应收') AS 销货订单数,
  6871. (SELECT Count(*)
  6872. FROM Mcyd e
  6873. JOIN tMainTz f
  6874. ON e.ccydh = f.ccydh
  6875. AND f.isign = 1
  6876. AND ( e.icydstate <> -1
  6877. OR e.icydstate IS NULL )
  6878. AND e.ljqbs = 0
  6879. AND e.iZLConfirm = 1
  6880. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6881. AND f.cywdwmc = a.cywdwmc
  6882. AND cywy = a.cywy) AS 超期订单数量,
  6883. (SELECT Sum(c.nxhys)
  6884. FROM tMainTz c
  6885. JOIN mcyd e
  6886. ON c.ccydh = e.ccydh
  6887. AND c.isign = 1
  6888. AND ( e.icydstate <> -1
  6889. OR e.icydstate IS NULL )
  6890. AND e.ljqbs = 0
  6891. AND e.iZLConfirm = 1
  6892. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6893. AND c.cywdwmc = a.cywdwmc
  6894. AND cywy = a.cywy) AS 超期订单金额
  6895. FROM tmaintz A
  6896. LEFT JOIN Dzywdw b
  6897. ON a.cYwdwbh = b.cywdwbh
  6898. WHERE a.isign = 1
  6899. AND ljqbz = 0
  6900. AND ccydh NOT IN (SELECT ccydh
  6901. FROM mcyd
  6902. WHERE icydstate = -1)
  6903. AND a.cRECtype = '订单应收'
  6904. AND LOCATE('提', a.ccydh) = 0
  6905. GROUP BY a.cywdwmc,
  6906. a.cywdwbh,
  6907. a.cywy)YSZK
  6908. LEFT JOIN Dzywdw d
  6909. ON YSZK.cywdwbh = d.cywdwbh
  6910. WHERE YSZK.销货未收款 > 0)hz
  6911. UNION ALL
  6912. SELECT *
  6913. FROM (SELECT YSZK.业务员,
  6914. YSZK.业务单位,
  6915. YSZK.销货未收款,
  6916. D.iPaytime 账期,
  6917. YSZK.超期订单数量,
  6918. IFnull(YSZK.超期订单金额, 0) 超期订单金额
  6919. FROM (SELECT a.cywdwmc 业务单位,
  6920. a.cywdwbh,
  6921. a.cywy 业务员,
  6922. Sum(a.nxhys) AS 销货未收款,
  6923. (SELECT Count(ccydh)
  6924. FROM tmaintz
  6925. WHERE isign = 1
  6926. AND cywdwmc = a.cywdwmc
  6927. AND ixhconfirm = 1
  6928. AND ljqbz = 0
  6929. AND crectype = '订单应收') AS 销货订单数,
  6930. (SELECT Count(*)
  6931. FROM Mcyd e
  6932. JOIN tMainTz f
  6933. ON e.ccydh = f.ccydh
  6934. AND f.isign = 1
  6935. AND ( e.icydstate <> -1
  6936. OR e.icydstate IS NULL )
  6937. AND e.ljqbs = 0
  6938. AND e.iZLConfirm = 1
  6939. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6940. AND f.cywdwmc = a.cywdwmc
  6941. AND cywy = a.cywy) AS 超期订单数量,
  6942. (SELECT Sum(c.nxhys)
  6943. FROM tMainTz c
  6944. JOIN mcyd e
  6945. ON c.ccydh = e.ccydh
  6946. AND c.isign = 1
  6947. AND ( e.icydstate <> -1
  6948. OR e.icydstate IS NULL )
  6949. AND e.ljqbs = 0
  6950. AND e.iZLConfirm = 1
  6951. WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
  6952. AND c.cywdwmc = a.cywdwmc
  6953. AND cywy = a.cywy) AS 超期订单金额
  6954. FROM tmaintz A
  6955. LEFT JOIN Dzywdw b
  6956. ON a.cYwdwbh = b.cywdwbh
  6957. WHERE a.isign = 1
  6958. AND ljqbz = 0
  6959. AND ccydh NOT IN (SELECT ccydh
  6960. FROM mcyd
  6961. WHERE icydstate = -1)
  6962. AND a.cRECtype = '订单应收'
  6963. AND LOCATE('提', a.ccydh) = 0
  6964. GROUP BY a.cywdwmc,
  6965. a.cywdwbh,
  6966. a.cywy)YSZK
  6967. LEFT JOIN Dzywdw d
  6968. ON YSZK.cywdwbh = d.cywdwbh
  6969. WHERE YSZK.销货未收款 > 0)MX) tb
  6970. GROUP BY TB.业务员
  6971. ORDER BY 超期订单金额 DESC
  6972. ";
  6973. $res=Db::query($sql);
  6974. if($res){
  6975. $redis->set($redis_key, json_encode($res));
  6976. echo date("Y-m-d H:i:s").' 存进去了';
  6977. return $res;
  6978. }
  6979. }
  6980. // 应收账款情况汇总->接口
  6981. public function Summary(){
  6982. $data = input('post.');
  6983. if(isset($data['dependence'])){
  6984. $dependence=$data['dependence'];
  6985. }else{
  6986. $dependence['item']['value']= '客户';
  6987. }
  6988. $redis = redis();
  6989. $new_result = [];
  6990. if($dependence['item']['value'] == '业务员'){
  6991. $result_ywy = json_decode($redis->get(md5('Summary_ywy_redis')),true);
  6992. $result_ywy[0]['业务员'] = '合计';
  6993. $result_ywy[0]['账期'] = '';
  6994. $new_result['columns'] = [
  6995. ['name' => '业务员', 'id' => 'ywdw', 'width' => '40', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  6996. ['name' => '销货未收款(万元)', 'id' => 'xhwsk', 'width' => '18', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  6997. ['name' => '账期(天)', 'id' => 'zq', 'width' => '10', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  6998. ['name' => '超期订单数量', 'id' => 'cqddsl', 'width' => '12', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  6999. ['name' => '超期订单金额(万元)', 'id' => 'cqddje', 'width' => '15', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7000. ];
  7001. foreach ($result_ywy as $key => $value) {
  7002. if ($value['销货未收款'] != 0) {
  7003. $new_result['rows'][$key]['ywdw'] = $value['业务员'];
  7004. $new_result['rows'][$key]['xhwsk'] = number_format($value['销货未收款'] /10000,2);
  7005. $new_result['rows'][$key]['zq'] = round($value['账期']);
  7006. $new_result['rows'][$key]['cqddsl'] = $value['超期订单数量'];
  7007. $new_result['rows'][$key]['cqddje'] = number_format($value['超期订单金额'] /10000,2);
  7008. }
  7009. }
  7010. $res['status'] = 0;
  7011. $res['msg'] = '';
  7012. $res['data'] = $new_result;
  7013. return json($res);
  7014. }else{
  7015. $result = json_decode($redis->get(md5('Summary_redis')),true);
  7016. $result[0]['业务单位'] = '合计';
  7017. $result[0]['账期'] = '';
  7018. $new_result['columns'] = [
  7019. ['name' => '业务单位', 'id' => 'ywdw', 'width' => '30', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7020. ['name' => '销货未收款(万元)', 'id' => 'xhwsk', 'width' => '18', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7021. ['name' => '账期(天)', 'id' => 'zq', 'width' => '10', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7022. ['name' => '超期订单数量', 'id' => 'cqddsl', 'width' => '12', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7023. ['name' => '超期订单金额(万元)', 'id' => 'cqddje', 'width' => '15', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
  7024. ];
  7025. foreach ($result as $key => $value) {
  7026. if ($value['销货未收款'] != 0) {
  7027. $new_result['rows'][$key]['ywdw'] = $value['业务单位'];
  7028. $new_result['rows'][$key]['xhwsk'] = number_format($value['销货未收款'] /10000,2);
  7029. $new_result['rows'][$key]['zq'] = round($value['账期']);
  7030. $new_result['rows'][$key]['cqddsl'] = $value['超期订单数量'];
  7031. $new_result['rows'][$key]['cqddje'] = number_format($value['超期订单金额'] /10000,2);
  7032. }
  7033. }
  7034. $res['status'] = 0;
  7035. $res['msg'] = '';
  7036. $res['data'] = $new_result;
  7037. return json($res);
  7038. }
  7039. }
  7040. }