浏览代码

获取定额代号以及机台号接口优化, 机检excel导出,手检excel导出,月度导出

曹鹤洋 1 年之前
父节点
当前提交
92fb9f99d5
共有 2 个文件被更改,包括 359 次插入15 次删除
  1. 326 6
      application/api/controller/Inspect.php
  2. 33 9
      application/api/controller/PackagingCountDocument.php

+ 326 - 6
application/api/controller/Inspect.php

@@ -271,7 +271,6 @@ class Inspect extends Api
             $option['sys_id'] = ['LIKE','%'.$req['sys_id'].'%'];
         }
 
-        $where['a.sczl_单据类型'] = '初检单';
         $field = 'a.sczl_gdbh,trim(a.sczl_yjgx) as sczl_yjgx,rtrim(a.sczl_gxmc) as sczl_gxmc,a.sczl_jtbh,a.sczl_bzdh,DATE(a.sczl_rq) as sczl_rq,a.sczl_cl,rtrim(a.sczl_单据类型) as sczl_单据类型,
         a.sczl_设备运行工时,a.sczl_dedh,a.sczl_废品率系数,rtrim(a.sczl_检验类别) as sczl_检验类别,a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.qczl_NumDesc,rtrim(a.sys_id) as sys_id,
         a.sys_rq,a.mod_rq,a.UniqId,b.千件工价,b.日定额,rtrim(c1.员工姓名) as sczl_bh1_name,rtrim(c2.员工姓名) as sczl_bh2_name,rtrim(c3.员工姓名) as sczl_bh3_name,
@@ -285,8 +284,7 @@ class Inspect extends Api
             ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
             ->where($where)
             ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_yjno')
-            ->field($field)->limit($limit)->page($pages)->order('a.sczl_rq asc,a.UniqId desc')->select();
-        $option['sczl_单据类型'] = '初检单';
+            ->field($field)->limit($limit)->page($pages)->order('a.UniqId desc')->select();
         $count = Db::name('db_机器检验')->where($option)->count();
 
         $data['data'] = $list;
@@ -705,7 +703,9 @@ class Inspect extends Api
             ->find();
         $rows = db()->table('dic_lzde')
             ->field('sys_bh, rtrim(sys_mc) as sys_mc')
-            ->where('Parent',$row['Key_'])
+//            ->where('Parent',$row['Key_'])
+            ->where('sys_bh','like',$row['sys_bh'].'%')
+            ->where('sys_bh','<>',$row['sys_bh'])
             ->select();
         $row['bh_mc'] = $rows;
 
@@ -734,7 +734,9 @@ class Inspect extends Api
             ->find();
         $rows = db()->table('dic_lzde')
             ->field('sys_bh, rtrim(sys_mc) as sys_mc')
-            ->where('Parent',$row['Key_'])
+//            ->where('Parent',$row['Key_'])
+            ->where('sys_bh','like',$row['sys_bh'].'%')
+            ->where('sys_bh','<>',$row['sys_bh'])
             ->select();
         $row['bh_mc'] = $rows;
 
@@ -826,7 +828,8 @@ class Inspect extends Api
             ->find();
         $rows = db()->table('dic_lzde')->alias('d')
             ->field('rtrim(s.设备编号) as jtbh, rtrim(s.设备名称) as jtmc')
-            ->where('Parent',$row['Key_'])
+//            ->where('Parent',$row['Key_'])
+            ->where('d.适用机型','like','JP%')
             ->join(['设备_基本资料'=>'s'],'d.适用机型=s.设备编号')
             ->select();
 
@@ -1114,4 +1117,321 @@ class Inspect extends Api
         $this->success('成功');
 
     }
