package cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract; import cn.idev.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.math.BigDecimal; /** * 管理后台 - 合同导入 Excel VO * * 说明:一行 = 一条产品明细;相同“合同编号”的多行会合并为一张合同(主表字段取该组首行)。 * “合同编号”留空时,每一行会各自生成一张新合同(单条明细)。 * 负责人、合同状态、金额 由系统处理:负责人 = 当前登录用户;状态 = 未提交;金额按明细与优惠率自动计算。 * * @author 超级管理员 */ @Schema(description = "管理后台 - 合同导入 Excel VO") @Data @Builder @AllArgsConstructor @NoArgsConstructor public class CrmContractImportExcelVO { @ExcelProperty("合同编号") @Schema(description = "合同编号,留空则自动生成;相同编号的多行合并为同一张合同") private String no; @ExcelProperty("合同名称") @Schema(description = "合同名称", requiredMode = Schema.RequiredMode.REQUIRED) private String name; @ExcelProperty("客户名称") @Schema(description = "客户名称,需与 CRM 客户名称一致", requiredMode = Schema.RequiredMode.REQUIRED) private String customerName; @ExcelProperty("下单时间") @Schema(description = "下单时间,格式如 2026-01-01 10:00:00;留空取当前时间", requiredMode = Schema.RequiredMode.REQUIRED) private String orderDate; @ExcelProperty("合同开始时间") @Schema(description = "合同开始时间,格式 yyyy-MM-dd") private String startTime; @ExcelProperty("合同结束时间") @Schema(description = "合同结束时间,格式 yyyy-MM-dd") private String endTime; @ExcelProperty("优惠率(%)") @Schema(description = "整单优惠率,百分比,例如 10 表示 10%;留空按 0") private BigDecimal discountPercent; @ExcelProperty("定金金额(元)") @Schema(description = "定金金额;留空按 0") private BigDecimal depositPrice; @ExcelProperty("产品编码") @Schema(description = "产品(物料)编码", requiredMode = Schema.RequiredMode.REQUIRED) private String productCode; @ExcelProperty("产品名称") @Schema(description = "产品名称(仅供对照,匹配仍以产品编码为准)") private String productName; @ExcelProperty("数量") @Schema(description = "产品数量", requiredMode = Schema.RequiredMode.REQUIRED) private Integer count; @ExcelProperty("合同单价(元)") @Schema(description = "产品合同单价;留空则取该物料的销售价") private BigDecimal contractPrice; @ExcelProperty("备注") @Schema(description = "备注;同一张合同取首行备注作为整单备注") private String remark; }