Browse Source

各日统计,各日统计excel导出

曹鹤洋 1 năm trước cách đây
mục cha
commit
f0a87c2226
1 tập tin đã thay đổi với 577 bổ sung63 xóa
  1. 577 63
      application/api/controller/FinishedProductWarehousing.php

+ 577 - 63
application/api/controller/FinishedProductWarehousing.php

@@ -38,10 +38,14 @@ class FinishedProductWarehousing extends Api
             ->limit(50)
             ->select();
 
+        $num = db()->table('成品入仓')
+            ->where('sys_rq','>=',$rows[49]['date'])
+            ->count();
         $arr = db()->table('成品入仓')
             ->field('LEFT(sys_rq, 10) as date, rtrim(sys_id) as sys_id, COUNT(sys_id) as count')
             ->where('sys_rq','>=',$rows[49]['date'])
             ->group('date, sys_id')
+            ->limit($num)
             ->select();
 
         foreach($rows as $key=>$value){
@@ -69,11 +73,16 @@ class FinishedProductWarehousing extends Api
             $this->error('请求方式错误');
         }
 
+        $num = db()->table('成品入仓')->count();
         $rows = db()->table('成品入仓')
             ->field('jjcp_gdbh, rtrim(jjcp_cpdh) as jjcp_cpdh, LEFT(Sys_rq, 10) as Sys_rq')
             ->order('Sys_rq desc')
+            ->limit($num)
             ->select();
+
+        $num = db()->table('工单_基本资料')->count();
         $arr = db()->table('工单_基本资料')
+            ->limit($num)
             ->column('CONCAT(Gd_gdbh, "-", rtrim(Gd_cpdh)) AS gdcp, CONCAT(rtrim(Gd_khdh), " 【", rtrim(Gd_khmc)) AS kh');
 
         $data = [];
@@ -557,6 +566,119 @@ class FinishedProductWarehousing extends Api
 
     }
 
