package com.aucma.production.domain;

import com.aucma.common.annotation.Excel;
import com.aucma.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 安灯规则配置对象 andon_rule
 *
 * @author Yinq
 * @date 2025-10-28
 */
public class AndonRule extends BaseEntity
        {
private static final long serialVersionUID=1L;

    /** 主键ID */
    private Long ruleId;

    /** 规则名称 */
            @Excel(name = "规则名称")
    private String ruleName;

    /** 呼叫类型编码 */
            @Excel(name = "呼叫类型编码")
    private String callTypeCode;

    /** 适用产线编码 */
            @Excel(name = "适用产线编码")
    private String productLineCode;

    /** 适用工位/工序编码 */
            @Excel(name = "适用工位/工序编码")
    private String stationCode;

    /** 适用班组编码 */
            @Excel(name = "适用班组编码")
    private String teamCode;

    /** 限定触发源类型（可选） */
            @Excel(name = "限定触发源类型", readConverterExp = "可=选")
    private String sourceType;

    /** 确认时限（分钟） */
            @Excel(name = "确认时限", readConverterExp = "分=钟")
    private Long ackTimeoutMin;

    /** 解决时限（分钟） */
            @Excel(name = "解决时限", readConverterExp = "分=钟")
    private Long resolveTimeoutMin;

    /** 默认优先级（数值越小越高） */
            @Excel(name = "默认优先级", readConverterExp = "数=值越小越高")
    private Long priorityDefault;

    /** 通知角色（逗号分隔，角色编码） */
            @Excel(name = "通知角色", readConverterExp = "逗=号分隔，角色编码")
    private String notifyRoles;

    /** 通知用户（逗号分隔，用户ID） */
            @Excel(name = "通知用户", readConverterExp = "逗=号分隔，用户ID")
    private String notifyUsers;

    /** 升级链（如 1&gt;2&gt;3） */
            @Excel(name = "升级链", readConverterExp = "如=,1=&gt;2&gt;3")
    private String escalateLevels;

    /** 生效开始时间 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "生效开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date effectiveBeginTime;

    /** 生效结束时间 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "生效结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date effectiveEndTime;

    /** 是否有效（1有效/0无效） */
            @Excel(name = "是否有效", readConverterExp = "1=有效/0无效")
    private String isFlag;

    public void setRuleId(Long ruleId)
            {
            this.ruleId = ruleId;
            }

    public Long getRuleId()
            {
            return ruleId;
            }
    public void setRuleName(String ruleName)
            {
            this.ruleName = ruleName;
            }

    public String getRuleName()
            {
            return ruleName;
            }
    public void setCallTypeCode(String callTypeCode)
            {
            this.callTypeCode = callTypeCode;
            }

    public String getCallTypeCode()
            {
            return callTypeCode;
            }
    public void setProductLineCode(String productLineCode)
            {
            this.productLineCode = productLineCode;
            }

    public String getProductLineCode()
            {
            return productLineCode;
            }
    public void setStationCode(String stationCode)
            {
            this.stationCode = stationCode;
            }

    public String getStationCode()
            {
            return stationCode;
            }
    public void setTeamCode(String teamCode)
            {
            this.teamCode = teamCode;
            }

    public String getTeamCode()
            {
            return teamCode;
            }
    public void setSourceType(String sourceType)
            {
            this.sourceType = sourceType;
            }

    public String getSourceType()
            {
            return sourceType;
            }
    public void setAckTimeoutMin(Long ackTimeoutMin)
            {
            this.ackTimeoutMin = ackTimeoutMin;
            }

    public Long getAckTimeoutMin()
            {
            return ackTimeoutMin;
            }
    public void setResolveTimeoutMin(Long resolveTimeoutMin)
            {
            this.resolveTimeoutMin = resolveTimeoutMin;
            }

    public Long getResolveTimeoutMin()
            {
            return resolveTimeoutMin;
            }
    public void setPriorityDefault(Long priorityDefault)
            {
            this.priorityDefault = priorityDefault;
            }

    public Long getPriorityDefault()
            {
            return priorityDefault;
            }
    public void setNotifyRoles(String notifyRoles)
            {
            this.notifyRoles = notifyRoles;
            }

    public String getNotifyRoles()
            {
            return notifyRoles;
            }
    public void setNotifyUsers(String notifyUsers)
            {
            this.notifyUsers = notifyUsers;
            }

    public String getNotifyUsers()
            {
            return notifyUsers;
            }
    public void setEscalateLevels(String escalateLevels)
            {
            this.escalateLevels = escalateLevels;
            }

    public String getEscalateLevels()
            {
            return escalateLevels;
            }
    public void setEffectiveBeginTime(Date effectiveBeginTime)
            {
            this.effectiveBeginTime = effectiveBeginTime;
            }

    public Date getEffectiveBeginTime()
            {
            return effectiveBeginTime;
            }
    public void setEffectiveEndTime(Date effectiveEndTime)
            {
            this.effectiveEndTime = effectiveEndTime;
            }

    public Date getEffectiveEndTime()
            {
            return effectiveEndTime;
            }
    public void setIsFlag(String isFlag)
            {
            this.isFlag = isFlag;
            }

    public String getIsFlag()
            {
            return isFlag;
            }

@Override
public String toString(){
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("ruleId",getRuleId())
            .append("ruleName",getRuleName())
            .append("callTypeCode",getCallTypeCode())
            .append("productLineCode",getProductLineCode())
            .append("stationCode",getStationCode())
            .append("teamCode",getTeamCode())
            .append("sourceType",getSourceType())
            .append("ackTimeoutMin",getAckTimeoutMin())
            .append("resolveTimeoutMin",getResolveTimeoutMin())
            .append("priorityDefault",getPriorityDefault())
            .append("notifyRoles",getNotifyRoles())
            .append("notifyUsers",getNotifyUsers())
            .append("escalateLevels",getEscalateLevels())
            .append("effectiveBeginTime",getEffectiveBeginTime())
            .append("effectiveEndTime",getEffectiveEndTime())
            .append("isFlag",getIsFlag())
            .append("remark",getRemark())
            .append("createBy",getCreateBy())
            .append("createTime",getCreateTime())
            .append("updateBy",getUpdateBy())
            .append("updateTime",getUpdateTime())
        .toString();
        }
        }
