tuqin
5 天以前 67d3ab41f4989faf4db5f7f95f56b8595dd8eb3b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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;
 
}