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 = "OaApprovalApplicationStorageGeneralDTO", description = "通用资产入库申请DTO") public class OaApprovalApplicationStorageGeneralDTO extends OaApprovalApplicationStorageDTO { @ApiModelProperty(value = "通用资产明细列表") @Valid @Size(min = 1, message = "资产明细不能为空") private List assetItems; @Data @ApiModel(value = "GeneralAssetItemDTO", description = "通用资产明细DTO") public static class GeneralAssetItemDTO { // 资产主表字段 @ApiModelProperty(value = "资产原编码") private String assetOriginalCode; @ApiModelProperty(value = "资产名称") @NotBlank(message = "资产名称不能为空") private String assetName; @ApiModelProperty(value = "类别") @NotBlank(message = "类别不能为空") private String category; @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 = "总金额") private BigDecimal totalValue; @ApiModelProperty(value = "权属单位/部门名称") private String ownershipDeptName; @ApiModelProperty(value = "使用人") private String userName; @ApiModelProperty(value = "使用/位置类型 0-部门,1-仓库,2-录入地址") private Integer addressType; @ApiModelProperty(value = "使用部门/位置名称") private String useDeptName; @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; } }