+
+    /**
+     * 工序汇总导出
+     * @ApiMethod (GET)
+     * @param string date
+     * @param string sys_id
+     * @param array fields
+     */
+    public function export(){
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+
+        $where = [];
+        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 = ['a.sys_rq'=>['like','%'.$req['date'].'%']];
+        }else{
+            $where = ['a.sczl_gdbh'=>$req['date']];
+        }
+        if (isset($req['sys_id']) && !empty($req['sys_id'])){
+            $where['a.sys_id'] = ['LIKE','%'.$req['sys_id'].'%'];
+        }
+
+
+        $field = '';
+        $arr = [
+            'sczl_gdyj'         =>['工单印件','CONCAT(a.sczl_gdbh, "--", rtrim(d.yj_yjmc)) as sczl_gdyj'],
+            'sczl_yjgx'         =>['印件工序','CONCAT(rtrim(a.sczl_yjgx), " -", rtrim(a.sczl_gxmc)) as sczl_yjgx'],
+            'sczl_rq'           =>['日期','LEFT(a.sczl_rq, 10) as sczl_rq'],
+            'sczl_cl'           =>['计件产量','a.sczl_cl'],
+            '千件工价'           =>['千件工价','b.千件工价'],
+            'sczl_检验类别'      =>['检验类别','rtrim(a.sczl_检验类别) as sczl_检验类别'],
+            'sczl_废品率系数'    =>['废品率系数','a.sczl_废品率系数'],
+            '日定额'             =>['日定额','b.日定额'],
+            'sczl_bh0'          =>['组长编号','a.sczl_bh0'],
+            'name'              =>['组长姓名','rtrim(c.员工姓名) as name'],
+            'qczl_NumDesc'      =>['流程单备注','a.qczl_NumDesc'],
+        ];
+        $data[0] = [];
+        foreach ($req['fields'] as $k=>$v){
+            if(array_key_exists($v,$arr)){
+                if ($k==0){
+                    $field .= $arr[$v][1];
+                }else{
+                    $field .= ','.$arr[$v][1];
+                }
+                array_push($data[0],$arr[$v][0]);
+            }
+        }
+
+        $rows = Db::name('db_手工检验')->alias('a')
+            ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
+            ->join('人事_基本资料 c','a.sczl_bh0 = c.员工编号','left')
+            ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
+            ->where($where)
+            ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_yjno')
+            ->field($field)->order('a.sczl_rq,a.UniqId asc')->select();
+
+        foreach ($rows as $key=>$value) {
+            if (isset($value['sczl_cl'])) $value['sczl_cl'] = floatval($value['sczl_cl']);
+            if (isset($value['千件工价'])) $value['千件工价'] = floatval($value['千件工价']);
+            $subArray = [];
+            foreach ($req['fields'] as $k=>$v){
+                if(array_key_exists($v,$arr)){
+                    if($value[$v]){
+                        array_push($subArray,$value[$v]);
+                    }else{
+                        array_push($subArray,'');
+                    }
+                }
+            }
+            array_push($data,$subArray);
+        }
+        $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
+    }
+
+    /**
+     * 工序汇总导出
+     * @ApiMethod (GET)
+     * @param string file_name
+     * @param string date
+     * @param string sys_id
+     * @param array fields
+     */
+    public function machineExport(){
+        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 = ['a.sys_rq'=>['like','%'.$req['date'].'%']];
+        }else{
+            $where = ['a.sczl_gdbh'=>$req['date']];
+        }
+        if (isset($req['sys_id']) && !empty($req['sys_id'])){
+            $where['a.sys_id'] = ['LIKE','%'.$req['sys_id'].'%'];
+        }
+
+
+        $field = '';
+        $arr = [
+            'sczl_单据类型'      =>['分类','rtrim(a.sczl_单据类型) as sczl_单据类型'],
+            'sczl_gdyj'         =>['工单印件','CONCAT(a.sczl_gdbh, "--", rtrim(d.yj_yjmc)) as sczl_gdyj'],
+            'sczl_yjgx'         =>['印件工序','CONCAT(rtrim(a.sczl_yjgx), " -", rtrim(a.sczl_gxmc)) as sczl_yjgx'],
+            'sczl_jtbh'         =>['机台编号','a.sczl_jtbh'],
+            'sczl_rq'           =>['日期','LEFT(a.sczl_rq, 10) as sczl_rq'],
+            'sczl_cl'           =>['计件产量','a.sczl_cl'],
+            'sczl_检验类别'      =>['检验类别','rtrim(a.sczl_检验类别) as sczl_检验类别'],
+            'sczl_废品率系数'    =>['废品率系数','a.sczl_废品率系数'],
+            '日定额'             =>['日定额','b.日定额'],
+            'sczl_bh1'          =>['员工姓名1','rtrim(c1.员工姓名) as sczl_bh1'],
+            'sczl_bh2'          =>['员工姓名2','rtrim(c2.员工姓名) as sczl_bh2'],
+            'sczl_bh3'          =>['员工姓名3','rtrim(c3.员工姓名) as sczl_bh3'],
+            'sczl_bh4'          =>['员工姓名4','rtrim(c4.员工姓名) as sczl_bh4'],
+            'sczl_bzdh'         =>['班组代号','a.sczl_bzdh'],
+            '千件工价'           =>['千件工价','b.千件工价'],
+            'sczl_设备运行工时'  =>['通电工时','a.sczl_设备运行工时'],
+            'qczl_NumDesc'      =>['流程单备注','a.qczl_NumDesc'],
+        ];
+        $data[0] = [];
+        foreach ($req['fields'] as $k=>$v){
+            if(array_key_exists($v,$arr)){
+                if ($k==0){
+                    $field .= $arr[$v][1];
+                }else{
+                    $field .= ','.$arr[$v][1];
+                }
+                array_push($data[0],$arr[$v][0]);
+            }
+        }
+
+        $rows = Db::name('db_机器检验')->alias('a')
+            ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
+            ->join('人事_基本资料 c1','a.sczl_bh1 = c1.员工编号','left')
+            ->join('人事_基本资料 c2','a.sczl_bh2 = c2.员工编号','left')
+            ->join('人事_基本资料 c3','a.sczl_bh3 = c3.员工编号','left')
+            ->join('人事_基本资料 c4','a.sczl_bh4 = c4.员工编号','left')
+            ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
+            ->where($where)
+            ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_yjno')
+            ->field($field)->order('a.UniqId desc')->select();
+
+        foreach ($rows as $key=>$value) {
+            if (isset($value['sczl_cl'])) $value['sczl_cl'] = floatval($value['sczl_cl']);
+            if (isset($value['千件工价'])) $value['千件工价'] = floatval($value['千件工价']);
+            if (isset($value['sczl_设备运行工时'])) $value['sczl_设备运行工时'] = floatval($value['sczl_设备运行工时']);
+            $subArray = [];
+            foreach ($req['fields'] as $k=>$v){
+                if(array_key_exists($v,$arr)){
+                    if($value[$v]){
+                        array_push($subArray,$value[$v]);
+                    }else{
+                        array_push($subArray,'');
+                    }
+                }
+            }
+            array_push($data,$subArray);
+        }
+        $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
+    }
+
+    /**
+     * 月度汇总导出
+     * @ApiMethod (GET)
+     * @param string month
+     * @param string file_name
+     * @param array fields
+     */
+    public function monthExport(){
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+
+        if (isset($req['date']) && !empty($req['date'])){
+            $where = ['a.sczl_rq'=>['like','%'.$req['date'].'%']];
+        }else{
+            $this->error('参数缺失');
+        }
+
+        if (!(isset($req['fields']) && count($req['fields'])!=0)){
+            $this->error('参数错误','fields',100);
+        }
+
+
+        $field = '';
+        $arr = [
+            'sczl_rq'           =>['日期','LEFT(a.sczl_rq, 10) as sczl_rq'],
+            'sczl_gdbh'         =>['工单编号','a.sczl_gdbh'],
+            'sczl_gdyj'         =>['工单印件','rtrim(d.yj_yjmc) as sczl_gdyj'],
+            'sczl_yjgx'         =>['印件工序','CONCAT(rtrim(a.sczl_yjgx), " -", rtrim(a.sczl_gxmc)) as sczl_yjgx'],
+            'sczl_cl'           =>['计件产量','sum(a.sczl_cl) as sczl_cl'],
+        ];
+        $data[0] = [];
+        foreach ($req['fields'] as $k=>$v){
+            if(array_key_exists($v,$arr)){
+                if ($k==0){
+                    $field .= $arr[$v][1];
+                }else{
+                    $field .= ','.$arr[$v][1];
+                }
+                array_push($data[0],$arr[$v][0]);
+            }
+        }
+
+        $rows = db()->table('db_手工检验')->alias('a')
+            ->field($field)
+            ->where($where)
+            ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_yjno')
+            ->join('工单_印件资料 d', 'a.sczl_gdbh = d.Yj_Gdbh', 'left')
+            ->group('a.sczl_gdbh, d.yj_yjmc, a.sczl_yjgx')
+            ->order('a.sczl_gdbh asc')
+            ->select();
+
+        foreach ($rows as $key=>$value) {
+            if (isset($value['sczl_cl'])) $value['sczl_cl'] = floatval($value['sczl_cl']);
+            $subArray = [];
+            foreach ($req['fields'] as $k=>$v){
+                if(array_key_exists($v,$arr)){
+                    if($value[$v]){
+                        array_push($subArray,$value[$v]);
+                    }else{
+                        array_push($subArray,'');
+                    }
+                }
+            }
+            array_push($data,$subArray);
+        }
+        $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
+    }
+
+    /**
+     * 手检流程单统计导出
+     * @ApiMethod (GET)
+     * @param string start_time
+     * @param string end_time
+     * @param string file_name
+     * @param array fields
+     */
+    public function handInspectExport(){
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+
+        $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);
+        }
+
+
+        $field = '';
+        $arr = [
+            'sczl_gdbh'         =>['工单编号','a.sczl_gdbh'],
+            'sczl_yjgx'         =>['印件工序','CONCAT(rtrim(a.sczl_yjgx), " -", rtrim(a.sczl_gxmc)) as sczl_yjgx'],
+            'sczl_rq'           =>['日期','LEFT(a.sczl_rq, 10) as sczl_rq'],
+
+            'sczl_gdyj'         =>['工单印件','rtrim(d.yj_yjmc) as sczl_gdyj'],
+            'sczl_cl'           =>['计件产量','sum(a.sczl_cl) as sczl_cl'],
+        ];
+        $data[0] = [];
+        foreach ($req['fields'] as $k=>$v){
+            if(array_key_exists($v,$arr)){
+                if ($k==0){
+                    $field .= $arr[$v][1];
+                }else{
+                    $field .= ','.$arr[$v][1];
+                }
+                array_push($data[0],$arr[$v][0]);
+            }
+        }
+
+        $rows = db()->table('db_手工检验')->alias('a')
+            ->field($field)
+            ->where('a.sczl_rq',['>=',$req['start_time']],['<=',$req['end_time']],'and')
+            ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_yjno')
+            ->join('工单_印件资料 d', 'a.sczl_gdbh = d.Yj_Gdbh', 'left')
+            ->group('a.sczl_gdbh, d.yj_yjmc, a.sczl_yjgx')
+            ->order('a.sczl_gdbh asc')
+            ->select();
+
+        foreach ($rows as $key=>$value) {
+            if (isset($value['sczl_cl'])) $value['sczl_cl'] = floatval($value['sczl_cl']);
+            $subArray = [];
+            foreach ($req['fields'] as $k=>$v){
+                if(array_key_exists($v,$arr)){
+                    if($value[$v]){
+                        array_push($subArray,$value[$v]);
+                    }else{
+                        array_push($subArray,'');
+                    }
+                }
+            }
+            array_push($data,$subArray);
+        }
+        $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
+    }
 }

