package com.ruoyi.system.domain.assets;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 社区资产对象 community_assets
 * 
 * @author boman
 * @date 2025-02-24
 */
public class CommunityAssets extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 资产ID */
    private Long communityAssetId;

    /** 资产类型id */
    @Excel(name = "资产类型id")
    private Long assetId;

    /** 资产类型，如设备、车辆等 */
    @Excel(name = "资产类型，如设备、车辆等")
    private String assetName;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String equipmentName;

    /** 设备封面照片的存储路径 */
    @Excel(name = "设备封面照片的存储路径")
    private String equipmentCoverPhoto;

    /** 设备编号，唯一标识 */
    @Excel(name = "设备编号，唯一标识")
    private String equipmentNumber;

    /** 设备二维码的存储路径或内容 */
    @Excel(name = "设备二维码的存储路径或内容")
    private String equipmentQrCode;

    /** 设备状态，如正常、维修中、报废等 */
    @Excel(name = "设备状态，如正常、维修中、报废等")
    private String equipmentStatus;

    /** 设备型号 */
    @Excel(name = "设备型号")
    private String equipmentModel;

    /** 设备购买时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "设备购买时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date purchaseDate;

    /** 设备用途描述 */
    @Excel(name = "设备用途描述")
    private String equipmentPurpose;

    /** 设备存放位置或使用位置 */
    @Excel(name = "设备存放位置或使用位置")
    private String equipmentLocation;

    /** 设备购买价格 */
    @Excel(name = "设备购买价格")
    private BigDecimal equipmentPrice;

    /** 设备入库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "设备入库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date storageTime;

    /** 入库操作人 */
    @Excel(name = "入库操作人")
    private String storagePerson;

    /** 设备出库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "设备出库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date outboundTime;

    /** 出库操作人 */
    @Excel(name = "出库操作人")
    private String outboundPerson;

    /** 车牌号（如果是车辆类资产） */
    @Excel(name = "车牌号", readConverterExp = "如=果是车辆类资产")
    private String plateNumber;

    /** 设备照片的存储路径（多个路径用逗号分隔） */
    @Excel(name = "设备照片的存储路径", readConverterExp = "多=个路径用逗号分隔")
    private String equipmentPhotos;

    /** 最近维护日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最近维护日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date maintenanceDate;

    /** 维护操作人 */
    @Excel(name = "维护操作人")
    private String maintenancePerson;

    /** 保修期（月） */
    @Excel(name = "保修期", readConverterExp = "月=")
    private String warrantyPeriod;

    /** 折旧率（百分比） */
    @Excel(name = "折旧率", readConverterExp = "百=分比")
    private String depreciationRate;

    public void setCommunityAssetId(Long communityAssetId) 
    {
        this.communityAssetId = communityAssetId;
    }

    public Long getCommunityAssetId() 
    {
        return communityAssetId;
    }
    public void setAssetId(Long assetId) 
    {
        this.assetId = assetId;
    }

    public Long getAssetId() 
    {
        return assetId;
    }
    public void setAssetName(String assetName) 
    {
        this.assetName = assetName;
    }

    public String getAssetName() 
    {
        return assetName;
    }
    public void setEquipmentName(String equipmentName) 
    {
        this.equipmentName = equipmentName;
    }

    public String getEquipmentName() 
    {
        return equipmentName;
    }
    public void setEquipmentCoverPhoto(String equipmentCoverPhoto) 
    {
        this.equipmentCoverPhoto = equipmentCoverPhoto;
    }

    public String getEquipmentCoverPhoto() 
    {
        return equipmentCoverPhoto;
    }
    public void setEquipmentNumber(String equipmentNumber) 
    {
        this.equipmentNumber = equipmentNumber;
    }

    public String getEquipmentNumber() 
    {
        return equipmentNumber;
    }
    public void setEquipmentQrCode(String equipmentQrCode) 
    {
        this.equipmentQrCode = equipmentQrCode;
    }

    public String getEquipmentQrCode() 
    {
        return equipmentQrCode;
    }
    public void setEquipmentStatus(String equipmentStatus) 
    {
        this.equipmentStatus = equipmentStatus;
    }

    public String getEquipmentStatus() 
    {
        return equipmentStatus;
    }
    public void setEquipmentModel(String equipmentModel) 
    {
        this.equipmentModel = equipmentModel;
    }

    public String getEquipmentModel() 
    {
        return equipmentModel;
    }
    public void setPurchaseDate(Date purchaseDate) 
    {
        this.purchaseDate = purchaseDate;
    }

    public Date getPurchaseDate() 
    {
        return purchaseDate;
    }
    public void setEquipmentPurpose(String equipmentPurpose) 
    {
        this.equipmentPurpose = equipmentPurpose;
    }

    public String getEquipmentPurpose() 
    {
        return equipmentPurpose;
    }
    public void setEquipmentLocation(String equipmentLocation) 
    {
        this.equipmentLocation = equipmentLocation;
    }

    public String getEquipmentLocation() 
    {
        return equipmentLocation;
    }
    public void setEquipmentPrice(BigDecimal equipmentPrice) 
    {
        this.equipmentPrice = equipmentPrice;
    }

    public BigDecimal getEquipmentPrice() 
    {
        return equipmentPrice;
    }
    public void setStorageTime(Date storageTime) 
    {
        this.storageTime = storageTime;
    }

    public Date getStorageTime() 
    {
        return storageTime;
    }
    public void setStoragePerson(String storagePerson) 
    {
        this.storagePerson = storagePerson;
    }

    public String getStoragePerson() 
    {
        return storagePerson;
    }
    public void setOutboundTime(Date outboundTime) 
    {
        this.outboundTime = outboundTime;
    }

    public Date getOutboundTime() 
    {
        return outboundTime;
    }
    public void setOutboundPerson(String outboundPerson) 
    {
        this.outboundPerson = outboundPerson;
    }

    public String getOutboundPerson() 
    {
        return outboundPerson;
    }
    public void setPlateNumber(String plateNumber) 
    {
        this.plateNumber = plateNumber;
    }

    public String getPlateNumber() 
    {
        return plateNumber;
    }
    public void setEquipmentPhotos(String equipmentPhotos) 
    {
        this.equipmentPhotos = equipmentPhotos;
    }

    public String getEquipmentPhotos() 
    {
        return equipmentPhotos;
    }
    public void setMaintenanceDate(Date maintenanceDate) 
    {
        this.maintenanceDate = maintenanceDate;
    }

    public Date getMaintenanceDate() 
    {
        return maintenanceDate;
    }
    public void setMaintenancePerson(String maintenancePerson) 
    {
        this.maintenancePerson = maintenancePerson;
    }

    public String getMaintenancePerson() 
    {
        return maintenancePerson;
    }
    public void setWarrantyPeriod(String warrantyPeriod) 
    {
        this.warrantyPeriod = warrantyPeriod;
    }

    public String getWarrantyPeriod() 
    {
        return warrantyPeriod;
    }

    public String getDepreciationRate() {
        return depreciationRate;
    }

    public void setDepreciationRate(String depreciationRate) {
        this.depreciationRate = depreciationRate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("communityAssetId", getCommunityAssetId())
            .append("assetId", getAssetId())
            .append("assetName", getAssetName())
            .append("equipmentName", getEquipmentName())
            .append("equipmentCoverPhoto", getEquipmentCoverPhoto())
            .append("equipmentNumber", getEquipmentNumber())
            .append("equipmentQrCode", getEquipmentQrCode())
            .append("equipmentStatus", getEquipmentStatus())
            .append("equipmentModel", getEquipmentModel())
            .append("purchaseDate", getPurchaseDate())
            .append("equipmentPurpose", getEquipmentPurpose())
            .append("equipmentLocation", getEquipmentLocation())
            .append("equipmentPrice", getEquipmentPrice())
            .append("storageTime", getStorageTime())
            .append("storagePerson", getStoragePerson())
            .append("outboundTime", getOutboundTime())
            .append("outboundPerson", getOutboundPerson())
            .append("plateNumber", getPlateNumber())
            .append("equipmentPhotos", getEquipmentPhotos())
            .append("maintenanceDate", getMaintenanceDate())
            .append("maintenancePerson", getMaintenancePerson())
            .append("warrantyPeriod", getWarrantyPeriod())
            .append("depreciationRate", getDepreciationRate())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
