Selaa lähdekoodia

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

huangyuan 5 vuotta sitten
vanhempi
commit
b2e4d9db93

+ 46 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/constants/CommonConstants.java

@@ -204,4 +204,50 @@ public class CommonConstants {
         };
     }
 
+    /**
+     * 平台日历常量
+     */
+    public interface PlatformCalendarConstants {
+        //时间格式
+        /**
+         * 请求时间格式
+         */
+        String REQUEST_DATE_FORMAT = "yyyy-MM";
+
+        /**
+         * 日期转化时间格式
+         */
+        String TRANS_DATE_FORMAT = "yyyy-MM-dd";
+
+        /**
+         * 月初时间
+         */
+        String MONTH_BEGIN_DATE = "monthBegin";
+
+        /**
+         * 月末时间
+         */
+        String MONTH_END_DATE = "monthEnd";
+
+        /**
+         * 电梯状态数组
+         * 状态说明如下:
+         * 1.待维保电梯
+         * 2.维保中电梯
+         * 3.维保完成电梯
+         * 4.召修待完成电梯
+         * 5.急修中电梯
+         * 6.急修完成电梯
+         * 7.计划年检电梯
+         * 8.年检中电梯
+         * 9.年检完成电梯
+         */
+        int[] LIFT_STATUS_ARRAY = {
+                1, 2, 3,
+                4, 5, 6,
+                7, 8, 9
+        };
+
+    }
+
 }

+ 4 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/homepage/controller/PlatformCalendarController.java

@@ -1,7 +1,9 @@
 package cn.com.ty.lift.system.homepage.controller;
 
