|
@@ -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()) {
|