package cn.iocoder.yudao.module.crm.api.trace.dto; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; /** * CRM 销售流程追溯 Response DTO */ @Schema(description = "RPC 服务 - CRM 销售流程追溯 Response DTO") @Data public class CrmSaleTraceRespDTO { // ========== 商机信息 ========== @Schema(description = "商机编号") private Long businessId; @Schema(description = "商机名称") private String businessName; @Schema(description = "商机金额") private BigDecimal businessPrice; @Schema(description = "商机状态") private String businessStatus; @Schema(description = "商机创建时间") private LocalDateTime businessCreateTime; // ========== 客户信息 ========== @Schema(description = "客户编号") private Long customerId; @Schema(description = "客户名称") private String customerName; // ========== 合同信息 ========== @Schema(description = "合同编号") private Long contractId; @Schema(description = "合同名称") private String contractName; @Schema(description = "合同金额") private BigDecimal contractPrice; @Schema(description = "合同状态") private Integer contractStatus; @Schema(description = "合同创建时间") private LocalDateTime contractCreateTime; // ========== 销售订单信息 ========== @Schema(description = "销售订单编号") private Long orderId; @Schema(description = "销售订单单号") private String orderNo; @Schema(description = "订单金额") private BigDecimal orderPrice; @Schema(description = "订单状态") private Integer orderStatus; @Schema(description = "订单创建时间") private LocalDateTime orderCreateTime; // ========== 出库信息 ========== @Schema(description = "出库单编号") private Long outId; @Schema(description = "出库单号") private String outNo; @Schema(description = "出库金额") private BigDecimal outPrice; @Schema(description = "出库状态") private Integer outStatus; @Schema(description = "出库时间") private LocalDateTime outTime; // ========== 回款信息 ========== @Schema(description = "回款金额") private BigDecimal receivablePrice; @Schema(description = "回款记录列表") private List receivableItems; // ========== 退货信息 ========== @Schema(description = "退货金额") private BigDecimal returnPrice; /** * 回款记录项 */ @Data public static class ReceivableItem { @Schema(description = "回款编号") private Long receivableId; @Schema(description = "回款单号") private String receivableNo; @Schema(description = "回款金额") private BigDecimal price; @Schema(description = "回款时间") private LocalDateTime receivableTime; } }