|
@@ -31,11 +31,30 @@ class OrderSuperLoss extends Api
|
|
|
if (Request::instance()->isGet() == false) {
|
|
if (Request::instance()->isGet() == false) {
|
|
|
$this->error('非法请求');
|
|
$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);
|
|
$data = Db::query($sql);
|
|
|
// 创建一个新数组来存储整理后的数据
|
|
// 创建一个新数组来存储整理后的数据
|
|
|
$organizedData = [];
|
|
$organizedData = [];
|