Ver Fonte

印版领用详情优化

unknown há 9 meses atrás
pai
commit
a64bf94fc3
1 ficheiros alterados com 69 adições e 23 exclusões
  1. 69 23
      application/api/controller/Facility.php

+ 69 - 23
application/api/controller/Facility.php

@@ -1068,30 +1068,76 @@ class Facility extends Api
         $productCode = $param['productCode'];
         $code = $param['code'].'%';
         $workOrder = $param['workOrder'];
+//        $sql = "SELECT
+//                RTRIM(a.`存货编码`) as `存货编码`,
+//                RTRIM(c.`物料名称`) as `存货名称`,
+//                RTRIM(b.`印版名称`) as `印版名称`,
+//                RTRIM(b.`供方批号`) as `供方批号`,
+//                RTRIM(b.`制造日期`) as `制造日期`,
+//                SUM(d.`Yb_印数`) as `印数`,
+//                RTRIM(e.`名称`) as `印版类别`,
+//                SUBSTRING(a.YB_Cpdh,1,4) as `客户编号`,
+//                RTRIM(f.`Gd_客户名称`) as `客户名称`,
+//                RTRIM(a.YB_Cpdh) as `产品编号`,
+//                RTRIM(f.Gd_cpmc) as `产品名称`,
+//                RTRIM(d.UniqID) as UniqId
+//                FROM `产品_印版资料` as a
+//                LEFT JOIN `产品_印版库` as b ON b.`存货编码` = a.`存货编码`
+//                JOIN `物料_存货编码` as c ON c.`物料代码` = a.`存货编码`
+//                LEFT JOIN `工单_印版领用记录` as d ON d.`Yb_供方批号` = b.`供方批号`
+//                JOIN `物料_存货结构` as e ON e.`编号` = SUBSTRING(a.`存货编码`,1,4)
+//                JOIN `工单_基本资料` as f ON a.YB_Cpdh = f.Gd_cpdh
+//                WHERE a.YB_Cpdh = '{$productCode}'
+//                AND a.`存货编码` LIKE '{$code}'
+//                AND f.Gd_gdbh = '{$workOrder}'
+//                AND b.`报废日期` = '1900-01-01 00:00:00'
+//                GROUP BY b.`供方批号`
+//                ORDER BY a.`存货编码`";
         $sql = "SELECT 
-                RTRIM(a.`存货编码`) as `存货编码`,
-                RTRIM(c.`物料名称`) as `存货名称`,
-                RTRIM(b.`印版名称`) as `印版名称`,
-                RTRIM(b.`供方批号`) as `供方批号`,
-                RTRIM(b.`制造日期`) as `制造日期`,
-                SUM(d.`Yb_印数`) as `印数`,
-                RTRIM(e.`名称`) as `印版类别`,
-                SUBSTRING(a.YB_Cpdh,1,4) as `客户编号`,
-                RTRIM(f.`Gd_客户名称`) as `客户名称`,
-                RTRIM(a.YB_Cpdh) as `产品编号`,
-                RTRIM(f.Gd_cpmc) as `产品名称`,
-                RTRIM(d.UniqID) as UniqId
-                FROM `产品_印版资料` as a 
-                LEFT JOIN `产品_印版库` as b ON b.`存货编码` = a.`存货编码`
-                JOIN `物料_存货编码` as c ON c.`物料代码` = a.`存货编码`
-                LEFT JOIN `工单_印版领用记录` as d ON d.`Yb_供方批号` = b.`供方批号`
-                JOIN `物料_存货结构` as e ON e.`编号` = SUBSTRING(a.`存货编码`,1,4)
-                JOIN `工单_基本资料` as f ON a.YB_Cpdh = f.Gd_cpdh
-                WHERE a.YB_Cpdh = '{$productCode}' 
-                AND a.`存货编码` LIKE '{$code}'
-                AND f.Gd_gdbh = '{$workOrder}'
-                AND b.`报废日期` = '1900-01-01 00:00:00'
-                GROUP BY b.`供方批号`
+                    RTRIM(a.`存货编码`) AS `存货编码`,
+                    RTRIM(c.`物料名称`) AS `存货名称`,
+                    RTRIM(b.`印版名称`) AS `印版名称`,
+                    RTRIM(b.`供方批号`) AS `供方批号`,
+                    RTRIM(b.`制造日期`) AS `制造日期`,
+                    SUM(d.`Yb_印数`) AS `印数`,
+                    RTRIM(e.`名称`) AS `印版类别`,
+                    SUBSTRING(a.YB_Cpdh, 1, 4) AS `客户编号`,
+                    RTRIM(f.`Gd_客户名称`) AS `客户名称`,
+                    RTRIM(a.YB_Cpdh) AS `产品编号`,
+                    RTRIM(f.Gd_cpmc) AS `产品名称`,
+                    MAX(d.UniqID) AS UniqId,
+                    MAX(CASE 
+                        WHEN d.`Yb_领用日期` IS NOT NULL AND d.`Yb_退还日期` IS NULL THEN d.`Yb_工单编号`
+                        ELSE NULL 
+                    END) AS `工单编号`
+                FROM `产品_印版资料` a 
+                JOIN `物料_存货编码` c ON c.`物料代码` = a.`存货编码`
+                JOIN `物料_存货结构` e ON e.`编号` = (
+                    CASE 
+                        WHEN a.`存货编码` REGEXP '[A-Za-z]' 
+                        THEN SUBSTRING(a.`存货编码`, 1, 5)
+                        ELSE SUBSTRING(a.`存货编码`, 1, 4) 
+                    END
+                )
+                JOIN `工单_基本资料` f ON a.YB_Cpdh = f.Gd_cpdh
+                LEFT JOIN `产品_印版库` b ON b.`存货编码` = a.`存货编码`
+                    AND b.`报废日期` = '1900-01-01 00:00:00'
+                LEFT JOIN `工单_印版领用记录` d ON d.`Yb_供方批号` = b.`供方批号`
+                    AND d.`Yb_工单编号` IS NOT NULL
+                WHERE 
+                    a.YB_Cpdh = '{$productCode}' 
+                    AND a.`存货编码` LIKE '{$code}'
+                    AND f.Gd_gdbh = '{$workOrder}'
+                GROUP BY 
+                    a.`存货编码`,
+                    c.`物料名称`,
+                    b.`印版名称`,
+                    b.`供方批号`,
+                    b.`制造日期`,
+                    e.`名称`,
+                    f.`Gd_客户名称`,
+                    a.YB_Cpdh,
+                    f.Gd_cpmc
                 ORDER BY a.`存货编码`";
         $list = Db::query($sql);
         if (empty($list)){