package com.qmth.sop.business.bean.report;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.sop.common.enums.QualityProblemReasonEnum;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Objects;

/**
 * @Description: 质量监控分析报表详情bean
 * @Param:
 * @return:
 * @Author: wangliang
 * @Date: 2024/9/18
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class QualityAnalyseReportViewBean implements Serializable {

    @ApiModelProperty(value = "客户名称")
    String customName;

    @ApiModelProperty(value = "项目名称")
    String projectName;

    @ApiModelProperty(value = "科目名称")
    String courseName;

    @ApiModelProperty(value = "影响度：A，B，C，D")
    String influenceDegree;

    @ApiModelProperty(value = "大区经理")
    String areaManagerName;

    @ApiModelProperty(value = "责任人")
    String dutyName;

    @ApiModelProperty(value = "问题简要")
    String summary;

    @ApiModelProperty(value = "问题原因")
    QualityProblemReasonEnum reason;

    @ApiModelProperty(value = "问题原因str")
    String reasonStr;

    @ApiModelProperty(value = "质量问题主键id")
    @JsonSerialize(using = ToStringSerializer.class)
    Long id;

    @ApiModelProperty(value = "质量问题单号")
    String problemNo;

    @ApiModelProperty(value = "sop单号")
    String sopNo;

    @ApiModelProperty(value = "质量问题流程id")
    @JsonSerialize(using = ToStringSerializer.class)
    Long problemNoFlowId;

    @ApiModelProperty(value = "sop流程id")
    @JsonSerialize(using = ToStringSerializer.class)
    Long sopFlowId;

    @ApiModelProperty(value = "人力供应商名称")
    String humanSupplierName;

    public String getHumanSupplierName() {
        return humanSupplierName;
    }

    public void setHumanSupplierName(String humanSupplierName) {
        this.humanSupplierName = humanSupplierName;
    }

    public String getCustomName() {
        return customName;
    }

    public void setCustomName(String customName) {
        this.customName = customName;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getCourseName() {
        return courseName;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }

    public String getInfluenceDegree() {
        return influenceDegree;
    }

    public void setInfluenceDegree(String influenceDegree) {
        this.influenceDegree = influenceDegree;
    }

    public String getAreaManagerName() {
        return areaManagerName;
    }

    public void setAreaManagerName(String areaManagerName) {
        this.areaManagerName = areaManagerName;
    }

    public String getDutyName() {
        return dutyName;
    }

    public void setDutyName(String dutyName) {
        this.dutyName = dutyName;
    }

    public String getSummary() {
        return summary;
    }

    public void setSummary(String summary) {
        this.summary = summary;
    }

    public QualityProblemReasonEnum getReason() {
        return reason;
    }

    public void setReason(QualityProblemReasonEnum reason) {
        this.reason = reason;
    }

    public String getReasonStr() {
        return Objects.nonNull(reason) ? reason.getTitle() : reasonStr;
    }

    public void setReasonStr(String reasonStr) {
        this.reasonStr = reasonStr;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getProblemNo() {
        return problemNo;
    }

    public void setProblemNo(String problemNo) {
        this.problemNo = problemNo;
    }

    public String getSopNo() {
        return sopNo;
    }

    public void setSopNo(String sopNo) {
        this.sopNo = sopNo;
    }

    public Long getProblemNoFlowId() {
        return problemNoFlowId;
    }

    public void setProblemNoFlowId(Long problemNoFlowId) {
        this.problemNoFlowId = problemNoFlowId;
    }

    public Long getSopFlowId() {
        return sopFlowId;
    }

    public void setSopFlowId(Long sopFlowId) {
        this.sopFlowId = sopFlowId;
    }
}
