Bladeren bron

no message

ly 1 jaar geleden
bovenliggende
commit
41b32a1ff0

+ 28 - 11
src/main/java/cn/ezhizao/project/business/order/service/impl/BizArchiveInputServiceImpl.java

@@ -561,23 +561,40 @@ public class BizArchiveInputServiceImpl extends ServiceImpl<BizArchiveInputMappe
                         int year = calendar2.get(Calendar.YEAR);
                         int month = calendar2.get(Calendar.MONTH) + 1; // 月份从 0 开始,所以加 1
                         Date date = new Date();
-                        calendar.setTime(date);
+                       if (l.getTaskTypeId() == 1){
+                           // 创建一个 Calendar 实例并设置为当前时间
+                           Calendar calendar3 = Calendar.getInstance();
+                           calendar3.setTime(date);
+                           // 减去一个月
+                           calendar3.add(Calendar.MONTH, -1);
+                           // 获取前一个月的时间
+                           Date lastMonthDate = calendar3.getTime();
+                           calendar.setTime(lastMonthDate);
+                       }else {
+                           calendar.setTime(date);
+                       }
                         int year1 = calendar.get(Calendar.YEAR);
                         int month1 = calendar.get(Calendar.MONTH) + 1; // 月份从 0 开始,所以加 1
                         LocalDate date1 = LocalDate.of(year1, month1, 1);
                         LocalDate date2 = LocalDate.of(year, month, 1);
                         Period period = Period.between(date2, date1);
                         int months = period.getYears() * 12 + period.getMonths()+1;
-
-                        // 获取当前日期的 LocalDate 对象
-                        LocalDate now = LocalDate.now();
-
-                        // 将 LocalDate 对象的日期设置为当前月份的第一天
-                        LocalDate firstDayOfMonth = now.withDayOfMonth(1);
-
-                        // 将 LocalDate 对象转换为 Date 对象
-                        Date endDate = Date.from(firstDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());
-
+                        Date endDate = null;
+                        if (l.getTaskTypeId()==1){
+                            // 获取当前日期的 LocalDate 对象
+                            LocalDate now = LocalDate.now();
+                            // 获取上一个月的第一天
+                            LocalDate firstDayOfLastMonth = now.minusMonths(1).withDayOfMonth(1);
+                            // 将 LocalDate 对象转换为 Date 对象
+                             endDate = Date.from(firstDayOfLastMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());
+                        }else {
+                            // 获取当前日期的 LocalDate 对象
+                            LocalDate now = LocalDate.now();
+                            // 将 LocalDate 对象的日期设置为当前月份的第一天
+                            LocalDate firstDayOfMonth = now.withDayOfMonth(1);
+                            // 将 LocalDate 对象转换为 Date 对象
+                             endDate = Date.from(firstDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());
+                        }
                         // 已完成月小于结束月才会不停工单只修改完成时间。假设完成月大于剩余的结束月则直接停止。
                         // 一次都没完成的话,也要停止。
 //                        if (records.stream().anyMatch(v -> (v.getYear() + v.getMonth()).compareTo(endDate.toString("yyyyMM")) >= 0) || records.isEmpty()) {