ソースを参照

数据统计-年检,电梯,维保

黄远 5 年 前
コミット
78168a037d

+ 14 - 0
lift-batch-service/src/main/java/cn/com/ty/lift/batch/applet/constants/DataStatisticsConstants.java

@@ -45,15 +45,29 @@ public class DataStatisticsConstants {
      */
     public static final Map<Integer, Integer> LIFT_STATUS_TO_LIFT_NUM = new HashMap<>();
 
+    /**
+     * 年检状态->数量
+     */
+    public static final Map<Integer, Long> ANNUAL_STATUS_TO_NUM = new HashMap<>();
+
     /**
      * 电梯状态数组 1:新增 2:在保 3:丢失
      */
     public static final int [] LIFT_STATUS_ARRAY = {1,2,3};
 
+    /**
+     * 年检状态数组 1:计划年检 2:实际完成 3:超期未检
+     */
+    public static final int [] ANNUAL_STATUS_ARRAY = {1,2,3};
+
     static{
         //初始化电梯状态对应数量
         for(int status: LIFT_STATUS_ARRAY){
             LIFT_STATUS_TO_LIFT_NUM.put(status, 0);
         }
+        //初始化年检状态对应数量
+        for(int status: ANNUAL_STATUS_ARRAY){
+            ANNUAL_STATUS_TO_NUM.put(status, 0L);
+        }
     }
 }

+ 29 - 0
lift-batch-service/src/main/java/cn/com/ty/lift/batch/applet/dao/model/AnnualInspectionDataModel.java

@@ -15,4 +15,33 @@ public class AnnualInspectionDataModel extends BaseDataModel{
      * 计划年检时间
      */
     private LocalDateTime planDate;
+    /**
+     * 年检状态(0 待完成;1 已完成;2 超期)
+     */
+    private Integer status;
+    /**
+     * stepStatus  :年检阶段状态
+     * 未开始0,第一阶段 1-2,第二阶段 3,第三阶段 4-7,第四阶段 8-10
+     *
+     1  维保工确认年检计划
+     2  维保工上传自检报告,选择自检时间 或者 文员设置 是否检查限速器和荷载年检设置,
+     文员也可以上传自检报告或者确认自检报告和自检时间,自检时间以最后设置的为准
+     --------------------------------
+     3  企业文员确认现场检验时间
+     录入人员信息,政府质检,企业质检,联系电话
+     --------------------------------
+     4	维保工上传检验结果
+     5	企业文员确认检验结果-合格
+     6	企业文员确认检验结果-整改
+     7	企业文员确认检验结果-不合格
+     --------------------------------
+     8	维保工上传年检报告和合格证
+     9	企业文员确认年检报告和合格证-合格
+     10	企业文员确认年检报告和合格证-不合格
+     */
+    private Integer stepStatus;
+    /**
+     * 项目名称
+     */
+    private String projectName;
 }

+ 18 - 3
lift-batch-service/src/main/java/cn/com/ty/lift/batch/applet/dao/model/LiftDataModel.java

@@ -10,18 +10,33 @@ import java.time.LocalDateTime;
  * @description
  */
 @Data
-public class LiftDataModel extends BaseDataModel{
-
+public class LiftDataModel extends BaseDataModel {
+    /**
+     * 项目id
+     */
+    private Long projectId;
     /**
      * 项目名称
      */
     private String projectName;
+    /**
+     * 区域id
+     */
+    private Long regionId;
     /**
      * 区域名称
      */
     private String regionName;
     /**
-     * 关联时间
+     * 关联时间-新增时间
      */
     private LocalDateTime connectTime;
+    /**
+     * 丢失时间
+     */
+    private LocalDateTime lostTime;
+    /**
+     * 电梯状态:1:表示新增,-1:表示丢失
+     */
+    private Integer liftStatus;
 }

+ 15 - 1
lift-batch-service/src/main/java/cn/com/ty/lift/batch/applet/service/AnnualInspectionDataService.java

@@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -82,7 +83,20 @@ public class AnnualInspectionDataService {
     public RestResponse annualOverView(AnnualInspectionDataRequest annualInspectionDataRequest) {
         List<AnnualInspectionDataModel> annualInspectionDataModelList = getAnnualInspectionDataListFromRedis(
                 annualInspectionDataRequest);
-        return RestResponse.success(ApiConstants.RESULT_SUCCESS, "获取统计数据成功");
+        Map<Integer, Long> annualStatusToNum = DataStatisticsConstants.ANNUAL_STATUS_TO_NUM;
+            if(annualInspectionDataModelList != null && annualInspectionDataModelList.size() > 0){
+            //设置计划年检条数
+            annualStatusToNum.put(1, annualInspectionDataModelList.stream().count());
+            //设置完成年检条数
+            long finishAnnualCount = annualInspectionDataModelList.stream()
+                    .filter(a -> a.getStatus() == 1).count();
+            annualStatusToNum.put(2, finishAnnualCount);
+            //设置超期未检条数
+            long beyondAnnualCount = annualInspectionDataModelList.stream()
+                    .filter(a -> a.getStatus() == 2).count();
+            annualStatusToNum.put(3, beyondAnnualCount);
+        }
+        return RestResponse.success(annualStatusToNum, ApiConstants.RESULT_SUCCESS, "获取统计数据成功");
     }
 
     /**

+ 20 - 1
lift-batch-service/src/main/resources/mapper/AnnualInspectionData.xml

@@ -5,7 +5,26 @@
     <!-- 获取时间段内的年检数据 -->
     <select id="getAnnualInspectionDataList" parameterType="cn.com.ty.lift.batch.applet.dao.model.request.CommonRequest"
             resultType="cn.com.ty.lift.batch.applet.dao.model.AnnualInspectionDataModel">
-
+        select
+            ai.plan_date as planDate,
+            ai.mt_company_id as mtCompanyId,
+            ai.status as status,
+            ai.step_status as stepStatus,
+            p.project_name as projectName
+        from
+            annual_inspection ai
+        left join
+            project_lift_relevance plr
+        on
+            ai.lift_id = plr.lift_id
+        left join
+            project p
+        on
+            plr.project_id = p.id
+        where
+            ai.plan_date <![CDATA[ >= ]]> #{startTimeStr}
+        and
+            ai.plan_date <![CDATA[ <= ]]> #{endTimeStr}
     </select>
 
 </mapper>

+ 21 - 1
lift-batch-service/src/main/resources/mapper/LiftData.xml

@@ -5,7 +5,27 @@
     <!-- 获取指定时间段内的电梯数据 -->
     <select id="getLiftDataList" parameterType="cn.com.ty.lift.batch.applet.dao.model.request.CommonRequest"
             resultType="cn.com.ty.lift.batch.applet.dao.model.LiftDataModel">
-
+        select
+            pclr.mt_company_id as mtCompanyId,
+            pclr.create_date as connectTime,
+            p.id as projectId,
+            p.project_name as projectName,
+            r.id as regionId,
+            r.area_name as regionName
+        from
+            platform_company_lift_relevance pclr
+        left join
+            project_lift_relevance plr
+        on
+            pclr.lift_id = plr.lift_id
+        left join
+            project p
+        on
+            plr.project_id = p.id
+        left join
+            region r
+        on
+            p.region_id = r.id
     </select>
 
 </mapper>