package tech.riemann.ims.dto.response; import club.zhcs.lina.utils.enums.Codebook; import cn.idev.excel.annotation.ExcelIgnore; import cn.idev.excel.annotation.ExcelProperty; import cn.idev.excel.annotation.write.style.ColumnWidth; import com.fasterxml.jackson.annotation.JsonGetter; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.nutz.json.JsonField; import tech.riemann.ims.converter.BooleanConverter; import tech.riemann.ims.converter.ICodeBookConverter; import tech.riemann.ims.enums.ApplyTypeEnum; import tech.riemann.ims.enums.ReviewResultEnum; /** * @author mayong * @since 2024/12/6 21:21 */ @Data @Builder @AllArgsConstructor @NoArgsConstructor public class ApplyDTO { @Schema(description = "申请id") @ExcelIgnore private Long applyId; @Schema(description = "申请类型") @ExcelProperty(value = "申请类型", converter = ICodeBookConverter.class) @ColumnWidth(40) private ApplyTypeEnum applyType; @Schema(description = "物料名称") @ExcelProperty("物料名称") @ColumnWidth(40) private String name; @Schema(description = "物料编码") @ExcelProperty("物料编码") @ColumnWidth(40) private String code; @Schema(description = "物料类型") @ExcelIgnore private String type; @Schema(description = "类型名称") @ExcelProperty("类型名称") @ColumnWidth(40) private String typeName; @Schema(description = "物料规格") @ExcelProperty("物料规格") @ColumnWidth(40) private String spec; @Schema(description = "申请人") @ExcelProperty("申请人") @ColumnWidth(40) private String applicant; @Schema(description = "审核人") @ExcelProperty("审核人") @ColumnWidth(40) private String reviewer; @Schema(description = "申请日期") @ExcelProperty("申请日期") @ColumnWidth(40) private String applyDate; @Schema(description = "申请数量") @ExcelProperty("申请数量") @ColumnWidth(40) private String applyNum; @Schema(description = "确认数量") @ExcelProperty("确认数量") @ColumnWidth(40) private String confirmNum; @Schema(description = "备注") @ExcelProperty("备注") @ColumnWidth(40) private String remark; @Schema(description = "是否确认") @ExcelProperty(value = "是否确认",converter = BooleanConverter.class) @ColumnWidth(40) private Boolean confirm; @Schema(description = "审核状态") @ExcelProperty(value = "审核状态", converter = ICodeBookConverter.class) @ColumnWidth(40) private ReviewResultEnum reviewResult; @JsonGetter @JsonField public Codebook getApplyTypeInfo() { return applyType == null ? null : applyType.build(); } public void setApplyTypeInfo(Codebook areaUnitInfo) { } }