package com.ruoyi.system.dto.asset; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import org.springframework.format.annotation.DateTimeFormat; import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; /** * 车辆资产入库申请DTO * * @author CodeBuddy * @since 2025-09-17 */ @Data @EqualsAndHashCode(callSuper = true) @ApiModel(value = "OaApprovalApplicationStorageVehicleDTO", description = "车辆资产入库申请DTO") public class OaApprovalApplicationStorageVehicleDTO extends OaApprovalApplicationStorageDTO { @ApiModelProperty(value = "车辆资产明细列表") @Valid @Size(min = 1, message = "资产明细不能为空") private List assetItems; @Data @ApiModel(value = "VehicleAssetItemDTO", description = "车辆资产明细DTO") public static class VehicleAssetItemDTO { // 资产主表字段 @ApiModelProperty(value = "资产原编码") private String assetOriginalCode; @ApiModelProperty(value = "资产名称") @NotBlank(message = "资产名称不能为空") private String assetName; @ApiModelProperty(value = "规格型号") private String specificationModel; @ApiModelProperty(value = "计量单位") @NotBlank(message = "计量单位不能为空") private String measurementUnit; @ApiModelProperty(value = "数量") @NotNull(message = "数量不能为空") private BigDecimal quantity; @ApiModelProperty(value = "单价") @NotNull(message = "单价不能为空") private BigDecimal unitPrice; @ApiModelProperty(value = "使用年限(年)") private Integer usefulLife; @ApiModelProperty(value = "权属单位/部门ID") private Integer ownershipDeptId; @ApiModelProperty(value = "使用人") private String userName; @ApiModelProperty(value = "使用部门/位置ID") private Integer useDeptId; @ApiModelProperty(value = "仓库ID") private Integer warehouseId; @ApiModelProperty(value = "仓库名称") private String warehouseName; @ApiModelProperty(value = "所在位置") private String address; @ApiModelProperty(value = "资产状态") private String assetStatus; @ApiModelProperty(value = "备注") private String remarks; @ApiModelProperty(value = "入账状态") private String accountingStatus; @ApiModelProperty(value = "入账时间") @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate accountingDate; @ApiModelProperty(value = "会计凭证号") private String accountingVoucherNo; @ApiModelProperty(value = "会计科目") private String accountingSubject; @ApiModelProperty(value = "入账金额") private BigDecimal accountingAmount; // 车辆资产扩展表字段 @ApiModelProperty(value = "车牌号") private String licensePlate; @ApiModelProperty(value = "车辆识别代码") private String vinCode; @ApiModelProperty(value = "发动机号") private String engineNumber; @ApiModelProperty(value = "排量") private String displacement; @ApiModelProperty(value = "编制情况") private String staffingSituation; @ApiModelProperty(value = "产地") private String origin; @ApiModelProperty(value = "取得日期") @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate acquisitionDate; @ApiModelProperty(value = "产权形式") private String propertyRightForm; } }