package cn.iocoder.lyzsys.module.tjt.controller.admin.profit.vo;

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

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 项目成本测算快照 Response VO")
@Data
public class ProjectProfitSnapshotRespVO {

    @Schema(description = "快照 ID")
    private Long id;

    @Schema(description = "项目 ID")
    private Long projectId;

    @Schema(description = "快照类型：budget/accounting/settlement")
    private String snapshotType;

    @Schema(description = "是否锁定")
    private Boolean lockedFlag;

    @Schema(description = "操作人 ID")
    private Long actionUserId;

    @Schema(description = "操作人姓名")
    private String actionUserName;

    @Schema(description = "操作时间")
    private LocalDateTime actionTime;

    @Schema(description = "合同总产值")
    private BigDecimal contractAmount;

    @Schema(description = "结算合同总产值")
    private BigDecimal finalSettlementAmount;

    @Schema(description = "合同产值（不含增值税），合同总产值 / 1.06")
    private BigDecimal effectiveSettlementAmount;

    @Schema(description = "综合所人工成本")
    private BigDecimal comprehensivePlanningAmount;

    @Schema(description = "专项分包人工成本合计")
    private BigDecimal subcontractPlanningAmount;

    @Schema(description = "专项分包-专业所人工成本")
    private BigDecimal specialSubcontractPlanningAmount;

    @Schema(description = "专项分包-源头合作分包人工成本")
    private BigDecimal sourceCoopSubcontractPlanningAmount;

    @Schema(description = "专项分包-综合所人工成本")
    private BigDecimal comprehensiveSubcontractPlanningAmount;

    @Schema(description = "专业所考核产值")
    private BigDecimal majorOutputValue;

    @Schema(description = "专业所人工成本")
    private BigDecimal majorExpectedPerformance;

    @Schema(description = "科创产值比例")
    private BigDecimal innovationOutputRate;

    @Schema(description = "科创产值")
    private BigDecimal innovationOutputValue;

    @Schema(description = "其他成本")
    private BigDecimal otherCost;

    @Schema(description = "预算盈亏值")
    private BigDecimal profitLossValue;

    @Schema(description = "预算盈亏百分比")
    private BigDecimal profitLossRate;

    @Schema(description = "考核结果")
    private String assessmentResult;

    @Schema(description = "考核系数")
    private BigDecimal assessmentCoefficient;

    @Schema(description = "综合所考核产值核算值")
    private BigDecimal comprehensiveAccountingOutputValue;

    @Schema(description = "综合所考核产值结算值")
    private BigDecimal comprehensiveSettlementOutputValue;

    @Schema(description = "专业所考核产值核算值")
    private BigDecimal majorAccountingOutputValue;

    @Schema(description = "专业所考核产值结算值")
    private BigDecimal majorSettlementOutputValue;

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

}
