package cn.cecep.talroad.domain;


import cn.cecep.talroad.common.core.annotation.Excel;
import cn.cecep.talroad.common.core.web.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;


/**
 * 三监联动执法信息对象 b_main_three_supervision_enforc
 *
 * @author szhpt
 * @date 2023-03-29*/
@ApiModel(value = "三监联动执法信息")
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("b_main_three_supervision_enforc")
public class BMainThreeSupervisionEnforc extends BaseEntity
{
    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "id")
    /** id */
    @TableId(value = "task_id",type = IdType.AUTO)
    private String taskId;


    @ApiModelProperty(value = "任务名称")
    /** 任务名称 */
    @Excel(name = "任务名称")
    private String taskName;


    @ApiModelProperty(value = "排污单位")
    /** 排污单位 */
    @Excel(name = "排污单位")
    private String factoryId;


    @ApiModelProperty(value = "排污单位名称")
    /** 排污单位名称 */
    @Excel(name = "排污单位名称")
    private String factoryName;


    @ApiModelProperty(value = "区域名称")
    /** 区域名称 */
    @Excel(name = "区域名称")
    private String districtName;


    @ApiModelProperty(value = "区域编码")
    /** 区域编码 */
    @Excel(name = "区域编码")
    private String districtCode;


    @ApiModelProperty(value = "所属行业名称")
    /** 所属行业名称 */
    @Excel(name = "所属行业名称")
    private String industryCategoryName;


    @ApiModelProperty(value = "所属行业编码")
    /** 所属行业编码 */
    @Excel(name = "所属行业编码")
    private String industryCategoryCode;


    @ApiModelProperty(value = "管理类别;(重点=focus、简化=simplify、登记=register)")
    /** 管理类别;(重点=focus、简化=simplify、登记=register) */
    @Excel(name = "管理类别", readConverterExp = "focus=重点,simplify=简化,register=登记")
    private String manType;


    @ApiModelProperty(value = "行业类别")
    /** 行业类别 */
    @Excel(name = "行业类别")
    private String industryCategory;


    @ApiModelProperty(value = "办结时间")
    /** 办结时间 */
    @Excel(name = "办结时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date closingTime;


    @ApiModelProperty(value = "归档时间")
    /** 归档时间 */
    @Excel(name = "归档时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date archiveTime;


    @ApiModelProperty(value = "任务状态;字典bus_task_status(任务状态（0=办理中 5=已办结 9=已归档)")
    /** 任务状态;字典bus_task_status(任务状态（0=办理中 5=已办结 9=已归档) */
    @Excel(name = "任务状态", readConverterExp = "0=办理中,5=已办结,9=已归档")
    private String taskStatus;


    @ApiModelProperty(value = "发起部门id")
    /** 发起部门id */
    @Excel(name = "发起部门id")
    private String initiatingDeptId;


    @ApiModelProperty(value = "发起部门名称")
    /** 发起部门名称 */
    @Excel(name = "发起部门名称")
    private String initiatingDeptName;


    @ApiModelProperty(value = "紧急程度;字典bus_emergency_level(1=一般,2=紧急,3=特急)")
    /** 紧急程度;字典bus_emergency_level(1=一般,2=紧急,3=特急) */
    @Excel(name = "紧急程度;字典bus_emergency_level(1=一般,2=紧急,3=特急)")
    private String emergencyLevel;


    @ApiModelProperty(value = "发起时间")
    @Excel(name = "预计发起时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date initiatingTime;


    @ApiModelProperty(value = "预计完成时间")
    /** 预计完成时间 */
    @Excel(name = "预计完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date estimatedCompletionTime;


    @ApiModelProperty(value = "单位地址")
    /** 单位地址 */
    @Excel(name = "单位地址")
    private String factoryAddress;


    @ApiModelProperty(value = "具体问题")
    /** 具体问题 */
    @Excel(name = "具体问题")
    private String specificIssues;


    @ApiModelProperty(value = "任务描述")
    /** 任务描述 */
    @Excel(name = "任务描述")
    private String taskDetails;


    @ApiModelProperty(value = "问题附件")
    /** 问题附件 */
    @Excel(name = "问题附件")
    private String questionAttachment;


    @ApiModelProperty(value = "接受部门id")
    /** 接受部门id */
    @Excel(name = "接受部门id")
    private String receivingDeptIds;


    @ApiModelProperty(value = "接受部门名称")
    /** 接受部门名称 */
    @Excel(name = "接受部门名称")
    private String receivingDeptNames;

    /** 创建时间 */
    @ApiModelProperty(value = "创建时间")
    @Excel(name = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("taskId", getTaskId())
            .append("taskName", getTaskName())
            .append("factoryId", getFactoryId())
            .append("factoryName", getFactoryName())
            .append("districtName", getDistrictName())
            .append("districtCode", getDistrictCode())
            .append("industryCategoryName", getIndustryCategoryName())
            .append("industryCategoryCode", getIndustryCategoryCode())
            .append("manType", getManType())
            .append("industryCategory", getIndustryCategory())
            .append("closingTime", getClosingTime())
            .append("archiveTime", getArchiveTime())
            .append("taskStatus", getTaskStatus())
            .append("initiatingTime", getInitiatingTime())
            .append("initiatingDeptId", getInitiatingDeptId())
            .append("initiatingDeptName", getInitiatingDeptName())
            .append("emergencyLevel", getEmergencyLevel())
            .append("estimatedCompletionTime", getEstimatedCompletionTime())
            .append("factoryAddress", getFactoryAddress())
            .append("specificIssues", getSpecificIssues())
            .append("taskDetails", getTaskDetails())
            .append("questionAttachment", getQuestionAttachment())
            .append("receivingDeptIds", getReceivingDeptIds())
            .append("receivingDeptNames", getReceivingDeptNames())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .toString();
    }
}
