wangyingyang

ifx kds

No preview for this file type
...@@ -4,6 +4,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport; ...@@ -4,6 +4,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport;
4 import com.infoloop.tianting.model.dto.ClientLabelDTO; 4 import com.infoloop.tianting.model.dto.ClientLabelDTO;
5 import com.infoloop.tianting.model.dto.ClientLabelDTO.LabelDto; 5 import com.infoloop.tianting.model.dto.ClientLabelDTO.LabelDto;
6 import com.infoloop.tianting.model.dto.KdsDTO; 6 import com.infoloop.tianting.model.dto.KdsDTO;
7 +import com.infoloop.tianting.model.dto.KdsDTO.KdsMealDetailDto;
7 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDto; 8 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDto;
8 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuDto; 9 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuDto;
9 import com.infoloop.tianting.service.KdsService; 10 import com.infoloop.tianting.service.KdsService;
...@@ -45,4 +46,11 @@ public class KdsController { ...@@ -45,4 +46,11 @@ public class KdsController {
45 return kdsService.getOrderDetailByLocation(queryDto); 46 return kdsService.getOrderDetailByLocation(queryDto);
46 } 47 }
47 48
49 + @ApiOperation(value = "kds获取餐别详情")
50 + @PostMapping("/kds/mealDetails")
51 + @ResponseStatus(HttpStatus.OK)
52 + public List<KdsMealDetailDto> getMealDetail() {
53 + return kdsService.getMealDetail();
54 + }
55 +
48 } 56 }
......
...@@ -29,6 +29,7 @@ public class KdsDTO { ...@@ -29,6 +29,7 @@ public class KdsDTO {
29 private String remark; 29 private String remark;
30 private CustomerNotice customerNotice; 30 private CustomerNotice customerNotice;
31 private String adjustSkuRemark; 31 private String adjustSkuRemark;
32 + private String mealTime;
32 } 33 }
33 34
34 @Data 35 @Data
...@@ -51,6 +52,7 @@ public class KdsDTO { ...@@ -51,6 +52,7 @@ public class KdsDTO {
51 @ApiModel(description = "KdsOrderSkuDto") 52 @ApiModel(description = "KdsOrderSkuDto")
52 public static class KdsOrderSkuDto { 53 public static class KdsOrderSkuDto {
53 private String showName; 54 private String showName;
55 + private String skuCode;
54 private Integer totalCount; 56 private Integer totalCount;
55 private List<KdsOrderSkuDetailDto> orderList; 57 private List<KdsOrderSkuDetailDto> orderList;
56 } 58 }
...@@ -66,6 +68,7 @@ public class KdsDTO { ...@@ -66,6 +68,7 @@ public class KdsDTO {
66 private String tableCode; 68 private String tableCode;
67 private Integer totalCount; 69 private Integer totalCount;
68 private String remark; 70 private String remark;
71 + private String mealTime;
69 private CustomerNotice customerNotice; 72 private CustomerNotice customerNotice;
70 private List<KdsOrderLocationDetailDto> orderDetailList; 73 private List<KdsOrderLocationDetailDto> orderDetailList;
71 } 74 }
...@@ -77,7 +80,7 @@ public class KdsDTO { ...@@ -77,7 +80,7 @@ public class KdsDTO {
77 @ApiModel(description = "KdsOrderSkuDto") 80 @ApiModel(description = "KdsOrderSkuDto")
78 public static class KdsOrderSkuQueryDto { 81 public static class KdsOrderSkuQueryDto {
79 private ServeStatusEnum serveStatus; 82 private ServeStatusEnum serveStatus;
80 - private Integer categoryId; 83 + private Integer mealId;
81 } 84 }
82 85
83 @Data 86 @Data
...@@ -87,6 +90,17 @@ public class KdsDTO { ...@@ -87,6 +90,17 @@ public class KdsDTO {
87 @ApiModel(description = "KdsOrderLocationQueryDto") 90 @ApiModel(description = "KdsOrderLocationQueryDto")
88 public static class KdsOrderLocationQueryDto { 91 public static class KdsOrderLocationQueryDto {
89 private OrderStatusEnum orderStatus; 92 private OrderStatusEnum orderStatus;
90 - private Integer categoryId; 93 + private Integer mealId;
94 + }
95 +
96 + @Data
97 + @Builder
98 + @AllArgsConstructor
99 + @NoArgsConstructor
100 + @ApiModel(description = "KdsMealDetailDto")
101 + public static class KdsMealDetailDto {
102 + private Integer mealId;
103 + private String mealName;
104 + private Integer totalCount;
91 } 105 }
92 } 106 }
......
...@@ -562,9 +562,7 @@ public class OrderDbDTO { ...@@ -562,9 +562,7 @@ public class OrderDbDTO {
562 @ToString 562 @ToString
563 @ApiModel(description = "批量修改菜品细节信息") 563 @ApiModel(description = "批量修改菜品细节信息")
564 public static class OrderDetailBatchUpdateDto { 564 public static class OrderDetailBatchUpdateDto {
565 - private Integer updatedBy;
566 private OrderSourceEnum updatedSource; 565 private OrderSourceEnum updatedSource;
567 - private Integer enterpriseId;
568 private List<OrderDetailUpdateDto> details; 566 private List<OrderDetailUpdateDto> details;
569 } 567 }
570 568
......
1 package com.infoloop.tianting.service; 1 package com.infoloop.tianting.service;
2 2
3 +import com.infoloop.tianting.model.dto.KdsDTO.KdsMealDetailDto;
3 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDto; 4 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDto;
4 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationQueryDto; 5 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationQueryDto;
5 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuDto; 6 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuDto;
...@@ -11,4 +12,6 @@ public interface KdsService { ...@@ -11,4 +12,6 @@ public interface KdsService {
11 List<KdsOrderSkuDto> getOrderDetailBySku(KdsOrderSkuQueryDto queryDto); 12 List<KdsOrderSkuDto> getOrderDetailBySku(KdsOrderSkuQueryDto queryDto);
12 13
13 List<KdsOrderLocationDto> getOrderDetailByLocation(KdsOrderLocationQueryDto queryDto); 14 List<KdsOrderLocationDto> getOrderDetailByLocation(KdsOrderLocationQueryDto queryDto);
15 +
16 + List<KdsMealDetailDto> getMealDetail();
14 } 17 }
......
...@@ -28,6 +28,7 @@ import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrde ...@@ -28,6 +28,7 @@ import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrde
28 import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse; 28 import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse;
29 import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrderRpcRequest; 29 import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrderRpcRequest;
30 import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrderRpcResponse; 30 import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrderRpcResponse;
31 +import com.infoloop.tianting.context.LoginContextHolder;
31 import com.infoloop.tianting.enums.OrderTypeEnum; 32 import com.infoloop.tianting.enums.OrderTypeEnum;
32 import com.infoloop.tianting.model.common.PageResult; 33 import com.infoloop.tianting.model.common.PageResult;
33 import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDetailDto; 34 import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDetailDto;
...@@ -39,6 +40,7 @@ import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto; ...@@ -39,6 +40,7 @@ import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto;
39 import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByPaginationDto; 40 import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByPaginationDto;
40 import com.infoloop.tianting.model.dto.OrderDbDTO.UpdateOrderDto; 41 import com.infoloop.tianting.model.dto.OrderDbDTO.UpdateOrderDto;
41 import io.swagger.models.auth.In; 42 import io.swagger.models.auth.In;
43 +import java.time.LocalDate;
42 import java.time.ZoneOffset; 44 import java.time.ZoneOffset;
43 import java.util.ArrayList; 45 import java.util.ArrayList;
44 import java.util.List; 46 import java.util.List;
...@@ -120,6 +122,7 @@ public class OrderServiceRpcClient { ...@@ -120,6 +122,7 @@ public class OrderServiceRpcClient {
120 122
121 public BatchUpdateClientCustomerOrderDetailsRpcResponse batchUpdateClientCustomerOrderDetails( 123 public BatchUpdateClientCustomerOrderDetailsRpcResponse batchUpdateClientCustomerOrderDetails(
122 OrderDetailBatchUpdateDto orderDetailBatchUpdateDto) { 124 OrderDetailBatchUpdateDto orderDetailBatchUpdateDto) {
125 + final var operatorLoginInfo = LoginContextHolder.getLoginInfo();
123 final var modifications = orderDetailBatchUpdateDto.getDetails().stream().map( d-> { 126 final var modifications = orderDetailBatchUpdateDto.getDetails().stream().map( d-> {
124 MealDetail mealDetail = MealDetail.newBuilder().build();; 127 MealDetail mealDetail = MealDetail.newBuilder().build();;
125 Integer menuDetailId = 0; 128 Integer menuDetailId = 0;
...@@ -130,7 +133,7 @@ public class OrderServiceRpcClient { ...@@ -130,7 +133,7 @@ public class OrderServiceRpcClient {
130 if (d.getShouldUpdateMenuDetailId()) { 133 if (d.getShouldUpdateMenuDetailId()) {
131 menuDetailId = d.getMenuDetailId(); 134 menuDetailId = d.getMenuDetailId();
132 final var menuDetail = menuServiceRpcClient.getMenuDetailById( 135 final var menuDetail = menuServiceRpcClient.getMenuDetailById(
133 - orderDetailBatchUpdateDto.getEnterpriseId(), menuDetailId).getResponse(); 136 + operatorLoginInfo.getEnterpriseId(), menuDetailId).getResponse();
134 mealId = menuDetail.getMealId(); 137 mealId = menuDetail.getMealId();
135 categoryId = menuDetail.getCategoryId(); 138 categoryId = menuDetail.getCategoryId();
136 skuId = menuDetail.getSkuId(); 139 skuId = menuDetail.getSkuId();
...@@ -192,8 +195,8 @@ public class OrderServiceRpcClient { ...@@ -192,8 +195,8 @@ public class OrderServiceRpcClient {
192 } 195 }
193 ).collect(Collectors.toList()); 196 ).collect(Collectors.toList());
194 final var request = BatchUpdateClientCustomerOrderDetailsRpcRequest.newBuilder() 197 final var request = BatchUpdateClientCustomerOrderDetailsRpcRequest.newBuilder()
195 - .setEnterpriseId(orderDetailBatchUpdateDto.getEnterpriseId()) 198 + .setEnterpriseId(operatorLoginInfo.getEnterpriseId())
196 - .setUpdatedBy(orderDetailBatchUpdateDto.getUpdatedBy()) 199 + .setUpdatedBy(operatorLoginInfo.getId())
197 .setUpdateSourceValue(orderDetailBatchUpdateDto.getUpdatedSource().getNumber()) 200 .setUpdateSourceValue(orderDetailBatchUpdateDto.getUpdatedSource().getNumber())
198 .addAllModifications(modifications) 201 .addAllModifications(modifications)
199 .build(); 202 .build();
...@@ -258,7 +261,7 @@ public class OrderServiceRpcClient { ...@@ -258,7 +261,7 @@ public class OrderServiceRpcClient {
258 .setMealDetailJson(mealDetail) 261 .setMealDetailJson(mealDetail)
259 // .setAdjustSkuRemark(orderDetailDto.getAdjustSkuRemark()) 262 // .setAdjustSkuRemark(orderDetailDto.getAdjustSkuRemark())
260 .setServeStatus(ServeStatusEnum.SERVE_NOT_START) 263 .setServeStatus(ServeStatusEnum.SERVE_NOT_START)
261 - .setShouldCreateAdjustSkuRemark(true) 264 +// .setShouldCreateAdjustSkuRemark(true)
262 .setShouldCreatePrice(true) 265 .setShouldCreatePrice(true)
263 .setShouldCreateMealDetailJson(true) 266 .setShouldCreateMealDetailJson(true)
264 .setSkuId(orderDetailDto.getSkuId()) 267 .setSkuId(orderDetailDto.getSkuId())
...@@ -270,10 +273,19 @@ public class OrderServiceRpcClient { ...@@ -270,10 +273,19 @@ public class OrderServiceRpcClient {
270 .addAllDoctors(createOrderDto.getCustomerNoticeJson().getDoctors()) 273 .addAllDoctors(createOrderDto.getCustomerNoticeJson().getDoctors())
271 .build(); 274 .build();
272 275
276 + //判断用餐时间是否是当天
277 + final var mealDate = createOrderDto.getMealTime().toLocalDate();
278 + final var todayDate = LocalDate.now();
279 + OrderStatusEnum orderStatus = OrderStatusEnum.TO_PREPARE;
280 + if (mealDate.equals(todayDate)) {
281 + orderStatus = OrderStatusEnum.PREPARING;
282 + }
283 +
273 final var creation = ClientCustomerOrderCreation.newBuilder() 284 final var creation = ClientCustomerOrderCreation.newBuilder()
274 .setShouldCreateCustomerId(createOrderDto.getShouldCreateCustomerId()) 285 .setShouldCreateCustomerId(createOrderDto.getShouldCreateCustomerId())
275 .setCustomerId(createOrderDto.getCustomerId()) 286 .setCustomerId(createOrderDto.getCustomerId())
276 .setStallId(createOrderDto.getStallId()) 287 .setStallId(createOrderDto.getStallId())
288 + .setStatus(orderStatus)
277 .setAddress(createOrderDto.getAddress()) 289 .setAddress(createOrderDto.getAddress())
278 .setClientId(createOrderDto.getClientId()) 290 .setClientId(createOrderDto.getClientId())
279 .setShouldCreateOpenId(createOrderDto.getShouldCreateOpenId()) 291 .setShouldCreateOpenId(createOrderDto.getShouldCreateOpenId())
......
1 package com.infoloop.tianting.service.impl; 1 package com.infoloop.tianting.service.impl;
2 2
3 +import com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum;
3 import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderDetailRpcResponse; 4 import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderDetailRpcResponse;
4 import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse; 5 import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse;
5 import com.infoloop.tianting.context.LoginContextHolder; 6 import com.infoloop.tianting.context.LoginContextHolder;
7 +import com.infoloop.tianting.model.dto.KdsDTO.KdsMealDetailDto;
6 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDetailDto; 8 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDetailDto;
7 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDto; 9 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDto;
8 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationQueryDto; 10 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationQueryDto;
...@@ -12,15 +14,20 @@ import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuQueryDto; ...@@ -12,15 +14,20 @@ import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuQueryDto;
12 import com.infoloop.tianting.model.dto.OrderDbDTO.CustomerNotice; 14 import com.infoloop.tianting.model.dto.OrderDbDTO.CustomerNotice;
13 import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto; 15 import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto;
14 import com.infoloop.tianting.service.KdsService; 16 import com.infoloop.tianting.service.KdsService;
17 +import com.infoloop.tianting.service.MealService;
15 import com.infoloop.tianting.service.client.EnterpriseResourceServiceRpcClient; 18 import com.infoloop.tianting.service.client.EnterpriseResourceServiceRpcClient;
19 +import com.infoloop.tianting.service.client.MealServiceRpcClient;
16 import com.infoloop.tianting.service.client.MenuServiceRpcClient; 20 import com.infoloop.tianting.service.client.MenuServiceRpcClient;
17 import com.infoloop.tianting.service.client.OrderServiceRpcClient; 21 import com.infoloop.tianting.service.client.OrderServiceRpcClient;
22 +import com.infoloop.tianting.service.client.SkuServiceRpcClient;
18 import com.infoloop.tianting.service.client.WOperatorServiceRpcClient; 23 import com.infoloop.tianting.service.client.WOperatorServiceRpcClient;
24 +import com.infoloop.tianting.utils.DateUtil;
19 import java.time.LocalDate; 25 import java.time.LocalDate;
20 import java.time.LocalDateTime; 26 import java.time.LocalDateTime;
21 import java.util.ArrayList; 27 import java.util.ArrayList;
22 import java.util.List; 28 import java.util.List;
23 import java.util.stream.Collectors; 29 import java.util.stream.Collectors;
30 +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
24 import lombok.RequiredArgsConstructor; 31 import lombok.RequiredArgsConstructor;
25 import lombok.extern.slf4j.Slf4j; 32 import lombok.extern.slf4j.Slf4j;
26 import org.springframework.beans.factory.annotation.Autowired; 33 import org.springframework.beans.factory.annotation.Autowired;
...@@ -34,6 +41,8 @@ public class KdsServiceImpl implements KdsService { ...@@ -34,6 +41,8 @@ public class KdsServiceImpl implements KdsService {
34 private final OrderServiceRpcClient orderServiceRpcClient; 41 private final OrderServiceRpcClient orderServiceRpcClient;
35 private final EnterpriseResourceServiceRpcClient enterpriseResourceServiceRpcClient; 42 private final EnterpriseResourceServiceRpcClient enterpriseResourceServiceRpcClient;
36 private final WOperatorServiceRpcClient wOperatorServiceRpcClient; 43 private final WOperatorServiceRpcClient wOperatorServiceRpcClient;
44 + private final MealServiceRpcClient mealServiceRpcClient;
45 + private final SkuServiceRpcClient skuServiceRpcClient;
37 46
38 @Override 47 @Override
39 public List<KdsOrderSkuDto> getOrderDetailBySku(KdsOrderSkuQueryDto queryDto) { 48 public List<KdsOrderSkuDto> getOrderDetailBySku(KdsOrderSkuQueryDto queryDto) {
...@@ -59,10 +68,10 @@ public class KdsServiceImpl implements KdsService { ...@@ -59,10 +68,10 @@ public class KdsServiceImpl implements KdsService {
59 .enterpriseId(operatorLoginInfo.getEnterpriseId()) 68 .enterpriseId(operatorLoginInfo.getEnterpriseId())
60 .shouldFilterStallIds(shouldFilterStallIds) 69 .shouldFilterStallIds(shouldFilterStallIds)
61 .stallIds(stallIds) 70 .stallIds(stallIds)
62 - .shouldFilterCreatedAtTimeStart(true) 71 + .shouldFilterMealTimeStart(true)
63 - .createdAtTimeStart(todayZero) 72 + .mealTimeStart(todayZero)
64 - .shouldFilterCreatedAtTimeEnd(true) 73 + .shouldFilterMealTimeEnd(true)
65 - .createdAtTimeEnd(tomorrowZero) 74 + .mealTimeEnd(tomorrowZero)
66 .build(); 75 .build();
67 final var orderList = orderServiceRpcClient.getOrdersByCondition(queryOrderDto); 76 final var orderList = orderServiceRpcClient.getOrdersByCondition(queryOrderDto);
68 List<Integer> orderIds = orderList.stream() 77 List<Integer> orderIds = orderList.stream()
...@@ -71,7 +80,7 @@ public class KdsServiceImpl implements KdsService { ...@@ -71,7 +80,7 @@ public class KdsServiceImpl implements KdsService {
71 .collect(Collectors.toList()); 80 .collect(Collectors.toList());
72 final var orderDetailList = orderServiceRpcClient.getOrderDetailsByOrderIds(orderIds); 81 final var orderDetailList = orderServiceRpcClient.getOrderDetailsByOrderIds(orderIds);
73 final var filteredOrderDetailList = orderDetailList.stream() 82 final var filteredOrderDetailList = orderDetailList.stream()
74 - .filter(od -> od.getServeStatus() == queryDto.getServeStatus() && od.getCategoryId() == queryDto.getCategoryId()) 83 + .filter(od -> od.getServeStatus() == queryDto.getServeStatus() && od.getMealId() == queryDto.getMealId())
75 .collect(Collectors.toList()); 84 .collect(Collectors.toList());
76 85
77 //在所有的orderDetail里找出所有所有不同的menuDetailId,然后根据menuDetailId进行分类 86 //在所有的orderDetail里找出所有所有不同的menuDetailId,然后根据menuDetailId进行分类
...@@ -79,6 +88,13 @@ public class KdsServiceImpl implements KdsService { ...@@ -79,6 +88,13 @@ public class KdsServiceImpl implements KdsService {
79 .map(SingleClientCustomerOrderDetailRpcResponse::getMenuDetailId) 88 .map(SingleClientCustomerOrderDetailRpcResponse::getMenuDetailId)
80 .distinct() 89 .distinct()
81 .collect(Collectors.toList()); 90 .collect(Collectors.toList());
91 +
92 + final var skuIds = filteredOrderDetailList.stream()
93 + .map(SingleClientCustomerOrderDetailRpcResponse::getSkuId)
94 + .distinct()
95 + .collect(Collectors.toList());
96 + final var skus = skuServiceRpcClient.getDishSkusByIds(skuIds).getResponseList();
97 +
82 List<KdsOrderSkuDto> kdsOrderSkuList = new ArrayList<>(); 98 List<KdsOrderSkuDto> kdsOrderSkuList = new ArrayList<>();
83 for (Integer menuDetailId: menuDetailIds) { 99 for (Integer menuDetailId: menuDetailIds) {
84 // 找出该menuDetailId 的所有orderDetail 100 // 找出该menuDetailId 的所有orderDetail
...@@ -108,12 +124,22 @@ public class KdsServiceImpl implements KdsService { ...@@ -108,12 +124,22 @@ public class KdsServiceImpl implements KdsService {
108 .avoids(order.get().getCustomerNoticeJson().getAvoidsList()) 124 .avoids(order.get().getCustomerNoticeJson().getAvoidsList())
109 .build()) 125 .build())
110 .adjustSkuRemark(detail.getAdjustSkuRemark()) 126 .adjustSkuRemark(detail.getAdjustSkuRemark())
127 + .mealTime(DateUtil.formatDate(order.get().getMealTime()))
111 .build(); 128 .build();
112 kdsOrders.add(kdsOrder); 129 kdsOrders.add(kdsOrder);
113 } 130 }
131 + String skuCode = "";
132 + if (!curOrderDetails.isEmpty()) {
133 + final var skuId = curOrderDetails.get(0).getSkuId();
134 + final var sku = skus.stream().filter(s -> s.getId() == skuId).findFirst();
135 + if (sku.isPresent()) {
136 + skuCode = sku.get().getCode();
137 + }
138 + }
114 139
115 final var kdsOrderSku = KdsOrderSkuDto.builder() 140 final var kdsOrderSku = KdsOrderSkuDto.builder()
116 .showName(curOrderDetails.get(0).getShowName()) 141 .showName(curOrderDetails.get(0).getShowName())
142 + .skuCode(skuCode)
117 .totalCount(totalCount) 143 .totalCount(totalCount)
118 .orderList(kdsOrders) 144 .orderList(kdsOrders)
119 .build(); 145 .build();
...@@ -125,8 +151,75 @@ public class KdsServiceImpl implements KdsService { ...@@ -125,8 +151,75 @@ public class KdsServiceImpl implements KdsService {
125 151
126 } 152 }
127 153
154 + @Override
155 + public List<KdsMealDetailDto> getMealDetail() {
156 + // 获取当日用餐的所有的订单 和 订单明细
157 + LocalDate today = LocalDate.now();
158 + LocalDateTime todayZero = today.atStartOfDay();
159 + LocalDate tomorrow = today.plusDays(1);
160 + LocalDateTime tomorrowZero = tomorrow.atStartOfDay();
161 +
162 + final var operatorLoginInfo = LoginContextHolder.getLoginInfo();
163 +
164 + boolean shouldFilterStallIds = false;
165 + List<Integer> stallIds = new ArrayList<>();
166 + final var operator = wOperatorServiceRpcClient.getWOperatorById(operatorLoginInfo.getId()).getResponse();
167 + if (!operator.getIsSuper()) {
168 + shouldFilterStallIds = true;
169 + final var userResource = enterpriseResourceServiceRpcClient.getUserResources(
170 + operatorLoginInfo.getEnterpriseId(), operatorLoginInfo.getId());
171 + stallIds.addAll(userResource.getStallIdsList());
172 + }
173 +
174 + final var queryOrderDto = QueryOrderByConditionDto.builder()
175 + .enterpriseId(operatorLoginInfo.getEnterpriseId())
176 + .shouldFilterStallIds(shouldFilterStallIds)
177 + .stallIds(stallIds)
178 + .shouldFilterMealTimeStart(true)
179 + .mealTimeStart(todayZero)
180 + .shouldFilterMealTimeEnd(true)
181 + .mealTimeEnd(tomorrowZero)
182 + .build();
183 +
184 + final var orderList = orderServiceRpcClient.getOrdersByCondition(queryOrderDto);
185 + List<Integer> orderIds = orderList.stream()
186 + .filter(o -> o.getStatus() == OrderStatusEnum.ALL_SERVED || o.getStatus() == OrderStatusEnum.PARTIAL_SERVED || o.getStatus() == OrderStatusEnum.PREPARING)
187 + .map(SingleClientCustomerOrderRpcResponse::getId)
188 + .distinct()
189 + .collect(Collectors.toList());
190 + final var orderDetailList = orderServiceRpcClient.getOrderDetailsByOrderIds(orderIds);
191 + //找出所有的不同的meal Ids
192 + final var mealIds = orderDetailList.stream()
193 + .map(SingleClientCustomerOrderDetailRpcResponse::getMealId)
194 + .distinct()
195 + .collect(Collectors.toList());
196 + //获取到所有的餐别
197 + final var allMeals = mealServiceRpcClient.getAllMeals(operatorLoginInfo.getEnterpriseId()).getResponsesList();
198 +
199 + List<KdsMealDetailDto> kdsMealDetailDtoList = new ArrayList<>();
200 + for(Integer mealId: mealIds) {
201 + final var meal = allMeals.stream().filter(m -> m.getId() == mealId).findFirst();
202 + if(meal.isEmpty()) {
203 + continue;
204 + }
205 + final var totalCount = orderDetailList.stream()
206 + .filter(od -> od.getMealId() == mealId)
207 + .mapToInt(SingleClientCustomerOrderDetailRpcResponse::getCount)
208 + .sum();
209 + final var mealDetail = KdsMealDetailDto.builder()
210 + .mealId(meal.get().getId())
211 + .mealName(meal.get().getName())
212 + .totalCount(totalCount)
213 + .build();
214 + kdsMealDetailDtoList.add(mealDetail);
215 + }
216 +
217 + return kdsMealDetailDtoList;
218 + }
219 +
220 + @Override
128 public List<KdsOrderLocationDto> getOrderDetailByLocation(KdsOrderLocationQueryDto queryDto) { 221 public List<KdsOrderLocationDto> getOrderDetailByLocation(KdsOrderLocationQueryDto queryDto) {
129 - // 获取当日所有的订单 和 订单明细 222 + // 获取当日用餐的所有的订单 和 订单明细
130 LocalDate today = LocalDate.now(); 223 LocalDate today = LocalDate.now();
131 LocalDateTime todayZero = today.atStartOfDay(); 224 LocalDateTime todayZero = today.atStartOfDay();
132 LocalDate tomorrow = today.plusDays(1); 225 LocalDate tomorrow = today.plusDays(1);
...@@ -148,10 +241,10 @@ public class KdsServiceImpl implements KdsService { ...@@ -148,10 +241,10 @@ public class KdsServiceImpl implements KdsService {
148 .enterpriseId(operatorLoginInfo.getEnterpriseId()) 241 .enterpriseId(operatorLoginInfo.getEnterpriseId())
149 .shouldFilterStallIds(shouldFilterStallIds) 242 .shouldFilterStallIds(shouldFilterStallIds)
150 .stallIds(stallIds) 243 .stallIds(stallIds)
151 - .shouldFilterCreatedAtTimeStart(true) 244 + .shouldFilterMealTimeStart(true)
152 - .createdAtTimeStart(todayZero) 245 + .mealTimeStart(todayZero)
153 - .shouldFilterCreatedAtTimeEnd(true) 246 + .shouldFilterMealTimeEnd(true)
154 - .createdAtTimeEnd(tomorrowZero) 247 + .mealTimeEnd(tomorrowZero)
155 .shouldFilterStatus(true) 248 .shouldFilterStatus(true)
156 .status(queryDto.getOrderStatus()) 249 .status(queryDto.getOrderStatus())
157 .build(); 250 .build();
...@@ -163,7 +256,7 @@ public class KdsServiceImpl implements KdsService { ...@@ -163,7 +256,7 @@ public class KdsServiceImpl implements KdsService {
163 .collect(Collectors.toList()); 256 .collect(Collectors.toList());
164 final var orderDetailList = orderServiceRpcClient.getOrderDetailsByOrderIds(orderIds); 257 final var orderDetailList = orderServiceRpcClient.getOrderDetailsByOrderIds(orderIds);
165 final var filteredOrderDetailList = orderDetailList.stream() 258 final var filteredOrderDetailList = orderDetailList.stream()
166 - .filter(od -> od.getCategoryId() == queryDto.getCategoryId()) 259 + .filter(od -> od.getMealId() == queryDto.getMealId())
167 .collect(Collectors.toList()); 260 .collect(Collectors.toList());
168 261
169 //在所有的orderDetail里找出所有所有不同的menuDetailId,然后根据menuDetailId进行分类 262 //在所有的orderDetail里找出所有所有不同的menuDetailId,然后根据menuDetailId进行分类
...@@ -198,6 +291,7 @@ public class KdsServiceImpl implements KdsService { ...@@ -198,6 +291,7 @@ public class KdsServiceImpl implements KdsService {
198 .avoids(order.getCustomerNoticeJson().getAvoidsList()) 291 .avoids(order.getCustomerNoticeJson().getAvoidsList())
199 .build()) 292 .build())
200 .orderDetailList(kdsOrderDetails) 293 .orderDetailList(kdsOrderDetails)
294 + .mealTime(DateUtil.formatDate(order.getMealTime()))
201 .build(); 295 .build();
202 kdsOrderLocationList.add(kdsOrder); 296 kdsOrderLocationList.add(kdsOrder);
203 } 297 }
......