云
5 天以前 1d9cfc91e7255b9e139b20ff230cb19246f19193
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/sale/vo/order/ErpSaleOrderRespVO.java
@@ -2,6 +2,7 @@
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import cn.iocoder.yudao.module.system.api.storage.dto.StorageBlobRespDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@@ -29,7 +30,7 @@
    @Schema(description = "客户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1724")
    private Long customerId;
    @Schema(description = "客户名称", example = "芋道")
    @Schema(description = "客户名称", example = "超级管理员")
    @ExcelProperty("客户名称")
    private String customerName;
@@ -38,6 +39,11 @@
    @Schema(description = "合同单号", example = "HT001")
    @ExcelProperty("合同单号")
    private String contractNo;
    @Schema(description = "销售类型:1内销 2外销 3样品 4其他", example = "1")
    @ExcelProperty(value = "销售类型", converter = cn.iocoder.yudao.framework.excel.core.convert.DictConvert.class)
    @cn.iocoder.yudao.framework.excel.core.annotations.DictFormat(cn.iocoder.yudao.module.erp.enums.DictTypeConstants.SALES_TYPE)
    private Integer saleType;
    @Schema(description = "结算账户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "311.89")
    @ExcelProperty("结算账户编号")
@@ -49,6 +55,10 @@
    @Schema(description = "下单时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("下单时间")
    private LocalDateTime orderTime;
    @Schema(description = "收款日期(用于 30 天账期提醒)")
    @ExcelProperty("收款日期")
    private LocalDateTime receiptDate;
    @Schema(description = "合计数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "15663")
    @ExcelProperty("合计数量")
@@ -72,17 +82,19 @@
    @Schema(description = "定金金额,单位:元", requiredMode = Schema.RequiredMode.REQUIRED, example = "7127")
    private BigDecimal depositPrice;
    @Schema(description = "附件地址", example = "https://www.iocoder.cn")
    @ExcelProperty("附件地址")
    private String fileUrl;
    @Schema(description = "备注", example = "你猜")
    @ExcelProperty("备注")
    private String remark;
    @Schema(description = "创建人", example = "芋道")
    @Schema(description = "BPM 流程实例编号", example = "b00eb97d-2d1c-4cf1-9b4b-2a5bcdc9a3a7")
    private String processInstanceId;
    @Schema(description = "附件列表")
    private List<StorageBlobRespDTO> attachmentList;
    @Schema(description = "创建人", example = "超级管理员")
    private String creator;
    @Schema(description = "创建人名称", example = "芋道")
    @Schema(description = "创建人名称", example = "超级管理员")
    private String creatorName;
    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -96,15 +108,40 @@
    @ExcelProperty("产品信息")
    private String productNames;
    @Schema(description = "产品编号(订单项物料编码,多行以逗号分隔)", example = "ITEM001,ITEM002")
    @ExcelProperty("产品编号")
    private String productCodes;
    @Schema(description = "已生产数量(按订单项关联的 MPS 已生产数量合计)", example = "100.00")
    @ExcelProperty("生产数量")
    private BigDecimal producedCount;
    // ========== 销售出库 ==========
    @Schema(description = "销售出库数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
    @Schema(description = "销售出库数量", example = "100.00")
    private BigDecimal outCount;
    // ========== 销售退货(出库)) ==========
    @Schema(description = "出库状态", example = "0")
    private Integer outStatus;
    @Schema(description = "销售退货数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
    private BigDecimal returnCount;
    // ========== 发货通知 ==========
    @Schema(description = "是否已生成发货通知单", example = "false")
    private Boolean hasSalesNotice;
    @Schema(description = "是否可以生成发货通知单(有需要生产且未完成的明细时为 false)", example = "true")
    private Boolean canCreateSalesNotice;
    @Schema(description = "是否有需要生产的明细(0=否 1=是)", example = "1")
    private Integer needProduction;
    // ========== 生产关联 ==========
    @Schema(description = "生产状态:0-未完成,1-已完成", example = "1")
    private Integer productionStatus;
    @Schema(description = "生产完成时间")
    private LocalDateTime productionFinishTime;
    @Data
    public static class Item {
@@ -114,6 +151,9 @@
        @Schema(description = "产品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3113")
        private Long productId;
        @Schema(description = "销售产品明细手工录入的盘号")
        private String reelNo;
        @Schema(description = "产品单位单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "3113")
        private Long productUnitId;
@@ -131,31 +171,52 @@
        @Schema(description = "税额,单位:元", example = "100.00")
        private BigDecimal taxPrice;
        @Schema(description = "产品金额,单位:元", example = "100.00")
        private BigDecimal totalProductPrice;
        @Schema(description = "含税金额,单位:元", example = "113.00")
        private BigDecimal totalPrice;
        @Schema(description = "备注", example = "随便")
        private String remark;
        // ========== 销售出库 ==========
        @Schema(description = "销售出库数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
        @Schema(description = "销售出库数量", example = "100.00")
        private BigDecimal outCount;
        // ========== 销售退货(入库)) ==========
        // ========== 生产关联 ==========
        @Schema(description = "销售退货数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
        private BigDecimal returnCount;
        @Schema(description = "是否需要生产(0=否 1=是)", example = "1")
        private Integer needProduction;
        @Schema(description = "关联的 MPS 编号", example = "1024")
        private Long mpsId;
        // ========== 出库批号 ==========
        @Schema(description = "出库批号", example = "B2026001、B2026002")
        private String batchCode;
        // ========== 关联字段 ==========
        @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "巧克力")
        private String productName;
        @Schema(description = "产品编号(物料编码)", example = "ITEM001")
        private String productCode;
        @Schema(description = "已生产数量", example = "60.00")
        private BigDecimal quantityProduced;
        @Schema(description = "产品条码", requiredMode = Schema.RequiredMode.REQUIRED, example = "A9985")
        private String productBarCode;
        @Schema(description = "产品单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "盒")
        private String productUnitName;
        @Schema(description = "库存数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
        private BigDecimal stockCount; // 该字段仅仅在“详情”和“编辑”时使用
        private BigDecimal stockCount; // 该字段仅仅在详情和编辑时使用
        @Schema(description = "规格型号", requiredMode = Schema.RequiredMode.REQUIRED, example = "-")
        private String productSpecification;
    }
}
}