package cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order; 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 ErpSaleOrderImportExcelVO { @ExcelProperty("销售单编号") @Schema(description = "销售单编号,留空则自动生成;相同编号的多行合并为同一张订单") private String no; @ExcelProperty("客户名称") @Schema(description = "客户名称,需与 CRM 中的客户名称一致", requiredMode = Schema.RequiredMode.REQUIRED) private String customerName; @ExcelProperty("合同单号") @Schema(description = "关联合同单号,可空") private String contractNo; @ExcelProperty("下单时间") @Schema(description = "下单时间,格式如 2026-01-01 10:00:00;留空取当前时间") private String orderTime; @ExcelProperty("产品编码") @Schema(description = "产品(物料)编码", requiredMode = Schema.RequiredMode.REQUIRED) private String productCode; @ExcelProperty("产品名称") @Schema(description = "产品名称(仅供对照,匹配仍以产品编码为准)") private String productName; @ExcelProperty("数量") @Schema(description = "产品数量", requiredMode = Schema.RequiredMode.REQUIRED) private BigDecimal count; @ExcelProperty("单价") @Schema(description = "产品单价;留空则取该物料的销售价") private BigDecimal productPrice; @ExcelProperty("税率(%)") @Schema(description = "税率,百分比,例如 13 表示 13%") private BigDecimal taxPercent; @ExcelProperty("是否需要生产") @Schema(description = "是否需要生产:填“是/否”,留空默认“是”") private String needProduction; @ExcelProperty("备注") @Schema(description = "备注;同一张订单取首行备注作为整单备注") private String remark; }