SettlementDTO.java 3.47 KB
package com.infoloop.tianting.model.dto;

import com.infoloop.tianting.enums.SettlementDimensionEnum;
import io.swagger.annotations.ApiModel;
import lombok.Builder;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Data
@ApiModel(description = "统计DTO")
public class SettlementDTO {

  @Data
  @Builder
  @ApiModel(description = "SettlementRequestDto")
  public static class SettlementRequestDto {

    @Builder.Default
    private int enterpriseId = 0;

    @Builder.Default
    private List<Integer> stallIds = new ArrayList<>();

    @Builder.Default
    private int clientId = 0;

    private SettlementDimensionEnum dimension;

    private LocalDateTime timeStart;

    private LocalDateTime timeEnd;
  }

  @Data
  @Builder
  @ApiModel(description = "SettlementRequestDto")
  public static class SettlementMenuSkuDto {
    private String skuCode;
    private String showName;
    private Integer count;
    private Integer price;
    private Integer totalPrice;
  }

  @Data
  @Builder
  @ApiModel(description = "SettlementMenuMealDto")
  public static class SettlementMenuMealDto {
    private String skuName;
    private Integer price;
    private Integer count;
  }

  @Data
  @Builder
  @ApiModel(description = "SettlementDataDto")
  public static class SettlementDataDto {
    private String client;
    private String startTime;
    private String endTime;
    private Map<String, Map<String, List<SettlementMenuSkuDto>>> classifyOrders;
  }

  @Data
  @Builder
  @ApiModel(description = "SettlementDataByMealDto")
  public static class SettlementDataByMealDto {
    private String client;
    private LocalDateTime startTime;
    private LocalDateTime endTime;
    private Map<String, Map<String, Map<String, List<SettlementMenuMealDto>>>> classifyOrders;
  }

  @Data
  @Builder
  @ApiModel(description = "SettlementDataByOrderDto")
  public static class SettlementDataByOrderDto {
    private List<SettlementOrderDetail> classifyOrders;
  }

  @Data
  @Builder
  @ApiModel(description = "SettlementOrderDetail")
  public static class SettlementOrderDetail {
    private String mealTime;
    private String code;
    /** 支付完成时间,格式 yyyy-MM-dd HH:mm:ss,无则空 */
    private String payTime;
    /** 下单人:院区端为操作员名称;住院小程序为客户姓名;阳光厅为客户手机号 */
    private String orderer;
    private String mealName;
    private String roomNo;
    private String customerName;
    private String HISCustomerNo;
    private List<String> avoids;
    private List<String> doctors;
    private String menuName;
    private String skuName;
    private Integer count;
    private BigDecimal price;
    private BigDecimal totalPrice;
    private String remark;
    private String avoidRemark;
    private String onlinePay;
    private String operationType;
    private String tradeReferenceNo;
  }

  @Data
  @Builder
  @ApiModel(description = "SeparateMealDetail")
  public static class SeparateMealDetail {
    private Integer orderId;
    private String mealName;
    private String roomNo;
    private String customerName;
    private String menuName;
    private String skuName;
    private Integer count;
    private String avoids;
    private String doctors;
    private String remark;
  }

  @Data
  @Builder
  @ApiModel(description = "SeparateMealDataDto")
  public static class SeparateMealDataDto {
    private List<SeparateMealDetail> mealDetails;
  }

}