package com.ruoyi.sales.dto; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; /** * 销售订单流程卡 DTO * 整合了台账信息、产品列表以及绑定的工艺路线 * * @author deslrey * @version 1.0 * @since 2026/03/26 */ @Data public class SalesProcessCardDto { @ApiModelProperty("订单编号") private String salesContractNo; @ApiModelProperty("客户名称") private String customerName; @ApiModelProperty("交货日期") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate deliveryDate; @ApiModelProperty("工艺路线总览") private String processPathDisplay; @ApiModelProperty("订单加工要求") private String orderProcessRequirement; @ApiModelProperty("该绑定的工艺路线节点") private List routeNodes; @ApiModelProperty("流程卡行明细") private List items; // 底部信息 @ApiModelProperty("总合计数量") private BigDecimal totalQuantity; @ApiModelProperty("总合计面积") private BigDecimal totalArea; @ApiModelProperty("制单员") private String register; @ApiModelProperty("制单日期") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime registerDate; /** * 内部类:对应产品表格行 */ @Data public static class ProcessCardItemDto { @ApiModelProperty("楼层编号") private String floorCode; @ApiModelProperty("产品描述") private String productDescription; @ApiModelProperty("宽(弧长)") private BigDecimal width; @ApiModelProperty("高") private BigDecimal height; @ApiModelProperty("数量") private BigDecimal quantity; @ApiModelProperty("面积(㎡)") private BigDecimal area; @ApiModelProperty("明细加工要求") private String processRequirement; @ApiModelProperty("额外加工明细") private List extraProcesses; } /** * 内部类:对应 SalesLedgerProcessRoute 的节点信息 */ @Data public static class ProcessNodeDto { @ApiModelProperty("工艺节点ID") private Long processRouteItemId; @ApiModelProperty("工艺节点名称") private String processRouteItemName; @ApiModelProperty("排序号") private Integer dragSort; @ApiModelProperty("备注") private String remark; } }