feat(oa): 新增设计项目汇报功能

- 添加汇报详情和汇报概述的接口和服务实现
- 创建相关的实体类、BO、VO和Mapper
- 实现汇报列表查询、详情查询、新增、修改和删除功能
- 优化汇报列表展示,加入最近更新时间字段
This commit is contained in:
2025-08-08 17:31:34 +08:00
parent b3feb0d1c7
commit 4ec4c9d173
17 changed files with 1129 additions and 1 deletions

View File

@@ -0,0 +1,62 @@
package com.gear.oa.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gear.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 设计项目汇报详情对象 oa_report_detail
*
* @author ruoyi
* @date 2025-05-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oa_report_detail")
public class OaReportDetail extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键ID
*/
@TableId(value = "detail_id")
private Long detailId;
/**
* 关联汇报概述IDoa_report_summary.id
*/
private Long summaryId;
/**
* 设备唯一编号
*/
private String deviceCode;
/**
* 设备类别
*/
private String category;
/**
* 设备生产说明
*/
private String deviceDescription;
/**
* 汇报详情内容(含文字、图像说明等)
*/
private String reportDetail;
/**
* 关联图像 OSS ID 列表(逗号分隔)
*/
private String ossIds;
/**
* 删除标志0 正常1 删除)
*/
@TableLogic
private Long delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,54 @@
package com.gear.oa.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gear.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 设计项目汇报概述对象 oa_report_summary
*
* @author cpy
* @date 2025-05-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oa_report_summary")
public class OaReportSummary extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键ID
*/
@TableId(value = "summary_id")
private Long summaryId;
/**
* 汇报标题
*/
private String reportTitle;
/**
* 汇报日期
*/
private Date reportDate;
/**
* 汇报人
*/
private String reporter;
/**
* 删除标志0 正常1 删除)
*/
@TableLogic
private Long delFlag;
/**
* 备注
*/
private String remark;
private Long type;
}

View File

@@ -0,0 +1,63 @@
package com.gear.oa.domain.bo;
import com.gear.common.core.domain.BaseEntity;
import com.gear.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
/**
* 设计项目汇报详情业务对象 oa_report_detail
*
* @author ruoyi
* @date 2025-05-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class OaReportDetailBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long detailId;
/**
* 关联汇报概述IDoa_report_summary.id
*/
private Long summaryId;
/**
* 设备唯一编号
*/
private String deviceCode;
/**
* 设备类别
*/
private String category;
/**
* 设备生产说明
*/
private String deviceDescription;
/**
* 汇报详情内容(含文字、图像说明等)
*/
private String reportDetail;
/**
* 关联图像 OSS ID 列表(逗号分隔)
*/
private String ossIds;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,56 @@
package com.gear.oa.domain.bo;
import com.gear.common.core.domain.BaseEntity;
import com.gear.common.core.validate.AddGroup;
import com.gear.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* 设计项目汇报概述业务对象 oa_report_summary
*
* @author cpy
* @date 2025-05-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class OaReportSummaryBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long summaryId;
/**
* 汇报标题
*/
@NotBlank(message = "汇报标题不能为空", groups = { AddGroup.class, EditGroup.class })
private String reportTitle;
/**
* 汇报日期
*/
@NotNull(message = "汇报日期不能为空", groups = { AddGroup.class, EditGroup.class })
private Date reportDate;
/**
* 汇报人
*/
@NotBlank(message = "汇报人不能为空", groups = { AddGroup.class, EditGroup.class })
private String reporter;
/**
* 备注
*/
private String remark;
private Long type;
}

View File

@@ -0,0 +1,81 @@
package com.gear.oa.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.gear.common.annotation.ExcelDictFormat;
import com.gear.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 设计项目汇报详情视图对象 oa_report_detail
*
* @author ruoyi
* @date 2025-05-13
*/
@Data
@ExcelIgnoreUnannotated
public class OaReportDetailVo {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long detailId;
/**
* 关联汇报概述IDoa_report_summary.id
*/
@ExcelProperty(value = "关联汇报概述ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "o=a_report_summary.id")
private Long summaryId;
/**
* 设备唯一编号
*/
@ExcelProperty(value = "设备唯一编号")
private String deviceCode;
/**
* 设备类别
*/
@ExcelProperty(value = "设备类别")
private String category;
/**
* 设备生产说明
*/
@ExcelProperty(value = "设备生产说明")
private String deviceDescription;
/**
* 汇报详情内容(含文字、图像说明等)
*/
@ExcelProperty(value = "汇报详情内容", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "含=文字、图像说明等")
private String reportDetail;
/**
* 关联图像 OSS ID 列表(逗号分隔)
*/
@ExcelProperty(value = "关联图像 OSS ID 列表", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "逗=号分隔")
private String ossIds;
/**
* 关联图像 OSS URL 列表
*/
@ExcelProperty(value = "关联图像 OSS URL 列表", converter = ExcelDictConvert.class)
private String images;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,56 @@
package com.gear.oa.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.util.Date;
/**
* 设计项目汇报概述视图对象 oa_report_summary
*
* @author cpy
* @date 2025-05-13
*/
@Data
@ExcelIgnoreUnannotated
public class OaReportSummaryVo {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long summaryId;
/**
* 汇报标题
*/
@ExcelProperty(value = "汇报标题")
private String reportTitle;
/**
* 汇报日期
*/
@ExcelProperty(value = "汇报日期")
private Date reportDate;
/**
* 汇报人
*/
@ExcelProperty(value = "汇报人")
private String reporter;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
private Long type;
@ExcelProperty(value = "最近更新时间")
private Date lastUpdateTime;
}