package com.ruoyi.zdsz.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 民用工程视图对象 z_engineering_civil
 *
 * @author ruoyi
 * @date 2023-12-27
 */
@Data
@ExcelIgnoreUnannotated
public class ZEngineeringCivilExportVo extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

//    /**
//     * 主键
//     */
//    @ExcelProperty(value = "主键")
//    private String id;

    /**
     * 行政区
     */
    @ExcelProperty(value = "行政区", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "district")
    private String district;

    /**
     * 小区id
     */
    @ExcelProperty(value = "小区")
    private String areaId;

    private String areaName;

    /**
     * 楼宇id
     */
    @ExcelProperty(value = "楼宇")
    private String buildingId;

    private String buildingName;

    /**
     * 单元id
     */
    @ExcelProperty(value = "单元")
    private String unitId;
    private String unitName;
    private String remarkd;

    /**
     * 房间id
     */
    @ExcelProperty(value = "房间")
    private String houseId;
    private String houseName;

    /**
     * 工程类型
     */
    @ExcelProperty(value = "工程类型")
    private String enginType;

    /**
     * 工程分类
     */
    @ExcelProperty(value = "工程分类")
    private String enginClassification;

    private String enginClassificationName;

    /**
     * 工程周期
     */
//    @ExcelProperty(value = "工程周期")
    private String enginCycle;

    /**
     * 完工状态
     */
    @ExcelProperty(value = "完工状态")
    private String completionStatus;

    /**
     * 默认图片地址
     */
//    @ExcelProperty(value = "默认图片地址")
    private String imgUrl;

    /**
     * 备注
     */
//    @ExcelProperty(value = "备注")
//    private String remark;

    /**
     *
     */
    @NotBlank(message = "不能为空", groups = { EditGroup.class })
    private String id;

    /**
     * 民用工程id
     */
    @NotBlank(message = "民用工程id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String civliId;

    /**
     * 节点类型
     */
    @NotBlank(message = "节点类型不能为空", groups = { AddGroup.class, EditGroup.class })
    @ExcelProperty(value = "节点类型")
    private String type;

    /**
     * 审核状态(未审核、未通过-0 审核通过-1 无需审核-null)
     */
//    @NotBlank(message = "审核状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private String reviewStatus;
    /**
     * 审核内容
     */
    private String reviewContent;

    /**
     * 备注
     */
//    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
//    private String remark;

    /**
     * 民用工程id
     */
    @NotBlank(message = "民用工程id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String engInfoId;

    /**
     * 施工地址
     */
    @ExcelProperty(value = "施工位置")
    private String constructAddre;
    @ExcelProperty(value = "具体位置")
    private String remark;

    /**
     * 是否按图纸施工
     */
    //@ExcelProperty(value = "是否按图纸施工")
    private String constructAccordingDrawings;

    /**
     * 分段打压是否合格
     */
   // @ExcelProperty(value = "分段打压是否合格")
    private String segmentedCompressionQualified;

    /**
     * 回填时间
     */
    @ExcelProperty(value = "回填时间")
    private Date backfillTime;



    /**
     * 施工人
     */

    private String constructUser;

    /**
     * 施工时间
     */


    /**
     * 负责人名称
     */
//    @ExcelProperty(value = "负责人名称")
    private String headName;

    /**
     * 负责人电话
     */
//    @ExcelProperty(value = "负责人电话")
    private String headPhone;

//
//    /**
//     * 备注
//     */
//    private String remark;


    /**
     * 详情id
     */
    @NotBlank(message = "详情id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String detailsId;
    /**
     * 上门类型
     */@ExcelProperty(value = "上门类型")
    private String visitType;

    /**
     * 自闭阀类型
     */
    //@ExcelProperty(value = "自闭阀类型")
    private String selfClosingValveType;
    /**
     * 腐蚀等级
     */
    @ExcelProperty(value = "腐蚀等级")
    private String corrosionLevel;

    /**
     * 品牌
     */
    @ExcelProperty(value = "品牌")
    private String brand;

    /**
     * 材质
     */
    @ExcelProperty(value = "材质")
    private String materialQuality;
    private String materialQualityName;

    /**
     * 规格
     */
    @ExcelProperty(value = "规格")
    private String specifications;
    private String specificationsName;
    private String source;

    /**
     * 数量
     */
    @ExcelProperty(value = "数量")
    private Double number;

//    /**
//     * 备注
//     */
//    private String remark;
//@TableField(fill = FieldFill.INSERT_UPDATE)
//@TableField(exist = false)
//@ExcelProperty(value = "施工时间")
private Date updateInfoTime;
    /**
     * 创建者
     */
   // @TableField(fill = FieldFill.INSERT)
    //@ExcelProperty(value = "施工人")
    @ExcelProperty(value = "工号")
    private String createBy;
    @ExcelProperty(value = "施工时间")
//    @JsonFormat("yyyy-MM-dd HH:mm:ss")
    private Date constructTime;
    /**
     * 施工人电话
     */
    @ExcelProperty(value = "施工人电话")
    private String constructPhone;
}