+ 33 - 9
application/api/controller/PackagingCountDocument.php

@@ -520,15 +520,31 @@ class PackagingCountDocument extends Api
                 foreach ($req['fields'] as $k=>$v){
                     if(array_key_exists($v,$arr)){
                         if($v=='sczl_rq' || $v=='sczl_jsss' || $v=='sczl_bh'){
-                            array_push($subArray,$value[$v]);
+                            if($value[$v]){
+                                array_push($subArray,$value[$v]);
+                            }else{
+                                array_push($subArray,'');
+                            }
                         }else if($v=='sczl_name'){
                             $name = array_key_exists($value['sczl_bh'],$rs) ? trim($rs[$value['sczl_bh']]) : '';
-                            array_push($subArray,$name);
+                            if($name){
+                                array_push($subArray,$name);
+                            }else{
+                                array_push($subArray,'');
+                            }
                         }else if($v=='sczl_yjmc'){
                             $cpmc = array_key_exists($value['sczl_gdbh'.$i],$gd) ? trim($gd[$value['sczl_gdbh'.$i]]) : '';
-                            array_push($subArray,$cpmc);
+                            if($cpmc){
+                                array_push($subArray,$cpmc);
+                            }else{
+                                array_push($subArray,'');
+                            }
                         }else{
-                            array_push($subArray,$value[$v.$i]);
+                            if($value[$v.$i]){
+                                array_push($subArray,$value[$v.$i]);
+                            }else{
+                                array_push($subArray,'');
+                            }
                         }
                     }
                 }
