package cn.iocoder.yudao.module.finance.controller.admin.asset.vo; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.module.finance.enums.DictTypeConstants; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; import cn.idev.excel.annotation.write.style.ColumnWidth; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; @Schema(description = "管理后台 - 固定资产 Response VO") @Data @ExcelIgnoreUnannotated public class FinFixedAssetRespVO { @Schema(description = "资产编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @Schema(description = "资产编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "GD202610120001") @ExcelProperty("资产编号") private String assetCode; @Schema(description = "资产名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "数控车床") @ExcelProperty("资产名称") private String assetName; @Schema(description = "资产类别", example = "生产设备") @ExcelProperty("资产类别") private String category; @Schema(description = "规格型号", example = "CK6140") @ExcelProperty("规格型号") private String specification; @Schema(description = "购置日期", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("购置日期") private LocalDate purchaseDate; @Schema(description = "资产原值", requiredMode = Schema.RequiredMode.REQUIRED, example = "120000.00") @ExcelProperty("资产原值") private BigDecimal originalValue; @Schema(description = "使用年限(年)", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @ExcelProperty("使用年限(年)") private Integer usefulLife; @Schema(description = "残值率(%)", example = "5.00") @ExcelProperty("残值率(%)") private BigDecimal residualRate; @Schema(description = "月折旧额", example = "950.00") @ExcelProperty("月折旧额") private BigDecimal monthlyDepreciation; @Schema(description = "累计折旧", requiredMode = Schema.RequiredMode.REQUIRED, example = "11400.00") @ExcelProperty("累计折旧") private BigDecimal accumulatedDepreciation; @Schema(description = "净值", requiredMode = Schema.RequiredMode.REQUIRED, example = "108600.00") @ExcelProperty("净值") private BigDecimal netValue; @Schema(description = "存放地点", example = "一号车间") @ExcelProperty("存放地点") private String location; @Schema(description = "使用部门编号", example = "100") private Long departmentId; /** * 使用部门名称,列表与 Excel 导出用。 * departmentId 存的是部门编号,直接展示就是一串数字,所以另用这个字段承载名称; * 与凭证的制单人昵称 creatorName 同一套口径,由 Controller 批量解析后回填。 */ @Schema(description = "使用部门名称", example = "生产部") @ExcelProperty("使用部门") private String departmentName; @Schema(description = "保管人编号(用户编号)", example = "1") private Long keeperId; @Schema(description = "保管人昵称", example = "张三") @ExcelProperty("保管人") private String keeperName; @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @ExcelProperty(value = "状态", converter = DictConvert.class) @DictFormat(DictTypeConstants.FIXED_ASSET_STATUS) private Integer status; @Schema(description = "备注", example = "备注") @ExcelProperty("备注") private String remark; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) // 「yyyy-MM-dd HH:mm:ss」正好 19 个字符,自适应列宽就只给 19,贴着边很难看,这里放宽到 22 @ColumnWidth(22) @ExcelProperty("创建时间") private LocalDateTime createTime; }