Showing
1 changed file
with
7 additions
and
3 deletions
| ... | @@ -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()) | ... | ... |
-
Please register or login to post a comment