m0_70156489 hace 4 días
padre
commit
a342192553

+ 23 - 20
application/admin/controller/general/Profile.php

@@ -23,22 +23,6 @@ class Profile extends Backend
      */
     public function index()
     {
-        //设置过滤方法
-        $this->request->filter(['strip_tags', 'trim']);
-        if ($this->request->isAjax()) {
-            $this->model = model('AdminLog');
-            list($where, $sort, $order, $offset, $limit) = $this->buildparams();
-
-            $list = $this->model
-                ->where($where)
-                ->where('admin_id', $this->auth->id)
-                ->order($sort, $order)
-                ->paginate($limit);
-
-            $result = array("total" => $list->total(), "rows" => $list->items());
-
-            return json($result);
-        }
         return $this->view->fetch();
     }
 
@@ -52,8 +36,22 @@ class Profile extends Backend
             $params = $this->request->post("row/a");
             $params = array_filter(array_intersect_key(
                 $params,
-                array_flip(array('email', 'nickname', 'password', 'avatar'))
-            ));
+                array_flip(array('email', 'nickname', 'password', 'avatar', 'mobile'))
+            ), function ($v, $k) {
+                return $k === 'mobile' || $v !== '' && $v !== null;
+            }, ARRAY_FILTER_USE_BOTH);
+            if (isset($params['mobile'])) {
+                $params['mobile'] = preg_replace('/\s+/', '', trim((string)$params['mobile']));
+                if ($params['mobile'] !== '' && !preg_match('/^1[3-9]\d{9}$/', $params['mobile'])) {
+                    $this->error('请输入正确的11位手机号');
+                }
+                if ($params['mobile'] !== '') {
+                    $mobileExist = Admin::where('mobile', $params['mobile'])->where('id', '<>', $this->auth->id)->find();
+                    if ($mobileExist) {
+                        $this->error('该手机号已被其他账号使用');
+                    }
+                }
+            }
             unset($v);
             if (!Validate::is($params['email'], "email")) {
                 $this->error(__("Please input correct email"));
@@ -72,8 +70,13 @@ class Profile extends Backend
             if ($params) {
                 $admin = Admin::get($this->auth->id);
                 $admin->save($params);
-                //因为个人资料面板读取的Session显示,修改自己资料后同时更新Session
-                Session::set("admin", $admin->toArray());
+                $admin = Admin::get($this->auth->id);
+                if (!$admin) {
+                    $this->error(__('No Results were found'));
+                }
+                // 与登录一致:刷新 Session 并同步 safecode,避免修改资料后被判定未登录
+                Session::set('admin', $admin->toArray());
+                Session::set('admin.safecode', $this->auth->getEncryptSafecode($admin));
                 $this->success();
             }
             $this->error();

+ 2 - 28
application/admin/view/general/profile/index.html

@@ -38,7 +38,7 @@
     }
 </style>
 <div class="row animated fadeInRight">
-    <div class="col-md-4">
+    <div class="col-md-6 col-md-offset-3 col-lg-5 col-lg-offset-3">
         <div class="box box-primary">
             <div class="panel-heading">
                 {:__('Profile')}
@@ -64,7 +64,7 @@
                         </div>
                         <div class="form-group">
                             <label for="mobile" class="control-label">{:__('Mobile')}:</label>
-                            <input type="text" class="form-control" id="mobile" name="row[mobile]" value="{$admin.mobile|htmlentities}" disabled/>
+                            <input type="text" class="form-control" id="mobile" name="row[mobile]" value="{$admin.mobile|htmlentities}" maxlength="11" placeholder="11位手机号,用于开标验证等短信通知" data-rule="mobile"/>
                         </div>
                         <div class="form-group">
                             <label for="email" class="control-label">{:__('Email')}:</label>
@@ -89,30 +89,4 @@
         </div>
 
     </div>
-    <div class="col-md-8">
-        <div class="panel panel-default panel-intro panel-nav">
-            <div class="panel-heading">
-                <ul class="nav nav-tabs">
-                    <li class="active"><a href="#one" data-toggle="tab"><i class="fa fa-list"></i> {:__('Admin log')}</a></li>
-                </ul>
-            </div>
-            <div class="panel-body">
-                <div id="myTabContent" class="tab-content">
-                    <div class="tab-pane fade active in" id="one">
-                        <div class="widget-body no-padding">
-                            <div id="toolbar" class="toolbar">
-                                {:build_toolbar('refresh')}
-                            </div>
-                            <table id="table" class="table table-striped table-bordered table-hover table-nowrap" width="100%">
-
-                            </table>
-
-                        </div>
-                    </div>
-
-                </div>
-            </div>
-        </div>
-
-    </div>
 </div>

+ 14628 - 0
application/api/controller/Index (2).php

