Quellcode durchsuchen

aps-甘特图设备查询接口sql优化testin1821

zhoudazhuang vor 8 Monaten
Ursprung
Commit
5426ede161

+ 26 - 17
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationProcessEquDao.xml

@@ -483,29 +483,38 @@
         </where>
     </select>
     <select id="getWorkshopAndDeviceByFactoryId" resultType="com.rongwei.bsentity.vo.GanttVos">
-        SELECT
-            DISTINCTROW
-            a1.PROCESSWORKSHOPID as processworkshopid,
-            a1.PROCESSWORKSHOP as processworkshop,
-            a1.PROCESSDEVICEID as processdeviceid,
-            a1.PROCESSDEVICE as processdevice,
-            apl.PRODUCTLINENAME as productlinename,
-            b.CHECKITEMTYPE,
-            apl.ID as productlineid
+        SELECT DISTINCTROW
+            a1.PROCESSWORKSHOPID AS processworkshopid,
+            a1.PROCESSWORKSHOP AS processworkshop,
+            a1.PROCESSDEVICEID AS processdeviceid,
+            b.CHECKITEMNAME AS processdevice,
+            ape.PRODUCTLINENAME AS productlinename,
+            ape.productlineid AS productlineid,
+            b.CHECKITEMTYPE
         FROM
             aps_process_operation_process_equ a1
-            LEFT JOIN aps_resources_equipment ape on ape.EQUIPMENTID = a1.PROCESSDEVICEID AND ape.DELETED = '0'
-                LEFT JOIN aps_production_line apl on ape.MAINID =apl.ID AND apl.DELETED = '0'
-            left join asp_check_items b on a1.PROCESSDEVICEID =b.ID
+            LEFT JOIN (
+                SELECT
+                    ape.EQUIPMENTID,
+                    apl.PRODUCTLINENAME,
+                    apl.ID AS productlineid
+                FROM
+                    aps_production_line apl
+                    JOIN aps_resources_equipment ape ON ape.MAINID = apl.ID
+                WHERE
+                    apl.DELETED = '0'
+                    AND ape.DELETED = '0'
+            ) ape ON ape.EQUIPMENTID = a1.PROCESSDEVICEID
+            LEFT JOIN asp_check_items b ON a1.PROCESSDEVICEID = b.ID
         WHERE
             a1.DELETED = '0'
-          and a1.TENANTID=#{factoryId}
-          and (a1.PROCESSDEVICE is not null and a1.PROCESSDEVICE !='' )
-          and (a1.PROCESSWORKSHOP is not null and a1.PROCESSWORKSHOP !='' )
+            AND a1.TENANTID = #{factoryId}
+            AND ( a1.PROCESSDEVICE IS NOT NULL AND a1.PROCESSDEVICE != '' )
+            AND ( a1.PROCESSWORKSHOP IS NOT NULL AND a1.PROCESSWORKSHOP != '' )
         ORDER BY
             a1.PROCESSWORKSHOP,
-            b.CHECKITEMTYPE,
-            a1.PROCESSDEVICE
+            a1.PROCESSDEVICE,
+            b.CHECKITEMTYPE
     </select>
     <select id="getTimeOverlapByEquId" resultType="com.rongwei.bsentity.domain.ApsProcessOperationProcessEquDo">
         select apope.*