xuzhancheng 1 месяц назад
Родитель
Сommit
16534787d4

+ 12 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipescheduling/vo/EquipPipePlanSchedulingPageVO.java

@@ -87,4 +87,16 @@ public class EquipPipePlanSchedulingPageVO {
 
     @Schema(description = "管道类别")
     private String pipeCategory;
+
+    @Schema(description = "定检已排期数")
+    private Integer legalScheduledCount;
+
+    @Schema(description = "定检总需排期数")
+    private Integer legalTotalCount;
+
+    @Schema(description = "年检已排期数")
+    private Integer yearScheduledCount;
+
+    @Schema(description = "年检总需排期数")
+    private Integer yearTotalCount;
 }

+ 32 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equippipescheduling/EquipPipeSchedulingServiceImpl.java

@@ -1148,6 +1148,38 @@ public class EquipPipeSchedulingServiceImpl extends ServiceImpl<EquipPipeSchedul
                         equipPipePlanSchedulingPageVO.setPipeCount(equipPipePlanSchedulingPageVO.getPipes().size());
                     }
                 }
+
+                // 统计排期数据
+                for (EquipPipePlanSchedulingPageVO pageVO : list) {
+                    List<EquipPipePlanSchedulingVO> pipes = pageVO.getPipes();
+                    if (pipes != null && !pipes.isEmpty()) {
+                        // 定检统计
+                        int legalScheduled = 0;
+                        int legalTotal = 0;
+                        // 年检统计
+                        int yearScheduled = 0;
+                        int yearTotal = 0;
+
+                        for (EquipPipePlanSchedulingVO pipe : pipes) {
+                            // 定检统计
+                            legalTotal++;
+                            if (Boolean.TRUE.equals(pipe.getHasLegalScheduling()) || pipe.getPlanLegalCheckDate() != null) {
+                                legalScheduled++;
+                            }
+
+                            // 年检统计
+                            yearTotal++;
+                            if (Boolean.TRUE.equals(pipe.getHasYearScheduling()) || pipe.getPlanYearCheckDate() != null) {
+                                yearScheduled++;
+                            }
+                        }
+
+                        pageVO.setLegalScheduledCount(legalScheduled);
+                        pageVO.setLegalTotalCount(legalTotal);
+                        pageVO.setYearScheduledCount(yearScheduled);
+                        pageVO.setYearTotalCount(yearTotal);
+                    }
+                }
             }
         }
         pageResult.setList(list);

+ 27 - 17
tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/mapper/equippipescheduling/EquipPipeSchedulingMapper.xml

@@ -343,14 +343,15 @@
         GROUP BY b.equip_id
         ) scheduling_info ON eb.ID = scheduling_info.equip_id
         <where>
-            eb.deleted = 0 and (select count(*) num_pipe from (
-            select ped.ID
-            from PRESSURE2_EQUIP_PIPE_DETAIL ped
-            left join PRESSURE2_EQUIP_PIPE pe on ped.EQUIP_PIPE_ID = pe.ID
-            where pe.DELETED = 0 and ped.DELETED = 0
-            and (ped.HAS_LEGAL_SCHEDULING = 0 or ped.HAS_YEAR_SCHEDULING = 0)
-            and ped.EQUIP_PIPE_ID = eb.id
-            )  a) > 0
+            eb.deleted = 0
+            --and (select count(*) num_pipe from (
+            --select ped.ID
+            --from PRESSURE2_EQUIP_PIPE_DETAIL ped
+            --left join PRESSURE2_EQUIP_PIPE pe on ped.EQUIP_PIPE_ID = pe.ID
+            --where pe.DELETED = 0 and ped.DELETED = 0
+            --and (ped.HAS_LEGAL_SCHEDULING = 0 or ped.HAS_YEAR_SCHEDULING = 0)
+            --and ped.EQUIP_PIPE_ID = eb.id
+            --)  a) > 0
             <if test="unitName != null and unitName != ''">
                 AND eb.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
             </if>
@@ -430,17 +431,26 @@
 
     <select id="selectPlanPagePipeCount">
         select count(*) from (
-        select eb.id
+        select eb.EQUIP_DISTRICT,eb.EQUIP_STREET,eb.UNIT_CODE,eb.UNIT_NAME
+        ,eb.PIPE_ADDRESS,eb.CONTACT,eb.CONTACT_PHONE,eb.UNIT_ID,eb.id
+        ,eb.PROJECT_NO,eb.PROJECT_NAME,eb.HAS_LEGAL_SCHEDULING,eb.HAS_YEAR_SCHEDULING,eb.PIPE_CATEGORY
+        ,eb.NEXT_LEGAL_CHECK_DATE
+        ,eb.NEXT_YEAR_CHECK_DATE
+        ,scheduling_info.plan_legal_checkdate
+        ,scheduling_info.plan_year_checkdate
         from PRESSURE2_EQUIP_PIPE eb
+        LEFT JOIN (
+        SELECT
+        b.equip_id,
+        MAX(CASE WHEN s.type = 100 THEN s.PLAN_DATE END) AS plan_legal_checkdate,
+        MAX(CASE WHEN s.type = 200 THEN s.PLAN_DATE END) AS plan_year_checkdate
+        FROM PRESSURE2_EQUIP_PIPE_SCHEDULING s
+        INNER JOIN PRESSURE2_EQUIP_PIPE_SCHEDULING_ITEM b ON s.ID = b.SCHEDULING_ID
+        WHERE s.DELETED = 0 AND b.DELETED = 0 AND s.type IN (100, 200)
+        GROUP BY b.equip_id
+        ) scheduling_info ON eb.ID = scheduling_info.equip_id
         <where>
-            eb.deleted = 0 and (select count(*) num_pipe from (
-            select ped.ID
-            from PRESSURE2_EQUIP_PIPE_DETAIL ped
-            left join PRESSURE2_EQUIP_PIPE pe on ped.EQUIP_PIPE_ID = pe.ID
-            where pe.DELETED = 0 and ped.DELETED = 0
-            and (ped.HAS_LEGAL_SCHEDULING = 0 or ped.HAS_YEAR_SCHEDULING = 0)
-            and ped.EQUIP_PIPE_ID = eb.id
-            )  a) > 0
+            eb.deleted = 0
             <if test="unitName != null and unitName != ''">
                 AND eb.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
             </if>