缓存 public function year_ywcl_redis(){ //存缓存Redis $redis = redis(); $name='业务承揽收入(万元)'; $target=Db::name('target')->where('name',$name)->value('year_target'); $list[0]['name'] = ' '; $list[0]['value'] = $target; $list[1]['name'] = ' '; $list[1]['value'] = round(json_decode($redis->get(md5('getxssrs_redis')),true)['data']['series'][0]['data'][2]); $res['status'] = 0; $res['msg'] = ''; $res['data'] = $list; $year_ywcls = md5('year_ywcls'); $redis->set($year_ywcls, json_encode($res)); $res=[]; $res['status'] = 0; $res['msg'] = ''; $res['data'] = round(json_decode($redis->get(md5('getxssrs_redis')),true)['data']['series'][0]['data'][2]/$target*100); $year_ywcls_wcl = md5('year_ywcls_wcl'); $redis->set($year_ywcls_wcl, json_encode($res)); $result2=json_decode($redis->get(md5('month_jgml_redis')),true); $zxsml=0; foreach($result2 as $v){ if($v['承印时间']>=date('Y').'-01'){ $zxsml+=$v['总销售毛利']; } } $name='毛利收入(万元)'; $target=Db::name('target')->where('name',$name)->value('year_target'); $list=[]; $res=[]; $list[0]['name'] = ' '; $list[0]['value'] = $target; $list[1]['name'] = ' '; $list[1]['value'] = round($zxsml); $res['status'] = 0; $res['msg'] = ''; $res['data'] = $list; $year_ywclml = md5('year_ywclmls'); $redis->set($year_ywclml, json_encode($res)); $res=[]; $res['status'] = 0; $res['msg'] = ''; $res['data'] = round($zxsml/$target*100); $year_ywclml_wcl = md5('year_ywclml_wcls'); $redis->set($year_ywclml_wcl, json_encode($res)); $name='产量情况(万色令)'; $yu=Db::name('target')->where('name',$name)->value('year_target'); $result1 = Db::query("SELECT round( M.总色令/$yu*100,0) 色令百分比,round( m.总色令) 色令,$yu 常量, year(M.rq) 年度 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 FROM `mcyd` `ord` LEFT JOIN (( SELECT icydid,sum(nyssl) as nyssl,sum(nysls) as nysls FROM `scyddx` `objmatier` GROUP BY `icydid` )) as objmatier ON `ord`.`icydid`=`objmatier`.`icydid` WHERE `ord`.`icydstate` > 0 and chy != '集团教材外' GROUP BY `rq` ) t5 WHERE ( t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}' ) GROUP BY year(t5.rq) ) M"); // and chy != '集团教材外' $list=[]; $res=[]; $list[0]['name'] = ' '; $list[0]['value'] = $yu; $list[1]['name'] = ' '; $list[1]['value'] = round($result1[0]['色令']); $res['status'] = 0; $res['msg'] = ''; $res['data'] = $list; $year_ywclsl = md5('year_ywclsl'); $redis->set($year_ywclsl, json_encode($res)); $res=[]; $res['status'] = 0; $res['msg'] = ''; $res['data'] = round($result1[0]['色令百分比']); $year_ywclsl_wcl = md5('year_ywclsl_wcl'); $redis->set($year_ywclsl_wcl, json_encode($res)); return json($res); } //销售收入->接口 // public function year_ywcls(){ // //取合同价格 // $redis = redis(); // return $redis->get(md5('year_ywcls')); // } //销售收入-完成率百分比->接口 // public function year_ywcls_wcl(){ // //取合同价格/目标收入 // $redis = redis(); // return $redis->get(md5('year_ywcls_wcl')); // } public function year_ywcls() { // 取合同价格 $redis = redis(); $list = $redis->get(md5('ndxs_redis')); // 检查 $list 是否为空,且是否是一个有效的 JSON 字符串 if ($list) { // 解码 JSON 字符串为 PHP 数组 $list = json_decode($list, true); // 判断解码是否成功 if (is_array($list)) { // 取出第一个和第二个元素 $secondItem = isset($list['data'][0]) ? $list['data'][0] : null; $firstItem = isset($list['data'][1]) ? $list['data'][1] : null; // 构造返回数据 $response = [ "status" => 0, "msg" => "", "data" => [] ]; // 如果第一个元素存在,加入返回数据 if ($firstItem) { $response['data'][] = $firstItem; } // 如果第二个元素存在,加入返回数据 if ($secondItem) { $response['data'][] = $secondItem; } // 返回最终结果 return json_encode($response); } else { // 如果解码失败,返回错误信息 return json_encode([ "status" => 1, "msg" => "数据格式错误", "data" => [] ]); } } else { // 如果 Redis 中没有数据 return json_encode([ "status" => 1, "msg" => "未获取到数据", "data" => [] ]); } } public function year_ywcls_wcl() { // 获取 Redis 实例 $redis = redis(); // 获取 Redis 缓存数据 $list = $redis->get(md5('ndxs_redis')); // 解析 JSON 数据 $data = json_decode($list, true); // 判断数据是否正确解析 if (!isset($data['data']) || !is_array($data['data']) || empty($data['data'])) { return json_encode([ 'status' => 1, 'msg' => '数据格式错误或数据为空', 'data' => null ]); } // 获取最后一个元素 $lastItem = end($data['data']); // 确保 $lastItem 是一个数组并且有 'value' 键 if (!is_array($lastItem) || !isset($lastItem['value'])) { return json_encode([ 'status' => 1, 'msg' => '数据格式错误', 'data' => null ]); } // 返回结果,data 直接返回最后的 value return json_encode([ 'status' => 0, 'msg' => '', 'data' => $lastItem['value'] ]); } //毛利收入->接口 public function year_ywclml(){ //取生产毛利不含税 $redis = redis(); return $redis->get(md5('year_ywclmls')); } //毛利收入-完成率百分比->接口 public function year_ywclml_wcl(){ //取生产毛利不含税/目标收入 $redis = redis(); return $redis->get(md5('year_ywclml_wcls')); } //承接产量(万色令)->接口 public function year_ywclsl(){ //取色令 $redis = redis(); return $redis->get(md5('year_ywclsl')); } //承接产量(万色令)完成率百分比->接口 public function year_ywclsl_wcl(){ //取色令/目标收入 $redis = redis(); return $redis->get(md5('year_ywclsl_wcl')); } /** * 承印产量情况、业务承揽收入情况、加工收入情况、加工考核毛利收入情况 */ //承印产量情况(万色令)缓存 本级不包含集团教材外 public function month_cjcl_redis(){ //链接定义 Redis $redis = redis(); $redis_key = md5('month_cjcl_redis'); $sql = "SELECT DATE_FORMAT( dcyrq, '%Y-%m' ) as rq,sum(objmatier.nyssl)/10000 as sl,sum(objmatier.nysls) as zl FROM `mcyd` `ord` LEFT JOIN (( SELECT icydid,sum(nyssl) as nyssl,sum(nysls) as nysls FROM `scyddx` `objmatier` GROUP BY `icydid` )) as objmatier ON `ord`.`icydid`=`objmatier`.`icydid` WHERE `ord`.`icydstate` > 0 and chy != '集团教材外' AND ( dcyrq >= '{$this->qstart_time()}'AND dcyrq <= '{$this->end_time()}' ) GROUP BY `rq` ORDER BY `rq` ASC"; $res=Db::query($sql); if($res){ //将查询结果存入 Redis 缓存中 $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } } //承印产量情况(万色令)缓存 全部包含集团教材外 public function month_cjcls_redis(){ //链接定义 Redis $redis = redis(); $redis_key = md5('month_cjcls_redis'); $sql = "SELECT DATE_FORMAT( dcyrq, '%Y-%m' ) as rq,sum(objmatier.nyssl)/10000 as sl,sum(objmatier.nysls) as zl FROM `mcyd` `ord` LEFT JOIN (( SELECT icydid,sum(nyssl) as nyssl,sum(nysls) as nysls FROM `scyddx` `objmatier` GROUP BY `icydid` )) as objmatier ON `ord`.`icydid`=`objmatier`.`icydid` WHERE `ord`.`icydstate` > 0 AND ( dcyrq >= '{$this->qstart_time()}'AND dcyrq <= '{$this->end_time()}' ) GROUP BY `rq` ORDER BY `rq` ASC"; $res=Db::query($sql); if($res){ //将查询结果存入 Redis 缓存中 $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } } //承印产量情况(万色令)->接口 public function month_cjcl(){ $data = input('post.'); if (isset($data['dependence'])) { $dependence = $data['dependence']; } else { $dependence['item']['value'] = '全部'; } // 获取 Redis 数据 $redis = redis(); if ($dependence['item']['value'] == '全部') { $result = json_decode($redis->get(md5('month_cjcls_redis')), true); } else { $result = json_decode($redis->get(md5('month_cjcl_redis')), true); } $name = 'sl'; // 对应字段名 $currentYear = date('Y'); // 当前年份 $previousYear = $currentYear - 1; // 前一年 // 初始化数据 $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']; $list['series'] = [ [ 'name' => '同比增减百分比', 'type' => 'line', 'yAxisIndex' => 1, 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0 ], [ 'name' => $previousYear . '年', 'type' => 'bar', 'yAxisIndex' => 0, 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0 ], [ 'name' => $currentYear . '年', 'type' => 'bar', 'yAxisIndex' => 0, 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0 ] ]; // 判断 Redis 数据是否为空 if (!empty($result)) { foreach ($result as $k => $v) { if (isset($v['rq']) && $v['rq'] >= $currentYear . '-01') { // 获取对应月份的目标值(假设目标值存储在数据库中) $target = Db::name('targetmonth') ->where('name', '承印产量情况') ->where('month', substr($v['rq'], -2, 2)) ->value('month_target'); // 计算同比增减百分比 $monthIndex = (int)substr($v['rq'], -2, 2) - 1; // 月份索引 $list['series'][0]['data'][$monthIndex] = isset($result[$k - 12]) && $result[$k - 12][$name] != 0 ? round(($v[$name] - $result[$k - 12][$name]) / $result[$k - 12][$name] * 100, 2) : 0; // 当前年份数据 $list['series'][2]['data'][$monthIndex] = round($v[$name]); } else { // 前一年数据 if (isset($v['rq'])) { $monthIndex = (int)substr($v['rq'], -2, 2) - 1; // 月份索引 $list['series'][1]['data'][$monthIndex] = round($v[$name]); } } } } // 设置返回数据 $res['status'] = 0; $res['msg'] = ''; $res['data'] = $list; return json($res); } // public function month_cjcl(){ // $data = input('post.'); // if(isset($data['dependence'])){ // $dependence=$data['dependence']; // }else{ // $dependence['item']['value']= '全部'; // } // if($dependence['item']['value'] == '全部'){ // $redis = redis(); // $result = json_decode($redis->get(md5('month_cjcls_redis')),true); // }else{ // $redis = redis(); // $result = json_decode($redis->get(md5('month_cjcl_redis')),true); // } //// $name='色令(万)'; // $name='sl'; // //按每月设置的指标显示 // $list['categories']=[]; // $list['series'][0]=[]; // foreach($result as $k=>$v){ // if($v['rq']>=date('Y').'-01'){ // $target=Db::name('targetmonth')->where('name','承印产量情况')->where('month',substr($v['rq'],-2,2))->value('month_target'); // // $list['series'][0]['name']=date('Y').'指标达成率'; // $list['series'][0]['name']='同比增减百分比'; // $list['series'][0]['type']='line'; // $list['series'][0]['yAxisIndex']=1; // $list['series'][0]['data'][]=round(($v[$name]-$result[$k-12][$name])/$result[$k-12][$name]*100); // $list['series'][2]['name']=date('Y').'年'; // $list['series'][2]['type']='bar'; // $list['series'][2]['yAxisIndex']=0; // $list['series'][2]['data'][]=round($v[$name]); // }else{ // $list['categories'][]=substr($v['rq'],-2,2); // $list['series'][1]['name']=(date('Y')-1).'年'; // $list['series'][1]['type']='bar'; // $list['series'][1]['yAxisIndex']=0; // $list['series'][1]['data'][]=round($v[$name]); // } // } // // $res['status'] = 0; // $res['msg'] = ''; // $res['data'] = $list; // return json($res); // } //业务承揽收入情况(万元)->缓存 本级不包含集团教材外 public function month_ywcl_redis(){ $redis=redis(); $redis_key = md5('month_ywcl_redis'); $field = [ 'ldz', 'mcyd.icydid', 'year(mcyd.dcyrq) as 年', "DATE_FORMAT( mcyd.dcyrq, '%Y-%m') as 日期", 'sum(mcyd.nwshjje) nwshjje', 'sum(mcyd.nwsgjhj) nwsgjhj', 'sum(tjob.namount) namount', 'sum(tjob.namount) - sum(tjob.nclje * 100 / (100 + tjob.itax)) as sum_clje', 'tjob.itax', ]; //当年 $erp2023 = Db::table('mcyd')->field($field) ->join('tjob','mcyd.icydid = tjob.icydid','LEFT') ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->end_time()]) ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq') ->where('mcyd.icydstate','>',0) ->select(); foreach($erp2023 as $v){ $list[$v['日期']]=0; } // 遍历查询结果,进行统计 foreach ($erp2023 as $v){ if($v['ldz'] == 1 ){ $list[$v['日期']]+=$v['namount']; }else{ $list[$v['日期']]+=$v['nwshjje']; } } foreach($list as $k=>$v){ $res[]=['年月'=>$k,'合同价格(万元)'=>round($v/10000)]; } array_multisort($res,SORT_ASC); if($res){ //将查询结果存入 Redis 缓存中 $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } } //业务承揽收入情况缓存(万元)->缓存 全部包含集团教材外 public function month_ywcls_redis(){ $redis=redis(); $redis_key = md5('month_ywcls_redis'); $field = [ 'ldz', 'mcyd.icydid', 'year(mcyd.dcyrq) as 年', "DATE_FORMAT( mcyd.dcyrq, '%Y-%m') as 日期", 'sum(mcyd.nwshjje) nwshjje', 'sum(mcyd.nwsgjhj) nwsgjhj', 'sum(tjob.namount) namount', 'sum(tjob.namount) - sum(tjob.nclje * 100 / (100 + tjob.itax)) as sum_clje', 'tjob.itax', ]; //当年 $erp2023 = Db::table('mcyd')->field($field) ->join('tjob','mcyd.icydid = tjob.icydid','LEFT') ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->end_time()]) ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq') ->where('mcyd.icydstate','>',0) ->where('mcyd.chy','<>','集团教材外') ->select(); foreach($erp2023 as $v){ $list[$v['日期']]=0; } // 遍历查询结果,进行统计 foreach ($erp2023 as $v){ if($v['ldz'] == 1 ){ $list[$v['日期']]+=$v['namount']; }else{ $list[$v['日期']]+=$v['nwshjje']; } } foreach($list as $k=>$v){ $res[]=['年月'=>$k,'合同价格(万元)'=>round($v/10000)]; } array_multisort($res,SORT_ASC); if($res){ //将查询结果存入 Redis 缓存中 $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } } //业务承揽收入情况(万元)->接口 public function month_ywcl(){ $data = input('post.'); if(isset($data['dependence'])){ $dependence = $data['dependence']; }else{ $dependence['item']['value'] = '全部'; } // 获取 Redis 数据 $redis = redis(); if($dependence['item']['value'] == '全部'){ $result = json_decode($redis->get(md5('month_ywcls_redis')), true); }else{ $result = json_decode($redis->get(md5('month_ywcl_redis')), true); } $name = '合同价格(万元)'; // 数据字段名 $currentYear = date('Y'); // 当前年份 $previousYear = $currentYear - 1; // 前一年 // 初始化数据 $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']; $list['series'] = [ [ 'name' => '同比增减百分比', 'type' => 'line', 'yAxisIndex' => 1, 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0 ], [ 'name' => $previousYear . '年', 'type' => 'bar', 'yAxisIndex' => 0, 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0 ], [ 'name' => $currentYear . '年', 'type' => 'bar', 'yAxisIndex' => 0, 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0 ] ]; // 判断 Redis 数据是否为空 if (!empty($result)) { foreach ($result as $k => $v) { if (isset($v['年月']) && $v['年月'] >= $currentYear . '-01') { // 获取对应月份的目标值(假设目标值存储在数据库中) $target = Db::name('targetmonth') ->where('name', '业务承揽收入情况') ->where('month', substr($v['年月'], -2, 2)) ->value('month_target'); // 计算同比增减百分比 $monthIndex = (int)substr($v['年月'], -2, 2) - 1; // 月份索引 $list['series'][0]['data'][$monthIndex] = isset($result[$k - 12]) && $result[$k - 12][$name] != 0 ? round(($v[$name] - $result[$k - 12][$name]) / $result[$k - 12][$name] * 100, 2) : 0; // 当前年份数据 $list['series'][2]['data'][$monthIndex] = round($v[$name]); } else { // 前一年数据 if (isset($v['年月'])) { $monthIndex = (int)substr($v['年月'], -2, 2) - 1; // 月份索引 $list['series'][1]['data'][$monthIndex] = round($v[$name]); } } } } // 设置返回数据 $res['status'] = 0; $res['msg'] = ''; $res['data'] = $list; return json($res); } // public function month_ywcl(){ // $data = input('post.'); // if(isset($data['dependence'])){ // $dependence=$data['dependence']; // }else{ // $dependence['item']['value']= '全部'; // } // $redis = redis(); // if($dependence['item']['value'] == '全部'){ // $result = json_decode($redis->get(md5('month_ywcls_redis')),true); // }else{ // $result = json_decode($redis->get(md5('month_ywcl_redis')),true); // } // $name='合同价格(万元)'; //// $redis = redis(); //// $result = json_decode($redis->get(md5('month_ywcl_redis')),true); // $list['categories']=[]; // $list['series'][0]=[]; // foreach($result as $k=>$v){ // if($v['年月']>=date('Y').'-01'){ // $target=Db::name('targetmonth')->where('name','业务承揽收入情况')->where('month',substr($v['年月'],-2,2))->value('month_target'); // // $list['series'][0]['name']=date('Y').'指标达成率'; // $list['series'][0]['name']='同比增减百分比'; // $list['series'][0]['type']='line'; // $list['series'][0]['yAxisIndex']=1; // // $list['series'][0]['data'][]=round($v[$name]/$target*100); // $list['series'][0]['data'][]=round(($v[$name]-$result[$k-12][$name])/$result[$k-12][$name]*100); // $list['series'][2]['name']=date('Y').'年'; // $list['series'][2]['type']='bar'; // $list['series'][2]['yAxisIndex']=0; // $list['series'][2]['data'][]=round($v[$name]); // }else{ // $list['categories'][]=substr($v['年月'],-2,2); // $list['series'][1]['name']=(date('Y')-1).'年'; // $list['series'][1]['type']='bar'; // $list['series'][1]['yAxisIndex']=0; // $list['series'][1]['data'][]=round($v[$name]); // } // } // $res['status'] = 0; // $res['msg'] = ''; // $res['data'] = $list; // return json($res); // } //加工收入情况(万元)->缓存 本级包含集团教材外 public function month_jgsr_redis(){ $redis=redis(); $redis_key = md5('month_jgsr_redis'); $field = [ 'ldz', 'mcyd.icydid', 'year(mcyd.dcyrq) as 年', "DATE_FORMAT( mcyd.dcyrq, '%Y-%m') as 日期", 'sum(mcyd.nwshjje) nwshjje', 'sum(mcyd.nwsgjhj) nwsgjhj', 'sum(tjob.namount) namount', 'sum(tjob.namount) - sum(tjob.nclje * 100 / (100 + tjob.itax)) as sum_clje', 'tjob.itax', ]; //当年 $erp2023 = Db::table('mcyd')->field($field) ->join('tjob','mcyd.icydid = tjob.icydid','LEFT') ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->end_time()]) ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq') ->where('mcyd.icydstate','>',0) ->select(); foreach($erp2023 as $v){ $list[$v['日期']]=0; } // 遍历查询结果,进行统计 foreach ($erp2023 as $v){ if($v['ldz'] == 1 ){ $list[$v['日期']]+=$v['sum_clje']; }else{ $list[$v['日期']]+=$v['nwsgjhj']; } } foreach($list as $k=>$v){ $res[]=['日期'=>$k,'加工收入'=>round($v/10000)]; } array_multisort($res,SORT_ASC); if($res){ //将查询结果存入 Redis 缓存中 $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } } //加工收入情况(万元)->缓存 全部包含集团教材外 public function month_jgsrs_redis(){ $redis=redis(); $redis_key = md5('month_jgsrs_redis'); $field = [ 'ldz', 'mcyd.icydid', 'year(mcyd.dcyrq) as 年', "DATE_FORMAT( mcyd.dcyrq, '%Y-%m') as 日期", 'sum(mcyd.nwshjje) nwshjje', 'sum(mcyd.nwsgjhj) nwsgjhj', 'sum(tjob.namount) namount', 'sum(tjob.namount) - sum(tjob.nclje * 100 / (100 + tjob.itax)) as sum_clje', 'tjob.itax', ]; //当年 $erp2023 = Db::table('mcyd')->field($field) ->join('tjob','mcyd.icydid = tjob.icydid','LEFT') ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->end_time()]) ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq') ->where('mcyd.icydstate','>',0) ->where('mcyd.chy','<>','集团教材外') ->select(); foreach($erp2023 as $v){ $list[$v['日期']]=0; } // 遍历查询结果,进行统计 foreach ($erp2023 as $v){ if($v['ldz'] == 1 ){ $list[$v['日期']]+=$v['sum_clje']; }else{ $list[$v['日期']]+=$v['nwsgjhj']; } } foreach($list as $k=>$v){ $res[]=['日期'=>$k,'加工收入'=>round($v/10000)]; } array_multisort($res,SORT_ASC); if($res){ //将查询结果存入 Redis 缓存中 $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } } //加工收入情况(万元)->接口 public function month_jgsr() { $data = input('post.'); if (isset($data['dependence'])) { $dependence = $data['dependence']; } else { $dependence['item']['value'] = '全部'; } // 获取 Redis 数据 $redis = redis(); if ($dependence['item']['value'] == '全部') { $result = json_decode($redis->get(md5('month_jgsrs_redis')), true); } else { $result = json_decode($redis->get(md5('month_jgsr_redis')), true); } $name = '加工收入'; // 数据字段名 $currentYear = date('Y'); // 当前年份 $previousYear = $currentYear - 1; // 前一年 // 初始化数据 $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']; $list['series'] = [ [ 'name' => '同比增减百分比', 'type' => 'line', 'yAxisIndex' => 1, 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0 ], [ 'name' => $previousYear . '年', 'type' => 'bar', 'yAxisIndex' => 0, 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0 ], [ 'name' => $currentYear . '年', 'type' => 'bar', 'yAxisIndex' => 0, 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0 ] ]; // 判断 Redis 数据是否为空 if (!empty($result)) { foreach ($result as $k => $v) { if (isset($v['日期']) && $v['日期'] >= $currentYear . '-01') { // 获取目标值(假设目标值存储在数据库中) $target = Db::name('targetmonth') ->where('name', '加工收入情况') ->where('month', substr($v['日期'], -2, 2)) ->value('month_target'); // 计算同比增减百分比 $monthIndex = (int)substr($v['日期'], -2, 2) - 1; // 月份索引 $list['series'][0]['data'][$monthIndex] = isset($result[$k - 12]) && $result[$k - 12][$name] != 0 ? round(($v[$name] - $result[$k - 12][$name]) / $result[$k - 12][$name] * 100, 2) : 0; // 当前年份数据 $list['series'][2]['data'][$monthIndex] = round($v[$name]); } else { // 前一年数据 if (isset($v['日期'])) { $monthIndex = (int)substr($v['日期'], -2, 2) - 1; // 月份索引 $list['series'][1]['data'][$monthIndex] = round($v[$name]); } } } } // 设置返回数据 $res['status'] = 0; $res['msg'] = ''; $res['data'] = $list; return json($res); } // public function month_jgsr(){ // $data = input('post.'); // if(isset($data['dependence'])){ // $dependence=$data['dependence']; // }else{ // $dependence['item']['value']= '全部'; // } // $redis = redis(); // if($dependence['item']['value'] == '全部'){ // $result = json_decode($redis->get(md5('month_jgsrs_redis')),true); // }else{ // $result = json_decode($redis->get(md5('month_jgsr_redis')),true); // } // // // $name='加工收入(万元)'; // $name='加工收入'; //// $redis = redis(); //// $result = json_decode($redis->get(md5('month_jgsr_redis')),true); // $list['categories']=[]; // $list['series'][0]=[]; // foreach($result as $k=>$v){ // if($v['日期']>=date('Y').'-01'){ // $target=Db::name('targetmonth')->where('name','加工收入情况')->where('month',substr($v['日期'],-2,2))->value('month_target'); // $list['series'][0]['name']='同比增减百分比'; // $list['series'][0]['type']='line'; // $list['series'][0]['yAxisIndex']=1; // // $list['series'][0]['data'][]=round($v[$name]/$target*100); // $list['series'][0]['data'][]=round(($v[$name]-$result[$k-12][$name])/$result[$k-12][$name]*100); // $list['series'][2]['name']=date('Y').'年'; // $list['series'][2]['type']='bar'; // $list['series'][2]['yAxisIndex']=0; // $list['series'][2]['data'][]=round($v[$name]); // }else{ // $list['categories'][]=substr($v['日期'],-2,2); // $list['series'][1]['name']=(date('Y')-1).'年'; // $list['series'][1]['type']='bar'; // $list['series'][1]['yAxisIndex']=0; // $list['series'][1]['data'][]=round($v[$name]); // } // } // $res['status'] = 0; // $res['msg'] = ''; // $res['data'] = $list; // return json($res); // } //加工考核毛利收入情况(万元)->缓存 本级包含集团教材外 public function month_jgml_redis(){ $redis=redis(); $redis_key = md5('month_jgml_redis'); $res=Db::query("SELECT DATE_FORMAT(t.承印日期,'%Y-%m') 承印时间, Sum(t.印令) 总纸令, Sum(t.色令) 总色令, Sum(t.销售收入不含税) 总销售收入, Sum(t.销售收入工价不含税) 总销售工价, Sum(t.销售收入料价不含税) 总销售料价, Sum(t.不含税考核计算毛利)/10000 总销售毛利 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ,'%Y-%m-%d') AS 承印日期, ObjMatier.nysls AS 印令, ObjMatier.nyssl AS 色令, CYJLX AS 印件类型, CHY AS 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) ELSE CASE WHEN IFNULL(tb_in.sum_ngjje_in, 0) + CASE WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0 ELSE ( CASE WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0 ELSE ( CASE WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0) ELSE IFNULL(tj.sum_clje, 0) END ) END ) END = 0 AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0 ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0) + CASE WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0 ELSE ( CASE WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0 ELSE ( CASE WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0) ELSE IFNULL(tj.sum_clje, 0) END ) END ) END ) - IFNULL(tb_out.sum_nhjje_out, 0) END END AS 不含税考核计算毛利, CASE WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) ELSE CASE WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0 AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0 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) END END AS 考核计算工价毛利不含税, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END AS 销售收入不含税, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwsgjhj, 0) ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) END AS 销售收入工价不含税, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwsclhj, 0) ELSE IFNULL(tj.sum_clje, 0) END AS 销售收入料价不含税 FROM MCYD Ord LEFT JOIN (SELECT ICYDID, Max(Nsc) AS Nsc FROM SCYDDX WHERE IDXLXID = 573 GROUP BY ICYDID) AS Obj ON ord.ICYDID = Obj.ICYDID LEFT JOIN (SELECT ICYDID, Sum(NYSLS) AS nysls, Sum(nyssl) AS nyssl, Sum(nsyl) AS nsyl FROM SCYDDX GROUP BY ICYDID) AS ObjMatier ON Ord.ICYDID = ObjMatier.ICYDID LEFT JOIN (SELECT Sum(CASE WHEN hz.dz = 1 THEN hz.nhjje ELSE hz.传票预计价 END) AS sum_nhjje_in, Sum(CASE WHEN hz.dz = 1 THEN hz.nhjje ELSE hz.传票预计价 END) AS sum_ngjje_in, Sum(CASE WHEN hz.dz = 1 THEN hz.nclje ELSE hz.nclje END) AS sum_nclje_in, hz.ICYDID FROM (SELECT yjj.传票预计价单号, IFNULL(yjj. 传票预计价, 0) 传票预计价, yjj.iCYDID, d.cjjdh 计价单号, d.ccydh 订单号, d.cbz 备注, d.ngjje, d.nclje, IFNULL(d.iwjg, 0) iwjg, IFNULL(d.lzfbs, 0) lzfbs, d.nhjje, IFNULL(d.ldz, 0) dz FROM (SELECT b.csccpbh 传票预计价单号, a.ccydh, a.icydid, Sum(c.fje) 传票预计价 FROM mcyd a LEFT JOIN sccp b ON a.icydid = b.icydid LEFT JOIN ZbHjXm c ON c.sccpid = b.sccpid GROUP BY b.csccpbh, a.icydid, a.CCYDH) yjj LEFT JOIN tbluey d ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz WHERE hz.iwjg = 0 AND hz.lzfbs = 0 GROUP BY hz.ICYDID) tb_in ON ord.icydid = tb_in.iCydid LEFT JOIN (SELECT fw.iCYDID, sum_nhjje_out, sum_ngjje_out, sum_nclje_out, bz.cbz FROM (SELECT Cast(Sum(( CASE WHEN hz.dz = 1 OR hz.dz = -1 THEN hz.nhjje ELSE hz.传票预计价 END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out, Cast(Sum(( CASE WHEN hz.dz = 1 OR hz.dz = -1 THEN hz.nhjje ELSE hz.传票预计价 END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out, Cast(Sum(CASE WHEN hz.dz = 1 OR hz.dz = -1 THEN hz.nclje ELSE hz.nclje END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out, iCydid FROM (SELECT yjj.传票预计价单号, IFNULL(yjj. 传票预计价, 0) 传票预计价, yjj.iCYDID, d.cjjdh 计价单号, d.ccydh 订单号, d.cbz 备注, d.ngjje, d.nclje, d.itax, IFNULL(d.iwjg, 0) iwjg, IFNULL(d.lzfbs, 0) lzfbs, d.nhjje, IFNULL(d.ldz, 0) dz FROM (SELECT b.csccpbh 传票预计价单号, a.ccydh, a.icydid, Sum(c.fje) 传票预计价 FROM mcyd a LEFT JOIN sccp b ON a.icydid = b.icydid LEFT JOIN ZbHjXm c ON c.sccpid = b.sccpid GROUP BY b.csccpbh, a.icydid, a.CCYDH) yjj LEFT JOIN tbluey d ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz WHERE hz.iwjg = 1 AND hz.lzfbs = 0 GROUP BY hz.ICYDID) fw LEFT JOIN (SELECT icydid, (SELECT GROUP_CONCAT(cbz) FROM TBluey WHERE icydid = a.icydid) AS cbz FROM TBluey a GROUP BY icydid) bz ON bz.icydid = fw.iCYDID) tb_out ON ord.icydid = tb_out.iCydid LEFT JOIN (SELECT Sum(namount) AS sum_namount, Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END ldz FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz) tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0) t WHERE T.承印日期 >= '{$this->qstart_time()}' AND T.承印日期 <= '{$this->end_time()}' GROUP BY 承印时间 ORDER BY 承印时间"); if($res){ //将查询结果存入 Redis 缓存中 $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } } //加工考核毛利收入情况(万元)->缓存 全部包含集团教材外 public function month_jgmls_redis(){ $redis=redis(); $redis_key = md5('month_jgmls_redis'); $res=Db::query("SELECT DATE_FORMAT(t.承印日期,'%Y-%m') 承印时间, Sum(t.印令) 总纸令, Sum(t.色令) 总色令, Sum(t.销售收入不含税) 总销售收入, Sum(t.销售收入工价不含税) 总销售工价, Sum(t.销售收入料价不含税) 总销售料价, Sum(t.不含税考核计算毛利)/10000 总销售毛利 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ,'%Y-%m-%d') AS 承印日期, ObjMatier.nysls AS 印令, ObjMatier.nyssl AS 色令, CYJLX AS 印件类型, CHY AS 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) ) ELSE CASE WHEN IFNULL(tb_in.sum_ngjje_in, 0) + CASE WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0 ELSE ( CASE WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0 ELSE ( CASE WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0) ELSE IFNULL(tj.sum_clje, 0) END ) END ) END = 0 AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0 ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0) + CASE WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0 ELSE ( CASE WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0 ELSE ( CASE WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0) ELSE IFNULL(tj.sum_clje, 0) END ) END ) END ) - IFNULL(tb_out.sum_nhjje_out, 0) END END AS 不含税考核计算毛利, CASE WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) ) ELSE CASE WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0 AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0 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) END END AS 考核计算工价毛利不含税, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END AS 销售收入不含税, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwsgjhj, 0) ELSE IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) END AS 销售收入工价不含税, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwsclhj, 0) ELSE IFNULL(tj.sum_clje, 0) END AS 销售收入料价不含税 FROM MCYD Ord LEFT JOIN (SELECT ICYDID, Max(Nsc) AS Nsc FROM SCYDDX WHERE IDXLXID = 573 GROUP BY ICYDID) AS Obj ON ord.ICYDID = Obj.ICYDID LEFT JOIN (SELECT ICYDID, Sum(NYSLS) AS nysls, Sum(nyssl) AS nyssl, Sum(nsyl) AS nsyl FROM SCYDDX GROUP BY ICYDID) AS ObjMatier ON Ord.ICYDID = ObjMatier.ICYDID LEFT JOIN (SELECT Sum(CASE WHEN hz.dz = 1 THEN hz.nhjje ELSE hz.传票预计价 END) AS sum_nhjje_in, Sum(CASE WHEN hz.dz = 1 THEN hz.nhjje ELSE hz.传票预计价 END) AS sum_ngjje_in, Sum(CASE WHEN hz.dz = 1 THEN hz.nclje ELSE hz.nclje END) AS sum_nclje_in, hz.ICYDID FROM (SELECT yjj.传票预计价单号, IFNULL(yjj. 传票预计价, 0) 传票预计价, yjj.iCYDID, d.cjjdh 计价单号, d.ccydh 订单号, d.cbz 备注, d.ngjje, d.nclje, IFNULL(d.iwjg, 0) iwjg, IFNULL(d.lzfbs, 0) lzfbs, d.nhjje, IFNULL(d.ldz, 0) dz FROM (SELECT b.csccpbh 传票预计价单号, a.ccydh, a.icydid, Sum(c.fje) 传票预计价 FROM mcyd a LEFT JOIN sccp b ON a.icydid = b.icydid LEFT JOIN ZbHjXm c ON c.sccpid = b.sccpid GROUP BY b.csccpbh, a.icydid, a.CCYDH) yjj LEFT JOIN tbluey d ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz WHERE hz.iwjg = 0 AND hz.lzfbs = 0 GROUP BY hz.ICYDID) tb_in ON ord.icydid = tb_in.iCydid LEFT JOIN (SELECT fw.iCYDID, sum_nhjje_out, sum_ngjje_out, sum_nclje_out, bz.cbz FROM (SELECT Cast(Sum(( CASE WHEN hz.dz = 1 OR hz.dz = -1 THEN hz.nhjje ELSE hz.传票预计价 END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out, Cast(Sum(( CASE WHEN hz.dz = 1 OR hz.dz = -1 THEN hz.nhjje ELSE hz.传票预计价 END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out, Cast(Sum(CASE WHEN hz.dz = 1 OR hz.dz = -1 THEN hz.nclje ELSE hz.nclje END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nclje_out, iCydid FROM (SELECT yjj.传票预计价单号, IFNULL(yjj. 传票预计价, 0) 传票预计价, yjj.iCYDID, d.cjjdh 计价单号, d.ccydh 订单号, d.cbz 备注, d.ngjje, d.nclje, d.itax, IFNULL(d.iwjg, 0) iwjg, IFNULL(d.lzfbs, 0) lzfbs, d.nhjje, IFNULL(d.ldz, 0) dz FROM (SELECT b.csccpbh 传票预计价单号, a.ccydh, a.icydid, Sum(c.fje) 传票预计价 FROM mcyd a LEFT JOIN sccp b ON a.icydid = b.icydid LEFT JOIN ZbHjXm c ON c.sccpid = b.sccpid GROUP BY b.csccpbh, a.icydid, a.CCYDH) yjj LEFT JOIN tbluey d ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz WHERE hz.iwjg = 1 AND hz.lzfbs = 0 GROUP BY hz.ICYDID) fw LEFT JOIN (SELECT icydid, (SELECT GROUP_CONCAT(cbz) FROM TBluey WHERE icydid = a.icydid) AS cbz FROM TBluey a GROUP BY icydid) bz ON bz.icydid = fw.iCYDID) tb_out ON ord.icydid = tb_out.iCydid LEFT JOIN (SELECT Sum(namount) AS sum_namount, Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje, iCydid, CASE WHEN ldz = 1 THEN 1 ELSE 0 END ldz FROM TJob WHERE lzfbs = 0 GROUP BY iCydid, nclje, itax, ldz) tj ON ord.ICYDID = tj.iCydid WHERE ord.ICYDSTATE > 0 AND chy != '集团教材外') t WHERE T.承印日期 >= '{$this->qstart_time()}' AND T.承印日期 <= '{$this->end_time()}' GROUP BY 承印时间 ORDER BY 承印时间"); if($res){ //将查询结果存入 Redis 缓存中 $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); }; } //加工考核毛利收入情况(万元)->接口 public function month_jgml() { $data = input('post.'); if (isset($data['dependence'])) { $dependence = $data['dependence']; } else { $dependence['item']['value'] = '全部'; } // 获取 Redis 数据 $redis = redis(); if ($dependence['item']['value'] == '全部') { $result = json_decode($redis->get(md5('month_jgmls_redis')), true); } else { $result = json_decode($redis->get(md5('month_jgml_redis')), true); } $name = '总销售毛利'; // 数据字段名 $currentYear = date('Y'); // 当前年份 $previousYear = $currentYear - 1; // 前一年 // 初始化数据 $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']; $list['series'] = [ [ 'name' => '同比增减率百分比', 'type' => 'line', 'yAxisIndex' => 1, 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0 ], [ 'name' => $previousYear . '年', 'type' => 'bar', 'yAxisIndex' => 0, 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0 ], [ 'name' => $currentYear . '年', 'type' => 'bar', 'yAxisIndex' => 0, 'data' => array_fill(0, 12, 0), // 初始化12个月份数据为0 ] ]; // 判断 Redis 数据是否为空 if (!empty($result)) { foreach ($result as $k => $v) { if (isset($v['承印时间']) && $v['承印时间'] >= $currentYear . '-01') { // 计算同比增减率百分比 $monthIndex = (int)substr($v['承印时间'], -2, 2) - 1; // 获取月份索引 $list['series'][0]['data'][$monthIndex] = isset($result[$k - 12]) && $result[$k - 12][$name] != 0 ? round(($v[$name] - $result[$k - 12][$name]) / $result[$k - 12][$name] * 100, 2) : 0; // 当前年份数据 $list['series'][2]['data'][$monthIndex] = round($v[$name]); } else { if (isset($v['承印时间'])) { // 前一年数据 $monthIndex = (int)substr($v['承印时间'], -2, 2) - 1; // 获取月份索引 $list['series'][1]['data'][$monthIndex] = round($v[$name]); } } } } // 设置返回数据 $res['status'] = 0; $res['msg'] = ''; $res['data'] = $list; return json($res); } // public function month_jgml(){ //// $redis = redis(); //// $result = json_decode($redis->get(md5('month_jgmls_redis')),true); // // $data = input('post.'); // if(isset($data['dependence'])){ // $dependence=$data['dependence']; // }else{ // $dependence['item']['value']= '全部'; // } // $redis = redis(); // if($dependence['item']['value'] == '全部'){ // $result = json_decode($redis->get(md5('month_jgmls_redis')),true); // }else{ // $result = json_decode($redis->get(md5('month_jgml_redis')),true); // } // // // $name='加工毛利收入(万元)'; // $name='总销售毛利'; //// $redis = redis(); //// $result = json_decode($redis->get(md5('month_jgml_redis')),true); // $list['categories']=[]; // $list['series'][0]=[]; // foreach($result as $k=>$v){ // // if($v['年月']>=date('Y').'-01'){ // if($v['承印时间']>=date('Y').'-01'){ // // $target=Db::name('targetmonth')->where('name','加工毛利收入情况')->where('month',substr($v['年月'],-2,2))->value('month_target'); // // $list['series'][0]['name']=date('Y').'指标达成率'; // $list['series'][0]['name']='同比增减率百分比'; // $list['series'][0]['type']='line'; // $list['series'][0]['yAxisIndex']=1; // // $list['series'][0]['data'][]=round($v[$name]/$target*100); // $list['series'][0]['data'][]=round(($v[$name]-$result[$k-12][$name])/$result[$k-12][$name]*100); // $list['series'][2]['name']=date('Y').'年'; // $list['series'][2]['type']='bar'; // $list['series'][2]['yAxisIndex']=0; // $list['series'][2]['data'][]=round($v[$name]); // }else{ // // $list['categories'][]=substr($v['年月'],-2,2); // $list['categories'][]=substr($v['承印时间'],-2,2); // $list['series'][1]['name']=(date('Y')-1).'年'; // $list['series'][1]['type']='bar'; // $list['series'][1]['yAxisIndex']=0; // $list['series'][1]['data'][]=round($v[$name]); // } // } // $res['status'] = 0; // $res['msg'] = ''; // $res['data'] = $list; // return json($res); // } /** * 各版块业务承揽收入占比一览表 */ //CONCAT(LTRIM(CAST((SUM(db.集团出版社销售收入) * 100 / (SUM(db.总销售收入) - IFNULL(SUM(db.集团教材外销售收入), 0))) AS DECIMAL(10, 2)))) AS 系统图书, //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))) + '%' 社会图书, //CONCAT(LTRIM(CAST((SUM(db.外贸订单销售收入) * 100 / (SUM(db.总销售收入) - IFNULL(SUM(db.集团教材外销售收入), 0))) AS DECIMAL(10, 2)))) AS 外贸板块, //CONCAT(LTRIM(CAST((SUM(db.期刊销售收入) * 100 / (SUM(db.总销售收入) - IFNULL(SUM(db.集团教材外销售收入), 0))) AS DECIMAL(10, 2)))) AS 期刊板块, //CONCAT(LTRIM(CAST((SUM(db.集团教材内销售收入) * 100 / (SUM(db.总销售收入) - IFNULL(SUM(db.集团教材外销售收入), 0))) AS DECIMAL(10, 2)))) AS 教材板块, //LTRIM(CAST((100 - SUM(db.总销售收入 - IFNULL(db.集团教材外销售收入, 0)) * 100 / NULLIF(SUM(db.总销售收入), 0)) AS DECIMAL(10, 2))) + '%' AS 过账业务, //当年各版块业务承揽收入与占比一览表->缓存 public function percentageasc_redis(){ $redis = redis(); $redis_key = md5('percentageasc_redis'); $firstDayOfYear = date("Y-01-01"); $today = date("Y-m-d"); $sql = "SELECT CONCAT(LTRIM(CAST((SUM(db.集团出版社销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 系统图书, CONCAT(LTRIM(CAST(((SUM(db.其它板块销售收入) + SUM(db.上海出版社订单销售收入)) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 社会图书, -- 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))) + '%' 社会图书, CONCAT(LTRIM(CAST((SUM(db.外贸订单销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 外贸板块, CONCAT(LTRIM(CAST((SUM(db.期刊销售收入) * 100 / (SUM(db.总销售收入))) AS DECIMAL(10, 2)))) AS 期刊板块, CONCAT(LTRIM(CAST((SUM(db.集团教材内销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 教材板块, CONCAT(TRIM(CAST(ROUND(SUM(db.集团教材外销售收入) / 10000, 2) * 100 / ROUND(SUM(db.总销售收入) / 10000, 2) AS DECIMAL(10, 2)))) AS '过账业务', -- db.总销售收入 AS '总销售收入', CAST(ROUND(SUM(db.总销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '总销售收入', -- SUM(db.上海出版社订单销售收入) AS '上海出版社订单销售收入', CAST(ROUND(SUM(db.上海出版社订单销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '上海出版社订单销售收入', CAST(ROUND(SUM(db.集团出版社销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '系统图书(万元)', CAST(ROUND(SUM(db.其它板块销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '社会图书(万元)', CAST(ROUND(SUM(db.外贸订单销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '外贸板块(万元)', CAST(ROUND(SUM(db.期刊销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '期刊板块(万元)', CAST(ROUND(SUM(db.集团教材内销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '教材板块(万元)', CAST(ROUND((SUM(db.总销售收入) - SUM(db.本级销售收入)) / 10000, 2) AS DECIMAL(10, 2)) AS '过账业务(万元)' FROM (SELECT DISTINCT a.承印日期 日期, t5.总销售收入, t5.总销售收入 - IFNULL(t3.集团教材外销售收入, 0) 本级销售收入, G.期刊销售收入, T1.集团出版社销售收入, t2.集团教材内销售收入, t3.集团教材外销售收入, t4.外贸订单销售收入, t6.上海出版社订单销售收入, t5.总销售收入 - IFNULL(G.期刊销售收入, 0) - IFNULL(T1.集团出版社销售收入, 0) - IFNULL(t2.集团教材内销售收入, 0) - IFNULL(t3.集团教材外销售收入, 0) - IFNULL(t4.外贸订单销售收入, 0) - IFNULL(t6.上海出版社订单销售收入, 0) 其它板块销售收入 FROM (SELECT DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期 FROM MCYD) a LEFT JOIN (SELECT dd.承印日期 承印时间,SUM(dd.不含税销售收入) 期刊销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 不含税销售收入 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 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.承印日期 LEFT JOIN (SELECT t.承印日期 承印时间,Sum(t.不含税销售收入) 集团出版社销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 不含税销售收入 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 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.承印日期 LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 集团教材内销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税 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 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.承印日期 LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 集团教材外销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税 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 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.承印日期 LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 外贸订单销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税 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 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.承印日期 LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 总销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税 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 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.承印日期 LEFT JOIN (SELECT t.承印日期 承印时间,Sum(t.销售收入不含税) 上海出版社订单销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税 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 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.承印日期 )db WHERE 1 = 1 AND db.日期 >= '{$firstDayOfYear}' AND db.日期 <= '{$today}'"; $res=Db::query($sql); //将查询结果存入 Redis 缓存中 if ($res) { $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } } //去年各版块业务承揽收入与占比一览表->缓存 public function q_percentageasc_redis(){ $redis = redis(); $redis_key = md5('q_percentageasc_redis'); $firstDayOfLastYear = date("Y-01-01", strtotime("last year")); $todayLastYear = date("Y-m-d", strtotime("last year")); $sql = "SELECT CONCAT(LTRIM(CAST((SUM(db.集团出版社销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 系统图书, CONCAT(LTRIM(CAST(((SUM(db.其它板块销售收入) + SUM(db.上海出版社订单销售收入)) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 社会图书, -- 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))) + '%' 社会图书, CONCAT(LTRIM(CAST((SUM(db.外贸订单销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 外贸板块, CONCAT(LTRIM(CAST((SUM(db.期刊销售收入) * 100 / (SUM(db.总销售收入))) AS DECIMAL(10, 2)))) AS 期刊板块, CONCAT(LTRIM(CAST((SUM(db.集团教材内销售收入) * 100 / (SUM(db.总销售收入) )) AS DECIMAL(10, 2)))) AS 教材板块, CONCAT(TRIM(CAST(ROUND(SUM(db.集团教材外销售收入) / 10000, 2) * 100 / ROUND(SUM(db.总销售收入) / 10000, 2) AS DECIMAL(10, 2)))) AS '过账业务', -- db.总销售收入 AS '总销售收入', CAST(ROUND(SUM(db.总销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '总销售收入', -- SUM(db.上海出版社订单销售收入) AS '上海出版社订单销售收入', CAST(ROUND(SUM(db.上海出版社订单销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '上海出版社订单销售收入', CAST(ROUND(SUM(db.集团出版社销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '系统图书(万元)', CAST(ROUND(SUM(db.其它板块销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '社会图书(万元)', CAST(ROUND(SUM(db.外贸订单销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '外贸板块(万元)', CAST(ROUND(SUM(db.期刊销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '期刊板块(万元)', CAST(ROUND(SUM(db.集团教材内销售收入) / 10000, 2) AS DECIMAL(10, 2)) AS '教材板块(万元)', CAST(ROUND((SUM(db.总销售收入) - SUM(db.本级销售收入)) / 10000, 2) AS DECIMAL(10, 2)) AS '过账业务(万元)' FROM (SELECT DISTINCT a.承印日期 日期, t5.总销售收入, t5.总销售收入 - IFNULL(t3.集团教材外销售收入, 0) 本级销售收入, G.期刊销售收入, T1.集团出版社销售收入, t2.集团教材内销售收入, t3.集团教材外销售收入, t4.外贸订单销售收入, t6.上海出版社订单销售收入, t5.总销售收入 - IFNULL(G.期刊销售收入, 0) - IFNULL(T1.集团出版社销售收入, 0) - IFNULL(t2.集团教材内销售收入, 0) - IFNULL(t3.集团教材外销售收入, 0) - IFNULL(t4.外贸订单销售收入, 0) - IFNULL(t6.上海出版社订单销售收入, 0) 其它板块销售收入 FROM (SELECT DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期 FROM MCYD) a LEFT JOIN (SELECT dd.承印日期 承印时间,SUM(dd.不含税销售收入) 期刊销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 不含税销售收入 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 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.承印日期 LEFT JOIN (SELECT t.承印日期 承印时间,Sum(t.不含税销售收入) 集团出版社销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 不含税销售收入 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 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.承印日期 LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 集团教材内销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税 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 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.承印日期 LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 集团教材外销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税 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 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.承印日期 LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 外贸订单销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税 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 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.承印日期 LEFT JOIN (SELECT t.承印日期 承印时间, Sum(t.销售收入不含税) 总销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税 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 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.承印日期 LEFT JOIN (SELECT t.承印日期 承印时间,Sum(t.销售收入不含税) 上海出版社订单销售收入 FROM (SELECT CASE WHEN IFNULL(ldz, 0) = 1 THEN '是' ELSE '否' END 登账, DATE_FORMAT(DCYRQ, '%Y-%m-%d') AS 承印日期, CYJLX 印件类型, CHY 活源, CASE WHEN IFNULL(ldz, 0) = 0 THEN IFNULL(nwshjje, 0) ELSE IFNULL(tj.sum_namount, 0) END 销售收入不含税 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 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.承印日期 )db WHERE 1 = 1 AND db.日期 >= '{$firstDayOfLastYear}' AND db.日期 <= '{$todayLastYear}'"; $res=Db::query($sql); //将查询结果存入 Redis 缓存中 if ($res) { $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } // $redis->set($redis_key, json_encode($res)); // echo date("Y-m-d H:i:s").' 存进去了'; // return json($res); } //各版块业务承揽收入与占比一览表->接口 public function tecl_list() { $redis = redis(); $result = json_decode($redis->get(md5('percentageasc_redis')), true); $qresult = json_decode($redis->get(md5('q_percentageasc_redis')), true); // 初始化返回数据 $list = [ 'categories' => ['系统图书', '社会业务', '外贸板块', '期刊板块', '教材板块', '其他业务'], 'series' => [] ]; // 判断数据是否为空 if (empty($result) || empty($qresult)) { $res = [ 'status' => 0, 'msg' => '暂无数据', 'data' => $list ]; return json($res); } // 去年与今年收入占比 foreach ($result as $index => $rv) { $list['series'][0]['name'] = '同比增减百分比'; $list['series'][0]['type'] = 'line'; $list['series'][0]['yAxisIndex'] = 1; // 确保数据不为 0,避免除以 0 的错误 $currentValueSystem = $rv['系统图书(万元)'] ?: 1; $currentValueSocial = $rv['社会图书(万元)'] ?: 1; $currentValueTrade = $rv['外贸板块(万元)'] ?: 1; $currentValueJournal = $rv['期刊板块(万元)'] ?: 1; $currentValueTextbook = $rv['教材板块(万元)'] ?: 1; $currentValuePosting = $rv['过账业务(万元)'] ?: 1; $qcurrentValueSystem = $qresult[$index]['系统图书(万元)'] ?: 1; $qcurrentValueSocial = $qresult[$index]['社会图书(万元)'] ?: 1; $qcurrentValueTrade = $qresult[$index]['外贸板块(万元)'] ?: 1; $qcurrentValueJournal = $qresult[$index]['期刊板块(万元)'] ?: 1; $qcurrentValueTextbook = $qresult[$index]['教材板块(万元)'] ?: 1; $qcurrentValuePosting = $qresult[$index]['过账业务(万元)'] ?: 1; // 计算同比增减百分比 // 计算同比增减百分比,避免除以 0 的错误 $list['series'][0]['data'][] = $qcurrentValueSystem != 0 ? round((($currentValueSystem - $qcurrentValueSystem) / $qcurrentValueSystem) * 100, 2) : 0; $list['series'][0]['data'][] = $qcurrentValueSocial != 0 ? round((($currentValueSocial - $qcurrentValueSocial) / $qcurrentValueSocial) * 100, 2) : 0; $list['series'][0]['data'][] = $qcurrentValueTrade != 0 ? round((($currentValueTrade - $qcurrentValueTrade) / $qcurrentValueTrade) * 100, 2) : 0; $list['series'][0]['data'][] = $qcurrentValueJournal != 0 ? round((($currentValueJournal - $qcurrentValueJournal) / $qcurrentValueJournal) * 100, 2) : 0; $list['series'][0]['data'][] = $qcurrentValueTextbook != 0 ? round((($currentValueTextbook - $qcurrentValueTextbook) / $qcurrentValueTextbook) * 100, 2) : 0; $list['series'][0]['data'][] = $qcurrentValuePosting != 0 ? round((($currentValuePosting - $qcurrentValuePosting) / $qcurrentValuePosting) * 100, 2) : 0; } // 去年数据 foreach ($qresult as $v) { $list['series'][1]['name'] = (date('Y') - 1) . '年'; $list['series'][1]['type'] = 'bar'; $list['series'][1]['yAxisIndex'] = 0; $list['series'][1]['data'][] = round($v['系统图书(万元)']); $list['series'][1]['data'][] = round($v['社会图书(万元)'] + $v['上海出版社订单销售收入']); $list['series'][1]['data'][] = round($v['外贸板块(万元)']); $list['series'][1]['data'][] = round($v['期刊板块(万元)']); $list['series'][1]['data'][] = round($v['教材板块(万元)']); $list['series'][1]['data'][] = round($v['过账业务(万元)']); } // 当年数据 foreach ($result as $v) { $list['series'][2]['name'] = date('Y') . '年'; $list['series'][2]['type'] = 'bar'; $list['series'][2]['yAxisIndex'] = 0; $list['series'][2]['data'][] = round($v['系统图书(万元)']); $list['series'][2]['data'][] = round($v['社会图书(万元)'] + $v['上海出版社订单销售收入']); $list['series'][2]['data'][] = round($v['外贸板块(万元)']); $list['series'][2]['data'][] = round($v['期刊板块(万元)']); $list['series'][2]['data'][] = round($v['教材板块(万元)']); $list['series'][2]['data'][] = round($v['过账业务(万元)']); } // 返回结果 $res = [ 'status' => 0, 'msg' => '', 'data' => $list ]; return json($res); } // public function tecl_list(){ // $redis = redis(); // $result = json_decode($redis->get(md5('percentageasc_redis')),true); // // $qresult = json_decode($redis->get(md5('q_percentageasc_redis')),true); // $list['categories']=['系统图书','社会业务','外贸板块','期刊板块','教材板块','其他业务']; // //去年与今年收入占比 // foreach ($result as $index => $rv) { // $list['series'][0]['name'] = '同比增减百分比'; // $list['series'][0]['type'] = 'line'; // $list['series'][0]['yAxisIndex'] = 1; // // 确保2023年的收入不为0,如果为0则使用1代替,以避免除以0的错误 // $currentValueSystem = $rv['系统图书(万元)'] ?: 1; // $currentValueSocial = $rv['社会图书(万元)'] ?: 1; // $currentValueTrade = $rv['外贸板块(万元)'] ?: 1; // $currentValueJournal = $rv['期刊板块(万元)'] ?: 1; // $currentValueTextbook = $rv['教材板块(万元)'] ?: 1; // $currentValuePosting = $rv['过账业务(万元)'] ?: 1; // // $qcurrentValueSystem = $qresult[$index]['系统图书(万元)'] ?: 1; // $qcurrentValueSocial = $qresult[$index]['社会图书(万元)'] ?: 1; // $qcurrentValueTrade = $qresult[$index]['外贸板块(万元)'] ?: 1; // $qcurrentValueJournal = $qresult[$index]['期刊板块(万元)'] ?: 1; // $qcurrentValueTextbook = $qresult[$index]['教材板块(万元)'] ?: 1; // $qcurrentValuePosting = $qresult[$index]['过账业务(万元)'] ?: 1; // // // 计算2023年收入占2022年收入的百分比 // $list['series'][0]['data'][] = round((($currentValueSystem - $qcurrentValueSystem) / $qcurrentValueSystem) * 100, 2); // $list['series'][0]['data'][] = round((($currentValueSocial - $qcurrentValueSocial) / $qcurrentValueSocial) * 100, 2); // $list['series'][0]['data'][] = round((($currentValueTrade - $qcurrentValueTrade) / $qcurrentValueTrade) * 100, 2); // $list['series'][0]['data'][] = round((($currentValueJournal - $qcurrentValueJournal) / $qcurrentValueJournal) * 100, 2); // $list['series'][0]['data'][] = round((($currentValueTextbook - $qcurrentValueTextbook) / $qcurrentValueTextbook) * 100, 2); // $list['series'][0]['data'][] = round((($currentValuePosting - $qcurrentValuePosting) / $qcurrentValuePosting) * 100, 2); // } // //去年 // foreach($qresult as $v){ // $list['series'][1]['name']=(date('Y')-1).'年'; // $list['series'][1]['type']='bar'; // $list['series'][1]['yAxisIndex']=0; // $list['series'][1]['data'][]=round($v['系统图书(万元)']); // $list['series'][1]['data'][]=round($v['社会图书(万元)'] + $v['上海出版社订单销售收入']); // $list['series'][1]['data'][]=round($v['外贸板块(万元)']); // $list['series'][1]['data'][]=round($v['期刊板块(万元)']); // $list['series'][1]['data'][]=round($v['教材板块(万元)']); // $list['series'][1]['data'][]=round($v['过账业务(万元)']); // } // //当年 // foreach($result as $v){ // $list['series'][2]['name']=date('Y').'年'; // $list['series'][2]['type']='bar'; // $list['series'][2]['yAxisIndex']=0; // $list['series'][2]['data'][]=round($v['系统图书(万元)']); // $list['series'][2]['data'][]=round($v['社会图书(万元)'] + $v['上海出版社订单销售收入']); // $list['series'][2]['data'][]=round($v['外贸板块(万元)']); // $list['series'][2]['data'][]=round($v['期刊板块(万元)']); // $list['series'][2]['data'][]=round($v['教材板块(万元)']); // $list['series'][2]['data'][]=round($v['过账业务(万元)']); // } // $res['status'] = 0; // $res['msg'] = ''; // $res['data'] = $list; // return json($res); // } //各版块业务承揽收入与占比百分比前三(左侧)->接口 public function percentageasc(){ $redis = redis(); $result = json_decode($redis->get(md5('percentageasc_redis')),true); $list = []; // 判断 $result 是否为空 if(empty($result) || $result == null) { $list[0]['name'] = ' '; $list[0]['value'] = 0; $list[1]['name'] = ' '; $list[1]['value'] = 0; $list[2]['name'] = ' '; $list[2]['value'] = 0; } else { foreach($result as $v){ $list[0]['name'] = ' '; $list[0]['value'] = empty($v['系统图书']) ? 0 : $v['系统图书']; $list[1]['name'] = ' '; $list[1]['value'] = empty($v['外贸板块']) ? 0 : $v['外贸板块']; $list[2]['name'] = ' '; $list[2]['value'] = empty($v['教材板块']) ? 0 : $v['教材板块']; } } $res['status'] = 0; $res['msg'] = ''; $res['data'] = $list; return json($res); } //各版块业务承揽收入与占比百分比后三(右侧)->接口 public function percentagedesc(){ $redis = redis(); $result = json_decode($redis->get(md5('percentageasc_redis')),true); $list = []; // 判断 $result 是否为空 if(empty($result) || $result == null) { $list[0]['name'] = ' '; $list[0]['value'] = 0; $list[1]['name'] = ' '; $list[1]['value'] = 0; $list[2]['name'] = ' '; $list[2]['value'] = 0; } else { foreach($result as $v){ $list[0]['name'] = ' '; $list[0]['value'] = empty($v['社会图书']) ? 0 : $v['社会图书']; $list[1]['name'] = ' '; $list[1]['value'] = empty($v['期刊板块']) ? 0 : $v['期刊板块']; $list[2]['name'] = ' '; $list[2]['value'] = empty($v['过账业务']) ? 0 : $v['过账业务']; } } $res['status'] = 0; $res['msg'] = ''; $res['data'] = $list; return json($res); } /** * 图书板块业务结构分析 */ //特殊开本、16开、大32开、小16开->缓存 public function book_one_redis(){ $redis = redis(); $redis_key = md5('book_one_redis'); $sql = "SELECT * FROM ( SELECT 1 AS 序号, aa.年份, '开本' AS 分类, aa.类别, ROUND(SUM(aa.nyssl) / 10000, 2) AS '色令(万)', ROUND(SUM(aa.nyssl) * 100.0 / SUM(SUM(aa.nyssl)) OVER (PARTITION BY aa.年份), 2) AS 占比 FROM ( SELECT YEAR(a.DCYRQ) AS 年份, a.CCYDH, a.CYJMC, b.NKB, CASE WHEN a.CZWKB like '16%' THEN '16开' WHEN a.CZWKB like '小16%' THEN '小16开' WHEN a.CZWKB like '大16%' THEN '大16开' WHEN a.CZWKB like '32%' THEN '32开' WHEN a.CZWKB like '大32%' THEN '大32开' ELSE '特殊开本' END AS 类别, b.CDXMC, b.nyssl FROM MCYD a LEFT JOIN SCYDDX b ON a.ICYDID = b.ICYDID WHERE 1 = 1 AND a.DCYRQ BETWEEN '{$this->start_time()}' AND '{$this->end_time()}' ) aa GROUP BY aa.年份, aa.类别 ) bb ORDER BY bb.占比 DESC;"; $res=Db::query($sql); // echo "
";print_r($res);echo "
";die; //将查询结果存入 Redis 缓存中 $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } //32开->接口 public function book_one_dsek() { $name = '32开'; $redis = redis(); $result = json_decode($redis->get(md5('book_one_redis')), true); // 初始化返回数据 $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认返回 0 // 如果数据非空,进行筛选处理 if (!empty($result)) { foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 找到匹配项后退出循环 } } } return json($res); } // 小16开->接口 public function book_one_xslk(){ $name='小16开'; $redis = redis(); $result = json_decode($redis->get(md5('book_one_redis')),true); // 初始化返回数据 $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认返回 0 // 如果数据非空,进行筛选处理 if (!empty($result)) { foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 找到匹配项后退出循环 } } } return json($res); } // 特殊开本->接口 public function book_one_tskb(){ $name='特殊开本'; $redis = redis(); $result = json_decode($redis->get(md5('book_one_redis')),true); // 初始化返回数据 $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认返回 0 // 如果数据非空,进行筛选处理 if (!empty($result)) { foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 找到匹配项后退出循环 } } } return json($res); } // 16开->接口 public function book_one_slk(){ $name='16开'; $redis = redis(); $result = json_decode($redis->get(md5('book_one_redis')),true); // 初始化返回数据 $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认返回 0 // 如果数据非空,进行筛选处理 if (!empty($result)) { foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 找到匹配项后退出循环 } } } return json($res); } // 大16开->接口 public function book_one_dslk(){ $name='大16开'; $redis = redis(); $result = json_decode($redis->get(md5('book_one_redis')),true); // 初始化返回数据 $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认返回 0 // 如果数据非空,进行筛选处理 if (!empty($result)) { foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 找到匹配项后退出循环 } } } return json($res); } // 大32开->接口 public function book_one_selk(){ $name='大32开'; $redis = redis(); $result = json_decode($redis->get(md5('book_one_redis')),true); // 初始化返回数据 $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认返回 0 // 如果数据非空,进行筛选处理 if (!empty($result)) { foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 找到匹配项后退出循环 } } } return json($res); } //单色、彩色、双色->缓存 public function book_two_redis(){ $redis = redis(); $redis_key = md5('book_two_redis'); $sql = "SELECT 1 AS 序号, aa.年份, '彩色化' AS 分类, aa.类别, ROUND(SUM(aa.nyssl) / 10000, 2) AS '色令(万)', ROUND(SUM(aa.nyssl) * 100.0 / SUM(SUM(aa.nyssl)) OVER (PARTITION BY aa.年份), 2) AS 占比 FROM ( SELECT YEAR(a.DCYRQ) AS 年份, a.CCYDH, a.CYJMC, b.CSC, CASE WHEN b.CSC IN ('1/1', '1/0', '0/1') THEN '单色' WHEN b.CSC IN ('2/2', '2/0', '0/2', '2/1', '1/2') THEN '双色' ELSE '彩色' END AS 类别, b.CDXMC, b.nyssl FROM MCYD a LEFT JOIN SCYDDX b ON a.ICYDID = b.ICYDID WHERE 1 = 1 AND a.DCYRQ BETWEEN '{$this->start_time()}' AND '{$this->end_time()}' ) aa GROUP BY aa.年份, aa.类别 ORDER BY 占比 DESC;"; $res=Db::query($sql); // echo "
";print_r($res);echo "
";die; //将查询结果存入 Redis 缓存中 $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } // 单色->接口 public function book_two_ds(){ $name='单色'; $redis = redis(); $result = json_decode($redis->get(md5('book_two_redis')),true); // 初始化返回数据 $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认返回 0 // 如果数据非空,进行筛选处理 if (!empty($result)) { foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 找到匹配项后退出循环 } } } return json($res); } //彩色->接口 public function book_two_cs(){ $name='彩色'; $redis = redis(); $result = json_decode($redis->get(md5('book_two_redis')),true); // 初始化返回数据 $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认返回 0 // 如果数据非空,进行筛选处理 if (!empty($result)) { foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 找到匹配项后退出循环 } } } return json($res); } // 双色->接口 public function book_two_ss(){ $name='双色'; $redis = redis(); $result = json_decode($redis->get(md5('book_two_redis')),true); // 初始化返回数据 $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认返回 0 // 如果数据非空,进行筛选处理 if (!empty($result)) { foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 找到匹配项后退出循环 } } } return json($res); } //无线胶钉、锁线胶钉、裸背锁线、骑马钉、平背精装、圆背精装->缓存 public function book_third_redis(){ $redis = redis(); $redis_key = md5('book_third_redis'); $sql = "SELECT 1 AS 序号, aa.年份, '订法' AS 分类, aa.类别, ROUND(SUM(aa.nyssl) / 10000, 2) AS '色令(万)', ROUND(SUM(aa.nyssl) * 100.0 / SUM(SUM(aa.nyssl)) OVER (PARTITION BY aa.年份), 2) AS 占比 FROM ( SELECT YEAR(a.DCYRQ) AS 年份, a.CCYDH, a.CYJMC, CASE WHEN a.CDF = '无线胶订' THEN '无线胶订' WHEN a.CDF = '圆背精装' THEN '圆背精装' WHEN a.CDF = '索线胶订' THEN '索线胶订' WHEN a.CDF = '裸背锁线' THEN '裸背锁线' WHEN a.CDF = '骑订' THEN '骑订' ELSE '其他' END AS 类别, b.CDXMC, b.nyssl FROM MCYD a LEFT JOIN SCYDDX b ON a.ICYDID = b.ICYDID WHERE 1 = 1 AND a.DCYRQ BETWEEN '{$this->start_time()}' AND '{$this->end_time()}' ) aa GROUP BY aa.年份, aa.类别 ORDER BY 占比 DESC;"; $res=Db::query($sql); // echo "
";print_r($res);echo "
";die; //将查询结果存入 Redis 缓存中 $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } // 无线胶订->接口 public function book_third_wxjd(){ $name = '无线胶订'; $redis = redis(); $result = json_decode($redis->get(md5('book_third_redis')), true); $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认占比为0 foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 匹配到后跳出循环,无需继续查找 } } return json($res); } // 索线胶订->接口 public function book_third_sxjd(){ $name='索线胶订'; $redis = redis(); $result = json_decode($redis->get(md5('book_third_redis')), true); $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认占比为0 foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 匹配到后跳出循环,无需继续查找 } } return json($res); } // 圆背精装->接口 public function book_third_ybjz(){ $name='圆背精装'; $redis = redis(); $result = json_decode($redis->get(md5('book_third_redis')), true); $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认占比为0 foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 匹配到后跳出循环,无需继续查找 } } return json($res); } // 骑马订->接口 public function book_third_qmd(){ $name='骑订'; $redis = redis(); $result = json_decode($redis->get(md5('book_third_redis')), true); $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认占比为0 foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 匹配到后跳出循环,无需继续查找 } } return json($res); } // 裸背锁线->接口 public function book_third_lbsx(){ $name='裸背锁线'; $redis = redis(); $result = json_decode($redis->get(md5('book_third_redis')), true); $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认占比为0 foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 匹配到后跳出循环,无需继续查找 } } return json($res); } // 平背精装->接口 public function book_third_pbjz(){ $name='其他'; $redis = redis(); $result = json_decode($redis->get(md5('book_third_redis')), true); $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认占比为0 foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 匹配到后跳出循环,无需继续查找 } } return json($res); } //重版书、新书-缓存->缓存 public function book_fouth_redis(){ $redis = redis(); $redis_key = md5('book_fouth_redis'); $sql = "SELECT 1 AS 序号, aa.年份, '新书/重版' AS 分类, aa.类别, ROUND(SUM(aa.nyssl) / 10000, 2) AS '色令(万)', ROUND(SUM(aa.nyssl) / SUM(SUM(aa.nyssl)) OVER (PARTITION BY aa.年份) * 100, 2) AS 占比 FROM (SELECT YEAR(a.DCYRQ) AS 年份, a.CCYDH, a.CYJMC, CASE WHEN IFNULL(a.CYC, 0) = 1 THEN '新书' WHEN IFNULL(a.CYC, 0) = 0 THEN '其他' ELSE '重版书' END AS 类别, b.CDXMC, b.nyssl FROM MCYD a LEFT JOIN SCYDDX b ON a.ICYDID = b.ICYDID WHERE 1 = 1 AND a.DCYRQ BETWEEN '{$this->start_time()}' AND '{$this->end_time()}') aa GROUP BY aa.年份, aa.类别 ORDER BY aa.类别 DESC"; $res=Db::query($sql); // echo "
";print_r($res);echo "
";die; //将查询结果存入 Redis 缓存中 $redis->set($redis_key, json_encode($res)); echo date("Y-m-d H:i:s").' 存进去了'; return json($res); } // 重版书->接口 public function book_fouth_cbs(){ $name='重版书'; $redis = redis(); $result = json_decode($redis->get(md5('book_fouth_redis')),true); // 初始化返回数据 $res = []; $res['status'] = 0; $res['msg'] = ''; $res['data'] = 0; // 默认返回 0 // 如果数据非空,进行筛选处理 if (!empty($result)) { foreach ($result as $v) { if ($v['类别'] == $name) { $res['data'] = $v['占比']; break; // 找到匹配项后退出循环 } } } return json($res); } // 新书->接口 public function book_fouth_xs(){ $redis = redis(); $result = json_decode($redis->get(md5('book_fouth_redis')),true); $categories = ['新书', '其他']; $totalPercentage = 0; foreach ($result as $v) { if (in_array($v['类别'], $categories)) { $totalPercentage += $v['占比']; } } $res=[]; $res['status'] = 0; $res['msg'] = ''; $res['data'] = $totalPercentage; return json($res); // $name='新书'; // $redis = redis(); // $result = json_decode($redis->get(md5('book_fouth_redis')),true); // echo "
";
//        print_r($result);
//        echo "
";
//        $res=[];
//        $res['status'] = 0;
//        $res['msg'] = '';
//        foreach($result as $v){
//            if($v['类别']==$name){
//                $res['data'] = $v['占比'];
//            }
//        }
//        return json($res);
    }

    /**
     * 第二页(客户分析)
     */

    //当日承揽订单量,每日承揽订单金额->缓存
    public function yesterday_amount_redis(){
        $redis = redis();
        $redis_key = md5('yesterday_amount_redis');
        $sql = "SELECT aa.承印日期,COUNT(aa.订单号) 订单量,SUM(aa.合同金额)订单金额,SUM(aa.nwshjje)未税订单金额
        FROM  (SELECT CONVERT(a.DCYRQ,CHAR(10)) 承印日期,
                      a.CCYDH                            订单号,
                      a.CYWDWMC                          委印单位,
                      a.CYJMC                            印件名称,
                      a.NJSHJJE                            合同金额,
                      a.nwshjje
               FROM   MCYD a
               WHERE  CONVERT(a.DCYRQ,CHAR(10)) = CONVERT(DATE_SUB(NOW(),INTERVAL 0 DAY),CHAR(10)))aa
        GROUP  BY aa.承印日期 ";
        $result=Db::query($sql);
        $res['status']=0;
        $res['msg']='';
        if($result==[]){
            $res['data']=[['name'=>' ','value'=>0],['name'=>' ','value'=>0]];
        }else{
            $res['data']=[['name'=>' ','value'=>$result[0]['订单量']],['name'=>' ','value'=>round($result[0]['未税订单金额']/10000)]];
        }
        //将查询结果存入 Redis 缓存中
        $redis->set($redis_key, json_encode($res));
        echo date("Y-m-d H:i:s").'   存进去了';
        return json($res);
    }
    //当日承揽订单量,每日承揽订单金额->接口
    public function yesterday_amount(){
        $redis = redis();
        $result = $redis->get(md5('yesterday_amount_redis'));
        return $result;
    }

    //年度承揽收入前五客户业务结构分析->缓存
    public function chenglanshouru_redis_ssssss(){
        $redis = redis();
        $redis_key = md5('chenglanshouru_redis');
        $sql = "
SELECT cc.客户,
cc.印数 总册数,
       cc.销售收入(万元),
       bb.印法,
       bb.分类,
      cast( bb.色令 as decimal(18,0)) 色令
       
FROM   (SELECT 			 aa.客户,
                     aa.印数,
                     Cast(aa.销售收入 AS DECIMAL(18, 2)) AS '销售收入(万元)'
        FROM   (SELECT zb.业务单位                             客户,
		               SUM(zb.印数) 印数,
                       IFnull(Sum(zb.合并金额), 0.000) / 10000 销售收入
                FROM   (SELECT CASE
                                 WHEN IFnull(ldz, 0) = 1 THEN '是'
                                 ELSE '否'
                               END                           登账,
                               CONVERT( DCYRQ, CHAR(10)) AS 承印日期,
                               CCYDH                         AS 订单号,
                               ord.IFCYDID,
                               CYJMC                         AS 印件名称,
                               CASE
                                       WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                       WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                            OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                            OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                            OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                            OR CYWDWMC='浙江省新华书店集团有限公司'
                                            OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                            OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                       WHEN CYWDWMC='浙江日报报业集团' 
                                            OR CYWDWMC='共产党员杂志社'
                                            OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                       WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                            OR CYWDWMC='浙江出版传媒有限公司'
                                            OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                       WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                       WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                            OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                       WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                       WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                       WHEN CYWDWMC='上海人民出版社有限公司'
                                            OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                       WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                            OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                       WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                       WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                       WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                       WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                       WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                       WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                       WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                       WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                       WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                       WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                       WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                       WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                            OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                       WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                       WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                       WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                       ELSE CYWDWMC
                                      END                            AS 业务单位,
                               cyjlx                         印件类型,
                               NCS                           AS 印数,
                               CZWKB                         AS 开本,
                               CDF                           AS 订法,
                               NZWYZ                         AS 正文印张,
                               CASE
                                 WHEN IFnull(ldz, 0) = 0 THEN( IFnull(nwshjje, 0) )
                                 ELSE ( IFnull(tj.sum_namount, 0) )
                               END                           合并金额
                        FROM   MCYD Ord
                               LEFT JOIN (SELECT Sum(namount)                                              AS sum_namount,
                                                 Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
                                                 iCydid,
                                                 CASE
                                                   WHEN ldz = 1 THEN 1
                                                   ELSE 0
                                                 END                                                       ldz
                                          FROM   TJob
                                          WHERE  lzfbs = 0
                                          GROUP  BY iCydid,
                                                    nclje,
                                                    itax,
                                                    ldz) tj
                                      ON ord.ICYDID = tj.iCydid
                        WHERE  ord.ICYDSTATE > 0) zb
                WHERE  CONVERT(zb.承印日期, CHAR(10)) >= '{$this->start_time()}'
                       AND CONVERT(zb.承印日期,CHAR(10)) <= '{$this->end_time()}'
                GROUP  BY zb.业务单位) aa
        ORDER  BY aa.销售收入 DESC LIMIT 5)cc
       LEFT JOIN (SELECT CYWDWMC,
                         CYF 印法,
                         CASE
                           WHEN cyf = '彩轮' THEN '彩色轮转'
                           WHEN cyf = '胶轮' THEN '黑白轮转'
                           WHEN cyf = '彩平' THEN '彩色平版'
                           WHEN cyf = '胶平' THEN '黑白平版'
                           ELSE NULL
                         END 分类,
                         cl.色令 
                         
                  FROM   (SELECT IFnull(Sum(dx.NYSSL), 0) AS 色令,
                                  
                                 CASE
                                       WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                       WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                            OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                            OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                            OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                            OR CYWDWMC='浙江省新华书店集团有限公司'
                                            OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                            OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                       WHEN CYWDWMC='浙江日报报业集团' 
                                            OR CYWDWMC='共产党员杂志社'
                                            OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                       WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                            OR CYWDWMC='浙江出版传媒有限公司'
                                            OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                       WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                       WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                            OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                       WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                       WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                       WHEN CYWDWMC='上海人民出版社有限公司'
                                            OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                       WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                            OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                       WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                       WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                       WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                       WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                       WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                       WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                       WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                       WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                       WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                       WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                       WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                       WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                            OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                       WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                       WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                       WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                       ELSE CYWDWMC
                                      END                            AS  CYWDWMC,
                                 dx.CYF
                          FROM   MCYD cyd
                                 LEFT JOIN SCYDDX DX
                                        ON cyd.ICYDID = dx.ICYDID
                          WHERE  cyd.ICYDSTATE > 0
                                 AND cyd.icydid > 0
                                 AND CYF IN( '彩轮', '彩平', '胶平', '胶轮' )
                                 AND cyd.cyjlx <> '数字产品'
                                 AND cyd.chy <> '集团教材外'
                                 AND CONVERT(DCYRQ,CHAR(10)) >= '{$this->start_time()}'
                                 AND CONVERT(DCYRQ,CHAR(10)) <= '{$this->end_time()}'
                          GROUP  BY cyd.CYWDWMC,
                                    CYF) cl)bb
              ON cc.客户 = bb.CYWDWMC

";
        $result=Db::query($sql);
        $redis->set($redis_key, json_encode($result));
        echo date("Y-m-d H:i:s").'   存进去了';
        return $result;
    }
    //年度承揽收入前五客户业务结构分析->接口
    public function year_salewcl_sssss(){
        $redis = redis();
        $results = json_decode($redis->get(md5('chenglanshouru_redis')), true);
        // 用于存储合并后数据的新数组
        $mergedData = [];
        // 遍历原始数组
        foreach ($results as $item) {
            // 使用 "khmc" 和 "fl" 作为合并的键
            $khmc = $item["客户"];
            $fl = $item["分类"];
            // 构建合并后数组的键
            $key = $khmc . "|" . $fl;

            // 如果已经存在该 "khmc" 和 "fl" 的条目,则将数量相加
            if (isset($mergedData[$key])) {
                $mergedData[$key]["色令"] += $item["色令"];
            } else {
                // 否则,创建一个新条目
                $mergedData[$key] = $item;
            }
        }

        // 将合并后数组转换回原始格式
        $result = array_values($mergedData);
        $list['columns'] = [
            ['name' => '客户', 'id' => 'khmc', 'width' => '50', 'autoWrap' => "true", 'textAlign' => 'left'],
            ['name' => '总册数(万)', 'id' => 'zcs', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
            ['name' => '销售收入(万元)', 'id' => 'xsss', 'width' => '20', 'autoWrap' => "true", 'textAlign' => 'center'],

            ['name' => '类别', 'id' => 'fl', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
            ['name' => '色令(万)', 'id' => 'sl', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
        ];
        $selectedRows = [];
        if(empty($result)) {
            $list['rows'][] = [
                'khmc' => '',
                'zcs' => '',
                'xsss' =>'',
                'yf' => '',
                'fl' => '',
                'sl' => '',
            ];
            $selectedRows = $list['rows'];
        }else{
            foreach ($result as $v) {
                $selectedRows[] = [
                    'khmc' => $v['客户'],
                    'zcs' => number_format($v['总册数'] /10000,2),
                    'xsss' => $v['销售收入(万元)'],
                    'yf' => $v['印法'],
                    'fl' => $v['分类'],
                    'sl' => number_format($v['色令'] /10000,2),
                ];
            }
        }


        $res = [
            'status' => 0,
            'msg' => '',
            'data' => ['columns' => $list['columns'], 'rows' => $selectedRows],
        ];
        return json($res);
    }

    //年度承揽收入前五客户业务结构分析->缓存
    public function chenglanshouru_redis(){
//        $kais = explode(" ", $this->start_time());
//        $jies = explode(" ", $this->end_time());
//        $kai = $kais[0];
//        $jie = $jies[0];
        $kai = date('Y-m-d',strtotime('-1 year'));
        $jie = date('Y-m-d');
        $redis = redis();
        $redis_key = md5('chenglanshouru_redis');
        $sql = "SELECT  *  FROM (
SELECT bb.分类,
			ROW_NUMBER() OVER (PARTITION BY bb.分类  ORDER BY bb.色令 DESC) AS 排名,
       cc.客户,
       cast( bb.色令 as decimal(18,0)) 色令,
       cc.印数    AS                      总册数,
       cc.销售收入(万元),
       bb.印法
FROM   (SELECT aa.客户,

                     aa.印数,
                     Cast(aa.销售收入 AS DECIMAL(18, 2)) AS '销售收入(万元)'
        FROM   (SELECT zb.业务单位                             客户, 
                       Sum(zb.印数)                          印数,
                       IFnull(Sum(zb.合并金额), 0.000) / 10000 销售收入
                FROM   (SELECT CASE
                 WHEN IFnull(ldz, 0) = 1 THEN '是'
                 ELSE '否'
               END                           登账,
               CONVERT( DCYRQ, CHAR(10)) AS 承印日期,
               CCYDH                         AS 订单号,
               ord.IFCYDID,
               CYJMC                         AS 印件名称,
							 CASE
                                       WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                       WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                            OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                            OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                            OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                            OR CYWDWMC='浙江省新华书店集团有限公司'
                                            OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                            OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                       WHEN CYWDWMC='浙江日报报业集团' 
                                            OR CYWDWMC='共产党员杂志社'
                                            OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                       WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                            OR CYWDWMC='浙江出版传媒有限公司'
                                            OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                       WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                       WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                            OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                       WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                       WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                       WHEN CYWDWMC='上海人民出版社有限公司'
                                            OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                       WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                            OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                       WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                       WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                       WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                       WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                       WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                       WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                       WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                       WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                       WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                       WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                       WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                       WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                            OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                       WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                       WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                       WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                       ELSE CYWDWMC
                                      END                            AS 业务单位,
               cyjlx                         印件类型,
               
               NCS                           AS 印数,
               CZWKB                         AS 开本,
               CDF                           AS 订法,
               NZWYZ                         AS 正文印张,
               CASE
                 WHEN IFnull(ldz, 0) = 0 THEN( IFnull(nwshjje, 0) )
                 ELSE ( IFnull(tj.sum_namount, 0) )
               END                           合并金额
        FROM   MCYD Ord
              
               LEFT JOIN (SELECT Sum(namount)                                              AS sum_namount,
                                 Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
                                 iCydid,
                                 CASE
                                   WHEN ldz = 1 THEN 1
                                   ELSE 0
                                 END                                                       ldz
                          FROM   TJob
                          WHERE  lzfbs = 0
                          GROUP  BY iCydid,
                                    nclje,
                                    itax,
                                    ldz) tj
                      ON ord.ICYDID = tj.iCydid
        WHERE  ord.ICYDSTATE > 0) zb
WHERE  CONVERT(zb.承印日期, CHAR(10)) >= '{$kai}'
                       AND CONVERT(zb.承印日期,CHAR(10)) <= '{$jie}'
       
GROUP  BY zb.业务单位 ) aa
        ORDER  BY aa.销售收入 DESC LIMIT 20)cc
       LEFT JOIN (SELECT CYWDWMC,
                         CYF 印法,
                         CASE
                           WHEN cyf = '彩轮' THEN '彩色轮转'
                           WHEN cyf = '胶轮' THEN '黑白轮转'
                           WHEN cyf = '彩平' THEN '彩色平版'
                           WHEN cyf = '胶平' THEN '黑白平版'
                           ELSE NULL
                         END 分类,
                         cl.色令
                  FROM   (SELECT IFnull(Sum(dx.NYSSL), 0) AS 色令,
                                  CASE
                                       WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                       WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                            OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                            OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                            OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                            OR CYWDWMC='浙江省新华书店集团有限公司'
                                            OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                            OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                       WHEN CYWDWMC='浙江日报报业集团' 
                                            OR CYWDWMC='共产党员杂志社'
                                            OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                       WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                            OR CYWDWMC='浙江出版传媒有限公司'
                                            OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                       WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                       WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                            OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                       WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                       WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                            OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                       WHEN CYWDWMC='上海人民出版社有限公司'
                                            OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                       WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                            OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                       WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                       WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                       WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                       WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                       WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                       WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                       WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                       WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                       WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                       WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                       WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                       WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                            OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                       WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                       WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                       WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                       ELSE CYWDWMC
                                      END                            AS CYWDWMC,
                                 dx.CYF
                          FROM   MCYD cyd
                                 LEFT JOIN SCYDDX DX
                                        ON cyd.ICYDID = dx.ICYDID
                          WHERE  cyd.ICYDSTATE > 0
                                 AND cyd.icydid > 0
                                 AND CYF IN( '彩轮', '彩平', '胶平', '胶轮' )
                                 AND cyd.cyjlx <> '数字产品'
                                 AND cyd.chy <> '集团教材外'
                                 AND CONVERT(DCYRQ,CHAR(10)) >= '{$kai}'
                                 AND CONVERT(DCYRQ,CHAR(10)) <= '{$jie}'
                          GROUP  BY cyd.CYWDWMC,
                                    CYF) cl)bb
              ON cc.客户 = bb.CYWDWMC 
)
hb
WHERE hb.排名<=5 
-- and hb.客户='浙江出版传媒股份有限公司(含省出版公司)'
GROUP BY hb.分类,hb.排名, hb.客户,HB.色令,hb.总册数,hb.销售收入(万元),hb.印法
ORDER BY hb.分类,hb.排名 ";
        $result=Db::query($sql);
        $redis->set($redis_key, json_encode($result));
        echo date("Y-m-d H:i:s").'   存进去了';
        return $result;
    }
    //年度承揽收入前五客户业务结构分析->接口
    public function year_salewcl(){
        $redis = redis();
        $results = json_decode($redis->get(md5('chenglanshouru_redis')), true);
        $list['columns'] = [
            ['name' => '分类', 'id' => 'fl', 'width' => '17', 'autoWrap' => "true", 'textAlign' => 'center'],
            ['name' => '排名', 'id' => 'pm', 'width' => '11', 'autoWrap' => "true", 'textAlign' => 'center'],
            ['name' => '客户', 'id' => 'khmc', 'width' => '40', 'autoWrap' => "true", 'textAlign' => 'left'],
            ['name' => '总册数(万)', 'id' => 'zcs', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'center'],
            ['name' => '销售收入(万元)', 'id' => 'xsss', 'width' => '20', 'autoWrap' => "true", 'textAlign' => 'center'],
            ['name' => '色令(万)', 'id' => 'sl', 'width' => '15', 'autoWrap' => "true", 'textAlign' => 'center'],
        ];
        $selectedRows = [];
        if(empty($results)) {
            $list['rows'][] = [
                'fl' => '',
                'pm' =>'',
                'khmc' => '',
                'sl' => '',
                'zcs' => '',
                'xsss' =>'',
//                'yf' => '',
            ];
            $selectedRows = $list['rows'];
        }else{
            foreach ($results as $v) {
                $selectedRows[] = [
                    'fl' => $v['分类'],
                    'pm' => $v['排名'],
                    'khmc' => $v['客户'],
                    'sl' => number_format($v['色令'] /10000,2),
                    'zcs' => number_format($v['总册数'] /10000,2),
                    'xsss' => $v['销售收入(万元)'],
                    'yf' => $v['印法'],
                ];
            }
        }
        $res = [
            'status' => 0,
            'msg' => '',
            'data' => ['columns' => $list['columns'], 'rows' => $selectedRows],
        ];
        return json($res);
    }

    //年度考核毛利收入同比上升和下滑一览表->缓存
    public function year_profit_redis(){
        $redis = redis();
        $redis_key = md5('year_profit_redis');
        $januaryFirst = date('Y-01-01');
        $today = date('Y-m-d');
        $sql = "SELECT aa.客户,
        aa.考核计算毛利(万元),
        aa.考核计算毛利增减(万元),
        CASE
          WHEN IFNULL(aa.上年考核计算毛利(万元), 0) = 0 THEN 'New'
          ELSE Ltrim(Cast( aa.考核计算毛利增减(万元)*100/aa.上年考核计算毛利(万元) AS DECIMAL(10, 2)))
               + '%'
        END AS 毛利增长率
 FROM   (SELECT a.客户,
                CONVERT(Round(a.销售收入 / 10000, 2),DECIMAL(10, 2))    AS '销售收入(万元)',
                CONVERT(Round(a.上年销售收入 / 10000, 2),DECIMAL(10, 2))  AS '上年销售收入(万元)',
                CONVERT(Round(a.销售收入增减 / 10000, 2),DECIMAL(10, 2))  AS '销售收入增减(万元)',
                CONVERT(Round(a.销售工价 / 10000, 2),DECIMAL(10, 2))    AS '销售工价(万元)',
                CONVERT(Round(a.上年销售工价 / 10000, 2),DECIMAL(10, 2))  AS '上年销售工价(万元)',
                CONVERT(Round(a.销售工价增减 / 10000, 2),DECIMAL(10, 2))  AS '销售工价增减(万元)',
                CONVERT(Round(a.考核计算毛利 / 10000, 2),DECIMAL(10, 2))  AS '考核计算毛利(万元)',
                CONVERT(Round(a.上年考核计算毛利 / 10000, 2),DECIMAL(10, 2))AS '上年考核计算毛利(万元)',
                CONVERT(Round(a.考核计算毛利增减 / 10000, 2),DECIMAL(10, 2))AS '考核计算毛利增减(万元)'
         FROM   ((SELECT 1                                                   AS flag,
                        IFNULL(dq.业务单位, hb.业务单位)                            客户,
                        IFNULL(dq.销售收入, 000)                                销售收入,
                        IFNULL(hb.上年销售收入, 0.000)                            上年销售收入,
                        IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000)     销售收入增减,
                        CASE
                          WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
                          WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
                               AND IFNULL(dq.销售收入, 000) > 0 THEN 1
                          ELSE 0
                        END                                                 AS 销售收入同期比,
                        IFNULL(dq.销售工价, 000)                                销售工价,
                        IFNULL(hb.上年销售工价, 0.000)                            上年销售工价,
                        IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000)     销售工价增减,
                        IFNULL(dq.考核计算毛利, 000)                              考核计算毛利,
                        IFNULL(hb.上年考核计算毛利, 0.000)                          上年考核计算毛利,
                        IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
                        CASE
                          WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
                          WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
                               AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
                          ELSE 0
                        END                                                 AS 毛利同期比
                 FROM   (SELECT zb.业务单位                            业务单位,
                                IFNULL(Sum(zb.合并金额), 0.000)        销售收入,
                                IFNULL(Sum(zb.合并工价), 0.000)        销售工价,
                                IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
                         FROM   (SELECT CASE
                                          WHEN IFNULL(ldz, 0) = 1 THEN '是'
                                          ELSE '否'
                                        END                                                                登账,
                                        CONVERT(DCYRQ,CHAR(10))                                      AS 承印日期,
                                        CCYDH                                                              AS 订单号,
                                        CYJMC                                                              AS 印件名称,
                                        CASE
                                        WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                        WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                             OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                             OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司'
                                             OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                             OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                        WHEN CYWDWMC='浙江日报报业集团' 
                                             OR CYWDWMC='共产党员杂志社'
                                             OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                             OR CYWDWMC='浙江出版传媒有限公司'
                                             OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                        WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                             OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                        WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                        WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                        WHEN CYWDWMC='上海人民出版社有限公司'
                                             OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                        WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                             OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                        WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                        WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                        WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                        WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                        WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                        WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                        WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                        WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                        WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                        WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                        WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                             OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                        WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                        WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                        ELSE CYWDWMC
                                       END                                                            AS 业务单位,
                                        cyjlx                                                              印件类型,
                                        NCS                                                                AS 印数,
                                        CZWKB                                                              AS 开本,
                                        CDF                                                                AS 订法,
                                        NZWYZ                                                              AS 正文印张,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
                                          ELSE
                                            CASE
                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                   + CASE
                                                       WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                       ELSE ( CASE
                                                                WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                ELSE ( CASE
                                                                         WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                         ELSE IFNULL(tj.sum_clje, 0)
                                                                       END )
                                                              END )
                                                     END = 0
                                                   AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                              ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                 + CASE
                                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                     ELSE ( CASE
                                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                              ELSE ( CASE
                                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                                     END )
                                                                                            END )
                                                                                   END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                            END
                                        END                                                                AS 考核计算毛利不含税,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
                                          ELSE
                                            CASE
                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                   AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                              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)
                                            END
                                        END                                                                AS 考核计算工价毛利不含税,
                                        ( CASE
                                            WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
                                            ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
                                                                                WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                ELSE ( CASE
                                                                                         WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                         ELSE ( CASE
                                                                                                  WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                  ELSE IFNULL(tj.sum_clje, 0)
                                                                                                END )
                                                                                       END )
                                                                              END ) - IFNULL(tb_out.sum_nclje_out, 0) )
                                          END )                                                            AS 考核计算料价毛利不含税,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
                                          ELSE ( IFNULL(tj.sum_namount, 0) )
                                        END                                                                合并金额,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
                                          ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
                                        END                                                                合并工价,
                                        ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )                      AS 采购毛利不含税,
                                        ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )                      AS 采购工价毛利不含税,
                                        ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )                      AS 采购料价毛利不含税,
                                        IFNULL(nwshjje, 0)                                                 AS 合同总金额不含税,
                                        IFNULL(nwsgjhj, 0)                                                 AS 合同工价不含税,
                                        IFNULL(nwsclhj, 0)                                                 AS 合同材料不含税,
                                        IFNULL(nwsbzhjje, 0)                                               AS 标准总金额不含税,
                                        IFNULL(nwsbzgjhj, 0)                                               AS 标准工价不含税,
                                        IFNULL(nwsbzclhj, 0)                                               AS 标准料价不含税,
                                        ord.nzkl                                                           AS 折扣率,
                                        CASE
                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                          ELSE ( CASE
                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                        + CASE
                                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                            ELSE ( CASE
                                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                     ELSE ( CASE
                                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                                            END )
                                                                   END )
                                                          END = 0
                                                        AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                   ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                      + CASE
                                                                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                          ELSE ( CASE
                                                                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                   ELSE ( CASE
                                                                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                                                                          END )
                                                                                                 END )
                                                                                        END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                 END )
                                        END                                                                AS 生产毛利不含税,
                                        CASE
                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                          ELSE ( CASE
                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                        AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                                   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)
                                                 END )
                                        END                                                                AS 生产工价毛利不含税,
                                        IFNULL(tj.sum_clje, 0) - ( CASE
                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                     ELSE ( CASE
                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                              ELSE ( CASE
                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                     END )
                                                                            END )
                                                                   END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
                                        IFNULL(tj.sum_namount, 0)                                          AS 订单计价金额不含税,
                                        IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0)                 AS 订单计价工价不含税,
                                        IFNULL(tj.sum_clje, 0)                                             AS 订单计价料价不含税,
                                        IFNULL(tb_in.sum_ngjje_in, 0)
                                        + CASE
                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                            ELSE ( CASE
                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                     ELSE ( CASE
                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                            END )
                                                   END )
                                          END                                                              AS 厂内传票合计不含税,
                                        IFNULL(tb_in.sum_ngjje_in, 0)                                      AS 厂内传票工价不含税,
                                        CASE
                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                          ELSE ( CASE
                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                   ELSE ( CASE
                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                          END )
                                                 END )
                                        END                                                                AS 厂内传票料价不含税,
                                        IFNULL(tb_out.sum_nhjje_out, 0)                                    AS 发外传票合计不含税,
                                        IFNULL(tb_out.sum_ngjje_out, 0)                                    AS 发外传票工价不含税,
                                        IFNULL(tb_out.sum_nclje_out, 0)                                    AS 发外传票料价不含税,
                                        CHY                                                                AS 活源,
                                        CCLBMMC                                                            AS 承揽部门,
                                        CYWYXM                                                             AS 业务员,
                                        lwcbs                                                              AS 是否完工,
                                        Dwcrq                                                              AS 完工日期,
                                        CONVERT(djfrq,CHAR(10))                                      AS 交付日期,
                                        LJQBS                                                              AS 是否结清,
                                        djqrq                                                              AS 结清日期,
                                        izlconfirm                                                         AS 是否销货,
                                        dzlconfirmrq                                                       AS 销货日期,
                                        nzlconfirmje                                                       AS 销货金额,
                                        nzlysje                                                            AS 销货应收,
                                        IFNULL(ipaytime, 0)                                                AS 帐龄,
                                        ( CASE
                                            WHEN ljqbs = 0
                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
                                            ELSE 0
                                          END )                                                            AS 付款周期,
                                        ( CASE
                                            WHEN ljqbs = 0
                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
                                            ELSE 0
                                          END )                                                            AS 过期天数,
                                        ( CASE
                                            WHEN bsfsk = 1 THEN 1
                                            ELSE 0
                                          END )                                                            AS 是否收款,
                                        nysje                                                              AS 预收款,
                                        fskje                                                              AS 收款金额,
                                        ( CASE
                                            WHEN bsfdjfp = 1 THEN 1
                                            ELSE 0
                                          END )                                                            AS '是否开票',
                                        ffpje                                                              AS 发票金额,
                                        cfph                                                               AS 发票号,
                                        cfprq                                                              AS 发票日期,
                                        ( CASE
                                            WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                            ELSE 0
                                          END )                                                            AS 未开完票金额,
                                        ( CASE
                                            WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
                                            ELSE 0
                                          END )                                                            AS 发票未收款金额,
                                        iselforder                                                         AS 是否异常,
                                        cselftype                                                          AS 异常类型,
                                        CASE
                                          WHEN bsfdjfp = 1 THEN ( CASE
                                                                    WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                                                    ELSE 0
                                                                  END )
                                          ELSE ( CASE
                                                   WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
                                                   ELSE ( CASE
                                                            WHEN nzlconfirmje = 0 THEN nhjje
                                                            ELSE nzlconfirmje
                                                          END )
                                                 END )
                                        END                                                                未开票
                                 FROM   MCYD Ord
                                        LEFT JOIN (SELECT Sum(CASE
                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                ELSE hz.传票预计价
                                                              END) AS sum_nhjje_in,
                                                          Sum(CASE
                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                ELSE hz.传票预计价
                                                              END) AS sum_ngjje_in,
                                                          Sum(CASE
                                                                WHEN hz.dz = 1 THEN hz.nclje
                                                                ELSE hz.nclje
                                                              END) AS sum_nclje_in,
                                                          hz.ICYDID
                                                   FROM   (SELECT yjj.传票预计价单号,
                                                                  IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                  yjj.iCYDID,
                                                                  d.cjjdh               计价单号,
                                                                  d.ccydh               订单号,
                                                                  d.cbz                 备注,
                                                                  d.ngjje,
                                                                  d.nclje,
                                                                  IFNULL(d.iwjg, 0)     iwjg,
                                                                  IFNULL(d.lzfbs, 0)    lzfbs,
                                                                  d.nhjje,
                                                                  IFNULL(d.ldz, 0)      dz,
                                                                  yjj.bShbz
                                                           FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                          a.ccydh,
                                                                          a.icydid,
                                                                          Sum(c.fje) 传票预计价,
                                                                          b.bshbz
                                                                   FROM   MCYD a
                                                                          LEFT JOIN sccp b
                                                                                 ON a.icydid = b.icydid
                                                                          LEFT JOIN ZbHjXm c
                                                                                 ON c.sccpid = b.sccpid
                                                                   WHERE  b.bOutProcess = '0 '
                                                                   GROUP  BY b.csccpbh,
                                                                             a.icydid,
                                                                             a.CCYDH,
                                                                             b.bshbz,
                                                                             b.bOutProcess) yjj
                                                                  LEFT JOIN tbluey d
                                                                         ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                   WHERE  hz.iwjg = 0
                                                          AND hz.bshbz = 1
                                                          AND hz.lzfbs = 0
                                                   GROUP  BY hz.ICYDID) tb_in
                                               ON ord.icydid = tb_in.iCydid
                                        LEFT JOIN (SELECT fw.iCYDID,
                                                          sum_nhjje_out,
                                                          sum_ngjje_out,
                                                          sum_nclje_out,
                                                          bz.cbz
                                                   FROM   (SELECT Cast(Sum(( CASE
                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                               ELSE hz.nhjje
                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
                                                                  Cast(Sum(( CASE
                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                               ELSE hz.nhjje
                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
                                                                  Cast(Sum(CASE
                                                                             WHEN hz.dz = 0 THEN hz.nclje
                                                                             ELSE hz.nclje
                                                                           END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2))     AS sum_nclje_out,
                                                                  iCydid
                                                           FROM   (SELECT yjj.传票预计价单号,
                                                                          IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                          yjj.iCYDID,
                                                                          d.cjjdh               计价单号,
                                                                          d.ccydh               订单号,
                                                                          d.cbz                 备注,
                                                                          d.ngjje,
                                                                          d.nclje,
                                                                          d.itax,
                                                                          IFNULL(d.iwjg, 0)     iwjg,
                                                                          IFNULL(d.lzfbs, 0)    lzfbs,
                                                                          d.nhjje,
                                                                          IFNULL(d.ldz, 0)      dz,
                                                                          yjj.bShbz
                                                                   FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                  a.ccydh,
                                                                                  a.icydid,
                                                                                  Sum(c.fje) 传票预计价,
                                                                                  b.bshbz
                                                                           FROM   MCYD a
                                                                                  LEFT JOIN sccp b
                                                                                         ON a.icydid = b.icydid
                                                                                  LEFT JOIN ZbHjXm c
                                                                                         ON c.sccpid = b.sccpid
                                                                           WHERE  b.bOutProcess = '1 '
                                                                           GROUP  BY b.csccpbh,
                                                                                     a.icydid,
                                                                                     a.CCYDH,
                                                                                     b.bshbz,
                                                                                     b.bOutProcess) yjj
                                                                          LEFT JOIN tbluey d
                                                                                 ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                           WHERE  hz.iwjg = 1
                                                                  AND hz.lzfbs = 0
                                                           GROUP  BY hz.ICYDID) fw
                                                          LEFT JOIN (SELECT icydid,
                                                                           (SELECT GROUP_CONCAT(cbz) FROM   TBluey
                                                                             WHERE  icydid = a.icydid) AS cbz
                                                                     FROM   TBluey a
                                                                     GROUP  BY icydid) bz
                                                                 ON bz.icydid = fw.iCYDID) tb_out
                                               ON ord.icydid = tb_out.iCydid
                                        LEFT JOIN (SELECT Sum(namount)                                              AS sum_namount,
                                                          Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
                                                          iCydid,
                                                          CASE
                                                            WHEN ldz = 1 THEN 1
                                                            ELSE 0
                                                          END                                                       ldz
                                                   FROM   TJob
                                                   WHERE  lzfbs = 0
                                                   GROUP  BY iCydid,
                                                             nclje,
                                                             itax,
                                                             ldz) tj
                                               ON ord.ICYDID = tj.iCydid
                                 WHERE  ord.ICYDSTATE > 0
                                        AND 1 = 1) zb
                         WHERE  CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
                                AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
                         GROUP  BY zb.业务单位) dq
                       LEFT JOIN (SELECT zb1.业务单位,
                                                Sum(zb1.合并金额)       上年销售收入,
                                                Sum(zb1.合并工价)       上年销售工价,
                                                Sum(zb1.考核计算毛利不含税)上年考核计算毛利
                                         FROM   (SELECT CASE
                                                          WHEN IFNULL(ldz, 0) = 1 THEN '是'
                                                          ELSE '否'
                                                        END                                                                登账,
                                                        CONVERT(DCYRQ, CHAR(10))                                      AS 承印日期,
                                                        CCYDH                                                              AS 订单号,
                                                        CYJMC                                                              AS 印件名称,
                                                        CASE
                                        WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                        WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                             OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                             OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司'
                                             OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                             OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                        WHEN CYWDWMC='浙江日报报业集团' 
                                             OR CYWDWMC='共产党员杂志社'
                                             OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                             OR CYWDWMC='浙江出版传媒有限公司'
                                             OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                        WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                             OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                        WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                        WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                        WHEN CYWDWMC='上海人民出版社有限公司'
                                             OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                        WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                             OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                        WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                        WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                        WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                        WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                        WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                        WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                        WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                        WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                        WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                        WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                        WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                             OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                        WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                        WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                        ELSE CYWDWMC
                                       END                                                            AS 业务单位,
                                                        cyjlx                                                              印件类型,
                                                        NCS                                                                AS 印数,
                                                        CZWKB                                                              AS 开本,
                                                        CDF                                                                AS 订法,
                                                        NZWYZ                                                              AS 正文印张,
                                                        cbz                                                                发外备注,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
                                                          ELSE
                                                            CASE
                                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                                   + CASE
                                                                       WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                       ELSE ( CASE
                                                                                WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                ELSE ( CASE
                                                                                         WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                         ELSE IFNULL(tj.sum_clje, 0)
                                                                                       END )
                                                                              END )
                                                                     END = 0
                                                                   AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                              ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                                 + CASE
                                                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                     ELSE ( CASE
                                                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                              ELSE ( CASE
                                                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                     END )
                                                                                                            END )
                                                                                                   END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                            END
                                                        END                                                                AS 考核计算毛利不含税,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
                                                          ELSE
                                                            CASE
                                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                                   AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                                              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)
                                                            END
                                                        END                                                                AS 考核计算工价毛利不含税,
                                                        ( CASE
                                                            WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
                                                            ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
                                                                                                WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                ELSE ( CASE
                                                                                                         WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                         ELSE ( CASE
                                                                                                                  WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                  ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                END )
                                                                                                       END )
                                                                                              END ) - IFNULL(tb_out.sum_nclje_out, 0) )
                                                          END )                                                            AS 考核计算料价毛利不含税,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
                                                          ELSE ( IFNULL(tj.sum_namount, 0) )
                                                        END                                                                合并金额,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
                                                          ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
                                                        END                                                                合并工价,
                                                        ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )                      AS 采购毛利不含税,
                                                        ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )                      AS 采购工价毛利不含税,
                                                        ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )                      AS 采购料价毛利不含税,
                                                        IFNULL(nwshjje, 0)                                                 AS 合同总金额不含税,
                                                        IFNULL(nwsgjhj, 0)                                                 AS 合同工价不含税,
                                                        IFNULL(nwsclhj, 0)                                                 AS 合同材料不含税,
                                                        IFNULL(nwsbzhjje, 0)                                               AS 标准总金额不含税,
                                                        IFNULL(nwsbzgjhj, 0)                                               AS 标准工价不含税,
                                                        IFNULL(nwsbzclhj, 0)                                               AS 标准料价不含税,
                                                        ord.nzkl                                                           AS 折扣率,
                                                        CASE
                                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                                          ELSE ( CASE
                                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                                        + CASE
                                                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                            ELSE ( CASE
                                                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                     ELSE ( CASE
                                                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                                                            END )
                                                                                   END )
                                                                          END = 0
                                                                        AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                                   ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                                      + CASE
                                                                                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                          ELSE ( CASE
                                                                                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                                   ELSE ( CASE
                                                                                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                          END )
                                                                                                                 END )
                                                                                                        END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                                 END )
                                                        END                                                                AS 生产毛利不含税,
                                                        CASE
                                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                                          ELSE ( CASE
                                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                                        AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                                                   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)
                                                                 END )
                                                        END                                                                AS 生产工价毛利不含税,
                                                        IFNULL(tj.sum_clje, 0) - ( CASE
                                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                     ELSE ( CASE
                                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                              ELSE ( CASE
                                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                                     END )
                                                                                            END )
                                                                                   END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
                                                        IFNULL(tj.sum_namount, 0)                                          AS 订单计价金额不含税,
                                                        IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0)                 AS 订单计价工价不含税,
                                                        IFNULL(tj.sum_clje, 0)                                             AS 订单计价料价不含税,
                                                        IFNULL(tb_in.sum_ngjje_in, 0)
                                                        + CASE
                                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                            ELSE ( CASE
                                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                     ELSE ( CASE
                                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                                            END )
                                                                   END )
                                                          END                                                              AS 厂内传票合计不含税,
                                                        IFNULL(tb_in.sum_ngjje_in, 0)                                      AS 厂内传票工价不含税,
                                                        CASE
                                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                          ELSE ( CASE
                                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                   ELSE ( CASE
                                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                                          END )
                                                                 END )
                                                        END                                                                AS 厂内传票料价不含税,
                                                        IFNULL(tb_out.sum_nhjje_out, 0)                                    AS 发外传票合计不含税,
                                                        IFNULL(tb_out.sum_ngjje_out, 0)                                    AS 发外传票工价不含税,
                                                        IFNULL(tb_out.sum_nclje_out, 0)                                    AS 发外传票料价不含税,
                                                        CHY                                                                AS 活源,
                                                        CCLBMMC                                                            AS 承揽部门,
                                                        CYWYXM                                                             AS 业务员,
                                                        lwcbs                                                              AS 是否完工,
                                                        Dwcrq                                                              AS 完工日期,
                                                        CONVERT(djfrq,CHAR(10))                                      AS 交付日期,
                                                        LJQBS                                                              AS 是否结清,
                                                        djqrq                                                              AS 结清日期,
                                                        izlconfirm                                                         AS 是否销货,
                                                        dzlconfirmrq                                                       AS 销货日期,
                                                        nzlconfirmje                                                       AS 销货金额,
                                                        nzlysje                                                            AS 销货应收,
                                                        IFNULL(ipaytime, 0)                                                AS 帐龄,
                                                        ( CASE
                                                            WHEN ljqbs = 0
                                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
                                                            ELSE 0
                                                          END )                                                            AS 付款周期,
                                                        ( CASE
                                                            WHEN ljqbs = 0
                                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
                                                            ELSE 0
                                                          END )                                                            AS 过期天数,
                                                        ( CASE
                                                            WHEN bsfsk = 1 THEN 1
                                                            ELSE 0
                                                          END )                                                            AS 是否收款,
                                                        nysje                                                              AS 预收款,
                                                        fskje                                                              AS 收款金额,
                                                        ( CASE
                                                            WHEN bsfdjfp = 1 THEN 1
                                                            ELSE 0
                                                          END )                                                            AS '是否开票',
                                                        ffpje                                                              AS 发票金额,
                                                        cfph                                                               AS 发票号,
                                                        cfprq                                                              AS 发票日期,
                                                        ( CASE
                                                            WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                                            ELSE 0
                                                          END )                                                            AS 未开完票金额,
                                                        ( CASE
                                                            WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
                                                            ELSE 0
                                                          END )                                                            AS 发票未收款金额,
                                                        iselforder                                                         AS 是否异常,
                                                        cselftype                                                          AS 异常类型,
                                                        CASE
                                                          WHEN bsfdjfp = 1 THEN ( CASE
                                                                                    WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                                                                    ELSE 0
                                                                                  END )
                                                          ELSE ( CASE
                                                                   WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
                                                                   ELSE ( CASE
                                                                            WHEN nzlconfirmje = 0 THEN nhjje
                                                                            ELSE nzlconfirmje
                                                                          END )
                                                                 END )
                                                        END                                                                未开票
                                                 FROM   MCYD Ord
                                                        LEFT JOIN (SELECT ICYDID,
                                                                          Max(Nsc) AS Nsc
                                                                   FROM   SCYDDX
                                                                   WHERE  IDXLXID = 573
                                                                   GROUP  BY ICYDID) AS Obj
                                                               ON ord.ICYDID = Obj.ICYDID
                                                        LEFT JOIN (SELECT ICYDID,
                                                                          Sum(NYSLS) AS nysls,
                                                                          Sum(nyssl) AS nyssl,
                                                                          Sum(nsyl)  AS nsyl
                                                                   FROM   SCYDDX
                                                                   GROUP  BY ICYDID) AS ObjMatier
                                                               ON Ord.ICYDID = ObjMatier.ICYDID
                                                        LEFT JOIN (SELECT Sum(CASE
                                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                                ELSE hz.传票预计价
                                                                              END) AS sum_nhjje_in,
                                                                          Sum(CASE
                                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                                ELSE hz.传票预计价
                                                                              END) AS sum_ngjje_in,
                                                                          Sum(CASE
                                                                                WHEN hz.dz = 1 THEN hz.nclje
                                                                                ELSE hz.nclje
                                                                              END) AS sum_nclje_in,
                                                                          hz.ICYDID
                                                                   FROM   (SELECT yjj.传票预计价单号,
                                                                                  IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                                  yjj.iCYDID,
                                                                                  d.cjjdh               计价单号,
                                                                                  d.ccydh               订单号,
                                                                                  d.cbz                 备注,
                                                                                  d.ngjje,
                                                                                  d.nclje,
                                                                                  IFNULL(d.iwjg, 0)     iwjg,
                                                                                  IFNULL(d.lzfbs, 0)    lzfbs,
                                                                                  d.nhjje,
                                                                                  IFNULL(d.ldz, 0)      dz,
                                                                                  yjj.bShbz
                                                                           FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                          a.ccydh,
                                                                                          a.icydid,
                                                                                          Sum(c.fje) 传票预计价,
                                                                                          b.bshbz
                                                                                   FROM   MCYD a
                                                                                          LEFT JOIN sccp b
                                                                                                 ON a.icydid = b.icydid
                                                                                          LEFT JOIN ZbHjXm c
                                                                                                 ON c.sccpid = b.sccpid
                                                                                   WHERE  b.bOutProcess = '0 '
                                                                                   GROUP  BY b.csccpbh,
                                                                                             a.icydid,
                                                                                             a.CCYDH,
                                                                                             b.bshbz,
                                                                                             b.bOutProcess) yjj
                                                                                  LEFT JOIN tbluey d
                                                                                         ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                                   WHERE  hz.iwjg = 0
                                                                          AND hz.bshbz = 1
                                                                          AND hz.lzfbs = 0
                                                                   GROUP  BY hz.ICYDID) tb_in
                                                               ON ord.icydid = tb_in.iCydid
                                                        LEFT JOIN (SELECT fw.iCYDID,
                                                                          sum_nhjje_out,
                                                                          sum_ngjje_out,
                                                                          sum_nclje_out,
                                                                          bz.cbz
                                                                   FROM   (SELECT Cast(Sum(( CASE
                                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                                               ELSE hz.nhjje
                                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
                                                                                  Cast(Sum(( CASE
                                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                                               ELSE hz.nhjje
                                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
                                                                                  Cast(Sum(CASE
                                                                                             WHEN hz.dz = 0 THEN hz.nclje
                                                                                             ELSE hz.nclje
                                                                                           END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2))     AS sum_nclje_out,
                                                                                  iCydid
                                                                           FROM   (SELECT yjj.传票预计价单号,
                                                                                          IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                                          yjj.iCYDID,
                                                                                          d.cjjdh               计价单号,
                                                                                          d.ccydh               订单号,
                                                                                          d.cbz                 备注,
                                                                                          d.ngjje,
                                                                                          d.nclje,
                                                                                          d.itax,
                                                                                          IFNULL(d.iwjg, 0)     iwjg,
                                                                                          IFNULL(d.lzfbs, 0)    lzfbs,
                                                                                          d.nhjje,
                                                                                          IFNULL(d.ldz, 0)      dz,
                                                                                          yjj.bShbz
                                                                                   FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                                  a.ccydh,
                                                                                                  a.icydid,
                                                                                                  Sum(c.fje) 传票预计价,
                                                                                                  b.bshbz
                                                                                           FROM   MCYD a
                                                                                                  LEFT JOIN sccp b
                                                                                                         ON a.icydid = b.icydid
                                                                                                  LEFT JOIN ZbHjXm c
                                                                                                         ON c.sccpid = b.sccpid
                                                                                           WHERE  b.bOutProcess = '1 '
                                                                                           GROUP  BY b.csccpbh,
                                                                                                     a.icydid,
                                                                                                     a.CCYDH,
                                                                                                     b.bshbz,
                                                                                                     b.bOutProcess) yjj
                                                                                          LEFT JOIN tbluey d
                                                                                                 ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                                           WHERE  hz.iwjg = 1
                                                                                  AND hz.lzfbs = 0
                                                                           GROUP  BY hz.ICYDID) fw
                                                                          LEFT JOIN (SELECT icydid,
                                                                                            (SELECT GROUP_CONCAT(cbz) FROM   TBluey
                                                                                             WHERE  icydid = a.icydid) AS cbz
                                                                                     FROM   TBluey a
                                                                                     GROUP  BY icydid) bz
                                                                                 ON bz.icydid = fw.iCYDID) tb_out
                                                               ON ord.icydid = tb_out.iCydid
                                                        LEFT JOIN (SELECT Sum(namount)                                              AS sum_namount,
                                                                          Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
                                                                          iCydid,
                                                                          CASE
                                                                            WHEN ldz = 1 THEN 1
                                                                            ELSE 0
                                                                          END                                                       ldz
                                                                   FROM   TJob
                                                                   WHERE  lzfbs = 0
                                                                   GROUP  BY iCydid,
                                                                             nclje,
                                                                             itax,
                                                                             ldz) tj
                                                               ON ord.ICYDID = tj.iCydid
                                                 WHERE  ord.ICYDSTATE > 0
                                                        AND 1 = 1) zb1

                                            WHERE  CONVERT(zb1.承印日期,CHAR(10)) >= '2023-01-01'
                                                   AND CONVERT(zb1.承印日期,CHAR(10)) <= '2023-12-31'
                                         GROUP  BY zb1.业务单位) hb
                                     ON hb.业务单位 = dq.业务单位) UNION (SELECT 1                                                   AS flag,
                        IFNULL(dq.业务单位, hb.业务单位)                            客户,
                        IFNULL(dq.销售收入, 000)                                销售收入,
                        IFNULL(hb.上年销售收入, 0.000)                            上年销售收入,
                        IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000)     销售收入增减,
                        CASE
                          WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
                          WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
                               AND IFNULL(dq.销售收入, 000) > 0 THEN 1
                          ELSE 0
                        END                                                 AS 销售收入同期比,
                        IFNULL(dq.销售工价, 000)                                销售工价,
                        IFNULL(hb.上年销售工价, 0.000)                            上年销售工价,
                        IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000)     销售工价增减,
                        IFNULL(dq.考核计算毛利, 000)                              考核计算毛利,
                        IFNULL(hb.上年考核计算毛利, 0.000)                          上年考核计算毛利,
                        IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
                        CASE
                          WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
                          WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
                               AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
                          ELSE 0
                        END                                                 AS 毛利同期比
                 FROM   (SELECT zb.业务单位                            业务单位,
                                IFNULL(Sum(zb.合并金额), 0.000)        销售收入,
                                IFNULL(Sum(zb.合并工价), 0.000)        销售工价,
                                IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
                         FROM   (SELECT CASE
                                          WHEN IFNULL(ldz, 0) = 1 THEN '是'
                                          ELSE '否'
                                        END                                                                登账,
                                        CONVERT(DCYRQ,CHAR(10))                                      AS 承印日期,
                                        CCYDH                                                              AS 订单号,
                                        CYJMC                                                              AS 印件名称,
                                        CASE
                                        WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                        WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                             OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                             OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司'
                                             OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                             OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                        WHEN CYWDWMC='浙江日报报业集团' 
                                             OR CYWDWMC='共产党员杂志社'
                                             OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                             OR CYWDWMC='浙江出版传媒有限公司'
                                             OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                        WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                             OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                        WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                        WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                        WHEN CYWDWMC='上海人民出版社有限公司'
                                             OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                        WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                             OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                        WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                        WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                        WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                        WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                        WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                        WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                        WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                        WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                        WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                        WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                        WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                             OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                        WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                        WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                        ELSE CYWDWMC
                                       END                                                            AS 业务单位,
                                        cyjlx                                                              印件类型,
                                        NCS                                                                AS 印数,
                                        CZWKB                                                              AS 开本,
                                        CDF                                                                AS 订法,
                                        NZWYZ                                                              AS 正文印张,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
                                          ELSE
                                            CASE
                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                   + CASE
                                                       WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                       ELSE ( CASE
                                                                WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                ELSE ( CASE
                                                                         WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                         ELSE IFNULL(tj.sum_clje, 0)
                                                                       END )
                                                              END )
                                                     END = 0
                                                   AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                              ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                 + CASE
                                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                     ELSE ( CASE
                                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                              ELSE ( CASE
                                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                                     END )
                                                                                            END )
                                                                                   END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                            END
                                        END                                                                AS 考核计算毛利不含税,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
                                          ELSE
                                            CASE
                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                   AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                              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)
                                            END
                                        END                                                                AS 考核计算工价毛利不含税,
                                        ( CASE
                                            WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
                                            ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
                                                                                WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                ELSE ( CASE
                                                                                         WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                         ELSE ( CASE
                                                                                                  WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                  ELSE IFNULL(tj.sum_clje, 0)
                                                                                                END )
                                                                                       END )
                                                                              END ) - IFNULL(tb_out.sum_nclje_out, 0) )
                                          END )                                                            AS 考核计算料价毛利不含税,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
                                          ELSE ( IFNULL(tj.sum_namount, 0) )
                                        END                                                                合并金额,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
                                          ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
                                        END                                                                合并工价,
                                        ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )                      AS 采购毛利不含税,
                                        ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )                      AS 采购工价毛利不含税,
                                        ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )                      AS 采购料价毛利不含税,
                                        IFNULL(nwshjje, 0)                                                 AS 合同总金额不含税,
                                        IFNULL(nwsgjhj, 0)                                                 AS 合同工价不含税,
                                        IFNULL(nwsclhj, 0)                                                 AS 合同材料不含税,
                                        IFNULL(nwsbzhjje, 0)                                               AS 标准总金额不含税,
                                        IFNULL(nwsbzgjhj, 0)                                               AS 标准工价不含税,
                                        IFNULL(nwsbzclhj, 0)                                               AS 标准料价不含税,
                                        ord.nzkl                                                           AS 折扣率,
                                        CASE
                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                          ELSE ( CASE
                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                        + CASE
                                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                            ELSE ( CASE
                                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                     ELSE ( CASE
                                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                                            END )
                                                                   END )
                                                          END = 0
                                                        AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                   ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                      + CASE
                                                                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                          ELSE ( CASE
                                                                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                   ELSE ( CASE
                                                                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                                                                          END )
                                                                                                 END )
                                                                                        END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                 END )
                                        END                                                                AS 生产毛利不含税,
                                        CASE
                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                          ELSE ( CASE
                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                        AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                                   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)
                                                 END )
                                        END                                                                AS 生产工价毛利不含税,
                                        IFNULL(tj.sum_clje, 0) - ( CASE
                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                     ELSE ( CASE
                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                              ELSE ( CASE
                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                     END )
                                                                            END )
                                                                   END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
                                        IFNULL(tj.sum_namount, 0)                                          AS 订单计价金额不含税,
                                        IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0)                 AS 订单计价工价不含税,
                                        IFNULL(tj.sum_clje, 0)                                             AS 订单计价料价不含税,
                                        IFNULL(tb_in.sum_ngjje_in, 0)
                                        + CASE
                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                            ELSE ( CASE
                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                     ELSE ( CASE
                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                            END )
                                                   END )
                                          END                                                              AS 厂内传票合计不含税,
                                        IFNULL(tb_in.sum_ngjje_in, 0)                                      AS 厂内传票工价不含税,
                                        CASE
                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                          ELSE ( CASE
                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                   ELSE ( CASE
                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                          END )
                                                 END )
                                        END                                                                AS 厂内传票料价不含税,
                                        IFNULL(tb_out.sum_nhjje_out, 0)                                    AS 发外传票合计不含税,
                                        IFNULL(tb_out.sum_ngjje_out, 0)                                    AS 发外传票工价不含税,
                                        IFNULL(tb_out.sum_nclje_out, 0)                                    AS 发外传票料价不含税,
                                        CHY                                                                AS 活源,
                                        CCLBMMC                                                            AS 承揽部门,
                                        CYWYXM                                                             AS 业务员,
                                        lwcbs                                                              AS 是否完工,
                                        Dwcrq                                                              AS 完工日期,
                                        CONVERT(djfrq,CHAR(10))                                      AS 交付日期,
                                        LJQBS                                                              AS 是否结清,
                                        djqrq                                                              AS 结清日期,
                                        izlconfirm                                                         AS 是否销货,
                                        dzlconfirmrq                                                       AS 销货日期,
                                        nzlconfirmje                                                       AS 销货金额,
                                        nzlysje                                                            AS 销货应收,
                                        IFNULL(ipaytime, 0)                                                AS 帐龄,
                                        ( CASE
                                            WHEN ljqbs = 0
                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
                                            ELSE 0
                                          END )                                                            AS 付款周期,
                                        ( CASE
                                            WHEN ljqbs = 0
                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
                                            ELSE 0
                                          END )                                                            AS 过期天数,
                                        ( CASE
                                            WHEN bsfsk = 1 THEN 1
                                            ELSE 0
                                          END )                                                            AS 是否收款,
                                        nysje                                                              AS 预收款,
                                        fskje                                                              AS 收款金额,
                                        ( CASE
                                            WHEN bsfdjfp = 1 THEN 1
                                            ELSE 0
                                          END )                                                            AS '是否开票',
                                        ffpje                                                              AS 发票金额,
                                        cfph                                                               AS 发票号,
                                        cfprq                                                              AS 发票日期,
                                        ( CASE
                                            WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                            ELSE 0
                                          END )                                                            AS 未开完票金额,
                                        ( CASE
                                            WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
                                            ELSE 0
                                          END )                                                            AS 发票未收款金额,
                                        iselforder                                                         AS 是否异常,
                                        cselftype                                                          AS 异常类型,
                                        CASE
                                          WHEN bsfdjfp = 1 THEN ( CASE
                                                                    WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                                                    ELSE 0
                                                                  END )
                                          ELSE ( CASE
                                                   WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
                                                   ELSE ( CASE
                                                            WHEN nzlconfirmje = 0 THEN nhjje
                                                            ELSE nzlconfirmje
                                                          END )
                                                 END )
                                        END                                                                未开票
                                 FROM   MCYD Ord
                                        LEFT JOIN (SELECT Sum(CASE
                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                ELSE hz.传票预计价
                                                              END) AS sum_nhjje_in,
                                                          Sum(CASE
                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                ELSE hz.传票预计价
                                                              END) AS sum_ngjje_in,
                                                          Sum(CASE
                                                                WHEN hz.dz = 1 THEN hz.nclje
                                                                ELSE hz.nclje
                                                              END) AS sum_nclje_in,
                                                          hz.ICYDID
                                                   FROM   (SELECT yjj.传票预计价单号,
                                                                  IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                  yjj.iCYDID,
                                                                  d.cjjdh               计价单号,
                                                                  d.ccydh               订单号,
                                                                  d.cbz                 备注,
                                                                  d.ngjje,
                                                                  d.nclje,
                                                                  IFNULL(d.iwjg, 0)     iwjg,
                                                                  IFNULL(d.lzfbs, 0)    lzfbs,
                                                                  d.nhjje,
                                                                  IFNULL(d.ldz, 0)      dz,
                                                                  yjj.bShbz
                                                           FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                          a.ccydh,
                                                                          a.icydid,
                                                                          Sum(c.fje) 传票预计价,
                                                                          b.bshbz
                                                                   FROM   MCYD a
                                                                          LEFT JOIN sccp b
                                                                                 ON a.icydid = b.icydid
                                                                          LEFT JOIN ZbHjXm c
                                                                                 ON c.sccpid = b.sccpid
                                                                   WHERE  b.bOutProcess = '0 '
                                                                   GROUP  BY b.csccpbh,
                                                                             a.icydid,
                                                                             a.CCYDH,
                                                                             b.bshbz,
                                                                             b.bOutProcess) yjj
                                                                  LEFT JOIN tbluey d
                                                                         ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                   WHERE  hz.iwjg = 0
                                                          AND hz.bshbz = 1
                                                          AND hz.lzfbs = 0
                                                   GROUP  BY hz.ICYDID) tb_in
                                               ON ord.icydid = tb_in.iCydid
                                        LEFT JOIN (SELECT fw.iCYDID,
                                                          sum_nhjje_out,
                                                          sum_ngjje_out,
                                                          sum_nclje_out,
                                                          bz.cbz
                                                   FROM   (SELECT Cast(Sum(( CASE
                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                               ELSE hz.nhjje
                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
                                                                  Cast(Sum(( CASE
                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                               ELSE hz.nhjje
                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
                                                                  Cast(Sum(CASE
                                                                             WHEN hz.dz = 0 THEN hz.nclje
                                                                             ELSE hz.nclje
                                                                           END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2))     AS sum_nclje_out,
                                                                  iCydid
                                                           FROM   (SELECT yjj.传票预计价单号,
                                                                          IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                          yjj.iCYDID,
                                                                          d.cjjdh               计价单号,
                                                                          d.ccydh               订单号,
                                                                          d.cbz                 备注,
                                                                          d.ngjje,
                                                                          d.nclje,
                                                                          d.itax,
                                                                          IFNULL(d.iwjg, 0)     iwjg,
                                                                          IFNULL(d.lzfbs, 0)    lzfbs,
                                                                          d.nhjje,
                                                                          IFNULL(d.ldz, 0)      dz,
                                                                          yjj.bShbz
                                                                   FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                  a.ccydh,
                                                                                  a.icydid,
                                                                                  Sum(c.fje) 传票预计价,
                                                                                  b.bshbz
                                                                           FROM   MCYD a
                                                                                  LEFT JOIN sccp b
                                                                                         ON a.icydid = b.icydid
                                                                                  LEFT JOIN ZbHjXm c
                                                                                         ON c.sccpid = b.sccpid
                                                                           WHERE  b.bOutProcess = '1 '
                                                                           GROUP  BY b.csccpbh,
                                                                                     a.icydid,
                                                                                     a.CCYDH,
                                                                                     b.bshbz,
                                                                                     b.bOutProcess) yjj
                                                                          LEFT JOIN tbluey d
                                                                                 ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                           WHERE  hz.iwjg = 1
                                                                  AND hz.lzfbs = 0
                                                           GROUP  BY hz.ICYDID) fw
                                                          LEFT JOIN (SELECT icydid,
                                                                           (SELECT GROUP_CONCAT(cbz) FROM   TBluey
                                                                             WHERE  icydid = a.icydid) AS cbz
                                                                     FROM   TBluey a
                                                                     GROUP  BY icydid) bz
                                                                 ON bz.icydid = fw.iCYDID) tb_out
                                               ON ord.icydid = tb_out.iCydid
                                        LEFT JOIN (SELECT Sum(namount)                                              AS sum_namount,
                                                          Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
                                                          iCydid,
                                                          CASE
                                                            WHEN ldz = 1 THEN 1
                                                            ELSE 0
                                                          END                                                       ldz
                                                   FROM   TJob
                                                   WHERE  lzfbs = 0
                                                   GROUP  BY iCydid,
                                                             nclje,
                                                             itax,
                                                             ldz) tj
                                               ON ord.ICYDID = tj.iCydid
                                 WHERE  ord.ICYDSTATE > 0
                                        AND 1 = 1) zb
                         WHERE  CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
                                AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
                         GROUP  BY zb.业务单位) dq
                       RIGHT JOIN (SELECT zb1.业务单位,
                                                Sum(zb1.合并金额)       上年销售收入,
                                                Sum(zb1.合并工价)       上年销售工价,
                                                Sum(zb1.考核计算毛利不含税)上年考核计算毛利
                                         FROM   (SELECT CASE
                                                          WHEN IFNULL(ldz, 0) = 1 THEN '是'
                                                          ELSE '否'
                                                        END                                                                登账,
                                                        CONVERT(DCYRQ, CHAR(10))                                      AS 承印日期,
                                                        CCYDH                                                              AS 订单号,
                                                        CYJMC                                                              AS 印件名称,
                                                        CASE
                                        WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                        WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                             OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                             OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司'
                                             OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                             OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                        WHEN CYWDWMC='浙江日报报业集团' 
                                             OR CYWDWMC='共产党员杂志社'
                                             OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                             OR CYWDWMC='浙江出版传媒有限公司'
                                             OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                        WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                             OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                        WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                        WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                        WHEN CYWDWMC='上海人民出版社有限公司'
                                             OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                        WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                             OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                        WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                        WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                        WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                        WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                        WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                        WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                        WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                        WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                        WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                        WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                        WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                             OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                        WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                        WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                        ELSE CYWDWMC
                                       END                                                            AS 业务单位,
                                                        cyjlx                                                              印件类型,
                                                        NCS                                                                AS 印数,
                                                        CZWKB                                                              AS 开本,
                                                        CDF                                                                AS 订法,
                                                        NZWYZ                                                              AS 正文印张,
                                                        cbz                                                                发外备注,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
                                                          ELSE
                                                            CASE
                                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                                   + CASE
                                                                       WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                       ELSE ( CASE
                                                                                WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                ELSE ( CASE
                                                                                         WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                         ELSE IFNULL(tj.sum_clje, 0)
                                                                                       END )
                                                                              END )
                                                                     END = 0
                                                                   AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                              ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                                 + CASE
                                                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                     ELSE ( CASE
                                                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                              ELSE ( CASE
                                                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                     END )
                                                                                                            END )
                                                                                                   END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                            END
                                                        END                                                                AS 考核计算毛利不含税,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
                                                          ELSE
                                                            CASE
                                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                                   AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                                              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)
                                                            END
                                                        END                                                                AS 考核计算工价毛利不含税,
                                                        ( CASE
                                                            WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
                                                            ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
                                                                                                WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                ELSE ( CASE
                                                                                                         WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                         ELSE ( CASE
                                                                                                                  WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                  ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                END )
                                                                                                       END )
                                                                                              END ) - IFNULL(tb_out.sum_nclje_out, 0) )
                                                          END )                                                            AS 考核计算料价毛利不含税,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
                                                          ELSE ( IFNULL(tj.sum_namount, 0) )
                                                        END                                                                合并金额,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
                                                          ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
                                                        END                                                                合并工价,
                                                        ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )                      AS 采购毛利不含税,
                                                        ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )                      AS 采购工价毛利不含税,
                                                        ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )                      AS 采购料价毛利不含税,
                                                        IFNULL(nwshjje, 0)                                                 AS 合同总金额不含税,
                                                        IFNULL(nwsgjhj, 0)                                                 AS 合同工价不含税,
                                                        IFNULL(nwsclhj, 0)                                                 AS 合同材料不含税,
                                                        IFNULL(nwsbzhjje, 0)                                               AS 标准总金额不含税,
                                                        IFNULL(nwsbzgjhj, 0)                                               AS 标准工价不含税,
                                                        IFNULL(nwsbzclhj, 0)                                               AS 标准料价不含税,
                                                        ord.nzkl                                                           AS 折扣率,
                                                        CASE
                                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                                          ELSE ( CASE
                                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                                        + CASE
                                                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                            ELSE ( CASE
                                                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                     ELSE ( CASE
                                                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                                                            END )
                                                                                   END )
                                                                          END = 0
                                                                        AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                                   ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                                      + CASE
                                                                                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                          ELSE ( CASE
                                                                                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                                   ELSE ( CASE
                                                                                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                          END )
                                                                                                                 END )
                                                                                                        END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                                 END )
                                                        END                                                                AS 生产毛利不含税,
                                                        CASE
                                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                                          ELSE ( CASE
                                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                                        AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                                                   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)
                                                                 END )
                                                        END                                                                AS 生产工价毛利不含税,
                                                        IFNULL(tj.sum_clje, 0) - ( CASE
                                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                     ELSE ( CASE
                                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                              ELSE ( CASE
                                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                                     END )
                                                                                            END )
                                                                                   END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
                                                        IFNULL(tj.sum_namount, 0)                                          AS 订单计价金额不含税,
                                                        IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0)                 AS 订单计价工价不含税,
                                                        IFNULL(tj.sum_clje, 0)                                             AS 订单计价料价不含税,
                                                        IFNULL(tb_in.sum_ngjje_in, 0)
                                                        + CASE
                                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                            ELSE ( CASE
                                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                     ELSE ( CASE
                                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                                            END )
                                                                   END )
                                                          END                                                              AS 厂内传票合计不含税,
                                                        IFNULL(tb_in.sum_ngjje_in, 0)                                      AS 厂内传票工价不含税,
                                                        CASE
                                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                          ELSE ( CASE
                                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                   ELSE ( CASE
                                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                                          END )
                                                                 END )
                                                        END                                                                AS 厂内传票料价不含税,
                                                        IFNULL(tb_out.sum_nhjje_out, 0)                                    AS 发外传票合计不含税,
                                                        IFNULL(tb_out.sum_ngjje_out, 0)                                    AS 发外传票工价不含税,
                                                        IFNULL(tb_out.sum_nclje_out, 0)                                    AS 发外传票料价不含税,
                                                        CHY                                                                AS 活源,
                                                        CCLBMMC                                                            AS 承揽部门,
                                                        CYWYXM                                                             AS 业务员,
                                                        lwcbs                                                              AS 是否完工,
                                                        Dwcrq                                                              AS 完工日期,
                                                        CONVERT(djfrq,CHAR(10))                                      AS 交付日期,
                                                        LJQBS                                                              AS 是否结清,
                                                        djqrq                                                              AS 结清日期,
                                                        izlconfirm                                                         AS 是否销货,
                                                        dzlconfirmrq                                                       AS 销货日期,
                                                        nzlconfirmje                                                       AS 销货金额,
                                                        nzlysje                                                            AS 销货应收,
                                                        IFNULL(ipaytime, 0)                                                AS 帐龄,
                                                        ( CASE
                                                            WHEN ljqbs = 0
                                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
                                                            ELSE 0
                                                          END )                                                            AS 付款周期,
                                                        ( CASE
                                                            WHEN ljqbs = 0
                                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
                                                            ELSE 0
                                                          END )                                                            AS 过期天数,
                                                        ( CASE
                                                            WHEN bsfsk = 1 THEN 1
                                                            ELSE 0
                                                          END )                                                            AS 是否收款,
                                                        nysje                                                              AS 预收款,
                                                        fskje                                                              AS 收款金额,
                                                        ( CASE
                                                            WHEN bsfdjfp = 1 THEN 1
                                                            ELSE 0
                                                          END )                                                            AS '是否开票',
                                                        ffpje                                                              AS 发票金额,
                                                        cfph                                                               AS 发票号,
                                                        cfprq                                                              AS 发票日期,
                                                        ( CASE
                                                            WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                                            ELSE 0
                                                          END )                                                            AS 未开完票金额,
                                                        ( CASE
                                                            WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
                                                            ELSE 0
                                                          END )                                                            AS 发票未收款金额,
                                                        iselforder                                                         AS 是否异常,
                                                        cselftype                                                          AS 异常类型,
                                                        CASE
                                                          WHEN bsfdjfp = 1 THEN ( CASE
                                                                                    WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                                                                    ELSE 0
                                                                                  END )
                                                          ELSE ( CASE
                                                                   WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
                                                                   ELSE ( CASE
                                                                            WHEN nzlconfirmje = 0 THEN nhjje
                                                                            ELSE nzlconfirmje
                                                                          END )
                                                                 END )
                                                        END                                                                未开票
                                                 FROM   MCYD Ord
                                                        LEFT JOIN (SELECT ICYDID,
                                                                          Max(Nsc) AS Nsc
                                                                   FROM   SCYDDX
                                                                   WHERE  IDXLXID = 573
                                                                   GROUP  BY ICYDID) AS Obj
                                                               ON ord.ICYDID = Obj.ICYDID
                                                        LEFT JOIN (SELECT ICYDID,
                                                                          Sum(NYSLS) AS nysls,
                                                                          Sum(nyssl) AS nyssl,
                                                                          Sum(nsyl)  AS nsyl
                                                                   FROM   SCYDDX
                                                                   GROUP  BY ICYDID) AS ObjMatier
                                                               ON Ord.ICYDID = ObjMatier.ICYDID
                                                        LEFT JOIN (SELECT Sum(CASE
                                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                                ELSE hz.传票预计价
                                                                              END) AS sum_nhjje_in,
                                                                          Sum(CASE
                                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                                ELSE hz.传票预计价
                                                                              END) AS sum_ngjje_in,
                                                                          Sum(CASE
                                                                                WHEN hz.dz = 1 THEN hz.nclje
                                                                                ELSE hz.nclje
                                                                              END) AS sum_nclje_in,
                                                                          hz.ICYDID
                                                                   FROM   (SELECT yjj.传票预计价单号,
                                                                                  IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                                  yjj.iCYDID,
                                                                                  d.cjjdh               计价单号,
                                                                                  d.ccydh               订单号,
                                                                                  d.cbz                 备注,
                                                                                  d.ngjje,
                                                                                  d.nclje,
                                                                                  IFNULL(d.iwjg, 0)     iwjg,
                                                                                  IFNULL(d.lzfbs, 0)    lzfbs,
                                                                                  d.nhjje,
                                                                                  IFNULL(d.ldz, 0)      dz,
                                                                                  yjj.bShbz
                                                                           FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                          a.ccydh,
                                                                                          a.icydid,
                                                                                          Sum(c.fje) 传票预计价,
                                                                                          b.bshbz
                                                                                   FROM   MCYD a
                                                                                          LEFT JOIN sccp b
                                                                                                 ON a.icydid = b.icydid
                                                                                          LEFT JOIN ZbHjXm c
                                                                                                 ON c.sccpid = b.sccpid
                                                                                   WHERE  b.bOutProcess = '0 '
                                                                                   GROUP  BY b.csccpbh,
                                                                                             a.icydid,
                                                                                             a.CCYDH,
                                                                                             b.bshbz,
                                                                                             b.bOutProcess) yjj
                                                                                  LEFT JOIN tbluey d
                                                                                         ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                                   WHERE  hz.iwjg = 0
                                                                          AND hz.bshbz = 1
                                                                          AND hz.lzfbs = 0
                                                                   GROUP  BY hz.ICYDID) tb_in
                                                               ON ord.icydid = tb_in.iCydid
                                                        LEFT JOIN (SELECT fw.iCYDID,
                                                                          sum_nhjje_out,
                                                                          sum_ngjje_out,
                                                                          sum_nclje_out,
                                                                          bz.cbz
                                                                   FROM   (SELECT Cast(Sum(( CASE
                                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                                               ELSE hz.nhjje
                                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
                                                                                  Cast(Sum(( CASE
                                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                                               ELSE hz.nhjje
                                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
                                                                                  Cast(Sum(CASE
                                                                                             WHEN hz.dz = 0 THEN hz.nclje
                                                                                             ELSE hz.nclje
                                                                                           END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2))     AS sum_nclje_out,
                                                                                  iCydid
                                                                           FROM   (SELECT yjj.传票预计价单号,
                                                                                          IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                                          yjj.iCYDID,
                                                                                          d.cjjdh               计价单号,
                                                                                          d.ccydh               订单号,
                                                                                          d.cbz                 备注,
                                                                                          d.ngjje,
                                                                                          d.nclje,
                                                                                          d.itax,
                                                                                          IFNULL(d.iwjg, 0)     iwjg,
                                                                                          IFNULL(d.lzfbs, 0)    lzfbs,
                                                                                          d.nhjje,
                                                                                          IFNULL(d.ldz, 0)      dz,
                                                                                          yjj.bShbz
                                                                                   FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                                  a.ccydh,
                                                                                                  a.icydid,
                                                                                                  Sum(c.fje) 传票预计价,
                                                                                                  b.bshbz
                                                                                           FROM   MCYD a
                                                                                                  LEFT JOIN sccp b
                                                                                                         ON a.icydid = b.icydid
                                                                                                  LEFT JOIN ZbHjXm c
                                                                                                         ON c.sccpid = b.sccpid
                                                                                           WHERE  b.bOutProcess = '1 '
                                                                                           GROUP  BY b.csccpbh,
                                                                                                     a.icydid,
                                                                                                     a.CCYDH,
                                                                                                     b.bshbz,
                                                                                                     b.bOutProcess) yjj
                                                                                          LEFT JOIN tbluey d
                                                                                                 ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                                           WHERE  hz.iwjg = 1
                                                                                  AND hz.lzfbs = 0
                                                                           GROUP  BY hz.ICYDID) fw
                                                                          LEFT JOIN (SELECT icydid,
                                                                                            (SELECT GROUP_CONCAT(cbz) FROM   TBluey
                                                                                             WHERE  icydid = a.icydid) AS cbz
                                                                                     FROM   TBluey a
                                                                                     GROUP  BY icydid) bz
                                                                                 ON bz.icydid = fw.iCYDID) tb_out
                                                               ON ord.icydid = tb_out.iCydid
                                                        LEFT JOIN (SELECT Sum(namount)                                              AS sum_namount,
                                                                          Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
                                                                          iCydid,
                                                                          CASE
                                                                            WHEN ldz = 1 THEN 1
                                                                            ELSE 0
                                                                          END                                                       ldz
                                                                   FROM   TJob
                                                                   WHERE  lzfbs = 0
                                                                   GROUP  BY iCydid,
                                                                             nclje,
                                                                             itax,
                                                                             ldz) tj
                                                               ON ord.ICYDID = tj.iCydid
                                                 WHERE  ord.ICYDSTATE > 0
                                                        AND 1 = 1) zb1
 --                                         WHERE  CONVERT(Dateadd(YEAR, 1, zb1.承印日期),CHAR(10)) >= '{$januaryFirst}'
 --                                                AND CONVERT(Dateadd(YEAR, 1, zb1.承印日期),CHAR(10)) <= '{$today}'
                                           
                                         GROUP  BY zb1.业务单位) hb
                                     ON hb.业务单位 = dq.业务单位))a) aa
 ORDER  BY Aa.考核计算毛利(万元) DESC 
 ";
//        WHERE  CONVERT(zb1.承印日期,CHAR(10)) >= '{$lastYearJanuaryFirst}'
//        AND CONVERT(zb1.承印日期,CHAR(10)) <= '{$lastYearDecember31 }'
        $result=Db::query($sql);
        if ($result) {
            $redis->set($redis_key, json_encode($result));
            echo date("Y-m-d H:i:s").'   存进去了';
            return $result;
        }
//        $redis->set($redis_key, json_encode($result));
//        echo date("Y-m-d H:i:s").'   存进去了';
    }
    //年度考核毛利收入同比上升和下滑一览表->获取固定公司名称
    public function getcustomerlist() {
        return [
            '浙江出版传媒股份有限公司(含省出版公司)',
            '杭州印校印务有限公司',
            '人民教育出版社有限公司',
            '浙江省新华书店集团有限公司(含教育、少儿)',
            '浙江教育出版社集团有限公司',
            '求是杂志社',
            '读者出版传媒股份有限公司',
            '浙江科学技术出版社有限公司',
            '大星(上海)文化传媒有限公司',
            '浙江教育报刊总社',
            '浙江省财税政策研究室',
            '浙江人民美术出版社有限公司',
            '《今日浙江》杂志社',
            '浙江新华数码印务有限公司',
            '宁波出版社有限公司',
            '浙江人民出版社有限公司',
            '浙江中烟工业有限责任公司',
            '中国大百科全书出版社',
            '上海人民出版社有限责任公司',
            '浙江省新华书店集团物流配送有限公司',
            '上海译文出版社有限公司',
            '浙江少年儿童出版社有限公司',
            '浙江日报报业集团(含共产党员)',
            '复旦大学出版社有限公司',
            '浙江旅游职业学院',
            '浙江文艺出版社有限公司',
            '上海市社会科学事业发展研究中心(《学术月刊》杂志社)',
            '中国青年出版总社有限公司',
            '浙江摄影出版社有限公司',
            '湖北知音传媒股份有限公司',
            '中信出版集团股份有限公司',
            '杭州国家版本馆',
            '人民美术出版社有限公司',
            '上海古籍出版社有限公司',
            '浙江省期刊总社有限公司',
            '中国农业科学院茶叶研究所',
            '浙江华硕国际贸易有限责任公司',
            '浙江《职业教育》杂志社有限公司',
            '半月选读杂志社',
            '《纺织服装周刊》杂志社有限公司',
            '浙江古籍出版社有限公司',
            '浙江省卫生健康综合保障中心',
            '浙江新华广告有限公司',
            '人民出版社',
            '党建读物出版社',
            '杭州师范大学附属中学',
            '宁波市大港印务有限公司',
            '杭州市萧山区教育局',
            '浙江临安曙光印务有限公司',
            '浙江省体育彩票管理中心',
            '中共浙江省委主题教育领导小组办公室',
            '浙江省新华书店集团有限公司(作业本)',
            '浙江大学医学院附属邵逸夫医院',
            '上海卓文印刷包装材料有限公司',
            '红旗出版社有限公司',
            '浙江省公安厅',
            '文化交流杂志社',
            '浙江艺术职业学院',
            '杭州蓝狮子文化创意股份有限公司(工商大学出版)',
            '湖北知音动漫有限公司',
            '浙江省国资委',
            '浙江音乐学院',
            '浙江超能印业有限公司',
            '杭州风景名胜传媒有限公司',
            '上海市社会科学界联合会',
            '自然资源部第二海洋研究所',
            '学习出版社有限公司',
            '浙江印刷集团有限公司',
            '浙江省文学艺术界联合会',
            '杭州长命印刷有限公司',
            '浙江省新闻出版广电局',
            '中国(杭州)智慧城市研究院有限公司',
            '浙江双溪印业有限公司',
            '浙江省人民检察院',
            '杭州顺峰纸制品有限公司',
            '上海辞书出版社有限公司',
            '浙江电子音像出版社有限公司',
            '杭州休闲文化传媒有限公司',
            '浙江大学出版社有限责任公司',
            '杭州出版社有限公司',
            '星球地图出版社',
            '浙江新华印刷技术有限公司',
            '教育科学出版社有限公司',
            '浙江新世纪电子音像发行有限公司',
        ];
    }
    //年度考核毛利收入同比上升和下滑一览表 接口
    public function year_profit(){
        $redis = redis();
        $result = json_decode($redis->get(md5('year_profit_redis')), true);
        $list['columns'] = [
            ['name' => '客户名称', 'id' => 'khmc', 'width' => '55', 'autoWrap' => "true", 'textAlign' => 'left'],
            ['name' => '毛利收入(万元)', 'id' => 'mlsr', 'width' => '24', 'autoWrap' => "true", 'textAlign' => 'left'],
            ['name' => '同比增长率', 'id' => 'zzl', 'width' => '18', 'autoWrap' => "true", 'textAlign' => 'left']
        ];
        // 判断 $result 是否为空
        if(empty($result)) {
            $list['rows'] = [];
        } else {
            //去掉重复名称的数据
            $list_result = [];
            foreach($result as $tvalue)
            {
                $key = md5(trim($tvalue['客户']));
                if(!isset($list_result[$key])){
                    $list_result[$key] = $tvalue;
                }
            }
            //获取固定公司名的数据
            $list_result2 = [];
            $customer_list = $this->getcustomerlist();
            foreach($list_result as $tvalue2)
            {
                if(in_array(trim($tvalue2['客户']),$customer_list)){
                    $list_result2[] = $tvalue2;
                }
            }

            if($list_result2){
                // 获取前六个
                $firstFour = array_slice($list_result2, 0, 6);
                // 获取后六个
                $lastThree = array_slice($list_result2, -6, 6);
                // 合并数组,获取前六个和后六个
                $combinedResult = array_merge($firstFour, $lastThree);

                foreach ($combinedResult as $k => $v) {
                    $list['rows'][$k]['khmc'] = $v['客户'];
                    $list['rows'][$k]['mlsr'] = $v['考核计算毛利(万元)'];
                    $list['rows'][$k]['zzl'] = $v['毛利增长率'];
                }
            }

        }
        $res['status'] = 0;
        $res['msg'] = '';
        $res['data'] = $list;
        return json($res);
    }

    //年度考核销售收入同比上升和下滑一览表 缓存
    public function year_dclandsx_redis(){
        $redis = redis();
        $redis_key = md5('year_dclandsx_redis');
        $januaryFirst = date('Y-01-01');
        $today = date('Y-m-d');
        $sql = "SELECT bb.客户,
        bb.销售收入(万元),
        bb.上年销售收入(万元), 
        bb.销售收入增减(万元),bb.销售收入增长率 FROM(SELECT  aa.客户,
        aa.销售收入(万元),
        aa.上年销售收入(万元), 
        aa.销售收入增减(万元),
        CASE
          WHEN IFNULL(aa.上年销售收入(万元), 0) = 0 THEN '/'
          ELSE Ltrim(Cast(aa.销售收入增减(万元)*100/aa.上年销售收入(万元) AS DECIMAL(10, 2)))
        END AS 销售收入增长率
 FROM   (SELECT a.客户,
                CONVERT(Round(a.销售收入 / 10000, 2),DECIMAL(10, 2))    AS '销售收入(万元)',
                CONVERT(Round(a.上年销售收入 / 10000, 2),DECIMAL(10, 2))  AS '上年销售收入(万元)',
                CONVERT(Round(a.销售收入增减 / 10000, 2),DECIMAL(10, 2))  AS '销售收入增减(万元)',
                CONVERT(Round(a.销售工价 / 10000, 2),DECIMAL(10, 2))    AS '销售工价(万元)',
                CONVERT(Round(a.上年销售工价 / 10000, 2),DECIMAL(10, 2))  AS '上年销售工价(万元)',
                CONVERT(Round(a.销售工价增减 / 10000, 2),DECIMAL(10, 2))  AS '销售工价增减(万元)',
                CONVERT(Round(a.考核计算毛利 / 10000, 2),DECIMAL(10, 2))  AS '考核计算毛利(万元)',
                CONVERT(Round(a.上年考核计算毛利 / 10000, 2),DECIMAL(10, 2))AS '上年考核计算毛利(万元)',
                CONVERT(Round(a.考核计算毛利增减 / 10000, 2),DECIMAL(10, 2))AS '考核计算毛利增减(万元)'
         FROM   ((SELECT 1                                                   AS flag,
                        IFNULL(dq.业务单位, hb.业务单位)                            客户,
                        IFNULL(dq.销售收入, 000)                                销售收入,
                        IFNULL(hb.上年销售收入, 0.000)                            上年销售收入,
                        IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000)     销售收入增减,
                        CASE
                          WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
                          WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
                               AND IFNULL(dq.销售收入, 000) > 0 THEN 1
                          ELSE 0
                        END                                                 AS 销售收入同期比,
                        IFNULL(dq.销售工价, 000)                                销售工价,
                        IFNULL(hb.上年销售工价, 0.000)                            上年销售工价,
                        IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000)     销售工价增减,
                        IFNULL(dq.考核计算毛利, 000)                              考核计算毛利,
                        IFNULL(hb.上年考核计算毛利, 0.000)                          上年考核计算毛利,
                        IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
                        CASE
                          WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
                          WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
                               AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
                          ELSE 0
                        END                                                 AS 毛利同期比
                 FROM   (SELECT zb.业务单位                            业务单位,
                                IFNULL(Sum(zb.合并金额), 0.000)        销售收入,
                                IFNULL(Sum(zb.合并工价), 0.000)        销售工价,
                                IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
                         FROM   (SELECT CASE
                                          WHEN IFNULL(ldz, 0) = 1 THEN '是'
                                          ELSE '否'
                                        END                                                                登账,
                                        CONVERT(DCYRQ,CHAR(10))                                      AS 承印日期,
                                        CCYDH                                                              AS 订单号,
                                        CYJMC                                                              AS 印件名称,
                                        CASE
                                        WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                        WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                             OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                             OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司'
                                             OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                             OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                        WHEN CYWDWMC='浙江日报报业集团' 
                                             OR CYWDWMC='共产党员杂志社'
                                             OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                             OR CYWDWMC='浙江出版传媒有限公司'
                                             OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                        WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                             OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                        WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                        WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                        WHEN CYWDWMC='上海人民出版社有限公司'
                                             OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                        WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                             OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                        WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                        WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                        WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                        WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                        WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                        WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                        WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                        WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                        WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                        WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                        WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                             OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                        WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                        WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                        ELSE CYWDWMC
                                       END                                                            AS 业务单位,
                                        cyjlx                                                              印件类型,
                                        NCS                                                                AS 印数,
                                        CZWKB                                                              AS 开本,
                                        CDF                                                                AS 订法,
                                        NZWYZ                                                              AS 正文印张,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
                                          ELSE
                                            CASE
                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                   + CASE
                                                       WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                       ELSE ( CASE
                                                                WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                ELSE ( CASE
                                                                         WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                         ELSE IFNULL(tj.sum_clje, 0)
                                                                       END )
                                                              END )
                                                     END = 0
                                                   AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                              ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                 + CASE
                                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                     ELSE ( CASE
                                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                              ELSE ( CASE
                                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                                     END )
                                                                                            END )
                                                                                   END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                            END
                                        END                                                                AS 考核计算毛利不含税,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
                                          ELSE
                                            CASE
                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                   AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                              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)
                                            END
                                        END                                                                AS 考核计算工价毛利不含税,
                                        ( CASE
                                            WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
                                            ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
                                                                                WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                ELSE ( CASE
                                                                                         WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                         ELSE ( CASE
                                                                                                  WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                  ELSE IFNULL(tj.sum_clje, 0)
                                                                                                END )
                                                                                       END )
                                                                              END ) - IFNULL(tb_out.sum_nclje_out, 0) )
                                          END )                                                            AS 考核计算料价毛利不含税,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
                                          ELSE ( IFNULL(tj.sum_namount, 0) )
                                        END                                                                合并金额,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
                                          ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
                                        END                                                                合并工价,
                                        ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )                      AS 采购毛利不含税,
                                        ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )                      AS 采购工价毛利不含税,
                                        ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )                      AS 采购料价毛利不含税,
                                        IFNULL(nwshjje, 0)                                                 AS 合同总金额不含税,
                                        IFNULL(nwsgjhj, 0)                                                 AS 合同工价不含税,
                                        IFNULL(nwsclhj, 0)                                                 AS 合同材料不含税,
                                        IFNULL(nwsbzhjje, 0)                                               AS 标准总金额不含税,
                                        IFNULL(nwsbzgjhj, 0)                                               AS 标准工价不含税,
                                        IFNULL(nwsbzclhj, 0)                                               AS 标准料价不含税,
                                        ord.nzkl                                                           AS 折扣率,
                                        CASE
                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                          ELSE ( CASE
                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                        + CASE
                                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                            ELSE ( CASE
                                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                     ELSE ( CASE
                                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                                            END )
                                                                   END )
                                                          END = 0
                                                        AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                   ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                      + CASE
                                                                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                          ELSE ( CASE
                                                                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                   ELSE ( CASE
                                                                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                                                                          END )
                                                                                                 END )
                                                                                        END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                 END )
                                        END                                                                AS 生产毛利不含税,
                                        CASE
                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                          ELSE ( CASE
                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                        AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                                   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)
                                                 END )
                                        END                                                                AS 生产工价毛利不含税,
                                        IFNULL(tj.sum_clje, 0) - ( CASE
                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                     ELSE ( CASE
                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                              ELSE ( CASE
                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                     END )
                                                                            END )
                                                                   END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
                                        IFNULL(tj.sum_namount, 0)                                          AS 订单计价金额不含税,
                                        IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0)                 AS 订单计价工价不含税,
                                        IFNULL(tj.sum_clje, 0)                                             AS 订单计价料价不含税,
                                        IFNULL(tb_in.sum_ngjje_in, 0)
                                        + CASE
                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                            ELSE ( CASE
                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                     ELSE ( CASE
                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                            END )
                                                   END )
                                          END                                                              AS 厂内传票合计不含税,
                                        IFNULL(tb_in.sum_ngjje_in, 0)                                      AS 厂内传票工价不含税,
                                        CASE
                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                          ELSE ( CASE
                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                   ELSE ( CASE
                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                          END )
                                                 END )
                                        END                                                                AS 厂内传票料价不含税,
                                        IFNULL(tb_out.sum_nhjje_out, 0)                                    AS 发外传票合计不含税,
                                        IFNULL(tb_out.sum_ngjje_out, 0)                                    AS 发外传票工价不含税,
                                        IFNULL(tb_out.sum_nclje_out, 0)                                    AS 发外传票料价不含税,
                                        CHY                                                                AS 活源,
                                        CCLBMMC                                                            AS 承揽部门,
                                        CYWYXM                                                             AS 业务员,
                                        lwcbs                                                              AS 是否完工,
                                        Dwcrq                                                              AS 完工日期,
                                        CONVERT(djfrq,CHAR(10))                                      AS 交付日期,
                                        LJQBS                                                              AS 是否结清,
                                        djqrq                                                              AS 结清日期,
                                        izlconfirm                                                         AS 是否销货,
                                        dzlconfirmrq                                                       AS 销货日期,
                                        nzlconfirmje                                                       AS 销货金额,
                                        nzlysje                                                            AS 销货应收,
                                        IFNULL(ipaytime, 0)                                                AS 帐龄,
                                        ( CASE
                                            WHEN ljqbs = 0
                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
                                            ELSE 0
                                          END )                                                            AS 付款周期,
                                        ( CASE
                                            WHEN ljqbs = 0
                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
                                            ELSE 0
                                          END )                                                            AS 过期天数,
                                        ( CASE
                                            WHEN bsfsk = 1 THEN 1
                                            ELSE 0
                                          END )                                                            AS 是否收款,
                                        nysje                                                              AS 预收款,
                                        fskje                                                              AS 收款金额,
                                        ( CASE
                                            WHEN bsfdjfp = 1 THEN 1
                                            ELSE 0
                                          END )                                                            AS '是否开票',
                                        ffpje                                                              AS 发票金额,
                                        cfph                                                               AS 发票号,
                                        cfprq                                                              AS 发票日期,
                                        ( CASE
                                            WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                            ELSE 0
                                          END )                                                            AS 未开完票金额,
                                        ( CASE
                                            WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
                                            ELSE 0
                                          END )                                                            AS 发票未收款金额,
                                        iselforder                                                         AS 是否异常,
                                        cselftype                                                          AS 异常类型,
                                        CASE
                                          WHEN bsfdjfp = 1 THEN ( CASE
                                                                    WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                                                    ELSE 0
                                                                  END )
                                          ELSE ( CASE
                                                   WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
                                                   ELSE ( CASE
                                                            WHEN nzlconfirmje = 0 THEN nhjje
                                                            ELSE nzlconfirmje
                                                          END )
                                                 END )
                                        END                                                                未开票
                                 FROM   MCYD Ord
                                        LEFT JOIN (SELECT Sum(CASE
                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                ELSE hz.传票预计价
                                                              END) AS sum_nhjje_in,
                                                          Sum(CASE
                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                ELSE hz.传票预计价
                                                              END) AS sum_ngjje_in,
                                                          Sum(CASE
                                                                WHEN hz.dz = 1 THEN hz.nclje
                                                                ELSE hz.nclje
                                                              END) AS sum_nclje_in,
                                                          hz.ICYDID
                                                   FROM   (SELECT yjj.传票预计价单号,
                                                                  IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                  yjj.iCYDID,
                                                                  d.cjjdh               计价单号,
                                                                  d.ccydh               订单号,
                                                                  d.cbz                 备注,
                                                                  d.ngjje,
                                                                  d.nclje,
                                                                  IFNULL(d.iwjg, 0)     iwjg,
                                                                  IFNULL(d.lzfbs, 0)    lzfbs,
                                                                  d.nhjje,
                                                                  IFNULL(d.ldz, 0)      dz,
                                                                  yjj.bShbz
                                                           FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                          a.ccydh,
                                                                          a.icydid,
                                                                          Sum(c.fje) 传票预计价,
                                                                          b.bshbz
                                                                   FROM   MCYD a
                                                                          LEFT JOIN sccp b
                                                                                 ON a.icydid = b.icydid
                                                                          LEFT JOIN ZbHjXm c
                                                                                 ON c.sccpid = b.sccpid
                                                                   WHERE  b.bOutProcess = '0 '
                                                                   GROUP  BY b.csccpbh,
                                                                             a.icydid,
                                                                             a.CCYDH,
                                                                             b.bshbz,
                                                                             b.bOutProcess) yjj
                                                                  LEFT JOIN tbluey d
                                                                         ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                   WHERE  hz.iwjg = 0
                                                          AND hz.bshbz = 1
                                                          AND hz.lzfbs = 0
                                                   GROUP  BY hz.ICYDID) tb_in
                                               ON ord.icydid = tb_in.iCydid
                                        LEFT JOIN (SELECT fw.iCYDID,
                                                          sum_nhjje_out,
                                                          sum_ngjje_out,
                                                          sum_nclje_out,
                                                          bz.cbz
                                                   FROM   (SELECT Cast(Sum(( CASE
                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                               ELSE hz.nhjje
                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
                                                                  Cast(Sum(( CASE
                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                               ELSE hz.nhjje
                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
                                                                  Cast(Sum(CASE
                                                                             WHEN hz.dz = 0 THEN hz.nclje
                                                                             ELSE hz.nclje
                                                                           END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2))     AS sum_nclje_out,
                                                                  iCydid
                                                           FROM   (SELECT yjj.传票预计价单号,
                                                                          IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                          yjj.iCYDID,
                                                                          d.cjjdh               计价单号,
                                                                          d.ccydh               订单号,
                                                                          d.cbz                 备注,
                                                                          d.ngjje,
                                                                          d.nclje,
                                                                          d.itax,
                                                                          IFNULL(d.iwjg, 0)     iwjg,
                                                                          IFNULL(d.lzfbs, 0)    lzfbs,
                                                                          d.nhjje,
                                                                          IFNULL(d.ldz, 0)      dz,
                                                                          yjj.bShbz
                                                                   FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                  a.ccydh,
                                                                                  a.icydid,
                                                                                  Sum(c.fje) 传票预计价,
                                                                                  b.bshbz
                                                                           FROM   MCYD a
                                                                                  LEFT JOIN sccp b
                                                                                         ON a.icydid = b.icydid
                                                                                  LEFT JOIN ZbHjXm c
                                                                                         ON c.sccpid = b.sccpid
                                                                           WHERE  b.bOutProcess = '1 '
                                                                           GROUP  BY b.csccpbh,
                                                                                     a.icydid,
                                                                                     a.CCYDH,
                                                                                     b.bshbz,
                                                                                     b.bOutProcess) yjj
                                                                          LEFT JOIN tbluey d
                                                                                 ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                           WHERE  hz.iwjg = 1
                                                                  AND hz.lzfbs = 0
                                                           GROUP  BY hz.ICYDID) fw
                                                          LEFT JOIN (SELECT icydid,
                                                                            (SELECT GROUP_CONCAT(cbz) FROM   TBluey
                                                                             WHERE  icydid = a.icydid) AS cbz
                                                                     FROM   TBluey a
                                                                     GROUP  BY icydid) bz
                                                                 ON bz.icydid = fw.iCYDID) tb_out
                                               ON ord.icydid = tb_out.iCydid
                                        LEFT JOIN (SELECT Sum(namount)                                              AS sum_namount,
                                                          Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
                                                          iCydid,
                                                          CASE
                                                            WHEN ldz = 1 THEN 1
                                                            ELSE 0
                                                          END                                                       ldz
                                                   FROM   TJob
                                                   WHERE  lzfbs = 0
                                                   GROUP  BY iCydid,
                                                             nclje,
                                                             itax,
                                                             ldz) tj
                                               ON ord.ICYDID = tj.iCydid
                                 WHERE  ord.ICYDSTATE > 0
                                        AND 1 = 1) zb
                         WHERE  CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
                                AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
                         GROUP  BY zb.业务单位) dq
                        LEFT JOIN (SELECT zb1.业务单位,
                                                Sum(zb1.合并金额)       上年销售收入,
                                                Sum(zb1.合并工价)       上年销售工价,
                                                Sum(zb1.考核计算毛利不含税)上年考核计算毛利
                                         FROM   (SELECT CASE
                                                          WHEN IFNULL(ldz, 0) = 1 THEN '是'
                                                          ELSE '否'
                                                        END                                                                登账,
                                                        CONVERT(DCYRQ,CHAR(10))                                      AS 承印日期,
                                                        CCYDH                                                              AS 订单号,
                                                        CYJMC                                                              AS 印件名称,
                                                        CASE
                                        WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                        WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                             OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                             OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司'
                                             OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                             OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                        WHEN CYWDWMC='浙江日报报业集团' 
                                             OR CYWDWMC='共产党员杂志社'
                                             OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                             OR CYWDWMC='浙江出版传媒有限公司'
                                             OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                        WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                             OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                        WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                        WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                        WHEN CYWDWMC='上海人民出版社有限公司'
                                             OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                        WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                             OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                        WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                        WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                        WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                        WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                        WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                        WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                        WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                        WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                        WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                        WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                        WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                             OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                        WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                        WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                        ELSE CYWDWMC
                                       END                                                            AS 业务单位,
                                                        cyjlx                                                              印件类型,
                                                        NCS                                                                AS 印数,
                                                        CZWKB                                                              AS 开本,
                                                        CDF                                                                AS 订法,
                                                        NZWYZ                                                              AS 正文印张,
                                                        cbz                                                                发外备注,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
                                                          ELSE
                                                            CASE
                                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                                   + CASE
                                                                       WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                       ELSE ( CASE
                                                                                WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                ELSE ( CASE
                                                                                         WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                         ELSE IFNULL(tj.sum_clje, 0)
                                                                                       END )
                                                                              END )
                                                                     END = 0
                                                                   AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                              ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                                 + CASE
                                                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                     ELSE ( CASE
                                                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                              ELSE ( CASE
                                                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                     END )
                                                                                                            END )
                                                                                                   END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                            END
                                                        END                                                                AS 考核计算毛利不含税,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
                                                          ELSE
                                                            CASE
                                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                                   AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                                              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)
                                                            END
                                                        END                                                                AS 考核计算工价毛利不含税,
                                                        ( CASE
                                                            WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
                                                            ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
                                                                                                WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                ELSE ( CASE
                                                                                                         WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                         ELSE ( CASE
                                                                                                                  WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                  ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                END )
                                                                                                       END )
                                                                                              END ) - IFNULL(tb_out.sum_nclje_out, 0) )
                                                          END )                                                            AS 考核计算料价毛利不含税,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
                                                          ELSE ( IFNULL(tj.sum_namount, 0) )
                                                        END                                                                合并金额,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
                                                          ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
                                                        END                                                                合并工价,
                                                        ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )                      AS 采购毛利不含税,
                                                        ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )                      AS 采购工价毛利不含税,
                                                        ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )                      AS 采购料价毛利不含税,
                                                        IFNULL(nwshjje, 0)                                                 AS 合同总金额不含税,
                                                        IFNULL(nwsgjhj, 0)                                                 AS 合同工价不含税,
                                                        IFNULL(nwsclhj, 0)                                                 AS 合同材料不含税,
                                                        IFNULL(nwsbzhjje, 0)                                               AS 标准总金额不含税,
                                                        IFNULL(nwsbzgjhj, 0)                                               AS 标准工价不含税,
                                                        IFNULL(nwsbzclhj, 0)                                               AS 标准料价不含税,
                                                        ord.nzkl                                                           AS 折扣率,
                                                        CASE
                                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                                          ELSE ( CASE
                                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                                        + CASE
                                                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                            ELSE ( CASE
                                                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                     ELSE ( CASE
                                                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                                                            END )
                                                                                   END )
                                                                          END = 0
                                                                        AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                                   ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                                      + CASE
                                                                                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                          ELSE ( CASE
                                                                                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                                   ELSE ( CASE
                                                                                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                          END )
                                                                                                                 END )
                                                                                                        END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                                 END )
                                                        END                                                                AS 生产毛利不含税,
                                                        CASE
                                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                                          ELSE ( CASE
                                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                                        AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                                                   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)
                                                                 END )
                                                        END                                                                AS 生产工价毛利不含税,
                                                        IFNULL(tj.sum_clje, 0) - ( CASE
                                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                     ELSE ( CASE
                                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                              ELSE ( CASE
                                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                                     END )
                                                                                            END )
                                                                                   END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
                                                        IFNULL(tj.sum_namount, 0)                                          AS 订单计价金额不含税,
                                                        IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0)                 AS 订单计价工价不含税,
                                                        IFNULL(tj.sum_clje, 0)                                             AS 订单计价料价不含税,
                                                        IFNULL(tb_in.sum_ngjje_in, 0)
                                                        + CASE
                                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                            ELSE ( CASE
                                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                     ELSE ( CASE
                                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                                            END )
                                                                   END )
                                                          END                                                              AS 厂内传票合计不含税,
                                                        IFNULL(tb_in.sum_ngjje_in, 0)                                      AS 厂内传票工价不含税,
                                                        CASE
                                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                          ELSE ( CASE
                                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                   ELSE ( CASE
                                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                                          END )
                                                                 END )
                                                        END                                                                AS 厂内传票料价不含税,
                                                        IFNULL(tb_out.sum_nhjje_out, 0)                                    AS 发外传票合计不含税,
                                                        IFNULL(tb_out.sum_ngjje_out, 0)                                    AS 发外传票工价不含税,
                                                        IFNULL(tb_out.sum_nclje_out, 0)                                    AS 发外传票料价不含税,
                                                        CHY                                                                AS 活源,
                                                        CCLBMMC                                                            AS 承揽部门,
                                                        CYWYXM                                                             AS 业务员,
                                                        lwcbs                                                              AS 是否完工,
                                                        Dwcrq                                                              AS 完工日期,
                                                        CONVERT(djfrq,CHAR(10))                                      AS 交付日期,
                                                        LJQBS                                                              AS 是否结清,
                                                        djqrq                                                              AS 结清日期,
                                                        izlconfirm                                                         AS 是否销货,
                                                        dzlconfirmrq                                                       AS 销货日期,
                                                        nzlconfirmje                                                       AS 销货金额,
                                                        nzlysje                                                            AS 销货应收,
                                                        IFNULL(ipaytime, 0)                                                AS 帐龄,
                                                        ( CASE
                                                            WHEN ljqbs = 0
                                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
                                                            ELSE 0
                                                          END )                                                            AS 付款周期,
                                                        ( CASE
                                                            WHEN ljqbs = 0
                                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
                                                            ELSE 0
                                                          END )                                                            AS 过期天数,
                                                        ( CASE
                                                            WHEN bsfsk = 1 THEN 1
                                                            ELSE 0
                                                          END )                                                            AS 是否收款,
                                                        nysje                                                              AS 预收款,
                                                        fskje                                                              AS 收款金额,
                                                        ( CASE
                                                            WHEN bsfdjfp = 1 THEN 1
                                                            ELSE 0
                                                          END )                                                            AS '是否开票',
                                                        ffpje                                                              AS 发票金额,
                                                        cfph                                                               AS 发票号,
                                                        cfprq                                                              AS 发票日期,
                                                        ( CASE
                                                            WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                                            ELSE 0
                                                          END )                                                            AS 未开完票金额,
                                                        ( CASE
                                                            WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
                                                            ELSE 0
                                                          END )                                                            AS 发票未收款金额,
                                                        iselforder                                                         AS 是否异常,
                                                        cselftype                                                          AS 异常类型,
                                                        CASE
                                                          WHEN bsfdjfp = 1 THEN ( CASE
                                                                                    WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                                                                    ELSE 0
                                                                                  END )
                                                          ELSE ( CASE
                                                                   WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
                                                                   ELSE ( CASE
                                                                            WHEN nzlconfirmje = 0 THEN nhjje
                                                                            ELSE nzlconfirmje
                                                                          END )
                                                                 END )
                                                        END                                                                未开票
                                                 FROM   MCYD Ord
                                                        LEFT JOIN (SELECT ICYDID,
                                                                          Max(Nsc) AS Nsc
                                                                   FROM   SCYDDX
                                                                   WHERE  IDXLXID = 573
                                                                   GROUP  BY ICYDID) AS Obj
                                                               ON ord.ICYDID = Obj.ICYDID
                                                        LEFT JOIN (SELECT ICYDID,
                                                                          Sum(NYSLS) AS nysls,
                                                                          Sum(nyssl) AS nyssl,
                                                                          Sum(nsyl)  AS nsyl
                                                                   FROM   SCYDDX
                                                                   GROUP  BY ICYDID) AS ObjMatier
                                                               ON Ord.ICYDID = ObjMatier.ICYDID
                                                        LEFT JOIN (SELECT Sum(CASE
                                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                                ELSE hz.传票预计价
                                                                              END) AS sum_nhjje_in,
                                                                          Sum(CASE
                                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                                ELSE hz.传票预计价
                                                                              END) AS sum_ngjje_in,
                                                                          Sum(CASE
                                                                                WHEN hz.dz = 1 THEN hz.nclje
                                                                                ELSE hz.nclje
                                                                              END) AS sum_nclje_in,
                                                                          hz.ICYDID
                                                                   FROM   (SELECT yjj.传票预计价单号,
                                                                                  IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                                  yjj.iCYDID,
                                                                                  d.cjjdh               计价单号,
                                                                                  d.ccydh               订单号,
                                                                                  d.cbz                 备注,
                                                                                  d.ngjje,
                                                                                  d.nclje,
                                                                                  IFNULL(d.iwjg, 0)     iwjg,
                                                                                  IFNULL(d.lzfbs, 0)    lzfbs,
                                                                                  d.nhjje,
                                                                                  IFNULL(d.ldz, 0)      dz,
                                                                                  yjj.bShbz
                                                                           FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                          a.ccydh,
                                                                                          a.icydid,
                                                                                          Sum(c.fje) 传票预计价,
                                                                                          b.bshbz
                                                                                   FROM   MCYD a
                                                                                          LEFT JOIN sccp b
                                                                                                 ON a.icydid = b.icydid
                                                                                          LEFT JOIN ZbHjXm c
                                                                                                 ON c.sccpid = b.sccpid
                                                                                   WHERE  b.bOutProcess = '0 '
                                                                                   GROUP  BY b.csccpbh,
                                                                                             a.icydid,
                                                                                             a.CCYDH,
                                                                                             b.bshbz,
                                                                                             b.bOutProcess) yjj
                                                                                  LEFT JOIN tbluey d
                                                                                         ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                                   WHERE  hz.iwjg = 0
                                                                          AND hz.bshbz = 1
                                                                          AND hz.lzfbs = 0
                                                                   GROUP  BY hz.ICYDID) tb_in
                                                               ON ord.icydid = tb_in.iCydid
                                                        LEFT JOIN (SELECT fw.iCYDID,
                                                                          sum_nhjje_out,
                                                                          sum_ngjje_out,
                                                                          sum_nclje_out,
                                                                          bz.cbz
                                                                   FROM   (SELECT Cast(Sum(( CASE
                                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                                               ELSE hz.nhjje
                                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
                                                                                  Cast(Sum(( CASE
                                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                                               ELSE hz.nhjje
                                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
                                                                                  Cast(Sum(CASE
                                                                                             WHEN hz.dz = 0 THEN hz.nclje
                                                                                             ELSE hz.nclje
                                                                                           END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2))     AS sum_nclje_out,
                                                                                  iCydid
                                                                           FROM   (SELECT yjj.传票预计价单号,
                                                                                          IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                                          yjj.iCYDID,
                                                                                          d.cjjdh               计价单号,
                                                                                          d.ccydh               订单号,
                                                                                          d.cbz                 备注,
                                                                                          d.ngjje,
                                                                                          d.nclje,
                                                                                          d.itax,
                                                                                          IFNULL(d.iwjg, 0)     iwjg,
                                                                                          IFNULL(d.lzfbs, 0)    lzfbs,
                                                                                          d.nhjje,
                                                                                          IFNULL(d.ldz, 0)      dz,
                                                                                          yjj.bShbz
                                                                                   FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                                  a.ccydh,
                                                                                                  a.icydid,
                                                                                                  Sum(c.fje) 传票预计价,
                                                                                                  b.bshbz
                                                                                           FROM   MCYD a
                                                                                                  LEFT JOIN sccp b
                                                                                                         ON a.icydid = b.icydid
                                                                                                  LEFT JOIN ZbHjXm c
                                                                                                         ON c.sccpid = b.sccpid
                                                                                           WHERE  b.bOutProcess = '1 '
                                                                                           GROUP  BY b.csccpbh,
                                                                                                     a.icydid,
                                                                                                     a.CCYDH,
                                                                                                     b.bshbz,
                                                                                                     b.bOutProcess) yjj
                                                                                          LEFT JOIN tbluey d
                                                                                                 ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                                           WHERE  hz.iwjg = 1
                                                                                  AND hz.lzfbs = 0
                                                                           GROUP  BY hz.ICYDID) fw
                                                                          LEFT JOIN (SELECT icydid,
                                                                                            (SELECT GROUP_CONCAT(cbz) FROM   TBluey
                                                                                             WHERE  icydid = a.icydid) AS cbz
                                                                                     FROM   TBluey a
                                                                                     GROUP  BY icydid) bz
                                                                                 ON bz.icydid = fw.iCYDID) tb_out
                                                               ON ord.icydid = tb_out.iCydid
                                                        LEFT JOIN (SELECT Sum(namount)                                              AS sum_namount,
                                                                          Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
                                                                          iCydid,
                                                                          CASE
                                                                            WHEN ldz = 1 THEN 1
                                                                            ELSE 0
                                                                          END                                                       ldz
                                                                   FROM   TJob
                                                                   WHERE  lzfbs = 0
                                                                   GROUP  BY iCydid,
                                                                             nclje,
                                                                             itax,
                                                                             ldz) tj
                                                               ON ord.ICYDID = tj.iCydid
                                                 WHERE  ord.ICYDSTATE > 0
                                                        AND 1 = 1) zb1
                                         WHERE  CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) >= '{$januaryFirst}'
                                                AND CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) <= '{$today}'
                                         GROUP  BY zb1.业务单位) hb
                                     ON hb.业务单位 = dq.业务单位)UNION(SELECT 1                                                   AS flag,
                        IFNULL(dq.业务单位, hb.业务单位)                            客户,
                        IFNULL(dq.销售收入, 000)                                销售收入,
                        IFNULL(hb.上年销售收入, 0.000)                            上年销售收入,
                        IFNULL(dq.销售收入, 000) - IFNULL(hb.上年销售收入, 0.000)     销售收入增减,
                        CASE
                          WHEN IFNULL(hb.上年销售收入, 0.000) > 0 THEN ( IFNULL(dq.销售收入, 000) / IFNULL(hb.上年销售收入, 0.000) - 1 )
                          WHEN IFNULL(hb.上年销售收入, 0.000) = 0.000
                               AND IFNULL(dq.销售收入, 000) > 0 THEN 1
                          ELSE 0
                        END                                                 AS 销售收入同期比,
                        IFNULL(dq.销售工价, 000)                                销售工价,
                        IFNULL(hb.上年销售工价, 0.000)                            上年销售工价,
                        IFNULL(dq.销售工价, 000) - IFNULL(hb.上年销售工价, 0.000)     销售工价增减,
                        IFNULL(dq.考核计算毛利, 000)                              考核计算毛利,
                        IFNULL(hb.上年考核计算毛利, 0.000)                          上年考核计算毛利,
                        IFNULL(dq.考核计算毛利, 000) - IFNULL(hb.上年考核计算毛利, 0.000) 考核计算毛利增减,
                        CASE
                          WHEN IFNULL(hb.上年考核计算毛利, 0.000) > 0 THEN ( IFNULL(dq.考核计算毛利, 000) / IFNULL(hb.上年考核计算毛利, 0.000) - 1 )
                          WHEN IFNULL(hb.上年考核计算毛利, 0.000) = 0.000
                               AND IFNULL(dq.考核计算毛利, 000) > 0 THEN 1
                          ELSE 0
                        END                                                 AS 毛利同期比
                 FROM   (SELECT zb.业务单位                            业务单位,
                                IFNULL(Sum(zb.合并金额), 0.000)        销售收入,
                                IFNULL(Sum(zb.合并工价), 0.000)        销售工价,
                                IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利
                         FROM   (SELECT CASE
                                          WHEN IFNULL(ldz, 0) = 1 THEN '是'
                                          ELSE '否'
                                        END                                                                登账,
                                        CONVERT(DCYRQ,CHAR(10))                                      AS 承印日期,
                                        CCYDH                                                              AS 订单号,
                                        CYJMC                                                              AS 印件名称,
                                        CASE
                                        WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                        WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                             OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                             OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司'
                                             OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                             OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                        WHEN CYWDWMC='浙江日报报业集团' 
                                             OR CYWDWMC='共产党员杂志社'
                                             OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                             OR CYWDWMC='浙江出版传媒有限公司'
                                             OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                        WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                             OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                        WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                        WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                        WHEN CYWDWMC='上海人民出版社有限公司'
                                             OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                        WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                             OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                        WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                        WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                        WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                        WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                        WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                        WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                        WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                        WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                        WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                        WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                        WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                             OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                        WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                        WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                        ELSE CYWDWMC
                                       END                                                            AS 业务单位,
                                        cyjlx                                                              印件类型,
                                        NCS                                                                AS 印数,
                                        CZWKB                                                              AS 开本,
                                        CDF                                                                AS 订法,
                                        NZWYZ                                                              AS 正文印张,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
                                          ELSE
                                            CASE
                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                   + CASE
                                                       WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                       ELSE ( CASE
                                                                WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                ELSE ( CASE
                                                                         WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                         ELSE IFNULL(tj.sum_clje, 0)
                                                                       END )
                                                              END )
                                                     END = 0
                                                   AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                              ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                 + CASE
                                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                     ELSE ( CASE
                                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                              ELSE ( CASE
                                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                                     END )
                                                                                            END )
                                                                                   END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                            END
                                        END                                                                AS 考核计算毛利不含税,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
                                          ELSE
                                            CASE
                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                   AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                              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)
                                            END
                                        END                                                                AS 考核计算工价毛利不含税,
                                        ( CASE
                                            WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
                                            ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
                                                                                WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                ELSE ( CASE
                                                                                         WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                         ELSE ( CASE
                                                                                                  WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                  ELSE IFNULL(tj.sum_clje, 0)
                                                                                                END )
                                                                                       END )
                                                                              END ) - IFNULL(tb_out.sum_nclje_out, 0) )
                                          END )                                                            AS 考核计算料价毛利不含税,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
                                          ELSE ( IFNULL(tj.sum_namount, 0) )
                                        END                                                                合并金额,
                                        CASE
                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
                                          ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
                                        END                                                                合并工价,
                                        ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )                      AS 采购毛利不含税,
                                        ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )                      AS 采购工价毛利不含税,
                                        ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )                      AS 采购料价毛利不含税,
                                        IFNULL(nwshjje, 0)                                                 AS 合同总金额不含税,
                                        IFNULL(nwsgjhj, 0)                                                 AS 合同工价不含税,
                                        IFNULL(nwsclhj, 0)                                                 AS 合同材料不含税,
                                        IFNULL(nwsbzhjje, 0)                                               AS 标准总金额不含税,
                                        IFNULL(nwsbzgjhj, 0)                                               AS 标准工价不含税,
                                        IFNULL(nwsbzclhj, 0)                                               AS 标准料价不含税,
                                        ord.nzkl                                                           AS 折扣率,
                                        CASE
                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                          ELSE ( CASE
                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                        + CASE
                                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                            ELSE ( CASE
                                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                     ELSE ( CASE
                                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                                            END )
                                                                   END )
                                                          END = 0
                                                        AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                   ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                      + CASE
                                                                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                          ELSE ( CASE
                                                                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                   ELSE ( CASE
                                                                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                                                                          END )
                                                                                                 END )
                                                                                        END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                 END )
                                        END                                                                AS 生产毛利不含税,
                                        CASE
                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                          ELSE ( CASE
                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                        AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                                   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)
                                                 END )
                                        END                                                                AS 生产工价毛利不含税,
                                        IFNULL(tj.sum_clje, 0) - ( CASE
                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                     ELSE ( CASE
                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                              ELSE ( CASE
                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                     END )
                                                                            END )
                                                                   END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
                                        IFNULL(tj.sum_namount, 0)                                          AS 订单计价金额不含税,
                                        IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0)                 AS 订单计价工价不含税,
                                        IFNULL(tj.sum_clje, 0)                                             AS 订单计价料价不含税,
                                        IFNULL(tb_in.sum_ngjje_in, 0)
                                        + CASE
                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                            ELSE ( CASE
                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                     ELSE ( CASE
                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                            END )
                                                   END )
                                          END                                                              AS 厂内传票合计不含税,
                                        IFNULL(tb_in.sum_ngjje_in, 0)                                      AS 厂内传票工价不含税,
                                        CASE
                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                          ELSE ( CASE
                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                   ELSE ( CASE
                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                          END )
                                                 END )
                                        END                                                                AS 厂内传票料价不含税,
                                        IFNULL(tb_out.sum_nhjje_out, 0)                                    AS 发外传票合计不含税,
                                        IFNULL(tb_out.sum_ngjje_out, 0)                                    AS 发外传票工价不含税,
                                        IFNULL(tb_out.sum_nclje_out, 0)                                    AS 发外传票料价不含税,
                                        CHY                                                                AS 活源,
                                        CCLBMMC                                                            AS 承揽部门,
                                        CYWYXM                                                             AS 业务员,
                                        lwcbs                                                              AS 是否完工,
                                        Dwcrq                                                              AS 完工日期,
                                        CONVERT(djfrq,CHAR(10))                                      AS 交付日期,
                                        LJQBS                                                              AS 是否结清,
                                        djqrq                                                              AS 结清日期,
                                        izlconfirm                                                         AS 是否销货,
                                        dzlconfirmrq                                                       AS 销货日期,
                                        nzlconfirmje                                                       AS 销货金额,
                                        nzlysje                                                            AS 销货应收,
                                        IFNULL(ipaytime, 0)                                                AS 帐龄,
                                        ( CASE
                                            WHEN ljqbs = 0
                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
                                            ELSE 0
                                          END )                                                            AS 付款周期,
                                        ( CASE
                                            WHEN ljqbs = 0
                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
                                            ELSE 0
                                          END )                                                            AS 过期天数,
                                        ( CASE
                                            WHEN bsfsk = 1 THEN 1
                                            ELSE 0
                                          END )                                                            AS 是否收款,
                                        nysje                                                              AS 预收款,
                                        fskje                                                              AS 收款金额,
                                        ( CASE
                                            WHEN bsfdjfp = 1 THEN 1
                                            ELSE 0
                                          END )                                                            AS '是否开票',
                                        ffpje                                                              AS 发票金额,
                                        cfph                                                               AS 发票号,
                                        cfprq                                                              AS 发票日期,
                                        ( CASE
                                            WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                            ELSE 0
                                          END )                                                            AS 未开完票金额,
                                        ( CASE
                                            WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
                                            ELSE 0
                                          END )                                                            AS 发票未收款金额,
                                        iselforder                                                         AS 是否异常,
                                        cselftype                                                          AS 异常类型,
                                        CASE
                                          WHEN bsfdjfp = 1 THEN ( CASE
                                                                    WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                                                    ELSE 0
                                                                  END )
                                          ELSE ( CASE
                                                   WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
                                                   ELSE ( CASE
                                                            WHEN nzlconfirmje = 0 THEN nhjje
                                                            ELSE nzlconfirmje
                                                          END )
                                                 END )
                                        END                                                                未开票
                                 FROM   MCYD Ord
                                        LEFT JOIN (SELECT Sum(CASE
                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                ELSE hz.传票预计价
                                                              END) AS sum_nhjje_in,
                                                          Sum(CASE
                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                ELSE hz.传票预计价
                                                              END) AS sum_ngjje_in,
                                                          Sum(CASE
                                                                WHEN hz.dz = 1 THEN hz.nclje
                                                                ELSE hz.nclje
                                                              END) AS sum_nclje_in,
                                                          hz.ICYDID
                                                   FROM   (SELECT yjj.传票预计价单号,
                                                                  IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                  yjj.iCYDID,
                                                                  d.cjjdh               计价单号,
                                                                  d.ccydh               订单号,
                                                                  d.cbz                 备注,
                                                                  d.ngjje,
                                                                  d.nclje,
                                                                  IFNULL(d.iwjg, 0)     iwjg,
                                                                  IFNULL(d.lzfbs, 0)    lzfbs,
                                                                  d.nhjje,
                                                                  IFNULL(d.ldz, 0)      dz,
                                                                  yjj.bShbz
                                                           FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                          a.ccydh,
                                                                          a.icydid,
                                                                          Sum(c.fje) 传票预计价,
                                                                          b.bshbz
                                                                   FROM   MCYD a
                                                                          LEFT JOIN sccp b
                                                                                 ON a.icydid = b.icydid
                                                                          LEFT JOIN ZbHjXm c
                                                                                 ON c.sccpid = b.sccpid
                                                                   WHERE  b.bOutProcess = '0 '
                                                                   GROUP  BY b.csccpbh,
                                                                             a.icydid,
                                                                             a.CCYDH,
                                                                             b.bshbz,
                                                                             b.bOutProcess) yjj
                                                                  LEFT JOIN tbluey d
                                                                         ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                   WHERE  hz.iwjg = 0
                                                          AND hz.bshbz = 1
                                                          AND hz.lzfbs = 0
                                                   GROUP  BY hz.ICYDID) tb_in
                                               ON ord.icydid = tb_in.iCydid
                                        LEFT JOIN (SELECT fw.iCYDID,
                                                          sum_nhjje_out,
                                                          sum_ngjje_out,
                                                          sum_nclje_out,
                                                          bz.cbz
                                                   FROM   (SELECT Cast(Sum(( CASE
                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                               ELSE hz.nhjje
                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
                                                                  Cast(Sum(( CASE
                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                               ELSE hz.nhjje
                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
                                                                  Cast(Sum(CASE
                                                                             WHEN hz.dz = 0 THEN hz.nclje
                                                                             ELSE hz.nclje
                                                                           END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2))     AS sum_nclje_out,
                                                                  iCydid
                                                           FROM   (SELECT yjj.传票预计价单号,
                                                                          IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                          yjj.iCYDID,
                                                                          d.cjjdh               计价单号,
                                                                          d.ccydh               订单号,
                                                                          d.cbz                 备注,
                                                                          d.ngjje,
                                                                          d.nclje,
                                                                          d.itax,
                                                                          IFNULL(d.iwjg, 0)     iwjg,
                                                                          IFNULL(d.lzfbs, 0)    lzfbs,
                                                                          d.nhjje,
                                                                          IFNULL(d.ldz, 0)      dz,
                                                                          yjj.bShbz
                                                                   FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                  a.ccydh,
                                                                                  a.icydid,
                                                                                  Sum(c.fje) 传票预计价,
                                                                                  b.bshbz
                                                                           FROM   MCYD a
                                                                                  LEFT JOIN sccp b
                                                                                         ON a.icydid = b.icydid
                                                                                  LEFT JOIN ZbHjXm c
                                                                                         ON c.sccpid = b.sccpid
                                                                           WHERE  b.bOutProcess = '1 '
                                                                           GROUP  BY b.csccpbh,
                                                                                     a.icydid,
                                                                                     a.CCYDH,
                                                                                     b.bshbz,
                                                                                     b.bOutProcess) yjj
                                                                          LEFT JOIN tbluey d
                                                                                 ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                           WHERE  hz.iwjg = 1
                                                                  AND hz.lzfbs = 0
                                                           GROUP  BY hz.ICYDID) fw
                                                          LEFT JOIN (SELECT icydid,
                                                                            (SELECT GROUP_CONCAT(cbz) FROM   TBluey
                                                                             WHERE  icydid = a.icydid) AS cbz
                                                                     FROM   TBluey a
                                                                     GROUP  BY icydid) bz
                                                                 ON bz.icydid = fw.iCYDID) tb_out
                                               ON ord.icydid = tb_out.iCydid
                                        LEFT JOIN (SELECT Sum(namount)                                              AS sum_namount,
                                                          Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
                                                          iCydid,
                                                          CASE
                                                            WHEN ldz = 1 THEN 1
                                                            ELSE 0
                                                          END                                                       ldz
                                                   FROM   TJob
                                                   WHERE  lzfbs = 0
                                                   GROUP  BY iCydid,
                                                             nclje,
                                                             itax,
                                                             ldz) tj
                                               ON ord.ICYDID = tj.iCydid
                                 WHERE  ord.ICYDSTATE > 0
                                        AND 1 = 1) zb
                         WHERE  CONVERT(zb.承印日期,CHAR(10)) >= '{$januaryFirst}'
                                AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
                         GROUP  BY zb.业务单位) dq
                        RIGHT JOIN (SELECT zb1.业务单位,
                                                Sum(zb1.合并金额)       上年销售收入,
                                                Sum(zb1.合并工价)       上年销售工价,
                                                Sum(zb1.考核计算毛利不含税)上年考核计算毛利
                                         FROM   (SELECT CASE
                                                          WHEN IFNULL(ldz, 0) = 1 THEN '是'
                                                          ELSE '否'
                                                        END                                                                登账,
                                                        CONVERT(DCYRQ,CHAR(10))                                      AS 承印日期,
                                                        CCYDH                                                              AS 订单号,
                                                        CYJMC                                                              AS 印件名称,
                                                        CASE
                                        WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                        WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                             OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                             OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司'
                                             OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                             OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                        WHEN CYWDWMC='浙江日报报业集团' 
                                             OR CYWDWMC='共产党员杂志社'
                                             OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                             OR CYWDWMC='浙江出版传媒有限公司'
                                             OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                        WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                             OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                        WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                        WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                        WHEN CYWDWMC='上海人民出版社有限公司'
                                             OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                        WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                             OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                        WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                        WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                        WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                        WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                        WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                        WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                        WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                        WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                        WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                        WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                        WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                             OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                        WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                        WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                        ELSE CYWDWMC
                                       END                                                            AS 业务单位,
                                                        cyjlx                                                              印件类型,
                                                        NCS                                                                AS 印数,
                                                        CZWKB                                                              AS 开本,
                                                        CDF                                                                AS 订法,
                                                        NZWYZ                                                              AS 正文印张,
                                                        cbz                                                                发外备注,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
                                                          ELSE
                                                            CASE
                                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                                   + CASE
                                                                       WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                       ELSE ( CASE
                                                                                WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                ELSE ( CASE
                                                                                         WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                         ELSE IFNULL(tj.sum_clje, 0)
                                                                                       END )
                                                                              END )
                                                                     END = 0
                                                                   AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                              ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                                 + CASE
                                                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                     ELSE ( CASE
                                                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                              ELSE ( CASE
                                                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                     END )
                                                                                                            END )
                                                                                                   END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                            END
                                                        END                                                                AS 考核计算毛利不含税,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )
                                                          ELSE
                                                            CASE
                                                              WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                                   AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                                              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)
                                                            END
                                                        END                                                                AS 考核计算工价毛利不含税,
                                                        ( CASE
                                                            WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )
                                                            ELSE ( IFNULL(tj.sum_clje, 0) - ( CASE
                                                                                                WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                ELSE ( CASE
                                                                                                         WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                         ELSE ( CASE
                                                                                                                  WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                  ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                END )
                                                                                                       END )
                                                                                              END ) - IFNULL(tb_out.sum_nclje_out, 0) )
                                                          END )                                                            AS 考核计算料价毛利不含税,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
                                                          ELSE ( IFNULL(tj.sum_namount, 0) )
                                                        END                                                                合并金额,
                                                        CASE
                                                          WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwsgjhj, 0) )
                                                          ELSE (( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ))
                                                        END                                                                合并工价,
                                                        ( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )                      AS 采购毛利不含税,
                                                        ( IFNULL(nwsgjhj, 0) - IFNULL(nwsbzgjhj, 0) )                      AS 采购工价毛利不含税,
                                                        ( IFNULL(nwsclhj, 0) - IFNULL(nwsbzclhj, 0) )                      AS 采购料价毛利不含税,
                                                        IFNULL(nwshjje, 0)                                                 AS 合同总金额不含税,
                                                        IFNULL(nwsgjhj, 0)                                                 AS 合同工价不含税,
                                                        IFNULL(nwsclhj, 0)                                                 AS 合同材料不含税,
                                                        IFNULL(nwsbzhjje, 0)                                               AS 标准总金额不含税,
                                                        IFNULL(nwsbzgjhj, 0)                                               AS 标准工价不含税,
                                                        IFNULL(nwsbzclhj, 0)                                               AS 标准料价不含税,
                                                        ord.nzkl                                                           AS 折扣率,
                                                        CASE
                                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                                          ELSE ( CASE
                                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                                        + CASE
                                                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                            ELSE ( CASE
                                                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                     ELSE ( CASE
                                                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                                                            END )
                                                                                   END )
                                                                          END = 0
                                                                        AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                                   ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                                      + CASE
                                                                                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                          ELSE ( CASE
                                                                                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                                   ELSE ( CASE
                                                                                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                          END )
                                                                                                                 END )
                                                                                                        END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                                 END )
                                                        END                                                                AS 生产毛利不含税,
                                                        CASE
                                                          WHEN IFNULL(tj.sum_namount, 0) = 0 THEN 0
                                                          ELSE ( CASE
                                                                   WHEN IFNULL(tb_in.sum_ngjje_in, 0) = 0
                                                                        AND IFNULL(tb_out.sum_ngjje_out, 0) = 0 THEN 0
                                                                   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)
                                                                 END )
                                                        END                                                                AS 生产工价毛利不含税,
                                                        IFNULL(tj.sum_clje, 0) - ( CASE
                                                                                     WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                     ELSE ( CASE
                                                                                              WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                              ELSE ( CASE
                                                                                                       WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                       ELSE IFNULL(tj.sum_clje, 0)
                                                                                                     END )
                                                                                            END )
                                                                                   END ) - IFNULL(tb_out.sum_nclje_out, 0) AS 生产料价毛利不含税,
                                                        IFNULL(tj.sum_namount, 0)                                          AS 订单计价金额不含税,
                                                        IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0)                 AS 订单计价工价不含税,
                                                        IFNULL(tj.sum_clje, 0)                                             AS 订单计价料价不含税,
                                                        IFNULL(tb_in.sum_ngjje_in, 0)
                                                        + CASE
                                                            WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                            ELSE ( CASE
                                                                     WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                     ELSE ( CASE
                                                                              WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                              ELSE IFNULL(tj.sum_clje, 0)
                                                                            END )
                                                                   END )
                                                          END                                                              AS 厂内传票合计不含税,
                                                        IFNULL(tb_in.sum_ngjje_in, 0)                                      AS 厂内传票工价不含税,
                                                        CASE
                                                          WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                          ELSE ( CASE
                                                                   WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                   ELSE ( CASE
                                                                            WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                            ELSE IFNULL(tj.sum_clje, 0)
                                                                          END )
                                                                 END )
                                                        END                                                                AS 厂内传票料价不含税,
                                                        IFNULL(tb_out.sum_nhjje_out, 0)                                    AS 发外传票合计不含税,
                                                        IFNULL(tb_out.sum_ngjje_out, 0)                                    AS 发外传票工价不含税,
                                                        IFNULL(tb_out.sum_nclje_out, 0)                                    AS 发外传票料价不含税,
                                                        CHY                                                                AS 活源,
                                                        CCLBMMC                                                            AS 承揽部门,
                                                        CYWYXM                                                             AS 业务员,
                                                        lwcbs                                                              AS 是否完工,
                                                        Dwcrq                                                              AS 完工日期,
                                                        CONVERT(djfrq,CHAR(10))                                      AS 交付日期,
                                                        LJQBS                                                              AS 是否结清,
                                                        djqrq                                                              AS 结清日期,
                                                        izlconfirm                                                         AS 是否销货,
                                                        dzlconfirmrq                                                       AS 销货日期,
                                                        nzlconfirmje                                                       AS 销货金额,
                                                        nzlysje                                                            AS 销货应收,
                                                        IFNULL(ipaytime, 0)                                                AS 帐龄,
                                                        ( CASE
                                                            WHEN ljqbs = 0
                                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED)
                                                            ELSE 0
                                                          END )                                                            AS 付款周期,
                                                        ( CASE
                                                            WHEN ljqbs = 0
                                                                 AND iZLConfirm = 1 THEN Cast(( NOW() - dZlConfirmRQ ) AS SIGNED) - IFNULL(ipaytime, 0)
                                                            ELSE 0
                                                          END )                                                            AS 过期天数,
                                                        ( CASE
                                                            WHEN bsfsk = 1 THEN 1
                                                            ELSE 0
                                                          END )                                                            AS 是否收款,
                                                        nysje                                                              AS 预收款,
                                                        fskje                                                              AS 收款金额,
                                                        ( CASE
                                                            WHEN bsfdjfp = 1 THEN 1
                                                            ELSE 0
                                                          END )                                                            AS '是否开票',
                                                        ffpje                                                              AS 发票金额,
                                                        cfph                                                               AS 发票号,
                                                        cfprq                                                              AS 发票日期,
                                                        ( CASE
                                                            WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                                            ELSE 0
                                                          END )                                                            AS 未开完票金额,
                                                        ( CASE
                                                            WHEN Abs(ffpje) > 0.0001 THEN nhjje - fskje
                                                            ELSE 0
                                                          END )                                                            AS 发票未收款金额,
                                                        iselforder                                                         AS 是否异常,
                                                        cselftype                                                          AS 异常类型,
                                                        CASE
                                                          WHEN bsfdjfp = 1 THEN ( CASE
                                                                                    WHEN Abs(nhjje) > 0.0001 THEN nhjje - ffpje
                                                                                    ELSE 0
                                                                                  END )
                                                          ELSE ( CASE
                                                                   WHEN IFNULL(tj.sum_namount, 0) > 0 THEN IFNULL(tj.sum_namount, 0)
                                                                   ELSE ( CASE
                                                                            WHEN nzlconfirmje = 0 THEN nhjje
                                                                            ELSE nzlconfirmje
                                                                          END )
                                                                 END )
                                                        END                                                                未开票
                                                 FROM   MCYD Ord
                                                        LEFT JOIN (SELECT ICYDID,
                                                                          Max(Nsc) AS Nsc
                                                                   FROM   SCYDDX
                                                                   WHERE  IDXLXID = 573
                                                                   GROUP  BY ICYDID) AS Obj
                                                               ON ord.ICYDID = Obj.ICYDID
                                                        LEFT JOIN (SELECT ICYDID,
                                                                          Sum(NYSLS) AS nysls,
                                                                          Sum(nyssl) AS nyssl,
                                                                          Sum(nsyl)  AS nsyl
                                                                   FROM   SCYDDX
                                                                   GROUP  BY ICYDID) AS ObjMatier
                                                               ON Ord.ICYDID = ObjMatier.ICYDID
                                                        LEFT JOIN (SELECT Sum(CASE
                                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                                ELSE hz.传票预计价
                                                                              END) AS sum_nhjje_in,
                                                                          Sum(CASE
                                                                                WHEN hz.dz = 1 THEN hz.nhjje
                                                                                ELSE hz.传票预计价
                                                                              END) AS sum_ngjje_in,
                                                                          Sum(CASE
                                                                                WHEN hz.dz = 1 THEN hz.nclje
                                                                                ELSE hz.nclje
                                                                              END) AS sum_nclje_in,
                                                                          hz.ICYDID
                                                                   FROM   (SELECT yjj.传票预计价单号,
                                                                                  IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                                  yjj.iCYDID,
                                                                                  d.cjjdh               计价单号,
                                                                                  d.ccydh               订单号,
                                                                                  d.cbz                 备注,
                                                                                  d.ngjje,
                                                                                  d.nclje,
                                                                                  IFNULL(d.iwjg, 0)     iwjg,
                                                                                  IFNULL(d.lzfbs, 0)    lzfbs,
                                                                                  d.nhjje,
                                                                                  IFNULL(d.ldz, 0)      dz,
                                                                                  yjj.bShbz
                                                                           FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                          a.ccydh,
                                                                                          a.icydid,
                                                                                          Sum(c.fje) 传票预计价,
                                                                                          b.bshbz
                                                                                   FROM   MCYD a
                                                                                          LEFT JOIN sccp b
                                                                                                 ON a.icydid = b.icydid
                                                                                          LEFT JOIN ZbHjXm c
                                                                                                 ON c.sccpid = b.sccpid
                                                                                   WHERE  b.bOutProcess = '0 '
                                                                                   GROUP  BY b.csccpbh,
                                                                                             a.icydid,
                                                                                             a.CCYDH,
                                                                                             b.bshbz,
                                                                                             b.bOutProcess) yjj
                                                                                  LEFT JOIN tbluey d
                                                                                         ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                                   WHERE  hz.iwjg = 0
                                                                          AND hz.bshbz = 1
                                                                          AND hz.lzfbs = 0
                                                                   GROUP  BY hz.ICYDID) tb_in
                                                               ON ord.icydid = tb_in.iCydid
                                                        LEFT JOIN (SELECT fw.iCYDID,
                                                                          sum_nhjje_out,
                                                                          sum_ngjje_out,
                                                                          sum_nclje_out,
                                                                          bz.cbz
                                                                   FROM   (SELECT Cast(Sum(( CASE
                                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                                               ELSE hz.nhjje
                                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
                                                                                  Cast(Sum(( CASE
                                                                                               WHEN hz.dz = 0 THEN hz.传票预计价
                                                                                               ELSE hz.nhjje
                                                                                             END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
                                                                                  Cast(Sum(CASE
                                                                                             WHEN hz.dz = 0 THEN hz.nclje
                                                                                             ELSE hz.nclje
                                                                                           END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2))     AS sum_nclje_out,
                                                                                  iCydid
                                                                           FROM   (SELECT yjj.传票预计价单号,
                                                                                          IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                                          yjj.iCYDID,
                                                                                          d.cjjdh               计价单号,
                                                                                          d.ccydh               订单号,
                                                                                          d.cbz                 备注,
                                                                                          d.ngjje,
                                                                                          d.nclje,
                                                                                          d.itax,
                                                                                          IFNULL(d.iwjg, 0)     iwjg,
                                                                                          IFNULL(d.lzfbs, 0)    lzfbs,
                                                                                          d.nhjje,
                                                                                          IFNULL(d.ldz, 0)      dz,
                                                                                          yjj.bShbz
                                                                                   FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                                  a.ccydh,
                                                                                                  a.icydid,
                                                                                                  Sum(c.fje) 传票预计价,
                                                                                                  b.bshbz
                                                                                           FROM   MCYD a
                                                                                                  LEFT JOIN sccp b
                                                                                                         ON a.icydid = b.icydid
                                                                                                  LEFT JOIN ZbHjXm c
                                                                                                         ON c.sccpid = b.sccpid
                                                                                           WHERE  b.bOutProcess = '1 '
                                                                                           GROUP  BY b.csccpbh,
                                                                                                     a.icydid,
                                                                                                     a.CCYDH,
                                                                                                     b.bshbz,
                                                                                                     b.bOutProcess) yjj
                                                                                          LEFT JOIN tbluey d
                                                                                                 ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                                           WHERE  hz.iwjg = 1
                                                                                  AND hz.lzfbs = 0
                                                                           GROUP  BY hz.ICYDID) fw
                                                                          LEFT JOIN (SELECT icydid,
                                                                                            (SELECT GROUP_CONCAT(cbz) FROM   TBluey
                                                                                             WHERE  icydid = a.icydid) AS cbz
                                                                                     FROM   TBluey a
                                                                                     GROUP  BY icydid) bz
                                                                                 ON bz.icydid = fw.iCYDID) tb_out
                                                               ON ord.icydid = tb_out.iCydid
                                                        LEFT JOIN (SELECT Sum(namount)                                              AS sum_namount,
                                                                          Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
                                                                          iCydid,
                                                                          CASE
                                                                            WHEN ldz = 1 THEN 1
                                                                            ELSE 0
                                                                          END                                                       ldz
                                                                   FROM   TJob
                                                                   WHERE  lzfbs = 0
                                                                   GROUP  BY iCydid,
                                                                             nclje,
                                                                             itax,
                                                                             ldz) tj
                                                               ON ord.ICYDID = tj.iCydid
                                                 WHERE  ord.ICYDSTATE > 0
                                                        AND 1 = 1) zb1
                                         WHERE  CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) >= '{$januaryFirst}'
                                                AND CONVERT(DATE_ADD(zb1.承印日期,INTERVAL 1 YEAR),CHAR(10)) <= '{$today}'
                                         GROUP  BY zb1.业务单位) hb
                                     ON hb.业务单位 = dq.业务单位))a) aa
 )bb
 ORDER BY  bb.销售收入(万元) desc
 ";
