package cn.iocoder.lyzsys.module.tjt.dal.dataobject.profit;

import cn.iocoder.lyzsys.framework.tenant.core.db.TenantBaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * 项目成本测算快照 DO
 *
 * @author Codex
 */
@TableName("tjt_project_cost_measure_snapshot")
@KeySequence("tjt_project_cost_measure_snapshot_seq")
@Data
@EqualsAndHashCode(callSuper = true)
public class ProjectCostMeasureSnapshotDO extends TenantBaseDO {

    @TableId
    private Long id;

    private Long projectId;

    private String snapshotType;

    private Boolean lockedFlag;

    private Long actionUserId;

    private String actionUserName;

    private LocalDateTime actionTime;

    private BigDecimal contractAmount;

    private BigDecimal finalSettlementAmount;

    private BigDecimal effectiveSettlementAmount;

    private BigDecimal comprehensivePlanningAmount;

    private BigDecimal subcontractPlanningAmount;

    private BigDecimal specialSubcontractPlanningAmount;

    private BigDecimal sourceCoopSubcontractPlanningAmount;

    private BigDecimal comprehensiveSubcontractPlanningAmount;

    private BigDecimal majorOutputValue;

    private BigDecimal majorExpectedPerformance;

    private BigDecimal innovationOutputRate;

    private BigDecimal innovationOutputValue;

    private BigDecimal otherCost;

    private BigDecimal profitLossValue;

    private BigDecimal profitLossRate;

    private String assessmentResult;

    private BigDecimal assessmentCoefficient;

    private BigDecimal comprehensiveAccountingOutputValue;

    private BigDecimal comprehensiveSettlementOutputValue;

    private BigDecimal majorAccountingOutputValue;

    private BigDecimal majorSettlementOutputValue;

    private String remark;

}
