zhuyifan

fix

......@@ -30,6 +30,8 @@ import java.time.ZonedDateTime;
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
......@@ -88,15 +90,17 @@ public class AutoCreateMealOrderTask {
// 查询本周已订餐学生 ID
final var mealOrders = mealOrderServiceRpcClient.queryMealOrdersByCondition(enterpriseId, null, thisWeekStart.toInstant().toEpochMilli(), thisWeekEnd.toInstant().toEpochMilli());
final var dinerIds = mealOrders.stream().map(SingleMealOrderRpcResponse::getDinerId).collect(Collectors.toSet());
final var dinerIds = mealOrders.stream().map(SingleMealOrderRpcResponse::getDinerId).sorted(Comparator.comparingInt(Integer::intValue)).collect(Collectors.toCollection(LinkedHashSet::new));
log.info("本周已订餐学生 ID:{}", dinerIds);
// 所有学生 & 未订餐学生
final var allDiners = mealOrderServiceRpcClient.queryDinersByCondition(enterpriseId, null, null, null);
final var notReservedDiners = allDiners.stream().filter(diner -> !dinerIds.contains(diner.getId())).toList();
final var notReservedDiners = allDiners.stream().filter(diner -> !dinerIds.contains(diner.getId())).sorted(Comparator.comparingInt(SingleDinerRpcResponse::getId)).toList();
if (notReservedDiners.isEmpty()) {
log.info("无未订餐学生,跳过自动订餐任务");
return;
}
log.info("本周未订餐学生:{}", notReservedDiners.stream().map(SingleDinerRpcResponse::getId).toList());
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));
......@@ -137,7 +141,7 @@ public class AutoCreateMealOrderTask {
return MealOrderCreation.newBuilder()
.setClientId(diner.getClientId())
.setMenuId(menu.getId())
.setAccountId(mpAccountDinerRef.getId())
.setAccountId(mpAccountDinerRef.getAccountId())
.setOrderMethod(MealOrderOrderMethodEnum.MEAL_ORDER_METHOD_SYSTEM)
.setDinerId(diner.getId())
.setDinerName(diner.getName())
......