Showing
7 changed files
with
148 additions
and
19 deletions
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 | } | ... | ... |
-
Please register or login to post a comment