Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jiujian
/
client-customer-order-api
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
zhuyifan
2025-04-22 19:04:48 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
a31ee6d2f88aed23ebb31d71e6132773c4a0eb68
a31ee6d2
1 parent
b657f154
fix
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
3 deletions
src/main/java/com/infoloop/tianting/logic/task/AutoCreateMealOrderTask.java
src/main/java/com/infoloop/tianting/logic/task/AutoCreateMealOrderTask.java
View file @
a31ee6d
...
...
@@ -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
.
get
Account
Id
())
.
setOrderMethod
(
MealOrderOrderMethodEnum
.
MEAL_ORDER_METHOD_SYSTEM
)
.
setDinerId
(
diner
.
getId
())
.
setDinerName
(
diner
.
getName
())
...
...
Please
register
or
login
to post a comment