Jelajahi Sumber

数据透视表

qiuenguang 11 bulan lalu
induk
melakukan
31a1677112
1 mengubah file dengan 67 tambahan dan 0 penghapusan
  1. 67 0
      application/api/controller/Decision.php

+ 67 - 0
application/api/controller/Decision.php

@@ -460,4 +460,71 @@ class Decision extends Api
                 ->column('YEAR(STR_TO_DATE(sys_ny, "%Y%m")) as year');
         $this->success('成功',$data);
     }
+
+    //数据透视表
+    public function PoductData()
+    {
+        if ($this->request->isGet() === false){
+            $this->error('请求错误');
+        }
+        $param = $this->request->param();
+        if (empty($param) || !isset($param['year'])){
+            $this->error('参数错误');
+        }
+        $processType = ['胶印','卷凹','圆烫','圆切','烫金','模切','丝印','喷码','单凹'];
+        $list = \db('工单_质量考核汇总')
+            ->alias('a')
+            ->field('  
+                a.sczl_jtbh AS 机台编号,  
+                a.Gy0_gdbh AS 工单编号,  
+                a.印件及工序 AS 工序号,  
+                a.产品名称 AS 印件名称,  
+                a.工序 AS 工序,  
+                a.工序名称,  
+                a.联数,  
+                a.班组产量,  
+                a.班组制程废品,  
+                a.班组质检废品,  
+                a.sczl_bzdh AS 班组编号,  
+                b.印刷方式,  
+                b.版距,  
+                DATE_FORMAT(a.入仓日期, \'%Y%m\') AS 完工年月  
+            ')
+            ->join('工单_工艺资料 b', 'a.Gy0_gdbh = b.Gy0_gdbh AND a.印件及工序 = b.Gy0_yjno AND a.工序 = b.Gy0_gxh')
+            ->where('a.sys_ny', 'like', $param['year'] . '%')
+            ->where('a.工序名称','not like','%机检%')
+            ->where('a.工序名称','not like','%拆片%')
+            ->select();
+        if (empty($list)){
+            $this->error('未找到数据');
+        }
+//        foreach ($list as $key=>$value){
+//            foreach ($processType as $index=>$item){
+//                if (strpos($value['工序名称'],$item) !== false){
+//                    $list[$key]['工序类型'] = ($index+1).'.'.$item;
+//                }
+//            }
+//            if (!isset($list[$key]['工序类型'])){
+//                if (strpos($value['工序名称'],'凹凸') !== false){
+//                    $list[$key]['工序类型'] = '6.模切';
+//                }
+//                if (strpos($value['工序名称'],'上光') !== false){
+//                    $list[$key]['工序类型'] = '1.胶印';
+//                }
+//            }
+//        }
+
+        // 按照“工序类型”的数字部分进行排序
+//        usort($list, function($a, $b) {
+//            // 提取工序类型的数字部分
+//            preg_match('/^(\d+)\./', $a['工序类型'], $matchesA);
+//            preg_match('/^(\d+)\./', $b['工序类型'], $matchesB);
+//
+//            $numberA = isset($matchesA[1]) ? (int)$matchesA[1] : 0;
+//            $numberB = isset($matchesB[1]) ? (int)$matchesB[1] : 0;
+//
+//            return $numberA <=> $numberB; // 使用太空船运算符进行比较
+//        });
+        $this->success('成功',$list);
+    }
 }