Procházet zdrojové kódy

2022-09-29 化学品统计sql调整。

zhuchangxue před 3 roky
rodič
revize
fe3581ba49

+ 63 - 7
zd-modules/zd-chemical/src/main/resources/mapper/chemical/HxpChemicalMapper.xml

@@ -373,25 +373,51 @@
 
     <select id="chemicalClassifyMix" parameterType="com.zd.chemical.domain.HxpChemical"
             resultType="java.util.LinkedHashMap">
-        SELECT x1.dict_label classifyAttribute,CONCAT(CASE WHEN x2.chemical_name IS NULL THEN 0 ELSE COUNT(0) END,'')
+
+        SELECT xx1.* FROM (
+        SELECT xx.* FROM (SELECT x1.dict_label classifyAttribute,CONCAT(CASE WHEN x2.chemical_name IS NULL THEN 0 ELSE COUNT(0) END,'')
         chemicalMix FROM (
-        select xx1.* from(SELECT dda.`dict_label`,dda.dict_value
+        SELECT xx1.* FROM(SELECT dda.`dict_label`,dda.dict_value
         FROM sys_dict_data dda
         WHERE dda.dict_type = 'hxp_classifyattribute'
         ORDER BY dda.`dict_sort`
         )xx1
-        union all
-        select '其他' dict_label,99 dict_value from dual
         )x1
         LEFT JOIN
         (
-        select xx.chemical_name,case when xx.classify_attribute='' or xx.classify_attribute is null then 99 else
-        xx.classify_attribute end classify_attribute from (
+        SELECT xx.chemical_name,CASE WHEN xx.classify_attribute='' OR xx.classify_attribute IS NULL THEN 99 ELSE
+        xx.classify_attribute END classify_attribute FROM (
+        SELECT cl.chemical_name,cl.classify_attribute
+        FROM hxp_stock sk
+        INNER JOIN hxp_chemical_join_cabinet cjc ON sk.join_id= cjc.id
+        INNER JOIN hxp_chemical cl ON cjc.`chemical_id` = cl.`id`
+        LEFT JOIN sys_user ur ON cl.user_id = ur.user_id
+        <where>
+            <!-- 数据范围过滤 -->
+            ${params.dataScope}
+        </where>
+        GROUP BY cl.chemical_num
+        )xx
+        )x2 ON FIND_IN_SET( x1.dict_value, x2.classify_attribute )
+        GROUP BY x1.dict_value
+        )xx WHERE xx.chemicalMix>0 ORDER BY xx.chemicalMix DESC LIMIT 6
+        )xx1
+
+        UNION ALL
+
+        SELECT xx2.* FROM (
+        SELECT x1.dict_label classifyAttribute,CONCAT(CASE WHEN x2.chemical_name IS NULL THEN 0 ELSE COUNT(0) END,'')
+        chemicalMix FROM(
+        SELECT '其他' dict_label,99 dict_value FROM DUAL
+        ) x1
+        LEFT JOIN (
+        SELECT xx.chemical_name,CASE WHEN xx.classify_attribute='' OR xx.classify_attribute IS NULL THEN 99 ELSE
+        xx.classify_attribute END classify_attribute FROM (
         SELECT cl.chemical_name,cl.classify_attribute
         FROM hxp_stock sk
         INNER JOIN hxp_chemical_join_cabinet cjc ON sk.join_id= cjc.id
         INNER JOIN hxp_chemical cl ON cjc.`chemical_id` = cl.`id`
-        LEFT JOIN sys_user ur on cl.user_id = ur.user_id
+        LEFT JOIN sys_user ur ON cl.user_id = ur.user_id
         <where>
             <!-- 数据范围过滤 -->
             ${params.dataScope}
@@ -400,6 +426,36 @@
         )xx
         )x2 ON FIND_IN_SET( x1.dict_value, x2.classify_attribute )
         GROUP BY x1.dict_value
+        )xx2
+
+        <!--SELECT xx.* FROM (SELECT x1.dict_label classifyAttribute,CONCAT(CASE WHEN x2.chemical_name IS NULL THEN 0 ELSE COUNT(0) END,'')-->
+        <!--chemicalMix FROM (-->
+        <!--select xx1.* from(SELECT dda.`dict_label`,dda.dict_value-->
+        <!--FROM sys_dict_data dda-->
+        <!--WHERE dda.dict_type = 'hxp_classifyattribute'-->
+        <!--ORDER BY dda.`dict_sort`-->
+        <!--)xx1-->
+        <!--union all-->
+        <!--select '其他' dict_label,99 dict_value from dual-->
+        <!--)x1-->
+        <!--LEFT JOIN-->
+        <!--(-->
+        <!--select xx.chemical_name,case when xx.classify_attribute='' or xx.classify_attribute is null then 99 else-->
+        <!--xx.classify_attribute end classify_attribute from (-->
+        <!--SELECT cl.chemical_name,cl.classify_attribute-->
+        <!--FROM hxp_stock sk-->
+        <!--INNER JOIN hxp_chemical_join_cabinet cjc ON sk.join_id= cjc.id-->
+        <!--INNER JOIN hxp_chemical cl ON cjc.`chemical_id` = cl.`id`-->
+        <!--LEFT JOIN sys_user ur on cl.user_id = ur.user_id-->
+        <!--<where>-->
+            <!--&lt;!&ndash; 数据范围过滤 &ndash;&gt;-->
+            <!--${params.dataScope}-->
+        <!--</where>-->
+        <!--GROUP BY cl.chemical_num-->
+        <!--)xx-->
+        <!--)x2 ON FIND_IN_SET( x1.dict_value, x2.classify_attribute )-->
+        <!--GROUP BY x1.dict_value-->
+        <!--)xx where xx.chemicalMix>0 order by xx.chemicalMix desc-->
     </select>
 
     <select id="stockTotal" parameterType="com.zd.chemical.domain.HxpChemical" resultType="java.lang.Long">