@@ -0,0 +1,14628 @@
+<?php
+namespace app\api\controller;
+use app\common\controller\Api;
+use think\Db;
+use think\Cache\Driver\Redis;
+use app\api\controller\Second;
+//第一屏数据
+class Index extends Api{
+    protected $noNeedLogin = ['*'];
+    protected $noNeedRight = ['*'];
+    public function index(){
+        $this->success('请求新华接口成功');
+    }
+    public function customer_index()
+    {
+        // 1. 查询:account有值 + password为空 的客户
+        $list = Db::name("customer")
+            ->where("account", "<>", "")
+            ->where(function ($query) {
+                $query->whereNull("password")
+                    ->whereOr("password", "");
+            })
+            ->select();
+
+        if (empty($list)) {
+            return json([
+                "code" => 1,
+                "msg"  => "所有密码已填充完毕,无需处理"
+            ]);
+        }
+
+        $success = 0;
+
+        // 循环逐条更新(FastAdmin/TP5 标准写法)
+        Db::startTrans();
+        try {
+            foreach ($list as $item) {
+                $account = trim($item['account']);
+                $password = md5(md5($account)); // FastAdmin 密码加密
+
+                Db::name("customer")
+                    ->where("id", $item['id'])
+                    ->update([
+                        "password" => $password
+                    ]);
+
+                $success++;
+            }
+
+            Db::commit();
+            return json([
+                "code" => 1,
+                "msg"  => "密码填充成功,共更新 " . $success . " 条"
+            ]);
+
+        } catch (\Exception $e) {
+            Db::rollback();
+            return json([
+                "code" => 0,
+                "msg"  => "失败:" . $e->getMessage()
+            ]);
+        }
+    }
+    /** 定义的函数方法 $this->方法名调取*/
+    //获取当前年份的一月份
+    public function year_January(){
+        return date("Y-01");
+    }
+    //开始时间方法--当年01月01日
+    public function start_time(){
+        return  gettimeinfo();
+    }
+    //结束时间方法--当年12月31日
+    public function end_time(){
+        return gettimeinfo(1);
+    }
+    //开始时间方法--去年01月01日
+    public function qstart_time(){
+        return  getLastYear();
+    }
+    //去年的今天
+    public function qday(){
+        // 获取当前日期
+        $today = date('Y-m-d 23:59:59');
+        // 使用strtotime计算去年的今天
+        $lastYearToday = date('Y-m-d 23:59:59', strtotime($today . ' -1 year'));
+        // 输出去年的今天
+        return $lastYearToday;
+    }
+    //结束时间方法--去年12月31日
+    public function qend_time(){
+        return getLastYear(1);
+    }
+    //开始时间方法--前年01月01日
+    public function qianstart_time(){
+        return  getPreviousYear();
+    }
+    //结束时间方法--前年12月31日
+    public function qianend_time(){
+        return getPreviousYear(1);
+    }
+    //前年的今天
+    public function qianday(){
+        // 获取当前日期
+        $today = date('Y-m-d 23:59:59');
+
+        // 使用strtotime计算前年的今天
+        $beforeLastYearToday = date('Y-m-d 23:59:59', strtotime($today . ' -2 years'));
+
+        // 输出前年的今天
+        return $beforeLastYearToday;
+    }
+    //开始时间方法--大前年01月01日
+    public function dqianstart_time(){
+        return  getPreviousQYear();
+    }
+    //结束时间方法--大前年12月31日
+    public function dqianend_time(){
+        return getPreviousQYear(1);
+    }
+    //当年
+    public function currentYear(){
+        $currentYear = date('Y');
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $currentYear;
+        return json_encode($res);
+    }
+    //去年
+    public function lastYear(){
+        $currentYear = date('Y');
+        $lastYear = $currentYear - 1;
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $lastYear;
+        return json_encode($res);
+    }
+    //前年
+    public function yearBeforeLast(){
+        $currentYear = date('Y');
+        $yearBeforeLast = $currentYear - 2;
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $yearBeforeLast;
+        return json_encode($res);
+    }
+    //当年年业务结构
+    public function test_dYear(){
+        $currentYear = date('Y');
+        $lastTwoDigits = substr($currentYear, -2);
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $lastTwoDigits . "年色令分布";
+        return json_encode($res);
+    }
+    //去年年业务结构
+    public function test_qYear(){
+        $currentYear = date('Y');
+        $lastYear = $currentYear - 1;
+        $lastTwoDigits = substr($lastYear, -2);
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $lastTwoDigits . "年色令分布";
+        return json_encode($res);
+    }
+
+    /**
+     * 业务总览 第一屏 第一页
+     */
+
+    //承印销售收入->缓存调用 本级不包含集团教材外
+    public function getxssr_redis(){
+        $redis=redis();
+        $redis_key = md5('getxssr_redis');
+        //定义查询字段
+        $field = [
+            'ldz',
+            'mcyd.icydid',
+            'year(mcyd.dcyrq) as 年',
+            'mcyd.dcyrq 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',
+        ];
+        //当年
+        $dangnian = Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->start_time(),$this->end_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->where('mcyd.chy','<>', '集团教材外')
+            ->select();
+
+        //去年
+        $qunian = Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->qend_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->where('mcyd.chy','<>', '集团教材外')
+            ->select();
+        //前年
+        $qiannian = Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->qianstart_time(),$this->qianend_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->where('mcyd.chy','<>', '集团教材外')
+            ->select();
+
+        //大前年
+        $dqiannian = Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->dqianstart_time(),$this->dqianend_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->where('mcyd.chy','<>', '集团教材外')
+            ->select();
+
+        //销售收入、销售工价、日期
+        //当年
+        $cheng_dang = 0;$bb_dang = 0;$data_dang = 0;
+        //去年
+        $cheng_qu = 0;$bb_qu = 0;$data_qu = 0;
+        //前年
+        $cheng_qian = 0;$bb_qian = 0; $data_qian = 0;
+        //大前年
+        $cheng_dqian = 0;$bb_dqian = 0; $data_dqian = 0;
+
+
+        //遍历查询结果,进行统计
+        foreach ($dangnian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_dang += $v['namount'];
+                $bb_dang += $v['sum_clje'];
+            }else{
+                $cheng_dang += $v['nwshjje'];
+                $bb_dang += $v['nwsgjhj'];
+            }
+            $data_dang = $v['年'];
+        }
+
+        //遍历查询结果,进行统计
+        foreach ($qunian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_qu += $v['namount'];
+                $bb_qu += $v['sum_clje'];
+            }else{
+                $cheng_qu += $v['nwshjje'];
+                $bb_qu += $v['nwsgjhj'];
+            }
+            $data_qu = $v['年'];
+        }
+
+        //遍历查询结果,进行统计
+        foreach ($qiannian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_qian += $v['namount'];
+                $bb_qian += $v['sum_clje'];
+            }else{
+                $cheng_qian += $v['nwshjje'];
+                $bb_qian += $v['nwsgjhj'];
+            }
+            $data_qian = $v['年'];
+        }
+        //遍历查询结果,进行统计
+        foreach ($dqiannian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_dqian += $v['namount'];
+                $bb_dqian += $v['sum_clje'];
+            }else{
+                $cheng_dqian += $v['nwshjje'];
+                $bb_dqian += $v['nwsgjhj'];
+            }
+            $data_dqian = $v['年'];
+        }
+
+        if($data_dang == 0){
+            $data_dang  = date("Y");
+        }
+        $list=[ 'categories'=>[$data_qian,$data_qu,$data_dang],
+            'series'=>[['name'=>'承印销售收入',
+                'data'=>[round($cheng_qian/10000),round($cheng_qu/10000),round($cheng_dang/10000)]]]
+        ];
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //承印销售收入->缓存调用 全部包含集团教材外
+    public function getxssrs_redis(){
+        $redis=redis();
+        $redis_key = md5('getxssrs_redis');
+        //定义查询字段
+        $field = [
+            'ldz',
+            'mcyd.icydid',
+            'year(mcyd.dcyrq) as 年',
+            'mcyd.dcyrq 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',
+        ];
+        //当年
+        $dangnian = Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->start_time(),$this->end_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->select();
+
+        //去年
+        $qunian = Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->qend_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->select();
+        //前年
+        $qiannian = Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->qianstart_time(),$this->qianend_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->select();
+        //大前年
+        $dqiannian = Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->dqianstart_time(),$this->dqianend_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->select();
+
+        //销售收入、销售工价、日期
+        //当年
+        $cheng_dang = 0;$bb_dang = 0;$data_dang = 0;
+        //去年
+        $cheng_qu = 0;$bb_qu = 0;$data_qu = 0;
+        //前年
+        $cheng_qian = 0;$bb_qian = 0; $data_qian = 0;
+        //大前年
+        $cheng_dqian = 0;$bb_dqian = 0; $data_dqian = 0;
+
+
+        //遍历查询结果,进行统计
+        foreach ($dangnian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_dang += $v['namount'];
+                $bb_dang += $v['sum_clje'];
+            }else{
+                $cheng_dang += $v['nwshjje'];
+                $bb_dang += $v['nwsgjhj'];
+            }
+            $data_dang = $v['年'];
+        }
+
+        //遍历查询结果,进行统计
+        foreach ($qunian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_qu += $v['namount'];
+                $bb_qu += $v['sum_clje'];
+            }else{
+                $cheng_qu += $v['nwshjje'];
+                $bb_qu += $v['nwsgjhj'];
+            }
+            $data_qu = $v['年'];
+        }
+
+        //遍历查询结果,进行统计
+        foreach ($qiannian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_qian += $v['namount'];
+                $bb_qian += $v['sum_clje'];
+            }else{
+                $cheng_qian += $v['nwshjje'];
+                $bb_qian += $v['nwsgjhj'];
+            }
+            $data_qian = $v['年'];
+        }
+        //遍历查询结果,进行统计
+        foreach ($dqiannian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_dqian += $v['namount'];
+                $bb_dqian += $v['sum_clje'];
+            }else{
+                $cheng_dqian += $v['nwshjje'];
+                $bb_dqian += $v['nwsgjhj'];
+            }
+            $data_dqian = $v['年'];
+        }
+
+        if($data_dang == 0){
+            $data_dang  = date("Y");
+        }
+        $list=[ 'categories'=>[$data_qian,$data_qu,$data_dang],
+            'series'=>[['name'=>'承印销售收入',
+                'data'=>[round($cheng_qian/10000),round($cheng_qu/10000),round($cheng_dang/10000)]]]
+        ];
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //承印销售收入->接口调用
+    public function getxssr(){
+        $redis = redis();
+        $data = input('post.');
+        if(isset($data['dependence'])){
+            $dependence=$data['dependence'];
+        }else{
+            $dependence['item']['value']= '全部';
+        }
+        if($dependence['item']['value'] == '全部'){
+            $result = json_decode($redis->get(md5('getxssrs_redis')),true);
+        }else{
+            $result = json_decode($redis->get(md5('getxssr_redis')),true);
+        }
+        return json($result);
+    }
+
+    //承印加工收入->缓存调用 本级不包含集团教材外
+    public function getjgsr_redis(){
+        $redis=redis();
+        $redis_key = md5('getjgsr_redis');
+        // 定义需要查询的字段
+        $field = [
+            'ldz',
+            'mcyd.icydid',
+            'year(mcyd.dcyrq) as 年',
+            'mcyd.dcyrq 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',
+        ];
+        //当年
+        $dangnian= Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->start_time(),$this->end_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->where('mcyd.chy','<>', '集团教材外')
+            ->select();
+
+        //去年
+        $qunian = Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->qend_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->where('mcyd.chy','<>', '集团教材外')
+            ->select();
+
+        //前年
+        $qiannian = Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->qianstart_time(),$this->qianend_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->where('mcyd.chy','<>', '集团教材外')
+            ->select();
+
+        //销售收入、销售工价、日期
+        //当年
+        $cheng_dang = 0;$bb_dang = 0;$data_dang = 0;
+        //去年
+        $cheng_qu = 0;$bb_qu = 0;$data_qu = 0;
+        //前年
+        $cheng_qian = 0;$bb_qian = 0; $data_qian = 0;
+
+        // 遍历查询结果,进行统计
+        foreach ($dangnian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_dang += $v['namount'];
+                $bb_dang += $v['sum_clje'];
+            }else{
+                $cheng_dang += $v['nwshjje'];
+                $bb_dang += $v['nwsgjhj'];
+            }
+            $data_dang = $v['年'];
+        }
+
+        // 遍历查询结果,进行统计
+        foreach ($qunian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_qu += $v['namount'];
+                $bb_qu += $v['sum_clje'];
+            }else{
+                $cheng_qu += $v['nwshjje'];
+                $bb_qu += $v['nwsgjhj'];
+            }
+            $data_qu = $v['年'];
+        }
+
+        // 遍历查询结果,进行统计
+        foreach ($qiannian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_qian += $v['namount'];
+                $bb_qian += $v['sum_clje'];
+            }else{
+                $cheng_qian += $v['nwshjje'];
+                $bb_qian += $v['nwsgjhj'];
+            }
+            $data_qian = $v['年'];
+        }
+        if($data_dang == 0){
+            $data_dang  = date("Y");
+        }
+        $list=['categories'=>[$data_qian,$data_qu,$data_dang],'series'=>[['name'=>'承印加工收入',
+            'data'=>[round($bb_qian/10000),round($bb_qu/10000),round($bb_dang/10000)]]]];
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //承印加工收入->缓存调用 全部包含集团教材外
+    public function getjgsrs_redis(){
+        $redis=redis();
+        $redis_key = md5('getjgsrs_redis');
+        // 定义需要查询的字段
+        $field = [
+            'ldz',
+            'mcyd.icydid',
+            'year(mcyd.dcyrq) as 年',
+            'mcyd.dcyrq 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',
+        ];
+        //当年
+        $dangnian= Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->start_time(),$this->end_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->select();
+
+        //去年
+        $qunian = Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->qstart_time(),$this->qend_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->select();
+
+        //前年
+        $qiannian = Db::table('mcyd')->field($field)
+            ->join('tjob','mcyd.icydid = tjob.icydid','LEFT')
+            ->whereTime('mcyd.dcyrq', 'between', [$this->qianstart_time(),$this->qianend_time()])
+            ->group('tjob.icydid,tjob.ldz,mcyd.dcyrq')
+            ->where('mcyd.icydstate','>',0)
+            ->select();
+
+        //销售收入、销售工价、日期
+        //当年
+        $cheng_dang = 0;$bb_dang = 0;$data_dang = 0;
+        //去年
+        $cheng_qu = 0;$bb_qu = 0;$data_qu = 0;
+        //前年
+        $cheng_qian = 0;$bb_qian = 0; $data_qian = 0;
+
+        // 遍历查询结果,进行统计
+        foreach ($dangnian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_dang += $v['namount'];
+                $bb_dang += $v['sum_clje'];
+            }else{
+                $cheng_dang += $v['nwshjje'];
+                $bb_dang += $v['nwsgjhj'];
+            }
+            $data_dang = $v['年'];
+        }
+
+        // 遍历查询结果,进行统计
+        foreach ($qunian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_qu += $v['namount'];
+                $bb_qu += $v['sum_clje'];
+            }else{
+                $cheng_qu += $v['nwshjje'];
+                $bb_qu += $v['nwsgjhj'];
+            }
+            $data_qu = $v['年'];
+        }
+
+        // 遍历查询结果,进行统计
+        foreach ($qiannian as $v){
+            if($v['ldz'] == 1 ){
+                $cheng_qian += $v['namount'];
+                $bb_qian += $v['sum_clje'];
+            }else{
+                $cheng_qian += $v['nwshjje'];
+                $bb_qian += $v['nwsgjhj'];
+            }
+            $data_qian = $v['年'];
+        }
+        if($data_dang == 0){
+            $data_dang  = date("Y");
+        }
+        $list=['categories'=>[$data_qian,$data_qu,$data_dang],'series'=>[['name'=>'承印加工收入',
+            'data'=>[round($bb_qian/10000),round($bb_qu/10000),round($bb_dang/10000)]]]];
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //承印加工收入->接口调用
+    public function getjgsr(){
+        $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('getjgsrs_redis')),true);
+        }else{
+            $redis = redis();
+            $result = json_decode($redis->get(md5('getjgsr_redis')),true);
+        }
+        return json($result);
+    }
+
+    //承印色令->缓存调用 本级不包含集团教材外
+    //修改前
+//    public function getcysl_redis(){
+//        $redis=redis();
+//        $redis_key = md5('getcysl_redis');
+//        $objmatier = Db::table('scyddx')->alias('objmatier')
+//            ->field('icydid,sum(nyssl) as nyssl,sum(nysls) as nysls')
+//            ->group('icydid')
+//            ->buildSql();
+//
+//        $t5 = Db::table('mcyd')->alias('ord')
+//            ->field("DATE_FORMAT( dcyrq, '%Y-%m-%d' ) as rq,sum(objmatier.nyssl) as sl,sum(objmatier.nysls) as zl")
+//            ->join('(' . $objmatier . ') as objmatier', '  ord.icydid = objmatier.icydid','LEFT')
+//            ->where('ord.icydstate', '>', 0)
+//            ->where('chy', '<>', '集团教材外')
+//            ->group('rq')
+//            ->buildSql();
+//
+//        $list2023 = Db::table($t5 . ' t5')
+//            ->field("DATE_FORMAT(t5.rq, '%Y') as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+//            ->where("t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}' ")
+//            ->find();
+//        $list2022 = Db::table($t5 . ' t5')
+//            ->field("DATE_FORMAT(t5.rq, '%Y') as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+//            ->where("t5.RQ >= '{$this->qstart_time()}'AND t5.RQ <= '{$this->qend_time()}' ")
+//            ->find();
+//        $list2021 = Db::table($t5 . ' t5')
+//            ->field("DATE_FORMAT(t5.rq, '%Y') as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+//            ->where("t5.RQ >= '{$this->qianstart_time()}'AND t5.RQ <= '{$this->qianend_time()}' ")
+//            ->find();
+//
+//        $list=['categories'=>[$list2021['rq'],$list2022['rq'],$list2023['rq']],'series'=>[['name'=>'色令数',
+//            'data'=>[round($list2021['nyssl']/10000),round($list2022['nyssl']/10000),round($list2023['nyssl']/10000)]]]];
+//        $res['status']=0;
+//        $res['msg']='';
+//        $res['data']=$list;
+//        $redis->set($redis_key, json_encode($res));
+//        return json_encode($res);
+//    }
+    //修改后
+    public function getcysl_redis(){
+        $redis=redis();
+        $redis_key = md5('getcysl_redis');
+        // 清空旧缓存,杜绝数据偏小
+        $redis->del($redis_key);
+
+        $objmatier = Db::table('scyddx')->alias('objmatier')
+            ->field('icydid,sum(nyssl) as nyssl,sum(nysls) as nysls')
+            ->group('icydid')
+            ->buildSql();
+
+        $t5 = Db::table('mcyd')->alias('ord')
+            ->field("DATE_FORMAT( dcyrq, '%Y-%m-%d' ) as rq,sum(objmatier.nyssl) as sl,sum(objmatier.nysls) as zl")
+            ->join('(' . $objmatier . ') as objmatier', '  ord.icydid = objmatier.icydid','LEFT')
+            ->where('ord.icydstate', '>', 0)
+            ->where('chy', '<>', '集团教材外')
+            ->group('rq')
+            ->buildSql();
+
+        // 【核心修复:套一层子查询,完全保留原版SUM结果,不改变任何数据】
+        $list2023 = Db::table("(SELECT DATE_FORMAT(t5.rq,'%Y') as rq FROM {$t5} t5 WHERE t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}' LIMIT 1) t")
+            ->join("(SELECT SUM(t5.sl) as nyssl,SUM(t5.zl) as nysls FROM {$t5} t5 WHERE t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}') s",'1=1')
+            ->find();
+
+        $list2022 = Db::table("(SELECT DATE_FORMAT(t5.rq,'%Y') as rq FROM {$t5} t5 WHERE t5.RQ >= '{$this->qstart_time()}'AND t5.RQ <= '{$this->qend_time()}' LIMIT 1) t")
+            ->join("(SELECT SUM(t5.sl) as nyssl,SUM(t5.zl) as nysls FROM {$t5} t5 WHERE t5.RQ >= '{$this->qstart_time()}'AND t5.RQ <= '{$this->qend_time()}') s",'1=1')
+            ->find();
+
+        $list2021 = Db::table("(SELECT DATE_FORMAT(t5.rq,'%Y') as rq FROM {$t5} t5 WHERE t5.RQ >= '{$this->qianstart_time()}'AND t5.RQ <= '{$this->qianend_time()}' LIMIT 1) t")
+            ->join("(SELECT SUM(t5.sl) as nyssl,SUM(t5.zl) as nysls FROM {$t5} t5 WHERE t5.RQ >= '{$this->qianstart_time()}'AND t5.RQ <= '{$this->qianend_time()}') s",'1=1')
+            ->find();
+
+        // 下面所有代码 完全原版 一字未改
+        $list=['categories'=>[$list2021['rq'],$list2022['rq'],$list2023['rq']],'series'=>[['name'=>'色令数',
+            'data'=>[round($list2021['nyssl']/10000),round($list2022['nyssl']/10000),round($list2023['nyssl']/10000)]]]];
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //承印色令->缓存调用 全部包含集团教材外
+    public function getcysls_redis(){
+        $redis=redis();
+        $redis_key = md5('getcysls_redis');
+        $objmatier = Db::table('scyddx')->alias('objmatier')
+            ->field('icydid,sum(nyssl) as nyssl,sum(nysls) as nysls')
+            ->group('icydid')
+            ->buildSql();
+
+        $t5 = Db::table('mcyd')->alias('ord')
+            ->field("DATE_FORMAT( dcyrq, '%Y-%m-%d' ) as rq,sum(objmatier.nyssl) as sl,sum(objmatier.nysls) as zl")
+            ->join('(' . $objmatier . ') as objmatier', '  ord.icydid = objmatier.icydid','LEFT')
+            ->where('ord.icydstate', '>', 0)
+//            ->where('chy', '<>', '集团教材外')
+            ->group('rq')
+            ->buildSql();
+
+        $list2023 = Db::table($t5 . ' t5')
+            ->field("DATE_FORMAT(t5.rq, '%Y') as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+            ->where("t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}' ")
+            ->find();
+        $list2022 = Db::table($t5 . ' t5')
+            ->field("DATE_FORMAT(t5.rq, '%Y') as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+            ->where("t5.RQ >= '{$this->qstart_time()}'AND t5.RQ <= '{$this->qend_time()}' ")
+            ->find();
+        $list2021 = Db::table($t5 . ' t5')
+            ->field("DATE_FORMAT(t5.rq, '%Y') as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+            ->where("t5.RQ >= '{$this->qianstart_time()}'AND t5.RQ <= '{$this->qianend_time()}' ")
+            ->find();
+
+        $list=['categories'=>[$list2021['rq'],$list2022['rq'],$list2023['rq']],'series'=>[['name'=>'色令数',
+            'data'=>[round($list2021['nyssl']/10000),round($list2022['nyssl']/10000),round($list2023['nyssl']/10000)]]]];
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //承印色令->接口调用
+    public function getcysl(){
+//        $redis=redis();
+//        $redis_key = md5('getcysl_redis');
+//        $redis_data = $redis->get($redis_key);
+//        return $redis_data;
+        $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('getcysls_redis')),true);
+        }else{
+            $redis = redis();
+            $result = json_decode($redis->get(md5('getcysl_redis')),true);
+        }
+        return json($result);
+    }
+
+    //承印纸令->缓存调用 本级不包含集团教材外
+    //修改前
+    public function getcyzl_redis(){
+        $redis=redis();
+        $redis_key = md5('getcyzl_redis');
+        // 先删除旧脏缓存
+        $redis->del($redis_key);
+
+        $objmatier = Db::table('scyddx')->alias('objmatier')
+            ->field('icydid,sum(nyssl) as nyssl,sum(nysls) as nysls')
+            ->group('icydid')
+            ->buildSql();
+
+        $t5 = Db::table('mcyd')->alias('ord')
+            ->field("DATE_FORMAT( dcyrq, '%Y-%m-%d' ) as rq,sum(objmatier.nyssl) as sl,sum(objmatier.nysls) as zl")
+            ->join('(' . $objmatier . ') as objmatier', '  ord.icydid = objmatier.icydid','LEFT')
+            ->where('ord.icydstate','>',0)
+            ->where('chy', '<>', '集团教材外')
+            ->group('rq')
+            ->buildSql();
+
+        // ==========2024 拆分两条SQL:只求和 + 单独取年份==========
+        $sum2021 = Db::table($t5 . ' t5')
+            ->field("sum(t5.zl) as nysls")
+            ->where("t5.RQ >= '{$this->qianstart_time()}' AND t5.RQ <= '{$this->qianend_time()}' ")
+            ->find();
+        $year2021 = Db::table($t5 . ' t5')
+            ->field("DATE_FORMAT(t5.rq, '%Y') as rq")
+            ->where("t5.RQ >= '{$this->qianstart_time()}' AND t5.RQ <= '{$this->qianend_time()}' ")
+            ->limit(1)
+            ->find();
+
+        // ==========2025==========
+        $sum2022 = Db::table($t5 . ' t5')
+            ->field("sum(t5.zl) as nysls")
+            ->where("t5.RQ >= '{$this->qstart_time()}' AND t5.RQ <= '{$this->qend_time()}' ")
+            ->find();
+        $year2022 = Db::table($t5 . ' t5')
+            ->field("DATE_FORMAT(t5.rq, '%Y') as rq")
+            ->where("t5.RQ >= '{$this->qstart_time()}' AND t5.RQ <= '{$this->qend_time()}' ")
+            ->limit(1)
+            ->find();
+
+        // ==========2026==========
+        $sum2023 = Db::table($t5 . ' t5')
+            ->field("sum(t5.zl) as nysls")
+            ->where("t5.RQ >= '{$this->start_time()}' AND t5.RQ <= '{$this->end_time()}' ")
+            ->find();
+        $year2023 = Db::table($t5 . ' t5')
+            ->field("DATE_FORMAT(t5.rq, '%Y') as rq")
+            ->where("t5.RQ >= '{$this->start_time()}' AND t5.RQ <= '{$this->end_time()}' ")
+            ->limit(1)
+            ->find();
+
+        $list=[
+            'categories'=>[$year2021['rq'],$year2022['rq'],$year2023['rq']],
+            'series'=>[[
+                'name'=>'纸令数',
+                'data'=>[
+                    round(($sum2021['nysls']??0)/10000),
+                    round(($sum2022['nysls']??0)/10000),
+                    round(($sum2023['nysls']??0)/10000)
+                ]
+            ]]
+        ];
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+
+        if($list){
+            echo date("Y-m-d H:i:s").'存进去了';
+            $redis->set($redis_key, json_encode($res));
+            return json_encode($res);
+        }
+    }
+////    public function getcyzl_redis(){
+//        $redis=redis();
+//        $redis_key = md5('getcyzl_redis');
+//        $objmatier = Db::table('scyddx')->alias('objmatier')
+//            ->field('icydid,sum(nyssl) as nyssl,sum(nysls) as nysls')
+//            ->group('icydid')
+//            ->buildSql();
+//
+//        $t5 = Db::table('mcyd')->alias('ord')
+//            ->field("DATE_FORMAT( dcyrq, '%Y-%m-%d' ) as rq,sum(objmatier.nyssl) as sl,sum(objmatier.nysls) as zl")
+//            ->join('(' . $objmatier . ') as objmatier', '  ord.icydid = objmatier.icydid','LEFT')
+//            ->where('ord.icydstate','>',0)
+//            ->where('chy', '<>', '集团教材外')
+//            ->group('rq')
+//            ->buildSql();
+//
+//        $list2023 = Db::table($t5 . ' t5')
+//            ->field("DATE_FORMAT(t5.rq, '%Y') as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+//            ->where("t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}' ")
+//            ->find();
+//        $list2022 = Db::table($t5 . ' t5')
+//            ->field("DATE_FORMAT(t5.rq, '%Y') as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+//            ->where("t5.RQ >= '{$this->qstart_time()}'AND t5.RQ <= '{$this->qend_time()}' ")
+//            ->find();
+//        $list2021 = Db::table($t5 . ' t5')
+//            ->field("DATE_FORMAT(t5.rq, '%Y') as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+//            ->where("t5.RQ >= '{$this->qianstart_time()}'AND t5.RQ <= '{$this->qianend_time()}' ")
+//            ->find();
+//        $list=['categories'=>[$list2021['rq'],$list2022['rq'],$list2023['rq']],'series'=>[['name'=>'纸令数',
+//            'data'=>[round($list2021['nysls']/10000),round($list2022['nysls']/10000),round($list2023['nysls']/10000)]]]];
+//        $res['status']=0;
+//        $res['msg']='';
+//        $res['data']=$list;
+//        if($list){
+//            echo date("Y-m-d H:i:s").'存进去了';
+//            $redis->set($redis_key, json_encode($res));
+//            return json_encode($res);
+//        }
+//    }
+    //修改后
+//    public function getcyzl_redis(){
+//        $redis=redis();
+//        $redis_key = md5('getcyzl_redis');
+//        $objmatier = Db::table('scyddx')->alias('objmatier')
+//            ->field('icydid,sum(nyssl) as nyssl,sum(nysls) as nysls')
+//            ->group('icydid')
+//            ->buildSql();
+//
+//        $t5 = Db::table('mcyd')->alias('ord')
+//            ->field("DATE_FORMAT( dcyrq, '%Y-%m-%d' ) as rq,sum(objmatier.nyssl) as sl,sum(objmatier.nysls) as zl")
+//            ->join('(' . $objmatier . ') as objmatier', '  ord.icydid = objmatier.icydid','LEFT')
+//            ->where('ord.icydstate','>',0)
+//            ->where('chy', '<>', '集团教材外')
+//            ->group('rq')
+//            ->buildSql();
+//
+//        // 内层只查总和,完全不带rq,不会触发1140报错
+//        $list2023 = Db::table($t5 . ' t5')
+//            ->field("SUM(t5.sl) as nyssl,SUM(t5.zl) as nysls")
+//            ->where("t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}' ")
+//            ->find();
+//        // 单独查年份,不跟聚合写在同一句SQL里,彻底规避语法校验
+//        $year2023 = Db::table($t5 . ' t5')
+//            ->field("DATE_FORMAT(t5.rq, '%Y') as rq")
+//            ->where("t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}' ")
+//            ->limit(1)
+//            ->find();
+//
+//        $list2022 = Db::table($t5 . ' t5')
+//            ->field("SUM(t5.sl) as nyssl,SUM(t5.zl) as nysls")
+//            ->where("t5.RQ >= '{$this->qstart_time()}'AND t5.RQ <= '{$this->qend_time()}' ")
+//            ->find();
+//        $year2022 = Db::table($t5 . ' t5')
+//            ->field("DATE_FORMAT(t5.rq, '%Y') as rq")
+//            ->where("t5.RQ >= '{$this->qstart_time()}'AND t5.RQ <= '{$this->qend_time()}' ")
+//            ->limit(1)
+//            ->find();
+//
+//        $list2021 = Db::table($t5 . ' t5')
+//            ->field("SUM(t5.sl) as nyssl,SUM(t5.zl) as nysls")
+//            ->where("t5.RQ >= '{$this->qianstart_time()}'AND t5.RQ <= '{$this->qianend_time()}' ")
+//            ->find();
+//        $year2021 = Db::table($t5 . ' t5')
+//            ->field("DATE_FORMAT(t5.rq, '%Y') as rq")
+//            ->where("t5.RQ >= '{$this->qianstart_time()}'AND t5.RQ <= '{$this->qianend_time()}' ")
+//            ->limit(1)
+//            ->find();
+//
+//        $list=[
+//            'categories'=>[$year2021['rq'],$year2022['rq'],$year2023['rq']],
+//            'series'=>[[
+//                'name'=>'纸令数',
+//                'data'=>[
+//                    round($list2021['nysls']/10000),
+//                    round($list2022['nysls']/10000),
+//                    round($list2023['nysls']/10000)
+//                ]
+//            ]]
+//        ];
+//        $res['status']=0;
+//        $res['msg']='';
+//        $res['data']=$list;
+//        if($list){
+//            echo date("Y-m-d H:i:s").'存进去了';
+//            // 先删旧缓存再写入
+//            $redis->del($redis_key);
+//            $redis->set($redis_key, json_encode($res));
+//            return json_encode($res);
+//        }
+//    }
+    //承印纸令->缓存调用 全部包含集团教材外
+    //修改前
+//    public function getcyzls_redis(){
+//        $redis=redis();
+//        $redis_key = md5('getcyzls_redis');
+//        $objmatier = Db::table('scyddx')->alias('objmatier')
+//            ->field('icydid,sum(nyssl) as nyssl,sum(nysls) as nysls')
+//            ->group('icydid')
+//            ->buildSql();
+//
+//        $t5 = Db::table('mcyd')->alias('ord')
+//            ->field("DATE_FORMAT( dcyrq, '%Y-%m-%d' ) as rq,sum(objmatier.nyssl) as sl,sum(objmatier.nysls) as zl")
+//            ->join('(' . $objmatier . ') as objmatier', '  ord.icydid = objmatier.icydid','LEFT')
+//            ->where('ord.icydstate','>',0)
+//            ->group('rq')
+//            ->buildSql();
+//
+//        $list2023 = Db::table($t5 . ' t5')
+//            ->field("DATE_FORMAT(t5.rq, '%Y') as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+//            ->where("t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}' ")
+//            ->find();
+//        $list2022 = Db::table($t5 . ' t5')
+//            ->field("DATE_FORMAT(t5.rq, '%Y') as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+//            ->where("t5.RQ >= '{$this->qstart_time()}'AND t5.RQ <= '{$this->qend_time()}' ")
+//            ->find();
+//        $list2021 = Db::table($t5 . ' t5')
+//            ->field("DATE_FORMAT(t5.rq, '%Y') as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+//            ->where("t5.RQ >= '{$this->qianstart_time()}'AND t5.RQ <= '{$this->qianend_time()}' ")
+//            ->find();
+//        $list=['categories'=>[$list2021['rq'],$list2022['rq'],$list2023['rq']],'series'=>[['name'=>'纸令数',
+//            'data'=>[round($list2021['nysls']/10000),round($list2022['nysls']/10000),round($list2023['nysls']/10000)]]]];
+//        $res['status']=0;
+//        $res['msg']='';
+//        $res['data']=$list;
+//        if($list){
+//            $redis->set($redis_key, json_encode($res));
+//            return json_encode($res);
+//        }
+//    }
+    //修改后
+    public function getcyzls_redis(){
+        $redis=redis();
+        $redis_key = md5('getcyzls_redis');
+        $objmatier = Db::table('scyddx')->alias('objmatier')
+            ->field('icydid,sum(nyssl) as nyssl,sum(nysls) as nysls')
+            ->group('icydid')
+            ->buildSql();
+
+        $t5 = Db::table('mcyd')->alias('ord')
+            ->field("DATE_FORMAT( dcyrq, '%Y-%m-%d' ) as rq,sum(objmatier.nyssl) as sl,sum(objmatier.nysls) as zl")
+            ->join('(' . $objmatier . ') as objmatier', '  ord.icydid = objmatier.icydid','LEFT')
+            ->where('ord.icydstate','>',0)
+            ->group('rq')
+            ->buildSql();
+
+        // 只给年份字段套MAX()聚合,不新增任何GROUP BY,全局求和逻辑不变,解决1140报错
+        $list2023 = Db::table($t5 . ' t5')
+            ->field("MAX(DATE_FORMAT(t5.rq, '%Y')) as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+            ->where("t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}' ")
+            ->find();
+        $list2022 = Db::table($t5 . ' t5')
+            ->field("MAX(DATE_FORMAT(t5.rq, '%Y')) as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+            ->where("t5.RQ >= '{$this->qstart_time()}'AND t5.RQ <= '{$this->qend_time()}' ")
+            ->find();
+        $list2021 = Db::table($t5 . ' t5')
+            ->field("MAX(DATE_FORMAT(t5.rq, '%Y')) as rq,sum(t5.sl) as nyssl,sum(t5.zl) as nysls")
+            ->where("t5.RQ >= '{$this->qianstart_time()}'AND t5.RQ <= '{$this->qianend_time()}' ")
+            ->find();
+
+        // 下方数组组装、Redis、返回逻辑一行未改,和原代码完全相同
+        $list=['categories'=>[$list2021['rq'],$list2022['rq'],$list2023['rq']],'series'=>[['name'=>'纸令数',
+            'data'=>[round($list2021['nysls']/10000),round($list2022['nysls']/10000),round($list2023['nysls']/10000)]]]];
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        if($list){
+            $redis->set($redis_key, json_encode($res));
+            return json_encode($res);
+        }
+    }
+    //承印纸令->接口调用
+    public function getcyzl(){
+        $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('getcyzls_redis')),true);
+        }else{
+            $redis = redis();
+            $result = json_decode($redis->get(md5('getcyzl_redis')),true);
+        }
+        return json($result);
+    }
+
+    //去年与当年--印刷实物产量色令->缓存调用
+    public function yssl_redis(){
+        $redis=redis();
+        $redis_key = md5('yssl_redis');
+        //首先定义了起始时间和结束时间
+
+        //根据查询条件查出色令数据
+        $subQuery1_child = Db::table('bzysdayrpt')->field('drptrq AS rq,fsjsl')
+            ->whereIn('cbzmc', ['四色机2号(甲班)','四色机2号(乙班)','海德堡(甲班)',
+                '海德堡1号(甲班)','海德堡(乙班)','海德堡1号(乙班)','海德堡5+1 1号(甲班)',
+                '海德堡5+1 1号(乙班)','三菱机1(甲班)','三菱机1(乙班)','三菱机2(甲班)',
+                '三菱机2(乙班)','小森八色(甲班)','小森八色(乙班)'])
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field('b.dOnduty,a.nsl')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams')
+                    ->whereIn('cMachineName', ['四色机02号','四色机02号机','海德堡01号',
+                        '海德堡01号机','海德堡5+L 01号','海德堡5+L 01号机','三菱机01号',
+                        '三菱机01号机','三菱机02号','三菱机02号机','小森八色01号',
+                        '小森八色01号机','小森八色02号机']);
+            }, true)->buildSql();
+
+        $subQuery2_child = Db::table('bzysdayrpt')->field('drptrq AS rq,fsjsl')
+            ->whereIn('cbzmc', ['BB机1号(甲班)','BB机1号(乙班)','BB机2号(甲班)','BB机2号(乙班)',
+                'BB机3号(甲班)','BB机3号(乙班)','BB机4号(甲班)','BB机4号(乙班)','BB机5号(甲班)',
+                'BB机5号(乙班)','BB机6号(甲班)','BB机6号(乙班)', '05机1号(甲班)', '05机1号(乙班)',
+                '海德堡SM1号机(甲班)','海德堡SM1号机(乙班)', '海德堡SM2号机(甲班)','海德堡SM2号机(乙班)'])
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field('b.dOnduty,a.nsl ')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams')
+                    ->whereIn('cMachineName', ['BB机01号','BB机02号','BB机04号','BB机05号','如钰01号机','如钰02号机',
+                        'BB机06号','海德堡SM1号','海德堡SM2号']);
+            }, true)->buildSql();
+
+        $subQuery3_child = Db::table('bzysdayrpt')->field('drptrq AS rq,fsjsl')
+            ->whereIn('cbzmc', [
+                '小森LW-35(甲班)','小森LW-35(乙班)','小森2号机(甲班)','小森2号机(乙班)',
+                '大规小森3号机(甲班)','大规小森3号机(乙班)','三菱商轮(甲班)','三菱商轮(乙班)',
+                '三菱商轮2号(甲班)','三菱商轮2号(乙班)','204胶轮(甲班)','204胶轮(乙班)',
+                'V30(甲班)', 'V30(乙班)','报刊轮转(甲班)','报刊轮转(乙班)','高斯胶轮(甲班)','高斯胶轮(乙班)'])
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field('b.dOnduty,a.nsl ')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams')
+                    ->whereIn('cMachineName', ['标规小森商轮1号',
+                        '标规小森商轮2号','大规小森商轮1号','大规三菱商轮1号','标规三菱商轮1号',
+                        '标规三菱商轮2号','标规204胶轮1号','大规海德堡1号','标规报轮1号','标规高斯轮转1号','标规高斯2号','大规高斯轮转1号','标规高斯轮转2号','标规北人轮转1号']);
+            }, true)
+            ->buildSql();
+
+        //将两个表的日期字段进行合并,并返回一个包含不重复结果
+        $subQuery = Db::table('bzysdayrpt')->field('DISTINCT drptrq AS RQ')
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field(' DISTINCT b.dOnduty ')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams');
+            })->buildSql();
+
+        //查询每天的数据
+        $subQuery1 = Db::table($subQuery1_child . 'T')
+            ->field('rq,SUM( fsjsl ) nFourColorSL')
+            ->group('rq')->buildSql();
+
+        $subQuery2 = Db::table($subQuery2_child . 'T')
+            ->field('rq,SUM( fsjsl ) nBBSL')
+            ->group('rq')->buildSql();
+
+        $subQuery3 = Db::table($subQuery3_child . 'T')
+            ->field('rq,SUM( fsjsl ) nnRotationSL')
+            ->group('rq')->buildSql();
+
+
+        //按当天日期进行分组 累计相加当天数据
+        $subQuery1_5 = Db::table($subQuery . 'A')
+            ->field('
+                    DISTINCT DATE(A.RQ) RQ,
+                    sum(h.nBBSL) AS nBBSL,
+                    sum(B.nFourColorSL) AS nFourColorSL,
+                    sum(P.nnRotationSL) AS nnRotationSL
+            ')
+            ->join('(' . $subQuery1 . ') as B', '  A.RQ = B.rq','LEFT')
+            ->join('(' . $subQuery2 . ') as h', 'A.RQ = h.rq','LEFT')
+            ->join('(' . $subQuery3 . ') as P', 'A.RQ = P.rq','LEFT')
+            ->group('RQ')
+            ->buildSql();
+
+        // 获取当前年份和前两年的年份
+        $currentYear = date("Y");
+        $lastYear = date("Y", strtotime("-1 year"));
+        $twoYearsAgo = date("Y", strtotime("-2 years"));
+
+        // 查询SQL,按月份分组计算
+        $sql_final = Db::table($subQuery1_5 . ' db')
+            ->field("
+        DATE_FORMAT(db.RQ, '%Y-%m') AS '日期',
+        ROUND(SUM(db.nBBSL) + SUM(db.nFourColorSL) + SUM(db.nnRotationSL)) AS '印刷实物产量色令数'
+    ")
+            ->where("db.RQ >= '{$this->qianstart_time()}' AND db.RQ <= '{$this->end_time()}' ")
+            ->group("DATE_FORMAT(db.RQ, '%Y-%m')")
+            ->select();
+
+        $list['categories'] = [];
+        $list['series'] = [
+            0 => ['name' => $twoYearsAgo . '年', 'data' => array_fill(0, 12, 0)],
+            1 => ['name' => $lastYear . '年', 'data' => array_fill(0, 12, 0)],
+            2 => ['name' => $currentYear . '年', 'data' => array_fill(0, 12, 0)],
+        ];
+
+        // 填充月份数据
+        foreach (range(1, 12) as $month) {
+            $list['categories'][] = str_pad($month, 2, '0', STR_PAD_LEFT); // 月份:01, 02, ..., 12
+        }
+        $currentMonth = date("m");
+        foreach ($sql_final as $v) {
+            $yearMonth = $v['日期'];
+            $year = date('Y', strtotime($yearMonth));
+            $month = date('m', strtotime($yearMonth)) - 1; // 索引从0开始
+
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][$month] = $v['印刷实物产量色令数']; // 填充当前年数据
+            } elseif ($year == $lastYear) {
+                $list['series'][1]['data'][$month] = $v['印刷实物产量色令数']; // 填充去年数据
+            } elseif ($year == $twoYearsAgo) {
+                $list['series'][0]['data'][$month] = $v['印刷实物产量色令数']; // 填充前两年数据
+            }
+        }
+
+        //某一年没有数据,填充为0
+        if (!isset($list['series'][1]['data'][$currentMonth - 1])) {
+            $list['series'][1]['data'][$currentMonth - 1] = 0;
+        }
+
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //去年与当年--印刷实物产量色令->接口调用
+    public function yssl(){
+        $redis=redis();
+        $redis_key = md5('yssl_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //去年与当年--印刷实物产量纸令->缓存调用
+    public function yszl_redis(){
+        $redis=redis();
+        $redis_key = md5('yszl_redis');
+        //首先定义了起始时间和结束时间
+
+        $subQuery1_child = Db::table('bzysdayrpt')->field('drptrq AS rq,fsjls')
+            ->whereIn('cbzmc', ['四色机2号(甲班)','四色机2号(乙班)','海德堡(甲班)',
+                '海德堡1号(甲班)','海德堡(乙班)','海德堡1号(乙班)','海德堡5+1 1号(甲班)',
+                '海德堡5+1 1号(乙班)','三菱机1(甲班)','三菱机1(乙班)','三菱机2(甲班)',
+                '三菱机2(乙班)','小森八色(甲班)','小森八色(乙班)'])
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field('b.dOnduty,a.nzl')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams')
+                    ->whereIn('cMachineName', ['四色机02号','四色机02号机','海德堡01号',
+                        '海德堡01号机','海德堡5+L 01号','海德堡5+L 01号机','三菱机01号',
+                        '三菱机01号机','三菱机02号','三菱机02号机','小森八色01号',
+                        '小森八色01号机','小森八色02号机']);
+            }, true)->buildSql();
+
+        $subQuery2_child = Db::table('bzysdayrpt')->field('drptrq AS rq,fsjls')
+            ->whereIn('cbzmc', ['BB机1号(甲班)','BB机1号(乙班)','BB机2号(甲班)',
+                'BB机2号(乙班)','BB机3号(甲班)','BB机3号(乙班)','BB机4号(甲班)','BB机4号(乙班)',
+                'BB机5号(甲班)','BB机5号(乙班)',
+                'BB机6号(甲班)','BB机6号(乙班)','05机1号(甲班)','05机1号(乙班)',
+                '海德堡SM1号机(甲班)','海德堡SM1号机(乙班)','海德堡SM2号机(甲班)','海德堡SM2号机(乙班)'])
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field('b.dOnduty,a.nzl ')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams')
+                    ->whereIn('cMachineName', ['BB机01号','BB机02号','BB机04号','如钰01号机','如钰02号机',
+                        'BB机05号','BB机06号','海德堡SM1号','海德堡SM2号']);
+            }, true)->buildSql();
+        $subQuery3_child = Db::table('bzysdayrpt')->field('drptrq AS rq,fsjls')
+            ->whereIn('cbzmc', ['小森LW-35(甲班)','小森LW-35(乙班)','小森2号机(甲班)',
+                '小森2号机(乙班)','大规小森3号机(甲班)','大规小森3号机(乙班)','三菱商轮(甲班)',
+                '三菱商轮(乙班)','三菱商轮2号(甲班)','三菱商轮2号(乙班)','204胶轮(甲班)',
+                '204胶轮(乙班)','V30(甲班)','V30(乙班)','报刊轮转(甲班)','报刊轮转(乙班)','高斯胶轮(甲班)','高斯胶轮(乙班)'])
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field('b.dOnduty,a.nzl ')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams')
+                    ->whereIn('cMachineName', ['标规小森商轮1号',
+                        '标规小森商轮2号','大规小森商轮1号','大规三菱商轮1号','标规三菱商轮1号',
+                        '标规三菱商轮2号','标规204胶轮1号','大规海德堡1号','标规报轮1号','标规高斯轮转1号','标规高斯2号','大规高斯轮转1号','标规高斯轮转2号','标规北人轮转1号']);
+            }, true)->buildSql();
+
+        $subQuery = Db::table('bzysdayrpt')->field('DISTINCT drptrq AS RQ')->union(function ($query) {
+            $query->table('ql_report_feedback_day')->alias('a')->field(' DISTINCT b.dOnduty ')
+                ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams');
+        })->buildSql();
+
+        //四色机纸令合计
+        $subQuery1 = Db::table($subQuery1_child . 'T')
+            ->field('rq,SUM( fsjls ) nFourColorSL')
+            ->group('rq')->buildSql();
+
+        //BB机纸令合计
+        $subQuery2 = Db::table($subQuery2_child . 'T')
+            ->field('rq,SUM( fsjls ) nBBSL')
+            ->group('rq')->buildSql();
+
+        //轮转纸令合计
+        $subQuery3 = Db::table($subQuery3_child . 'T')
+            ->field('rq,SUM( fsjls ) nnRotationSL  ')
+            ->group('rq')->buildSql();
+
+
+        $subQuery1_5 = Db::table($subQuery . 'A')
+            ->field('DISTINCT A.RQ,h.nBBSL AS nBBSL,B.nFourColorSL AS nFourColorSL,P.nnRotationSL AS nnRotationSL')
+            ->join('(' . $subQuery1 . ') as B', '  A.RQ = B.rq','LEFT')
+            ->join('(' . $subQuery2 . ') as h', 'A.RQ = h.rq','LEFT')
+            ->join('(' . $subQuery3 . ') as P', 'A.RQ = P.rq','LEFT')
+            ->buildSql();
+
+        // 获取当前年份和前两年的年份
+        $currentYear = date("Y"); // 当前年份
+        $lastYear = date("Y", strtotime("-1 year")); // 去年
+        $twoYearsAgo = date("Y", strtotime("-2 years")); // 前两年
+
+        $sql_final = Db::table($subQuery1_5 . ' db')
+            ->field("
+        DATE_FORMAT( db.RQ, '%Y-%m' ) AS '日期',
+        ROUND(SUM( db.nBBSL ) + SUM( db.nFourColorSL ) + SUM( db.nnRotationSL )) AS '印刷实物产量纸令数'
+    ")
+            ->where("db.RQ >= '{$this->qianstart_time()}' AND db.RQ <= '{$this->end_time()}' ")
+            ->group("DATE_FORMAT( db.RQ, '%Y-%m' )")
+            ->select();
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']; // 月份
+        $list['series'] = [
+            ['name' => $twoYearsAgo . '年', 'data' => array_fill(0, 12, 0)], // 初始化前两年的数据为0
+            ['name' => $lastYear . '年', 'data' => array_fill(0, 12, 0)],   // 初始化去年的数据为0
+            ['name' => $currentYear . '年', 'data' => array_fill(0, 12, 0)], // 初始化今年的数据为0
+        ];
+        $currentMonth = date("m");
+        foreach ($sql_final as $v) {
+            // 提取年份和月份
+            $yearMonth = $v['日期']; // 格式:YYYY-MM
+            $year = date('Y', strtotime($yearMonth)); // 提取年份
+            $month = date('m', strtotime($yearMonth)) - 1; // 月份(数组索引从0开始)
+
+            // 根据年份分配数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][$month] = $v['印刷实物产量纸令数']; // 填充今年数据
+            } elseif ($year == $lastYear) {
+                $list['series'][1]['data'][$month] = $v['印刷实物产量纸令数']; // 填充去年数据
+            } elseif ($year == $twoYearsAgo) {
+                $list['series'][0]['data'][$month] = $v['印刷实物产量纸令数']; // 填充前两年数据
+            }
+        }
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+
+    }
+    //去年与当年--印刷实物产量纸令->接口调用
+    public function yszl(){
+        $redis=redis();
+        $redis_key = md5('yszl_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //去年装订实物产量册数->缓存调用
+    public function zdcs2022(){
+        $redis=redis();
+        $redis_key = md5('zdcs2022');
+
+        $A = Db::table('cpjtfk')->field("DISTINCT DATE_FORMAT(drptdate, '%Y-%m-%d') AS rq")
+            ->union(function ($query) {
+                $query->table('scDayRpt_Teams')->alias('b')
+                    ->field("DISTINCT DATE_FORMAT(
+        CASE
+            WHEN DATE_FORMAT(b.dOnDuty, '%H:%i:%s') < '06:30:00' THEN DATE_SUB(b.dOnDuty, INTERVAL 1 DAY)
+            ELSE b.dOnDuty
+        END,
+        '%Y-%m-%d'
+    ) AS RQ");
+            }, true)
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 精1乙
+            ")
+            ->whereIn('cjtmc', ['精装生产联动线','进口骑马联动','紫光骑马联动','紫光骑马联动(新)','恒山骑马联动'])
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 精11乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->whereIn('cMachineName', ['精装联动线01号','骑马联动01号','骑马联动02号','骑马联动03号','骑马联动04号'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+                DISTINCT DATE(A.RQ) rq,
+                IFNULL(sum(Bb1.精11乙), 0) + IFNULL((sum(B1.精1乙)), 0)       总计册
+            ")
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $jp = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+                ROUND(sum(db.总计册), 0) as 精平册数
+             ")->where("db.RQ >= '{$this->qstart_time()}'
+            AND db.RQ <= '{$this->qend_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马1甲
+            ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马1乙
+            ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马2甲
+            ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马2乙
+            ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马3甲
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马3乙
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马4甲
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马4乙
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马5甲
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马5乙,
+                sum(mcyd.NZWyz * iWCl / 1000) as 马5乙纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马11甲")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马11乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马22甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马22乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马33甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马33乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $HH = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马44甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $HH1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马44乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马55甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马66甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马77甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马55乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马66乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马77乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $db = Db::table($A . 'a')
+            ->field("
+                DISTINCT DATE_FORMAT(A.RQ, '%Y-%m-%d') AS rq,
+                 IFNULL(B.马1甲, 0) + IFNULL(B1.马1乙, 0)
+              + IFNULL(C.马2甲, 0) + IFNULL(C1.马2乙, 0)
+              + IFNULL(D.马3甲, 0) + IFNULL(D1.马3乙, 0)
+              + IFNULL(E.马4甲, 0) + IFNULL(E1.马4乙, 0)
+              + IFNULL(f.马5甲, 0) + IFNULL(f1.马5乙, 0)
+              + IFNULL(Bb.马11甲, 0) + IFNULL(Bb1.马11乙, 0)
+              + IFNULL(cc.马22甲, 0) + IFNULL(cc1.马22乙, 0)
+              + IFNULL(ee.马33甲, 0) + IFNULL(ee1.马33乙, 0)
+              + IFNULL( hh.马44甲, 0) + IFNULL(hh1.马44乙, 0)
+              + IFNULL(xx.马55甲, 0) + IFNULL(xx1.马55乙, 0)    
+              + IFNULL(xxx2.马66甲, 0) + IFNULL(xx2.马66乙, 0)     
+              + IFNULL(xxx3.马77甲, 0) + IFNULL(xx3.马77乙, 0)      总计册
+            ")
+            ->join('(' . $B . ') as b', '  a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $C . ') as c', 'a.rq = c.rq','LEFT')
+            ->join('(' . $C1 . ') as c1', 'a.rq = c1.rq','LEFT')
+            ->join('(' . $D . ') as d', 'a.rq = d.rq','LEFT')
+            ->join('(' . $D1 . ') as d1', 'a.rq = d1.rq','LEFT')
+            ->join('(' . $E . ') as e', 'a.rq = e.rq','LEFT')
+            ->join('(' . $E1 . ') as e1', 'a.rq = e1.rq','LEFT')
+            ->join('(' . $F . ') as f', 'a.rq = f.rq','LEFT')
+            ->join('(' . $F1 . ') as f1', 'a.rq = f1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->join('(' . $CC . ') as cc', 'a.rq = cc.rq','LEFT')
+            ->join('(' . $CC1 . ') as cc1', 'a.rq = cc1.rq','LEFT')
+            ->join('(' . $EE . ') as ee', 'a.rq = ee.rq','LEFT')
+            ->join('(' . $EE1 . ') as ee1', 'a.rq = ee1.rq','LEFT')
+            ->join('(' . $HH . ') as hh', 'a.rq = hh.rq','LEFT')
+            ->join('(' . $HH1 . ') as hh1', 'a.rq = hh1.rq','LEFT')
+            ->join('(' . $XX . ') as xx', 'a.rq = xx.rq','LEFT')
+            ->join('(' . $XX1 . ') as xx1', 'a.rq = xx1.rq','LEFT')
+            ->join('(' . $XX2 . ') as xx2', 'a.rq = xx2.rq','LEFT')
+            ->join('(' . $XX3 . ') as xx3', 'a.rq = xx3.rq','LEFT')
+            ->join('(' . $XXX2 . ') as xxx2', 'a.rq = xxx2.rq','LEFT')
+            ->join('(' . $XXX3 . ') as xxx3', 'a.rq = xxx3.rq','LEFT')
+            ->buildSql();
+
+        $jd = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+                ROUND(sum(db.总计册), 0) as 无线胶订册数
+             ")->where("db.RQ >= '{$this->qstart_time()}'
+            AND db.RQ <= '{$this->qend_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                 Sum(iWcl)  AS '簿1甲'
+            ")
+            ->where('cbanzu','=','簿册机1号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                 Sum(iWcl)  AS '簿1乙'
+            ")
+            ->where('cbanzu','=','簿册机1号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 Sum(a.nAmount) AS '簿11甲'
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID = a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','簿册联动线01号(甲班)')
+            ->where('a.cTechName' ,'=','簿册联动')
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                Sum(a.nAmount)  AS '簿11乙'
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID = a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','簿册联动线01号(乙班)')
+            ->where('a.cTechName' ,'=','簿册联动')
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+                DISTINCT DATE(A.RQ) rq,
+                IFNULL(sum(B.簿1甲), 0) + IFNULL((sum(b1.簿1乙)), 0)
+               + IFNULL(sum(Bb.簿11甲), 0) + IFNULL((sum(Bb1.簿11乙)), 0) 总计册
+            ")
+            ->join('(' . $B . ') as b', 'a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $bc = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+                ROUND(sum(db.总计册), 0) as 簿册册数
+             ")->where("db.RQ >= '{$this->qstart_time()}'
+            AND db.RQ <= '{$this->qend_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+
+        // 创建一个结果数组
+        $result=[];
+        $result1 = [];
+        // 遍历第一个数组,并将数据加入结果数组
+        foreach ($jp as $val1) {
+            $month = $val1['日期'];
+            $data1 = $val1['精平册数'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第一个数组的数据
+        }
+
+        // 遍历第二个数组,并将数据加入结果数组
+        foreach ($jd as $val2) {
+            $month = $val2['日期'];
+            $data1 = $val2['无线胶订册数'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第二个数组的数据
+        }
+
+        foreach ($bc as $val2) {
+            $month = $val2['日期'];
+            $data1 = $val2['簿册册数'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第二个数组的数据
+        }
+        foreach($result1 as $k=>$v){
+            $list['categories'][]=$k;
+            $list['series'][0]['name']='装订实物产量册数';
+            $list['series'][0]['data'][]=$v;
+        }
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($result1));
+        // halt(json_decode($redis->get($redis_key),true));
+        return json_encode($result1);
+    }
+    //当年装订实物产量册数->缓存调用
+    public function zdcsclcs_dang(){
+        $redis=redis();
+        $redis_key = md5('zdcsclcs_dang');
+
+        $A = Db::table('cpjtfk')->field("DISTINCT DATE_FORMAT(drptdate, '%Y-%m-%d') AS rq")
+            ->union(function ($query) {
+                $query->table('scDayRpt_Teams')->alias('b')
+                    ->field("DISTINCT DATE_FORMAT(
+      CASE
+          WHEN DATE_FORMAT(b.dOnDuty, '%H:%i:%s') < '06:30:00' THEN DATE_SUB(b.dOnDuty, INTERVAL 1 DAY)
+          ELSE b.dOnDuty
+      END,
+      '%Y-%m-%d'
+  ) AS RQ");
+            }, true)
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 精1乙
+          ")
+            ->whereIn('cjtmc', ['精装生产联动线','进口骑马联动','紫光骑马联动','紫光骑马联动(新)','恒山骑马联动'])
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 精11乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->whereIn('cMachineName', ['精装联动线01号','骑马联动01号','骑马联动02号','骑马联动03号','骑马联动04号'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+              DISTINCT DATE(A.RQ) rq,
+              IFNULL(sum(Bb1.精11乙), 0) + IFNULL((sum(B1.精1乙)), 0)       总计册
+          ")
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $jp = Db::table($db . ' db')
+            ->field("
+              DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+              ROUND(sum(db.总计册), 0) as 精平册数
+           ")->where("db.RQ >= '{$this->start_time()}'
+          AND db.RQ <= '{$this->end_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马1甲
+          ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马1乙
+          ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马2甲
+          ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马2乙
+          ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马3甲
+          ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马3乙
+          ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马4甲
+          ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马4乙
+          ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马5甲
+          ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马5乙,
+              sum(mcyd.NZWyz * iWCl / 1000) as 马5乙纸令数
+          ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马11甲")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马11乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马22甲
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马22乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马33甲
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马33乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $HH = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马44甲
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $HH1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马44乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马55甲
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马55乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马66甲
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马66乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        //     $XXX3 = Db::table('ql_report_feedback_day')->alias('a')
+        //         ->field("
+        //          CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+        //           sum(a.nAmount) as 马77甲
+        //       ")
+        //         ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+        //         ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+        //         ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+        //         ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+        //         ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+        //         ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+        //         ->where('Name_WorkGroup','=','胶钉精密达3号(甲班)')
+        //         ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+        //         ->group("CASE
+        //   WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        //   ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        //   END,Name_WorkGroup")
+        //         ->buildSql();
+
+
+        //     $XX3 = Db::table('ql_report_feedback_day')->alias('a')
+        //         ->field("
+        //          CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+        //           sum(a.nAmount) as 马77乙
+        //       ")
+        //         ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+        //         ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+        //         ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+        //         ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+        //         ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+        //         ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+        //         ->where('Name_WorkGroup','=','胶钉精密达3号(乙班)')
+        //         ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+        //         ->group("CASE
+        //   WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        //   ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        //   END,Name_WorkGroup")
+        //         ->buildSql();
+
+        $JDJ4 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马88甲
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达4号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $JDY4 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马88乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达4号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $db = Db::table($A . 'a')
+            ->field("
+              DISTINCT DATE_FORMAT(A.RQ, '%Y-%m-%d') AS rq,
+               IFNULL(B.马1甲, 0) + IFNULL(B1.马1乙, 0)
+            + IFNULL(C.马2甲, 0) + IFNULL(C1.马2乙, 0)
+            + IFNULL(D.马3甲, 0) + IFNULL(D1.马3乙, 0)
+            + IFNULL(E.马4甲, 0) + IFNULL(E1.马4乙, 0)
+            + IFNULL(f.马5甲, 0) + IFNULL(f1.马5乙, 0)
+            + IFNULL(Bb.马11甲, 0) + IFNULL(Bb1.马11乙, 0)
+            + IFNULL(cc.马22甲, 0) + IFNULL(cc1.马22乙, 0)
+            + IFNULL(ee.马33甲, 0) + IFNULL(ee1.马33乙, 0)
+            + IFNULL( hh.马44甲, 0) + IFNULL(hh1.马44乙, 0)
+            + IFNULL(xx.马55甲, 0) + IFNULL(xx1.马55乙, 0)      
+            + IFNULL(xxx2.马66甲, 0) + IFNULL(xx2.马66乙, 0)    
+            + IFNULL(jdj4.马88甲, 0) + IFNULL(jdy4.马88乙, 0)      总计册
+          ")
+            ->join('(' . $B . ') as b', '  a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $C . ') as c', 'a.rq = c.rq','LEFT')
+            ->join('(' . $C1 . ') as c1', 'a.rq = c1.rq','LEFT')
+            ->join('(' . $D . ') as d', 'a.rq = d.rq','LEFT')
+            ->join('(' . $D1 . ') as d1', 'a.rq = d1.rq','LEFT')
+            ->join('(' . $E . ') as e', 'a.rq = e.rq','LEFT')
+            ->join('(' . $E1 . ') as e1', 'a.rq = e1.rq','LEFT')
+            ->join('(' . $F . ') as f', 'a.rq = f.rq','LEFT')
+            ->join('(' . $F1 . ') as f1', 'a.rq = f1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->join('(' . $CC . ') as cc', 'a.rq = cc.rq','LEFT')
+            ->join('(' . $CC1 . ') as cc1', 'a.rq = cc1.rq','LEFT')
+            ->join('(' . $EE . ') as ee', 'a.rq = ee.rq','LEFT')
+            ->join('(' . $EE1 . ') as ee1', 'a.rq = ee1.rq','LEFT')
+            ->join('(' . $HH . ') as hh', 'a.rq = hh.rq','LEFT')
+            ->join('(' . $HH1 . ') as hh1', 'a.rq = hh1.rq','LEFT')
+            ->join('(' . $XX . ') as xx', 'a.rq = xx.rq','LEFT')
+            ->join('(' . $XX1 . ') as xx1', 'a.rq = xx1.rq','LEFT')
+            ->join('(' . $XX2 . ') as xx2', 'a.rq = xx2.rq','LEFT')
+            ->join('(' . $XXX2 . ') as xxx2', 'a.rq = xxx2.rq','LEFT')
+            ->join('(' . $JDJ4 . ') as jdj4', 'a.rq = jdj4.rq','LEFT')
+            ->join('(' . $JDY4 . ') as jdy4', 'a.rq = jdy4.rq','LEFT')
+            ->buildSql();
+        // print_r($db);die;
+
+        $jd = Db::table($db . ' db')
+            ->field("
+              DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+              ROUND(sum(db.总计册), 0) as 无线胶订册数
+           ")->where("db.RQ >= '{$this->start_time()}'
+          AND db.RQ <= '{$this->end_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+               Sum(iWcl)  AS '簿1甲'
+          ")
+            ->where('cbanzu','=','簿册机1号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+               Sum(iWcl)  AS '簿1乙'
+          ")
+            ->where('cbanzu','=','簿册机1号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+               Sum(a.nAmount) AS '簿11甲'
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID = a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','簿册联动线01号(甲班)')
+            ->where('a.cTechName' ,'=','簿册联动')
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              Sum(a.nAmount)  AS '簿11乙'
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID = a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','簿册联动线01号(乙班)')
+            ->where('a.cTechName' ,'=','簿册联动')
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+              DISTINCT DATE(A.RQ) rq,
+              IFNULL(sum(B.簿1甲), 0) + IFNULL((sum(b1.簿1乙)), 0)
+             + IFNULL(sum(Bb.簿11甲), 0) + IFNULL((sum(Bb1.簿11乙)), 0) 总计册
+          ")
+            ->join('(' . $B . ') as b', 'a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $bc = Db::table($db . ' db')
+            ->field("
+              DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+              ROUND(sum(db.总计册), 0) as 簿册册数
+           ")->where("db.RQ >= '{$this->start_time()}'
+          AND db.RQ <= '{$this->end_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+
+        // 创建一个结果数组
+        $result=[];
+        $result1 = [];
+        // 遍历第一个数组,并将数据加入结果数组
+        foreach ($jp as $val1) {
+            $month = $val1['日期'];
+            $data1 = $val1['精平册数'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第一个数组的数据
+        }
+
+        // 遍历第二个数组,并将数据加入结果数组
+        foreach ($jd as $val2) {
+            $month = $val2['日期'];
+            $data1 = $val2['无线胶订册数'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第二个数组的数据
+        }
+
+        foreach ($bc as $val2) {
+            $month = $val2['日期'];
+            $data1 = $val2['簿册册数'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第二个数组的数据
+        }
+        foreach($result1 as $k=>$v){
+            $list['categories'][]=$k;
+            $list['series'][0]['name']='装订实物产量册数';
+            $list['series'][0]['data'][]=$v;
+        }
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($result1));
+        // halt(json_decode($redis->get($redis_key),true));
+        return json_encode($result1);
+    }
+    //前年装订实物产量册数->缓存调用
+    public function zdcsTwoYear(){
+        $redis=redis();
+        $redis_key = md5('zdcsTwoYear');
+
+        $A = Db::table('cpjtfk')->field("DISTINCT DATE_FORMAT(drptdate, '%Y-%m-%d') AS rq")
+            ->union(function ($query) {
+                $query->table('scDayRpt_Teams')->alias('b')
+                    ->field("DISTINCT DATE_FORMAT(
+      CASE
+          WHEN DATE_FORMAT(b.dOnDuty, '%H:%i:%s') < '06:30:00' THEN DATE_SUB(b.dOnDuty, INTERVAL 1 DAY)
+          ELSE b.dOnDuty
+      END,
+      '%Y-%m-%d'
+  ) AS RQ");
+            }, true)
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 精1乙
+          ")
+            ->whereIn('cjtmc', ['精装生产联动线','进口骑马联动','紫光骑马联动','紫光骑马联动(新)','恒山骑马联动'])
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 精11乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->whereIn('cMachineName', ['精装联动线01号','骑马联动01号','骑马联动02号','骑马联动03号','骑马联动04号'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+              DISTINCT DATE(A.RQ) rq,
+              IFNULL(sum(Bb1.精11乙), 0) + IFNULL((sum(B1.精1乙)), 0)       总计册
+          ")
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $jp = Db::table($db . ' db')
+            ->field("
+              DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+              ROUND(sum(db.总计册), 0) as 精平册数
+           ")->where("db.RQ >= '{$this->qianstart_time()}'
+          AND db.RQ <= '{$this->qianend_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马1甲
+          ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马1乙
+          ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马2甲
+          ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马2乙
+          ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马3甲
+          ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马3乙
+          ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马4甲
+          ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马4乙
+          ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马5甲
+          ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(iwcl) as 马5乙,
+              sum(mcyd.NZWyz * iWCl / 1000) as 马5乙纸令数
+          ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马11甲")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马11乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马22甲
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马22乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马33甲
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马33乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $HH = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马44甲
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $HH1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马44乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马55甲
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马66甲
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马77甲
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马55乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马66乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              sum(a.nAmount) as 马77乙
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $db = Db::table($A . 'a')
+            ->field("
+              DISTINCT DATE_FORMAT(A.RQ, '%Y-%m-%d') AS rq,
+               IFNULL(B.马1甲, 0) + IFNULL(B1.马1乙, 0)
+            + IFNULL(C.马2甲, 0) + IFNULL(C1.马2乙, 0)
+            + IFNULL(D.马3甲, 0) + IFNULL(D1.马3乙, 0)
+            + IFNULL(E.马4甲, 0) + IFNULL(E1.马4乙, 0)
+            + IFNULL(f.马5甲, 0) + IFNULL(f1.马5乙, 0)
+            + IFNULL(Bb.马11甲, 0) + IFNULL(Bb1.马11乙, 0)
+            + IFNULL(cc.马22甲, 0) + IFNULL(cc1.马22乙, 0)
+            + IFNULL(ee.马33甲, 0) + IFNULL(ee1.马33乙, 0)
+            + IFNULL( hh.马44甲, 0) + IFNULL(hh1.马44乙, 0)
+            + IFNULL(xx.马55甲, 0) + IFNULL(xx1.马55乙, 0)      
+            + IFNULL(xxx2.马66甲, 0) + IFNULL(xx2.马66乙, 0)     
+            + IFNULL(xxx3.马77甲, 0) + IFNULL(xx3.马77乙, 0)      总计册
+          ")
+            ->join('(' . $B . ') as b', '  a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $C . ') as c', 'a.rq = c.rq','LEFT')
+            ->join('(' . $C1 . ') as c1', 'a.rq = c1.rq','LEFT')
+            ->join('(' . $D . ') as d', 'a.rq = d.rq','LEFT')
+            ->join('(' . $D1 . ') as d1', 'a.rq = d1.rq','LEFT')
+            ->join('(' . $E . ') as e', 'a.rq = e.rq','LEFT')
+            ->join('(' . $E1 . ') as e1', 'a.rq = e1.rq','LEFT')
+            ->join('(' . $F . ') as f', 'a.rq = f.rq','LEFT')
+            ->join('(' . $F1 . ') as f1', 'a.rq = f1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->join('(' . $CC . ') as cc', 'a.rq = cc.rq','LEFT')
+            ->join('(' . $CC1 . ') as cc1', 'a.rq = cc1.rq','LEFT')
+            ->join('(' . $EE . ') as ee', 'a.rq = ee.rq','LEFT')
+            ->join('(' . $EE1 . ') as ee1', 'a.rq = ee1.rq','LEFT')
+            ->join('(' . $HH . ') as hh', 'a.rq = hh.rq','LEFT')
+            ->join('(' . $HH1 . ') as hh1', 'a.rq = hh1.rq','LEFT')
+            ->join('(' . $XX . ') as xx', 'a.rq = xx.rq','LEFT')
+            ->join('(' . $XX1 . ') as xx1', 'a.rq = xx1.rq','LEFT')
+            ->join('(' . $XX2 . ') as xx2', 'a.rq = xx2.rq','LEFT')
+            ->join('(' . $XX3 . ') as xx3', 'a.rq = xx3.rq','LEFT')
+            ->join('(' . $XXX2 . ') as xxx2', 'a.rq = xxx2.rq','LEFT')
+            ->join('(' . $XXX3 . ') as xxx3', 'a.rq = xxx3.rq','LEFT')
+            ->buildSql();
+
+        $jd = Db::table($db . ' db')
+            ->field("
+              DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+              ROUND(sum(db.总计册), 0) as 无线胶订册数
+           ")->where("db.RQ >= '{$this->qianstart_time()}'
+          AND db.RQ <= '{$this->qianend_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+               Sum(iWcl)  AS '簿1甲'
+          ")
+            ->where('cbanzu','=','簿册机1号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+               Sum(iWcl)  AS '簿1乙'
+          ")
+            ->where('cbanzu','=','簿册机1号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+               Sum(a.nAmount) AS '簿11甲'
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID = a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','簿册联动线01号(甲班)')
+            ->where('a.cTechName' ,'=','簿册联动')
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+              Sum(a.nAmount)  AS '簿11乙'
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID = a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','簿册联动线01号(乙班)')
+            ->where('a.cTechName' ,'=','簿册联动')
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+              DISTINCT DATE(A.RQ) rq,
+              IFNULL(sum(B.簿1甲), 0) + IFNULL((sum(b1.簿1乙)), 0)
+             + IFNULL(sum(Bb.簿11甲), 0) + IFNULL((sum(Bb1.簿11乙)), 0) 总计册
+          ")
+            ->join('(' . $B . ') as b', 'a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $bc = Db::table($db . ' db')
+            ->field("
+              DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+              ROUND(sum(db.总计册), 0) as 簿册册数
+           ")->where("db.RQ >= '{$this->qianstart_time()}'
+          AND db.RQ <= '{$this->qianend_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+
+        // 创建一个结果数组
+        $result=[];
+        $result1 = [];
+        // 遍历第一个数组,并将数据加入结果数组
+        foreach ($jp as $val1) {
+            $month = $val1['日期'];
+            $data1 = $val1['精平册数'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第一个数组的数据
+        }
+
+        // 遍历第二个数组,并将数据加入结果数组
+        foreach ($jd as $val2) {
+            $month = $val2['日期'];
+            $data1 = $val2['无线胶订册数'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第二个数组的数据
+        }
+
+        foreach ($bc as $val2) {
+            $month = $val2['日期'];
+            $data1 = $val2['簿册册数'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第二个数组的数据
+        }
+        foreach($result1 as $k=>$v){
+            $list['categories'][]=$k;
+            $list['series'][0]['name']='装订实物产量册数';
+            $list['series'][0]['data'][]=$v;
+        }
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($result1));
+        // halt(json_decode($redis->get($redis_key),true));
+        return json_encode($result1);
+    }
+    //装订实物产量册数 接口合并一起->接口调用
+    public function zdcs(){
+        $redis = redis();
+        $result_qian = json_decode($redis->get(md5('zdcsTwoYear')), true);
+        $result_qu = json_decode($redis->get(md5('zdcs2022')), true);
+        $result_dang = json_decode($redis->get(md5('zdcsclcs_dang')), true);
+
+        // Merge all data
+        $result1 = array_merge($result_qian, $result_qu, $result_dang);
+
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+        $currentYear = date("Y"); // Current year (2025)
+        $currentMonth = date("m"); // Current month (07)
+        $previousYear = $currentYear - 1; // 2024
+        $previousQianYear = $currentYear - 2; // 2023
+
+        // Initialize series with 0 values
+        $list['series'] = [
+            ['name' => $previousQianYear . '年', 'data' => array_fill(0, 12, 0)],
+            ['name' => $previousYear . '年', 'data' => array_fill(0, 12, 0)],
+            ['name' => $currentYear . '年', 'data' => array_fill(0, 12, 0)]
+        ];
+
+        foreach ($result1 as $k => $v) {
+            $yearMonth = explode('-', $k);
+            $year = $yearMonth[0];
+            $month = (int)$yearMonth[1];
+            $monthIndex = $month - 1;
+
+            if ($year == $previousQianYear) {
+                $list['series'][0]['data'][$monthIndex] += $v;
+            } elseif ($year == $previousYear) {
+                $list['series'][1]['data'][$monthIndex] += $v;
+            } elseif ($year == $currentYear) {
+                // Only add if month is current or past month
+                if ($month <= (int)$currentMonth) {
+                    $list['series'][2]['data'][$monthIndex] += $v;
+                }
+            }
+        }
+
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        return json_encode($res, JSON_UNESCAPED_UNICODE);
+    }
+    // public function zdcs() {
+    //     $redis = redis();
+
+    //     $result_qian = json_decode($redis->get(md5('zdcsTwoYear')), true);
+    //     $result_qu = json_decode($redis->get(md5('zdcs2022')), true);
+    //     $result_dang = json_decode($redis->get(md5('zdcsclcs_dang')), true);
+
+    //     // 合并三年的数据
+    //     $result1 = array_merge($result_qian, $result_qu, $result_dang);
+
+    //     $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+    //     $currentYear = date("Y"); // 当前年份
+    //     $currentMonth = date("m"); // 当前月份
+    //     $previousYear = $currentYear - 1; // 上一年
+    //     $previousQianYear = $currentYear - 2; // 前年
+
+    //     // 初始化三个年份的数据数组,先填充0
+    //     $list['series'][0]['name'] = $previousQianYear . '年';
+    //     $list['series'][0]['data'] = array_fill(0, 12, 0);
+    //     $list['series'][1]['name'] = $previousYear . '年';
+    //     $list['series'][1]['data'] = array_fill(0, 12, 0);
+    //     $list['series'][2]['name'] = $currentYear . '年';
+    //     $list['series'][2]['data'] = array_fill(0, 12, 0);
+
+    //     foreach ($result1 as $k => $v) {
+    //         $yearMonth = explode('-', $k);
+    //         $year = $yearMonth[0];
+    //         $month = (int)$yearMonth[1];
+
+    //         if ($year == $previousQianYear) {
+    //             // 如果是前两年的数据,直接赋值
+    //             $list['series'][0]['data'][$month - 1] = $v;
+    //         } elseif ($year == $previousYear) {
+    //             // 如果是去年的数据,直接赋值
+    //             $list['series'][1]['data'][$month - 1] = $v;
+    //         } elseif ($year == $currentYear && $month <= (int)$currentMonth) {
+    //             // 如果是当前年份,并且月份不超过当前月份,则赋值
+    //             $list['series'][2]['data'][$month - 1] = $v;
+    //         }
+    //         // 如果是当前年份但月份超过当前月份,则不处理,保持为0
+    //     }
+
+    //     $res['status'] = 0;
+    //     $res['msg'] = '';
+    //     $res['data'] = $list;
+    //     return json_encode($res);
+    // }
+
+    //去年装订实物产量纸令->缓存调用
+    public function zdzl2022(){
+        $redis=redis();
+        $redis_key = md5('zdzl2022');
+
+        $A = Db::table('cpjtfk')->field("DISTINCT DATE_FORMAT(drptdate, '%Y-%m-%d') AS rq")
+            ->union(function ($query) {
+                $query->table('scDayRpt_Teams')->alias('b')
+                    ->field("DISTINCT DATE_FORMAT(
+      CASE
+          WHEN DATE_FORMAT(b.dOnDuty, '%H:%i:%s') < '06:30:00' THEN DATE_SUB(b.dOnDuty, INTERVAL 1 DAY)
+          ELSE b.dOnDuty
+      END,
+      '%Y-%m-%d'
+  ) AS RQ");
+            }, true)
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(mcyd.NZWyz * iWCl / 1000) as 精1乙纸令数
+          ")
+            ->whereIn('cjtmc', ['精装生产联动线','进口骑马联动','紫光骑马联动','紫光骑马联动(新)','恒山骑马联动'])
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+               ROUND(SUM(
+  CASE
+    WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+      THEN
+        CASE
+          WHEN a.cCyddxMc = '装配'
+               OR a.cCyddxMc LIKE '%正文%'
+               OR a.cCyddxMc LIKE '%答案%'
+               OR a.cCyddxMc LIKE '%卷%'
+          THEN
+            CASE
+              WHEN CASE
+                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                      THEN rr.zl
+                      ELSE IFNULL(d.fZls, 0)
+                    END = 0
+              THEN c.nzdls
+              ELSE (
+                CASE
+                  WHEN c.nzdls <
+                       CASE
+                         WHEN IFNULL(d.fZls, 0) < rr.zl
+                         THEN rr.zl
+                         ELSE IFNULL(d.fZls, 0)
+                       END
+                  THEN
+                    CASE
+                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                      THEN rr.zl
+                      ELSE IFNULL(d.fZls, 0)
+                    END
+                  ELSE c.nzdls
+                END
+              )
+            END
+          ELSE 0
+        END
+    ELSE
+      CASE
+        WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+          THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+               CASE
+                 WHEN a.cCyddxMc = '装配'
+                      OR a.cCyddxMc LIKE '%正文%'
+                      OR a.cCyddxMc LIKE '%答案%'
+                      OR a.cCyddxMc LIKE '%卷%'
+                 THEN
+                   CASE
+                     WHEN CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END = 0
+                     THEN c.nzdls
+                     ELSE (
+                       CASE
+                         WHEN c.nzdls <
+                              CASE
+                                WHEN IFNULL(d.fZls, 0) < rr.zl
+                                THEN rr.zl
+                                ELSE IFNULL(d.fZls, 0)
+                              END
+                         THEN
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                         ELSE c.nzdls
+                       END
+                     )
+                   END
+                 ELSE 0
+               END
+        ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+      END
+        END )
+   , 3)    精11乙纸令
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->whereIn('cMachineName', ['精装联动线01号','骑马联动01号','骑马联动02号','骑马联动03号','骑马联动04号'])
+            ->group("CASE
+   WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+  END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+             DATE(A.RQ) rq,
+             TRUNCATE(IFNULL(Bb1.精11乙纸令, 0) + IFNULL(B1.精1乙纸令数, 0), 0) 纸令数总计
+          ")
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->buildSql();
+
+
+        $jp = Db::table($db . ' db')
+            ->field("
+              DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+              ROUND(sum(db.纸令数总计), 0) as 精平纸令
+           ")->where("db.RQ >= '{$this->qstart_time()}'
+          AND db.RQ <= '{$this->qend_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                  DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                  sum(mcyd.NZWyz * iWCl / 1000) as 马1甲纸令数
+              ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                  DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                  sum(mcyd.NZWyz * iWCl / 1000) as 马1乙纸令数
+              ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                  DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                  sum(mcyd.NZWyz * iWCl / 1000) as 马2甲纸令数
+              ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                  DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                  sum(mcyd.NZWyz * iWCl / 1000) as 马2乙纸令数
+              ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                  DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                  sum(mcyd.NZWyz * iWCl / 1000) as 马3甲纸令数
+              ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                  DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                  sum(mcyd.NZWyz * iWCl / 1000) as 马3乙纸令数
+              ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                  DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                  sum(mcyd.NZWyz * iWCl / 1000) as 马4甲纸令数
+              ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                  DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                  sum(mcyd.NZWyz * iWCl / 1000) as 马4乙纸令数
+              ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                  DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                  sum(mcyd.NZWyz * iWCl / 1000) as 马5甲纸令数
+              ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                  DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                  sum(mcyd.NZWyz * iWCl / 1000) as 马5乙纸令数
+              ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN CASE WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%' OR a.cCyddxMc LIKE '%答案%' OR a.cCyddxMc LIKE '%卷%'
+              THEN CASE
+                  WHEN CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                        END = 0 THEN c.nzdls
+                  ELSE ( CASE
+                      WHEN c.nzdls < CASE  WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                        END ELSE c.nzdls END
+                  )  END ELSE 0 END
+        ELSE CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%' OR a.cCyddxMc LIKE '%答案%' OR a.cCyddxMc LIKE '%卷%'
+                     THEN CASE
+                         WHEN CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                               END = 0 THEN c.nzdls
+                         ELSE ( CASE WHEN c.nzdls <
+                                  CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                               END ELSE c.nzdls END )
+                       END ELSE 0 END ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END END ), 3)    马11甲纸令 ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马11乙纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马22甲纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马22乙纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马33甲纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马33乙纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $HH = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马44甲纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $HH1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马44乙纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马55甲纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马66甲纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马77甲纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $JDJ4 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马88甲纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达4号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马55乙纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马66乙纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马77乙纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $JDY4 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                 CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                   ROUND(SUM(
+      CASE
+        WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+          THEN
+            CASE
+              WHEN a.cCyddxMc = '装配'
+                   OR a.cCyddxMc LIKE '%正文%'
+                   OR a.cCyddxMc LIKE '%答案%'
+                   OR a.cCyddxMc LIKE '%卷%'
+              THEN
+                CASE
+                  WHEN CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END = 0
+                  THEN c.nzdls
+                  ELSE (
+                    CASE
+                      WHEN c.nzdls <
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                      THEN
+                        CASE
+                          WHEN IFNULL(d.fZls, 0) < rr.zl
+                          THEN rr.zl
+                          ELSE IFNULL(d.fZls, 0)
+                        END
+                      ELSE c.nzdls
+                    END
+                  )
+                END
+              ELSE 0
+            END
+        ELSE
+          CASE
+            WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+              THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                   CASE
+                     WHEN a.cCyddxMc = '装配'
+                          OR a.cCyddxMc LIKE '%正文%'
+                          OR a.cCyddxMc LIKE '%答案%'
+                          OR a.cCyddxMc LIKE '%卷%'
+                     THEN
+                       CASE
+                         WHEN CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END = 0
+                         THEN c.nzdls
+                         ELSE (
+                           CASE
+                             WHEN c.nzdls <
+                                  CASE
+                                    WHEN IFNULL(d.fZls, 0) < rr.zl
+                                    THEN rr.zl
+                                    ELSE IFNULL(d.fZls, 0)
+                                  END
+                             THEN
+                               CASE
+                                 WHEN IFNULL(d.fZls, 0) < rr.zl
+                                 THEN rr.zl
+                                 ELSE IFNULL(d.fZls, 0)
+                               END
+                             ELSE c.nzdls
+                           END
+                         )
+                       END
+                     ELSE 0
+                   END
+            ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+          END
+            END )
+       , 3)    马88乙纸令
+              ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达4号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+       WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+          ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+      END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+                  DISTINCT DATE(A.RQ) rq,
+                  TRUNCATE(IFNULL(sum(b.马1甲纸令数), 0) + IFNULL(sum(b1.马1乙纸令数), 0)
+                  + IFNULL(sum(C.马2甲纸令数), 0) + IFNULL(sum(C1.马2乙纸令数), 0)
+                  + IFNULL(sum(D.马3甲纸令数), 0) + IFNULL(sum(D1.马3乙纸令数), 0)
+                  + IFNULL(sum(E.马4甲纸令数), 0) + IFNULL(sum(E1.马4乙纸令数), 0)
+                  + IFNULL(sum(f.马5甲纸令数), 0) + IFNULL(sum(f1.马5乙纸令数), 0)
+                  + IFNULL(sum(Bb.马11甲纸令), 0) + IFNULL(sum(cc.马22甲纸令), 0)
+                  + IFNULL(sum(ee.马33甲纸令), 0) + IFNULL(sum(hh.马44甲纸令), 0)
+                  + IFNULL(sum(xx.马55甲纸令), 0) + IFNULL(sum(Bb1.马11乙纸令), 0)
+                  + IFNULL(sum(cc1.马22乙纸令), 0) + IFNULL(sum(ee1.马33乙纸令), 0)
+                  + IFNULL(sum(hh1.马44乙纸令), 0) + IFNULL(sum(xx1.马55乙纸令), 0)
+                  + IFNULL(sum(xxx2.马66甲纸令), 0) + IFNULL(sum(xx2.马66乙纸令), 0)
+                  + IFNULL(sum(JDJ4.马88甲纸令), 0) + IFNULL(sum(JDY4.马88乙纸令), 0)
+                  + IFNULL(sum(xxx3.马77甲纸令), 0) + IFNULL(sum(xx3.马77乙纸令), 0), 0) 纸令数总计
+              ")
+            ->join('(' . $B . ') as b', '  a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $C . ') as c', 'a.rq = c.rq','LEFT')
+            ->join('(' . $C1 . ') as c1', 'a.rq = c1.rq','LEFT')
+            ->join('(' . $D . ') as d', 'a.rq = d.rq','LEFT')
+            ->join('(' . $D1 . ') as d1', 'a.rq = d1.rq','LEFT')
+            ->join('(' . $E . ') as e', 'a.rq = e.rq','LEFT')
+            ->join('(' . $E1 . ') as e1', 'a.rq = e1.rq','LEFT')
+            ->join('(' . $F . ') as f', 'a.rq = f.rq','LEFT')
+            ->join('(' . $F1 . ') as f1', 'a.rq = f1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->join('(' . $CC . ') as cc', 'a.rq = cc.rq','LEFT')
+            ->join('(' . $CC1 . ') as cc1', 'a.rq = cc1.rq','LEFT')
+            ->join('(' . $EE . ') as ee', 'a.rq = ee.rq','LEFT')
+            ->join('(' . $EE1 . ') as ee1', 'a.rq = ee1.rq','LEFT')
+            ->join('(' . $HH . ') as hh', 'a.rq = hh.rq','LEFT')
+            ->join('(' . $HH1 . ') as hh1', 'a.rq = hh1.rq','LEFT')
+            ->join('(' . $XX . ') as xx', 'a.rq = xx.rq','LEFT')
+            ->join('(' . $XX1 . ') as xx1', 'a.rq = xx1.rq','LEFT')
+            ->join('(' . $XX2 . ') as xx2', 'a.rq = xx2.rq','LEFT')
+            ->join('(' . $XX3 . ') as xx3', 'a.rq = xx3.rq','LEFT')
+            ->join('(' . $XXX2 . ') as xxx2', 'a.rq = xxx2.rq','LEFT')
+            ->join('(' . $XXX3 . ') as xxx3', 'a.rq = xxx3.rq','LEFT')
+            ->join('(' . $JDJ4 . ') as JDJ4', 'a.rq = JDJ4.rq','LEFT')
+            ->join('(' . $JDY4 . ') as JDY4', 'a.rq = JDY4.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $jd = Db::table($db . ' db')
+            ->field("
+                  DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+                  ROUND(SUM(db.纸令数总计), 0) AS 无线胶订纸令
+               ")
+            ->where("db.RQ >= '{$this->qstart_time()}'AND db.RQ <= '{$this->qend_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+        /**
+         * 簿册联动线纸令
+         */
+
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(mcyd.NZWyz * iWCl / 1000) AS 簿1甲纸令数
+          ")
+            ->where('cbanzu','=','簿册机1号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+              DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+              sum(mcyd.NZWyz * iWCl / 1000) AS 簿1乙纸令数
+          ")
+            ->where('cbanzu','=','簿册机1号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+               ROUND(SUM(
+  CASE
+    WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+      THEN
+        CASE
+          WHEN a.cCyddxMc = '装配'
+               OR a.cCyddxMc LIKE '%正文%'
+               OR a.cCyddxMc LIKE '%答案%'
+               OR a.cCyddxMc LIKE '%卷%'
+          THEN
+            CASE
+              WHEN CASE
+                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                      THEN rr.zl
+                      ELSE IFNULL(d.fZls, 0)
+                    END = 0
+              THEN c.nzdls
+              ELSE (
+                CASE
+                  WHEN c.nzdls <
+                       CASE
+                         WHEN IFNULL(d.fZls, 0) < rr.zl
+                         THEN rr.zl
+                         ELSE IFNULL(d.fZls, 0)
+                       END
+                  THEN
+                    CASE
+                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                      THEN rr.zl
+                      ELSE IFNULL(d.fZls, 0)
+                    END
+                  ELSE c.nzdls
+                END
+              )
+            END
+          ELSE 0
+        END
+    ELSE
+      CASE
+        WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+          THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+               CASE
+                 WHEN a.cCyddxMc = '装配'
+                      OR a.cCyddxMc LIKE '%正文%'
+                      OR a.cCyddxMc LIKE '%答案%'
+                      OR a.cCyddxMc LIKE '%卷%'
+                 THEN
+                   CASE
+                     WHEN CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END = 0
+                     THEN c.nzdls
+                     ELSE (
+                       CASE
+                         WHEN c.nzdls <
+                              CASE
+                                WHEN IFNULL(d.fZls, 0) < rr.zl
+                                THEN rr.zl
+                                ELSE IFNULL(d.fZls, 0)
+                              END
+                         THEN
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                         ELSE c.nzdls
+                       END
+                     )
+                   END
+                 ELSE 0
+               END
+        ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+      END
+        END )
+   , 3)    簿11甲纸令
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID = a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','簿册联动线01号(甲班)')
+            ->where('a.cTechName' ,'=','簿册联动')
+            ->group("CASE
+   WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+  END,Name_WorkGroup")
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+             CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+               ROUND(SUM(
+  CASE
+    WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+      THEN
+        CASE
+          WHEN a.cCyddxMc = '装配'
+               OR a.cCyddxMc LIKE '%正文%'
+               OR a.cCyddxMc LIKE '%答案%'
+               OR a.cCyddxMc LIKE '%卷%'
+          THEN
+            CASE
+              WHEN CASE
+                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                      THEN rr.zl
+                      ELSE IFNULL(d.fZls, 0)
+                    END = 0
+              THEN c.nzdls
+              ELSE (
+                CASE
+                  WHEN c.nzdls <
+                       CASE
+                         WHEN IFNULL(d.fZls, 0) < rr.zl
+                         THEN rr.zl
+                         ELSE IFNULL(d.fZls, 0)
+                       END
+                  THEN
+                    CASE
+                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                      THEN rr.zl
+                      ELSE IFNULL(d.fZls, 0)
+                    END
+                  ELSE c.nzdls
+                END
+              )
+            END
+          ELSE 0
+        END
+    ELSE
+      CASE
+        WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+          THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+               CASE
+                 WHEN a.cCyddxMc = '装配'
+                      OR a.cCyddxMc LIKE '%正文%'
+                      OR a.cCyddxMc LIKE '%答案%'
+                      OR a.cCyddxMc LIKE '%卷%'
+                 THEN
+                   CASE
+                     WHEN CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END = 0
+                     THEN c.nzdls
+                     ELSE (
+                       CASE
+                         WHEN c.nzdls <
+                              CASE
+                                WHEN IFNULL(d.fZls, 0) < rr.zl
+                                THEN rr.zl
+                                ELSE IFNULL(d.fZls, 0)
+                              END
+                         THEN
+                           CASE
+                             WHEN IFNULL(d.fZls, 0) < rr.zl
+                             THEN rr.zl
+                             ELSE IFNULL(d.fZls, 0)
+                           END
+                         ELSE c.nzdls
+                       END
+                     )
+                   END
+                 ELSE 0
+               END
+        ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+      END
+        END )
+   , 3)    簿11乙纸令
+          ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID = a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','簿册联动线01号(乙班)')
+            ->where('a.cTechName' ,'=','簿册联动')
+            ->group("CASE
+   WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+      ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+  END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+              DISTINCT DATE_FORMAT(A.RQ, '%Y-%m-%d') AS rq,
+             TRUNCATE(IFNULL(sum(B.簿1甲纸令数), 0) + IFNULL(sum(B1.簿1乙纸令数), 0)
+            + IFNULL(sum(Bb.簿11甲纸令), 0) + IFNULL(sum(Bb1.簿11乙纸令), 0), 0) 纸令
+          ")
+            ->join('(' . $B . ') as b', 'a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $bc = Db::table($db . ' db')
+            ->field("
+              DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+              ROUND(sum(db.纸令), 0) as 簿册纸令
+           ")->where("db.RQ >= '{$this->qstart_time()}'
+          AND db.RQ <= '{$this->qend_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+        // 创建一个结果数组
+        $result=[];
+        $result1 = [];
+        // 遍历第一个数组,并将数据加入结果数组
+        foreach ($jp as $val1) {
+            $month = $val1['日期'];
+            $data1 = $val1['精平纸令'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第一个数组的数据
+        }
+
+        // 遍历第二个数组,并将数据加入结果数组
+        foreach ($jd as $val2) {
+            $month = $val2['日期'];
+            $data1 = $val2['无线胶订纸令'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第二个数组的数据
+        }
+
+        foreach ($bc as $val2) {
+            $month = $val2['日期'];
+            $data1 = $val2['簿册纸令'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第二个数组的数据
+        }
+        foreach($result1 as $k=>$v){
+            $list['categories'][]=$k;
+            $list['series'][0]['name']='装订实物产量色令数';
+            $list['series'][0]['data'][]=$v;
+        }
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($result1));
+        // halt(json_decode($redis->get($redis_key),true));
+        return json_encode($result1);
+    }
+    //当年装订实物产量纸令->缓存调用
+    public function zdzl_dang(){
+        $redis=redis();
+        $redis_key = md5('zdzl_dang');
+
+        $A = Db::table('cpjtfk')->field("DISTINCT DATE_FORMAT(drptdate, '%Y-%m-%d') AS rq")
+            ->union(function ($query) {
+                $query->table('scDayRpt_Teams')->alias('b')
+                    ->field("DISTINCT DATE_FORMAT(
+        CASE
+            WHEN DATE_FORMAT(b.dOnDuty, '%H:%i:%s') < '06:30:00' THEN DATE_SUB(b.dOnDuty, INTERVAL 1 DAY)
+            ELSE b.dOnDuty
+        END,
+        '%Y-%m-%d'
+    ) AS RQ");
+            }, true)
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 精1乙纸令数
+            ")
+            ->whereIn('cjtmc', ['精装生产联动线','进口骑马联动','紫光骑马联动','紫光骑马联动(新)','恒山骑马联动'])
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    精11乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->whereIn('cMachineName', ['精装联动线01号','骑马联动01号','骑马联动02号','骑马联动03号','骑马联动04号'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+               DATE(A.RQ) rq,
+               TRUNCATE(IFNULL(Bb1.精11乙纸令, 0) + IFNULL(B1.精1乙纸令数, 0), 0) 纸令数总计
+            ")
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->buildSql();
+
+
+        $jp = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+                ROUND(sum(db.纸令数总计), 0) as 精平纸令
+             ")->where("db.RQ >= '{$this->start_time()}'
+            AND db.RQ <= '{$this->end_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马1甲纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马1乙纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马2甲纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马2乙纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马3甲纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马3乙纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马4甲纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马4乙纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马5甲纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马5乙纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN CASE WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%' OR a.cCyddxMc LIKE '%答案%' OR a.cCyddxMc LIKE '%卷%'
+                THEN CASE
+                    WHEN CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                          END = 0 THEN c.nzdls
+                    ELSE ( CASE
+                        WHEN c.nzdls < CASE  WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                          END ELSE c.nzdls END
+                    )  END ELSE 0 END
+          ELSE CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%' OR a.cCyddxMc LIKE '%答案%' OR a.cCyddxMc LIKE '%卷%'
+                       THEN CASE
+                           WHEN CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                                 END = 0 THEN c.nzdls
+                           ELSE ( CASE WHEN c.nzdls <
+                                    CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                                 END ELSE c.nzdls END )
+                         END ELSE 0 END ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END END ), 3)    马11甲纸令 ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马11乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马22甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马22乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马33甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马33乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $HH = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马44甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $HH1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马44乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马55甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马66甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马77甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $JDJ4 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马88甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达4号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马55乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马66乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马77乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $JDY4 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马88乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达4号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+                    DISTINCT DATE(A.RQ) rq,
+                    TRUNCATE(IFNULL(sum(b.马1甲纸令数), 0) + IFNULL(sum(b1.马1乙纸令数), 0)
+                    + IFNULL(sum(C.马2甲纸令数), 0) + IFNULL(sum(C1.马2乙纸令数), 0)
+                    + IFNULL(sum(D.马3甲纸令数), 0) + IFNULL(sum(D1.马3乙纸令数), 0)
+                    + IFNULL(sum(E.马4甲纸令数), 0) + IFNULL(sum(E1.马4乙纸令数), 0)
+                    + IFNULL(sum(f.马5甲纸令数), 0) + IFNULL(sum(f1.马5乙纸令数), 0)
+                    + IFNULL(sum(Bb.马11甲纸令), 0) + IFNULL(sum(cc.马22甲纸令), 0)
+                    + IFNULL(sum(ee.马33甲纸令), 0) + IFNULL(sum(hh.马44甲纸令), 0)
+                    + IFNULL(sum(xx.马55甲纸令), 0) + IFNULL(sum(Bb1.马11乙纸令), 0)
+                    + IFNULL(sum(cc1.马22乙纸令), 0) + IFNULL(sum(ee1.马33乙纸令), 0)
+                    + IFNULL(sum(hh1.马44乙纸令), 0) + IFNULL(sum(xx1.马55乙纸令), 0)
+                    + IFNULL(sum(xxx2.马66甲纸令), 0) + IFNULL(sum(xx2.马66乙纸令), 0)
+                    + IFNULL(sum(jdj4.马88甲纸令), 0) + IFNULL(sum(jdy4.马88乙纸令), 0)
+                    + IFNULL(sum(xxx3.马77甲纸令), 0) + IFNULL(sum(xx3.马77乙纸令), 0), 0) 纸令数总计
+                ")
+            ->join('(' . $B . ') as b', '  a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $C . ') as c', 'a.rq = c.rq','LEFT')
+            ->join('(' . $C1 . ') as c1', 'a.rq = c1.rq','LEFT')
+            ->join('(' . $D . ') as d', 'a.rq = d.rq','LEFT')
+            ->join('(' . $D1 . ') as d1', 'a.rq = d1.rq','LEFT')
+            ->join('(' . $E . ') as e', 'a.rq = e.rq','LEFT')
+            ->join('(' . $E1 . ') as e1', 'a.rq = e1.rq','LEFT')
+            ->join('(' . $F . ') as f', 'a.rq = f.rq','LEFT')
+            ->join('(' . $F1 . ') as f1', 'a.rq = f1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->join('(' . $CC . ') as cc', 'a.rq = cc.rq','LEFT')
+            ->join('(' . $CC1 . ') as cc1', 'a.rq = cc1.rq','LEFT')
+            ->join('(' . $EE . ') as ee', 'a.rq = ee.rq','LEFT')
+            ->join('(' . $EE1 . ') as ee1', 'a.rq = ee1.rq','LEFT')
+            ->join('(' . $HH . ') as hh', 'a.rq = hh.rq','LEFT')
+            ->join('(' . $HH1 . ') as hh1', 'a.rq = hh1.rq','LEFT')
+            ->join('(' . $XX . ') as xx', 'a.rq = xx.rq','LEFT')
+            ->join('(' . $XX1 . ') as xx1', 'a.rq = xx1.rq','LEFT')
+            ->join('(' . $XX2 . ') as xx2', 'a.rq = xx2.rq','LEFT')
+            ->join('(' . $XX3 . ') as xx3', 'a.rq = xx3.rq','LEFT')
+            ->join('(' . $XXX2 . ') as xxx2', 'a.rq = xxx2.rq','LEFT')
+            ->join('(' . $XXX3 . ') as xxx3', 'a.rq = xxx3.rq','LEFT')
+            ->join('(' . $JDJ4 . ') as jdj4', 'a.rq = jdj4.rq','LEFT')
+            ->join('(' . $JDY4 . ') as jdy4', 'a.rq = jdy4.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $jd = Db::table($db . ' db')
+            ->field("
+                    DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+                    ROUND(SUM(db.纸令数总计), 0) AS 无线胶订纸令
+                 ")
+            ->where("db.RQ >= '{$this->start_time()}'AND db.RQ <= '{$this->end_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+        /**
+         * 簿册联动线纸令
+         */
+
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) AS 簿1甲纸令数
+            ")
+            ->where('cbanzu','=','簿册机1号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) AS 簿1乙纸令数
+            ")
+            ->where('cbanzu','=','簿册机1号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    簿11甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID = a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','簿册联动线01号(甲班)')
+            ->where('a.cTechName' ,'=','簿册联动')
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    簿11乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID = a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','簿册联动线01号(乙班)')
+            ->where('a.cTechName' ,'=','簿册联动')
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+                DISTINCT DATE_FORMAT(A.RQ, '%Y-%m-%d') AS rq,
+               TRUNCATE(IFNULL(sum(B.簿1甲纸令数), 0) + IFNULL(sum(B1.簿1乙纸令数), 0)
+              + IFNULL(sum(Bb.簿11甲纸令), 0) + IFNULL(sum(Bb1.簿11乙纸令), 0), 0) 纸令
+            ")
+            ->join('(' . $B . ') as b', 'a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $bc = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+                ROUND(sum(db.纸令), 0) as 簿册纸令
+             ")->where("db.RQ >= '{$this->start_time()}'
+            AND db.RQ <= '{$this->end_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+        // 创建一个结果数组
+        $result=[];
+        $result1 = [];
+        // 遍历第一个数组,并将数据加入结果数组
+        foreach ($jp as $val1) {
+            $month = $val1['日期'];
+            $data1 = $val1['精平纸令'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第一个数组的数据
+        }
+
+        // 遍历第二个数组,并将数据加入结果数组
+        foreach ($jd as $val2) {
+            $month = $val2['日期'];
+            $data1 = $val2['无线胶订纸令'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第二个数组的数据
+        }
+
+        foreach ($bc as $val2) {
+            $month = $val2['日期'];
+            $data1 = $val2['簿册纸令'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第二个数组的数据
+        }
+        foreach($result1 as $k=>$v){
+            $list['categories'][]=$k;
+            $list['series'][0]['name']='装订实物产量色令数';
+            $list['series'][0]['data'][]=$v;
+        }
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($result1));
+        // halt(json_decode($redis->get($redis_key),true));
+        return json_encode($result1);
+    }
+    //前年装订实物产量纸令->缓存调用
+    public function zdzlTwoYear(){
+        $redis=redis();
+        $redis_key = md5('zdzlTwoYear');
+
+        $A = Db::table('cpjtfk')->field("DISTINCT DATE_FORMAT(drptdate, '%Y-%m-%d') AS rq")
+            ->union(function ($query) {
+                $query->table('scDayRpt_Teams')->alias('b')
+                    ->field("DISTINCT DATE_FORMAT(
+        CASE
+            WHEN DATE_FORMAT(b.dOnDuty, '%H:%i:%s') < '06:30:00' THEN DATE_SUB(b.dOnDuty, INTERVAL 1 DAY)
+            ELSE b.dOnDuty
+        END,
+        '%Y-%m-%d'
+    ) AS RQ");
+            }, true)
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 精1乙纸令数
+            ")
+            ->whereIn('cjtmc', ['精装生产联动线','进口骑马联动','紫光骑马联动','紫光骑马联动(新)','恒山骑马联动'])
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    精11乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->whereIn('cMachineName', ['精装联动线01号','骑马联动01号','骑马联动02号','骑马联动03号'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+               DATE(A.RQ) rq,
+               TRUNCATE(IFNULL(Bb1.精11乙纸令, 0) + IFNULL(B1.精1乙纸令数, 0), 0) 纸令数总计
+            ")
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->buildSql();
+
+
+        $jp = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+                ROUND(sum(db.纸令数总计), 0) as 精平纸令
+             ")->where("db.RQ >= '{$this->start_time()}'
+            AND db.RQ <= '{$this->end_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马1甲纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马1乙纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马2甲纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马2乙纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马3甲纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马3乙纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马4甲纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马4乙纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马5甲纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                    DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                    sum(mcyd.NZWyz * iWCl / 1000) as 马5乙纸令数
+                ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN CASE WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%' OR a.cCyddxMc LIKE '%答案%' OR a.cCyddxMc LIKE '%卷%'
+                THEN CASE
+                    WHEN CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                          END = 0 THEN c.nzdls
+                    ELSE ( CASE
+                        WHEN c.nzdls < CASE  WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                          END ELSE c.nzdls END
+                    )  END ELSE 0 END
+          ELSE CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%' OR a.cCyddxMc LIKE '%答案%' OR a.cCyddxMc LIKE '%卷%'
+                       THEN CASE
+                           WHEN CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                                 END = 0 THEN c.nzdls
+                           ELSE ( CASE WHEN c.nzdls <
+                                    CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                                 END ELSE c.nzdls END )
+                         END ELSE 0 END ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END END ), 3)    马11甲纸令 ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马11乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马22甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马22乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马33甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马33乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $HH = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马44甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $HH1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马44乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马55甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马66甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马77甲纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马55乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马66乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+                   CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                     ROUND(SUM(
+        CASE
+          WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+            THEN
+              CASE
+                WHEN a.cCyddxMc = '装配'
+                     OR a.cCyddxMc LIKE '%正文%'
+                     OR a.cCyddxMc LIKE '%答案%'
+                     OR a.cCyddxMc LIKE '%卷%'
+                THEN
+                  CASE
+                    WHEN CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END = 0
+                    THEN c.nzdls
+                    ELSE (
+                      CASE
+                        WHEN c.nzdls <
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                        THEN
+                          CASE
+                            WHEN IFNULL(d.fZls, 0) < rr.zl
+                            THEN rr.zl
+                            ELSE IFNULL(d.fZls, 0)
+                          END
+                        ELSE c.nzdls
+                      END
+                    )
+                  END
+                ELSE 0
+              END
+          ELSE
+            CASE
+              WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+                THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                     CASE
+                       WHEN a.cCyddxMc = '装配'
+                            OR a.cCyddxMc LIKE '%正文%'
+                            OR a.cCyddxMc LIKE '%答案%'
+                            OR a.cCyddxMc LIKE '%卷%'
+                       THEN
+                         CASE
+                           WHEN CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END = 0
+                           THEN c.nzdls
+                           ELSE (
+                             CASE
+                               WHEN c.nzdls <
+                                    CASE
+                                      WHEN IFNULL(d.fZls, 0) < rr.zl
+                                      THEN rr.zl
+                                      ELSE IFNULL(d.fZls, 0)
+                                    END
+                               THEN
+                                 CASE
+                                   WHEN IFNULL(d.fZls, 0) < rr.zl
+                                   THEN rr.zl
+                                   ELSE IFNULL(d.fZls, 0)
+                                 END
+                               ELSE c.nzdls
+                             END
+                           )
+                         END
+                       ELSE 0
+                     END
+              ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+            END
+              END )
+         , 3)    马77乙纸令
+                ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+    		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+            ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+    		END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+                    DISTINCT DATE(A.RQ) rq,
+                    TRUNCATE(IFNULL(sum(b.马1甲纸令数), 0) + IFNULL(sum(b1.马1乙纸令数), 0)
+                    + IFNULL(sum(C.马2甲纸令数), 0) + IFNULL(sum(C1.马2乙纸令数), 0)
+                    + IFNULL(sum(D.马3甲纸令数), 0) + IFNULL(sum(D1.马3乙纸令数), 0)
+                    + IFNULL(sum(E.马4甲纸令数), 0) + IFNULL(sum(E1.马4乙纸令数), 0)
+                    + IFNULL(sum(f.马5甲纸令数), 0) + IFNULL(sum(f1.马5乙纸令数), 0)
+                    + IFNULL(sum(Bb.马11甲纸令), 0) + IFNULL(sum(cc.马22甲纸令), 0)
+                    + IFNULL(sum(ee.马33甲纸令), 0) + IFNULL(sum(hh.马44甲纸令), 0)
+                    + IFNULL(sum(xx.马55甲纸令), 0) + IFNULL(sum(Bb1.马11乙纸令), 0)
+                    + IFNULL(sum(cc1.马22乙纸令), 0) + IFNULL(sum(ee1.马33乙纸令), 0)
+                    + IFNULL(sum(hh1.马44乙纸令), 0) + IFNULL(sum(xx1.马55乙纸令), 0)
+                    + IFNULL(sum(xxx2.马66甲纸令), 0) + IFNULL(sum(xx2.马66乙纸令), 0)
+                    + IFNULL(sum(xxx3.马77甲纸令), 0) + IFNULL(sum(xx3.马77乙纸令), 0), 0) 纸令数总计
+                ")
+            ->join('(' . $B . ') as b', '  a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $C . ') as c', 'a.rq = c.rq','LEFT')
+            ->join('(' . $C1 . ') as c1', 'a.rq = c1.rq','LEFT')
+            ->join('(' . $D . ') as d', 'a.rq = d.rq','LEFT')
+            ->join('(' . $D1 . ') as d1', 'a.rq = d1.rq','LEFT')
+            ->join('(' . $E . ') as e', 'a.rq = e.rq','LEFT')
+            ->join('(' . $E1 . ') as e1', 'a.rq = e1.rq','LEFT')
+            ->join('(' . $F . ') as f', 'a.rq = f.rq','LEFT')
+            ->join('(' . $F1 . ') as f1', 'a.rq = f1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->join('(' . $CC . ') as cc', 'a.rq = cc.rq','LEFT')
+            ->join('(' . $CC1 . ') as cc1', 'a.rq = cc1.rq','LEFT')
+            ->join('(' . $EE . ') as ee', 'a.rq = ee.rq','LEFT')
+            ->join('(' . $EE1 . ') as ee1', 'a.rq = ee1.rq','LEFT')
+            ->join('(' . $HH . ') as hh', 'a.rq = hh.rq','LEFT')
+            ->join('(' . $HH1 . ') as hh1', 'a.rq = hh1.rq','LEFT')
+            ->join('(' . $XX . ') as xx', 'a.rq = xx.rq','LEFT')
+            ->join('(' . $XX1 . ') as xx1', 'a.rq = xx1.rq','LEFT')
+            ->join('(' . $XX2 . ') as xx2', 'a.rq = xx2.rq','LEFT')
+            ->join('(' . $XX3 . ') as xx3', 'a.rq = xx3.rq','LEFT')
+            ->join('(' . $XXX2 . ') as xxx2', 'a.rq = xxx2.rq','LEFT')
+            ->join('(' . $XXX3 . ') as xxx3', 'a.rq = xxx3.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $jd = Db::table($db . ' db')
+            ->field("
+                    DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+                    ROUND(SUM(db.纸令数总计), 0) AS 无线胶订纸令
+                 ")
+            ->where("db.RQ >= '{$this->qianstart_time()}'AND db.RQ <= '{$this->qianend_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+        /**
+         * 簿册联动线纸令
+         */
+
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) AS 簿1甲纸令数
+            ")
+            ->where('cbanzu','=','簿册机1号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) AS 簿1乙纸令数
+            ")
+            ->where('cbanzu','=','簿册机1号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    簿11甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID = a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','簿册联动线01号(甲班)')
+            ->where('a.cTechName' ,'=','簿册联动')
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    簿11乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID = a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','簿册联动线01号(乙班)')
+            ->where('a.cTechName' ,'=','簿册联动')
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+                DISTINCT DATE_FORMAT(A.RQ, '%Y-%m-%d') AS rq,
+               TRUNCATE(IFNULL(sum(B.簿1甲纸令数), 0) + IFNULL(sum(B1.簿1乙纸令数), 0)
+              + IFNULL(sum(Bb.簿11甲纸令), 0) + IFNULL(sum(Bb1.簿11乙纸令), 0), 0) 纸令
+            ")
+            ->join('(' . $B . ') as b', 'a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $bc = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m') as 日期,
+                ROUND(sum(db.纸令), 0) as 簿册纸令
+             ")->where("db.RQ >= '{$this->qianstart_time()}'
+            AND db.RQ <= '{$this->qianend_time()}' ")
+            ->group('MONTH(db.rq)')
+            ->select();
+
+        // 创建一个结果数组
+        $result=[];
+        $result1 = [];
+        // 遍历第一个数组,并将数据加入结果数组
+        foreach ($jp as $val1) {
+            $month = $val1['日期'];
+            $data1 = $val1['精平纸令'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第一个数组的数据
+        }
+
+        // 遍历第二个数组,并将数据加入结果数组
+        foreach ($jd as $val2) {
+            $month = $val2['日期'];
+            $data1 = $val2['无线胶订纸令'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第二个数组的数据
+        }
+
+        foreach ($bc as $val2) {
+            $month = $val2['日期'];
+            $data1 = $val2['簿册纸令'];
+
+            if (!isset($result[$month])) {
+                $result[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            if (!isset($result1[$month])) {
+                $result1[$month] = 0;  // 初始化结果数组中该月份的数据为0
+            }
+
+            $result1[$month] += $data1;  // 累加第二个数组的数据
+        }
+        foreach($result1 as $k=>$v){
+            $list['categories'][]=$k;
+            $list['series'][0]['name']='装订实物产量色令数';
+            $list['series'][0]['data'][]=$v;
+        }
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($result1));
+        // halt(json_decode($redis->get($redis_key),true));
+        return json_encode($result1);
+    }
+    //去年与当年--装订实物产量纸令 接口合并一起->接口调用
+    public function zdzl(){
+        $redis = redis();
+        $result_qian = json_decode($redis->get(md5('zdzlTwoYear')), true);
+        $result_qu = json_decode($redis->get(md5('zdzl2022')), true);
+        $result_dang = json_decode($redis->get(md5('zdzl_dang')), true);
+
+        // Merge all data
+        $result1 = array_merge($result_qian, $result_qu, $result_dang);
+
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+        $currentYear = date("Y"); // Current year (2025)
+        $currentMonth = date("m"); // Current month (07)
+        $previousYear = $currentYear - 1; // 2024
+        $previousQianYear = $currentYear - 2; // 2023
+
+        // Initialize series with 0 values
+        $list['series'] = [
+            ['name' => $previousQianYear . '年', 'data' => array_fill(0, 12, 0)],
+            ['name' => $previousYear . '年', 'data' => array_fill(0, 12, 0)],
+            ['name' => $currentYear . '年', 'data' => array_fill(0, 12, 0)]
+        ];
+
+        foreach ($result1 as $k => $v) {
+            $yearMonth = explode('-', $k);
+            $year = $yearMonth[0];
+            $month = (int)$yearMonth[1];
+            $monthIndex = $month - 1;
+
+            if ($year == $previousQianYear) {
+                $list['series'][0]['data'][$monthIndex] += $v;
+            } elseif ($year == $previousYear) {
+                $list['series'][1]['data'][$monthIndex] += $v;
+            } elseif ($year == $currentYear) {
+                // Only add if month is current or past month
+                if ($month <= (int)$currentMonth) {
+                    $list['series'][2]['data'][$monthIndex] += $v;
+                }
+            }
+        }
+
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        return json_encode($res, JSON_UNESCAPED_UNICODE);
+    }
+
+    //年度承接量及完成百分比->缓存调用
+    public function ndcj_redis(){
+        $redis=redis();
+        $redis_key = md5('ndcj_redis');
+        $name='年度承接产量(万色令)';
+        $yu=Db::name('business')->where('name',$name)->value('year_target');
+//        修正前
+//        $result = 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  GROUP BY `rq` ) t5 WHERE  (  t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}'  )
+//         GROUP BY year(t5.rq) ) M");
+        //修正后
+        $result = Db::query("SELECT
+         round( M.总色令/$yu*100,0) 色令百分比,round( m.总色令) 色令,$yu 常量, M.年度
+         FROM (SELECT YEAR(t5.rq) as 年度,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  GROUP BY `rq` ) t5 WHERE  (  t5.RQ >= '{$this->start_time()}'AND t5.RQ <= '{$this->end_time()}'  ) 
+         GROUP BY year(t5.rq) ) M");
+
+        foreach ($result as $v) {
+            $list[0]['name'] = ' ';
+            $list[0]['value'] = round($v['色令']);
+            $list[1]['name'] = ' ';
+            $list[1]['value'] = round($v['常量']);
+            $list[2]['name'] = ' ';
+            $list[2]['value'] = round($v['色令百分比']);
+        }
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        // halt(json_decode($redis->get($redis_key),true));
+        return json_encode($res);
+    }
+    //年度承接量及完成百分比->接口调用
+    public function ndcj(){
+        $redis=redis();
+        $redis_key = md5('ndcj_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //年度完成实物产量->缓存调用
+    public function wcsw_redis(){
+        $redis=redis();
+        $redis_key = md5('wcsw_redis');
+        $name='年度完成实物产量(万色令)';
+        $yu=Db::name('business')->where('name',$name)->value('year_target');
+        $result = Db::query("SELECT 
+         round(sum(m.`印刷实物产量色令数`)/$yu*100,0) 完成率,round(sum(m.`印刷实物产量色令数`)) 色令数求和,$yu 常量
+         from (SELECT ROUND((SUM( db.nBBSL )+SUM( db.nFourColorSL )+SUM( db.nnRotationSL ))/10000,2) AS '印刷实物产量色令数'
+         FROM (SELECT DISTINCT A.RQ,h.nBBSL AS nBBSL,B.nFourColorSL AS nFourColorSL,P.nnRotationSL AS nnRotationSL
+         FROM (SELECT DISTINCT drptrq AS RQ FROM `bzysdayrpt` UNION ( SELECT DISTINCT b.dOnduty FROM `ql_report_feedback_day` `a`
+         INNER JOIN `scdayrpt_teams` `b` ON `b`.`ID`=`a`.`ID_Teams` ) )A LEFT JOIN (( SELECT rq,SUM( iSjys ) nFourColorsTotal,COUNT( 1 ) nFourColorPZ, SUM( fsjsl ) nFourColorSL
+         FROM ( SELECT drptrq AS rq,`iSjys`,`fsjsl` FROM `bzysdayrpt` WHERE  `cbzmc` IN ('四色机2号(甲班)','四色机2号(乙班)','海德堡(甲班)','海德堡1号(甲班)','海德堡(乙班)','海德堡1号(乙班)','海德堡5+1 1号(甲班)','海德堡5+1 1号(乙班)','三菱机1(甲班)','三菱机1(乙班)','三菱机2(甲班)','三菱机2(乙班)','小森八色(甲班)','小森八色(乙班)')
+         UNION ALL ( SELECT `b`.`dOnduty`,`a`.`nAmount`,`a`.`nsl` FROM `ql_report_feedback_day` `a` INNER JOIN `scdayrpt_teams` `b` ON `b`.`ID`=`a`.`ID_Teams`
+         WHERE  `cMachineName` IN ('四色机02号','四色机02号机','海德堡01号','海德堡01号机','海德堡5+L 01号','海德堡5+L 01号机','三菱机01号','三菱机01号机','三菱机02号','三菱机02号机','小森八色01号','小森八色01号机','小森八色02号机') ) )T
+         GROUP BY `rq` )) as B ON `A`.`RQ`=`B`.`rq` LEFT JOIN (( SELECT rq,SUM( iSjys ) nBBTotal,COUNT( 1 ) nBBPZ,SUM( fsjsl ) nBBSL
+         FROM ( SELECT drptrq AS rq,`iSjys`,`fsjsl` FROM `bzysdayrpt` WHERE  `cbzmc` IN ('BB机1号(甲班)','BB机1号(乙班)','BB机2号(甲班)','BB机2号(乙班)','BB机3号(甲班)','BB机3号(乙班)','BB机4号(甲班)','BB机4号(乙班)','BB机5号(甲班)','BB机5号(乙班)','BB机6号(甲班)','BB机6号(乙班)','05机1号(甲班)','05机1号(乙班)','海德堡SM1号机(甲班)','海德堡SM1号机(乙班)','海德堡SM2号机(甲班)','海德堡SM2号机(乙班)')
+         UNION ALL ( SELECT `b`.`dOnduty`,`a`.`nAmount`,`a`.`nsl` FROM `ql_report_feedback_day` `a` INNER JOIN `scdayrpt_teams` `b` ON `b`.`ID`=`a`.`ID_Teams`
+         WHERE  `cMachineName` IN ('如钰01号机','如钰02号机','BB机01号','BB机02号','BB机04号','BB机05号','BB机06号','海德堡SM1号','海德堡SM2号') ) )T
+         GROUP BY `rq` )) as h ON `A`.`RQ`=`h`.`rq` LEFT JOIN (( SELECT rq,SUM( iSjys ) nRotationTotal,COUNT( 1 ) nRotationPZ,SUM( fsjsl ) nnRotationSL
+         FROM ( SELECT drptrq AS rq,`iSjys`,`fsjsl` FROM `bzysdayrpt` WHERE  `cbzmc` IN ('小森LW-35(甲班)','小森LW-35(乙班)','小森2号机(甲班)','小森2号机(乙班)','大规小森3号机(甲班)','大规小森3号机(乙班)','三菱商轮(甲班)','三菱商轮(乙班)','三菱商轮2号(甲班)','三菱商轮2号(乙班)','204胶轮(甲班)','204胶轮(乙班)','V30(甲班)','V30(乙班)','报刊轮转(甲班)','报刊轮转(乙班)')
+         UNION ALL ( SELECT `b`.`dOnduty`,`a`.`nAmount`,`a`.`nsl` FROM `ql_report_feedback_day` `a` INNER JOIN `scdayrpt_teams` `b` ON `b`.`ID`=`a`.`ID_Teams`
+         WHERE  `cMachineName` IN ('标规小森商轮1号','标规小森商轮2号','大规小森商轮1号','大规三菱商轮1号','标规三菱商轮1号','标规三菱商轮2号','标规204胶轮1号','大规海德堡1号','标规报轮1号','标规高斯轮转1号','标规高斯轮转2号','大规高斯轮转1号','标规北人轮转1号') ) )T
+         GROUP BY `rq` )) as P ON `A`.`RQ`=`P`.`rq` ) db WHERE db.RQ >= '{$this->start_time()}'AND db.RQ <= '{$this->end_time()}' ) m");
+//        GROUP BY `rq` )) as P ON `A`.`RQ`=`P`.`rq` ) db WHERE (db.RQ >= '{$this->start_time()}'AND db.RQ <= '{$this->end_time()}')
+//         GROUP BY MONTH(db.RQ) ORDER BY `db`.`RQ` ASC ) m");
+        if($result){
+            foreach ($result as $v) {
+                $list[0]['name'] = ' ';
+                $list[0]['value'] = round($v['色令数求和']);
+                $list[1]['name'] = ' ';
+                $list[1]['value'] = round($v['常量']);
+                $list[2]['name'] = ' ';
+                $list[2]['value'] = round($v['完成率']);
+            }
+            $res['status'] = 0;
+            $res['msg'] = '';
+            $res['data'] = $list;
+            $redis->set($redis_key, json_encode($res));
+            // halt(json_decode($redis->get($redis_key),true));
+            return json_encode($res);
+        }
+    }
+    //年度完成实物产量->接口调用
+    public function wcsw(){
+        $redis=redis();
+        $redis_key = md5('wcsw_redis');
+        $redis_data = $redis->get($redis_key);
+//        return $redis_data;
+//        die;
+        $redis=redis();
+        // $redis_key = md5('wcsw_redis');
+//        $redis_key = md5('yssl_redis');
+//        $redis_data = $redis->get($redis_key);
+//        $result=json_decode($redis_data,true)['data']['series'][1]['data'];
+        $result = json_decode($redis->get(md5('yssl_redis')),true)['data']['series'][1]['data'];
+        $name='年度完成实物产量(万色令)';
+        $yu=Db::name('business')->where('name',$name)->value('year_target');
+        $num=0;
+        foreach($result as $v){
+            $num+=$v;
+        }
+        $num=$num/10000;
+        $list[0]['name'] = ' ';
+        $list[0]['value'] = round($num);
+        $list[1]['name'] = ' ';
+        $list[1]['value'] = round($yu);
+        $list[2]['name'] = ' ';
+        $list[2]['value'] = round($num/$yu*100);
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        return json_encode($res);
+        // return $redis_data;
+    }
+
+    //年度销售额及百分比->缓存调用
+    public function ndxs_redis(){
+        $redis=redis();
+        $redis_key = md5('ndxs_redis');
+        $name='年度销售额(万元)';
+        $yu=Db::name('business')->where('name',$name)->value('year_target');
+        //修改前
+//        $result = Db::query("SELECT round( m.sum_nwshjje/10000/$yu*100,0) 销售收入百分比,round( m.sum_nwshjje/10000 ) 销售收入,$yu 常量
+//         FROM(SELECT SUM( zb.sum_nwshjje ) sum_nwshjje,DCYRQ
+//         FROM(SELECT MCYD.DCYRQ AS DCYRQ,CASE WHEN ldz = 1 THEN TJob.namount ELSE MCYD.nwshjje END sum_nwshjje,MCYD.icydid
+//         FROM MCYD LEFT JOIN TJob ON MCYD.ICYDID = TJob.iCydid WHERE MCYD.ICYDSTATE > 0 ) zb
+//         WHERE zb.DCYRQ >= '{$this->start_time()}' AND zb.DCYRQ <= '{$this->end_time()}'
+//         GROUP BY YEAR ( zb.DCYRQ ) ) M
+//         GROUP BY YEAR (DCYRQ),( m.sum_nwshjje )");
+        //修改后
+        $result = Db::query("
+SELECT 
+    round( m.total/10000/$yu*100,0) 销售收入百分比,
+    round( m.total/10000 ) 销售收入,
+    $yu 常量
+FROM(
+    SELECT SUM(year_total) AS total
+    FROM(
+        SELECT SUM( zb.sum_nwshjje ) AS year_total
+        FROM(
+            SELECT 
+                MCYD.DCYRQ AS DCYRQ,
+                CASE WHEN ldz = 1 THEN TJob.namount ELSE MCYD.nwshjje END sum_nwshjje
+            FROM MCYD 
+            LEFT JOIN TJob ON MCYD.ICYDID = TJob.iCydid 
+            WHERE MCYD.ICYDSTATE > 0 
+        ) zb 
+        WHERE zb.DCYRQ >= '{$this->start_time()}' AND zb.DCYRQ <= '{$this->end_time()}'
+        GROUP BY YEAR(zb.DCYRQ)
+    ) t
+) m
+");
+
+        foreach ($result as $v) {
+            $list[0]['name'] = ' ';
+            $list[0]['value'] = round($v['销售收入']);
+            $list[1]['name'] = ' ';
+            $list[1]['value'] = round($v['常量']);
+            $list[2]['name'] = ' ';
+            $list[2]['value'] = round($v['销售收入百分比']);
+        }
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        // halt(json_decode($redis->get($redis_key),true));
+        return json_encode($res);
+    }
+    //年度销售额及百分比->接口调用
+    public function ndxs(){
+        $redis=redis();
+        $redis_key = md5('ndxs_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //当年业务模块百分比->缓存调用
+    public function yewujg2023_redis(){
+        $redis=redis();
+        $redis_key = md5('yewujg2023_redis');
+        function buildSqlQuery($table, $joinTable, $joinCondition, $field, $groupBy) {
+
+            $tj = Db::table('tjob')
+                ->field('icydid, CONVERT(sum(tjob.nclje * 100 / (100 + tjob.itax)), DECIMAL(10,2)) AS sum_clje')
+                ->group('icydid, ldz, nclje, itax')
+                ->where('lzfbs', '=', 0)->buildSql();
+
+            return Db::table($table)->alias('ord')
+                ->field($field)
+                ->join('(' . $joinTable . ') as ObjMatier', $joinCondition, 'LEFT')
+                ->join('(' . $tj . ') as tj', 'tj.icydid = ord.icydid', 'LEFT')
+                ->where('ord.icydstate', '>', 0)
+                ->where($groupBy)
+                ->buildSql();
+        }
+
+        $a = Db::table('mcyd')->field("DATE_FORMAT(dcyrq, '%Y-%m-%d') AS dcyrq")->buildSql();
+
+        $ObjMatier = Db::table('scyddx')
+            ->field('icydid, sum(nyssl) AS nyssl, sum(nysls) AS nysls, sum(nsyl) AS nsyl')
+            ->group('icydid')->buildSql();
+
+        $dd = buildSqlQuery('mcyd', $ObjMatier, 'ObjMatier.icydid = ord.icydid', "
+    DATE_FORMAT(dcyrq, '%Y-%m-%d') AS cyrq,
+    ObjMatier.nyssl AS nyssl", "ord.icydstate > 0 AND chy IN ('集团期刊', '社会期刊')");
+        $tq = buildSqlQuery('mcyd', $ObjMatier, 'ObjMatier.icydid = ord.icydid', "
+    DATE_FORMAT(dcyrq, '%Y-%m-%d') AS cyrq,
+    ObjMatier.nyssl AS nyssl", "ord.icydstate > 0 AND chy = '集团出版社'");
+        $tt = buildSqlQuery('mcyd', $ObjMatier, 'ObjMatier.icydid = ord.icydid', "
+    DATE_FORMAT(dcyrq, '%Y-%m-%d') AS cyrq,
+    ObjMatier.nyssl AS nyssl", "ord.icydstate > 0 AND chy = '集团教材内' AND CYWDWMC = '浙江出版传媒股份有限公司'");
+        $ttt = buildSqlQuery('mcyd', $ObjMatier, 'ObjMatier.icydid = ord.icydid', "
+    DATE_FORMAT(dcyrq, '%Y-%m-%d') AS cyrq,
+    ObjMatier.nyssl AS nyssl", "ord.icydstate > 0 AND chy = '集团教材外'");
+        $tttt = buildSqlQuery('mcyd', $ObjMatier, 'ObjMatier.icydid = ord.icydid', "
+    DATE_FORMAT(dcyrq, '%Y-%m-%d') AS cyrq,
+    ObjMatier.nysls AS nysls,
+    ObjMatier.nyssl AS nyssl", "ord.icydstate > 0 AND chy = '外贸订单'");
+        $ttttt = buildSqlQuery('mcyd', $ObjMatier, 'ObjMatier.icydid = ord.icydid', "
+    DATE_FORMAT(dcyrq, '%Y-%m-%d') AS cyrq,
+    ObjMatier.nyssl AS nyssl", "ord.icydstate > 0");
+
+        // 期刊色令
+        $t = Db::table($dd . ' dd')
+            ->field("DATE_FORMAT(dd.cyrq, '%Y-%m-%d') AS cyrq, sum(dd.nyssl) AS 期刊色令")
+            ->group('dd.cyrq')->buildSql();
+
+        // 集团出版社色令
+        $t1 = Db::table($tq . ' t')
+            ->field("DATE_FORMAT(t.cyrq, '%Y-%m-%d') AS cyrq, sum(t.nyssl) AS 集团出版社色令")
+            ->group('t.cyrq')->buildSql();
+
+        // 集团教材内色令
+        $t2 = Db::table($tt . ' t')
+            ->field("DATE_FORMAT(t.cyrq, '%Y-%m-%d') AS cyrq, sum(t.nyssl) AS 集团教材内色令")
+            ->group('t.cyrq')->buildSql();
+
+        // 集团教材外色令
+        $t3 = Db::table($ttt . ' t')
+            ->field("DATE_FORMAT(t.cyrq, '%Y-%m-%d') AS cyrq, sum(t.nyssl) AS 集团教材外色令")
+            ->group('t.cyrq')->buildSql();
+
+        // 外贸订单纸令、外贸订单色令
+        $t4 = Db::table($tttt . ' t')
+            ->field("DATE_FORMAT(t.cyrq, '%Y-%m-%d') AS cyrq, sum(t.nysls) 外贸订单纸令, sum(t.nyssl) AS 外贸订单色令")
+            ->group('t.cyrq')->buildSql();
+
+        // 总色令
+        $t5 = Db::table($ttttt . ' t')
+            ->field("DATE_FORMAT(t.cyrq, '%Y-%m-%d') AS cyrq, sum(t.nyssl) AS 总色令")
+            ->group('t.cyrq')->buildSql();
+
+        $db = Db::table($a . ' a')
+            ->field("
+            DISTINCT a.dcyrq AS dcyrq,
+            t.期刊色令 AS 期刊色令,
+            t1.集团出版社色令 AS 集团出版社色令,
+            t2.集团教材内色令 AS 集团教材内色令,
+            t3.集团教材外色令 AS 集团教材外色令,
+            t4.外贸订单色令 AS 外贸订单色令,
+            t4.外贸订单纸令 AS 外贸订单纸令,
+            t5.总色令 AS 总色令"
+            )
+            ->join('(' . $t . ') as t', 't.cyrq = a.dcyrq', 'LEFT')
+            ->join('(' . $t1 . ') as t1', 't1.cyrq = a.dcyrq', 'LEFT')
+            ->join('(' . $t2 . ') as t2', 't2.cyrq = a.dcyrq', 'LEFT')
+            ->join('(' . $t3 . ') as t3', 't3.cyrq = a.dcyrq', 'LEFT')
+            ->join('(' . $t4 . ') as t4', 't4.cyrq = a.dcyrq', 'LEFT')
+            ->join('(' . $t5 . ') as t5', 't5.cyrq = a.dcyrq', 'LEFT')
+            ->group('date(a.dcyrq)')->buildSql();
+
+        $sql_final = Db::table($db . ' db')
+            ->field("
+            CONCAT(LTRIM(CAST((SUM(db.集团出版社色令) * 100 / (SUM(db.总色令) - IFNULL(SUM(db.集团教材外色令), 0))) AS DECIMAL(10, 2)))) AS 系统图书,
+            
+            
+            CONCAT(LTRIM(CAST(((SUM(db.总色令) - IFNULL(SUM(db.期刊色令), 0) - IFNULL(SUM(db.集团出版社色令), 0) - IFNULL(SUM(db.集团教材内色令), 0) - 
+            IFNULL(SUM(db.集团教材外色令), 0) - IFNULL(SUM(db.外贸订单色令), 0)) * 100 / NULLIF((SUM(db.总色令) - IFNULL(SUM(db.集团教材外色令), 0)), 0)) 
+            AS DECIMAL(10, 2)))) AS 社会图书,
+            
+            
+            
+            CONCAT(LTRIM(CAST((SUM(db.外贸订单色令) * 100 / NULLIF((SUM(db.总色令) - IFNULL(SUM(db.集团教材外色令), 0)), 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 教材板块
+          ")
+            ->whereTime('dcyrq', 'between', [$this->start_time(), $this->end_time()])
+            ->group('year(db.dcyrq)')->find();
+        $i=0;
+        foreach($sql_final as $v){
+            $list[$i]['name']=' ';
+            $list[$i]['value']=round($v);
+            $i++;
+        }
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($res));
+        // halt(json_decode($redis->get($redis_key),true));
+        return json_encode($res);
+    }
+    //当年业务模块百分比->接口调用
+    public function yewujg2023(){
+        $redis=redis();
+        $redis_key = md5('yewujg2023_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //去年业务模块百分比->缓存调用
+    public function yewujg2022_redis(){
+        $redis=redis();
+        $redis_key = md5('yewujg2022_redis');
+        function buildSqlQuery($table, $joinTable, $joinCondition, $field, $groupBy) {
+
+            $tj = Db::table('tjob')
+                ->field('icydid, CONVERT(sum(tjob.nclje * 100 / (100 + tjob.itax)), DECIMAL(10,2)) AS sum_clje')
+                ->group('icydid, ldz, nclje, itax')
+                ->where('lzfbs', '=', 0)->buildSql();
+
+            return Db::table($table)->alias('ord')
+                ->field($field)
+                ->join('(' . $joinTable . ') as ObjMatier', $joinCondition, 'LEFT')
+                ->join('(' . $tj . ') as tj', 'tj.icydid = ord.icydid', 'LEFT')
+                ->where('ord.icydstate', '>', 0)
+                ->where($groupBy)
+                ->buildSql();
+        }
+
+        $a = Db::table('mcyd')->field("DATE_FORMAT(dcyrq, '%Y-%m-%d') AS dcyrq")->buildSql();
+
+        $ObjMatier = Db::table('scyddx')
+            ->field('icydid, sum(nyssl) AS nyssl, sum(nysls) AS nysls, sum(nsyl) AS nsyl')
+            ->group('icydid')->buildSql();
+
+        $dd = buildSqlQuery('mcyd', $ObjMatier, 'ObjMatier.icydid = ord.icydid', "
+      DATE_FORMAT(dcyrq, '%Y-%m-%d') AS cyrq,
+      ObjMatier.nyssl AS nyssl", "ord.icydstate > 0 AND chy IN ('集团期刊', '社会期刊')");
+        $tq = buildSqlQuery('mcyd', $ObjMatier, 'ObjMatier.icydid = ord.icydid', "
+      DATE_FORMAT(dcyrq, '%Y-%m-%d') AS cyrq,
+      ObjMatier.nyssl AS nyssl", "ord.icydstate > 0 AND chy = '集团出版社'");
+        $tt = buildSqlQuery('mcyd', $ObjMatier, 'ObjMatier.icydid = ord.icydid', "
+      DATE_FORMAT(dcyrq, '%Y-%m-%d') AS cyrq,
+      ObjMatier.nyssl AS nyssl", "ord.icydstate > 0 AND chy = '集团教材内' AND CYWDWMC = '浙江出版传媒股份有限公司'");
+        $ttt = buildSqlQuery('mcyd', $ObjMatier, 'ObjMatier.icydid = ord.icydid', "
+      DATE_FORMAT(dcyrq, '%Y-%m-%d') AS cyrq,
+      ObjMatier.nyssl AS nyssl", "ord.icydstate > 0 AND chy = '集团教材外'");
+        $tttt = buildSqlQuery('mcyd', $ObjMatier, 'ObjMatier.icydid = ord.icydid', "
+      DATE_FORMAT(dcyrq, '%Y-%m-%d') AS cyrq,
+      ObjMatier.nysls AS nysls,
+      ObjMatier.nyssl AS nyssl", "ord.icydstate > 0 AND chy = '外贸订单'");
+        $ttttt = buildSqlQuery('mcyd', $ObjMatier, 'ObjMatier.icydid = ord.icydid', "
+      DATE_FORMAT(dcyrq, '%Y-%m-%d') AS cyrq,
+      ObjMatier.nyssl AS nyssl", "ord.icydstate > 0");
+
+        // 期刊色令
+        $t = Db::table($dd . ' dd')
+            ->field("DATE_FORMAT(dd.cyrq, '%Y-%m-%d') AS cyrq, sum(dd.nyssl) AS 期刊色令")
+            ->group('dd.cyrq')->buildSql();
+
+        // 集团出版社色令
+        $t1 = Db::table($tq . ' t')
+            ->field("DATE_FORMAT(t.cyrq, '%Y-%m-%d') AS cyrq, sum(t.nyssl) AS 集团出版社色令")
+            ->group('t.cyrq')->buildSql();
+
+        // 集团教材内色令
+        $t2 = Db::table($tt . ' t')
+            ->field("DATE_FORMAT(t.cyrq, '%Y-%m-%d') AS cyrq, sum(t.nyssl) AS 集团教材内色令")
+            ->group('t.cyrq')->buildSql();
+
+        // 集团教材外色令
+        $t3 = Db::table($ttt . ' t')
+            ->field("DATE_FORMAT(t.cyrq, '%Y-%m-%d') AS cyrq, sum(t.nyssl) AS 集团教材外色令")
+            ->group('t.cyrq')->buildSql();
+
+        // 外贸订单纸令、外贸订单色令
+        $t4 = Db::table($tttt . ' t')
+            ->field("DATE_FORMAT(t.cyrq, '%Y-%m-%d') AS cyrq, sum(t.nysls) 外贸订单纸令, sum(t.nyssl) AS 外贸订单色令")
+            ->group('t.cyrq')->buildSql();
+
+        // 总色令
+        $t5 = Db::table($ttttt . ' t')
+            ->field("DATE_FORMAT(t.cyrq, '%Y-%m-%d') AS cyrq, sum(t.nyssl) AS 总色令")
+            ->group('t.cyrq')->buildSql();
+
+        $db = Db::table($a . ' a')
+            ->field("
+              DISTINCT a.dcyrq AS dcyrq,
+              t.期刊色令 AS 期刊色令,
+              t1.集团出版社色令 AS 集团出版社色令,
+              t2.集团教材内色令 AS 集团教材内色令,
+              t3.集团教材外色令 AS 集团教材外色令,
+              t4.外贸订单色令 AS 外贸订单色令,
+              t4.外贸订单纸令 AS 外贸订单纸令,
+              t5.总色令 AS 总色令"
+            )
+            ->join('(' . $t . ') as t', 't.cyrq = a.dcyrq', 'LEFT')
+            ->join('(' . $t1 . ') as t1', 't1.cyrq = a.dcyrq', 'LEFT')
+            ->join('(' . $t2 . ') as t2', 't2.cyrq = a.dcyrq', 'LEFT')
+            ->join('(' . $t3 . ') as t3', 't3.cyrq = a.dcyrq', 'LEFT')
+            ->join('(' . $t4 . ') as t4', 't4.cyrq = a.dcyrq', 'LEFT')
+            ->join('(' . $t5 . ') as t5', 't5.cyrq = a.dcyrq', 'LEFT')
+            ->group('date(a.dcyrq)')->buildSql();
+
+        $sql_final = Db::table($db . ' db')
+            ->field("
+              CONCAT(LTRIM(CAST((SUM(db.集团出版社色令) * 100 / (SUM(db.总色令) - IFNULL(SUM(db.集团教材外色令), 0))) AS DECIMAL(10, 2)))) AS 系统图书,
+              CONCAT(LTRIM(CAST(((SUM(db.总色令) - IFNULL(SUM(db.期刊色令), 0) - IFNULL(SUM(db.集团出版社色令), 0) - IFNULL(SUM(db.集团教材内色令), 0) - IFNULL(SUM(db.集团教材外色令), 0) - IFNULL(SUM(db.外贸订单色令), 0)) * 100 / NULLIF((SUM(db.总色令) - IFNULL(SUM(db.集团教材外色令), 0)), 0)) AS DECIMAL(10, 2)))) AS 社会图书,
+              CONCAT(LTRIM(CAST((SUM(db.外贸订单色令) * 100 / NULLIF((SUM(db.总色令) - IFNULL(SUM(db.集团教材外色令), 0)), 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 教材板块
+          ")
+            ->whereTime('dcyrq', 'between', [$this->qstart_time(), $this->qend_time()])
+            ->group('year(db.dcyrq)')->find();
+        $i=0;
+        foreach($sql_final as $v){
+            $list[$i]['name']=' ';
+            $list[$i]['value']=round($v);
+            $i++;
+        }
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$list;
+        $redis->set($redis_key, json_encode($res));
+        // halt(json_decode($redis->get($redis_key),true));
+        return json_encode($res);
+    }
+    //去年业务模块百分比->接口调用
+    public function yewujg2022(){
+        $redis=redis();
+        $redis_key = md5('yewujg2022_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    /**
+     * 业务总览 第一屏 第二页
+     */
+
+    //轮转机每月生产趋势 纸令->缓存调用
+    public function lunzhuanzl_redis(){
+        $redis=redis();
+        $redis_key = md5('lunzhuanzl_redis');
+        $subQuery3_child = Db::table('bzysdayrpt')->field('drptrq AS rq,iSjys,fsjls')
+            ->whereIn('cbzmc', ['小森LW-35(甲班)','小森LW-35(乙班)','小森2号机(甲班)',
+                '小森2号机(乙班)','大规小森3号机(甲班)','大规小森3号机(乙班)','三菱商轮(甲班)',
+                '三菱商轮(乙班)','三菱商轮2号(甲班)','三菱商轮2号(乙班)','204胶轮(甲班)',
+                '204胶轮(乙班)','V30(甲班)','V30(乙班)','报刊轮转(甲班)','报刊轮转(乙班)','高斯胶轮(甲班)','高斯胶轮(乙班)'])
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field('b.dOnduty,a.nAmount,a.nzl ')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams')
+                    ->whereIn('cMachineName', ['标规小森商轮1号',
+                        '标规小森商轮2号', '大规小森商轮1号',
+                        '大规三菱商轮1号', '标规三菱商轮1号',
+                        '标规三菱商轮2号', '标规204胶轮1号',
+                        '大规海德堡1号', '标规报轮1号','标规高斯轮转1号','标规高斯轮转2号','大规高斯轮转1号','标规北人轮转1号']);
+            }, true)->buildSql();
+
+        $subQuery = Db::table('bzysdayrpt')->field('DISTINCT drptrq AS RQ')->union(function ($query) {
+            $query->table('ql_report_feedback_day')->alias('a')->field(' DISTINCT b.dOnduty ')
+                ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams');
+        })->buildSql();
+
+        //轮转纸令合计
+        $subQuery3 = Db::table($subQuery3_child . 'T')
+            ->field('rq,SUM( iSjys ) nRotationTotal,COUNT( 1 ) nRotationPZ,SUM( fsjls ) nnRotationSL  ')
+            ->group('rq')->buildSql();
+
+        $subQuery1_5 = Db::table($subQuery . 'A')
+            ->field('DISTINCT A.RQ,P.nnRotationSL AS nnRotationSL')
+            ->join('(' . $subQuery3 . ') as P', 'A.RQ = P.rq','LEFT')
+            ->buildSql();
+
+        $sql_final = Db::table($subQuery1_5 . ' db')
+            ->field("
+                DATE_FORMAT( db.RQ, '%Y-%m' ) AS 'rq',
+                ROUND(SUM( db.nnRotationSL )) AS 'nnRotationSL'
+            ")
+            ->where("db.RQ >= '{$this->qianstart_time()}'AND db.RQ <= '{$this->end_time()}' ")
+            ->group("DATE_FORMAT( db.RQ, '%Y-%m' )")
+            ->select();
+
+        // 初始化数据
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+        $currentYear = date("Y"); // 当前年份
+        $currentMonth = date("m"); // 当前月份
+        $previousYear = (int)$currentYear - 1; // 去年
+        $previousTwoYear = (int)$currentYear - 2; // 前年
+
+        // 为前年、去年和今年创建数据数组,初始值为0
+        $list['series'][0]['name'] = $previousTwoYear . '年';
+        $list['series'][0]['data'] = array_fill(0, 12, 0); // 前年初始化为0
+        $list['series'][1]['name'] = $previousYear . '年';
+        $list['series'][1]['data'] = array_fill(0, 12, 0); // 去年初始化为0
+        $list['series'][2]['name'] = $currentYear . '年';
+        $list['series'][2]['data'] = array_fill(0, $currentMonth, 0); // 今年初始化到当前月份为0
+
+        // 遍历查询结果
+        foreach ($sql_final as $v) {
+            // 获取年份和月份
+            $year = substr($v['rq'], 0, 4);
+            $month = substr($v['rq'], 5, 2);
+
+            // 如果是前两年的数据
+            if ($year == $previousTwoYear) {
+                $list['series'][0]['data'][(int)$month - 1] = $v['nnRotationSL'];
+            }
+            // 如果是去年的数据
+            if ($year == $previousYear) {
+                $list['series'][1]['data'][(int)$month - 1] = $v['nnRotationSL'];
+            }
+            // 如果是今年的数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][(int)$month - 1] = $v['nnRotationSL'];
+            }
+        }
+
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //轮转机每月生产趋势 纸令->接口调用
+    public function lunzhuanzl(){
+        $redis=redis();
+        $redis_key = md5('lunzhuanzl_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //四色机每月生产趋势 纸令->缓存调用
+    public function sisejizl_redis(){
+        $redis=redis();
+        $redis_key = md5('sisejizl_redis');
+        $subQuery1_child = Db::table('bzysdayrpt')->field('drptrq AS rq,iSjys,fsjls')
+            ->whereIn('cbzmc', ['四色机2号(甲班)','四色机2号(乙班)','海德堡(甲班)',
+                '海德堡1号(甲班)','海德堡(乙班)','海德堡1号(乙班)','海德堡5+1 1号(甲班)',
+                '海德堡5+1 1号(乙班)','三菱机1(甲班)','三菱机1(乙班)','三菱机2(甲班)',
+                '三菱机2(乙班)','小森八色(甲班)','小森八色(乙班)'])
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field('b.dOnduty,a.nAmount,a.nzl')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams')
+                    ->whereIn('cMachineName', ['四色机02号','四色机02号机','海德堡01号',
+                        '海德堡01号机','海德堡5+L 01号','海德堡5+L 01号机','三菱机01号',
+                        '三菱机01号机','三菱机02号','三菱机02号机','小森八色01号',
+                        '小森八色01号机','小森八色02号机']);
+            }, true)->buildSql();
+
+        $subQuery = Db::table('bzysdayrpt')->field('DISTINCT drptrq AS RQ')->union(function ($query) {
+            $query->table('ql_report_feedback_day')->alias('a')->field(' DISTINCT b.dOnduty ')
+                ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams');
+        })->buildSql();
+
+        //四色机纸令合计
+        $subQuery1 = Db::table($subQuery1_child . 'T')
+            ->field('rq,SUM( fsjls ) nFourColorSL')
+            ->group('rq')->buildSql();
+
+        $subQuery1_5 = Db::table($subQuery . 'A')
+            ->field('DISTINCT A.RQ,B.nFourColorSL AS nFourColorSL')
+            ->join('(' . $subQuery1 . ') as B', '  A.RQ = B.rq','LEFT')
+            ->buildSql();
+
+        $sql_final = Db::table($subQuery1_5 . ' db')
+            ->field("
+                DATE_FORMAT( db.RQ, '%Y-%m' ) AS 'rq',
+                ROUND(SUM( db.nFourColorSL )) AS 'nFourColorSL'
+            ")
+            ->where("db.RQ >= '{$this->qianstart_time()}'AND db.RQ <= '{$this->end_time()}' ")
+            // ->group('MONTH(db.RQ)')
+            ->group("DATE_FORMAT( db.RQ, '%Y-%m' )")
+            ->select();
+        // 初始化数据
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+        $currentYear = date("Y"); // 当前年份
+        $currentMonth = date("m"); // 当前月份
+        $previousYear = (int)$currentYear - 1; // 去年
+        $previousTwoYear = (int)$currentYear - 2; // 前年
+
+        // 为前年、去年和今年创建数据数组,初始值为0
+        $list['series'][0]['name'] = $previousTwoYear . '年';
+        $list['series'][0]['data'] = array_fill(0, 12, 0); // 前年初始化为0
+        $list['series'][1]['name'] = $previousYear . '年';
+        $list['series'][1]['data'] = array_fill(0, 12, 0); // 去年初始化为0
+        $list['series'][2]['name'] = $currentYear . '年';
+        $list['series'][2]['data'] = array_fill(0, $currentMonth, 0); // 今年初始化到当前月份为0
+
+        // 遍历查询结果
+        foreach ($sql_final as $v) {
+            // 获取年份和月份
+            $year = substr($v['rq'], 0, 4);
+            $month = substr($v['rq'], 5, 2);
+
+            // 如果是前两年的数据
+            if ($year == $previousTwoYear) {
+                $list['series'][0]['data'][(int)$month - 1] = $v['nFourColorSL'];
+            }
+            // 如果是去年的数据
+            if ($year == $previousYear) {
+                $list['series'][1]['data'][(int)$month - 1] = $v['nFourColorSL'];
+            }
+            // 如果是今年的数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][(int)$month - 1] = $v['nFourColorSL'];
+            }
+        }
+
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //四色机每月生产趋势 纸令->接口调用
+    public function sisejizl(){
+        $redis=redis();
+        $redis_key = md5('sisejizl_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //BB机每月生产趋势 纸令->缓存调用
+    public function bbjzl_redis(){
+        $redis=redis();
+        $redis_key = md5('bbjzl_redis');
+        $subQuery2_child = Db::table('bzysdayrpt')->field('drptrq AS rq,iSjys,fsjls')
+            ->whereIn('cbzmc', ['BB机1号(甲班)','BB机1号(乙班)','BB机2号(甲班)',
+                'BB机2号(乙班)','BB机3号(甲班)','BB机3号(乙班)','BB机4号(甲班)','BB机4号(乙班)',
+                'BB机5号(甲班)','BB机5号(乙班)',
+                'BB机6号(甲班)','BB机6号(乙班)','05机1号(甲班)','05机1号(乙班)',
+                '海德堡SM1号机(甲班)','海德堡SM1号机(乙班)','海德堡SM2号机(甲班)','海德堡SM2号机(乙班)'])
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field('b.dOnduty,a.nAmount,a.nzl ')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams')
+                    ->whereIn('cMachineName', ['BB机01号','BB机02号','BB机04号','如钰01号机','如钰02号机',
+                        'BB机05号','BB机06号','海德堡SM1号','海德堡SM2号']);
+            }, true)->buildSql();
+
+        $subQuery = Db::table('bzysdayrpt')->field('DISTINCT drptrq AS RQ')->union(function ($query) {
+            $query->table('ql_report_feedback_day')->alias('a')->field(' DISTINCT b.dOnduty ')
+                ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams');
+        })->buildSql();
+
+        //BB机纸令合计
+        $subQuery2 = Db::table($subQuery2_child . 'T')
+            ->field('rq,SUM( iSjys ) nBBTotal,COUNT( 1 ) nBBPZ,SUM( fsjls ) nBBSL')
+            ->group('rq')->buildSql();
+
+        $subQuery1_5 = Db::table($subQuery . 'A')
+            ->field('DISTINCT A.RQ,h.nBBSL AS nBBSL')
+            ->join('(' . $subQuery2 . ') as h', 'A.RQ = h.rq','LEFT')
+            ->buildSql();
+
+        $sql_final = Db::table($subQuery1_5 . ' db')
+            ->field("
+                DATE_FORMAT( db.RQ, '%Y-%m' ) AS 'rq',
+                ROUND(SUM( db.nBBSL )) AS 'nBBSL'
+            ")
+            ->where("db.RQ >= '{$this->qianstart_time()}'AND db.RQ <= '{$this->end_time()}' ")
+            // ->group('MONTH(db.RQ)')
+            ->group("DATE_FORMAT( db.RQ, '%Y-%m' )")
+            ->select();
+        // 初始化数据
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+        $currentYear = date("Y"); // 当前年份
+        $currentMonth = date("m"); // 当前月份
+        $previousYear = (int)$currentYear - 1; // 去年
+        $previousTwoYear = (int)$currentYear - 2; // 前年
+
+        // 为前年、去年和今年创建数据数组,初始值为0
+        $list['series'][0]['name'] = $previousTwoYear . '年';
+        $list['series'][0]['data'] = array_fill(0, 12, 0); // 前年初始化为0
+        $list['series'][1]['name'] = $previousYear . '年';
+        $list['series'][1]['data'] = array_fill(0, 12, 0); // 去年初始化为0
+        $list['series'][2]['name'] = $currentYear . '年';
+        $list['series'][2]['data'] = array_fill(0, $currentMonth, 0); // 今年初始化到当前月份为0
+
+        // 遍历查询结果
+        foreach ($sql_final as $v) {
+            // 获取年份和月份
+            $year = substr($v['rq'], 0, 4);
+            $month = substr($v['rq'], 5, 2);
+
+            // 如果是前两年的数据
+            if ($year == $previousTwoYear) {
+                $list['series'][0]['data'][(int)$month - 1] = $v['nBBSL'];
+            }
+            // 如果是去年的数据
+            if ($year == $previousYear) {
+                $list['series'][1]['data'][(int)$month - 1] = $v['nBBSL'];
+            }
+            // 如果是今年的数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][(int)$month - 1] = $v['nBBSL'];
+            }
+        }
+
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //BB机每月生产趋势 纸令->接口调用
+    public function bbjzl(){
+        $redis=redis();
+        $redis_key = md5('bbjzl_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //轮转机每月生产趋势 色令->缓存调用
+    public function lunzhuan_redis(){
+        $redis=redis();
+        $redis_key = md5('lunzhuan_redis');
+        //首先定义了起始时间和结束时间
+
+        //根据查询条件查出色令数据
+        $subQuery3_child = Db::table('bzysdayrpt')->field('drptrq AS rq,fsjsl')
+            ->whereIn('cbzmc', [
+                '小森LW-35(甲班)','小森LW-35(乙班)','小森2号机(甲班)','小森2号机(乙班)',
+                '大规小森3号机(甲班)','大规小森3号机(乙班)','三菱商轮(甲班)','三菱商轮(乙班)',
+                '三菱商轮2号(甲班)','三菱商轮2号(乙班)','204胶轮(甲班)','204胶轮(乙班)',
+                'V30(甲班)', 'V30(乙班)','报刊轮转(甲班)','报刊轮转(乙班)','高斯胶轮(甲班)','高斯胶轮(乙班)'])
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field('b.dOnduty,a.nsl ')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams')
+                    ->whereIn('cMachineName', ['标规小森商轮1号',
+                        '标规小森商轮2号','大规小森商轮1号','大规三菱商轮1号','标规三菱商轮1号',
+                        '标规三菱商轮2号','标规204胶轮1号','大规海德堡1号','标规报轮1号','标规高斯轮转1号','标规高斯轮转2号','大规高斯轮转1号','标规北人轮转1号','标规北人轮转1号']);
+            }, true)
+            ->buildSql();
+
+        //将两个表的日期字段进行合并,并返回一个包含不重复结果
+        $subQuery = Db::table('bzysdayrpt')->field('DISTINCT drptrq AS RQ')
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field(' DISTINCT b.dOnduty ')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams');
+            })->buildSql();
+
+        //查询每天的数据
+        $subQuery3 = Db::table($subQuery3_child . 'T')
+            ->field('rq,SUM( fsjsl ) nnRotationSL  ')
+            ->group('rq')
+            ->buildSql();
+
+        //按当天日期进行分组 累计相加当天数据
+        $subQuery1_5 = Db::table($subQuery . 'A')
+            ->field('DISTINCT DATE(A.RQ) RQ,sum(P.nnRotationSL) AS nnRotationSL')
+            ->join('(' . $subQuery3 . ') as P', 'A.RQ = P.rq','LEFT')
+            ->group('RQ')
+            ->buildSql();
+
+        //按每个月进行查询 累计相加每月数据 ROUND(SUM( db.nnRotationSL )) AS '轮转色令合计'
+        $sql_final = Db::table($subQuery1_5 . ' db')
+            ->field("
+                DATE_FORMAT( db.RQ, '%Y-%m' ) AS 'rq',
+                ROUND(SUM( db.nnRotationSL )) AS 'nnRotationSL'
+            ")
+            ->where("db.RQ >= '{$this->qianstart_time()}'AND db.RQ <= '{$this->end_time()}' ")
+            // ->group('MONTH(db.RQ)')
+            ->group("DATE_FORMAT( db.RQ, '%Y-%m' )")
+            ->select();
+        // 初始化数据
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+        $currentYear = date("Y"); // 当前年份
+        $currentMonth = date("m"); // 当前月份
+        $previousYear = (int)$currentYear - 1; // 去年
+        $previousTwoYear = (int)$currentYear - 2; // 前年
+
+        // 为前年、去年和今年创建数据数组,初始值为0
+        $list['series'][0]['name'] = $previousTwoYear . '年';
+        $list['series'][0]['data'] = array_fill(0, 12, 0); // 前年初始化为0
+        $list['series'][1]['name'] = $previousYear . '年';
+        $list['series'][1]['data'] = array_fill(0, 12, 0); // 去年初始化为0
+        $list['series'][2]['name'] = $currentYear . '年';
+        $list['series'][2]['data'] = array_fill(0, $currentMonth, 0); // 今年初始化到当前月份为0
+
+        // 遍历查询结果
+        foreach ($sql_final as $v) {
+            // 获取年份和月份
+            $year = substr($v['rq'], 0, 4);
+            $month = substr($v['rq'], 5, 2);
+
+            // 如果是前两年的数据
+            if ($year == $previousTwoYear) {
+                $list['series'][0]['data'][(int)$month - 1] = $v['nnRotationSL'];
+            }
+            // 如果是去年的数据
+            if ($year == $previousYear) {
+                $list['series'][1]['data'][(int)$month - 1] = $v['nnRotationSL'];
+            }
+            // 如果是今年的数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][(int)$month - 1] = $v['nnRotationSL'];
+            }
+        }
+
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //轮转机每月生产趋势 色令->接口调用
+    public function lunzhuan(){
+        $redis=redis();
+        $redis_key = md5('lunzhuan_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //四色机每月生产趋势 色令->缓存调用
+    public function siseji_redis(){
+        $redis=redis();
+        $redis_key = md5('siseji_redis');
+
+        //根据查询条件查出色令数据
+        $subQuery1_child = Db::table('bzysdayrpt')->field('drptrq AS rq,fsjsl')
+            ->whereIn('cbzmc', ['四色机2号(甲班)','四色机2号(乙班)','海德堡(甲班)',
+                '海德堡1号(甲班)','海德堡(乙班)','海德堡1号(乙班)','海德堡5+1 1号(甲班)',
+                '海德堡5+1 1号(乙班)','三菱机1(甲班)','三菱机1(乙班)','三菱机2(甲班)',
+                '三菱机2(乙班)','小森八色(甲班)','小森八色(乙班)'])
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field('b.dOnduty,a.nsl')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams')
+                    ->whereIn('cMachineName', ['四色机02号','四色机02号机','海德堡01号',
+                        '海德堡01号机','海德堡5+L 01号','海德堡5+L 01号机','三菱机01号',
+                        '三菱机01号机','三菱机02号','三菱机02号机','小森八色01号',
+                        '小森八色01号机','小森八色02号机']);
+            }, true)->buildSql();
+
+        //将两个表的日期字段进行合并,并返回一个包含不重复结果
+        $subQuery = Db::table('bzysdayrpt')->field('DISTINCT drptrq AS RQ')
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field(' DISTINCT b.dOnduty ')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams');
+            })->buildSql();
+
+        //查询每天的数据
+        $subQuery1 = Db::table($subQuery1_child . 'T')
+            ->field('rq,SUM( fsjsl ) nFourColorSL')
+            ->group('rq')->buildSql();
+
+        //按当天日期进行分组 累计相加当天数据
+        $subQuery1_5 = Db::table($subQuery . 'A')
+            ->field('
+                    DISTINCT DATE(A.RQ) RQ,
+                    sum(B.nFourColorSL) AS nFourColorSL
+            ')
+            ->join('(' . $subQuery1 . ') as B', '  A.RQ = B.rq','LEFT')
+            ->group('RQ')
+            ->buildSql();
+
+        //按每个月进行查询 累计相加每月数据
+        $sql_final = Db::table($subQuery1_5 . ' db')
+            ->field("
+                DATE_FORMAT( db.RQ, '%Y-%m' ) AS 'rq',
+                ROUND(SUM( db.nFourColorSL )) AS 'nFourColorSL'
+            ")
+            ->where("db.RQ >= '{$this->qianstart_time()}'AND db.RQ <= '{$this->end_time()}' ")
+            // ->group('MONTH(db.RQ)')
+            ->group("DATE_FORMAT( db.RQ, '%Y-%m' )")
+            ->select();
+        // 初始化数据
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+        $currentYear = date("Y"); // 当前年份
+        $currentMonth = date("m"); // 当前月份
+        $previousYear = (int)$currentYear - 1; // 去年
+        $previousTwoYear = (int)$currentYear - 2; // 前年
+
+        // 为前年、去年和今年创建数据数组,初始值为0
+        $list['series'][0]['name'] = $previousTwoYear . '年';
+        $list['series'][0]['data'] = array_fill(0, 12, 0); // 前年初始化为0
+        $list['series'][1]['name'] = $previousYear . '年';
+        $list['series'][1]['data'] = array_fill(0, 12, 0); // 去年初始化为0
+        $list['series'][2]['name'] = $currentYear . '年';
+        $list['series'][2]['data'] = array_fill(0, $currentMonth, 0); // 今年初始化到当前月份为0
+
+        // 遍历查询结果
+        foreach ($sql_final as $v) {
+            // 获取年份和月份
+            $year = substr($v['rq'], 0, 4);
+            $month = substr($v['rq'], 5, 2);
+
+            // 如果是前两年的数据
+            if ($year == $previousTwoYear) {
+                $list['series'][0]['data'][(int)$month - 1] = $v['nFourColorSL'];
+            }
+            // 如果是去年的数据
+            if ($year == $previousYear) {
+                $list['series'][1]['data'][(int)$month - 1] = $v['nFourColorSL'];
+            }
+            // 如果是今年的数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][(int)$month - 1] = $v['nFourColorSL'];
+            }
+        }
+
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //四色机每月生产趋势 色令->接口调用
+    public function siseji(){
+        $redis=redis();
+        $redis_key = md5('siseji_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //BB机每月生产趋势 色令->缓存调用
+    public function bbj_redis(){
+        $redis=redis();
+        $redis_key = md5('bbj_redis');
+        //首先定义了起始时间和结束时间
+
+        //根据查询条件查出色令数据
+        $subQuery2_child = Db::table('bzysdayrpt')->field('drptrq AS rq,fsjsl')
+            ->whereIn('cbzmc', ['BB机1号(甲班)','BB机1号(乙班)','BB机2号(甲班)','BB机2号(乙班)',
+                'BB机3号(甲班)','BB机3号(乙班)','BB机4号(甲班)','BB机4号(乙班)','BB机5号(甲班)',
+                'BB机5号(乙班)','BB机6号(甲班)','BB机6号(乙班)', '05机1号(甲班)', '05机1号(乙班)',
+                '海德堡SM1号机(甲班)','海德堡SM1号机(乙班)', '海德堡SM2号机(甲班)','海德堡SM2号机(乙班)'])
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field('b.dOnduty,a.nsl ')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams')
+                    ->whereIn('cMachineName', ['BB机01号','BB机02号','BB机04号','BB机05号','如钰01号机','如钰02号机',
+                        'BB机06号','海德堡SM1号','海德堡SM2号']);
+            }, true)->buildSql();
+
+        //将两个表的日期字段进行合并,并返回一个包含不重复结果
+        $subQuery = Db::table('bzysdayrpt')->field('DISTINCT drptrq AS RQ')
+            ->union(function ($query) {
+                $query->table('ql_report_feedback_day')->alias('a')->field(' DISTINCT b.dOnduty ')
+                    ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams');
+            })->buildSql();
+
+        //查询每天的数据
+        $subQuery2 = Db::table($subQuery2_child . 'T')
+            ->field('rq,SUM( fsjsl ) nBBSL')
+            ->group('rq')->buildSql();
+
+        //按当天日期进行分组 累计相加当天数据
+        $subQuery1_5 = Db::table($subQuery . 'A')
+            ->field('DISTINCT DATE(A.RQ) RQ,sum(h.nBBSL) AS nBBSL')
+            ->join('(' . $subQuery2 . ') as h', 'A.RQ = h.rq','LEFT')
+            ->group('RQ')
+            ->buildSql();
+
+        //按每个月进行查询 累计相加每月数据 ROUND(SUM( db.nBBSL )) AS '单双色机(BB机)色令合计'
+        $sql_final = Db::table($subQuery1_5 . ' db')
+            ->field("
+                DATE_FORMAT( db.RQ, '%Y-%m' ) AS 'rq',
+                ROUND(SUM( db.nBBSL )) AS 'nBBSL'
+            ")
+            ->where("db.RQ >= '{$this->qianstart_time()}'AND db.RQ <= '{$this->end_time()}' ")
+            // ->group('MONTH(db.RQ)')
+            ->group("DATE_FORMAT( db.RQ, '%Y-%m' )")
+            ->order('db.RQ', 'asc')
+            ->select();
+        // 初始化数据
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+        $currentYear = date("Y"); // 当前年份
+        $currentMonth = date("m"); // 当前月份
+        $previousYear = (int)$currentYear - 1; // 去年
+        $previousTwoYear = (int)$currentYear - 2; // 前年
+
+        // 为前年、去年和今年创建数据数组,初始值为0
+        $list['series'][0]['name'] = $previousTwoYear . '年';
+        $list['series'][0]['data'] = array_fill(0, 12, 0); // 前年初始化为0
+        $list['series'][1]['name'] = $previousYear . '年';
+        $list['series'][1]['data'] = array_fill(0, 12, 0); // 去年初始化为0
+        $list['series'][2]['name'] = $currentYear . '年';
+        $list['series'][2]['data'] = array_fill(0, $currentMonth, 0); // 今年初始化到当前月份为0
+
+        // 遍历查询结果
+        foreach ($sql_final as $v) {
+            // 获取年份和月份
+            $year = substr($v['rq'], 0, 4);
+            $month = substr($v['rq'], 5, 2);
+
+            // 如果是前两年的数据
+            if ($year == $previousTwoYear) {
+                $list['series'][0]['data'][(int)$month - 1] = $v['nBBSL'];
+            }
+            // 如果是去年的数据
+            if ($year == $previousYear) {
+                $list['series'][1]['data'][(int)$month - 1] = $v['nBBSL'];
+            }
+            // 如果是今年的数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][(int)$month - 1] = $v['nBBSL'];
+            }
+        }
+
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //BB机每月生产趋势 色令->接口调用
+    public function bbj(){
+        $redis=redis();
+        $redis_key = md5('bbj_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //胶订纸令->缓存调用
+    public function jdzl_redis(){
+        $redis=redis();
+        $redis_key = md5('jdzl_redis');
+        //首先定义了起始时间和结束时间
+
+        $A = Db::table('cpjtfk')->field("DISTINCT DATE_FORMAT(drptdate, '%Y-%m-%d') AS rq")
+            ->union(function ($query) {
+                $query->table('scDayRpt_Teams')->alias('b')
+                    ->field("DISTINCT DATE_FORMAT(
+        CASE
+            WHEN DATE_FORMAT(b.dOnDuty, '%H:%i:%s') < '06:30:00' THEN DATE_SUB(b.dOnDuty, INTERVAL 1 DAY)
+            ELSE b.dOnDuty
+        END,
+        '%Y-%m-%d'
+    ) AS RQ");
+            }, true)
+            ->buildSql();
+
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 马1甲纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 马1乙纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 马2甲纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 马2乙纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 马3甲纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 马3乙纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 马4甲纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 马4乙纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 马5甲纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 马5乙纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN CASE WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%' OR a.cCyddxMc LIKE '%答案%' OR a.cCyddxMc LIKE '%卷%'
+            THEN CASE
+                WHEN CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                      END = 0 THEN c.nzdls
+                ELSE ( CASE
+                    WHEN c.nzdls < CASE  WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                      END ELSE c.nzdls END
+                )  END ELSE 0 END
+      ELSE CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%' OR a.cCyddxMc LIKE '%答案%' OR a.cCyddxMc LIKE '%卷%'
+                   THEN CASE
+                       WHEN CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                             END = 0 THEN c.nzdls
+                       ELSE ( CASE WHEN c.nzdls <
+                                CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN CASE WHEN IFNULL(d.fZls, 0) < rr.zl THEN rr.zl ELSE IFNULL(d.fZls, 0)
+                             END ELSE c.nzdls END )
+                     END ELSE 0 END ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END END ), 3)    马11甲纸令 ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马11乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马22甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马22乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马33甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马33乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $HH = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马44甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $HH1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马44乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马55甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $XXX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马66甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $XXX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马77甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $JDJ4 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马88甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达4号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $JDY4 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马88乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达4号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马55乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马66乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    马77乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        //DISTINCT DATE_FORMAT(A.RQ, '%Y-%m-%d') AS rq,
+        $db = Db::table($A . 'a')
+            ->field("
+                DISTINCT DATE(A.RQ) rq,
+                floor(IFNULL(sum(b.马1甲纸令数), 0) + IFNULL(sum(b1.马1乙纸令数), 0)
+                + IFNULL(sum(C.马2甲纸令数), 0) + IFNULL(sum(C1.马2乙纸令数), 0)
+                + IFNULL(sum(D.马3甲纸令数), 0) + IFNULL(sum(D1.马3乙纸令数), 0)
+                + IFNULL(sum(E.马4甲纸令数), 0) + IFNULL(sum(E1.马4乙纸令数), 0)
+                + IFNULL(sum(f.马5甲纸令数), 0) + IFNULL(sum(f1.马5乙纸令数), 0)
+                + IFNULL(sum(Bb.马11甲纸令), 0) + IFNULL(sum(cc.马22甲纸令), 0)
+                + IFNULL(sum(ee.马33甲纸令), 0) + IFNULL(sum(hh.马44甲纸令), 0)
+                + IFNULL(sum(xx.马55甲纸令), 0) + IFNULL(sum(Bb1.马11乙纸令), 0)
+                + IFNULL(sum(cc1.马22乙纸令), 0) + IFNULL(sum(ee1.马33乙纸令), 0)
+                + IFNULL(sum(hh1.马44乙纸令), 0) + IFNULL(sum(xx1.马55乙纸令), 0)
+                + IFNULL(sum(xx2.马66乙纸令), 0) + IFNULL(sum(xx3.马77乙纸令), 0)
+                + IFNULL(sum(JDJ4.马88甲纸令), 0) + IFNULL(sum(JDY4.马88乙纸令), 0)
+                + IFNULL(sum(xxx2.马66甲纸令), 0) + IFNULL(sum(xxx3.马77甲纸令), 0)) 纸令数总计
+            ")
+            ->join('(' . $B . ') as b', '  a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $C . ') as c', 'a.rq = c.rq','LEFT')
+            ->join('(' . $C1 . ') as c1', 'a.rq = c1.rq','LEFT')
+            ->join('(' . $D . ') as d', 'a.rq = d.rq','LEFT')
+            ->join('(' . $D1 . ') as d1', 'a.rq = d1.rq','LEFT')
+            ->join('(' . $E . ') as e', 'a.rq = e.rq','LEFT')
+            ->join('(' . $E1 . ') as e1', 'a.rq = e1.rq','LEFT')
+            ->join('(' . $F . ') as f', 'a.rq = f.rq','LEFT')
+            ->join('(' . $F1 . ') as f1', 'a.rq = f1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->join('(' . $CC . ') as cc', 'a.rq = cc.rq','LEFT')
+            ->join('(' . $CC1 . ') as cc1', 'a.rq = cc1.rq','LEFT')
+            ->join('(' . $EE . ') as ee', 'a.rq = ee.rq','LEFT')
+            ->join('(' . $EE1 . ') as ee1', 'a.rq = ee1.rq','LEFT')
+            ->join('(' . $HH . ') as hh', 'a.rq = hh.rq','LEFT')
+            ->join('(' . $HH1 . ') as hh1', 'a.rq = hh1.rq','LEFT')
+            ->join('(' . $XX . ') as xx', 'a.rq = xx.rq','LEFT')
+            ->join('(' . $XX1 . ') as xx1', 'a.rq = xx1.rq','LEFT')
+            ->join('(' . $XX2 . ') as xx2', 'a.rq = xx2.rq','LEFT')
+            ->join('(' . $XX3 . ') as xx3', 'a.rq = xx3.rq','LEFT')
+            ->join('(' . $XXX2 . ') as xxx2', 'a.rq = xxx2.rq','LEFT')
+            ->join('(' . $XXX3 . ') as xxx3', 'a.rq = xxx3.rq','LEFT')
+            ->join('(' . $JDY4 . ') as JDY4', 'a.rq = JDY4.rq','LEFT')
+            ->join('(' . $JDJ4 . ') as JDJ4', 'a.rq = JDJ4.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        //按每个月进行查询 累计相加每月数据 ROUND(SUM( db.纸令数总计 )) AS '无线胶订纸令'
+        $sql_final = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m') as rq,
+                ROUND(SUM(db.纸令数总计), 0) AS jdzl
+             ")
+            ->where("db.RQ >= '{$this->qianstart_time()}'AND db.RQ <= '{$this->end_time()}' ")
+            ->group("DATE_FORMAT(db.rq, '%Y-%m')")
+            ->select();
+        // 初始化数据
+        $i = 0;
+        $j = 0;
+        $k = 0;
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+        $currentYear = date("Y"); // 当前年份
+        $previousYear = (int)$currentYear - 1; // 去年
+        $previousTwoYear = (int)$currentYear - 2; // 前年
+        // 为三年的数据创建数组,初始值为0
+        $list['series'][0]['name'] = $previousTwoYear . '年'; // 前年
+        $list['series'][0]['data'] = array_fill(0, 12, 0); // 初始化为12个月的数据
+        $list['series'][1]['name'] = $previousYear . '年'; // 去年
+        $list['series'][1]['data'] = array_fill(0, 12, 0); // 初始化为12个月的数据
+        $list['series'][2]['name'] = $currentYear . '年'; // 今年
+        $list['series'][2]['data'] = array_fill(0, (int)date("m"), 0); // 初始化到当前月份的数据
+
+        // 遍历查询结果并填充数据
+        foreach ($sql_final as $v) {
+            // 获取年份和月份
+            $year = substr($v['rq'], 0, 4);
+            $month = substr($v['rq'], 5, 2);
+
+            // 如果是前年数据
+            if ($year == $previousTwoYear) {
+                $list['series'][0]['data'][(int)$month - 1] = $v['jdzl'];
+            }
+            // 如果是去年数据
+            if ($year == $previousYear) {
+                $list['series'][1]['data'][(int)$month - 1] = $v['jdzl'];
+            }
+            // 如果是今年数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][(int)$month - 1] = $v['jdzl'];
+            }
+        }
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //胶订纸令->接口调用
+    public function jdzl(){
+        $redis=redis();
+        $redis_key = md5('jdzl_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //精装纸令->缓存调用
+    public function jzzl_redis(){
+        $redis=redis();
+        $redis_key = md5('jzzl_redis');
+        //首先定义了起始时间和结束时间
+
+        $A = Db::table('cpjtfk')->field("DISTINCT DATE_FORMAT(drptdate, '%Y-%m-%d') AS rq")
+            ->union(function ($query) {
+                $query->table('scDayRpt_Teams')->alias('b')
+                    ->field("DISTINCT DATE_FORMAT(
+        CASE
+            WHEN DATE_FORMAT(b.dOnDuty, '%H:%i:%s') < '06:30:00' THEN DATE_SUB(b.dOnDuty, INTERVAL 1 DAY)
+            ELSE b.dOnDuty
+        END,
+        '%Y-%m-%d'
+    ) AS RQ");
+            }, true)
+            ->buildSql();
+
+        //精1甲、精1甲纸令数
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 精1甲纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','精装生产联动线(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        //精1乙 精1乙纸令数
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 精1乙纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','精装生产联动线(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        //精11甲--精11甲纸令
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    精11甲纸令,
+     d.cSccpbh
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','精装联动线01号(甲班)')
+            ->where('a.cTechName' ,'=','精装联动')
+            ->whereNotIn('d.cSccpbh', ['202305137S-D01', '202305176S-D01'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        //精11乙--精11乙纸令
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    精11乙纸令,
+     d.cSccpbh
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','精装联动线01号(乙班)')
+            ->where('a.cTechName' ,'=','精装联动')
+            ->whereNotIn('d.cSccpbh', ['202305137S-D01', '202305176S-D01'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $db = Db::table($A . 'a')
+            ->field("
+                DISTINCT DATE(A.RQ) rq,
+                floor(IFNULL(sum(b.精1甲纸令数), 0) + IFNULL(sum(b1.精1乙纸令数), 0)
+                    + IFNULL(sum(Bb.精11甲纸令), 0) + IFNULL(sum(Bb1.精11乙纸令), 0)) 纸令数总计
+            ")
+            ->join('(' . $B . ') as b', '  a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $sql_final = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m') as rq,
+                ROUND(sum(db.纸令数总计), 0) as jzzl
+             ")
+            ->where("db.RQ >= '{$this->qianstart_time()}'AND db.RQ <= '{$this->end_time()}' ")
+            ->group("DATE_FORMAT(db.rq, '%Y-%m')")
+            ->select();
+
+
+        $redis->set($redis_key, json_encode($sql_final));
+        echo date("Y-m-d H:i:s").'   存进去了';
+        return $sql_final;
+    }
+    //精装纸令->接口调用
+    public function jzzl(){
+        $redis=redis();
+        $sql_final = json_decode($redis->get(md5('jzzl_redis')), true);
+
+        $i = 0;
+        $j = 0;
+        $k = 0;
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+
+        // 获取当前年份、去年和前年
+        $currentYear = date("Y"); // 当前年份
+        $previousYear = (int)$currentYear - 1; // 去年
+        $previousTwoYear = (int)$currentYear - 2; // 前年
+
+        // 初始化三年的数据
+        $list['series'][0]['name'] = $previousTwoYear . '年'; // 前年
+        $list['series'][0]['data'] = array_fill(0, 12, 0); // 初始化为12个月的数据
+        $list['series'][1]['name'] = $previousYear . '年'; // 去年
+        $list['series'][1]['data'] = array_fill(0, 12, 0); // 初始化为12个月的数据
+        $list['series'][2]['name'] = $currentYear . '年'; // 今年
+        $list['series'][2]['data'] = array_fill(0, (int)date("m"), 0); // 初始化到当前月份的数据
+
+        // 遍历查询结果并填充数据
+        foreach ($sql_final as $v) {
+            // 获取年份和月份
+            $year = substr($v['rq'], 0, 4);
+            $month = substr($v['rq'], 5, 2);
+
+            // 如果是前年数据
+            if ($year == $previousTwoYear) {
+                $list['series'][0]['data'][(int)$month - 1] = $v['jzzl'];
+            }
+            // 如果是去年数据
+            if ($year == $previousYear) {
+                $list['series'][1]['data'][(int)$month - 1] = $v['jzzl'];
+            }
+            // 如果是今年数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][(int)$month - 1] = $v['jzzl'];
+            }
+        }
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        return json_encode($res);
+
+    }
+
+    //骑马纸令->缓存调用
+    public function qmzl_redis(){
+        $redis=redis();
+        $redis_key = md5('qmzl_redis');
+
+        //1.使用`Db::table('cpjtfk')`来指定查询的数据表是'cpjtfk'。
+        //3.使用`union()`方法进行联合查询。在联合查询中,使用了一个闭包函数来构建子查询。
+        //4.在子查询中,使用`table('scDayRpt_Teams')->alias('b')`来指定查询的数据表是'scDayRpt_Teams',并给该表设置了别名'b'。
+        //5.使用`field()`方法指定要查询的字段列表,这里是将dOnDuty字段进行一系列操作,包括判断条件和日期格式化。
+        //6.使用`buildSql()`方法生成最终的SQL查询语句,并将生成的SQL语句作为A变量的值。
+        //7.根据代码的逻辑,变量A生成了一个联合查询的SQL语句,用于查询'cpjtfk'表和'scDayRpt_Teams'表中的日期字段,并按照指定格式进行格式化。
+        $A = Db::table('cpjtfk')->field("DISTINCT DATE_FORMAT(drptdate, '%Y-%m-%d') AS rq")
+            ->union(function ($query) {
+                $query->table('scDayRpt_Teams')->alias('b')
+                    ->field("DISTINCT DATE_FORMAT(
+        CASE
+            WHEN DATE_FORMAT(b.dOnDuty, '%H:%i:%s') < '06:30:00' THEN DATE_SUB(b.dOnDuty, INTERVAL 1 DAY)
+            ELSE b.dOnDuty
+        END,
+        '%Y-%m-%d'
+    ) AS RQ");
+            }, true)
+            ->buildSql();
+
+        //每个变量($B, $B1, $C, $C1, $D, $D1, $E, $E1)都是构建SQL查询语句的过程。
+        //通过调用Db::table('cpjtfk')来指定查询的数据表是'cpjtfk'。
+        //然后使用join()方法进行表连接,将'cpjtfk'表与'mcyd'表进行左连接,连接条件为'mcyd.ICYDID = cpjtfk.ID_CYD'。
+        //使用field()方法指定查询的字段列表,并可以使用sum()函数对字段进行求和计算。
+        //使用where()方法指定筛选条件,只返回满足条件的数据。最后,使用group()方法指定分组的字段。
+        //最后,使用buildSql()方法生成最终的SQL查询语句,并将生成的SQL语句作为变量的值。
+        //根据代码的逻辑,每个变量都生成了一个SQL查询语句,用于查询不同班组的订单信息
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 骑1甲纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','进口骑马联动(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 骑1乙纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','进口骑马联动(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 骑2甲纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','恒山骑订联动(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 骑2乙纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','恒山骑订联动(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 骑3甲纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','紫光骑马联动(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 骑3乙纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','紫光骑马联动(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 骑4甲纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','紫光骑马联动(新)(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(mcyd.NZWyz * iWCl / 1000) as 骑4乙纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','紫光骑马联动(新)(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        //1.首先,定义了一个查询语句,该查询语句涉及多个表的连接和字段的计算。
+        //2.使用别名$Bb表示主查询结果。
+        //3.查询的主要数据来源是表ql_report_feedback_day。
+        //4.在字段的计算中,使用了多个CASE和WHEN语句进行条件判断和计算逻辑。
+        //5.在查询中,使用了多个表的连接操作,包括scdayrpt_teams、scdayrpt_teams_jobcontent、scMachineJob、zdcp和mcyd。
+        //6.使用WHERE条件筛选出满足特定条件的记录,包括Name_WorkGroup等于'骑马联动01号(甲班)'和a.cTechName等于'骑马联动'。
+        //7.最后,使用GROUPBY对结果进行分组,根据日期和班组进行分组。
+        //8.通过buildSql方法生成最终的SQL查询语句
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    骑11甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动01号(甲班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    骑11乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动01号(乙班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    骑22甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动02号(甲班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    骑22乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动02号(乙班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    骑33甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动03号(甲班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    骑33乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动03号(乙班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $HH = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    骑44甲纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动04号(甲班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $HH1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                 ROUND(SUM(
+    CASE
+      WHEN a.nAmount >= a.nPAmount AND a.nAmount > IFNULL(d.izdsl, 0)
+        THEN
+          CASE
+            WHEN a.cCyddxMc = '装配'
+                 OR a.cCyddxMc LIKE '%正文%'
+                 OR a.cCyddxMc LIKE '%答案%'
+                 OR a.cCyddxMc LIKE '%卷%'
+            THEN
+              CASE
+                WHEN CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END = 0
+                THEN c.nzdls
+                ELSE (
+                  CASE
+                    WHEN c.nzdls <
+                         CASE
+                           WHEN IFNULL(d.fZls, 0) < rr.zl
+                           THEN rr.zl
+                           ELSE IFNULL(d.fZls, 0)
+                         END
+                    THEN
+                      CASE
+                        WHEN IFNULL(d.fZls, 0) < rr.zl
+                        THEN rr.zl
+                        ELSE IFNULL(d.fZls, 0)
+                      END
+                    ELSE c.nzdls
+                  END
+                )
+              END
+            ELSE 0
+          END
+      ELSE
+        CASE
+          WHEN f.nCompleteAmount /*累计数量*/ > IFNULL(d.izdsl, 0) /*理论数量*/
+            THEN a.nAmount / NULLIF(f.nCompleteAmount, 0) *
+                 CASE
+                   WHEN a.cCyddxMc = '装配'
+                        OR a.cCyddxMc LIKE '%正文%'
+                        OR a.cCyddxMc LIKE '%答案%'
+                        OR a.cCyddxMc LIKE '%卷%'
+                   THEN
+                     CASE
+                       WHEN CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END = 0
+                       THEN c.nzdls
+                       ELSE (
+                         CASE
+                           WHEN c.nzdls <
+                                CASE
+                                  WHEN IFNULL(d.fZls, 0) < rr.zl
+                                  THEN rr.zl
+                                  ELSE IFNULL(d.fZls, 0)
+                                END
+                           THEN
+                             CASE
+                               WHEN IFNULL(d.fZls, 0) < rr.zl
+                               THEN rr.zl
+                               ELSE IFNULL(d.fZls, 0)
+                             END
+                           ELSE c.nzdls
+                         END
+                       )
+                     END
+                   ELSE 0
+                 END
+          ELSE c.nzdls * a.nAmount / IFNULL(d.izdsl, 0)
+        END
+          END )
+     , 3)    骑44乙纸令
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动04号(乙班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+                DISTINCT DATE(A.RQ) rq,
+                TRUNCATE(IFNULL(sum(b.骑1甲纸令数), 0) + IFNULL(sum(b1.骑1乙纸令数), 0)
+              + IFNULL(sum(C.骑2甲纸令数), 0) + IFNULL(sum(C1.骑2乙纸令数), 0)
+              + IFNULL(sum(D.骑3甲纸令数), 0) + IFNULL(sum(D1.骑3乙纸令数), 0)
+              + IFNULL(sum(E.骑4甲纸令数), 0) + IFNULL(sum(E1.骑4乙纸令数), 0)
+              + IFNULL(sum(Bb.骑11甲纸令), 0) + IFNULL(sum(cc.骑22甲纸令), 0)
+              + IFNULL(sum(ee.骑33甲纸令), 0) + IFNULL(sum(hh.骑44甲纸令), 0)
+              + IFNULL(sum(Bb1.骑11乙纸令), 0) + IFNULL(sum(cc1.骑22乙纸令), 0)
+              + IFNULL(sum(ee1.骑33乙纸令), 0) + IFNULL(sum(hh1.骑44乙纸令), 0), 0) 纸令数总计
+            ")
+            ->join('(' . $B . ')  as b', '  a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', ' a.rq = b1.rq','LEFT')
+            ->join('(' . $C . ')  as c', '  a.rq = c.rq','LEFT')
+            ->join('(' . $C1 . ') as c1', ' a.rq = c1.rq','LEFT')
+            ->join('(' . $D . ')  as d', '  a.rq = d.rq','LEFT')
+            ->join('(' . $D1 . ') as d1', ' a.rq = d1.rq','LEFT')
+            ->join('(' . $E . ')  as e', '  a.rq = e.rq','LEFT')
+            ->join('(' . $E1 . ') as e1', ' a.rq = e1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', ' a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ')as bb1', 'a.rq = bb1.rq','LEFT')
+            ->join('(' . $CC . ') as cc', ' a.rq = cc.rq','LEFT')
+            ->join('(' . $CC1 . ')as cc1', 'a.rq = cc1.rq','LEFT')
+            ->join('(' . $EE . ') as ee', ' a.rq = ee.rq','LEFT')
+            ->join('(' . $EE1 . ')as ee1', 'a.rq = ee1.rq','LEFT')
+            ->join('(' . $HH . ') as hh', ' a.rq = hh.rq','LEFT')
+            ->join('(' . $HH1 . ')as hh1', 'a.rq = hh1.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        //使用GROUP BY对日期字段进行分组
+        //汇总每个月骑马纸令总和
+        $sql_final = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m')   as rq,
+                ROUND(sum(db.纸令数总计),0)     as qmzl
+            ")
+            ->where("db.rq >= '{$this->qianstart_time()}'AND db.rq <= '{$this->end_time()}' ")
+            ->group("DATE_FORMAT(db.rq, '%Y-%m')")
+            ->select();
+        // 初始化数据
+        $i = 0;
+        $j = 0;
+        $k = 0;
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+
+        $currentYear = date("Y"); // 当前年份
+        $previousYear = (int)$currentYear - 1; // 去年
+        $previousTwoYear = (int)$currentYear - 2; // 前年
+
+        // 为三年的数据创建数组,初始值为0
+        $list['series'][0]['name'] = $previousTwoYear . '年'; // 前年
+        $list['series'][0]['data'] = array_fill(0, 12, 0); // 初始化为12个月的数据
+        $list['series'][1]['name'] = $previousYear . '年'; // 去年
+        $list['series'][1]['data'] = array_fill(0, 12, 0); // 初始化为12个月的数据
+        $list['series'][2]['name'] = $currentYear . '年'; // 今年
+        $list['series'][2]['data'] = array_fill(0, (int)date("m"), 0); // 初始化到当前月份的数据
+
+        // 遍历查询结果并填充数据
+        foreach ($sql_final as $v) {
+            // 获取年份和月份
+            $year = substr($v['rq'], 0, 4);
+            $month = substr($v['rq'], 5, 2);
+
+            // 如果是前年数据
+            if ($year == $previousTwoYear) {
+                $list['series'][0]['data'][(int)$month - 1] = $v['qmzl'];
+            }
+            // 如果是去年数据
+            if ($year == $previousYear) {
+                $list['series'][1]['data'][(int)$month - 1] = $v['qmzl'];
+            }
+            // 如果是今年数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][(int)$month - 1] = $v['qmzl'];
+            }
+        }
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //骑马纸令->接口调用
+    public function qmzl(){
+        $redis=redis();
+        $redis_key = md5('qmzl_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //胶订册数->缓存调用
+    public function jdcs_redis(){
+        $redis=redis();
+        $redis_key = md5('jdcs_redis');
+
+        $A = Db::table('cpjtfk')->field("DISTINCT DATE_FORMAT(drptdate, '%Y-%m-%d') AS rq")
+            ->union(function ($query) {
+                $query->table('scDayRpt_Teams')->alias('b')
+                    ->field("DISTINCT DATE_FORMAT(
+        CASE
+            WHEN DATE_FORMAT(b.dOnDuty, '%H:%i:%s') < '06:30:00' THEN DATE_SUB(b.dOnDuty, INTERVAL 1 DAY)
+            ELSE b.dOnDuty
+        END,
+        '%Y-%m-%d'
+    ) AS RQ");
+            }, true)
+            ->buildSql();
+
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马1甲
+            ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马1乙
+            ")
+            ->where('cpjtfk.cbanzu','=','马天尼(新)(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马2甲
+            ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马2乙
+            ")
+            ->where('cpjtfk.cbanzu','=','马天尼2号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马3甲
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马3乙
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订3号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马4甲
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马4乙
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订4号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马5甲
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $F1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 马5乙,
+                sum(mcyd.NZWyz * iWCl / 1000) as 马5乙纸令数
+            ")
+            ->where('cpjtfk.cbanzu','=','无线胶订5号(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马11甲")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马11乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马22甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马22乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订潮流2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马33甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马33乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精工1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+
+        $HH = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马44甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $HH1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马44乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达1号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马55甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马66甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XXX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马77甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $JDJ4 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马88甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达4号(甲班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马55乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达2号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX2 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马66乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $XX3 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马77乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶钉精密达3号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $JDY4 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 马88乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','胶订精密达4号(乙班)')
+            ->whereIn('a.cTechName', ['胶订联动', '胶头'])
+            ->group("CASE
+		 WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+		END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+                DISTINCT DATE_FORMAT(A.RQ, '%Y-%m-%d') AS rq,
+                 IFNULL(B.马1甲, 0) + IFNULL(B1.马1乙, 0)
+              + IFNULL(C.马2甲, 0) + IFNULL(C1.马2乙, 0)
+              + IFNULL(D.马3甲, 0) + IFNULL(D1.马3乙, 0)
+              + IFNULL(E.马4甲, 0) + IFNULL(E1.马4乙, 0)
+              + IFNULL(f.马5甲, 0) + IFNULL(f1.马5乙, 0)
+              + IFNULL(Bb.马11甲, 0) + IFNULL(Bb1.马11乙, 0)
+              + IFNULL(cc.马22甲, 0) + IFNULL(cc1.马22乙, 0)
+              + IFNULL(ee.马33甲, 0) + IFNULL(ee1.马33乙, 0)
+              + IFNULL( hh.马44甲, 0) + IFNULL(hh1.马44乙, 0)
+              + IFNULL(xx.马55甲, 0) + IFNULL(xx1.马55乙, 0)
+              + IFNULL(xxx2.马66甲, 0) + IFNULL(xx2.马66乙, 0)     
+              + IFNULL(JDJ4.马88甲, 0) + IFNULL(JDY4.马88乙, 0)   
+              + IFNULL(xxx3.马77甲, 0) + IFNULL(xx3.马77乙, 0)      总计册
+            ")
+            ->join('(' . $B . ') as b', '  a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $C . ') as c', 'a.rq = c.rq','LEFT')
+            ->join('(' . $C1 . ') as c1', 'a.rq = c1.rq','LEFT')
+            ->join('(' . $D . ') as d', 'a.rq = d.rq','LEFT')
+            ->join('(' . $D1 . ') as d1', 'a.rq = d1.rq','LEFT')
+            ->join('(' . $E . ') as e', 'a.rq = e.rq','LEFT')
+            ->join('(' . $E1 . ') as e1', 'a.rq = e1.rq','LEFT')
+            ->join('(' . $F . ') as f', 'a.rq = f.rq','LEFT')
+            ->join('(' . $F1 . ') as f1', 'a.rq = f1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->join('(' . $CC . ') as cc', 'a.rq = cc.rq','LEFT')
+            ->join('(' . $CC1 . ') as cc1', 'a.rq = cc1.rq','LEFT')
+            ->join('(' . $EE . ') as ee', 'a.rq = ee.rq','LEFT')
+            ->join('(' . $EE1 . ') as ee1', 'a.rq = ee1.rq','LEFT')
+            ->join('(' . $HH . ') as hh', 'a.rq = hh.rq','LEFT')
+            ->join('(' . $HH1 . ') as hh1', 'a.rq = hh1.rq','LEFT')
+            ->join('(' . $XX . ') as xx', 'a.rq = xx.rq','LEFT')
+            ->join('(' . $XX1 . ') as xx1', 'a.rq = xx1.rq','LEFT')
+            ->join('(' . $XX2 . ') as xx2', 'a.rq = xx2.rq','LEFT')
+            ->join('(' . $XX3 . ') as xx3', 'a.rq = xx3.rq','LEFT')
+            ->join('(' . $XXX2 . ') as xxx2', 'a.rq = xxx2.rq','LEFT')
+            ->join('(' . $XXX3 . ') as xxx3', 'a.rq = xxx3.rq','LEFT')
+            ->join('(' . $JDJ4 . ') as JDJ4', 'a.rq = JDJ4.rq','LEFT')
+            ->join('(' . $JDY4 . ') as JDY4', 'a.rq = JDY4.rq','LEFT')
+            ->buildSql();
+
+        $sql_final = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m') as rq,
+                ROUND(sum(db.总计册), 0) as jdcs
+             ")
+            ->where("db.RQ >= '{$this->qianstart_time()}'
+            AND db.RQ <= '{$this->end_time()}' ")
+            ->group("DATE_FORMAT(db.rq, '%Y-%m')")
+            ->select();
+        // 初始化数据
+        $i = 0;
+        $j = 0;
+        $k = 0;
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+
+        $currentYear = date("Y"); // 当前年份
+        $previousYear = (int)$currentYear - 1; // 去年
+        $previousTwoYear = (int)$currentYear - 2; // 前年
+
+        // 为三年的数据创建数组,初始值为0
+        $list['series'][0]['name'] = $previousTwoYear . '年'; // 前年
+        $list['series'][0]['data'] = array_fill(0, 12, 0); // 初始化为12个月的数据
+        $list['series'][1]['name'] = $previousYear . '年'; // 去年
+        $list['series'][1]['data'] = array_fill(0, 12, 0); // 初始化为12个月的数据
+        $list['series'][2]['name'] = $currentYear . '年'; // 今年
+        $list['series'][2]['data'] = array_fill(0, (int)date("m"), 0); // 初始化到当前月份的数据
+
+        // 遍历查询结果并填充数据
+        foreach ($sql_final as $v) {
+            // 获取年份和月份
+            $year = substr($v['rq'], 0, 4);
+            $month = substr($v['rq'], 5, 2);
+
+            // 如果是前年数据
+            if ($year == $previousTwoYear) {
+                $list['series'][0]['data'][(int)$month - 1] = $v['jdcs'];
+            }
+            // 如果是去年数据
+            if ($year == $previousYear) {
+                $list['series'][1]['data'][(int)$month - 1] = $v['jdcs'];
+            }
+            // 如果是今年数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][(int)$month - 1] = $v['jdcs'];
+            }
+        }
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //胶订册数->接口调用
+    public function jdcs(){
+        $redis=redis();
+        $redis_key = md5('jdcs_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //精装册数->缓存调用
+    public function jzcs_redis(){
+        $redis=redis();
+        $redis_key = md5('jzcs_redis');
+
+        $A = Db::table('cpjtfk')->field("DISTINCT DATE_FORMAT(drptdate, '%Y-%m-%d') AS rq")
+            ->union(function ($query) {
+                $query->table('scDayRpt_Teams')->alias('b')
+                    ->field("DISTINCT DATE_FORMAT(
+        CASE
+            WHEN DATE_FORMAT(b.dOnDuty, '%H:%i:%s') < '06:30:00' THEN DATE_SUB(b.dOnDuty, INTERVAL 1 DAY)
+            ELSE b.dOnDuty
+        END,
+        '%Y-%m-%d'
+    ) AS RQ");
+            }, true)
+            ->buildSql();
+
+        //精1甲、精1甲纸令数
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 精1甲
+            ")
+            ->where('cpjtfk.cbanzu','=','精装生产联动线(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        //精1乙 精1乙纸令数
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 精1乙
+            ")
+            ->where('cpjtfk.cbanzu','=','精装生产联动线(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        //精11甲--精11甲纸令
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 精11甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','精装联动线01号(甲班)')
+            ->where('a.cTechName' ,'=','精装联动')
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        //精11乙--精11乙纸令
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 精11乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','精装联动线01号(乙班)')
+            ->where('a.cTechName' ,'=','精装联动')
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $db = Db::table($A . 'a')
+            ->field("
+                DISTINCT DATE_FORMAT(A.RQ, '%Y-%m-%d') AS rq,
+                IFNULL(B.精1甲, 0) + IFNULL(B1.精1乙, 0)  + IFNULL(Bb.精11甲, 0) + IFNULL(Bb1.精11乙, 0)  as 总计册
+            ")
+            ->join('(' . $B . ') as b', '  a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', 'a.rq = b1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', 'a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ') as bb1', 'a.rq = bb1.rq','LEFT')
+            ->buildSql();
+
+        $sql_final = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m') as rq,
+                ROUND(sum(db.总计册), 0) as jzcs
+             ")
+            ->where("db.RQ >= '{$this->qianstart_time()}'
+            AND db.RQ <= '{$this->end_time()}' ")
+            ->group("DATE_FORMAT(db.rq, '%Y-%m')")
+            ->select();
+        // 初始化数据
+        $i = 0;
+        $j = 0;
+        $k = 0;
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+
+        $currentYear = date("Y"); // 当前年份
+        $previousYear = (int)$currentYear - 1; // 去年
+        $previousTwoYear = (int)$currentYear - 2; // 前年
+
+        // 为三年的数据创建数组,初始值为0
+        $list['series'][0]['name'] = $previousTwoYear . '年'; // 前年
+        $list['series'][0]['data'] = array_fill(0, 12, 0); // 初始化为12个月的数据
+        $list['series'][1]['name'] = $previousYear . '年'; // 去年
+        $list['series'][1]['data'] = array_fill(0, 12, 0); // 初始化为12个月的数据
+        $list['series'][2]['name'] = $currentYear . '年'; // 今年
+        $list['series'][2]['data'] = array_fill(0, (int)date("m"), 0); // 初始化到当前月份的数据
+
+        // 遍历查询结果并填充数据
+        foreach ($sql_final as $v) {
+            // 获取年份和月份
+            $year = substr($v['rq'], 0, 4);
+            $month = substr($v['rq'], 5, 2);
+
+            // 如果是前年数据
+            if ($year == $previousTwoYear) {
+                $list['series'][0]['data'][(int)$month - 1] = $v['jzcs'];
+            }
+            // 如果是去年数据
+            if ($year == $previousYear) {
+                $list['series'][1]['data'][(int)$month - 1] = $v['jzcs'];
+            }
+            // 如果是今年数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][(int)$month - 1] = $v['jzcs'];
+            }
+        }
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //精装册数->接口调用
+    public function jzcs(){
+        $redis=redis();
+        $redis_key = md5('jzcs_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+    //骑马册数->缓存调用
+    public function qmcs_redis(){
+        $redis=redis();
+        $redis_key = md5('qmcs_redis');
+        //1.使用`Db::table('cpjtfk')`来指定查询的数据表是'cpjtfk'。
+        //3.使用`union()`方法进行联合查询。在联合查询中,使用了一个闭包函数来构建子查询。
+        //4.在子查询中,使用`table('scDayRpt_Teams')->alias('b')`来指定查询的数据表是'scDayRpt_Teams',并给该表设置了别名'b'。
+        //5.使用`field()`方法指定要查询的字段列表,这里是将dOnDuty字段进行一系列操作,包括判断条件和日期格式化。
+        //6.使用`buildSql()`方法生成最终的SQL查询语句,并将生成的SQL语句作为A变量的值。
+        //7.根据代码的逻辑,变量A生成了一个联合查询的SQL语句,用于查询'cpjtfk'表和'scDayRpt_Teams'表中的日期字段,并按照指定格式进行格式化。
+        $A = Db::table('cpjtfk')->field("DISTINCT DATE_FORMAT(drptdate, '%Y-%m-%d') AS rq")
+            ->union(function ($query) {
+                $query->table('scDayRpt_Teams')->alias('b')
+                    ->field("DISTINCT DATE_FORMAT(
+        CASE
+            WHEN DATE_FORMAT(b.dOnDuty, '%H:%i:%s') < '06:30:00' THEN DATE_SUB(b.dOnDuty, INTERVAL 1 DAY)
+            ELSE b.dOnDuty
+        END,
+        '%Y-%m-%d'
+    ) AS RQ");
+            }, true)
+            ->buildSql();
+        //每个变量($B, $B1, $C, $C1, $D, $D1, $E, $E1)都是构建SQL查询语句的过程。
+        //通过调用Db::table('cpjtfk')来指定查询的数据表是'cpjtfk'。
+        //然后使用join()方法进行表连接,将'cpjtfk'表与'mcyd'表进行左连接,连接条件为'mcyd.ICYDID = cpjtfk.ID_CYD'。
+        //使用field()方法指定查询的字段列表,并可以使用sum()函数对字段进行求和计算。
+        //使用where()方法指定筛选条件,只返回满足条件的数据。最后,使用group()方法指定分组的字段。
+        //最后,使用buildSql()方法生成最终的SQL查询语句,并将生成的SQL语句作为变量的值。
+        //根据代码的逻辑,每个变量都生成了一个SQL查询语句,用于查询不同班组的订单信息
+        $B = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 骑1甲
+            ")
+            ->where('cpjtfk.cbanzu','=','进口骑马联动(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $B1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 骑1乙
+            ")
+            ->where('cpjtfk.cbanzu','=','进口骑马联动(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 骑2甲
+            ")
+            ->where('cpjtfk.cbanzu','=','恒山骑订联动(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $C1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 骑2乙
+            ")
+            ->where('cpjtfk.cbanzu','=','恒山骑订联动(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 骑3甲
+            ")
+            ->where('cpjtfk.cbanzu','=','紫光骑马联动(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $D1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 骑3乙
+            ")
+            ->where('cpjtfk.cbanzu','=','紫光骑马联动(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 骑4甲
+            ")
+            ->where('cpjtfk.cbanzu','=','紫光骑马联动(新)(甲班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+        $E1 = Db::table('cpjtfk')
+            ->join('mcyd','mcyd.ICYDID = cpjtfk.ID_CYD','LEFT')
+            ->field("
+                DATE_FORMAT(cpjtfk.drptdate,'%Y-%m-%d') as rq,
+                sum(iwcl) as 骑4乙
+            ")
+            ->where('cpjtfk.cbanzu','=','紫光骑马联动(新)(乙班)')
+            ->group('drptdate,cbanzu')
+            ->buildSql();
+
+
+        $rr = Db::table('scyddx')->alias('r')
+            ->field('r.ICYDID,sum(r.NYSLS) as zl')
+            ->group('r.ICYDID')
+            ->buildSql();
+
+        //1.首先,定义了一个查询语句,该查询语句涉及多个表的连接和字段的计算。
+        //2.使用别名$Bb表示主查询结果。
+        //3.查询的主要数据来源是表ql_report_feedback_day。
+        //4.在字段的计算中,使用了多个CASE和WHEN语句进行条件判断和计算逻辑。
+        //5.在查询中,使用了多个表的连接操作,包括scdayrpt_teams、scdayrpt_teams_jobcontent、scMachineJob、zdcp和mcyd。
+        //6.使用WHERE条件筛选出满足特定条件的记录,包括Name_WorkGroup等于'骑马联动01号(甲班)'和a.cTechName等于'骑马联动'。
+        //7.最后,使用GROUPBY对结果进行分组,根据日期和班组进行分组。
+        //8.通过buildSql方法生成最终的SQL查询语句
+        $Bb = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 骑11甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动01号(甲班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $Bb1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 骑11乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动01号(乙班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 骑22甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动02号(甲班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $CC1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 骑22乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动02号(乙班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 骑33甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动03号(甲班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $EE1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 骑33乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动03号(乙班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $HH = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 骑44甲
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动04号(甲班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        $HH1 = Db::table('ql_report_feedback_day')->alias('a')
+            ->field("
+               CASE WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d') ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d') END AS rq,
+                sum(a.nAmount) as 骑44乙
+            ")
+            ->join(['scdayrpt_teams' => 'b'], 'b.ID=a.ID_Teams and b.iDayRptStatus = 10','INNER')
+            ->join(['scdayrpt_teams_jobcontent' => 'q'], 'q.id = a.iJobContentID','INNER')
+            ->join(['scMachineJob' => 'f'], 'f.id = q.ID_JobM','INNER')
+            ->join(['zdcp' => 'd'], 'd.cSccpBh = LEFT(a.cMJobCode,14)','LEFT')
+            ->join('(' . $rr . ') as rr','rr.icydid = d.icydid','LEFT')
+            ->join(['mcyd' => 'c'], 'c.icydid = d.icydid','LEFT')
+            ->where('Name_WorkGroup','=','骑马联动04号(乙班)')
+            ->where('a.cTechName' ,'=','骑马联动')
+            ->group("CASE
+         WHEN DATE_FORMAT(b.dOnDuty, '%H:%i') < '06:30' THEN DATE_FORMAT(DATE_SUB(b.dOnDuty, INTERVAL 1 DAY), '%Y-%m-%d')
+        ELSE DATE_FORMAT(b.dOnDuty, '%Y-%m-%d')
+        END,Name_WorkGroup")
+            ->buildSql();
+
+        //1.首先,定义了一个查询语句,该语句涉及多个表的连接和字段的计算。
+        //2.代码中使用了别名$db来表示主查询结果。
+        //3.查询的主要数据来源是表$A.'a'。
+        //4.查询的字段包括总计册和纸令数总计,通过对多个子查询结果相加得到。
+        //5.在查询中使用了LEFT JOIN进行表连接操作,将子查询结果与主查询结果进行连接,通过日期a.rq进行匹配。
+        //6.使用buildSql()方法生成最终的SQL查询语句
+        $db = Db::table($A . 'a')
+            ->field("
+                DISTINCT DATE(A.RQ) rq,
+             TRUNCATE(IFNULL(sum(B.骑1甲), 0) + IFNULL(sum(B1.骑1乙), 0)
+              + IFNULL(sum(C.骑2甲), 0) + IFNULL(sum(C1.骑2乙), 0)
+              + IFNULL(sum(D.骑3甲), 0) + IFNULL(sum(D1.骑3乙), 0)
+              + IFNULL(sum(E.骑4甲), 0) + IFNULL(sum(E1.骑4乙), 0)
+              + IFNULL(sum(Bb.骑11甲), 0) + IFNULL(sum(Bb1.骑11乙), 0)
+              + IFNULL(sum(cc.骑22甲), 0) + IFNULL(sum(cc1.骑22乙), 0)
+              + IFNULL(sum(ee.骑33甲), 0) + IFNULL(sum(ee1.骑33乙), 0)
+              + IFNULL(sum(hh.骑44甲), 0) + IFNULL(sum(hh1.骑44乙), 0) , 0) 总计册
+            ")
+            ->join('(' . $B . ')  as b', '  a.rq = b.rq','LEFT')
+            ->join('(' . $B1 . ') as b1', ' a.rq = b1.rq','LEFT')
+            ->join('(' . $C . ')  as c', '  a.rq = c.rq','LEFT')
+            ->join('(' . $C1 . ') as c1', ' a.rq = c1.rq','LEFT')
+            ->join('(' . $D . ')  as d', '  a.rq = d.rq','LEFT')
+            ->join('(' . $D1 . ') as d1', ' a.rq = d1.rq','LEFT')
+            ->join('(' . $E . ')  as e', '  a.rq = e.rq','LEFT')
+            ->join('(' . $E1 . ') as e1', ' a.rq = e1.rq','LEFT')
+            ->join('(' . $Bb . ') as bb', ' a.rq = bb.rq','LEFT')
+            ->join('(' . $Bb1 . ')as bb1', 'a.rq = bb1.rq','LEFT')
+            ->join('(' . $CC . ') as cc', ' a.rq = cc.rq','LEFT')
+            ->join('(' . $CC1 . ')as cc1', 'a.rq = cc1.rq','LEFT')
+            ->join('(' . $EE . ') as ee', ' a.rq = ee.rq','LEFT')
+            ->join('(' . $EE1 . ')as ee1', 'a.rq = ee1.rq','LEFT')
+            ->join('(' . $HH . ') as hh', ' a.rq = hh.rq','LEFT')
+            ->join('(' . $HH1 . ')as hh1', 'a.rq = hh1.rq','LEFT')
+            ->group('rq')
+            ->buildSql();
+
+        $sql_final = Db::table($db . ' db')
+            ->field("
+                DATE_FORMAT(db.rq, '%Y-%m')   as rq,
+                ROUND(sum(db.总计册), 3)       as qmcs
+            ")
+            ->where("db.rq >= '{$this->qianstart_time()}'AND db.rq <= '{$this->end_time()}' ")
+            ->group("DATE_FORMAT(db.rq, '%Y-%m')")
+            ->select();
+        // 初始化数据
+        $i = 0;
+        $j = 0;
+        $k = 0;
+        $list['categories'] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
+
+        $currentYear = date("Y"); // 当前年份
+        $previousYear = (int)$currentYear - 1; // 去年
+        $previousTwoYear = (int)$currentYear - 2; // 前年
+
+        // 为三年的数据创建数组,初始值为0
+        $list['series'][0]['name'] = $previousTwoYear . '年'; // 前年
+        $list['series'][0]['data'] = array_fill(0, 12, 0); // 初始化为12个月的数据
+        $list['series'][1]['name'] = $previousYear . '年'; // 去年
+        $list['series'][1]['data'] = array_fill(0, 12, 0); // 初始化为12个月的数据
+        $list['series'][2]['name'] = $currentYear . '年'; // 今年
+        $list['series'][2]['data'] = array_fill(0, (int)date("m"), 0); // 初始化到当前月份的数据
+
+        // 遍历查询结果并填充数据
+        foreach ($sql_final as $v) {
+            // 获取年份和月份
+            $year = substr($v['rq'], 0, 4);
+            $month = substr($v['rq'], 5, 2);
+
+            // 如果是前年数据
+            if ($year == $previousTwoYear) {
+                $list['series'][0]['data'][(int)$month - 1] = $v['qmcs'];
+            }
+            // 如果是去年数据
+            if ($year == $previousYear) {
+                $list['series'][1]['data'][(int)$month - 1] = $v['qmcs'];
+            }
+            // 如果是今年数据
+            if ($year == $currentYear) {
+                $list['series'][2]['data'][(int)$month - 1] = $v['qmcs'];
+            }
+        }
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $list;
+        $redis->set($redis_key, json_encode($res));
+        return json_encode($res);
+    }
+    //骑马册数->接口调用
+    public function qmcs(){
+        $redis=redis();
+        $redis_key = md5('qmcs_redis');
+        $redis_data = $redis->get($redis_key);
+        return $redis_data;
+    }
+
+}

+ 1 - 1
application/api/controller/Index.php

@@ -641,7 +641,7 @@ class Index extends Api{
             ->field('icydid,sum(nyssl) as nyssl,sum(nysls) as nysls')
             ->group('icydid')
             ->buildSql();
-
+        
         $t5 = Db::table('mcyd')->alias('ord')
             ->field("DATE_FORMAT( dcyrq, '%Y-%m-%d' ) as rq,sum(objmatier.nyssl) as sl,sum(objmatier.nysls) as zl")
             ->join('(' . $objmatier . ') as objmatier', '  ord.icydid = objmatier.icydid','LEFT')

+ 1 - 36
public/assets/js/backend/general/profile.js

@@ -1,42 +1,7 @@
-define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'upload'], function ($, undefined, Backend, Table, Form, Upload) {
+define(['jquery', 'bootstrap', 'backend', 'form', 'upload'], function ($, undefined, Backend, Form, Upload) {
 
     var Controller = {
         index: function () {
-
-            // 初始化表格参数配置
-            Table.api.init({
-                search: true,
-                advancedSearch: true,
-                pagination: true,
-                extend: {
-                    "index_url": "general/profile/index",
-                    "add_url": "",
-                    "edit_url": "",
-                    "del_url": "",
-                    "multi_url": "",
-                }
-            });
-
-            var table = $("#table");
-
-            // 初始化表格
-            table.bootstrapTable({
-                url: $.fn.bootstrapTable.defaults.extend.index_url,
-                columns: [
-                    [
-                        {field: 'id', title: 'ID'},
-                        {field: 'title', title: __('Title')},
-                        {field: 'url', title: __('Url'), align: 'left', formatter: Table.api.formatter.url},
-                        {field: 'ip', title: __('ip'), formatter:Table.api.formatter.search},
-                        {field: 'createtime', title: __('Createtime'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},
-                    ]
-                ],
-                commonSearch: false
-            });
-
-            // 为表格绑定事件
-            Table.api.bindevent(table);//当内容渲染完成后
-
             // 给上传按钮添加上传成功事件
             $("#faupload-avatar").data("upload-success", function (data) {
                 var url = Backend.api.cdnurl(data.url);