package com.huashe.park.domain.entity;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.huashe.common.annotation.Excel;
import com.huashe.common.domain.BaseEntity;
import com.huashe.park.common.animations.FixedLength;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 桩机施工过程数据对象 cons_machine_process
 * 
 * @author ruoyi
 * @date 2025-02-26
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class MachineProcess extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 设备类型（0-1字节） */
    @Excel(name = "设备类型", readConverterExp = "0=-1字节")
    @FixedLength(value = 2)
    private Short consType;

    /** 数据版本（2字节） */
    @Excel(name = "数据版本", readConverterExp = "2=字节")
    @FixedLength(value = 1)
    private Byte dataVersion;

    /** 数据时间（3-10字节，大端序） */
    @Excel(name = "数据时间", readConverterExp = "3=-10字节，大端序")
    @FixedLength(value = 8)
    private Long dataTime;

    /** 桩号（11-18字节） */
    @Excel(name = "桩号", readConverterExp = "1=1-18字节")
    @FixedLength(value = 8)
    private String pileId;

    /** 设计编号（19-26字节） */
    @Excel(name = "设计编号", readConverterExp = "1=9-26字节")
    @FixedLength(value = 8)
    private String designId;

    /** 机器编号（27-34字节） */
    @Excel(name = "机器编号", readConverterExp = "2=7-34字节")
    @FixedLength(value = 8)
    private String machineId;

    /** 实际X坐标（35-42字节） */
    @Excel(name = "实际X坐标", readConverterExp = "3=5-42字节")
    @FixedLength(value = 8)
    private Double realX;

    /** 实际Y坐标（43-50字节） */
    @Excel(name = "实际Y坐标", readConverterExp = "4=3-50字节")
    @FixedLength(value = 8)
    private Double realY;

    /** 高程（51-54字节） */
    @Excel(name = "高程", readConverterExp = "5=1-54字节")
    @FixedLength(value = 4)
    private Float realZ;

    /** 纬度（55-62字节） */
    @Excel(name = "纬度", readConverterExp = "5=5-62字节")
    @FixedLength(value = 8)
    private Double latitude;

    /** 经度（63-70字节） */
    @Excel(name = "经度", readConverterExp = "6=3-70字节")
    @FixedLength(value = 8)
    private Double longitude;

    /** 设计桩长（71-74字节） */
    @Excel(name = "设计桩长", readConverterExp = "7=1-74字节")
    @FixedLength(value = 4)
    private Float pileLength;

    /** 实际桩长（75-78字节） */
    @Excel(name = "实际桩长", readConverterExp = "7=5-78字节")
    @FixedLength(value = 4)
    private Float realPileLength;

    /** 速度（79-82字节） */
    @Excel(name = "速度", readConverterExp = "7=9-82字节")
    @FixedLength(value = 4)
    private Float speed;

    /** 电流（83-86字节） */
    @Excel(name = "电流", readConverterExp = "8=3-86字节")
    @FixedLength(value = 4)
    private Float current;

    /** 倾侧角（87-90字节） */
    @Excel(name = "倾侧角", readConverterExp = "8=7-90字节")
    @FixedLength(value = 4)
    private Float tiltAngle;

    /** 前倾角（91-94字节） */
    @Excel(name = "前倾角", readConverterExp = "9=1-94字节")
    @FixedLength(value = 4)
    private Float forwardTiltAngle;

    /** 垂直度（95-98字节） */
    @Excel(name = "垂直度", readConverterExp = "9=5-98字节")
    @FixedLength(value = 4)
    private Float verticalAngle;

    /** 自编号（99-102字节） */
    @Excel(name = "自编号", readConverterExp = "9=9-102字节")
    @FixedLength(value = 4)
    private Integer selfNum;

    /** 持力层电流（103-106字节） */
    @Excel(name = "持力层电流", readConverterExp = "1=03-106字节")
    @FixedLength(value = 4)
    private Float holdCurrent;

    /** 灌浆体积（107-110字节） */
    @Excel(name = "灌浆体积", readConverterExp = "1=07-110字节")
    @FixedLength(value = 4)
    private Float sprayVolume;

    /** 实时钻头高程（111-114字节） */
    @Excel(name = "实时钻头高程", readConverterExp = "1=11-114字节")
    @FixedLength(value = 4)
    private Float realDrillHeight;

    /** 振动电流（115-118字节） */
    @Excel(name = "振动电流", readConverterExp = "1=15-118字节")
    @FixedLength(value = 4)
    private Float vibrationCurrent;

    /** 水泵电流（119-122字节） */
    @Excel(name = "水泵电流", readConverterExp = "1=19-122字节")
    @FixedLength(value = 4)
    private Float pumpCurrent;

    /** 喷浆压力（123-126字节） */
    @Excel(name = "喷浆压力", readConverterExp = "1=23-126字节")
    @FixedLength(value = 4)
    private Float sprayPressure;

    /** 喷浆速度（127-130字节） */
    @Excel(name = "喷浆速度", readConverterExp = "1=27-130字节")
    @FixedLength(value = 4)
    private Float spraySpeed;

    /** 设计桩长（131-134字节） */
    @Excel(name = "设计桩长", readConverterExp = "1=31-134字节")
    @FixedLength(value = 4)
    private Float designLength;

    /** 当前钻杆节数（135-138字节） */
    @Excel(name = "当前钻杆节数", readConverterExp = "1=35-138字节")
    @FixedLength(value = 4)
    private Integer currentDrillNumber;

    /** 每节开始时间（139-146字节，大端序） */
    @Excel(name = "每节开始时间", readConverterExp = "1=39-146字节，大端序")
    @FixedLength(value = 8)
    private Long startTime;

    /** 每节结束时间（147-154字节，大端序） */
    @Excel(name = "每节结束时间", readConverterExp = "1=47-154字节，大端序")
    @FixedLength(value = 8)
    private Long endTime;

    /** 当前机械类型（155-158字节） */
    @Excel(name = "当前机械类型", readConverterExp = "1=55-158字节")
    @FixedLength(value = 4)
    private Integer currentMechanicalType;

    /** 当前层（159-163字节） */
    @Excel(name = "当前层", readConverterExp = "1=59-163字节")
    private Integer currentLayer;

    /** 当前层送土时长（164-167字节） */
    @Excel(name = "当前层送土时长", readConverterExp = "1=64-167字节")
    private Double currentLayerSendTime;

    /** 当前层夯击次数（168-171字节） */
    @Excel(name = "当前层夯击次数", readConverterExp = "1=68-171字节")
    private Integer currentLayerHammerNumber;

    /** UUID（172+字节） */
    @Excel(name = "UUID", readConverterExp = "1=72+字节")
    @FixedLength(value = -1)
    private String uuid;

    /** 时间分区，yyyyMMdd */
    @Excel(name = "时间分区，yyyyMMdd")
    private String dt;

    /** 自增主键 */
    private Long id;

    private String recordTime;

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("consType", getConsType())
            .append("dataVersion", getDataVersion()).append("dataTime", getDataTime()).append("pileId", getPileId())
            .append("designId", getDesignId()).append("machineId", getMachineId()).append("realX", getRealX())
            .append("realY", getRealY()).append("realZ", getRealZ()).append("latitude", getLatitude())
            .append("longitude", getLongitude()).append("pileLength", getPileLength())
            .append("realPileLength", getRealPileLength()).append("speed", getSpeed()).append("current", getCurrent())
            .append("tiltAngle", getTiltAngle()).append("forwardTiltAngle", getForwardTiltAngle())
            .append("verticalAngle", getVerticalAngle()).append("selfNum", getSelfNum())
            .append("holdCurrent", getHoldCurrent()).append("sprayVolume", getSprayVolume())
            .append("realDrillHeight", getRealDrillHeight()).append("vibrationCurrent", getVibrationCurrent())
            .append("pumpCurrent", getPumpCurrent()).append("sprayPressure", getSprayPressure())
            .append("spraySpeed", getSpraySpeed()).append("designLength", getDesignLength())
            .append("currentDrillNumber", getCurrentDrillNumber()).append("startTime", getStartTime())
            .append("endTime", getEndTime()).append("currentMechanicalType", getCurrentMechanicalType())
            .append("currentLayer", getCurrentLayer()).append("currentLayerSendTime", getCurrentLayerSendTime())
            .append("currentLayerHammerNumber", getCurrentLayerHammerNumber()).append("uuid", getUuid())
            .append("dt", getDt()).append("id", getId()).append("recordTime", getRecordTime()).toString();
    }
}
