zhuyifan

fix

...@@ -30,6 +30,8 @@ import java.time.ZonedDateTime; ...@@ -30,6 +30,8 @@ import java.time.ZonedDateTime;
30 import java.time.temporal.TemporalAdjusters; 30 import java.time.temporal.TemporalAdjusters;
31 import java.util.ArrayList; 31 import java.util.ArrayList;
32 import java.util.Collections; 32 import java.util.Collections;
33 +import java.util.Comparator;
34 +import java.util.LinkedHashSet;
33 import java.util.List; 35 import java.util.List;
34 import java.util.Map; 36 import java.util.Map;
35 import java.util.Objects; 37 import java.util.Objects;
...@@ -88,15 +90,17 @@ public class AutoCreateMealOrderTask { ...@@ -88,15 +90,17 @@ public class AutoCreateMealOrderTask {
88 90
89 // 查询本周已订餐学生 ID 91 // 查询本周已订餐学生 ID
90 final var mealOrders = mealOrderServiceRpcClient.queryMealOrdersByCondition(enterpriseId, null, thisWeekStart.toInstant().toEpochMilli(), thisWeekEnd.toInstant().toEpochMilli()); 92 final var mealOrders = mealOrderServiceRpcClient.queryMealOrdersByCondition(enterpriseId, null, thisWeekStart.toInstant().toEpochMilli(), thisWeekEnd.toInstant().toEpochMilli());
91 - final var dinerIds = mealOrders.stream().map(SingleMealOrderRpcResponse::getDinerId).collect(Collectors.toSet()); 93 + final var dinerIds = mealOrders.stream().map(SingleMealOrderRpcResponse::getDinerId).sorted(Comparator.comparingInt(Integer::intValue)).collect(Collectors.toCollection(LinkedHashSet::new));
94 + log.info("本周已订餐学生 ID:{}", dinerIds);
92 95
93 // 所有学生 & 未订餐学生 96 // 所有学生 & 未订餐学生
94 final var allDiners = mealOrderServiceRpcClient.queryDinersByCondition(enterpriseId, null, null, null); 97 final var allDiners = mealOrderServiceRpcClient.queryDinersByCondition(enterpriseId, null, null, null);
95 - final var notReservedDiners = allDiners.stream().filter(diner -> !dinerIds.contains(diner.getId())).toList(); 98 + final var notReservedDiners = allDiners.stream().filter(diner -> !dinerIds.contains(diner.getId())).sorted(Comparator.comparingInt(SingleDinerRpcResponse::getId)).toList();
96 if (notReservedDiners.isEmpty()) { 99 if (notReservedDiners.isEmpty()) {
97 log.info("无未订餐学生,跳过自动订餐任务"); 100 log.info("无未订餐学生,跳过自动订餐任务");
98 return; 101 return;
99 } 102 }
103 + log.info("本周未订餐学生:{}", notReservedDiners.stream().map(SingleDinerRpcResponse::getId).toList());
100 104
101 final var mpAccountDinerRefMap = mealOrderServiceRpcClient.queryMpAccountDinerRefsByCondition(enterpriseId, Collections.emptyList(), notReservedDiners.stream().map(SingleDinerRpcResponse::getId).toList()).stream().collect(Collectors.toMap(SingleMpAccountDinerRefRpcResponse::getDinerId, Function.identity(), (v1, v2) -> v1)); 105 final var mpAccountDinerRefMap = mealOrderServiceRpcClient.queryMpAccountDinerRefsByCondition(enterpriseId, Collections.emptyList(), notReservedDiners.stream().map(SingleDinerRpcResponse::getId).toList()).stream().collect(Collectors.toMap(SingleMpAccountDinerRefRpcResponse::getDinerId, Function.identity(), (v1, v2) -> v1));
102 106
...@@ -137,7 +141,7 @@ public class AutoCreateMealOrderTask { ...@@ -137,7 +141,7 @@ public class AutoCreateMealOrderTask {
137 return MealOrderCreation.newBuilder() 141 return MealOrderCreation.newBuilder()
138 .setClientId(diner.getClientId()) 142 .setClientId(diner.getClientId())
139 .setMenuId(menu.getId()) 143 .setMenuId(menu.getId())
140 - .setAccountId(mpAccountDinerRef.getId()) 144 + .setAccountId(mpAccountDinerRef.getAccountId())
141 .setOrderMethod(MealOrderOrderMethodEnum.MEAL_ORDER_METHOD_SYSTEM) 145 .setOrderMethod(MealOrderOrderMethodEnum.MEAL_ORDER_METHOD_SYSTEM)
142 .setDinerId(diner.getId()) 146 .setDinerId(diner.getId())
143 .setDinerName(diner.getName()) 147 .setDinerName(diner.getName())
......