Browse Source

Merge branch 'huangyuan-user' of lift-manager/lift-server into develop

huangyuan 5 năm trước cách đây
mục cha
commit
eec587f96f

+ 9 - 8
lift-batch-service/src/main/java/cn/com/ty/lift/batch/applet/controller/AnnualInspectionDataStatisticsController.java

@@ -34,7 +34,7 @@ public class AnnualInspectionDataStatisticsController {
     /**
      * @param
      * @return
-     * @description 年检进度前五的项目
+     * @description 年检项目
      * @date 2020/2/5 4:10 下午
      */
     @RequestMapping("/annualProgress")
@@ -43,13 +43,14 @@ public class AnnualInspectionDataStatisticsController {
     }
 
     /**
-     * @param
-     * @return
-     * @description 获取所有项目的年检进度
-     * @date 2020/2/5 4:14 下
+     * @param annualInspectionDataRequest 请求数据
+     * @return 年检数据
+     * @description 获取项目下年检电梯的信息
+     * @date 2020/5/23 10:10 上
      */
-    @RequestMapping("/allProjectAnnualProgress")
-    public RestResponse allProjectAnnualProgress(@RequestBody AnnualInspectionDataRequest annualInspectionDataRequest) {
-        return annualInspectionDataService.allProjectAnnualProgress(annualInspectionDataRequest);
+    @RequestMapping("/liftAnnualInfo")
+    public RestResponse liftAnnualInfo(@RequestBody AnnualInspectionDataRequest annualInspectionDataRequest) {
+        return annualInspectionDataService.liftAnnualInfo(annualInspectionDataRequest);
     }
+
 }

+ 25 - 0
lift-batch-service/src/main/java/cn/com/ty/lift/batch/applet/dao/mapper/AnnualInspectionDataMapper.java

@@ -1,6 +1,7 @@
 package cn.com.ty.lift.batch.applet.dao.mapper;
 
 import cn.com.ty.lift.batch.applet.dao.model.AnnualInspectionDataModel;
+import cn.com.ty.lift.batch.applet.dao.model.request.AnnualInspectionDataRequest;
 import cn.com.ty.lift.batch.applet.dao.model.request.CommonRequest;
 import cn.com.xwy.boot.mybatis.MyBatisMapper;
 
@@ -20,4 +21,28 @@ public interface AnnualInspectionDataMapper {
      * @date 2020/2/4 11:53 上午
      */
     List<AnnualInspectionDataModel> getAnnualInspectionDataList(CommonRequest commonRequest);
+
+    /**
+     * @param annualInspectionDataRequest 起始时间 终止时间
+     * @return
+     * @description 获取年检项目信息
+     * @date 2020/5/22 5:28 下午
+     */
+    List<AnnualInspectionDataModel> getProjectAnnual(AnnualInspectionDataRequest annualInspectionDataRequest);
+
+    /**
+     * @param
+     * @return
+     * @description 获取项目下的急修任务
+     * @date 2020/5/22 6:57 下午
+     */
+    List<AnnualInspectionDataModel> getProjectLiftAnnualInfo(AnnualInspectionDataRequest annualInspectionDataRequest);
+
+    /**
+     * @param
+     * @return
+     * @description 项目电梯数量
+     * @date 2020/5/22 7:11 下午
+     */
+    List<AnnualInspectionDataModel> projectLiftNum(AnnualInspectionDataRequest annualInspectionDataRequest);
 }

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

@@ -2,6 +2,7 @@ package cn.com.ty.lift.batch.applet.dao.model;
 
 import cn.com.ty.lift.batch.applet.constants.DataStatisticsConstants;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 import org.apache.commons.lang3.StringUtils;
 
 import java.time.LocalDate;
@@ -12,12 +13,19 @@ import java.time.format.DateTimeFormatter;
  * @date 2020/2/3
  * @description
  */
+@EqualsAndHashCode(callSuper = true)
 @Data
 public class AnnualInspectionDataModel extends BaseDataModel {
     /**
      * 计划年检时间
      */
     private LocalDate planDate;
+
+    /**
+     * 电梯注册编码
+     */
+    private String registrationCode;
+
     /**
      * 年检状态(0 待完成;1 已完成;2 超期)
      */
@@ -43,11 +51,22 @@ public class AnnualInspectionDataModel extends BaseDataModel {
      * 10	企业文员确认年检报告和合格证-不合格
      */
     private Integer stepStatus;
+
+    /**
+     * 项目id
+     */
+    private Long projectId;
+
     /**
      * 项目名称
      */
     private String projectName;
 
+    /**
+     * 项目电梯台量
+     */
+    private Long unitNum = 0L;
+
     /**
      * @param
      * @return

+ 16 - 0
lift-batch-service/src/main/java/cn/com/ty/lift/batch/applet/dao/model/request/AnnualInspectionDataRequest.java

@@ -13,4 +13,20 @@ public class AnnualInspectionDataRequest extends CommonRequest {
      * 项目名称
      */
     private String projectName;
+
+    /**
+     * 项目id
+     */
+    private String projectId;
+
+    /**
+     * 页数
+     */
+    private Long pageNum;
+
+    /**
+     * 每页的条数
+     */
+    private Long pageSize;
+
 }

+ 41 - 58
lift-batch-service/src/main/java/cn/com/ty/lift/batch/applet/service/AnnualInspectionDataService.java

@@ -47,22 +47,30 @@ public class AnnualInspectionDataService {
      * @date 2020/2/5 4:05 下午
      */
     public RestResponse annualOverView(AnnualInspectionDataRequest annualInspectionDataRequest) {
+        Map<Integer, Map<Integer, Long>> monthTomAnnual = DataStatisticsUtil.initNum();
+        DataStatisticsUtil.initCommonRequest(annualInspectionDataRequest);
         List<AnnualInspectionDataModel> annualInspectionDataModelList = getAnnualInspectionDataListFromRedis(
                 annualInspectionDataRequest);
-        Map<Integer, Long> annualStatusToNum = DataStatisticsConstants.ANNUAL_STATUS_TO_NUM;
         if (annualInspectionDataModelList != null && annualInspectionDataModelList.size() > 0) {
-            //设置计划年检条数
-            annualStatusToNum.put(1, (long) annualInspectionDataModelList.size());
-            //设置完成年检条数
-            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);
+            monthTomAnnual.keySet().forEach(month -> {
+                Map<Integer, Long> annualStatusToNum = monthTomAnnual.get(month);
+                //计划年检设置
+                annualStatusToNum.put(0, (long) annualInspectionDataModelList.size());
+                //完成年检设置
+                List<AnnualInspectionDataModel> finishAnnualNum = annualInspectionDataModelList.stream()
+                        .filter(annualInspectionDataModel -> {
+                            if (annualInspectionDataModel.getStatus() != null) {
+                                return annualInspectionDataModel.getStatus() == 1;
+                            }
+                            return false;
+                        }).collect(Collectors.toList());
+                if (finishAnnualNum.size() > 0) {
+                    annualStatusToNum.put(1, (long) finishAnnualNum.size());
+                }
+                monthTomAnnual.put(month, annualStatusToNum);
+            });
         }
-        return RestResponse.success(ProjectUtils.transReturnMapToStatisticsKVModel(annualStatusToNum),
+        return RestResponse.success(ProjectUtils.transReturnMapToStatisticsKVModel(monthTomAnnual),
                 ApiConstants.RESULT_SUCCESS, "获取统计数据成功");
     }
 
@@ -73,56 +81,31 @@ public class AnnualInspectionDataService {
      * @date 2020/2/5 4:11 下午
      */
     public RestResponse annualProgress(AnnualInspectionDataRequest annualInspectionDataRequest) {
-        List<AnnualInspectionDataModel> annualInspectionDataModelList = getProjectAnnualProgress(
-                annualInspectionDataRequest, "top5");
-        return RestResponse.success(annualInspectionDataModelList, ApiConstants.RESULT_SUCCESS, "获取统计数据成功");
+        DataStatisticsUtil.initCommonRequest(annualInspectionDataRequest);
+        List<AnnualInspectionDataModel> projectAnnualList = annualInspectionDataMapper.getProjectAnnual(annualInspectionDataRequest);
+        List<AnnualInspectionDataModel> projectLiftNum = annualInspectionDataMapper.projectLiftNum(annualInspectionDataRequest);
+        Map<Long, Long> projectIdToLiftNum = projectLiftNum.stream().collect(Collectors.groupingBy(
+                AnnualInspectionDataModel::getProjectId, Collectors.counting()));
+        //封装台量
+        projectAnnualList.forEach(annualInspectionDataModel -> {
+            if (projectIdToLiftNum != null && projectIdToLiftNum.size() > 0) {
+                annualInspectionDataModel.setUnitNum(DataStatisticsUtil.getLongValue(
+                        projectIdToLiftNum.get(annualInspectionDataModel.getProjectId())));
+            }
+        });
+        return RestResponse.success(projectAnnualList, ApiConstants.RESULT_SUCCESS, "获取统计数据成功");
     }
 
     /**
-     * @param
+     * @param annualInspectionDataRequest 年检数据
      * @return
-     * @description 获取所有项目的年检进度
-     * @date 2020/2/5 4:14 下午
+     * @description
+     * @date 2020/5/23 10:02 上
      */
-    public RestResponse allProjectAnnualProgress(AnnualInspectionDataRequest annualInspectionDataRequest) {
-        List<AnnualInspectionDataModel> annualInspectionDataModelList = getProjectAnnualProgress(
-                annualInspectionDataRequest, "all");
-        return RestResponse.success(annualInspectionDataModelList, ApiConstants.RESULT_SUCCESS, "获取统计数据成功");
-    }
-
-    /**
-     * @param
-     * @return
-     * @description 获取项目的年检进度
-     * @date 2020/2/5 4:16 下午
-     */
-    private List<AnnualInspectionDataModel> getProjectAnnualProgress(
-            AnnualInspectionDataRequest annualInspectionDataRequest, String countFlag) {
-        //从redis中获取当前公司年检数据
-        List<AnnualInspectionDataModel> annualInspectionDataModelList = getAnnualInspectionDataListFromRedis(
-                annualInspectionDataRequest);
-        if (annualInspectionDataModelList != null && annualInspectionDataModelList.size() > 0) {
-            //获取全部项目的年检进度
-            if ("all".equals(countFlag)) {
-                if (StringUtils.isNotBlank(annualInspectionDataRequest.getProjectName())) {
-                    //通过项目名称模糊查询
-                    annualInspectionDataModelList = annualInspectionDataModelList.stream()
-                            //通过名称模糊匹配
-                            .filter(a -> DataStatisticsUtil.strMatch(
-                                    annualInspectionDataRequest.getProjectName(), a.getProjectName()))
-                            .collect(Collectors.toList());
-                }
-                //获取所有项目的年检进度,按照计划年检时间顺序排列
-                annualInspectionDataModelList = annualInspectionDataModelList.stream()
-                        .sorted(Comparator.comparing(AnnualInspectionDataModel::getPlanDate))
-                        .collect(Collectors.toList());
-            } else {
-                //获取计划年检时间前五的项目的年检进度,按照计划年检时间顺序排列
-                annualInspectionDataModelList = annualInspectionDataModelList.stream()
-                        .sorted(Comparator.comparing(AnnualInspectionDataModel::getPlanDate)).limit(5)
-                        .collect(Collectors.toList());
-            }
-        }
-        return annualInspectionDataModelList;
+    public RestResponse liftAnnualInfo(AnnualInspectionDataRequest annualInspectionDataRequest) {
+        DataStatisticsUtil.initCommonRequest(annualInspectionDataRequest);
+        List<AnnualInspectionDataModel> liftAnnualList = annualInspectionDataMapper
+                .getProjectLiftAnnualInfo(annualInspectionDataRequest);
+        return RestResponse.success(liftAnnualList);
     }
 }

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

@@ -168,7 +168,7 @@ public class MaintenanceDataService {
      * @date 2020/5/22 10:41 上午
      */
     public RestResponse monthMaintenanceOverView(CommonRequest commonRequest) {
-        Map<Integer, Map<Integer, Long>> monthToMaintenance = DataStatisticsUtil.initMaintenanceNum();
+        Map<Integer, Map<Integer, Long>> monthToMaintenance = DataStatisticsUtil.initNum();
         DataStatisticsUtil.initCommonRequest(commonRequest);
         List<MaintenanceDataModel> maintenanceDataModelList = maintenanceDataMapper.getMonthMaintenanceData(commonRequest);
         if (maintenanceDataModelList != null && maintenanceDataModelList.size() > 0) {

+ 22 - 9
lift-batch-service/src/main/java/cn/com/ty/lift/batch/applet/util/DataStatisticsUtil.java

@@ -275,18 +275,18 @@ public class DataStatisticsUtil {
      * @description 初始化map数据
      * @date 2020/5/22 10:38 上午
      */
-    public static Map<Integer, Map<Integer, Long>> initMaintenanceNum() {
-        Map<Integer, Map<Integer, Long>> monthToMaintenance = new HashMap<>();
+    public static Map<Integer, Map<Integer, Long>> initNum() {
+        Map<Integer, Map<Integer, Long>> monthToBusiness = new HashMap<>();
         int nowMonth = LocalDate.now().getMonthValue();
         for (int month = 1; month <= nowMonth; month++) {
-            Map<Integer, Long> maintenanceStatusToNum = new HashMap<>();
-            //计划维保总数量
-            maintenanceStatusToNum.put(0, 0L);
-            //维保完成数量
-            maintenanceStatusToNum.put(1, 0L);
-            monthToMaintenance.put(month, maintenanceStatusToNum);
+            Map<Integer, Long> businessStatusToNum = new HashMap<>();
+            //计划维保/年检总数量
+            businessStatusToNum.put(0, 0L);
+            //维保/年检完成数量
+            businessStatusToNum.put(1, 0L);
+            monthToBusiness.put(month, businessStatusToNum);
         }
-        return monthToMaintenance;
+        return monthToBusiness;
     }
 
     /**
@@ -302,4 +302,17 @@ public class DataStatisticsUtil {
         commonRequest.setStartTimeDateStr(yearStartTime);
         commonRequest.setEndTimeDateStr(nowEndTime);
     }
+
+    /**
+     * @param value 值
+     * @return long 值
+     * @description 去除空值的情况
+     * @date 2020/4/24 5:18 下午
+     */
+    public static long getLongValue(Long value) {
+        if (value != null) {
+            return value;
+        }
+        return 0L;
+    }
 }

+ 67 - 1
lift-batch-service/src/main/resources/mapper/AnnualInspectionDataMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="cn.com.ty.lift.batch.applet.dao.mapper.AnnualInspectionDataMapper" >
 
     <!-- 获取时间段内的年检数据 -->
-    <select id="getAnnualInspectionDataList" parameterType="cn.com.ty.lift.batch.applet.dao.model.request.CommonRequest"
+    <select id="getAnnualInspectionDataList" parameterType="cn.com.ty.lift.batch.applet.dao.model.request.AnnualInspectionDataRequest"
             resultType="cn.com.ty.lift.batch.applet.dao.model.AnnualInspectionDataModel">
         select distinct
             ai.plan_date as planDate,
@@ -29,4 +29,70 @@
             ai.plan_date <![CDATA[ <= ]]> #{endTimeDateStr}
     </select>
 
+    <!-- 获取年检项目数据 -->
+    <select id="getProjectAnnual" parameterType="cn.com.ty.lift.batch.applet.dao.model.request.AnnualInspectionDataRequest"
+            resultType="cn.com.ty.lift.batch.applet.dao.model.AnnualInspectionDataModel">
+        select
+            p.id as projectId,
+            p.project_name as projectName
+        from
+            project p
+        left join
+            project_lift_relevance plr
+        on
+            p.id = plr.project_id
+        left join
+            annual_inspection ai
+        on
+            plr.lift_id = ai.lift_id
+        where
+            p.project_status <![CDATA[ != ]]> '3'
+        and
+            p.mt_company_id = #{mtCompanyId}
+        and
+            ai.plan_date <![CDATA[ >= ]]> #{startTimeDateStr}
+        and
+            ai.plan_date <![CDATA[ <= ]]> #{endTimeDateStr}
+        limit #{pageNum}, #{pageSize}
+    </select>
+
+    <!-- 获取项目下的电梯年检状态 -->
+    <select id="getProjectLiftAnnualInfo" parameterType="cn.com.ty.lift.batch.applet.dao.model.request.AnnualInspectionDataRequest"
+            resultType="cn.com.ty.lift.batch.applet.dao.model.AnnualInspectionDataModel">
+        select
+            l.registration_code as registrationCode,
+            ai.step_status as stepName,
+            ai.plan_date as planDate,
+            ai.status as status
+        from
+            annual_inspection ai
+        left join
+            lift l
+        on
+            ai.lift_id = l.id
+        left join
+            project_lift_relevance plr
+        on
+            ai.lift_id = plr.lift_id
+        where
+            ai.mt_company_id = #{mtCompanyId}
+        and
+            plr.project_id = #{projectId}
+        and
+            ai.plan_date <![CDATA[ >= ]]> #{startTimeDateStr}
+        and
+            ai.plan_date <![CDATA[ <= ]]> #{endTimeDateStr}
+    </select>
+
+    <!-- 获取项目关联的电梯 -->
+    <select id="projectLiftNum" parameterType="cn.com.ty.lift.batch.applet.dao.model.request.AnnualInspectionDataRequest"
+            resultType="cn.com.ty.lift.batch.applet.dao.model.AnnualInspectionDataModel">
+        select
+            plr.project_id as projectId
+        from
+            project_lift_relevance plr
+        where
+            plr.mt_company_id = #{mtCompanyId}
+    </select>
+
 </mapper>