package cn.iocoder.yudao.module.pms.controller.admin.iotfivedailyreport.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;

@Schema(description = "管理后台 - 5#国日报 Response VO")
@Data
@ExcelIgnoreUnannotated
public class IotFiveDailyReportRespVO {

    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13655")
    @ExcelProperty("主键id")
    private Long id;

    @Schema(description = "施工队伍id", example = "15068")
    @ExcelProperty("施工队伍id")
    private Long deptId;

    @Schema(description = "日报名称", example = "王五")
    @ExcelProperty("日报名称")
    private String reportName;

    @Schema(description = "项目id", example = "30840")
    @ExcelProperty("项目id")
    private Long projectId;

    @Schema(description = "项目名称", example = "李四")
    @ExcelProperty("项目名称")
    private String projectName;

    @Schema(description = "合同甲方")
    @ExcelProperty("合同甲方")
    private String customer;

    @Schema(description = "任务id", example = "3181")
    @ExcelProperty("任务id")
    private Long taskId;

    @Schema(description = "井号", example = "李四")
    @ExcelProperty("井号")
    private String wellName;

    @Schema(description = "施工地点")
    @ExcelProperty("施工地点")
    private String location;

    @Schema(description = "项目类别(钻井 修井 注氮 酸化压裂... )")
    @ExcelProperty("项目类别(钻井 修井 注氮 酸化压裂... )")
    private String projectClassification;

    @Schema(description = "施工工艺([123,233])")
    @ExcelProperty("施工工艺([123,233])")
    private String techniqueIds;

    @Schema(description = "施工设备([123,233])")
    @ExcelProperty("施工设备([123,233])")
    private String deviceIds;

    @Schema(description = "设备名称")
    @ExcelProperty("设备名称")
    private String deviceNames;

    @Schema(description = "时间节点-开始")
    @ExcelProperty("时间节点-开始")
    private LocalTime startTime;

    @Schema(description = "时间节点-结束")
    @ExcelProperty("时间节点-结束")
    private LocalTime endTime;

    @Schema(description = "主设备(泵车)数量")
    @ExcelProperty("主设备(泵车)数量")
    private BigDecimal mainDeviceNum;

    @Schema(description = "作业设备(泵车)数量")
    @ExcelProperty("作业设备(泵车)数量")
    private BigDecimal wokDeviceNum;

    @Schema(description = "带班干部")
    @ExcelProperty("带班干部")
    private String responsiblePerson;

    @Schema(description = "当日加砂量(吨)")
    @ExcelProperty("当日加砂量(吨)")
    private BigDecimal dailySandVolume;

    @Schema(description = "当日主压层数(层)")
    @ExcelProperty("当日主压层数(层)")
    private BigDecimal dailyWorkingLayers;

    @Schema(description = "当日注液量(m³)")
    @ExcelProperty("当日注液量(m³)")
    private BigDecimal dailyLiquidVolume;

    @Schema(description = "当日作业井数(井)")
    @ExcelProperty("当日作业井数(井)")
    private BigDecimal dailyWellVolume;

    @Schema(description = "当日油耗(吨)")
    @ExcelProperty("当日油耗(吨)")
    private BigDecimal dailyFuel;

    @Schema(description = "单井工作量")
    @ExcelProperty("单井工作量")
    private String singleWellWorkload;

    @Schema(description = "天气")
    @ExcelProperty("天气")
    private String weather;

    @Schema(description = "气温(℃)")
    @ExcelProperty("气温(℃)")
    private String temperature;

    @Schema(description = "当日用电量(kWh)")
    @ExcelProperty("当日用电量(kWh)")
    private BigDecimal dailyPowerUsage;

    @Schema(description = "生产时间(H)")
    @ExcelProperty("生产时间(H)")
    private BigDecimal productionTime;

    @Schema(description = "非生产时间(H)")
    @ExcelProperty("非生产时间(H)")
    private BigDecimal nonProductionTime;

    @Schema(description = "非生产时间原因", example = "不香")
    @ExcelProperty("非生产时间原因")
    private String nptReason;

    @Schema(description = "施工开始日期")
    @ExcelProperty("施工开始日期")
    private LocalDateTime constructionStartDate;

    @Schema(description = "施工结束日期")
    @ExcelProperty("施工结束日期")
    private LocalDateTime constructionEndDate;

    @Schema(description = "当日生产情况生产动态", example = "1")
    @ExcelProperty("当日生产情况生产动态")
    private String productionStatus;

    @Schema(description = "下步工作计划")
    @ExcelProperty("下步工作计划")
    private String nextPlan;

    @Schema(description = "施工简报")
    @ExcelProperty("施工简报")
    private String constructionBrief;

    @Schema(description = "施工状态(动迁上井/动迁下井/施工准备/施工...)", example = "2")
    @ExcelProperty("施工状态(动迁上井/动迁下井/施工准备/施工...)")
    private String fiveStatus;