+import cn.com.ty.lift.system.homepage.dao.dto.request.PlatformCalendarRequest;
 import cn.com.ty.lift.system.homepage.service.PlatformCalendarService;
 import cn.com.xwy.boot.web.dto.RestResponse;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -26,8 +28,8 @@ public class PlatformCalendarController {
      * @date 2020/2/14 6:59 下午
      */
     @RequestMapping("/taskNum")
-    public RestResponse taskNum() {
-        return platformCalendarService.taskNum();
+    public RestResponse taskNum(@RequestBody PlatformCalendarRequest platformCalendarRequest) {
+        return platformCalendarService.taskNum(platformCalendarRequest);
     }
 
     /**

+ 36 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/homepage/dao/dto/request/PlatformCalendarRequest.java

@@ -0,0 +1,36 @@
+package cn.com.ty.lift.system.homepage.dao.dto.request;
+
+import lombok.Data;
+
+/**
+ * @author huangyuan
+ * @date 2020/2/20
+ * @description
+ */
+@Data
+public class PlatformCalendarRequest {
+    /**
+     * 公司id
+     */
+    private Long mtCompanyId;
+
+    /**
+     * 日期 年+月
+     */
+    private String requestDateStr;
+
+    /**
+     * 月初时间 年月日
+     */
+    private String monthBeginStr;
+
+    /**
+     * 当前时间
+     */
+    private String nowStr;
+
+    /**
+     * 月末时间 年月日
+     */
+    private String monthEndStr;
+}

+ 34 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/homepage/dao/mapper/CommonDataMapper.java

@@ -1,6 +1,8 @@
 package cn.com.ty.lift.system.homepage.dao.mapper;
 
 import cn.com.ty.lift.system.homepage.dao.dto.request.LiftDataRequest;
+import cn.com.ty.lift.system.homepage.dao.dto.request.PlatformCalendarRequest;
+import cn.com.ty.lift.system.homepage.dao.model.AnnualInspectionDataModel;
 import cn.com.ty.lift.system.homepage.dao.model.EmergencyRecordDataModel;
 import cn.com.ty.lift.system.homepage.dao.model.MtPlanDataModel;
 import cn.com.ty.lift.system.homepage.dao.model.MtRecordDataModel;
@@ -64,4 +66,36 @@ public interface CommonDataMapper {
      * @date 2020/2/19 3:07 下午
      */
     Map<Long, Long> getMtCompanyIdToEmergencyRecord(MaintenanceCompanyRequest maintenanceCompanyRequest);
+
+    /**
+     * @param
+     * @return
+     * @description 获取当前时间到月末时间段内的公司维保计划
+     * @date 2020/2/20 5:52 下午
+     */
+    List<MtPlanDataModel> getMonthNowToEndMtPlan(PlatformCalendarRequest platformCalendarRequest);
+
+    /**
+     * @param
+     * @return
+     * @description 获取月初到当前时间段内公司的维保记录信息
+     * @date 2020/2/20 5:53 下午
+     */
+    List<MtRecordDataModel> getMonthBeginToNowMtRecord(PlatformCalendarRequest platformCalendarRequest);
+
+    /**
+     * @param
+     * @return
+     * @description 获取月初到当前时间段内公司的急修记录信息
+     * @date 2020/2/20 5:54 下午
+     */
+    List<EmergencyRecordDataModel> getMonthBeginToNowEmergencyRecord(PlatformCalendarRequest platformCalendarRequest);
+
+    /**
+     * @param
+     * @return
+     * @description 获取本月时间段内的年检记录信息
+     * @date 2020/2/20 5:57 下午
+     */
+    List<AnnualInspectionDataModel> getMonthBeginToEndAnnualInspectionRecord(PlatformCalendarRequest platformCalendarRequest);
 }

+ 35 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/homepage/dao/model/AnnualInspectionDataModel.java

@@ -0,0 +1,35 @@
+package cn.com.ty.lift.system.homepage.dao.model;
+
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * @author huangyuan
+ * @date 2020/2/20
+ * @description
+ */
+@Data
+public class AnnualInspectionDataModel extends CalendarLiftDataModel{
+    /**
+     * 公司id
+     */
+    private Long mtCompanyId;
+
+    /**
+     * 计划年检时间
+     */
+    private LocalDate planDate;
+
+    /**
+     * 完成时间
+     */
+    private LocalDateTime finishTime;
+
+    /**
+     * 状态(0 待完成;1 已完成;2 超期)
+     */
+    private Integer status;
+
+}

+ 36 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/homepage/dao/model/CalendarLiftDataModel.java

@@ -0,0 +1,36 @@
+package cn.com.ty.lift.system.homepage.dao.model;
+
+import lombok.Data;
+
+/**
+ * @author huangyuan
+ * @date 2020/2/20
+ * @description
+ */
+@Data
+public class CalendarLiftDataModel {
+    /**
+     * 电梯id
+     */
+    private Long liftId;
+
+    /**
+     * 项目名称
+     */
+    private String projectName;
+
+    /**
+     * 电梯注册代码
+     */
+    private String registrationCode;
+
+    /**
+     * 电梯编号
+     */
+    private String liftCode;
+
+    /**
+     * 维保工
+     */
+    private String workerName;
+}

+ 11 - 3
lift-system-service/src/main/java/cn/com/ty/lift/system/homepage/dao/model/EmergencyRecordDataModel.java

@@ -2,20 +2,28 @@ package cn.com.ty.lift.system.homepage.dao.model;
 
 import lombok.Data;
 
+import java.time.LocalDateTime;
+
 /**
  * @author huangyuan
  * @date 2020/2/18
  * @description 急修记录数据
  */
 @Data
-public class EmergencyRecordDataModel {
+public class EmergencyRecordDataModel extends CalendarLiftDataModel {
+
     /**
-     * 电梯id
+     * 报修时间
      */
-    private Long liftId;
+    private LocalDateTime callerDate;
 
     /**
      * 新状态(-1 暂停中,0 待修理;1 修理中;2 已完成 3 已关闭)
      */
     private Integer status;
+
+    /**
+     * 恢复时间
+     */
+    private LocalDateTime recoveryDate;
 }

+ 6 - 3
lift-system-service/src/main/java/cn/com/ty/lift/system/homepage/dao/model/MtPlanDataModel.java

@@ -2,17 +2,20 @@ package cn.com.ty.lift.system.homepage.dao.model;
 
 import lombok.Data;
 
+import java.time.LocalDate;
+
 /**
  * @author huangyuan
  * @date 2020/2/18
  * @description 维保计划数据
  */
 @Data
-public class MtPlanDataModel {
+public class MtPlanDataModel extends CalendarLiftDataModel {
+
     /**
-     * 电梯id
+     * 计划维保时间
      */
-    private Long liftId;
+    private LocalDate planDate;
 
     /**
      * 状态 0:待完成,1:已完成,2:超期

+ 8 - 5
lift-system-service/src/main/java/cn/com/ty/lift/system/homepage/dao/model/MtRecordDataModel.java

@@ -2,20 +2,23 @@ package cn.com.ty.lift.system.homepage.dao.model;
 
 import lombok.Data;
 
+import java.time.LocalDate;
+
 /**
  * @author huangyuan
  * @date 2020/2/18
  * @description 维保记录
  */
 @Data
-public class MtRecordDataModel {
-    /**
-     * 电梯id
-     */
-    private Long liftId;
+public class MtRecordDataModel extends CalendarLiftDataModel {
 
     /**
      * 维保计划状态
      */
     private Integer status;
+
+    /**
+     * 实际保养时间
+     */
+    private LocalDate workDate;
 }

+ 35 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/homepage/service/PlatformCalendarService.java

@@ -1,9 +1,21 @@
 package cn.com.ty.lift.system.homepage.service;
 
 import cn.com.ty.lift.common.constants.ApiConstants;
+import cn.com.ty.lift.system.constants.CommonConstants;
+import cn.com.ty.lift.system.homepage.dao.dto.request.PlatformCalendarRequest;
+import cn.com.ty.lift.system.homepage.dao.mapper.CommonDataMapper;
+import cn.com.ty.lift.system.homepage.dao.model.AnnualInspectionDataModel;
+import cn.com.ty.lift.system.homepage.dao.model.EmergencyRecordDataModel;
+import cn.com.ty.lift.system.homepage.dao.model.MtPlanDataModel;
+import cn.com.ty.lift.system.homepage.dao.model.MtRecordDataModel;
+import cn.com.ty.lift.system.utils.CommonUtil;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
 /**
  * @author huangyuan
  * @date 2020/2/14
@@ -11,14 +23,35 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class PlatformCalendarService {
+
+    @Resource
+    private CommonDataMapper commonDataMapper;
+
     /**
      * @param
      * @return
      * @description 任务数
      * @date 2020/2/14 6:59 下午
      */
-    public RestResponse taskNum() {
-        return RestResponse.success(ApiConstants.RESULT_SUCCESS, "获取任务数成功");
+    public RestResponse taskNum(PlatformCalendarRequest platformCalendarRequest) {
+        Map<Integer, Map<Integer, Long>> dayToLiftDataToNum = CommonUtil.initCalendarMapData(
+                platformCalendarRequest.getRequestDateStr(), CommonConstants.PlatformCalendarConstants.REQUEST_DATE_FORMAT);
+        //时间转化
+        CommonUtil.setMonthDate(platformCalendarRequest);
+        //获取当前公司的维保记录 传递时间值 月初时间 - 当前时间
+        List<MtRecordDataModel> mtRecordDataModelList = commonDataMapper
+                .getMonthBeginToNowMtRecord(platformCalendarRequest);
+        //获取当前公司的维保计划 传递时间值 当前时间 - 月末时间
+        List<MtPlanDataModel> mtPlanDataModelList = commonDataMapper
+                .getMonthNowToEndMtPlan(platformCalendarRequest);
+        //获取当前公司的急修记录 传递时间值 月初时间 - 当前时间
+        List<EmergencyRecordDataModel> emergencyRecordDataModelList = commonDataMapper
+                .getMonthBeginToNowEmergencyRecord(platformCalendarRequest);
+        //获取当前公司的年检记录 传递时间值 月初时间 - 月末时间
+        List<AnnualInspectionDataModel> annualInspectionDataModelList = commonDataMapper
+                .getMonthBeginToEndAnnualInspectionRecord(platformCalendarRequest);
+
+        return RestResponse.success(dayToLiftDataToNum, ApiConstants.RESULT_SUCCESS, "获取任务数成功");
     }
 
     /**

+ 78 - 5
lift-system-service/src/main/java/cn/com/ty/lift/system/utils/CommonUtil.java

@@ -1,8 +1,16 @@
 package cn.com.ty.lift.system.utils;
 
+import cn.com.ty.lift.system.constants.CommonConstants;
+import cn.com.ty.lift.system.homepage.dao.dto.request.PlatformCalendarRequest;
+
 import javax.servlet.http.HttpServletRequest;
 import java.time.Duration;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.TemporalAdjusters;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @author huangyuan
@@ -39,17 +47,82 @@ public class CommonUtil {
     }
 
     /**
-     * @description 判断时间A和B差值的绝对值是否在指定的之间差值内
-     * @date 2019-12-18 14:10
-     * @param timeA 时间A
-     * @param timeB 时间B
+     * @param timeA  时间A
+     * @param timeB  时间B
      * @param dValue 差值
      * @return true:差值在指定范围内 false:差值不在指定范围内
+     * @description 判断时间A和B差值的绝对值是否在指定的之间差值内
+     * @date 2019-12-18 14:10
      */
-    public static boolean durationJudge(LocalDateTime timeA, LocalDateTime timeB, Long dValue){
+    public static boolean durationJudge(LocalDateTime timeA, LocalDateTime timeB, Long dValue) {
         Duration duration = Duration.between(timeA, timeB);
         long diffDay = duration.toDays();
         return diffDay < dValue;
     }
 
+    /**
+     * @param transTimeStr 给定时间
+     * @param origFormat   给定时间格式
+     * @param monthFormat  转化为的月份时间格式
+     * @return Map 类型对应时间格式 monthBegin:表示月初时间 monthEnd:表示月末时间
+     * @description
+     */
+    public static Map<String, String> getMonthDate(String transTimeStr, String origFormat, String monthFormat) {
+        Map<String, String> dateTypeToDateValue = new HashMap<>();
+        //将传递时间字符串转化为localDate类型时间
+        LocalDate transDate = LocalDate.parse(transTimeStr, DateTimeFormatter.ofPattern(origFormat));
+        //设置月初时间
+        LocalDate monthBeginDate = transDate.with(TemporalAdjusters.firstDayOfMonth());
+        dateTypeToDateValue.put(CommonConstants.PlatformCalendarConstants.MONTH_BEGIN_DATE,
+                monthBeginDate.format(DateTimeFormatter.ofPattern(monthFormat)));
+        //设置月末时间
+        LocalDate monthEndDate = transDate.with(TemporalAdjusters.lastDayOfMonth());
+        dateTypeToDateValue.put(CommonConstants.PlatformCalendarConstants.MONTH_END_DATE,
+                monthEndDate.format(DateTimeFormatter.ofPattern(monthFormat)));
+
+        return dateTypeToDateValue;
+    }
+
+    /**
+     * @param platformCalendarRequest 转化时间
+     * @return
+     * @description 设置月初月末时间
+     */
+    public static void setMonthDate(PlatformCalendarRequest platformCalendarRequest) {
+        Map<String, String> dateTypeToDateValue = CommonUtil.getMonthDate(platformCalendarRequest.getRequestDateStr(),
+                CommonConstants.PlatformCalendarConstants.REQUEST_DATE_FORMAT,
+                CommonConstants.PlatformCalendarConstants.TRANS_DATE_FORMAT);
+        //设置月初时间
+        platformCalendarRequest.setMonthBeginStr(dateTypeToDateValue.get(
+                CommonConstants.PlatformCalendarConstants.MONTH_BEGIN_DATE));
+        //设置当期时间
+        platformCalendarRequest.setNowStr(LocalDate.now().format(DateTimeFormatter.ofPattern(
+                CommonConstants.PlatformCalendarConstants.TRANS_DATE_FORMAT)));
+        //设置月末时间
+        platformCalendarRequest.setMonthEndStr(dateTypeToDateValue.get(
+                CommonConstants.PlatformCalendarConstants.MONTH_END_DATE));
+    }
+
+    /**
+     * @param timeDateStr 传递时间
+     * @param timeFormat 时间格式
+     * @return
+     * @description 初始化日列数据
+     */
+    public static Map<Integer, Map<Integer, Long>> initCalendarMapData(String timeDateStr, String timeFormat) {
+        //将传递时间字符串转化为localDate类型时间
+        LocalDate transDate = LocalDate.parse(timeDateStr, DateTimeFormatter.ofPattern(timeFormat));
+        Map<Integer, Map<Integer, Long>> dayToLiftStatusToNum = new HashMap<>();
+        if (transDate != null) {
+            for (int monthDay = 1; monthDay <= transDate.getMonthValue(); monthDay++) {
+                Map<Integer, Long> liftStatusToNum = new HashMap<>();
+                for (int liftStatus : CommonConstants.PlatformCalendarConstants.LIFT_STATUS_ARRAY) {
+                    liftStatusToNum.put(liftStatus, 0L);
+                }
+                dayToLiftStatusToNum.put(monthDay, liftStatusToNum);
+            }
+        }
+        return dayToLiftStatusToNum;
+    }
+
 }

+ 34 - 5
lift-system-service/src/main/resources/mapper/CommonDataMapper.xml

@@ -12,6 +12,31 @@
         </if>
     </sql>
 
+    <!-- 电梯信息 sql -->
+    <sql id="liftInfoSql">
+        l.lift_id as liftId,
+        l.registration_code as registrationCode,
+        l.lift_code as liftCode,
+        p.project_name as projectName,
+        ui.name as workerName,
+    </sql>
+
+    <!-- 电梯信息关联字段 sql -->
+    <sql id="liftInfoJoinSql">
+        left join
+            project_lift_relevance plr
+        on
+            l.id = plr.lift_id
+        left join
+            project p
+        on
+            plr.project_id = p.id
+        left join
+            user_info ui
+        on
+            plr.worker_id = ui.user_id
+    </sql>
+
     <!-- 获取维保计划数据 -->
     <select id="getMtPlanData" parameterType="cn.com.ty.lift.system.homepage.dao.dto.request.LiftDataRequest"
             resultType="cn.com.ty.lift.system.homepage.dao.model.MtPlanDataModel">
@@ -55,9 +80,9 @@
         where
             mr.mt_company_id = #{mtCompanyId}
         and
-            mr.create_date <![CDATA[ >= ]]> #{startDateStr}
+            mr.work_date <![CDATA[ >= ]]> #{startDateStr}
         and
-            mr.create_date <![CDATA[ <= ]]> #{endDateStr}
+            mr.work_date <![CDATA[ <= ]]> #{endDateStr}
     </select>
 
     <!-- 获取公司项目数 -->
@@ -73,7 +98,7 @@
         having
             1=1
             <!-- 判断公司id是否在集合中 -->
-            <include refid="setCompanyId"/>
+            <include refid="setCompanyId"></include>
 
     </select>
 
@@ -89,7 +114,7 @@
         having
             1=1
             <!-- 判断公司id是否在集合中 -->
-            <include refid="setCompanyId"/>
+            <include refid="setCompanyId"></include>
     </select>
 
     <!-- 获取公司急修记录 -->
@@ -105,7 +130,11 @@
         having
             1=1
             <!-- 判断公司id是否在集合中 -->
-            <include refid="setCompanyId"/>
+            <include refid="setCompanyId"></include>
     </select>
 
+    <!--################################################################################-->
+    <!--#############################电梯日历数据库代码####################################-->
+    <!--################################################################################-->
+
 </mapper>