package cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @Schema(description = "管理后台 - ERP 采购计划 Response VO") @Data @ExcelIgnoreUnannotated public class ErpPurchasePlanRespVO { @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @ExcelProperty("编号") private Long id; @Schema(description = "采购计划单号", example = "CGJH001") @ExcelProperty("计划单号") private String no; @Schema(description = "计划名称", example = "2026年8月运维备件计划") @ExcelProperty("计划名称") private String name; @Schema(description = "状态", example = "0") @ExcelProperty(value = "状态", converter = cn.iocoder.yudao.module.erp.convert.ErpPurchasePlanStatusConvert.class) private Integer status; @Schema(description = "需求来源(1=库存预警,2=运维/生产计划)", example = "1") private Integer demandSource; @Schema(description = "需求来源名称", example = "库存预警") private String demandSourceName; @Schema(description = "计划日期") @ExcelProperty("计划日期") private LocalDateTime planDate; @Schema(description = "编制人编号", example = "1") private Long planUserId; @Schema(description = "编制人姓名", example = "张三") @ExcelProperty("编制人") private String planUserName; @Schema(description = "编制部门编号", example = "1") private Long planDeptId; @Schema(description = "编制部门名称", example = "运维部") @ExcelProperty("编制部门") private String planDeptName; @Schema(description = "供应商编号(可选)", example = "1") private Long supplierId; @Schema(description = "供应商名称", example = "供应商A") @ExcelProperty("供应商") private String supplierName; @Schema(description = "合计数量", example = "100") @ExcelProperty("合计数量") private BigDecimal totalCount; @Schema(description = "是否已生成采购申请", example = "false") private Boolean generatedFlag; @Schema(description = "备注", example = "备注") @ExcelProperty("备注") private String remark; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") private LocalDateTime createTime; @Schema(description = "计划明细列表") private List items; @Schema(description = "产品名称列表(逗号拼接)", example = "产品A,产品B") private String productNames; @Schema(description = "计划明细项") @Data public static class Item { @Schema(description = "编号", example = "1") private Long id; @Schema(description = "产品编号", example = "1") private Long productId; @Schema(description = "产品名称", example = "产品A") private String productName; @Schema(description = "产品单位编号", example = "1") private Long productUnitId; @Schema(description = "产品单位名称", example = "个") private String productUnitName; @Schema(description = "计划采购数量", example = "10") private BigDecimal count; @Schema(description = "需求日期") private LocalDate demandTime; @Schema(description = "备注", example = "备注") private String remark; } }