package com.huashe.park.domain.entity;

import java.util.Date;

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

import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.huashe.common.annotation.Excel;
import com.huashe.common.domain.BaseEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * 桩点最新指标对象 cons_pile_hole_index_realtime
 *
 * @author ruoyi
 * @date 2025-03-03
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
public class PileHoleIndexRealtime extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**  */
    private Long id;

    /** 桩点id */
    @Excel(name = "桩点id")
    private Long holeId;

    private String holeNum;

    private Long consUnitId;

    /** 桩点编号 */
    @Excel(name = "桩点编号")
    private String holeByteKey;

    /** 桩机id */
    @Excel(name = "桩机id")
    private Long machineId;

    /** 桩机编号 */
    @Excel(name = "桩机编号")
    private String machineByteKey;

    private Float tiltAngle;

    private Float forwardTiltAngle;

    /** 桩机实际深度 */
    @Excel(name = "桩机实际深度")
    private Float depth;

    /** 电机电流 */
    @Excel(name = "电机电流")
    private Float current;

    /** 垂直偏差 */
    @Excel(name = "垂直偏差")
    private Float verticalDeviation;

    /** 灌浆体积（m³）ups200送带量 */
    @Excel(name = "回带量", readConverterExp = "m=³")
    private Float sprayVolume;

    @Excel(name = "送带量", readConverterExp = "m=³")
    private Float sendSprayVolume;

    /** 喷浆压力 ups200 压力值 */
    @Excel(name = "喷浆压力 ups200 压力值")
    private Float sprayPressure;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 桩点状态 */
    @Excel(name = "桩点状态")
    private String status;

    private Double realX;

    private Double realY;

    private Double realLat;

    private Double realLng;

    private Float endPress;

    private JSONObject depthPress;

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId())
            .append("holeId", getHoleId()).append("holeByteKey", getHoleByteKey()).append("machineId", getMachineId())
            .append("machineByteKey", getMachineByteKey()).append("depth", getDepth()).append("current", getCurrent())
            .append("verticalDeviation", getVerticalDeviation()).append("sprayVolume", getSprayVolume())
            .append("sprayPressure", getSprayPressure()).append("startTime", getStartTime())
            .append("endTime", getEndTime()).append("status", getStatus()).append("updateTime", getUpdateTime())
            .append("createTime", getCreateTime()).append("createBy", getCreateBy()).append("updateBy", getUpdateBy())
            .toString();
    }
}
