package cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;

@Schema(description = "管理后台 - 工厂利润VO")
@Data
public class FactoryProfitVO {

    @Schema(description = "工厂编号", example = "1024")
    private Long factoryId;

    @Schema(description = "工厂名称", example = "芋道")
    private String factoryName;

    @Schema(description = "结算月份", example = "2023-01")
    private String settlementMonth;

    @Schema(description = "叉车收入", example = "10000")
    private BigDecimal forkliftRevenue;

    @Schema(description = "打包收入", example = "10000")
    private BigDecimal packageRevenue;

    @Schema(description = "搬运收入")
    private BigDecimal porterageRevenue;

    @Schema(description = "叉车租赁收入")
    private BigDecimal forkliftRentalRevenue;

    @Schema(description = "运输收入")
    private BigDecimal transportationRevenue;

    @Schema(description = "叉车扣款")
    private BigDecimal forkliftDeduction;

    @Schema(description = "打包扣款")
    private BigDecimal packageDeduction;

    @Schema(description = "搬运扣款")
    private BigDecimal porterageDeduction;

    @Schema(description = "叉车扣款明细")
    private Deduction forkliftDeductionItem;

    @Schema(description = "打包扣款明细")
    private Deduction packageDeductionItem;

    @Schema(description = "搬运扣款明细")
    private Deduction porterageDeductionItem;

    @Schema(description = "水电扣款")
    private BigDecimal hydropower;

//    @Schema(description = "工伤保险")
//    private BigDecimal employment;
//
//    @Schema(description = "其他（理赔、扣点）")
//    private BigDecimal other;

    @Schema(description = "叉车工资")
    private BigDecimal forkliftSalary;

    @Schema(description = "打包工资")
    private BigDecimal packageSalary;

    @Schema(description = "搬运工资")
    private BigDecimal porterageSalary;

    @Schema(description = "运输工资")
    private BigDecimal transportSalary;

    @Schema(description = "其他工资")
    private BigDecimal otherSalary;

    @Schema(description = "叉车配件")
    private BigDecimal forkliftAccessories;

    @Schema(description = "打包配件")
    private BigDecimal packageAccessories;

    @Schema(description = "搬运劳保")
    private BigDecimal transportationAmount;

    @Schema(description = "工伤赔偿")
    private BigDecimal injuryAmount;

    @Schema(description = "借支")
    private BigDecimal loanAmount;

    @Schema(description = "差旅费用")
    private BigDecimal travelExpenses;

    @Schema(description = "其他")
    private BigDecimal otherAmount;

    @Schema(description = "叉车支出")
    private BigDecimal forkliftExpenses;

    @Schema(description = "打包支出")
    private BigDecimal packageExpenses;

    @Schema(description = "搬运支出")
    private BigDecimal transportationExpenses;

    @Schema(description = "叉车毛利")
    private BigDecimal forkliftGrossProfit;

    @Schema(description = "打包毛利")
    private BigDecimal packageGrossProfit;

    @Schema(description = "搬运毛利")
    private BigDecimal porterageGrossProfit;

    @Data
    public static class Deduction {

        @Schema(description = "行政罚款")
        private BigDecimal administrativePenalty;

        @Schema(description = "破损罚款")
        private BigDecimal damagePenalty;

        @Schema(description = "少件扣款")
        private BigDecimal missPenalty;

        @Schema(description = "其他扣款")
        private BigDecimal otherPenalty;
    }
}
