Explorar o código

超节损左侧菜单

qiuenguang hai 1 ano
pai
achega
96aa9e24cb
Modificáronse 1 ficheiros con 24 adicións e 5 borrados
  1. 24 5
      application/api/controller/OrderSuperLoss.php

+ 24 - 5
application/api/controller/OrderSuperLoss.php

@@ -31,11 +31,30 @@ class OrderSuperLoss extends Api
         if (Request::instance()->isGet() == false) {
             $this->error('非法请求');
         }
-        $num = config('product_code_digit');
-        $sql = "SELECT LEFT(a.jjcp_sj, 7) AS date,RTRIM(b.`编号`) AS 编号,RTRIM(b.`名称`) as 客户名称,COUNT(DISTINCT a.jjcp_gdbh) AS count
-                    FROM `成品入仓` a LEFT JOIN `物料_存货结构` b ON LEFT(a.`成品编码`, $num) = RTRIM(b.`编号`)
-                    WHERE LEFT(a.jjcp_sj, 7) >= LEFT(DATE_SUB(CURDATE(), INTERVAL 12 MONTH), 7) AND (a.jjcp_smb = '末 板' OR a.jjcp_smb = '末板') AND a.`成品编码` != ''
-                    GROUP BY LEFT(a.jjcp_sj, 7), RTRIM(b.`编号`) ORDER BY date DESC, 编号 ASC";
+        $sql = "SELECT   
+                    DATE_FORMAT(a.jjcp_sj, '%Y-%m') AS date,  -- Format the date for grouping  
+                    RTRIM(b.`编号`) AS 编号,  
+                    RTRIM(b.`名称`) AS 客户名称,  
+                    COUNT(DISTINCT a.jjcp_gdbh) AS count   
+                FROM   
+                    `成品入仓` a  
+                LEFT JOIN   
+                    `物料_存货结构` b   
+                    ON (CASE   
+                            WHEN LEFT(a.`成品编码`, 1) REGEXP '^[A-Za-z]' THEN LEFT(a.`成品编码`, 5)   
+                            ELSE LEFT(a.`成品编码`, 4)   
+                        END) = RTRIM(b.`编号`)  -- Conditional join based on the first character  
+                
+                WHERE   
+                    a.jjcp_sj >= DATE_SUB(CURDATE(), INTERVAL 12 MONTH)  -- Direct date comparison  
+                    AND (a.jjcp_smb IN ('末 板', '末板'))  -- Cleaner syntax for conditions  
+                    AND a.`成品编码` != ''   
+                GROUP BY   
+                    DATE_FORMAT(a.jjcp_sj, '%Y-%m'),  -- Group by formatted date  
+                    RTRIM(b.`编号`)   
+                ORDER BY   
+                    date DESC,  
+                    编号 ASC;";
         $data = Db::query($sql);
         // 创建一个新数组来存储整理后的数据
         $organizedData = [];