//        WHERE bb.销售收入(万元)>200

        $result=Db::query($sql);
        if ($result) {
            $redis->set($redis_key, json_encode($result));
            echo date("Y-m-d H:i:s").'   存进去了';
            return $result;
        }
    }
    //年度考核销售收入同比上升和下滑一览表->接口
    public function year_sale() {
        $redis = redis();
        $result = json_decode($redis->get(md5('year_dclandsx_redis')), true);
        // 排除销售收入增长率为负100的值
        $result = array_filter($result, function ($item) {
            return $item['销售收入增长率'] != -100;
        });
        //  $result = array_filter($result, function ($item) {
        //     return $item['销售收入增长率'] != '/';
        // });
        //  $result = array_filter($result, function ($item) {
        //     return $item['销售收入增长率'] != '0.00';
        // });
        //排序
        usort($result, function ($a, $b) {
            $a_value = $a['销售收入(万元)'];
            $b_value = $b['销售收入(万元)'];
            return $b_value <=> $a_value; // 按照销售收入降序排序
        });
        // 获取数据列定义
        $list['columns'] = [
            ['name' => '客户名称', 'id' => 'khmc', 'width' => '55', 'autoWrap' => "true", 'textAlign' => 'left'],
            ['name' => '销售金额(万元)', 'id' => 'xsje', 'width' => '24', 'autoWrap' => "true", 'textAlign' => 'left'],
            ['name' => '同比增长率', 'id' => 'zzl', 'width' => '18', 'autoWrap' => "true", 'textAlign' => 'left']
        ];
        // 截取前几客户
        $top_clients = array_slice($result, 0, 6);
        // 截取后几客户
        $bottom_clients = array_slice($result, -6);

        // 合并前四个和后三个客户
        $merged_clients = array_merge($top_clients, $bottom_clients);
        // 填充行数据
        foreach ($merged_clients as $v) {
            $list['rows'][] = [
                'khmc' => $v['客户'],
                'xsje' => $v['销售收入(万元)'],
                'zzl' => $v['销售收入增长率'],
            ];
        }
        $res['status'] = 0;
        $res['msg'] = '';
        $res['data'] = $list;
        return json($res);
    }

    //图书板块大客户分析列表->缓存
    public function customer_analysis_redis(){
        $redis = redis();
        $redis_key = md5('customer_analysis_redis');
        $today = date("Y-m-d");
        $qtoday = date("Y-m-d", strtotime("-1 year"));
        $sql = "SELECT hz.客户,
       hz.销售得分 + hz.毛利得分 + hz.单均金额得分 + hz.库存数得分 + hz.投诉次数得分 AS 总分,
       hz.销售收入(万元),
       hz.销售排名,
       hz.销售得分,
       hz.考核计算毛利(万元),
       hz.毛利排名,
       hz.毛利得分,
       hz.单均金额(万元),
       hz.单均金额排名,
       hz.单均金额得分,
       hz.库存数,
       hz.库存数排名,
       hz.库存数得分,
       hz.投诉次数,
       hz.投诉次数排名,
       hz.投诉次数得分
FROM   (SELECT *,
               Row_number()
                 OVER (
                   ORDER BY tb.销售收入(万元) DESC)   AS 销售排名,
               CASE
                 WHEN Row_number()
                        OVER (
                          ORDER BY tb.销售收入(万元) DESC) <= 30 THEN 30 - Row_number()
                                                                         OVER (
                                                                           ORDER BY tb.销售收入(万元) DESC) + 1
                 ELSE 0
               END                                AS 销售得分,
               Row_number()
                 OVER (
                   ORDER BY tb.考核计算毛利(万元) DESC) AS 毛利排名,
               CASE
                 WHEN Row_number()
                        OVER (
                          ORDER BY tb.考核计算毛利(万元) DESC) <= 25 THEN 25 - Row_number()
                                                                           OVER (
                                                                             ORDER BY tb.考核计算毛利(万元) DESC) + 1
                 ELSE 0
               END                                AS 毛利得分,
               Row_number()
                 OVER (
                   ORDER BY tb.单均金额(万元) DESC)   AS 单均金额排名,
               CASE
                 WHEN Row_number()
                        OVER (
                          ORDER BY tb.单均金额(万元) DESC) <= 15 THEN 15 - Row_number()
                                                                         OVER (
                                                                           ORDER BY tb.单均金额(万元) DESC) + 1
                 ELSE 0
               END                                AS 单均金额得分,
               Dense_rank()
                 OVER (
                   ORDER BY tb.库存数 )              AS 库存数排名,
               CASE
                 WHEN Dense_rank()
                        OVER (
                          ORDER BY tb.库存数 ) <= 15 THEN 15 - Dense_rank()
                                                              OVER (
                                                                ORDER BY tb.库存数 ) + 1
                 ELSE 0
               END                                AS 库存数得分,
               Dense_rank()
                 OVER (
                   ORDER BY tb.投诉次数 )             AS 投诉次数排名,
               CASE
                 WHEN Dense_rank()
                        OVER (
                          ORDER BY tb.投诉次数 ) <= 15 THEN 15 - Dense_rank()
                                                               OVER (
                                                                 ORDER BY tb.投诉次数 ) + 1
                 ELSE 0
               END                                AS 投诉次数得分
        FROM   (SELECT aa.客户,
                       aa.销售收入(万元),
                       aa.考核计算毛利(万元),
                       Cast(aa.销售收入(万元) / aa.订单数 AS DECIMAL(5, 2)) '单均金额(万元)',
                       IFNULL(Cast(aa.库存数 AS SIGNED), 0)                库存数,
                       IFNULL(bb.投诉次数, 0)                            投诉次数
                FROM   (SELECT a.客户,
                               CONVERT(Round(a.销售收入 / 10000, 2),DECIMAL(10, 2))   AS '销售收入(万元)',
                               CONVERT(Round(a.考核计算毛利 / 10000, 2),DECIMAL(10, 2)) AS '考核计算毛利(万元)',
                               a.订单数,
                               a.库存数
                        FROM   (SELECT dq.业务单位                客户,
                                       IFNULL(dq.销售收入, 000)   销售收入,
                                       IFNULL(dq.考核计算毛利, 000) 考核计算毛利,
                                       dq.订单数,
                                       dq.库存数
                                FROM   (SELECT zb.业务单位                            业务单位,
                                               IFNULL(Sum(zb.合并金额), 0.000)        销售收入,
                                               IFNULL(Sum(zb.考核计算毛利不含税), 0.000) 考核计算毛利,
                                               Count(DISTINCT zb.订单号)             订单数,
                                               Sum(zb.nAmount)                    库存数
                                        FROM   (SELECT CASE
                                                         WHEN IFNULL(ldz, 0) = 1 THEN '是'
                                                         ELSE '否'
                                                       END                           登账,
                                                       CONVERT(DCYRQ,CHAR(10)) AS 承印日期,
                                                       CCYDH                         AS 订单号,
                                                       ord.IFCYDID,
                                                       CYJMC                         AS 印件名称,
                                                       (CASE
                                        WHEN CYWDWMC='浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                        WHEN CYWDWMC='浙江教育出版社有限公司(省店)' 
                                             OR CYWDWMC='浙江省新华书店集团有限公司(教育)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司(少儿)'
                                             OR CYWDWMC='浙江少年儿童出版社有限公司(省店)'
                                             OR CYWDWMC='浙江省新华书店集团有限公司'
                                             OR CYWDWMC='浙江教育出版社集团有限公司(省店)'
                                             OR CYWDWMC='浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                        WHEN CYWDWMC='浙江日报报业集团' 
                                             OR CYWDWMC='共产党员杂志社'
                                             OR CYWDWMC='《浙江共产党员》杂志有限公司'THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='浙江出版传媒股份有限公司'
                                             OR CYWDWMC='浙江出版传媒有限公司'
                                             OR CYWDWMC='浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                        WHEN CYWDWMC='浙江省出版总社期刊出版中心' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中信出版集团股份有限公司(上海三辉)' 
                                             OR CYWDWMC='中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                        WHEN CYWDWMC='上海古籍出版社' THEN '上海古籍出版社有限公司'
                                        WHEN CYWDWMC='大星(上海)文化传媒有限公司(上海文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(河南文艺)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(上海书店)'
                                             OR CYWDWMC='大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                        WHEN CYWDWMC='上海人民出版社有限公司'
                                             OR CYWDWMC='上海人民出版社' THEN '上海人民出版社有限责任公司'
                                        WHEN CYWDWMC='中等职业教育杂志社有限公司' 
                                             OR CYWDWMC='浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                        WHEN CYWDWMC='复旦大学出版社' THEN '复旦大学出版社有限公司'
                                        WHEN CYWDWMC='浙江教育报刊社' THEN '浙江教育报刊总社'
                                        WHEN CYWDWMC='读者杂志社' THEN '读者出版传媒股份有限公司'
                                        WHEN CYWDWMC='教育科学出版社' THEN '教育科学出版社有限公司'
                                        WHEN CYWDWMC='人民出版社有限公司' THEN '人民出版社'
                                        WHEN CYWDWMC='中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                        WHEN CYWDWMC='安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                        WHEN CYWDWMC='上海译文出版社' THEN '上海译文出版社有限公司'
                                        WHEN CYWDWMC='上海辞书出版社' THEN '上海辞书出版社有限公司'
                                        WHEN CYWDWMC='《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                        WHEN CYWDWMC='《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                        WHEN CYWDWMC='浙江科学技术出版社有限公司(期刊总社)'
                                             OR CYWDWMC='浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                        WHEN CYWDWMC='中国青年出版社' THEN '中国青年出版总社有限公司'
                                        WHEN CYWDWMC='中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                        WHEN CYWDWMC='浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                        ELSE CYWDWMC
                                       END)                       AS 业务单位,
                                                       cyjlx                         印件类型,
                                                       NCS                           AS 印数,
                                                       CZWKB                         AS 开本,
                                                       CDF                           AS 订法,
                                                       NZWYZ                         AS 正文印张,
                                                       fn.nAmount,
                                                       CASE
                                                         WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) )
                                                         ELSE ( IFNULL(tj.sum_namount, 0) )
                                                       END                           合并金额,
                                                       CASE
                                                         WHEN IFNULL(ldz, 0) = 0 THEN( IFNULL(nwshjje, 0) - IFNULL(nwsbzhjje, 0) )
                                                         ELSE
                                                           CASE
                                                             WHEN IFNULL(tb_in.sum_ngjje_in, 0)
                                                                  + CASE
                                                                      WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                      ELSE ( CASE
                                                                               WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                               ELSE ( CASE
                                                                                        WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                        ELSE IFNULL(tj.sum_clje, 0)
                                                                                      END )
                                                                             END )
                                                                    END = 0
                                                                  AND IFNULL(tb_out.sum_nhjje_out, 0) = 0 THEN 0
                                                             ELSE IFNULL(tj.sum_namount, 0) - ( IFNULL(tb_in.sum_ngjje_in, 0)
                                                                                                + CASE
                                                                                                    WHEN ( IFNULL(tj.sum_clje, 0) ) = 0 THEN 0
                                                                                                    ELSE ( CASE
                                                                                                             WHEN ( IFNULL(tb_out.sum_nhjje_out, 0) > ( IFNULL(tj.sum_namount, 0) - IFNULL(tj.sum_clje, 0) ) * 1.5 ) THEN 0
                                                                                                             ELSE ( CASE
                                                                                                                      WHEN IFNULL(tb_out.sum_nclje_out, 0) > 0 THEN IFNULL(tj.sum_clje, 0) - IFNULL(tb_out.sum_nclje_out, 0)
                                                                                                                      ELSE IFNULL(tj.sum_clje, 0)
                                                                                                                    END )
                                                                                                           END )
                                                                                                  END ) - IFNULL(tb_out.sum_nhjje_out, 0)
                                                           END
                                                       END                           AS 考核计算毛利不含税
                                                FROM   MCYD Ord
                                                       LEFT JOIN (SELECT Sum(CASE
                                                                               WHEN hz.dz = 1 THEN hz.nhjje
                                                                               ELSE hz.传票预计价
                                                                             END) AS sum_nhjje_in,
                                                                         Sum(CASE
                                                                               WHEN hz.dz = 1 THEN hz.nhjje
                                                                               ELSE hz.传票预计价
                                                                             END) AS sum_ngjje_in,
                                                                         Sum(CASE
                                                                               WHEN hz.dz = 1 THEN hz.nclje
                                                                               ELSE hz.nclje
                                                                             END) AS sum_nclje_in,
                                                                         hz.ICYDID
                                                                  FROM   (SELECT yjj.传票预计价单号,
                                                                                 IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                                 yjj.iCYDID,
                                                                                 d.cjjdh               计价单号,
                                                                                 d.ccydh               订单号,
                                                                                 d.cbz                 备注,
                                                                                 d.ngjje,
                                                                                 d.nclje,
                                                                                 IFNULL(d.iwjg, 0)     iwjg,
                                                                                 IFNULL(d.lzfbs, 0)    lzfbs,
                                                                                 d.nhjje,
                                                                                 IFNULL(d.ldz, 0)      dz,
                                                                                 yjj.bShbz
                                                                          FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                         a.ccydh,
                                                                                         a.icydid,
                                                                                         Sum(c.fje) 传票预计价,
                                                                                         b.bshbz
                                                                                  FROM   MCYD a
                                                                                         LEFT JOIN sccp b
                                                                                                ON a.icydid = b.icydid
                                                                                         LEFT JOIN ZbHjXm c
                                                                                                ON c.sccpid = b.sccpid
                                                                                  WHERE  b.bOutProcess = '0 '
                                                                                  GROUP  BY b.csccpbh,
                                                                                            a.icydid,
                                                                                            a.CCYDH,
                                                                                            b.bshbz,
                                                                                            b.bOutProcess) yjj
                                                                                 LEFT JOIN tbluey d
                                                                   ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                                  WHERE  hz.iwjg = 0
                                                                         AND hz.bshbz = 1
                                                                         AND hz.lzfbs = 0
                                                                  GROUP  BY hz.ICYDID) tb_in
                                                              ON ord.icydid = tb_in.iCydid
                                                       LEFT JOIN (SELECT fw.iCYDID,
                                                                         sum_nhjje_out,
                                                                         sum_ngjje_out,
                                                                         sum_nclje_out,
                                                                         bz.cbz
                                                                  FROM   (SELECT Cast(Sum(( CASE
                                                                                              WHEN hz.dz = 0 THEN hz.传票预计价
                                                                                              ELSE hz.nhjje
                                                                                            END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_nhjje_out,
                                                                                 Cast(Sum(( CASE
                                                                                              WHEN hz.dz = 0 THEN hz.传票预计价
                                                                                              ELSE hz.nhjje
                                                                                            END ) * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2)) AS sum_ngjje_out,
                                                                                 Cast(Sum(CASE
                                                                                            WHEN hz.dz = 0 THEN hz.nclje
                                                                                            ELSE hz.nclje
                                                                                          END * 100 / ( 100 + hz.itax )) AS DECIMAL(18, 2))     AS sum_nclje_out,
                                                                                 iCydid
                                                                          FROM   (SELECT yjj.传票预计价单号,
                                                                                         IFNULL(yjj. 传票预计价, 0) 传票预计价,
                                                                                         yjj.iCYDID,
                                                                                         d.cjjdh               计价单号,
                                                                                         d.ccydh               订单号,
                                                                                         d.cbz                 备注,
                                                                                         d.ngjje,
                                                                                         d.nclje,
                                                                                         d.itax,
                                                                                         IFNULL(d.iwjg, 0)     iwjg,
                                                                                         IFNULL(d.lzfbs, 0)    lzfbs,
                                                                                         d.nhjje,
                                                                                         IFNULL(d.ldz, 0)      dz,
                                                                                         yjj.bShbz
                                                                                  FROM   (SELECT b.csccpbh  传票预计价单号,
                                                                                                 a.ccydh,
                                                                                                 a.icydid,
                                                                                                 Sum(c.fje) 传票预计价,
                                                                                                 b.bshbz
                                                                                          FROM   MCYD a
                                                                                                 LEFT JOIN sccp b
                                                                                                        ON a.icydid = b.icydid
                                                                                                 LEFT JOIN ZbHjXm c
                                                                                                        ON c.sccpid = b.sccpid
                                                                                          WHERE  b.bOutProcess = '1 '
                                                                                          GROUP  BY b.csccpbh,
                                                                                                    a.icydid,
                                                                                                    a.CCYDH,
                                                                                                    b.bshbz,
                                                                                                    b.bOutProcess) yjj
                                                                                         LEFT JOIN tbluey d
                                                                                                ON yjj.传票预计价单号 = CONVERT(d.cjjdh,CHAR(14))) hz
                                                                          WHERE  hz.iwjg = 1
                                                                                 AND hz.lzfbs = 0
                                                                          GROUP  BY hz.ICYDID) fw
                                                                         LEFT JOIN (SELECT icydid,
                                                                                           (SELECT GROUP_CONCAT(cbz) FROM   TBluey
                                                                                            WHERE  icydid = a.icydid) AS cbz
                                                                                    FROM   TBluey a
                                                                                    GROUP  BY icydid) bz
                                                                                ON bz.icydid = fw.iCYDID) tb_out
                                                              ON ord.icydid = tb_out.iCydid
                                                       LEFT JOIN (SELECT Sum(namount)                                              AS sum_namount,
                                                                         Cast(Sum(nclje * 100 / ( 100 + itax )) AS DECIMAL(18, 2)) AS sum_clje,
                                                                         iCydid,
                                                                         CASE
                                                                           WHEN ldz = 1 THEN 1
                                                                           ELSE 0
                                                                         END                                                       ldz
                                                                  FROM   TJob
                                                                  WHERE  lzfbs = 0
                                                                  GROUP  BY iCydid,
                                                                            nclje,
                                                                            itax,
                                                                            ldz) tj
                                                              ON ord.ICYDID = tj.iCydid
                                                       LEFT JOIN fnSubstance fn
                                                              ON ord.CCYDH = fn.cBatchCode
                                                WHERE  ord.ICYDSTATE > 0
                                                       AND ( ord.CYJLX NOT LIKE '%课本'
                                                              OR ord.CYJLX NOT LIKE '%教辅' )/*销售收入、考核计算毛利、订单数、品种数、库存数据排除其教材教辅*/
                                               ) zb
                                        WHERE  CONVERT(zb.承印日期,CHAR(10)) >= '{$qtoday}'
                                               AND CONVERT(zb.承印日期,CHAR(10)) <= '{$today}'
                                        GROUP  BY zb.业务单位) dq)a) aa
                       LEFT JOIN (SELECT D2.cdwmc 客户单位,
                                         Count(*) AS 投诉次数
                                  FROM   ecComplainFeedback B
                                         LEFT JOIN (SELECT d1.iywdwid,
                                                           CASE
                                                             WHEN d1.cdwmc = '浙江省烟草学会' THEN '浙江中烟工业有限责任公司'
                                                             WHEN d1.cdwmc = '中国茶叶杂志社'THEN'中国农业科学院茶叶研究所'
                                                             WHEN d1.cdwmc = '中国青年出版社' THEN '中国青年出版总社有限公司'
                                                             WHEN d1.cdwmc = '中国茶叶杂志社' THEN '中国农业科学院茶叶研究所'
                                                             WHEN d1.cdwmc = '浙江科学技术出版社有限公司(期刊总社)'
                                                                   OR d1.cdwmc = '浙江省期刊总社有限公司(博库)' THEN '浙江省期刊总社有限公司'
                                                             WHEN d1.cdwmc = '《浙江档案》杂志社' THEN '《浙江档案》杂志社有限责任公司'
                                                             WHEN d1.cdwmc = '《浙江共产党员》杂志集团有限公司' THEN '浙江日报报业集团(含共产党员)'
                                                             WHEN d1.cdwmc = '上海辞书出版社' THEN '上海辞书出版社有限公司'
                                                             WHEN d1.cdwmc = '上海译文出版社' THEN '上海译文出版社有限公司'
                                                             WHEN d1.cdwmc = '安徽师范大学出版社' THEN '安徽师范大学出版社有限责任公司'
                                                             WHEN d1.cdwmc = '中国美术学院出版社' THEN '中国美术学院出版社有限公司'
                                                             WHEN d1.cdwmc = '人民出版社有限公司' THEN '人民出版社'
                                                             WHEN d1.cdwmc = '教育科学出版社' THEN '教育科学出版社有限公司'
                                                             WHEN d1.cdwmc = '读者杂志社' THEN '读者出版传媒股份有限公司'
                                                             WHEN d1.cdwmc = '浙江教育报刊社' THEN '浙江教育报刊总社'
                                                             WHEN d1.cdwmc = '复旦大学出版社' THEN '复旦大学出版社有限公司'
                                                             WHEN d1.cdwmc = '中等职业教育杂志社有限公司'
                                                                   OR d1.cdwmc = '浙江教育出版社有限公司(职业教育)' THEN '浙江《职业教育》杂志社有限公司'
                                                             WHEN d1.cdwmc = '上海人民出版社有限公司'
                                                                   OR d1.cdwmc = '上海人民出版社' THEN '上海人民出版社有限责任公司'
                                                             WHEN d1.cdwmc = '大星(上海)文化传媒有限公司(上海文艺)'
                                                                   OR d1.cdwmc = '大星(上海)文化传媒有限公司(浙江文艺)'
                                                                   OR d1.cdwmc = '大星(上海)文化传媒有限公司(河南文艺)'
                                                                   OR d1.cdwmc = '大星(上海)文化传媒有限公司(上海书店)'
                                                                   OR d1.cdwmc = '大星(上海)文化传媒有限公司(浙江少儿)' THEN '大星(上海)文化传媒有限公司'
                                                             WHEN d1.cdwmc = '上海古籍出版社' THEN '上海古籍出版社有限公司'
                                                             WHEN d1.cdwmc = '中信出版集团股份有限公司(上海三辉)'
                                                                   OR d1.cdwmc = '中信出版集团股份有限公司(大星文化)' THEN '中信出版集团股份有限公司'
                                                             WHEN d1.cdwmc = '浙江日报报业集团'
                                                                   OR d1.cdwmc = '《浙江共产党员》杂志有限公司'
                                                                   OR d1.cdwmc = '共产党员杂志社' THEN '浙江日报报业集团(含共产党员)'
                                                             WHEN d1.cdwmc = '浙江出版传媒股份有限公司'
                                                                   OR d1.cdwmc = '浙江出版传媒有限公司'
                                                                   OR d1.cdwmc = '浙江省出版公司' THEN '浙江出版传媒股份有限公司(含省出版公司)'
                                                             WHEN d1.cdwmc = '浙江教育出版社有限公司(省店)'
                                                                   OR d1.cdwmc = '浙江省新华书店集团有限公司(教育)'
                                                                   OR d1.cdwmc = '浙江省新华书店集团有限公司(少儿)'
                                                                   OR d1.cdwmc = '浙江少年儿童出版社有限公司(省店)'
                                                                   OR d1.cdwmc = '浙江省新华书店集团有限公司'
                                                                   OR d1.cdwmc = '浙江教育出版社集团有限公司(省店)'
                                                                   OR d1.cdwmc = '浙江工商大学出版社有限公司(省店)' THEN '浙江省新华书店集团有限公司(含教育、少儿)'
                                                             WHEN d1.cdwmc = '浙江教育出版社有限公司' THEN '浙江教育出版社集团有限公司'
                                                             ELSE d1.cdwmc
                                                           END AS cdwmc
                                                    FROM   DZYWDW d1)D2
                                                ON D2.iywdwid = B.iClientID
                                         LEFT JOIN MCYD M
                                                ON M.CCYDH = B.cOrderBillCode
                                         INNER JOIN qlOrderProduct p
                                                 ON M.ICYDID = p.ID_Mcyd
                                         LEFT JOIN (SELECT a.ID_qlOrderProduct,
                                                           Sum(a.iAmountOut) iAmount_Out
                                                    FROM   SCYDYSQX a
                                                    GROUP  BY a.ID_qlOrderProduct) c
                                                ON c.ID_qlOrderProduct = p.ID
                                         LEFT JOIN ecComplainContent DD
                                                ON DD.iComplainFBID = B.iID
                                         LEFT JOIN tbConfig E
                                                ON E.iNoConfig = DD.iClassID_C
                                         LEFT JOIN tbConfig T
                                                ON T.iNoConfig = DD.iClassID_P
                                         LEFT JOIN (SELECT R.iComplainFBID,
                                                           CR1.cRespDept
                                                    FROM   ecComplainReasonAnalysis R
                                                           LEFT JOIN ecComplainResponsibility CR1
                                                                  ON CR1.iComplainRAID = R.iID) CR
                                                ON B.iID = CR.iComplainFBID
                                  WHERE  1 = 1
                                         AND ( M.CYJLX NOT LIKE '%课本'
                                                OR M.CYJLX NOT LIKE '%教辅' ) /*质量问题数据排除教材教辅*/
                                         AND b.dFeedbackDate >= '{$qtoday}'
                                         AND b.dFeedbackDate <= '{$today}'
                                  GROUP  BY D2.cdwmc)bb
                              ON aa.客户 = bb.客户单位
                /*WHERE  aa.[销售收入(万元)] > 200*/
                WHERE  aa.客户 NOT IN ( '浙江出版传媒股份有限公司(含省出版公司)', '人民教育出版社有限公司', '教育科学出版社有限公司' ))tb)hz 
                 ORDER BY 总分 DESC";
        $res=Db::query($sql);
        if($res){
            $redis->set($redis_key, json_encode($res));
            echo date("Y-m-d H:i:s").'   存进去了';
            return $res;
        }
    }
    //图书板块大客户分析列表->接口
    public function customer_analysis(){
        $redis = redis();
        $result = json_decode($redis->get(md5('customer_analysis_redis')), true);
// echo "
";
// print_r($result);
// echo "
";
        $new_result = [];
        $new_result['columns'] = [
//             ['name' => '排名', 'id' => 'rank', 'width' => '16', 'color' => 'blue', 'autoWrap' => "true", 'textAlign' => 'left'],
            ['name' => ' ', 'id' => 'kong', 'width' => '10', 'color' => 'blue', 'autoWrap' => "true", 'textAlign' => 'left'],
            ['name' => '客户名称', 'id' => 'kh', 'width' => '70', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
        ];
        foreach ($result as $key => $value) {
            if ($key >= 20) {
                break;
            }
            $new_result['rows'][$key]['kong'] = ' ';
            $new_result['rows'][$key]['kh'] = $value['客户'];
            // $new_result['rows'][$key]['rank'] = $key + 1;
        }
        $res['status'] = 0;
        $res['msg'] = '';
        $res['data'] = $new_result;
        return json($res);

    }

    //应收账款情况汇总->缓存【按客户】
    public function Summary_redis(){
        $redis = redis();
        $redis_key = md5('Summary_redis');
        $sql = "SELECT '汇总'           AS  业务单位,
       Sum(hz.销货未收款)  AS 销货未收款,
       Avg(hz.账期)     AS 账期,
       Sum(hz.超期订单数量) AS 超期订单数量,
       Sum(hz.超期订单金额) AS 超期订单金额
FROM   (SELECT YSZK.业务员,
               YSZK.业务单位,
               YSZK.销货未收款,
               D.iPaytime             账期,
               YSZK.超期订单数量,
               IFnull(YSZK.超期订单金额, 0) 超期订单金额
        FROM   (SELECT a.cywdwmc                      业务单位,
                       a.cywdwbh,
                       a.cywy                         业务员,
                       Sum(a.nxhys)                   AS 销货未收款,
                       (SELECT Count(ccydh)
                        FROM   tmaintz
                        WHERE  isign = 1
                               AND cywdwmc = a.cywdwmc
                               AND ixhconfirm = 1
                               AND ljqbz = 0
                               AND crectype = '订单应收') AS 销货订单数,
                       (SELECT Count(*)
                        FROM   Mcyd e
                               JOIN tMainTz f
                                 ON e.ccydh = f.ccydh
                                    AND f.isign = 1
                                    AND ( e.icydstate <> -1
                                           OR e.icydstate IS NULL )
                                    AND e.ljqbs = 0
                                    AND e.iZLConfirm = 1
                       WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
                               AND f.cywdwmc = a.cywdwmc
                               AND cywy = a.cywy)     AS 超期订单数量,
                       (SELECT Sum(c.nxhys)
                        FROM   tMainTz c
                               JOIN mcyd e
                                 ON c.ccydh = e.ccydh
                                    AND c.isign = 1
                                    AND ( e.icydstate <> -1
                                           OR e.icydstate IS NULL )
                                    AND e.ljqbs = 0
                                    AND e.iZLConfirm = 1
                        WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
                               AND c.cywdwmc = a.cywdwmc
                               AND cywy = a.cywy)     AS 超期订单金额
                FROM   tmaintz A
                       LEFT JOIN Dzywdw b
                              ON a.cYwdwbh = b.cywdwbh
                WHERE  a.isign = 1
                       AND ljqbz = 0
                       AND ccydh NOT IN (SELECT ccydh
                                         FROM   mcyd
                                         WHERE  icydstate = -1)
                       AND a.cRECtype = '订单应收'
                       AND LOCATE('提', a.ccydh) = 0
                GROUP  BY a.cywdwmc,
                          a.cywdwbh,
                          a.cywy)YSZK
               LEFT JOIN Dzywdw d
                      ON YSZK.cywdwbh = d.cywdwbh
        WHERE  YSZK.销货未收款 > 0)hz
UNION ALL
SELECT *
FROM   (SELECT  
               YSZK.业务单位,
               YSZK.销货未收款,
               D.iPaytime             账期,
               YSZK.超期订单数量,
               IFnull(YSZK.超期订单金额, 0) 超期订单金额
        FROM   (SELECT a.cywdwmc                      业务单位,
                       a.cywdwbh,
                       
                       Sum(a.nxhys)                   AS 销货未收款,
                       (SELECT Count(ccydh)
                        FROM   tmaintz
                        WHERE  isign = 1
                               AND cywdwmc = a.cywdwmc
                               AND ixhconfirm = 1
                               AND ljqbz = 0
                               AND crectype = '订单应收') AS 销货订单数,
                       (SELECT Count(*)
                        FROM   Mcyd e
                               JOIN tMainTz f
                                 ON e.ccydh = f.ccydh
                                    AND f.isign = 1
                                    AND ( e.icydstate <> -1
                                           OR e.icydstate IS NULL )
                                    AND e.ljqbs = 0
                                    AND e.iZLConfirm = 1
                       WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
                               AND f.cywdwmc = a.cywdwmc
                               )     AS 超期订单数量,
                       (SELECT Sum(c.nxhys)
                        FROM   tMainTz c
                               JOIN mcyd e
                                 ON c.ccydh = e.ccydh
                                    AND c.isign = 1
                                    AND ( e.icydstate <> -1
                                           OR e.icydstate IS NULL )
                                    AND e.ljqbs = 0
                                    AND e.iZLConfirm = 1
                        WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
                               AND c.cywdwmc = a.cywdwmc
                              )     AS 超期订单金额
                FROM   tmaintz A
                       LEFT JOIN Dzywdw b
                              ON a.cYwdwbh = b.cywdwbh
                WHERE  a.isign = 1
                       AND ljqbz = 0
                       AND ccydh NOT IN (SELECT ccydh
                                         FROM   mcyd
                                         WHERE  icydstate = -1)
                       AND a.cRECtype = '订单应收'
                      AND LOCATE('提', a.ccydh) = 0
                GROUP  BY a.cywdwmc,
                          a.cywdwbh )YSZK
               LEFT JOIN Dzywdw d
                      ON YSZK.cywdwbh = d.cywdwbh
        WHERE  YSZK.销货未收款 > 0
	 
		)MX
ORDER  BY 超期订单金额 DESC ";
        $res=Db::query($sql);
        if($res){
            $redis->set($redis_key, json_encode($res));
            echo date("Y-m-d H:i:s").'   存进去了';
            return $res;
        }
    }

    //应收账款情况汇总->缓存【按业务员】
    public function Summary_ywy_redis(){
        $redis = redis();
        $redis_key = md5('Summary_ywy_redis');
        $sql = "SELECT tb.业务员,
       Sum(tb.销货未收款) AS 销货未收款,
       Avg(tb.账期)  AS   账期,
       Sum(tb.超期订单数量) AS 超期订单数量,
       Sum(tb.超期订单金额) AS 超期订单金额
FROM   (SELECT '汇总'           AS 业务员,	
               ''             AS 业务单位,
               Sum(hz.销货未收款)  AS 销货未收款,
               Avg(hz.账期)     AS 账期,
               Sum(hz.超期订单数量) AS 超期订单数量,
               Sum(hz.超期订单金额) AS 超期订单金额
        FROM   (SELECT YSZK.业务员,
                       YSZK.业务单位,
                       YSZK.销货未收款,
                       D.iPaytime             账期,
                       YSZK.超期订单数量,
                       IFnull(YSZK.超期订单金额, 0) 超期订单金额
                FROM   (SELECT a.cywdwmc                      业务单位,
                               a.cywdwbh,
                               a.cywy                         业务员,
                               Sum(a.nxhys)                   AS 销货未收款,
                               (SELECT Count(ccydh)
                                FROM   tmaintz
                                WHERE  isign = 1
                                       AND cywdwmc = a.cywdwmc
                                       AND ixhconfirm = 1
                                       AND ljqbz = 0
                                       AND crectype = '订单应收') AS 销货订单数,
                               (SELECT Count(*)
                                FROM   Mcyd e
                                       JOIN tMainTz f
                                         ON e.ccydh = f.ccydh
                                            AND f.isign = 1
                                            AND ( e.icydstate <> -1
                                                   OR e.icydstate IS NULL )
                                            AND e.ljqbs = 0
                                            AND e.iZLConfirm = 1
                               WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
                                       AND f.cywdwmc = a.cywdwmc
                                       AND cywy = a.cywy)     AS 超期订单数量,
                               (SELECT Sum(c.nxhys)
                                FROM   tMainTz c
                                       JOIN mcyd e
                                         ON c.ccydh = e.ccydh
                                            AND c.isign = 1
                                            AND ( e.icydstate <> -1
                                                   OR e.icydstate IS NULL )
                                            AND e.ljqbs = 0
                                            AND e.iZLConfirm = 1
                                WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
                                       AND c.cywdwmc = a.cywdwmc
                                       AND cywy = a.cywy)     AS 超期订单金额
                        FROM   tmaintz A
                               LEFT JOIN Dzywdw b
                                      ON a.cYwdwbh = b.cywdwbh
                        WHERE  a.isign = 1
                               AND ljqbz = 0
                               AND ccydh NOT IN (SELECT ccydh
                                                 FROM   mcyd
                                                 WHERE  icydstate = -1)
                               AND a.cRECtype = '订单应收'
                               AND LOCATE('提', a.ccydh) = 0
                        GROUP  BY a.cywdwmc,
                                  a.cywdwbh,
                                  a.cywy)YSZK
                       LEFT JOIN Dzywdw d
                              ON YSZK.cywdwbh = d.cywdwbh
                WHERE  YSZK.销货未收款 > 0)hz
        UNION ALL
        SELECT *
        FROM   (SELECT YSZK.业务员,
                       YSZK.业务单位,
                       YSZK.销货未收款,
                       D.iPaytime             账期,
                       YSZK.超期订单数量,
                       IFnull(YSZK.超期订单金额, 0) 超期订单金额
                FROM   (SELECT a.cywdwmc                      业务单位,
                               a.cywdwbh,
                               a.cywy                         业务员,
                               Sum(a.nxhys)                   AS 销货未收款,
                               (SELECT Count(ccydh)
                                FROM   tmaintz
                                WHERE  isign = 1
                                       AND cywdwmc = a.cywdwmc
                                       AND ixhconfirm = 1
                                       AND ljqbz = 0
                                       AND crectype = '订单应收') AS 销货订单数,
                               (SELECT Count(*)
                                FROM   Mcyd e
                                       JOIN tMainTz f
                                         ON e.ccydh = f.ccydh
                                            AND f.isign = 1
                                            AND ( e.icydstate <> -1
                                                   OR e.icydstate IS NULL )
                                            AND e.ljqbs = 0
                                            AND e.iZLConfirm = 1
                                WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
                                       AND f.cywdwmc = a.cywdwmc
                                       AND cywy = a.cywy)     AS 超期订单数量,
                               (SELECT Sum(c.nxhys)
                                FROM   tMainTz c
                                       JOIN mcyd e
                                         ON c.ccydh = e.ccydh
                                            AND c.isign = 1
                                            AND ( e.icydstate <> -1
                                                   OR e.icydstate IS NULL )
                                            AND e.ljqbs = 0
                                            AND e.iZLConfirm = 1
                                WHERE (DATEDIFF(CURDATE(), e.dZlConfirmRQ) - IFNULL(ipaytime, 0)) > 0
                                       AND c.cywdwmc = a.cywdwmc
                                       AND cywy = a.cywy)     AS 超期订单金额
                        FROM   tmaintz A
                               LEFT JOIN Dzywdw b
                                      ON a.cYwdwbh = b.cywdwbh
                        WHERE  a.isign = 1
                               AND ljqbz = 0
                               AND ccydh NOT IN (SELECT ccydh
                                                 FROM   mcyd
                                                 WHERE  icydstate = -1)
                               AND a.cRECtype = '订单应收'
                               AND LOCATE('提', a.ccydh) = 0
                        GROUP  BY a.cywdwmc,
                                  a.cywdwbh,
                                  a.cywy)YSZK
                       LEFT JOIN Dzywdw d
                              ON YSZK.cywdwbh = d.cywdwbh
                WHERE  YSZK.销货未收款 > 0)MX) tb
GROUP  BY TB.业务员
ORDER  BY 超期订单金额 DESC 
";
        $res=Db::query($sql);
        if($res){
            $redis->set($redis_key, json_encode($res));
            echo date("Y-m-d H:i:s").'   存进去了';
            return $res;
        }
    }
    // 应收账款情况汇总->接口
    public function Summary(){
        $data = input('post.');
        if(isset($data['dependence'])){
            $dependence=$data['dependence'];
        }else{
            $dependence['item']['value']= '客户';
        }
        $redis = redis();
        $new_result = [];

        if($dependence['item']['value'] == '业务员'){
            $result_ywy = json_decode($redis->get(md5('Summary_ywy_redis')),true);
            $result_ywy[0]['业务员'] = '合计';
            $result_ywy[0]['账期'] = '';
            $new_result['columns'] = [
                ['name' => '业务员', 'id' => 'ywdw', 'width' => '40', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
                ['name' => '销货未收款(万元)', 'id' => 'xhwsk', 'width' => '18', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
                ['name' => '账期(天)', 'id' => 'zq', 'width' => '10', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
                ['name' => '超期订单数量', 'id' => 'cqddsl', 'width' => '12', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
                ['name' => '超期订单金额(万元)', 'id' => 'cqddje', 'width' => '15', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
            ];
            foreach ($result_ywy as $key => $value) {
                if ($value['销货未收款'] != 0) {
                    $new_result['rows'][$key]['ywdw'] = $value['业务员'];
                    $new_result['rows'][$key]['xhwsk'] = number_format($value['销货未收款'] /10000,2);
                    $new_result['rows'][$key]['zq'] = round($value['账期']);
                    $new_result['rows'][$key]['cqddsl'] = $value['超期订单数量'];
                    $new_result['rows'][$key]['cqddje'] = number_format($value['超期订单金额'] /10000,2);
                }
            }
            $res['status'] = 0;
            $res['msg'] = '';
            $res['data'] = $new_result;
            return json($res);
        }else{
            $result = json_decode($redis->get(md5('Summary_redis')),true);
            $result[0]['业务单位'] = '合计';
            $result[0]['账期'] = '';

            $new_result['columns'] = [
                ['name' => '业务单位', 'id' => 'ywdw', 'width' => '30', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
                ['name' => '销货未收款(万元)', 'id' => 'xhwsk', 'width' => '18', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
                ['name' => '账期(天)', 'id' => 'zq', 'width' => '10', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
                ['name' => '超期订单数量', 'id' => 'cqddsl', 'width' => '12', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
                ['name' => '超期订单金额(万元)', 'id' => 'cqddje', 'width' => '15', 'color' => 'red', 'autoWrap' => "true", 'textAlign' => 'left'],
            ];
            foreach ($result as $key => $value) {
                if ($value['销货未收款'] != 0) {
                    $new_result['rows'][$key]['ywdw'] = $value['业务单位'];
                    $new_result['rows'][$key]['xhwsk'] = number_format($value['销货未收款'] /10000,2);
                    $new_result['rows'][$key]['zq'] = round($value['账期']);
                    $new_result['rows'][$key]['cqddsl'] = $value['超期订单数量'];
                    $new_result['rows'][$key]['cqddje'] = number_format($value['超期订单金额'] /10000,2);
                }
            }
            $res['status'] = 0;
            $res['msg'] = '';
            $res['data'] = $new_result;
            return json($res);
        }


    }

}