package com.qmth.distributed.print.business.bean.dto.report;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;

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

/**
 * @Description: 报告课程考核成绩评价明细结果-考生-期末成绩dto
 * @Param:
 * @return:
 * @Author: wangliang
 * @Date: 2024/2/26
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ReportExamStudentFinalScoreDto implements Serializable {

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "评价方式id")
    private Long evaluationId;

    @ApiModelProperty(value = "评价方式")
    private String evaluation;

    @ApiModelProperty(value = "评价方式描述")
    private String evaluationDesc;

    @ApiModelProperty(value = "权重")
    private BigDecimal targetWeight;

    @ApiModelProperty(value = "目标分值")
    private BigDecimal targetScore;

    @ApiModelProperty(value = "课程目标知识点转换总分")
    private Double targetDimensionMatrixSumScore;

    @ApiModelProperty(value = "课程目标集合")
    private List<DimensionDto> dimensionList;

    @ApiModelProperty(value = "课程目标考核要素的平均分")
    private Double matrixAvgScore;

    @ApiModelProperty(value = "知识点卷面总分")
    private Double dimensionScoreSum;

    @ApiModelProperty(value = "课程卷面总分")
    private Double targetScoreSum;

    @ApiModelProperty(value = "课程目标转换总分")
    private Double targetMatrixSumScore;

    public ReportExamStudentFinalScoreDto() {

    }

    public ReportExamStudentFinalScoreDto(FinalScoreWordDto finalScoreWordDto, List<DimensionDto> dimensionList, Double dimensionScoreSum) {
        this.evaluationId = finalScoreWordDto.getEvaluationId();
        this.evaluation = finalScoreWordDto.getEvaluation();
        this.evaluationDesc = finalScoreWordDto.getEvaluationDesc();
        this.targetWeight = finalScoreWordDto.getFinalScoreSumWeight();
        this.targetScore = finalScoreWordDto.getFinalScoreTargetSumScore();
        this.dimensionList = dimensionList;
        this.dimensionScoreSum = dimensionScoreSum;
    }

    public ReportExamStudentFinalScoreDto(FinalScoreWordDto finalScoreWordDto, List<DimensionDto> dimensionList, Double targetDimensionMatrixSumScore, Double dimensionScoreSum) {
        this.evaluationId = finalScoreWordDto.getEvaluationId();
        this.evaluation = finalScoreWordDto.getEvaluation();
        this.evaluationDesc = finalScoreWordDto.getEvaluationDesc();
        this.targetWeight = finalScoreWordDto.getFinalScoreSumWeight();
        this.targetScore = finalScoreWordDto.getFinalScoreTargetSumScore();
        this.dimensionList = dimensionList;
        this.targetDimensionMatrixSumScore = targetDimensionMatrixSumScore;
        this.dimensionScoreSum = dimensionScoreSum;
    }

    public ReportExamStudentFinalScoreDto(FinalScoreWordDto finalScoreWordDto, Double targetScoreSum) {
        this.evaluationId = finalScoreWordDto.getEvaluationId();
        this.evaluation = finalScoreWordDto.getEvaluation();
        this.evaluationDesc = finalScoreWordDto.getEvaluationDesc();
        this.targetWeight = finalScoreWordDto.getFinalScoreSumWeight();
        this.targetScore = finalScoreWordDto.getFinalScoreTargetSumScore();
        this.targetScoreSum = targetScoreSum;
    }

    public ReportExamStudentFinalScoreDto(FinalScoreWordDto finalScoreWordDto, Double targetMatrixSumScore, Double targetScoreSum) {
        this.evaluationId = finalScoreWordDto.getEvaluationId();
        this.evaluation = finalScoreWordDto.getEvaluation();
        this.evaluationDesc = finalScoreWordDto.getEvaluationDesc();
        this.targetWeight = finalScoreWordDto.getFinalScoreSumWeight();
        this.targetScore = finalScoreWordDto.getFinalScoreTargetSumScore();
        this.targetMatrixSumScore = targetMatrixSumScore;
        this.targetScoreSum = targetScoreSum;
    }

    public Double getTargetDimensionMatrixSumScore() {
        return targetDimensionMatrixSumScore;
    }

    public void setTargetDimensionMatrixSumScore(Double targetDimensionMatrixSumScore) {
        this.targetDimensionMatrixSumScore = targetDimensionMatrixSumScore;
    }

    public Double getDimensionScoreSum() {
        return dimensionScoreSum;
    }

    public void setDimensionScoreSum(Double dimensionScoreSum) {
        this.dimensionScoreSum = dimensionScoreSum;
    }

    public Double getTargetScoreSum() {
        return targetScoreSum;
    }

    public void setTargetScoreSum(Double targetScoreSum) {
        this.targetScoreSum = targetScoreSum;
    }

    public Double getTargetMatrixSumScore() {
        return targetMatrixSumScore;
    }

    public void setTargetMatrixSumScore(Double targetMatrixSumScore) {
        this.targetMatrixSumScore = targetMatrixSumScore;
    }

    public Double getMatrixAvgScore() {
        return matrixAvgScore;
    }

    public void setMatrixAvgScore(Double matrixAvgScore) {
        this.matrixAvgScore = matrixAvgScore;
    }

    public Long getEvaluationId() {
        return evaluationId;
    }

    public void setEvaluationId(Long evaluationId) {
        this.evaluationId = evaluationId;
    }

    public String getEvaluation() {
        return evaluation;
    }

    public void setEvaluation(String evaluation) {
        this.evaluation = evaluation;
    }

    public String getEvaluationDesc() {
        return evaluationDesc;
    }

    public void setEvaluationDesc(String evaluationDesc) {
        this.evaluationDesc = evaluationDesc;
    }

    public ReportExamStudentFinalScoreDto(List<DimensionDto> dimensionList) {
        this.dimensionList = dimensionList;
    }

    public BigDecimal getTargetWeight() {
        return targetWeight;
    }

    public void setTargetWeight(BigDecimal targetWeight) {
        this.targetWeight = targetWeight;
    }

    public BigDecimal getTargetScore() {
        return targetScore;
    }

    public void setTargetScore(BigDecimal targetScore) {
        this.targetScore = targetScore;
    }

    public List<DimensionDto> getDimensionList() {
        return dimensionList;
    }

    public void setDimensionList(List<DimensionDto> dimensionList) {
        this.dimensionList = dimensionList;
    }
}
