zhuyifan

fix(logic): 2025-09-28特殊订餐脚本处理

...@@ -3,11 +3,19 @@ package com.infoloop.tianting.logic.task; ...@@ -3,11 +3,19 @@ package com.infoloop.tianting.logic.task;
3 import com.infoloop.tianting.clientinventoryservice.SingleClientRpcResponse; 3 import com.infoloop.tianting.clientinventoryservice.SingleClientRpcResponse;
4 import com.infoloop.tianting.context.LoginContextHolder; 4 import com.infoloop.tianting.context.LoginContextHolder;
5 import com.infoloop.tianting.enums.LoginSourceEnum; 5 import com.infoloop.tianting.enums.LoginSourceEnum;
6 -import com.infoloop.tianting.mealorderservice.*; 6 +import com.infoloop.tianting.mealorderservice.MealOrderCreation;
7 +import com.infoloop.tianting.mealorderservice.MealOrderOrderMethodEnum;
8 +import com.infoloop.tianting.mealorderservice.MenuSchedule;
9 +import com.infoloop.tianting.mealorderservice.SingleDinerMealSuspensionRecordRpcResponse;
10 +import com.infoloop.tianting.mealorderservice.SingleDinerRpcResponse;
11 +import com.infoloop.tianting.mealorderservice.SingleGradeClassRpcResponse;
12 +import com.infoloop.tianting.mealorderservice.SingleMealMenuRecordRpcResponse;
13 +import com.infoloop.tianting.mealorderservice.SingleMealOrderRpcResponse;
14 +import com.infoloop.tianting.mealorderservice.SingleMpAccountDinerRefRpcResponse;
15 +import com.infoloop.tianting.service.SuspensionService;
7 import com.infoloop.tianting.service.client.ClientInventoryServiceRpcClient; 16 import com.infoloop.tianting.service.client.ClientInventoryServiceRpcClient;
8 import com.infoloop.tianting.service.client.DeliveryRuleServiceRpcClient; 17 import com.infoloop.tianting.service.client.DeliveryRuleServiceRpcClient;
9 import com.infoloop.tianting.service.client.MealOrderServiceRpcClient; 18 import com.infoloop.tianting.service.client.MealOrderServiceRpcClient;
10 -import com.infoloop.tianting.service.SuspensionService;
11 import com.infoloop.tianting.store.WeeklyTaskStore; 19 import com.infoloop.tianting.store.WeeklyTaskStore;
12 import com.infoloop.tianting.utils.DateUtil; 20 import com.infoloop.tianting.utils.DateUtil;
13 import lombok.RequiredArgsConstructor; 21 import lombok.RequiredArgsConstructor;
...@@ -22,6 +30,7 @@ import java.time.LocalDateTime; ...@@ -22,6 +30,7 @@ import java.time.LocalDateTime;
22 import java.time.LocalTime; 30 import java.time.LocalTime;
23 import java.time.ZonedDateTime; 31 import java.time.ZonedDateTime;
24 import java.time.temporal.TemporalAdjusters; 32 import java.time.temporal.TemporalAdjusters;
33 +import java.time.temporal.WeekFields;
25 import java.util.ArrayList; 34 import java.util.ArrayList;
26 import java.util.Collections; 35 import java.util.Collections;
27 import java.util.Comparator; 36 import java.util.Comparator;
...@@ -277,7 +286,9 @@ public class AutoCreateMealOrderTask { ...@@ -277,7 +286,9 @@ public class AutoCreateMealOrderTask {
277 .mapToObj(i -> { 286 .mapToObj(i -> {
278 final var date = nextWeekStart.plusDays(i); 287 final var date = nextWeekStart.plusDays(i);
279 final var dateStr = date.format(DateUtil.YYYY_MM_DD); 288 final var dateStr = date.format(DateUtil.YYYY_MM_DD);
280 - 289 + if (!isThisWeek("2025-09-28") && "2025-09-28".equals(dateStr)) {//TODO 临时处理
290 + return null;
291 + }
281 // 检查是否为节假日 292 // 检查是否为节假日
282 final var status = holidayMap.get(dateStr); 293 final var status = holidayMap.get(dateStr);
283 if (status != null && status != 0 && status != 2) { 294 if (status != null && status != 0 && status != 2) {
...@@ -301,6 +312,17 @@ public class AutoCreateMealOrderTask { ...@@ -301,6 +312,17 @@ public class AutoCreateMealOrderTask {
301 .toList(); 312 .toList();
302 } 313 }
303 314
315 + public static boolean isThisWeek(String date) {
316 + LocalDate today = LocalDate.now();
317 + LocalDate targetDate = LocalDate.parse(date);
318 + WeekFields weekFields = WeekFields.ISO;
319 + int todayWeek = today.get(weekFields.weekOfWeekBasedYear());
320 + int targetWeek = targetDate.get(weekFields.weekOfWeekBasedYear());
321 + int todayYear = today.get(weekFields.weekBasedYear());
322 + int targetYear = targetDate.get(weekFields.weekBasedYear());
323 + return todayYear == targetYear && todayWeek == targetWeek;
324 + }
325 +
304 private LocalDate getThisWeekDay(LocalDate now, DayOfWeek target) { 326 private LocalDate getThisWeekDay(LocalDate now, DayOfWeek target) {
305 LocalDate monday = now.with(DayOfWeek.MONDAY); 327 LocalDate monday = now.with(DayOfWeek.MONDAY);
306 return monday.plusDays(target.getValue() - 1L); 328 return monday.plusDays(target.getValue() - 1L);
......