    @Schema(description = "不同专业公司的扩展属性值")
    @ExcelProperty("不同专业公司的扩展属性值")
    private String extProperty;

    @Schema(description = "排序值")
    @ExcelProperty("排序值")
    private Integer sort;

    @Schema(description = "备注", example = "你猜")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "状态(2填写中 0待填写 1已完成)", example = "2")
    @ExcelProperty("状态(2填写中 0待填写 1已完成)")
    private Integer status;

    @Schema(description = "流程实例id", example = "187")
    @ExcelProperty("流程实例id")
    private String processInstanceId;

    @Schema(description = "审批状态 未提交、审批中、审批通过、审批不通过、已取消", example = "1")
    @ExcelProperty("审批状态 未提交、审批中、审批通过、审批不通过、已取消")
    private Integer auditStatus;

    @Schema(description = "审批意见")
    @ExcelProperty("审批意见")
    private String opinion;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "日报填写时间")
    @ExcelProperty("日报填写时间")
    private LocalDateTime fillTime;

    @Schema(description = "审批时间")
    @ExcelProperty("审批时间")
    private LocalDateTime approvalTime;

    @Schema(description = "事故非生产时间(工程质量)")
    @ExcelProperty("事故非生产时间(工程质量)")
    private BigDecimal accidentTime;

    @Schema(description = "修理非生产时间(设备故障)")
    @ExcelProperty("修理非生产时间(设备故障)")
    private BigDecimal repairTime;

    @Schema(description = "自停非生产时间(设备保养)")
    @ExcelProperty("自停非生产时间(设备保养)")
    private BigDecimal selfStopTime;

    @Schema(description = "复杂非生产时间(技术受限)")
    @ExcelProperty("复杂非生产时间(技术受限)")
    private BigDecimal complexityTime;

    @Schema(description = "搬迁非生产时间(生产配合)")
    @ExcelProperty("搬迁非生产时间(生产配合)")
    private BigDecimal relocationTime;

    @Schema(description = "整改非生产时间(生产组织)")
    @ExcelProperty("整改非生产时间(生产组织)")
    private BigDecimal rectificationTime;

    @Schema(description = "等停非生产时间(不可抗力)")
    @ExcelProperty("等停非生产时间(不可抗力)")
    private BigDecimal waitingStopTime;

    @Schema(description = "冬休非生产时间(待命)T")
    @ExcelProperty("冬休非生产时间(待命)T")
    private BigDecimal winterBreakTime;

    @Schema(description = "甲方设计-非生产时间")
    @ExcelProperty("甲方设计-非生产时间")
    private BigDecimal partyaDesign;

    @Schema(description = "甲方准备-非生产时间")
    @ExcelProperty("甲方准备-非生产时间")
    private BigDecimal partyaPrepare;

    @Schema(description = "甲方资源-非生产时间")
    @ExcelProperty("甲方资源-非生产时间")
    private BigDecimal partyaResource;

    @Schema(description = "其它非生产时间")
    @ExcelProperty("其它非生产时间")
    private BigDecimal otherNptTime;

    @Schema(description = "其它非生产时间原因", example = "不对")
    @ExcelProperty("其它非生产时间原因")
    private String otherNptReason;

    @Schema(description = "非生产时效")
    @ExcelProperty("非生产时效")
    private BigDecimal nptRate;

    /**
     * 扩展字段
     */
    @Schema(description = "施工队伍", example = "压裂一队")
    @ExcelProperty("施工队伍")
    private String deptName;

    @Schema(description = "施工状态 label", example = "2")
    @ExcelProperty("施工状态")
    private String fiveStatusLabel;

    @Schema(description = "当年 累计主压层数(层)")
    @ExcelProperty("累计主压层数(层)")
    private BigDecimal totalWorkingLayers;

    @Schema(description = "当月 完成主压层数(层)")
    @ExcelProperty("当月完成主压层数(层)")
    private BigDecimal monthWorkingLayers;

    @Schema(description = "当月 作业井数(井)")
    @ExcelProperty("当月 作业井数(井)")
    private BigDecimal monthWorkingWells;

    @Schema(description = "当年 累计加砂量(吨)")
    @ExcelProperty("累计加砂量(吨)")
    private BigDecimal totalSandVolume;

    @Schema(description = "当年 累计注液量(m³)")
    @ExcelProperty("累计注液量(m³)")
    private BigDecimal totalLiquidVolume;

    @Schema(description = "当年 累计油耗(吨)")
    @ExcelProperty("累计油耗(吨)")
    private BigDecimal totalDailyFuel;

    @Schema(description = "设备利用率 %")
    @ExcelProperty("设备利用率%")
    private BigDecimal utilizationRate;

    @Schema(description = "当月 计划压裂(层)")
    @ExcelProperty("当月计划压裂(层)")
    private BigDecimal planWorkingLayers;
}