package com.yeejoin.amos.boot.module.jg.api.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 维修告知
 *
 * @author system_generator
 * @date 2023-12-19
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tzs_jg_maintain_notice")
public class JgMaintainNotice extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 申请编号
     */
    @TableField("apply_no")
    private String applyNo;

    /**
     * 告知日期
     */
    @TableField("notice_date")
    private Date noticeDate;

    /**
     * 告知状态
     */
    @TableField("notice_status")
    private String noticeStatus;

    /**
     * 施工单位统一信用代码
     */
    @TableField("install_unit_credit_code")
    private String installUnitCreditCode;

    /**
     * 施工单位名称
     */
    @TableField("install_unit_name")
    private String installUnitName;

    /**
     * 设备数量
     */
    @TableField("equip_num")
    private Integer equipNum;

    /**
     * 流程实例id
     */
    @TableField("instance_id")
    private String instanceId;

    /**
     * 下步执行角色/人id
     */
    @TableField("next_executor_ids")
    private String nextExecutorIds;

    /**
     * 流程执行顺序标识
     */
    @TableField("execute_sequence")
    private String executeSequence;

    /**
     * 创建时间
     */
    @TableField("create_date")
    private Date createDate;

    /**
     * 创建人id
     */
    @TableField("create_user_id")
    private String createUserId;

    /**
     * 创建人
     */
    @TableField("create_user_name")
    private String createUserName;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 流程状态
     */
    @TableField("instance_status")
    private String instanceStatus;

    /**
     * 受理完成日期
     */
    @TableField("accept_date")
    private Date acceptDate;

    /**
     * 施工区域-省
     */
    @TableField("province")
    private String province;

    /**
     * 施工区域-省
     */
    @TableField("province_name")
    private String provinceName;

    /**
     * 施工区域-市
     */
    @TableField("city")
    private String city;

    /**
     * 施工区域-市
     */
    @TableField("city_name")
    private String cityName;
    /**
     * 施工区域-区/县
     */
    @TableField("county")
    private String county;

    /**
     * 施工区域-区/县
     */
    @TableField("county_name")
    private String countyName;

    /**
     * 施工区域-街道（镇）
     */
    @TableField("street")
    private String street;

    /**
     * 施工区域-街道（镇）
     */
    @TableField(value = "street_name")
    private String streetName;

    /**
     * 施工设备详细地址
     */
    @TableField("address")
    private String address;

    /**
     * 计划施工日期
     */
    @TableField("plan_date")
    private Date planDate;

    /**
     * 接收机构单位代码
     */
    @TableField("receive_company_code")
    private String receiveCompanyCode;

    /**
     * 接收机构
     */
    @TableField("receive_org_name")
    private String receiveOrgName;

    /**
     * 施工负责人
     */
    @TableField("construction_manager")
    private String constructionManager;

    /**
     * 施工负责人id
     */
    @TableField("construction_manager_id")
    private String constructionManagerId;

    /**
     * 施工负责人手机
     */
    @TableField("construction_manager_phone")
    private String constructionManagerPhone;

    /**
     * 检验单位统一信用代码
     */
    @TableField("inspection_unit_credit_code")
    private String inspectionUnitCreditCode;

    /**
     * 检验单位名称
     */
    @TableField("inspection_unit_name")
    private String inspectionUnitName;

    /**
     * 委托单位统一信用代码
     */
    @TableField("entrusting_unit_credit_code")
    private String entrustingUnitCreditCode;

    /**
     * 委托单位名称
     */
    @TableField("entrusting_unit_name")
    private String entrustingUnitName;

    /**
     * 委托书附件
     */
    @TableField("power_of_attorney")
    private String powerOfAttorney;

    /**
     * 其他附件
     */
    @TableField("construction_contract")
    private String constructionContract;

    /**
     * 施工合同是否本单位与甲方直接签署
     */
    @TableField("is_signed_with_a")
    private String isSignedWithA;

    /**
     * 使用单位统一信用代码
     */
    @TableField("use_unit_credit_code")
    private String useUnitCreditCode;

    /**
     * 使用单位名称
     */
    @TableField("use_unit_name")
    private String useUnitName;

    /**
     * 维修类型（10000一般维修，10001 重点维修）
     */
    @TableField("maintain_type")
    private String maintainType;

    /**
     * 是否已报检
     */
    @TableField("is_inspected")
    private String isInspected;

    /**
     * 接收机构机构代码
     */
    @TableField("receive_org_code")
    private String receiveOrgCode;


    /**
     * 施工区域-街道（镇）
     */
    @TableField(value = "factory_use_site_street")
    private String factoryUseSiteStreet;

    /**
     * 告知单PDF URL
     */
    @TableField("notice_report_url")
    private String noticeReportUrl;

    /**
     * 节点执行人
     */
    @TableField(value = "promoter")
    private String promoter;

    /**
     * 设备类别
     */
    @TableField(value = "equ_list_code")
    private String equListCode;

    /**
     * 设备类别名称
     */
    @TableField(value = "equ_category")
    private String equCategory;
    /**
     * 状态
     */
    @TableField("status")
    private String status;


    @TableField("next_execute_ids")
    private String nextExecuteIds;

    /**
     * 下一节点可执行人逗号分割
     */
    @TableField(value = "next_execute_user_ids")
    private String nextExecuteUserIds;

    @TableField(value = "create_user_company_name")
    private String createUserCompanyName;

    @TableField(value = "transfer_to_user_ids")
    private String transferToUserIds;


    @TableField("next_task_id")
    private String nextTaskId;

    @TableField(exist = false)
    private String equList;

    @TableField(exist = false)
    private String equCategoryDesc;

    @TableField(exist = false)
    private String supervisoryCode;
    /**
     * 维修类型名称
     */
    @TableField(exist = false)
    private String maintainTypeDesc;
    /**
     * 设备地址
     */
    @TableField(exist = false)
    private String fullAddress;

    /**
     * 告知书编号
     */
    @TableField(value = "inform_number")
    private String informNumber;

    /**
     * 接收机构公司的org_code
     */
    @TableField("receive_company_org_code")
    private String receiveCompanyOrgCode;

    /**
     * 工程装置
     */
    @TableField("project_contraption")
    private String projectContraption;

    /**
     * 告知设备列表
     */
    @TableField(exist = false)
    private List<Map<String, Object>> deviceList;

    /**
     * 作废原因
     */
    @TableField("cancel_reason")
    private String cancelReason;

    /**
     * 作废日期
     */
    @TableField("cancel_date")
    private Date cancelDate;

    /**
     * 作废人员id
     */
    @TableField("cancel_user_id")
    private String cancelUserId;
}
