From aab2c57df04d0cb4fc661b33d86dfe7c2c81d019 Mon Sep 17 00:00:00 2001 From: coolleave Date: Tue, 13 May 2025 21:21:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=BD=E5=B7=A5=E8=BF=9B=E5=BA=A6=E6=A6=82?= =?UTF-8?q?=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OaReportDetailController.java | 108 +++++++++++++++++ .../controller/OaReportSummaryController.java | 108 +++++++++++++++++ .../com/ruoyi/oa/domain/OaReportDetail.java | 64 ++++++++++ .../com/ruoyi/oa/domain/OaReportSummary.java | 58 +++++++++ .../ruoyi/oa/domain/bo/OaReportDetailBo.java | 73 +++++++++++ .../ruoyi/oa/domain/bo/OaReportSummaryBo.java | 62 ++++++++++ .../ruoyi/oa/domain/vo/OaReportDetailVo.java | 76 ++++++++++++ .../ruoyi/oa/domain/vo/OaReportSummaryVo.java | 69 +++++++++++ .../oa/mapper/OaReportSummaryMapper.java | 20 +++ .../oa/service/IOaReportDetailService.java | 49 ++++++++ .../oa/service/IOaReportSummaryService.java | 49 ++++++++ .../impl/OaReportDetailServiceImpl.java | 114 ++++++++++++++++++ .../impl/OaReportSummaryServiceImpl.java | 113 +++++++++++++++++ .../mapper/oa/OaReportDetailMapper.xml | 24 ++++ .../mapper/oa/OaReportSummaryMapper.xml | 50 ++++++++ 15 files changed, 1037 insertions(+) create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaReportDetailController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaReportSummaryController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaReportDetail.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaReportSummary.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaReportDetailBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaReportSummaryBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaReportDetailVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaReportSummaryVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaReportSummaryMapper.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaReportDetailService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaReportSummaryService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaReportDetailServiceImpl.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaReportSummaryServiceImpl.java create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/OaReportDetailMapper.xml create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/OaReportSummaryMapper.xml diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaReportDetailController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaReportDetailController.java new file mode 100644 index 0000000..d0e6971 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaReportDetailController.java @@ -0,0 +1,108 @@ +package com.ruoyi.oa.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.core.validate.QueryGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.oa.domain.vo.OaReportDetailVo; +import com.ruoyi.oa.domain.bo.OaReportDetailBo; +import com.ruoyi.oa.service.IOaReportDetailService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 设计项目汇报详情 + * + * @author ruoyi + * @date 2025-05-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/reportDetail") +public class OaReportDetailController extends BaseController { + + private final IOaReportDetailService iOaReportDetailService; + + /** + * 查询设计项目汇报详情列表 + */ + @SaCheckPermission("system:reportDetail:list") + @GetMapping("/list") + public TableDataInfo list(OaReportDetailBo bo, PageQuery pageQuery) { + return iOaReportDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出设计项目汇报详情列表 + */ + @SaCheckPermission("system:reportDetail:export") + @Log(title = "设计项目汇报详情", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(OaReportDetailBo bo, HttpServletResponse response) { + List list = iOaReportDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "设计项目汇报详情", OaReportDetailVo.class, response); + } + + /** + * 获取设计项目汇报详情详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:reportDetail:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(iOaReportDetailService.queryById(id)); + } + + /** + * 新增设计项目汇报详情 + */ + @SaCheckPermission("system:reportDetail:add") + @Log(title = "设计项目汇报详情", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody OaReportDetailBo bo) { + return toAjax(iOaReportDetailService.insertByBo(bo)); + } + + /** + * 修改设计项目汇报详情 + */ + @SaCheckPermission("system:reportDetail:edit") + @Log(title = "设计项目汇报详情", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody OaReportDetailBo bo) { + return toAjax(iOaReportDetailService.updateByBo(bo)); + } + + /** + * 删除设计项目汇报详情 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:reportDetail:remove") + @Log(title = "设计项目汇报详情", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(iOaReportDetailService.deleteWithValidByIds(Arrays.asList(ids), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaReportSummaryController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaReportSummaryController.java new file mode 100644 index 0000000..777340b --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaReportSummaryController.java @@ -0,0 +1,108 @@ +package com.ruoyi.oa.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.core.validate.QueryGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.oa.domain.vo.OaReportSummaryVo; +import com.ruoyi.oa.domain.bo.OaReportSummaryBo; +import com.ruoyi.oa.service.IOaReportSummaryService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 设计项目汇报概述 + * + * @author cpy + * @date 2025-05-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/reportSummary") +public class OaReportSummaryController extends BaseController { + + private final IOaReportSummaryService iOaReportSummaryService; + + /** + * 查询设计项目汇报概述列表 + */ + @SaCheckPermission("system:reportSummary:list") + @GetMapping("/list") + public TableDataInfo list(OaReportSummaryBo bo, PageQuery pageQuery) { + return iOaReportSummaryService.queryPageList(bo, pageQuery); + } + + /** + * 导出设计项目汇报概述列表 + */ + @SaCheckPermission("system:reportSummary:export") + @Log(title = "设计项目汇报概述", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(OaReportSummaryBo bo, HttpServletResponse response) { + List list = iOaReportSummaryService.queryList(bo); + ExcelUtil.exportExcel(list, "设计项目汇报概述", OaReportSummaryVo.class, response); + } + + /** + * 获取设计项目汇报概述详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:reportSummary:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(iOaReportSummaryService.queryById(id)); + } + + /** + * 新增设计项目汇报概述 + */ + @SaCheckPermission("system:reportSummary:add") + @Log(title = "设计项目汇报概述", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody OaReportSummaryBo bo) { + return toAjax(iOaReportSummaryService.insertByBo(bo)); + } + + /** + * 修改设计项目汇报概述 + */ + @SaCheckPermission("system:reportSummary:edit") + @Log(title = "设计项目汇报概述", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody OaReportSummaryBo bo) { + return toAjax(iOaReportSummaryService.updateByBo(bo)); + } + + /** + * 删除设计项目汇报概述 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:reportSummary:remove") + @Log(title = "设计项目汇报概述", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(iOaReportSummaryService.deleteWithValidByIds(Arrays.asList(ids), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaReportDetail.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaReportDetail.java new file mode 100644 index 0000000..44e5916 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaReportDetail.java @@ -0,0 +1,64 @@ +package com.ruoyi.oa.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 设计项目汇报详情对象 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 = "id") + private Long id; + /** + * 关联汇报概述ID(oa_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; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaReportSummary.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaReportSummary.java new file mode 100644 index 0000000..aa119c0 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaReportSummary.java @@ -0,0 +1,58 @@ +package com.ruoyi.oa.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 设计项目汇报概述对象 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 = "id") + private Long id; + /** + * 汇报标题 + */ + private String reportTitle; + /** + * 汇报日期 + */ + private Date reportDate; + /** + * 汇报人 + */ + private String reporter; + /** + * 项目id + */ + private Long projectId; + /** + * 删除标志(0 正常,1 删除) + */ + @TableLogic + private Long delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaReportDetailBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaReportDetailBo.java new file mode 100644 index 0000000..1dbb47b --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaReportDetailBo.java @@ -0,0 +1,73 @@ +package com.ruoyi.oa.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 设计项目汇报详情业务对象 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 id; + + /** + * 关联汇报概述ID(oa_report_summary.id) + */ + @NotNull(message = "关联汇报概述ID(oa_report_summary.id)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long summaryId; + + /** + * 设备唯一编号 + */ + @NotBlank(message = "设备唯一编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String deviceCode; + + /** + * 设备类别 + */ + @NotBlank(message = "设备类别不能为空", groups = { AddGroup.class, EditGroup.class }) + private String category; + + /** + * 设备生产说明 + */ + @NotBlank(message = "设备生产说明不能为空", groups = { AddGroup.class, EditGroup.class }) + private String deviceDescription; + + /** + * 汇报详情内容(含文字、图像说明等) + */ + @NotBlank(message = "汇报详情内容(含文字、图像说明等)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String reportDetail; + + /** + * 关联图像 OSS ID 列表(逗号分隔) + */ + @NotBlank(message = "关联图像 OSS ID 列表(逗号分隔)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String ossIds; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaReportSummaryBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaReportSummaryBo.java new file mode 100644 index 0000000..f412121 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaReportSummaryBo.java @@ -0,0 +1,62 @@ +package com.ruoyi.oa.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 设计项目汇报概述业务对象 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 id; + + /** + * 汇报标题 + */ + @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; + + /** + * 项目id + */ + @NotNull(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaReportDetailVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaReportDetailVo.java new file mode 100644 index 0000000..684b228 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaReportDetailVo.java @@ -0,0 +1,76 @@ +package com.ruoyi.oa.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.annotation.ExcelDictFormat; +import com.ruoyi.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 设计项目汇报详情视图对象 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 id; + + /** + * 关联汇报概述ID(oa_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; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaReportSummaryVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaReportSummaryVo.java new file mode 100644 index 0000000..dd2787d --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaReportSummaryVo.java @@ -0,0 +1,69 @@ +package com.ruoyi.oa.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.annotation.ExcelDictFormat; +import com.ruoyi.common.convert.ExcelDictConvert; +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 id; + + /** + * 汇报标题 + */ + @ExcelProperty(value = "汇报标题") + private String reportTitle; + + /** + * 汇报日期 + */ + @ExcelProperty(value = "汇报日期") + private Date reportDate; + + /** + * 汇报人 + */ + @ExcelProperty(value = "汇报人") + private String reporter; + + /** + * 项目id + */ + @ExcelProperty(value = "项目id") + private Long projectId; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaReportSummaryMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaReportSummaryMapper.java new file mode 100644 index 0000000..77ec324 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaReportSummaryMapper.java @@ -0,0 +1,20 @@ +package com.ruoyi.oa.mapper; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.oa.domain.OaReportSummary; +import com.ruoyi.oa.domain.bo.OaReportSummaryBo; +import com.ruoyi.oa.domain.vo.OaReportSummaryVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; + +/** + * 设计项目汇报概述Mapper接口 + * + * @author cpy + * @date 2025-05-13 + */ +public interface OaReportSummaryMapper extends BaseMapperPlus { + Page selectVoPageWithProject(@Param("page") Page page, + @Param("bo") OaReportSummaryBo bo); + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaReportDetailService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaReportDetailService.java new file mode 100644 index 0000000..211f07e --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaReportDetailService.java @@ -0,0 +1,49 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.OaReportDetail; +import com.ruoyi.oa.domain.vo.OaReportDetailVo; +import com.ruoyi.oa.domain.bo.OaReportDetailBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 设计项目汇报详情Service接口 + * + * @author ruoyi + * @date 2025-05-13 + */ +public interface IOaReportDetailService { + + /** + * 查询设计项目汇报详情 + */ + OaReportDetailVo queryById(Long id); + + /** + * 查询设计项目汇报详情列表 + */ + TableDataInfo queryPageList(OaReportDetailBo bo, PageQuery pageQuery); + + /** + * 查询设计项目汇报详情列表 + */ + List queryList(OaReportDetailBo bo); + + /** + * 新增设计项目汇报详情 + */ + Boolean insertByBo(OaReportDetailBo bo); + + /** + * 修改设计项目汇报详情 + */ + Boolean updateByBo(OaReportDetailBo bo); + + /** + * 校验并批量删除设计项目汇报详情信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaReportSummaryService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaReportSummaryService.java new file mode 100644 index 0000000..2e0ce87 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaReportSummaryService.java @@ -0,0 +1,49 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.OaReportSummary; +import com.ruoyi.oa.domain.vo.OaReportSummaryVo; +import com.ruoyi.oa.domain.bo.OaReportSummaryBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 设计项目汇报概述Service接口 + * + * @author cpy + * @date 2025-05-13 + */ +public interface IOaReportSummaryService { + + /** + * 查询设计项目汇报概述 + */ + OaReportSummaryVo queryById(Long id); + + /** + * 查询设计项目汇报概述列表 + */ + TableDataInfo queryPageList(OaReportSummaryBo bo, PageQuery pageQuery); + + /** + * 查询设计项目汇报概述列表 + */ + List queryList(OaReportSummaryBo bo); + + /** + * 新增设计项目汇报概述 + */ + Boolean insertByBo(OaReportSummaryBo bo); + + /** + * 修改设计项目汇报概述 + */ + Boolean updateByBo(OaReportSummaryBo bo); + + /** + * 校验并批量删除设计项目汇报概述信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaReportDetailServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaReportDetailServiceImpl.java new file mode 100644 index 0000000..47ba190 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaReportDetailServiceImpl.java @@ -0,0 +1,114 @@ +package com.ruoyi.oa.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.ruoyi.oa.domain.bo.OaReportDetailBo; +import com.ruoyi.oa.domain.vo.OaReportDetailVo; +import com.ruoyi.oa.domain.OaReportDetail; +import com.ruoyi.oa.mapper.OaReportDetailMapper; +import com.ruoyi.oa.service.IOaReportDetailService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 设计项目汇报详情Service业务层处理 + * + * @author ruoyi + * @date 2025-05-13 + */ +@RequiredArgsConstructor +@Service +public class OaReportDetailServiceImpl implements IOaReportDetailService { + + private final OaReportDetailMapper baseMapper; + + /** + * 查询设计项目汇报详情 + */ + @Override + public OaReportDetailVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询设计项目汇报详情列表 + */ + @Override + public TableDataInfo queryPageList(OaReportDetailBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询设计项目汇报详情列表 + */ + @Override + public List queryList(OaReportDetailBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(OaReportDetailBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getSummaryId() != null, OaReportDetail::getSummaryId, bo.getSummaryId()); + lqw.eq(StringUtils.isNotBlank(bo.getDeviceCode()), OaReportDetail::getDeviceCode, bo.getDeviceCode()); + lqw.eq(StringUtils.isNotBlank(bo.getCategory()), OaReportDetail::getCategory, bo.getCategory()); + lqw.eq(StringUtils.isNotBlank(bo.getDeviceDescription()), OaReportDetail::getDeviceDescription, bo.getDeviceDescription()); + lqw.eq(StringUtils.isNotBlank(bo.getReportDetail()), OaReportDetail::getReportDetail, bo.getReportDetail()); + lqw.eq(StringUtils.isNotBlank(bo.getOssIds()), OaReportDetail::getOssIds, bo.getOssIds()); + return lqw; + } + + /** + * 新增设计项目汇报详情 + */ + @Override + public Boolean insertByBo(OaReportDetailBo bo) { + OaReportDetail add = BeanUtil.toBean(bo, OaReportDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改设计项目汇报详情 + */ + @Override + public Boolean updateByBo(OaReportDetailBo bo) { + OaReportDetail update = BeanUtil.toBean(bo, OaReportDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(OaReportDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除设计项目汇报详情 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaReportSummaryServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaReportSummaryServiceImpl.java new file mode 100644 index 0000000..63fbd7a --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaReportSummaryServiceImpl.java @@ -0,0 +1,113 @@ +package com.ruoyi.oa.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.ruoyi.oa.domain.bo.OaReportSummaryBo; +import com.ruoyi.oa.domain.vo.OaReportSummaryVo; +import com.ruoyi.oa.domain.OaReportSummary; +import com.ruoyi.oa.mapper.OaReportSummaryMapper; +import com.ruoyi.oa.service.IOaReportSummaryService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 设计项目汇报概述Service业务层处理 + * + * @author cpy + * @date 2025-05-13 + */ +@RequiredArgsConstructor +@Service +public class OaReportSummaryServiceImpl implements IOaReportSummaryService { + + private final OaReportSummaryMapper baseMapper; + + /** + * 查询设计项目汇报概述 + */ + @Override + public OaReportSummaryVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询设计项目汇报概述列表 + */ + @Override + public TableDataInfo queryPageList(OaReportSummaryBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); +// Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + Page result = baseMapper.selectVoPageWithProject(pageQuery.build(), bo); + return TableDataInfo.build(result); + } + + /** + * 查询设计项目汇报概述列表 + */ + @Override + public List queryList(OaReportSummaryBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(OaReportSummaryBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getReportTitle()), OaReportSummary::getReportTitle, bo.getReportTitle()); + lqw.eq(bo.getReportDate() != null, OaReportSummary::getReportDate, bo.getReportDate()); + lqw.like(StringUtils.isNotBlank(bo.getReporter()), OaReportSummary::getReporter, bo.getReporter()); + lqw.eq(bo.getProjectId() != null, OaReportSummary::getProjectId, bo.getProjectId()); + return lqw; + } + + /** + * 新增设计项目汇报概述 + */ + @Override + public Boolean insertByBo(OaReportSummaryBo bo) { + OaReportSummary add = BeanUtil.toBean(bo, OaReportSummary.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改设计项目汇报概述 + */ + @Override + public Boolean updateByBo(OaReportSummaryBo bo) { + OaReportSummary update = BeanUtil.toBean(bo, OaReportSummary.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(OaReportSummary entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除设计项目汇报概述 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaReportDetailMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaReportDetailMapper.xml new file mode 100644 index 0000000..133f014 --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaReportDetailMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaReportSummaryMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaReportSummaryMapper.xml new file mode 100644 index 0000000..8093ecb --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaReportSummaryMapper.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + +