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

import cn.iocoder.yudao.module.pms.controller.admin.iotryimprovedailyreportdetail.vo.IotRyImproveDailyReportDetailSaveReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 瑞鹰项目启动设备整改新增/修改 Request VO")
@Data
public class IotRyImproveDailyReportSaveReqVO {

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

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

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

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

    @Schema(description = "日报标题")
    private String title;

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

    @Schema(description = "施工目的")
    private String workPurpose;

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

    @Schema(description = "安全作业天数(D)")
    private BigDecimal relocationDays;

    @Schema(description = "上井次完井时间")
    private LocalDateTime latestWellDoneTime;

    @Schema(description = "当前井深(m)")
    private BigDecimal currentDepth;

    @Schema(description = "日进尺(m)")
    private BigDecimal dailyFootage;

    @Schema(description = "月进尺(m)")
    private BigDecimal monthlyFootage;

    @Schema(description = "年累计进尺(m)")
    private BigDecimal annualFootage;

    @Schema(description = "当月完井数(井次) 修井")
    private BigDecimal monthlyWellCompletions;

    @Schema(description = "累计完井数(井次) 修井")
    private BigDecimal totalCompletedWells;

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

    @Schema(description = "当月用电量(kWh)")
    private BigDecimal monthlyPowerUsage;

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

    @Schema(description = "当月油耗(吨)")
    private BigDecimal monthlyFuel;

    @Schema(description = "当日上油数量(吨)")
    private BigDecimal dailyOilVolume;

    @Schema(description = "柴油剩余数量(吨)")
    private BigDecimal remainDieselVolume;

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

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

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

    @Schema(description = "进尺工作时间")
    private BigDecimal drillingWorkingTime;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @Schema(description = "目前工序")
    private String currentOperation;

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

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

    @Schema(description = "施工状态(动迁 准备 施工 完工)", example = "2")
    private String rigStatus;

    @Schema(description = "修井施工状态", example = "1")
    private String repairStatus;

    @Schema(description = "人员情况")
    private String personnel;

    @Schema(description = "全员数量")
    private BigDecimal totalStaffNum;

    @Schema(description = "休假人员数量")
    private BigDecimal leaveStaffNum;

    @Schema(description = "泥浆性能-密度(g/cm³)")
    private BigDecimal mudDensity;

    @Schema(description = "泥浆性能-粘度(S)")
    private BigDecimal mudViscosity;

    @Schema(description = "水平段长度(m) 适用于水平井")
    private BigDecimal lateralLength;

    @Schema(description = "井斜(°)")
    private BigDecimal wellInclination;

    @Schema(description = "方位(°)")
    private BigDecimal azimuth;

    @Schema(description = "白班跟班干部(人员id集合)")
    private String dayShiftSupervisor;

    @Schema(description = "白班跟班干部名称(人员名称集合)")
    private String daySupervisors;

    @Schema(description = "夜班跟班干部(人员id集合)")
    private String nightShiftSupervisor;

    @Schema(description = "夜班跟班干部名称(人员名称集合)")
    private String nightSupervisors;

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

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

    @Schema(description = "备注", example = "你说的对")
    private String remark;

    @Schema(description = "状态(0启用 1禁用)", example = "1")
    private Integer status;

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

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

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

    /**
     * 扩展字段
     */
    @Schema(description = "生产动态明细")
    private List<IotRyImproveDailyReportDetailSaveReqVO> improveReportDetails;

    @Schema(description = "修改标识 Y 修改日报不再审批")
    private String modifyFlag;
}