package com.zzsmart.qomo.kn.cost.manage.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value="bom结构树", description="bom结构树")
public class BomTreeInfoVO {
    /**
     * 物料号
     */
    @ApiModelProperty(value = "物料号")
    private String materialNumber;
    /**
     * 父类物料号
     */
    @ApiModelProperty(value = "父类物料号")
    private String parentMaterialNumber;
    /**
     * 物料名称
     */
    @ApiModelProperty(value = "物料名称")
    private String materialName;
    /**
     * 版本号
     */
    @ApiModelProperty(value = "版本号")
    private String versionNumber;
    /**
     * 数量
     */
    @ApiModelProperty(value = "数量")
    private double quantity;
    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    private String unit;
    /**
     * 层级
     */
    @ApiModelProperty(value = "层级")
    private Integer level;
    /**
     * 序号
     */
    @ApiModelProperty(value = "序号")
    private Integer sort;
    /**
     * 本阶标准成本
     */
    @ApiModelProperty(value = "总标准成本")
    private BigDecimal standardCost;
    /**
     * 本阶物料成本
     */
    @ApiModelProperty(value = "材料成本")
    private BigDecimal materialCost;
    /**
     * 本阶人工成本
     */
    @ApiModelProperty(value = "直接人工")
    private BigDecimal laborCost;
    /**
     * 本阶设备成本
     */
    @ApiModelProperty(value = "折旧")
    private BigDecimal equipCost;
    /**
     * 本阶燃动成本
     */
    @ApiModelProperty(value = "燃动力")
    private BigDecimal fuelCost;
    /**
     * 本阶辅料成本
     */
    @ApiModelProperty(value = "辅料")
    private  BigDecimal auxiliaryCost;
    /**
     * 本阶其他成本
     */
    @ApiModelProperty(value = "其他费用")
    private BigDecimal otherCost;
    /**
     * 本阶其他成本
     */
    @ApiModelProperty(value = "人工工时")
    private BigDecimal laborHour;
    /**
     * 本阶其他成本
     */
    @ApiModelProperty(value = "机器工时")
    private BigDecimal machineHour;
    /**
     * 本阶其他成本
     */
    @ApiModelProperty(value = "机器工时")
    private BigDecimal fuelHour;
    /**
     * 本阶其他成本
     */
    @ApiModelProperty(value = "机器工时")
    private BigDecimal auxiHour;
    /**
     * 本阶其他成本
     */
    @ApiModelProperty(value = "机器工时")
    private BigDecimal otherHour;
    /**
     * 节点父类所有的物料编码
     */
    @ApiModelProperty(value = "节点父类所有的物料编码")
    private List<String> parentMaterialNumbers;
    /**
     * 子节点
     */
    @ApiModelProperty(value = "子节点")
    private List<BomTreeInfoVO> children;
    /**
     * 是否有叶子节点
     */
    @ApiModelProperty(value = "是否有叶子节点")
    private boolean hasChildren;
    /**
     * 是否有叶子节点
     */
    @ApiModelProperty(value = "层级")
    private String layer;
}
