wangyingyang

fix

package com.infoloop.tianting.model.dto;
import com.infoloop.tianting.clientcustomerorderservice.OrderOperationType;
import com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum;
import com.infoloop.tianting.model.dto.MenuDbDTO.DishRuleJson;
import com.infoloop.tianting.model.dto.MenuDbDTO.OrderRuleJson;
import io.swagger.annotations.ApiModel;
import java.util.List;
import lombok.Builder;
import lombok.Data;
import lombok.ToString;
@Data
@ApiModel(description = "操作记录DTO")
public class OperationDTO {
@Data
@Builder
@ToString
@ApiModel(description = "单个操作记录Dto")
public static class SingleOperationDto {
private Integer orderId;
OrderOperationType type;
private boolean shouldCreateOriginalOrderJson;
private String originalOrderJson;
private boolean shouldCreateAdjustOrderJson;
private String adjustOrderJson;
private boolean shouldCreateOriginalOrderDetailJson;
private String originalOrderDetailJson;
private boolean shouldCreateAdjustOrderDetailJson;
private String adjustOrderDetailJson;
}
@Data
@Builder
@ToString
@ApiModel(description = "批量操作记录Dto")
public static class BatchOperationDto {
private List<SingleOperationDto> creations;
private Integer enterpriseId;
private Integer createdBy;
private String operator;
private OrderSourceEnum creationSource;
}
}
......@@ -576,7 +576,10 @@ public class OrderDbDTO {
@ToString
@ApiModel(description = "检查是否已预定过某一餐单")
public static class getMenuOrderCountDto {
private Integer customerId;
@Builder.Default
private String openId = "";
@Builder.Default
private Integer customerId = 0;
private Integer menuId;
private LocalDateTime mealTime;
}
......
......@@ -102,7 +102,8 @@ public class OrderServiceImpl implements OrderService {
createOrderDto.setCustomerId(operatorCreateOrderDto.getCustomerId());
createOrderDto.setStallId(operatorCreateOrderDto.getStallId());
createOrderDto.setMenuId(operatorCreateOrderDto.getMenuId());
createOrderDto.setMealTime(operatorCreateOrderDto.getMealTime());
final var mealTime = operatorCreateOrderDto.getMealTime().toLocalDate().atStartOfDay();
createOrderDto.setMealTime(mealTime);
createOrderDto.setRemark(operatorCreateOrderDto.getRemark());
createOrderDto.setCreatedBy(operatorLoginInfo.getId());
createOrderDto.setClientId(operator.getClientId());
......@@ -251,8 +252,10 @@ public class OrderServiceImpl implements OrderService {
.mealTimeEnd(mealTimeEnd)
.shouldFilterMenuId(true)
.menuId(checkIfOrdered.getMenuId())
.shouldFilterCustomerIds(true)
.shouldFilterCustomerIds(checkIfOrdered.getCustomerId().equals(0)? false: true)
.customerIds(List.of(checkIfOrdered.getCustomerId()))
.shouldFilterOpenId(checkIfOrdered.getOpenId().isEmpty()? false: true)
.openId(checkIfOrdered.getOpenId())
.build();
final var orderList = orderServiceRpcClient.getOrdersByCondition(queryOrderDto);
return orderList.size();
......
package com.infoloop.tianting.service.impl;
import com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum;
import com.infoloop.tianting.clientcustomerorderservice.ServeStatusEnum;
import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderDetailRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse;
import com.infoloop.tianting.clientinventoryservice.SingleClientRpcResponse;
import com.infoloop.tianting.context.LoginContextHolder;
import com.infoloop.tianting.enums.SettlementDimensionEnum;
import com.infoloop.tianting.exception.ClientEndExceptions.BusinessException;
......@@ -70,8 +72,8 @@ public class SettlementServiceImpl implements SettlementService {
public ByteArrayOutputStream generateOrderSettlementExcelBySku(SettlementRequestDto settlementRequest) {
final var startDate = settlementRequest.getTimeStart().toLocalDate().atStartOfDay();
final var endDate = settlementRequest.getTimeEnd().toLocalDate().plusDays(1).atStartOfDay();
final var startDate = settlementRequest.getTimeStart().plusHours(8).toLocalDate().atStartOfDay();
final var endDate = settlementRequest.getTimeEnd().plusHours(8).toLocalDate().plusDays(1).atStartOfDay();
final var operatorLoginInfo = LoginContextHolder.getLoginInfo();
final int enterpriseId = LoginContextHolder.hasLogin() ? operatorLoginInfo.getEnterpriseId() : settlementRequest.getEnterpriseId();
final var queryOrderDto = QueryOrderByConditionDto.builder()
......@@ -90,6 +92,7 @@ public class SettlementServiceImpl implements SettlementService {
.collect(Collectors.toList());
final var orderDetailList = orderServiceRpcClient.getOrderDetailsByOrderIds(orderIds);
List<Integer> skuIds = orderDetailList.stream()
.filter(d -> !d.getServeStatus().equals(ServeStatusEnum.SERVE_REJECT))
.map(SingleClientCustomerOrderDetailRpcResponse::getSkuId)
.distinct()
.collect(Collectors.toList());
......@@ -153,7 +156,7 @@ public class SettlementServiceImpl implements SettlementService {
//找出当天所有已点的菜品明细
final var curOrderDetails = orderDetailList.stream()
.filter(d -> curOrderIds.contains(d.getOrderId()))
.filter(d -> curOrderIds.contains(d.getOrderId()) && !d.getServeStatus().equals(ServeStatusEnum.SERVE_REJECT))
.collect(Collectors.toList());
for (SingleMenuDetailRpcResponse m: curMenuDetails) {
......@@ -198,14 +201,20 @@ public class SettlementServiceImpl implements SettlementService {
}
}
final var client = inventoryServiceRpcClient.getClientById(enterpriseId,
settlementRequest.getClientId()).getClient();
// final var client = inventoryServiceRpcClient.getClientById(enterpriseId,
// settlementRequest.getClientId()).getClient();
final var stalls = inventoryServiceRpcClient.getStallsByIds(operatorLoginInfo.getEnterpriseId(), settlementRequest.getStallIds()).getClientsList();
final var stallNames = stalls.stream()
.filter(s -> settlementRequest.getStallIds().contains(s.getId()))
.map(SingleClientRpcResponse::getName).collect(Collectors.toList());
String joinedString = String.join(" ", stallNames);
final var settlementDataDto = SettlementDataDto.builder()
.classifyOrders(classifyOrders)
.client(client.getName())
.startTime(DateUtil.formatDate(settlementRequest.getTimeStart(), DateUtil.YYYY_MM_DD))
.endTime(DateUtil.formatDate(settlementRequest.getTimeEnd(), DateUtil.YYYY_MM_DD))
.client(joinedString)
.startTime(DateUtil.formatDate(settlementRequest.getTimeStart().plusHours(8), DateUtil.YYYY_MM_DD))
.endTime(DateUtil.formatDate(settlementRequest.getTimeEnd().plusHours(8), DateUtil.YYYY_MM_DD))
.build();
try {
final var bytes = writeToExcelBySku(settlementDataDto);
return bytes;
......@@ -319,8 +328,8 @@ public class SettlementServiceImpl implements SettlementService {
public ByteArrayOutputStream generateOrderSettlementExcelByMeal(SettlementRequestDto settlementRequest) {
final var startDate = settlementRequest.getTimeStart().toLocalDate().atStartOfDay();
final var endDate = settlementRequest.getTimeEnd().toLocalDate().plusDays(1).atStartOfDay();
final var startDate = settlementRequest.getTimeStart().plusHours(8).toLocalDate().atStartOfDay();
final var endDate = settlementRequest.getTimeEnd().plusHours(8).toLocalDate().plusDays(1).atStartOfDay();
final var operatorLoginInfo = LoginContextHolder.getLoginInfo();
final var queryOrderDto = QueryOrderByConditionDto.builder()
.enterpriseId(LoginContextHolder.hasLogin() ? operatorLoginInfo.getEnterpriseId() : settlementRequest.getEnterpriseId())
......@@ -424,8 +433,8 @@ public class SettlementServiceImpl implements SettlementService {
final var settlementDataByMealDto = SettlementDataByMealDto.builder()
.classifyOrders(classifyOrders)
.client(client.getName())
.startTime(settlementRequest.getTimeStart())
.endTime(settlementRequest.getTimeEnd())
.startTime(settlementRequest.getTimeStart().plusHours(8))
.endTime(settlementRequest.getTimeEnd().plusHours(8))
.build();
try {
final var bytes = writeToExcelByMeal(settlementDataByMealDto);
......