package com.xiaoniu.subsystem.business.domain.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xiaoniu.common.core.annotation.Excel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;


@Data
public class ExpenseStatVO {
    @Schema(description = "费用ID")
    private Long expenseId;

    @Schema(description = "专业（班次）ID")
    private Long flightId;

    @Excel(name = "专业（班次）名称")
    @Schema(description = "专业（班次）名称")
    private String flightName;

    @Schema(description = "专业（班次）编码")
    private String flightCode;

    @Schema(description = "承训单位ID")
    private Long trainingUnitId;

    @Schema(description = "承训单位名称")
    private String trainingUnitName;

    @Schema(description = "承训单位性质")
    private String trainingUnitNature;


    @Schema(description = "培训地点")
    private String trainingSite;

    @Schema(description = "机关预算金额")
    private String organBudgetedAmount;


    @Schema(description = "承训单位预算金额")
    private String trainingBudgetedAmount;

    @Schema(description = "限额标准")
    private String quotaStandard;

    @Schema(description = "结算金额")
    private String settlementAmount;

    @Schema(description = "房间个数")
    private String roomsNumber;

    @Schema(description = "房间单价")
    private String roomsUnitPrice;

    @Schema(description = "住宿费")
    private String accommodationCost;

    @Schema(description = "伙食费单价")
    private String mealsUnitPrice;

    @Schema(description = "伙食费")
    private String boardMoney;

    @Schema(description = "会议室个数")
    private String conferenceRoomNumber;

    @Schema(description = "会议室单价")
    private String conferenceRoomUnitPrice;

    @Schema(description = "场地费（会议室）")
    private String conferenceRoom;

    @Schema(description = "车间个数")
    private String workshopNumber;

    @Schema(description = "车间单价")
    private String workshopUnitPrice;

    @Schema(description = "场地费（生产车间）")
    private String productionWorkshop;

    @Schema(description = "其他费用（培训资料费）")
    private String trainingMaterialsFee;

    @Schema(description = "其他费用（交通费）")
    private String transportatioExpense;

    @Schema(description = "其他费用（讲课费）")
    private String lectureFee;

    @Schema(description = "其他费用（保障管理费）")
    private String supportManagementFee;

    @Schema(description = "其他费用")
    private String otherExpenses;

    @Schema(description = "合计")
    private BigDecimal total;

    @Schema(description = "实际参训人数")
    private String participantsNumber;


    @Schema(description = "计划参训人数")
    private String plannedNumber;

    @Schema(description = "培训天数")
    private String trainingDays;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "开训时间")
    private Date trainingTime;


    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "结束时间")
    private Date endTime;

    @Excel(name = "年度")
    @Schema(description = "年度")
    private String year;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "结算单URL")
    private String settleAccountUrl;

    @Schema(description = "明细（住宿费-标间）金额")
    private BigDecimal accommodationCostDetail;

    @Schema(description = "明细（住宿费-标间）金额备注")
    private String accommodationCostRemark;

    @Schema(description = "明细（住宿费）小计")
    private BigDecimal accommodationCostDetailSubtotal;

    @Schema(description = "明细（住宿费）小计备注")
    private String accommodationCostRemarkSubtotal;

    @Schema(description = "明细（伙食-餐费）金额")
    private BigDecimal boardMoneyDetail;

    @Schema(description = "明细（伙食-餐费）金额备注")
    private String boardMoneyRemark;

    @Schema(description = "明细（伙食费）小计")
    private BigDecimal boardMoneyDetailSubtotal;

    @Schema(description = "明细（伙食费）小计备注")
    private String boardMoneyRemarkSubtotal;

    @Schema(description = "明细（场地-车间）金额")
    private BigDecimal productionWorkshopDetail;

    @Schema(description = "明细（场地-车间）金额备注")
    private String productionWorkshopRemark;

    @Schema(description = "明细（场地-会议室）金额")
    private BigDecimal conferenceRoomDetail;

    @Schema(description = "明细（场地-会议室）金额备注")
    private String conferenceRoomRemark;

    @Schema(description = "明细（场地费）小计")
    private BigDecimal venueCostDetailSubtotal;

    @Schema(description = "明细（场地费）小计备注")
    private String venueCostRemarkSubtotal;

    @Schema(description = "明细（其他-课酬费）金额")
    private BigDecimal lectureFeeDetail;

    @Schema(description = "明细（其他-课酬费）金额备注")
    private String lectureFeeRemark;

    @Schema(description = "明细（其他-培训学员证）金额")
    private BigDecimal studentCardFeeDetail;

    @Schema(description = "明细（其他-培训学员证）金额备注")
    private String studentCardFeeRemark;

    @Schema(description = "明细（其他-培训手册）金额")
    private BigDecimal manualCostDetail;

    @Schema(description = "明细（其他-培训手册）金额备注")
    private String manualCostRemark;

    @Schema(description = "明细（其他-培训资料）金额")
    private BigDecimal trainingMaterialsFeeDetail;

    @Schema(description = "明细（其他-培训资料）金额备注")
    private String trainingMaterialsFeeRemark;

    @Schema(description = "明细（其他-交通费）金额")
    private BigDecimal transportatioExpenseDetail;

    @Schema(description = "明细（其他-交通费）金额备注")
    private String transportatioExpenseRemark;

    @Schema(description = "明细（其他-保障管理费）金额")
    private BigDecimal supportManagementFeeDetail;

    @Schema(description = "明细（其他-保障管理费）金额备注")
    private String supportManagementFeeRemark;

    @Schema(description = "明细（其他费用）小计")
    private BigDecimal otherExpensesDetailSubtotal;

    @Schema(description = "明细（其他费用）小计备注")
    private String otherExpensesRemarkSubtotal;

    @Schema(description = "明细（合计）金额")
    private BigDecimal totalDetail;

    @Schema(description = "明细（合计）备注")
    private String totalDetailRemark;

    @Schema(description = "明细URL")
    private String detailUrl;

    @Schema(description = "创建人")
    private Long createUser;

    @Schema(description = "创建部门")
    private Long createDept;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "创建时间")
    private Date createTime;

    @Schema(description = "修改人")
    private Long updateUser;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "修改时间")
    private Date updateTime;

    @Schema(description = "状态")
    private Integer status;

    @Schema(description = "是否已删除")
    private Integer isDeleted;

    /**
     * 主责单位ID
     */
    @Schema(description = "主责单位ID")
    private Long mainUnitId;
    /**
     * 主责单位名称
     */
    @Excel(name = "主责单位名称")
    @Schema(description = "主责单位名称")
    private String mainUnitName;

}
