package cn.iocoder.yudao.module.mes.controller.admin.pd.archive.vo; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.module.mes.enums.DictTypeConstants; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.time.LocalDateTime; import java.util.List; @Schema(description = "管理后台 - MES 归档台账详情(按产品) Response VO") @Data public class MesPdArchiveDetailRespVO { @Schema(description = "项目信息") private ProjectInfo project; @Schema(description = "归档记录列表") private List archives; @Schema(description = "设计资料列表") private List documents; @Schema(description = "项目信息") @Data public static class ProjectInfo { @Schema(description = "项目ID", example = "1") private Long id; @Schema(description = "任务编码", example = "PD2024001") private String taskCode; @Schema(description = "任务名称", example = "新产品设计任务") private String taskName; @Schema(description = "产品编码", example = "P001") private String productCode; @Schema(description = "产品名称", example = "注塑产品A") private String productName; @Schema(description = "版本号", example = "V1.0") private String version; @Schema(description = "项目状态", example = "4") @DictFormat(DictTypeConstants.MES_PD_PROJECT_STATUS) private Integer status; @Schema(description = "主设计师", example = "1") private Long chiefDesigner; @Schema(description = "主设计师名称", example = "张三") private String chiefDesignerNickname; @Schema(description = "审核人", example = "2") private Long reviewer; @Schema(description = "审核人名称", example = "李四") private String reviewerNickname; @Schema(description = "计划完成时间") private LocalDateTime planFinishTime; @Schema(description = "备注", example = "测试备注") private String remark; @Schema(description = "创建时间") private LocalDateTime createTime; } @Schema(description = "归档记录信息") @Data public static class ArchiveInfo { @Schema(description = "归档ID", example = "1") private Long id; @Schema(description = "归档编号", example = "ARC2024001") private String archiveCode; @Schema(description = "归档人", example = "1") private Long archiver; @Schema(description = "归档人名称", example = "王五") private String archiverNickname; @Schema(description = "归档状态", example = "1") @DictFormat(DictTypeConstants.MES_PD_ARCHIVE_STATUS) private Integer archiveStatus; @Schema(description = "归档时间") private LocalDateTime archiveTime; @Schema(description = "备注", example = "测试备注") private String remark; @Schema(description = "创建时间") private LocalDateTime createTime; } @Schema(description = "设计资料信息") @Data public static class DocumentInfo { @Schema(description = "资料ID", example = "1") private Long id; @Schema(description = "资料类型", example = "1") @DictFormat(DictTypeConstants.MES_PD_DOCUMENT_TYPE) private String documentType; @Schema(description = "资料名称", example = "产品设计图") private String documentName; @Schema(description = "资料版本", example = "V1.0") private String documentVersion; @Schema(description = "文件名", example = "design.pdf") private String fileName; @Schema(description = "文件URL", example = "/files/design.pdf") private String fileUrl; @Schema(description = "上传人", example = "1") private Long uploadUserId; @Schema(description = "上传人名称", example = "赵六") private String uploadUserNickname; @Schema(description = "上传时间") private LocalDateTime uploadTime; @Schema(description = "备注", example = "测试备注") private String remark; @Schema(description = "创建时间") private LocalDateTime createTime; } }