@@ -593,17 +609,25 @@ class PackagingCountDocument extends Api
 
         $rs = db()->table('人事_基本资料')->column('员工编号, 员工姓名');
         foreach ($rows as $key=>$value) {
-            $value['sczl_cl'] = floatval($value['sczl_cl']);
-            $value['sczl_fgcl'] = floatval($value['sczl_fgcl']);
-            $value['sczl_jjcl'] = floatval($value['sczl_jjcl']);
+            if (isset($value['sczl_cl'])) $value['sczl_cl'] = floatval($value['sczl_cl']);
+            if (isset($value['sczl_fgcl'])) $value['sczl_fgcl'] = floatval($value['sczl_fgcl']);
+            if (isset($value['sczl_jjcl'])) $value['sczl_jjcl'] = floatval($value['sczl_jjcl']);
             $subArray = [];
             foreach ($req['fields'] as $k=>$v){
                 if(array_key_exists($v,$arr)){
                     if($v=='sczl_name'){
                         $name = array_key_exists($value['sczl_bh'],$rs) ? trim($rs[$value['sczl_bh']]) : '';
-                        array_push($subArray,$name);
+                        if($name){
+                            array_push($subArray,$name);
+                        }else{
+                            array_push($subArray,'');
+                        }
                     }else{
-                        array_push($subArray,$value[$v]);
+                        if($value[$v]){
+                            array_push($subArray,$value[$v]);
+                        }else{
+                            array_push($subArray,'');
+                        }
                     }
                 }
             }