瀏覽代碼

工序汇总导出

曹鹤洋 1 年之前
父節點
當前提交
8fbe113449

+ 102 - 1
application/api/controller/PackagingCountDocument.php

@@ -416,7 +416,6 @@ class PackagingCountDocument extends Api
      */
     public function del()
     {
-        //get请求
         if(!$this->request->isPost()){
             $this->error('请求方式错误');
         }
@@ -443,4 +442,106 @@ class PackagingCountDocument extends Api
         $this->success('成功');
 
     }
+
+    /**
+     * 工序汇总导出
+     * @ApiMethod (POST)
+     * @param string gxmc
+     * @param string start_time
+     * @param string end_time
+     * @param string file_name
+     * @param array fields
+     */
+    public function processExport(){
+        if(!$this->request->isPost()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+        $arr = [
+            'gxmc','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_rq'       =>['日期','LEFT(sczl_rq, 10) as sczl_rq'],
+            'sczl_bh'       =>['员工编号','sczl_bh'],
+            'sczl_jsss'     =>['计时时数','sczl_jsss'],
+            'sczl_gdbh'     =>['工单编号','sczl_gdbh1, sczl_gdbh2, sczl_gdbh3, sczl_gdbh4, sczl_gdbh5, sczl_gdbh6'],
+            'sczl_yjGx'     =>['印件工序','rtrim(sczl_yjGx1) as sczl_yjGx1, rtrim(sczl_yjGx2) as sczl_yjGx2, rtrim(sczl_yjGx3) as sczl_yjGx3, rtrim(sczl_yjGx4) as sczl_yjGx4, rtrim(sczl_yjGx5) as sczl_yjGx5, rtrim(sczl_yjGx6) as sczl_yjGx6'],
+            'sczl_gxmc'     =>['工序名称','rtrim(sczl_gxmc1) as sczl_gxmc1, rtrim(sczl_gxmc2) as sczl_gxmc2, rtrim(sczl_gxmc3) as sczl_gxmc3, rtrim(sczl_gxmc4) as sczl_gxmc4, rtrim(sczl_gxmc5) as sczl_gxmc5, rtrim(sczl_gxmc6) as sczl_gxmc6'],
+            'sczl_cl'       =>['产量','sczl_cl1, sczl_cl2, sczl_cl3, sczl_cl4, sczl_cl5, sczl_cl6'],
+            'sczl_PgCl'     =>['每箱产量','sczl_PgCl1, sczl_PgCl2, sczl_PgCl3, sczl_PgCl4, sczl_PgCl5, sczl_PgCl6'],
+            'sczl_计产系数'  =>['计产系数','sczl_计产系数1, sczl_计产系数2, sczl_计产系数3, sczl_计产系数4, sczl_计产系数5, sczl_计产系数6'],
+            'sczl_dedh'     =>['定额代号','rtrim(sczl_dedh1) as sczl_dedh1, rtrim(sczl_dedh2) as sczl_dedh2, rtrim(sczl_dedh3) as sczl_dedh3, rtrim(sczl_dedh4) as sczl_dedh4, rtrim(sczl_dedh5) as sczl_dedh5, rtrim(sczl_dedh6) as sczl_dedh6']
+        ];
+        $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];
+                }
+                if($v=='sczl_bh'){
+                    array_push($data[0],$arr[$v][0]);
+                    array_push($data[0],'员工姓名');
+                }else if($v=='sczl_gdbh'){
+                    array_push($data[0],$arr[$v][0]);
+                    array_push($data[0],'印件名称');
+                }else{
+                    array_push($data[0],$arr[$v][0]);
+                }
+            }
+        }
+
+        //根据条件查询数据
+        $rows = db()->table('db_包装计件')
+            ->field($field)
+            ->where('sczl_rq','between',[$req['start_time'],$req['end_time']])
+            ->where(['sczl_gxmc1|sczl_gxmc2|sczl_gxmc3|sczl_gxmc4|sczl_gxmc5|sczl_gxmc6'=>['like','%'.$req['gxmc'].'%']])
+            ->select();
+        $gd = db()->table('工单_基本资料')->column('Gd_gdbh, Gd_cpmc');
+        $rs = db()->table('人事_基本资料')->column('员工编号, 员工姓名');
+
+        for ($i = 1; $i <= 6; $i++) {
+            foreach ($rows as $key=>$value){
+                if (trim($value['sczl_gdbh'.$i])=='') continue;
+                if (trim($value['sczl_gxmc'.$i])!=$req['gxmc']) continue;
+                $subArray = [];
+                foreach ($req['fields'] as $k=>$v){
+                    if(array_key_exists($v,$arr)){
+                        if($v=='sczl_rq' || $v=='sczl_jsss'){
+                            array_push($subArray,$value[$v]);
+//                            $subArray[$v] = $value[$v];
+                        }else if($v=='sczl_bh'){
+                            $name = array_key_exists($value[$v],$rs) ? trim($rs[$value[$v]]) : '';
+                            array_push($subArray,$value[$v]);
+                            array_push($subArray,$name);
+//                            $subArray[$v] = $value[$v];
+//                            $subArray['name'] = array_key_exists($value[$v],$rs) ? trim($rs[$value[$v]]) : '';
+                        }else if($v=='sczl_gdbh'){
+                            $cpmc = array_key_exists($value[$v.$i],$gd) ? trim($gd[$value[$v.$i]]) : '';
+                            array_push($subArray,$value[$v.$i]);
+                            array_push($subArray,$cpmc);
+//                            $subArray[$v] = $value[$v.$i];
+//                            $subArray['cpmc'] = array_key_exists($value[$v.$i],$gd) ? trim($gd[$value[$v.$i]]) : '';
+                        }else{
+                            array_push($subArray,$value[$v.$i]);
+//                            $subArray[$v] = $value[$v.$i];
+                        }
+                    }
+                }
+                array_push($data,$subArray);
+            }
+        }
+
+        $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
+    }
 }

+ 4 - 4
application/api/controller/PackagingProcessOutput.php

@@ -295,8 +295,8 @@ class PackagingProcessOutput extends Api
         //开启事务
         db()->startTrans();
         try{
-            $bool = db()->table('db_包装产量预报')->insert($data);
-
+            $sql = db()->table('db_包装产量预报')->fetchSql(true)->insert($data);
+            $bool = db()->query($sql);
             // 提交事务
             db()->commit();
         } catch (\Exception $e) {
@@ -353,8 +353,8 @@ class PackagingProcessOutput extends Api
         //开启事务
         db()->startTrans();
         try{
-            $bool = db()->table('db_包装产量预报')->where('UniqId',$req['UniqId'])->update($data);
-
+            $sql = db()->table('db_包装产量预报')->where('UniqId',$req['UniqId'])->fetchSql(true)->update($data);
+            $bool = db()->query($sql);
             // 提交事务
             db()->commit();
         } catch (\Exception $e) {