Kaynağa Gözat

电梯日历信息调整

黄远 5 yıl önce
ebeveyn
işleme
8cfc6ad9f6

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

@@ -30,11 +30,6 @@ public class PlatformCalendarRequest {
      */
     private String monthBeginStr;
 
-    /**
-     * 当前时间
-     */
-    private String nowStr;
-
     /**
      * 月末时间 年月日
      */

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

@@ -12,7 +12,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -105,8 +104,11 @@ public class PlatformCalendarService {
         //获取年检记录,并将年检记录转化为 天 -> 年检数据(电梯 -> 年检数据)
         Map<Integer, Map<Long, List<AnnualInspectionDataModel>>> dayToAnnualInspection = getDayToAnnualInspection(
                 platformCalendarRequest);
+        //获取请求日期的天数
+        int monthDayNum = CommonUtil.getLastDayNumOfMonthFromDateStr(
+                platformCalendarRequest.getRequestDateDayStr(), CommonConstants.PlatformCalendarConstants.REQUEST_DATE_FORMAT);
         //循环设置每日的数据
-        for (int day = 1; day <= LocalDate.now().getDayOfMonth(); day++) {
+        for (int day = 1; day <= monthDayNum; day++) {
             addCalendarLift(dayToCalendarLift, dayToMtRecord, dayToMtPlan, dayToEmergencyRecord, dayToAnnualInspection, day);
         }
         return dayToCalendarLift;

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

@@ -94,7 +94,7 @@ public class CommonUtil {
     public static void setMonthDate(PlatformCalendarRequest platformCalendarRequest) {
         String dateStr = platformCalendarRequest.getRequestDateStr();
         //如果请求时间为空,就设置带天的请求时间
-        if(StringUtils.isBlank(dateStr)) {
+        if (StringUtils.isBlank(dateStr)) {
             dateStr = platformCalendarRequest.getRequestDateDayStr();
         }
         Map<String, String> dateTypeToDateValue = CommonUtil.getMonthDate(dateStr,
@@ -102,9 +102,6 @@ public class CommonUtil {
         //设置月初时间
         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));
@@ -121,7 +118,8 @@ public class CommonUtil {
         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++) {
+            int dayNum = getLastDayNumOfMonth(transDate);
+            for (int monthDay = 1; monthDay <= dayNum; monthDay++) {
                 Map<Integer, Long> liftStatusToNum = new HashMap<>();
                 for (int liftStatus : CommonConstants.PlatformCalendarConstants.LIFT_STATUS_ARRAY) {
                     liftStatusToNum.put(liftStatus, 0L);
@@ -205,4 +203,30 @@ public class CommonUtil {
         return dayToDataMap;
     }
 
+    /**
+     * @param
+     * @return
+     * @description 获取某月的天数
+     */
+    public static int getLastDayNumOfMonth(LocalDate date) {
+        if (date != null) {
+            return date.with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
+        }
+        return 0;
+    }
+
+    /**
+     * @param
+     * @return
+     * @description 获取给点日期字符串指定格式的月的天数
+     * @date 2020/2/28 2:57 下午
+     */
+    public static int getLastDayNumOfMonthFromDateStr(String dateStr, String format) {
+        if (StringUtils.isNotBlank(dateStr)) {
+            LocalDate date = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern(format));
+            return getLastDayNumOfMonth(date);
+        }
+        return 0;
+    }
+
 }