package cn.iocoder.yudao.module.hrm.controller.admin.asset.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; @Schema(description = "管理后台 - 资产台账新增/修改 Request VO") @Data public class HrmAssetSaveReqVO { @Schema(description = "编号(修改时必填)", example = "1") private Long id; @Schema(description = "资产编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZC2026001") @NotBlank(message = "资产编码不能为空") private String code; @Schema(description = "资产名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "笔记本电脑") @NotBlank(message = "资产名称不能为空") private String name; @Schema(description = "型号", example = "ThinkPad X1") private String model; @Schema(description = "规格", example = "14 英寸 / 32G / 1T") private String specification; @Schema(description = "资产类别:1 办公设备 2 生产工具 3 电子设备 4 家具 5 其他", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") @NotNull(message = "资产类别不能为空") private Integer category; @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "数量不能为空") @Min(value = 1, message = "数量必须大于 0") private Integer quantity; @Schema(description = "单位", example = "台") private String unit; @Schema(description = "购置时间", example = "2026-01-01") private LocalDate purchaseDate; @Schema(description = "购置金额", example = "6999.00") private BigDecimal purchasePrice; @Schema(description = "供应商名称", example = "联想专卖店") private String supplierName; @Schema(description = "使用部门编号", example = "1024") private Long deptId; @Schema(description = "使用人编号", example = "1024") private Long userId; @Schema(description = "存放位置", example = "办公楼 3 楼 301") private String location; @Schema(description = "资产状态:1 在用 2 闲置 3 报废", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "资产状态不能为空") private Integer status; @Schema(description = "备注", example = "备注") private String remark; }