honorfire преди 6 месеца
родител
ревизия
3dea208ed9

+ 1 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/SemesterMapper.xml

@@ -8,7 +8,7 @@
             IFNULL (se.NAME,'') AS name,
             IFNULL (se.MULTIYEAR ,'') AS mulityear,
             IFNULL (se.QUATER  ,'') AS quater,
-            IFNULL (se.START_TIME ,'') AS starTime,
+            IFNULL (se.START_TIME ,'') AS startTime,
             IFNULL (se.IS_NOW ,'') AS isNow,
             IFNULL(( SELECT dd1.DICT_LABEL FROM (SELECT d1.DICT_LABEL,d1.DICT_VALUE  FROM  DEV_DICT d1 WHERE PARENT_ID = (SELECT d2.ID  FROM  DEV_DICT d2 WHERE d2.DICT_VALUE='SEMESTER_IS_NOW') )dd1 WHERE dd1.DICT_VALUE = TRIM(se.IS_NOW) ),'') AS isNowName
         FROM SEMESTER se

+ 22 - 5
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/StatisticsLearningProgressServiceImpl.java

@@ -2,6 +2,7 @@ package vip.xiaonuo.disk.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import vip.xiaonuo.common.page.CommonPageRequest;
 import vip.xiaonuo.disk.mapper.StatisticsLearningProgressMapper;
@@ -105,20 +106,36 @@ public class StatisticsLearningProgressServiceImpl implements StatisticsLearning
         Calendar calendar = Calendar.getInstance();
 
         try {
-            // 如果指定了基准月份,解析并设置Calendar
-            if (baseStartMonth != null) {
-                Date date = sdf.parse(baseStartMonth);
+            String baseStartMonthStr="";
+            String baseEndMonthStr="";
+            if(StringUtils.isNotEmpty(baseStartMonth))
+            {
+                Date baseStartMonthDate = sdf.parse(baseStartMonth);
+                Calendar baseStartMonthCalendar = Calendar.getInstance();
+                baseStartMonthCalendar.setTime(baseStartMonthDate);
+                baseStartMonthStr=sdf.format(baseStartMonthCalendar.getTime());
+            }
+
+
+            //默认以当前月份往前推,如果设定了时间范围,则使用指定的时间范围的结束时间往前推
+            if (StringUtils.isNotEmpty(baseEndMonth)) {
+                Date date = sdf.parse(baseEndMonth);
                 calendar.setTime(date);
+
             }
+            baseEndMonthStr=sdf.format(calendar.getTime());
+            months.add(baseEndMonthStr);
 
             // 将Calendar调整到基准月份的第一天(避免日期溢出问题)
             calendar.set(Calendar.DAY_OF_MONTH, 1);
 
             // 往前推7个月(共8个月)
-            for (int i = 7; i >= 0; i--) {
+            for (int i = 1; i <= 7; i++) {
                 Calendar temp = (Calendar) calendar.clone();
                 temp.add(Calendar.MONTH, -i); // 往前减i个月
-                months.add(sdf.format(temp.getTime()));
+                String calculateMonth=sdf.format(temp.getTime());
+                months.add(calculateMonth);
+                if(StringUtils.isNotEmpty(baseStartMonth))if(baseStartMonthStr.equals(calculateMonth))break;
             }
 
         } catch (Exception e) {