package cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request; 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 ErpPurchaseRequestImportExcelVO { @ExcelProperty("采购申请单号") @Schema(description = "采购申请单号,留空则自动生成;相同编号的多行合并为同一张申请") private String no; @ExcelProperty("供应商名称") @Schema(description = "供应商名称(可选,需与系统内供应商名称或编码一致)") private String supplierName; @ExcelProperty("申请时间") @Schema(description = "申请时间,格式如 2026-01-01 10:00:00;留空取当前时间", requiredMode = Schema.RequiredMode.REQUIRED) private String requestTime; @ExcelProperty("申请理由") @Schema(description = "申请理由") private String requestReason; @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 = "需求日期,格式 yyyy-MM-dd") private String demandTime; @ExcelProperty("是否来料检验") @Schema(description = "是否需要来料检验:填“是”为需要,其它为不需要") private String qcCheckFlag; @ExcelProperty("备注") @Schema(description = "备注;同一张申请取首行备注作为整单备注") private String remark; }