+    /**
+     * excel导出
+     * @ApiMethod (POST)
+     * @param string date
+     * @param string sys_id
+     * @param array fields
+     */
+    public function export(){
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+
+        if (!isset($req['date']) || empty($req['date'])) $this->error('参数缺失');
+
+        if (!(isset($req['fields']) && count($req['fields'])!=0)){
+            $this->error('参数错误','fields',100);
+        }
+
+        if(strpos($req['date'],'-')){
+            $where = ['c.Sys_rq'=>['like','%'.$req['date'].'%']];
+        }else{
+            $where = ['c.jjcp_gdbh'=>$req['date']];
+        }
+        if (isset($req['sys_id']) && !empty($req['sys_id'])){
+            $where['c.Sys_id'] = ['LIKE','%'.$req['sys_id'].'%'];
+        }
+
+        $arr = [
+            '入仓类型'      =>['入仓类型'],
+            '仓库编号'      =>['仓库编号'],
+            '仓库名称'      =>['仓库名称'],
+            'jjcp_num'     =>['入仓单号'],
+            'jjcp_gdbh'    =>['工单编号'],
+            'jjcp_yjno'    =>['印件号'],
+            'jjcp_sl'      =>['入仓数量'],
+            'jjcp_sls'     =>['累计入仓数量'],
+            '订单数量'      =>['订单数量'],
+            '完成率'        =>['完成率'],
+            'jjcp_dw'      =>['单位'],
+            'jjcp_sj'      =>['入仓时间'],
+            'jjcp_smb'     =>['首末板'],
+            'jjcp_cpdh'    =>['印件代号'],
+            'jjcp_cpmc'    =>['印件名称'],
+            '成品编码'      =>['产品编号'],
+            '成品名称'      =>['产品名称'],
+            '客户料号'      =>['客户料号'],
+            'jjcp_desc'    =>['备注'],
+            '客户编号'      =>['客户编号'],
+            'Gd_客户名称'   =>['客户名称'],
+            '最近入仓日期'  =>['最近入仓日期'],
+            '机型备注'      =>['机型备注'],
+        ];
+        $data[0] = [];
+        foreach ($req['fields'] as $k=>$v){
+            if(array_key_exists($v,$arr)){
+                array_push($data[0],$arr[$v][0]);
+            }
+        }
+
+        //客户编号
+        $rows = db()->table('成品入仓')->alias('c')
+            ->field('rtrim(c.入仓类型) as 入仓类型, rtrim(c.仓库编号) as 仓库编号, rtrim(c.仓库名称) as 仓库名称, 
+            rtrim(c.jjcp_num) as jjcp_num, c.jjcp_gdbh, 
+            c.jjcp_yjno, c.jjcp_sl, g.订单数量, rtrim(c.jjcp_dw) as jjcp_dw, LEFT(c.jjcp_sj, 10) as jjcp_sj, 
+            rtrim(c.jjcp_smb) as jjcp_smb, rtrim(c.jjcp_cpdh) as jjcp_cpdh, rtrim(c.jjcp_cpmc) as jjcp_cpmc, 
+            rtrim(c.成品编码) as 成品编码, rtrim(c.成品名称) as 成品名称, 
+            rtrim(c.客户料号) as 客户料号, rtrim(c.jjcp_desc) as jjcp_desc, LEFT(c.成品编码,4) as 客户编号, rtrim(g.Gd_客户名称) as Gd_客户名称, 
+            rtrim(c.机型备注) as 机型备注')
+            ->where($where)
+            ->where('g.Gd_cpdh=c.jjcp_cpdh')
+            ->join('工单_基本资料 g','g.Gd_gdbh=c.jjcp_gdbh')
+            ->order('c.UniqId desc')
+            ->select();
+
+        foreach ($rows as $key=>$value) {
+
+            $row = db()->table('成品入仓')
+                ->field('LEFT(Sys_rq, 10) as Sys_rq,jjcp_sl')
+                ->where(['jjcp_gdbh'=>$value['jjcp_gdbh'], 'jjcp_cpdh'=>$value['jjcp_cpdh']])
+                ->order('Sys_rq desc')
+                ->select();
+
+            $subArray = [];
+            foreach ($arr as $k=>$v){
+                if($k=='jjcp_sls'){
+                    $subArray[$k] = 0;
+                    foreach ($row as $n) {
+                        $subArray[$k] += $n['jjcp_sl'];
+                    }
+                }else if($k=='完成率'){
+                    if ($value['订单数量']!=0){
+                        $subArray[$k] = 0;
+                        foreach ($row as $n) {
+                            $subArray[$k] += $n['jjcp_sl'];
+                        }
+                        $subArray[$k] = number_format($subArray[$k]/$value['订单数量']/100,2);
+                    }else{
+                        $subArray[$k] = '';
+                    }
+                }else if($k=='最近入仓日期'){
+                    $subArray[$k] = $row[0]['Sys_rq'];
+                }else{
+                    $subArray[$k] = $rows[$key][$k];
+                }
+            }
+            array_push($data,$subArray);
+        }
+
+        $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
+    }
+
+
     /**
      * 月度A
      * @ApiMethod (POST)
@@ -609,7 +731,7 @@ class FinishedProductWarehousing extends Api
             c.jjcp_gdbh, rtrim(c.jjcp_cpdh) as jjcp_cpdh, rtrim(c.jjcp_cpmc) as jjcp_cpmc, 
             c.jjcp_sl, rtrim(c.jjcp_dw) as jjcp_dw, c.jjcp_sj, 
             rtrim(c.jjcp_smb) as jjcp_smb, 
-            rtrim(c.jjcp_num) as jjcp_num, rtrim(g.销售订单号) as 订单编号
+            rtrim(c.jjcp_num) as jjcp_num, rtrim(c.订单编号) as 订单编号
             ')
             ->where('c.jjcp_sj','between time',[$req['start_time'], $req['end_time']])
             ->order('c.jjcp_sj asc')
@@ -628,58 +750,230 @@ class FinishedProductWarehousing extends Api
         $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
     }
 
+
     /**
-     * 工序汇总导出
+     * 月度B
      * @ApiMethod (POST)
-     * @param string date
-     * @param string sys_id
+     * @param string start_time
+     * @param string end_time
+     * @param string file_name
      * @param array fields
      */
-    public function export(){
+    public function monthExportB(){
         if(!$this->request->isGet()){
             $this->error('请求方式错误');
         }
         $req = $this->request->param();
-
-        if (!isset($req['date']) || empty($req['date'])) $this->error('参数缺失');
-
+        $arr = [
+            'start_time', 'end_time', 'file_name'
+        ];
+        foreach ($arr as $key => $value){
+            if (!isset($req[$value])){
+                $this->error('参数错误',$value,$key+1);
+            }
+        }
         if (!(isset($req['fields']) && count($req['fields'])!=0)){
             $this->error('参数错误','fields',100);
         }
 
-        if(strpos($req['date'],'-')){
-            $where = ['c.Sys_rq'=>['like','%'.$req['date'].'%']];
-        }else{
-            $where = ['c.jjcp_gdbh'=>$req['date']];
+        $arr = [
+            '入仓类型'      =>['入仓类型'],
+            '客户编号'      =>['客户编号'],
+            '客户名称'      =>['客户名称'],
+            '产品类别'      =>['产品类别'],
+            'jjcp_gdbh'    =>['工单编号'],
+            '成品编码'      =>['成品编码'],
+            '成品名称'      =>['成品名称'],
+            'jjcp_sls'     =>['入仓数量'],
+            '大箱产量'      =>['大箱产量'],
+            '产品单价'      =>['万张单价'],
+            '产值万元'      =>['产值万元'],
+        ];
+        $data[0] = [];
+        foreach ($req['fields'] as $k=>$v){
+            if(array_key_exists($v,$arr)){
+                array_push($data[0],$arr[$v][0]);
+            }
         }
-        if (isset($req['sys_id']) && !empty($req['sys_id'])){
-            $where['c.Sys_id'] = ['LIKE','%'.$req['sys_id'].'%'];
+
+        $rows1 = db()->table('成品入仓')->alias('c')
+            ->field('rtrim(c.入仓类型) as 入仓类型, LEFT(c.成品编码,4) as 客户编号, rtrim(b.客户名称) as 客户名称,
+            rtrim(b.产品类别) as 产品类别, c.jjcp_gdbh,
+            rtrim(c.成品编码) as 成品编码, rtrim(c.成品名称) as 成品名称
+            ')
+            ->where('c.jjcp_sj','between time',[$req['start_time'], $req['end_time']])
+            ->order('客户编号 asc,b.产品类别 desc,c.成品编码 asc,c.jjcp_gdbh asc')
+            ->join('产品_基本资料 b','b.产品编号=c.jjcp_cpdh')
+            ->group('c.jjcp_gdbh')
+            ->select();
+
+        $rows2 = db()->table('成品入仓')
+            ->field('rtrim(入仓类型) as 入仓类型, rtrim(成品编码) as 客户编号, 
+            rtrim(成品编码) as 客户名称, rtrim(成品编码) as 产品类别,
+            jjcp_gdbh,rtrim(成品编码) as 成品编码, rtrim(成品名称) as 成品名称
+            ')
+            ->where('jjcp_sj','between time',[$req['start_time'], $req['end_time']])
+            ->where('成品编码','')
+            ->order('jjcp_gdbh asc')
+            ->group('jjcp_gdbh')
+            ->select();
+        $rows = array_merge($rows2,$rows1);
+
+        $num = db()->table('工单_基本资料')->count();
+        $arr1 = db()->table('工单_基本资料')->limit($num)
+            ->column('CONCAT(Gd_gdbh, "-", rtrim(Gd_cpdh)) AS gdcp, 产品单价 as 万张单价');
+
+        $brr = array_column($rows,'jjcp_gdbh');
+        $brr = db()->table('成品入仓')
+            ->where('jjcp_gdbh', 'in', $brr)
+            ->group('jjcp_gdbh')
+            ->column('jjcp_gdbh, sum(jjcp_sl)');
+
+        foreach ($rows as $key=>$value) {
+            $subArray = [];
+            foreach ($arr as $k=>$v){
+                if($k=='jjcp_sls'){
+                    $subArray[$k] = $brr[$value['jjcp_gdbh']];
+                }else if ($k=='大箱产量'){
+                    if($value['产品类别']=='条盒'){
+                        $subArray[$k] = $brr[$value['jjcp_gdbh']]/250;
+                    }else if($value['产品类别']=='小盒'){
+                        $subArray[$k] = $brr[$value['jjcp_gdbh']]/2500;
+                    }else{
+                        $subArray[$k] = 0;
+                    }
+                }else if ($k=='产品单价'){
+                    if($value['产品类别']!=''){
+                        if (array_key_exists($value['jjcp_gdbh'].'-'.$value['成品编码'],$arr1)){
+                            $subArray[$k] = floatval(number_format($arr1[$value['jjcp_gdbh'].'-'.$value['成品编码']],4));
+                        }
+                    }else{
+                        $subArray[$k] = 0;
+                    }
+                }else if ($k=='产值万元'){
+                    if($value['产品类别']!=''){
+                        if (array_key_exists($value['jjcp_gdbh'].'-'.$value['成品编码'],$arr1)){
+                            $subArray[$k] = floatval(number_format($arr1[$value['jjcp_gdbh'].'-'.$value['成品编码']]*$brr[$value['jjcp_gdbh']]/100000000,2));
+                        }
+                    }else{
+                        $subArray[$k] = 0;
+                    }
+                }else{
+                    $subArray[$k] = $rows[$key][$k];
+                }
+            }
+            array_push($data,$subArray);
+        }
+
+        $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
+    }
+
+
+    /**
+     * 各日统计列表
+     * @ApiMethod (GET)
+     * @param string $date 时间
+     * @param string $sys_id 用户
+     */
+    public function getDayList()
+    {
+        //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+
+        $page = 1;
+        $limit = 15;
+        if (isset($req['page']) && !empty($req['page'])) $page = $req['page'];
+        if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit'];
+
+        $where = [
+            'c.jjcp_smb'=>['<>',''],
+        ];
+        if (isset($req['key_word']) && !empty($req['key_word'])){
+            $where['c.jjcp_sj | c.jjcp_gdbh | c.jjcp_cpmc | c.jjcp_cpdh | g.实际投料'] = ['like','%'.$req['key_word'].'%'];
         }
 
+        //客户编号
+        $rows = db()->table('成品入仓')->alias('c')
+            ->field('LEFT(c.jjcp_sj, 10) as jjcp_sj, c.jjcp_gdbh, rtrim(c.jjcp_cpmc) as jjcp_cpmc, 
+            rtrim(c.jjcp_cpdh) as jjcp_cpdh, g.实际投料')
+            ->where($where)
+            ->where('g.Gd_cpdh=c.jjcp_cpdh')
+            ->join('工单_基本资料 g','g.Gd_gdbh=c.jjcp_gdbh')
+            ->order('c.jjcp_sj desc')
+            ->group('c.jjcp_gdbh, c.jjcp_cpdh')
+            ->page($page,$limit)
+            ->select();
+
+        $total = db()->table('成品入仓')->alias('c')
+            ->where($where)
+            ->where('g.Gd_cpdh=c.jjcp_cpdh')
+            ->join('工单_基本资料 g','g.Gd_gdbh=c.jjcp_gdbh')
+            ->group('c.jjcp_gdbh, c.jjcp_cpdh')
+            ->count();
+
+        $brr = db()->table('成品入仓')
+            ->group('jjcp_gdbh,jjcp_cpdh')
+            ->column('CONCAT(jjcp_gdbh, "-", rtrim(jjcp_cpdh)), sum(jjcp_sl)');
+
+        foreach ($rows as $key=>$value) {
+            $rows[$key]['实际投料'] = (string)floatval($value['实际投料']*10000);
+            if(array_key_exists($value['jjcp_gdbh'].'-'.$value['jjcp_cpdh'],$brr)){
+                $rows[$key]['入仓数量'] = $brr[$value['jjcp_gdbh'].'-'.$value['jjcp_cpdh']];
+                if($rows[$key]['实际投料']!=0){
+                    $rows[$key]['投入产出率'] = number_format($rows[$key]['入仓数量']/$rows[$key]['实际投料']*100,2);
+                }else{
+                    $rows[$key]['投入产出率'] = '';
+                }
+            }else{
+                $rows[$key]['入仓数量'] = '';
+                $rows[$key]['投入产出率'] = '';
+            }
+        }
+
+        $data = [
+            'total'          => $total,
+            'rows'          => $rows,
+        ];
+        $this->success('成功',$data);
+    }
+
+
+    /**
+     * 各日统计列表excel导出
+     * @ApiMethod (POST)
+     * @param string file_name
+     * @param array fields
+     */
+    public function dayExport()
+    {
+        //get请求
+        if(!$this->request->isPost()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+
+        if (!isset($req['file_name'])){
+            $this->error('参数错误','file_name');
+        }
+
+        if (!(isset($req['fields']) && count($req['fields'])!=0)){
+            $this->error('参数错误','fields',100);
+        }
+        if (isset($req['key_word']) && !empty($req['key_word'])){
+            $where['c.jjcp_sj | c.jjcp_gdbh | c.jjcp_cpmc | c.jjcp_cpdh | g.实际投料'] = ['like','%'.$req['key_word'].'%'];
+        }
         $arr = [
-            '入仓类型'      =>['入仓类型'],
-            '仓库编号'      =>['仓库编号'],
-            '仓库名称'      =>['仓库名称'],
-            'jjcp_num'     =>['入仓单号'],
-            'jjcp_gdbh'    =>['工单编号'],
-            'jjcp_yjno'    =>['印件号'],
-            'jjcp_sl'      =>['入仓数量'],
-            'jjcp_sls'     =>['累计入仓数量'],
-            '订单数量'      =>['订单数量'],
-            '完成率'        =>['完成率'],
-            'jjcp_dw'      =>['单位'],
-            'jjcp_sj'      =>['入仓时间'],
-            'jjcp_smb'     =>['首末板'],
-            'jjcp_cpdh'    =>['印件代号'],
+            'jjcp_gdbh'    =>['jjcp_gdbh'],
+            'jjcp_yjno'    =>['jjcp_yjno'],
             'jjcp_cpmc'    =>['印件名称'],
-            '成品编码'      =>['产品编号'],
-            '成品名称'      =>['产品名称'],
-            '客户料号'      =>['客户料号'],
-            'jjcp_desc'    =>['备注'],
-            '客户编号'      =>['客户编号'],
-            'Gd_客户名称'   =>['客户名称'],
-            '最近入仓日期'  =>['最近入仓日期'],
-            '机型备注'      =>['机型备注'],
+            '成品编码'      =>['成品编码'],
+            '成品名称'      =>['成品名称'],
+            '实际投料'      =>['实际投料'],
+            'jjcp_sls'     =>['入仓数量'],
+            'jjcp_sj'      =>['完工日期'],
         ];
         $data[0] = [];
         foreach ($req['fields'] as $k=>$v){
@@ -688,48 +982,268 @@ class FinishedProductWarehousing extends Api
             }
         }
 
+        $where = [
+            'c.jjcp_smb'=>['<>','']
+        ];
+
         //客户编号
         $rows = db()->table('成品入仓')->alias('c')
-            ->field('rtrim(c.入仓类型) as 入仓类型, rtrim(c.仓库编号) as 仓库编号, rtrim(c.仓库名称) as 仓库名称, 
-            rtrim(c.jjcp_num) as jjcp_num, c.jjcp_gdbh, 
-            c.jjcp_yjno, c.jjcp_sl, g.订单数量, rtrim(c.jjcp_dw) as jjcp_dw, LEFT(c.jjcp_sj, 10) as jjcp_sj, 
-            rtrim(c.jjcp_smb) as jjcp_smb, rtrim(c.jjcp_cpdh) as jjcp_cpdh, rtrim(c.jjcp_cpmc) as jjcp_cpmc, 
-            rtrim(c.成品编码) as 成品编码, rtrim(c.成品名称) as 成品名称, 
-            rtrim(c.客户料号) as 客户料号, rtrim(c.jjcp_desc) as jjcp_desc, LEFT(c.成品编码,4) as 客户编号, rtrim(g.Gd_客户名称) as Gd_客户名称, 
-            rtrim(c.机型备注) as 机型备注')
+            ->field('c.jjcp_gdbh, c.jjcp_yjno, rtrim(c.jjcp_cpmc) as jjcp_cpmc, rtrim(c.jjcp_cpdh) as jjcp_cpdh, 
+            rtrim(c.成品编码) as 成品编码, rtrim(c.成品名称) as 成品名称, sum(jjcp_sl) as jjcp_sls, 
+            g.实际投料, LEFT(c.jjcp_sj, 10) as jjcp_sj
+            ')
             ->where($where)
             ->where('g.Gd_cpdh=c.jjcp_cpdh')
             ->join('工单_基本资料 g','g.Gd_gdbh=c.jjcp_gdbh')
-            ->order('c.UniqId desc')
+            ->order('c.jjcp_sj desc')
+            ->group('c.jjcp_gdbh, c.jjcp_cpdh')
             ->select();
 
         foreach ($rows as $key=>$value) {
+            $subArray = [];
+            foreach ($arr as $k=>$v){
+                if($k=='实际投料'){
+                    $subArray[$k] = (string)floatval($value['实际投料']*10000);
+                }else{
+                    $subArray[$k] = $rows[$key][$k];
+                }
+            }
+            array_push($data,$subArray);
+        }
 
-            $row = db()->table('成品入仓')
-                ->field('LEFT(Sys_rq, 10) as Sys_rq,jjcp_sl')
-                ->where(['jjcp_gdbh'=>$value['jjcp_gdbh'], 'jjcp_cpdh'=>$value['jjcp_cpdh']])
-                ->order('Sys_rq desc')
-                ->select();
+        $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
+    }
+
+    /**
+     * 入仓末板数据统计列表
+     * @ApiMethod (GET)
+     * @param string $date 时间
+     * @param string $sys_id 用户
+     */
+    public function mbList()
+    {
+        //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
 
+        $page = 1;
+        $limit = 15;
+        if (isset($req['page']) && !empty($req['page'])) $page = $req['page'];
+        if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit'];
+
+        $where = [
+
+        ];
+
+        $rows = db()->table('成品入仓')->alias('c')
+            ->field('c.jjcp_gdbh, c.jjcp_yjno, rtrim(c.jjcp_cpmc) as jjcp_cpmc,
+            y.yj_成品数量, y.yj_实际投料, rtrim(c.jjcp_cpdh) as jjcp_cpdh, rtrim(c.jjcp_smb) as jjcp_smb,
+            sum(c.jjcp_sl) as jjcp_sls, left(max(c.Sys_rq),10) as Sys_rq')
+            ->where($where)
+            ->where('y.yj_Yjdh=c.jjcp_cpdh')
+            ->join('工单_印件资料 y','y.Yj_Gdbh=c.jjcp_gdbh')
+            ->order('c.jjcp_gdbh desc, c.jjcp_yjno asc')
+            ->group('c.jjcp_gdbh, c.jjcp_cpdh')
+            ->page($page,$limit)
+            ->select();
+
+        $total = db()->table('成品入仓')->alias('c')
+            ->where($where)
+            ->where('y.yj_Yjdh=c.jjcp_cpdh')
+            ->join('工单_印件资料 y','y.Yj_Gdbh=c.jjcp_gdbh')
+            ->group('c.jjcp_gdbh, c.jjcp_cpdh')
+            ->count();
+        $brr = db()->table('成品入仓')
+            ->group('jjcp_gdbh,jjcp_cpdh')
+            ->column('CONCAT(jjcp_gdbh, "-", rtrim(jjcp_cpdh)), sum(jjcp_sl)');
+
+        $num = db()->table('db_包装产量预报')->count();
+        $arr1 = db()->table('db_包装产量预报')
+            ->field('sczl_gdbh1, sczl_gdbh2, sczl_gdbh3, sczl_gdbh4, sczl_gdbh5, sczl_gdbh6, 
+            substr(sczl_yjGx1,2,1) as sczl_yjGx1, substr(sczl_yjGx2,2,1) as sczl_yjGx2, 
+            substr(sczl_yjGx3,2,1) as sczl_yjGx3, substr(sczl_yjGx4,2,1) as sczl_yjGx4, 
+            substr(sczl_yjGx5,2,1) as sczl_yjGx5, substr(sczl_yjGx6,2,1) as sczl_yjGx6, 
+            (sczl_cl1*sczl_PgCl1+sczl_clAdd1) as sczl_cls1, 
+            (sczl_cl2*sczl_PgCl2+sczl_clAdd2) as sczl_cls2, 
+            (sczl_cl3*sczl_PgCl3+sczl_clAdd3) as sczl_cls3, 
+            (sczl_cl4*sczl_PgCl4+sczl_clAdd4) as sczl_cls4, 
+            (sczl_cl5*sczl_PgCl5+sczl_clAdd5) as sczl_cls5, 
+            (sczl_cl6*sczl_PgCl6+sczl_clAdd6) as sczl_cls6
+            ')
+            ->limit($num)
+            ->select();
+
+        $data1 = [];
+        foreach ($arr1 as $k=>$v){
+            for ($i=1;$i<=6;$i++){
+                if(array_key_exists($v['sczl_gdbh'.$i].'-'.$v['sczl_yjGx'.$i],$data1)){
+                    $data1[$v['sczl_gdbh'.$i].'-'.$v['sczl_yjGx'.$i]] += $v['sczl_cls'.$i];
+                }else{
+                    $data1[$v['sczl_gdbh'.$i].'-'.$v['sczl_yjGx'.$i]] = $v['sczl_cls'.$i];
+                }
+            }
+        }
+
+        foreach ($rows as $key=>$value) {
+            $rows[$key]['yj_成品数量'] = (string)floatval($value['yj_成品数量']*10000);
+            $rows[$key]['yj_实际投料'] = (string)floatval($value['yj_实际投料']*10000);
+            if(array_key_exists($value['jjcp_gdbh'].'-'.$value['jjcp_yjno'],$data1)){
+                $rows[$key]['包装产量'] = $data1[$value['jjcp_gdbh'].'-'.$value['jjcp_yjno']];
+            }else{
+                $rows[$key]['包装产量'] = '';
+            }
+            if(array_key_exists($value['jjcp_gdbh'].'-'.$value['jjcp_cpdh'],$brr)){
+                $rows[$key]['入仓数量'] = $brr[$value['jjcp_gdbh'].'-'.$value['jjcp_cpdh']];
+            }else{
+                $rows[$key]['入仓数量'] = '';
+            }
+            if($value['jjcp_smb'] !=''){
+                $rows[$key]['状态'] = '完工';
+                $rows[$key]['缺数'] = (int)$rows[$key]['yj_成品数量']-(int)$rows[$key]['包装产量'];
+            }else{
+                $rows[$key]['状态'] = '';
+                $rows[$key]['缺数'] = '';
+            }
+        }
+
+        $data = [
+            'total'          => $total,
+            'rows'          => $rows,
+        ];
+        $this->success('成功',$data);
+    }
+
+    /**
+     * 入仓末板数据统计列表excel导出
+     * @ApiMethod (POST)
+     * @param string file_name
+     * @param array fields
+     */
+    public function mbExport()
+    {
+        //get请求
+        if(!$this->request->isPost()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+
+        if (!isset($req['file_name'])){
+            $this->error('参数错误','file_name');
+        }
+
+        if (!(isset($req['fields']) && count($req['fields'])!=0)){
+            $this->error('参数错误','fields',100);
+        }
+        if (isset($req['key_word']) && !empty($req['key_word'])){
+            $where['c.jjcp_sj | c.jjcp_gdbh | c.jjcp_cpmc | c.jjcp_cpdh | g.实际投料'] = ['like','%'.$req['key_word'].'%'];
+        }
+        $arr = [
+            'jjcp_gdbh'    =>['jjcp_gdbh'],
+            'jjcp_yjno'    =>['jjcp_yjno'],
+            'jjcp_cpmc'    =>['印件名称'],
+            'yj_成品数量'   =>['计划交货数量'],
+            'yj_实际投料'   =>['印件投料'],
+            'sczl_cls'     =>['包装产量'],
+            'Sys_rq'       =>['最近入仓时间'],
+            'jjcp_sls'     =>['入仓数量'],
+            'status'       =>['完工'],
+            '缺数'         =>['缺数'],
+        ];
+        $data[0] = [];
+        foreach ($req['fields'] as $k=>$v){
+            if(array_key_exists($v,$arr)){
+                array_push($data[0],$arr[$v][0]);
+            }
+        }
+
+        $where = [
+            'c.jjcp_smb'=>['<>','']
+        ];
+
+        $rows = db()->table('成品入仓')->alias('c')
+            ->field('c.jjcp_gdbh, c.jjcp_yjno, rtrim(c.jjcp_cpmc) as jjcp_cpmc,
+            y.yj_成品数量, y.yj_实际投料, rtrim(c.jjcp_cpdh) as jjcp_cpdh, rtrim(c.jjcp_smb) as jjcp_smb,
+            sum(c.jjcp_sl) as jjcp_sls, left(max(c.Sys_rq),10) as Sys_rq')
+            ->where($where)
+            ->where('y.yj_Yjdh=c.jjcp_cpdh')
+            ->join('工单_印件资料 y','y.Yj_Gdbh=c.jjcp_gdbh')
+            ->order('c.jjcp_gdbh desc, c.jjcp_yjno asc')
+            ->group('c.jjcp_gdbh, c.jjcp_cpdh')
+            ->select();
+
+        $brr = db()->table('成品入仓')
+            ->group('jjcp_gdbh,jjcp_cpdh')
+            ->column('CONCAT(jjcp_gdbh, "-", rtrim(jjcp_cpdh)), sum(jjcp_sl)');
+
+        $num = db()->table('db_包装产量预报')->count();
+        $arr1 = db()->table('db_包装产量预报')
+            ->field('sczl_gdbh1, sczl_gdbh2, sczl_gdbh3, sczl_gdbh4, sczl_gdbh5, sczl_gdbh6, 
+            substr(sczl_yjGx1,2,1) as sczl_yjGx1, substr(sczl_yjGx2,2,1) as sczl_yjGx2, 
+            substr(sczl_yjGx3,2,1) as sczl_yjGx3, substr(sczl_yjGx4,2,1) as sczl_yjGx4, 
+            substr(sczl_yjGx5,2,1) as sczl_yjGx5, substr(sczl_yjGx6,2,1) as sczl_yjGx6, 
+            (sczl_cl1*sczl_PgCl1+sczl_clAdd1) as sczl_cls1, 
+            (sczl_cl2*sczl_PgCl2+sczl_clAdd2) as sczl_cls2, 
+            (sczl_cl3*sczl_PgCl3+sczl_clAdd3) as sczl_cls3, 
+            (sczl_cl4*sczl_PgCl4+sczl_clAdd4) as sczl_cls4, 
+            (sczl_cl5*sczl_PgCl5+sczl_clAdd5) as sczl_cls5, 
+            (sczl_cl6*sczl_PgCl6+sczl_clAdd6) as sczl_cls6
+            ')
+            ->limit($num)
+            ->select();
+
+        $data1 = [];
+        foreach ($arr1 as $k=>$v){
+            for ($i=1;$i<=6;$i++){
+                if(array_key_exists($v['sczl_gdbh'.$i].'-'.$v['sczl_yjGx'.$i],$data1)){
+                    $data1[$v['sczl_gdbh'.$i].'-'.$v['sczl_yjGx'.$i]] += $v['sczl_cls'.$i];
+                }else{
+                    $data1[$v['sczl_gdbh'.$i].'-'.$v['sczl_yjGx'.$i]] = $v['sczl_cls'.$i];
+                }
+            }
+        }
+
+        foreach ($rows as $key=>$value) {
+            if(array_key_exists($value['jjcp_gdbh'].'-'.$value['jjcp_yjno'],$data1)){
+                $rows[$key]['包装产量'] = $data1[$value['jjcp_gdbh'].'-'.$value['jjcp_yjno']];
+            }else{
+                $rows[$key]['包装产量'] = '';
+            }
+            if(array_key_exists($value['jjcp_gdbh'].'-'.$value['jjcp_cpdh'],$brr)){
+                $rows[$key]['入仓数量'] = $brr[$value['jjcp_gdbh'].'-'.$value['jjcp_cpdh']];
+            }else{
+                $rows[$key]['入仓数量'] = '';
+            }
+            if($value['jjcp_smb'] !=''){
+                $rows[$key]['状态'] = '完工';
+                $rows[$key]['缺数'] = (int)$rows[$key]['yj_成品数量']-(int)$rows[$key]['包装产量'];
+            }else{
+                $rows[$key]['状态'] = '';
+                $rows[$key]['缺数'] = '';
+            }
             $subArray = [];
             foreach ($arr as $k=>$v){
-                if($k=='jjcp_sls'){
-                    $subArray[$k] = 0;
-                    foreach ($row as $n) {
-                        $subArray[$k] += $n['jjcp_sl'];
+                if($k=='yj_成品数量' || $k=='yj_实际投料'){
+                    $subArray[$k] = (string)floatval($value['实际投料']*10000);
+                }else if($k=='sczl_cls'){
+                    if(array_key_exists($value['jjcp_gdbh'].'-'.$value['jjcp_yjno'],$data1)){
+                        $rows[$key]['包装产量'] = $data1[$value['jjcp_gdbh'].'-'.$value['jjcp_yjno']];
+                    }else{
+                        $rows[$key]['包装产量'] = '';
                     }
-                }else if($k=='完成率'){
-                    if ($value['订单数量']!=0){
-                        $subArray[$k] = 0;
-                        foreach ($row as $n) {
-                            $subArray[$k] += $n['jjcp_sl'];
-                        }
-                        $subArray[$k] = number_format($subArray[$k]/$value['订单数量']/100,2);
+                }else if($k=='status'){
+                    if($value['jjcp_smb'] !=''){
+                        $rows[$key]['状态'] = '完工';
                     }else{
-                        $subArray[$k] = '';
+                        $rows[$key]['状态'] = '';
+                    }
+                }else if($k=='缺数'){
+                    if($value['jjcp_smb'] !=''){
+                        $rows[$key]['缺数'] = (int)$rows[$key]['yj_成品数量']-(int)$rows[$key]['包装产量'];
+                    }else{
+                        $rows[$key]['缺数'] = '';
                     }
-                }else if($k=='最近入仓日期'){
-                    $subArray[$k] = $row[0]['Sys_rq'];
                 }else{
                     $subArray[$k] = $rows[$key][$k];
                 }