From e41128cfe395040cd3dc660b1c2a8874daa78a2f Mon Sep 17 00:00:00 2001 From: Yangk Date: Thu, 30 Apr 2026 14:29:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(erp):=20=E6=B7=BB=E5=8A=A0=E6=9C=88?= =?UTF-8?q?=E6=A0=87=E5=87=86=E5=B7=A5=E6=97=B6=E5=8A=9F=E8=83=BD=E5=8F=8A?= =?UTF-8?q?=E6=9C=88=E6=B1=87=E6=80=BB=E5=B7=A5=E6=97=B6=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=9F=BA=E7=A1=80CRUD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ErpTimesheetStandardMonthController.java | 116 ++++++++++++++ .../ErpTimesheetSummaryController.java | 116 ++++++++++++++ .../ErpTimesheetSummaryDetailController.java | 116 ++++++++++++++ .../erp/domain/ErpTimesheetStandardMonth.java | 69 ++++++++ .../oa/erp/domain/ErpTimesheetSummary.java | 92 +++++++++++ .../erp/domain/ErpTimesheetSummaryDetail.java | 117 ++++++++++++++ .../bo/ErpTimesheetStandardMonthBo.java | 65 ++++++++ .../erp/domain/bo/ErpTimesheetSummaryBo.java | 89 +++++++++++ .../bo/ErpTimesheetSummaryDetailBo.java | 113 ++++++++++++++ .../vo/ErpTimesheetStandardMonthVo.java | 76 +++++++++ .../vo/ErpTimesheetSummaryDetailVo.java | 136 ++++++++++++++++ .../erp/domain/vo/ErpTimesheetSummaryVo.java | 104 +++++++++++++ .../ErpTimesheetStandardMonthMapper.java | 37 +++++ .../ErpTimesheetSummaryDetailMapper.java | 37 +++++ .../erp/mapper/ErpTimesheetSummaryMapper.java | 37 +++++ .../IErpTimesheetStandardMonthService.java | 69 ++++++++ .../IErpTimesheetSummaryDetailService.java | 69 ++++++++ .../service/IErpTimesheetSummaryService.java | 69 ++++++++ .../ErpTimesheetStandardMonthServiceImpl.java | 137 ++++++++++++++++ .../ErpTimesheetSummaryDetailServiceImpl.java | 147 ++++++++++++++++++ .../impl/ErpTimesheetSummaryServiceImpl.java | 142 +++++++++++++++++ .../erp/ErpTimesheetStandardMonthMapper.xml | 14 ++ .../erp/ErpTimesheetSummaryDetailMapper.xml | 14 ++ .../oa/erp/ErpTimesheetSummaryMapper.xml | 14 ++ 24 files changed, 1995 insertions(+) create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpTimesheetStandardMonthController.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpTimesheetSummaryController.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpTimesheetSummaryDetailController.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpTimesheetStandardMonth.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpTimesheetSummary.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpTimesheetSummaryDetail.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpTimesheetStandardMonthBo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpTimesheetSummaryBo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpTimesheetSummaryDetailBo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpTimesheetStandardMonthVo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpTimesheetSummaryDetailVo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpTimesheetSummaryVo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpTimesheetStandardMonthMapper.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpTimesheetSummaryDetailMapper.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpTimesheetSummaryMapper.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpTimesheetStandardMonthService.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpTimesheetSummaryDetailService.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpTimesheetSummaryService.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpTimesheetStandardMonthServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpTimesheetSummaryDetailServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpTimesheetSummaryServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpTimesheetStandardMonthMapper.xml create mode 100644 ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpTimesheetSummaryDetailMapper.xml create mode 100644 ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpTimesheetSummaryMapper.xml diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpTimesheetStandardMonthController.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpTimesheetStandardMonthController.java new file mode 100644 index 00000000..75682dde --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpTimesheetStandardMonthController.java @@ -0,0 +1,116 @@ +package org.dromara.oa.erp.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.oa.erp.domain.vo.ErpTimesheetStandardMonthVo; +import org.dromara.oa.erp.domain.bo.ErpTimesheetStandardMonthBo; +import org.dromara.oa.erp.service.IErpTimesheetStandardMonthService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 月标准工时信息 + * 前端访问路由地址为:/oa/erp/timesheetStandardMonth + * + * @author Yangk + * @date 2026-04-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/erp/timesheetStandardMonth") +public class ErpTimesheetStandardMonthController extends BaseController { + + private final IErpTimesheetStandardMonthService erpTimesheetStandardMonthService; + + /** + * 查询月标准工时信息列表 + */ + @SaCheckPermission("oa/erp:timesheetStandardMonth:list") + @GetMapping("/list") + public TableDataInfo list(ErpTimesheetStandardMonthBo bo, PageQuery pageQuery) { + return erpTimesheetStandardMonthService.queryPageList(bo, pageQuery); + } + + /** + * 导出月标准工时信息列表 + */ + @SaCheckPermission("oa/erp:timesheetStandardMonth:export") + @Log(title = "月标准工时信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ErpTimesheetStandardMonthBo bo, HttpServletResponse response) { + List list = erpTimesheetStandardMonthService.queryList(bo); + ExcelUtil.exportExcel(list, "月标准工时信息", ErpTimesheetStandardMonthVo.class, response); + } + + /** + * 获取月标准工时信息详细信息 + * + * @param standardMonthId 主键 + */ + @SaCheckPermission("oa/erp:timesheetStandardMonth:query") + @GetMapping("/{standardMonthId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("standardMonthId") Long standardMonthId) { + return R.ok(erpTimesheetStandardMonthService.queryById(standardMonthId)); + } + + /** + * 新增月标准工时信息 + */ + @SaCheckPermission("oa/erp:timesheetStandardMonth:add") + @Log(title = "月标准工时信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ErpTimesheetStandardMonthBo bo) { + return toAjax(erpTimesheetStandardMonthService.insertByBo(bo)); + } + + /** + * 修改月标准工时信息 + */ + @SaCheckPermission("oa/erp:timesheetStandardMonth:edit") + @Log(title = "月标准工时信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ErpTimesheetStandardMonthBo bo) { + return toAjax(erpTimesheetStandardMonthService.updateByBo(bo)); + } + + /** + * 删除月标准工时信息 + * + * @param standardMonthIds 主键串 + */ + @SaCheckPermission("oa/erp:timesheetStandardMonth:remove") + @Log(title = "月标准工时信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{standardMonthIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("standardMonthIds") Long[] standardMonthIds) { + return toAjax(erpTimesheetStandardMonthService.deleteWithValidByIds(List.of(standardMonthIds), true)); + } + + /** + * 下拉框查询月标准工时信息列表 + */ + @GetMapping("/getErpTimesheetStandardMonthList") + public R> getErpTimesheetStandardMonthList(ErpTimesheetStandardMonthBo bo) { + List list = erpTimesheetStandardMonthService.queryList(bo); + return R.ok(list); + } + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpTimesheetSummaryController.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpTimesheetSummaryController.java new file mode 100644 index 00000000..f70bbba3 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpTimesheetSummaryController.java @@ -0,0 +1,116 @@ +package org.dromara.oa.erp.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.oa.erp.domain.vo.ErpTimesheetSummaryVo; +import org.dromara.oa.erp.domain.bo.ErpTimesheetSummaryBo; +import org.dromara.oa.erp.service.IErpTimesheetSummaryService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 月汇总工时信息 + * 前端访问路由地址为:/oa/erp/timesheetSummary + * + * @author Yangk + * @date 2026-04-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/erp/timesheetSummary") +public class ErpTimesheetSummaryController extends BaseController { + + private final IErpTimesheetSummaryService erpTimesheetSummaryService; + + /** + * 查询月汇总工时信息列表 + */ + @SaCheckPermission("oa/erp:timesheetSummary:list") + @GetMapping("/list") + public TableDataInfo list(ErpTimesheetSummaryBo bo, PageQuery pageQuery) { + return erpTimesheetSummaryService.queryPageList(bo, pageQuery); + } + + /** + * 导出月汇总工时信息列表 + */ + @SaCheckPermission("oa/erp:timesheetSummary:export") + @Log(title = "月汇总工时信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ErpTimesheetSummaryBo bo, HttpServletResponse response) { + List list = erpTimesheetSummaryService.queryList(bo); + ExcelUtil.exportExcel(list, "月汇总工时信息", ErpTimesheetSummaryVo.class, response); + } + + /** + * 获取月汇总工时信息详细信息 + * + * @param summaryId 主键 + */ + @SaCheckPermission("oa/erp:timesheetSummary:query") + @GetMapping("/{summaryId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("summaryId") Long summaryId) { + return R.ok(erpTimesheetSummaryService.queryById(summaryId)); + } + + /** + * 新增月汇总工时信息 + */ + @SaCheckPermission("oa/erp:timesheetSummary:add") + @Log(title = "月汇总工时信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ErpTimesheetSummaryBo bo) { + return toAjax(erpTimesheetSummaryService.insertByBo(bo)); + } + + /** + * 修改月汇总工时信息 + */ + @SaCheckPermission("oa/erp:timesheetSummary:edit") + @Log(title = "月汇总工时信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ErpTimesheetSummaryBo bo) { + return toAjax(erpTimesheetSummaryService.updateByBo(bo)); + } + + /** + * 删除月汇总工时信息 + * + * @param summaryIds 主键串 + */ + @SaCheckPermission("oa/erp:timesheetSummary:remove") + @Log(title = "月汇总工时信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{summaryIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("summaryIds") Long[] summaryIds) { + return toAjax(erpTimesheetSummaryService.deleteWithValidByIds(List.of(summaryIds), true)); + } + + /** + * 下拉框查询月汇总工时信息列表 + */ + @GetMapping("/getErpTimesheetSummaryList") + public R> getErpTimesheetSummaryList(ErpTimesheetSummaryBo bo) { + List list = erpTimesheetSummaryService.queryList(bo); + return R.ok(list); + } + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpTimesheetSummaryDetailController.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpTimesheetSummaryDetailController.java new file mode 100644 index 00000000..504e7c12 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpTimesheetSummaryDetailController.java @@ -0,0 +1,116 @@ +package org.dromara.oa.erp.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.oa.erp.domain.vo.ErpTimesheetSummaryDetailVo; +import org.dromara.oa.erp.domain.bo.ErpTimesheetSummaryDetailBo; +import org.dromara.oa.erp.service.IErpTimesheetSummaryDetailService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 月汇总工时明细 + * 前端访问路由地址为:/oa/erp/timesheetSummaryDetail + * + * @author Yangk + * @date 2026-04-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/erp/timesheetSummaryDetail") +public class ErpTimesheetSummaryDetailController extends BaseController { + + private final IErpTimesheetSummaryDetailService erpTimesheetSummaryDetailService; + + /** + * 查询月汇总工时明细列表 + */ + @SaCheckPermission("oa/erp:timesheetSummaryDetail:list") + @GetMapping("/list") + public TableDataInfo list(ErpTimesheetSummaryDetailBo bo, PageQuery pageQuery) { + return erpTimesheetSummaryDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出月汇总工时明细列表 + */ + @SaCheckPermission("oa/erp:timesheetSummaryDetail:export") + @Log(title = "月汇总工时明细", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ErpTimesheetSummaryDetailBo bo, HttpServletResponse response) { + List list = erpTimesheetSummaryDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "月汇总工时明细", ErpTimesheetSummaryDetailVo.class, response); + } + + /** + * 获取月汇总工时明细详细信息 + * + * @param summaryDetailId 主键 + */ + @SaCheckPermission("oa/erp:timesheetSummaryDetail:query") + @GetMapping("/{summaryDetailId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("summaryDetailId") Long summaryDetailId) { + return R.ok(erpTimesheetSummaryDetailService.queryById(summaryDetailId)); + } + + /** + * 新增月汇总工时明细 + */ + @SaCheckPermission("oa/erp:timesheetSummaryDetail:add") + @Log(title = "月汇总工时明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ErpTimesheetSummaryDetailBo bo) { + return toAjax(erpTimesheetSummaryDetailService.insertByBo(bo)); + } + + /** + * 修改月汇总工时明细 + */ + @SaCheckPermission("oa/erp:timesheetSummaryDetail:edit") + @Log(title = "月汇总工时明细", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ErpTimesheetSummaryDetailBo bo) { + return toAjax(erpTimesheetSummaryDetailService.updateByBo(bo)); + } + + /** + * 删除月汇总工时明细 + * + * @param summaryDetailIds 主键串 + */ + @SaCheckPermission("oa/erp:timesheetSummaryDetail:remove") + @Log(title = "月汇总工时明细", businessType = BusinessType.DELETE) + @DeleteMapping("/{summaryDetailIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("summaryDetailIds") Long[] summaryDetailIds) { + return toAjax(erpTimesheetSummaryDetailService.deleteWithValidByIds(List.of(summaryDetailIds), true)); + } + + /** + * 下拉框查询月汇总工时明细列表 + */ + @GetMapping("/getErpTimesheetSummaryDetailList") + public R> getErpTimesheetSummaryDetailList(ErpTimesheetSummaryDetailBo bo) { + List list = erpTimesheetSummaryDetailService.queryList(bo); + return R.ok(list); + } + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpTimesheetStandardMonth.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpTimesheetStandardMonth.java new file mode 100644 index 00000000..154f22e2 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpTimesheetStandardMonth.java @@ -0,0 +1,69 @@ +package org.dromara.oa.erp.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 月标准工时信息对象 erp_timesheet_standard_month + * + * @author Yangk + * @date 2026-04-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("erp_timesheet_standard_month") +public class ErpTimesheetStandardMonth extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 月标准工时ID + */ + @TableId(value = "standard_month_id", type = IdType.AUTO) + private Long standardMonthId; + + /** + * 月份编码(YYYYMM,如202604) + */ + private String monthCode; + + /** + * 月份显示名(如2026年4月) + */ + private String monthLabel; + + /** + * 起始日期 + */ + private Date startDate; + + /** + * 截止日期 + */ + private Date endDate; + + /** + * 月标准工时天数(如21.0、21.5) + */ + private Long standardDays; + + /** + * 备注 + */ + private String remark; + + /** + * 删除标志(0存在 1删除) + */ + @TableLogic + private String delFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpTimesheetSummary.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpTimesheetSummary.java new file mode 100644 index 00000000..fa4493c6 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpTimesheetSummary.java @@ -0,0 +1,92 @@ +package org.dromara.oa.erp.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 月汇总工时信息对象 erp_timesheet_summary + * + * @author Yangk + * @date 2026-04-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("erp_timesheet_summary") +public class ErpTimesheetSummary extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 汇总工时ID + */ + @TableId(value = "summary_id", type = IdType.AUTO) + private Long summaryId; + + /** + * 汇总编号 + */ + private String summaryCode; + + /** + * 月份编码(YYYYMM) + */ + private String monthCode; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 汇总人(部门负责人)用户ID + */ + private Long userId; + + /** + * 关联月标准工时ID + */ + private Long standardMonthId; + + /** + * 月标准工时天数(冗余,取自标准月表) + */ + private Long standardDays; + + /** + * 项目工时合计(天) + */ + private Long totalProjectHours; + + /** + * 部门工时合计(天) + */ + private Long totalDeptHours; + + /** + * 总工时合计(天) + */ + private Long totalHours; + + /** + * 汇总人数 + */ + private Long staffCount; + + /** + * 备注 + */ + private String remark; + + /** + * 删除标志(0存在 1删除) + */ + @TableLogic + private String delFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpTimesheetSummaryDetail.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpTimesheetSummaryDetail.java new file mode 100644 index 00000000..3ca732e8 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpTimesheetSummaryDetail.java @@ -0,0 +1,117 @@ +package org.dromara.oa.erp.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 月汇总工时明细对象 erp_timesheet_summary_detail + * + * @author Yangk + * @date 2026-04-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("erp_timesheet_summary_detail") +public class ErpTimesheetSummaryDetail extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 汇总明细ID + */ + @TableId(value = "summary_detail_id", type = IdType.AUTO) + private Long summaryDetailId; + + /** + * 关联汇总主表ID + */ + private Long summaryId; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 员工用户ID + */ + private Long staffUserId; + + /** + * 员工姓名(冗余字段) + */ + private String staffName; + + /** + * 工时类型(1项目工时 0部门工时) + */ + private String isProject; + + /** + * 原项目ID(填报时的项目) + */ + private Long originalProjectId; + + /** + * 原项目编码(冗余) + */ + private String originalProjectCode; + + /** + * 原项目名称(冗余) + */ + private String originalProjectName; + + /** + * 原项目工时(天) + */ + private Long originalHours; + + /** + * 修改后项目ID + */ + private Long adjustedProjectId; + + /** + * 修改后项目编码(冗余) + */ + private String adjustedProjectCode; + + /** + * 修改后项目名称(冗余) + */ + private String adjustedProjectName; + + /** + * 修改后工时(天) + */ + private Long adjustedHours; + + /** + * 生成行标识(1自动汇总生成 0手动新增) + */ + private String isGenerated; + + /** + * 部门工作描述 + */ + private String workDescription; + + /** + * 备注 + */ + private String remark; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpTimesheetStandardMonthBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpTimesheetStandardMonthBo.java new file mode 100644 index 00000000..6c83c390 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpTimesheetStandardMonthBo.java @@ -0,0 +1,65 @@ +package org.dromara.oa.erp.domain.bo; + +import org.dromara.oa.erp.domain.ErpTimesheetStandardMonth; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 月标准工时信息业务对象 erp_timesheet_standard_month + * + * @author Yangk + * @date 2026-04-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ErpTimesheetStandardMonth.class, reverseConvertGenerate = false) +public class ErpTimesheetStandardMonthBo extends BaseEntity { + + /** + * 月标准工时ID + */ + @NotNull(message = "月标准工时ID不能为空", groups = { EditGroup.class }) + private Long standardMonthId; + + /** + * 月份编码(YYYYMM,如202604) + */ + @NotBlank(message = "月份编码(YYYYMM,如202604)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String monthCode; + + /** + * 月份显示名(如2026年4月) + */ + private String monthLabel; + + /** + * 起始日期 + */ + @NotNull(message = "起始日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date startDate; + + /** + * 截止日期 + */ + @NotNull(message = "截止日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date endDate; + + /** + * 月标准工时天数(如21.0、21.5) + */ + private Long standardDays; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpTimesheetSummaryBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpTimesheetSummaryBo.java new file mode 100644 index 00000000..8025f5dd --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpTimesheetSummaryBo.java @@ -0,0 +1,89 @@ +package org.dromara.oa.erp.domain.bo; + +import org.dromara.oa.erp.domain.ErpTimesheetSummary; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 月汇总工时信息业务对象 erp_timesheet_summary + * + * @author Yangk + * @date 2026-04-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ErpTimesheetSummary.class, reverseConvertGenerate = false) +public class ErpTimesheetSummaryBo extends BaseEntity { + + /** + * 汇总工时ID + */ + @NotNull(message = "汇总工时ID不能为空", groups = { EditGroup.class }) + private Long summaryId; + + /** + * 汇总编号 + */ + @NotBlank(message = "汇总编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String summaryCode; + + /** + * 月份编码(YYYYMM) + */ + @NotBlank(message = "月份编码(YYYYMM)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String monthCode; + + /** + * 部门ID + */ + @NotNull(message = "部门ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long deptId; + + /** + * 汇总人(部门负责人)用户ID + */ + @NotNull(message = "汇总人(部门负责人)用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 关联月标准工时ID + */ + private Long standardMonthId; + + /** + * 月标准工时天数(冗余,取自标准月表) + */ + private Long standardDays; + + /** + * 项目工时合计(天) + */ + private Long totalProjectHours; + + /** + * 部门工时合计(天) + */ + private Long totalDeptHours; + + /** + * 总工时合计(天) + */ + private Long totalHours; + + /** + * 汇总人数 + */ + private Long staffCount; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpTimesheetSummaryDetailBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpTimesheetSummaryDetailBo.java new file mode 100644 index 00000000..8937d9cd --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpTimesheetSummaryDetailBo.java @@ -0,0 +1,113 @@ +package org.dromara.oa.erp.domain.bo; + +import org.dromara.oa.erp.domain.ErpTimesheetSummaryDetail; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 月汇总工时明细业务对象 erp_timesheet_summary_detail + * + * @author Yangk + * @date 2026-04-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ErpTimesheetSummaryDetail.class, reverseConvertGenerate = false) +public class ErpTimesheetSummaryDetailBo extends BaseEntity { + + /** + * 汇总明细ID + */ + @NotNull(message = "汇总明细ID不能为空", groups = { EditGroup.class }) + private Long summaryDetailId; + + /** + * 关联汇总主表ID + */ + @NotNull(message = "关联汇总主表ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long summaryId; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 员工用户ID + */ + @NotNull(message = "员工用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long staffUserId; + + /** + * 员工姓名(冗余字段) + */ + private String staffName; + + /** + * 工时类型(1项目工时 0部门工时) + */ + @NotBlank(message = "工时类型(1项目工时 0部门工时)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String isProject; + + /** + * 原项目ID(填报时的项目) + */ + private Long originalProjectId; + + /** + * 原项目编码(冗余) + */ + private String originalProjectCode; + + /** + * 原项目名称(冗余) + */ + private String originalProjectName; + + /** + * 原项目工时(天) + */ + private Long originalHours; + + /** + * 修改后项目ID + */ + private Long adjustedProjectId; + + /** + * 修改后项目编码(冗余) + */ + private String adjustedProjectCode; + + /** + * 修改后项目名称(冗余) + */ + private String adjustedProjectName; + + /** + * 修改后工时(天) + */ + private Long adjustedHours; + + /** + * 生成行标识(1自动汇总生成 0手动新增) + */ + private String isGenerated; + + /** + * 部门工作描述 + */ + private String workDescription; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpTimesheetStandardMonthVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpTimesheetStandardMonthVo.java new file mode 100644 index 00000000..e7d9e61e --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpTimesheetStandardMonthVo.java @@ -0,0 +1,76 @@ +package org.dromara.oa.erp.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.oa.erp.domain.ErpTimesheetStandardMonth; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 月标准工时信息视图对象 erp_timesheet_standard_month + * + * @author Yangk + * @date 2026-04-30 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ErpTimesheetStandardMonth.class) +public class ErpTimesheetStandardMonthVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 月标准工时ID + */ + @ExcelProperty(value = "月标准工时ID") + private Long standardMonthId; + + /** + * 月份编码(YYYYMM,如202604) + */ + @ExcelProperty(value = "月份编码(YYYYMM,如202604)") + private String monthCode; + + /** + * 月份显示名(如2026年4月) + */ + @ExcelProperty(value = "月份显示名(如2026年4月)") + private String monthLabel; + + /** + * 起始日期 + */ + @ExcelProperty(value = "起始日期") + private Date startDate; + + /** + * 截止日期 + */ + @ExcelProperty(value = "截止日期") + private Date endDate; + + /** + * 月标准工时天数(如21.0、21.5) + */ + @ExcelProperty(value = "月标准工时天数(如21.0、21.5)") + private Long standardDays; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpTimesheetSummaryDetailVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpTimesheetSummaryDetailVo.java new file mode 100644 index 00000000..6461842d --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpTimesheetSummaryDetailVo.java @@ -0,0 +1,136 @@ +package org.dromara.oa.erp.domain.vo; + +import org.dromara.oa.erp.domain.ErpTimesheetSummaryDetail; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 月汇总工时明细视图对象 erp_timesheet_summary_detail + * + * @author Yangk + * @date 2026-04-30 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ErpTimesheetSummaryDetail.class) +public class ErpTimesheetSummaryDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 汇总明细ID + */ + @ExcelProperty(value = "汇总明细ID") + private Long summaryDetailId; + + /** + * 关联汇总主表ID + */ + @ExcelProperty(value = "关联汇总主表ID") + private Long summaryId; + + /** + * 排序号 + */ + @ExcelProperty(value = "排序号") + private Long sortOrder; + + /** + * 员工用户ID + */ + @ExcelProperty(value = "员工用户ID") + private Long staffUserId; + + /** + * 员工姓名(冗余字段) + */ + @ExcelProperty(value = "员工姓名(冗余字段)") + private String staffName; + + /** + * 工时类型(1项目工时 0部门工时) + */ + @ExcelProperty(value = "工时类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "is_project") + private String isProject; + + /** + * 原项目ID(填报时的项目) + */ + @ExcelProperty(value = "原项目ID(填报时的项目)") + private Long originalProjectId; + + /** + * 原项目编码(冗余) + */ + @ExcelProperty(value = "原项目编码(冗余)") + private String originalProjectCode; + + /** + * 原项目名称(冗余) + */ + @ExcelProperty(value = "原项目名称(冗余)") + private String originalProjectName; + + /** + * 原项目工时(天) + */ + @ExcelProperty(value = "原项目工时(天)") + private Long originalHours; + + /** + * 修改后项目ID + */ + @ExcelProperty(value = "修改后项目ID") + private Long adjustedProjectId; + + /** + * 修改后项目编码(冗余) + */ + @ExcelProperty(value = "修改后项目编码(冗余)") + private String adjustedProjectCode; + + /** + * 修改后项目名称(冗余) + */ + @ExcelProperty(value = "修改后项目名称(冗余)") + private String adjustedProjectName; + + /** + * 修改后工时(天) + */ + @ExcelProperty(value = "修改后工时(天)") + private Long adjustedHours; + + /** + * 生成行标识(1自动汇总生成 0手动新增) + */ + @ExcelProperty(value = "生成行标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "is_generated") + private String isGenerated; + + /** + * 部门工作描述 + */ + @ExcelProperty(value = "部门工作描述") + private String workDescription; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpTimesheetSummaryVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpTimesheetSummaryVo.java new file mode 100644 index 00000000..f9683312 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpTimesheetSummaryVo.java @@ -0,0 +1,104 @@ +package org.dromara.oa.erp.domain.vo; + +import org.dromara.oa.erp.domain.ErpTimesheetSummary; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 月汇总工时信息视图对象 erp_timesheet_summary + * + * @author Yangk + * @date 2026-04-30 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ErpTimesheetSummary.class) +public class ErpTimesheetSummaryVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 汇总工时ID + */ + @ExcelProperty(value = "汇总工时ID") + private Long summaryId; + + /** + * 汇总编号 + */ + @ExcelProperty(value = "汇总编号") + private String summaryCode; + + /** + * 月份编码(YYYYMM) + */ + @ExcelProperty(value = "月份编码(YYYYMM)") + private String monthCode; + + /** + * 部门ID + */ + @ExcelProperty(value = "部门ID") + private Long deptId; + + /** + * 汇总人(部门负责人)用户ID + */ + @ExcelProperty(value = "汇总人(部门负责人)用户ID") + private Long userId; + + /** + * 关联月标准工时ID + */ + @ExcelProperty(value = "关联月标准工时ID") + private Long standardMonthId; + + /** + * 月标准工时天数(冗余,取自标准月表) + */ + @ExcelProperty(value = "月标准工时天数(冗余,取自标准月表)") + private Long standardDays; + + /** + * 项目工时合计(天) + */ + @ExcelProperty(value = "项目工时合计(天)") + private Long totalProjectHours; + + /** + * 部门工时合计(天) + */ + @ExcelProperty(value = "部门工时合计(天)") + private Long totalDeptHours; + + /** + * 总工时合计(天) + */ + @ExcelProperty(value = "总工时合计(天)") + private Long totalHours; + + /** + * 汇总人数 + */ + @ExcelProperty(value = "汇总人数") + private Long staffCount; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpTimesheetStandardMonthMapper.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpTimesheetStandardMonthMapper.java new file mode 100644 index 00000000..6ee5bb56 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpTimesheetStandardMonthMapper.java @@ -0,0 +1,37 @@ +package org.dromara.oa.erp.mapper; + +import java.util.List; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.oa.erp.domain.ErpTimesheetStandardMonth; +import org.dromara.oa.erp.domain.vo.ErpTimesheetStandardMonthVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 月标准工时信息Mapper接口 + * + * @author Yangk + * @date 2026-04-30 + */ +public interface ErpTimesheetStandardMonthMapper extends BaseMapperPlus { + + /** + * 查询月标准工时信息列表 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 月标准工时信息集合 + */ + public Page selectCustomErpTimesheetStandardMonthVoList(@Param("page") Page page, @Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + /** + * 查询月标准工时信息列表 + * + * @param queryWrapper 条件 + * @return 月标准工时信息集合 + */ + public List selectCustomErpTimesheetStandardMonthVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpTimesheetSummaryDetailMapper.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpTimesheetSummaryDetailMapper.java new file mode 100644 index 00000000..00de5a60 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpTimesheetSummaryDetailMapper.java @@ -0,0 +1,37 @@ +package org.dromara.oa.erp.mapper; + +import java.util.List; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.oa.erp.domain.ErpTimesheetSummaryDetail; +import org.dromara.oa.erp.domain.vo.ErpTimesheetSummaryDetailVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 月汇总工时明细Mapper接口 + * + * @author Yangk + * @date 2026-04-30 + */ +public interface ErpTimesheetSummaryDetailMapper extends BaseMapperPlus { + + /** + * 查询月汇总工时明细列表 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 月汇总工时明细集合 + */ + public Page selectCustomErpTimesheetSummaryDetailVoList(@Param("page") Page page, @Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + /** + * 查询月汇总工时明细列表 + * + * @param queryWrapper 条件 + * @return 月汇总工时明细集合 + */ + public List selectCustomErpTimesheetSummaryDetailVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpTimesheetSummaryMapper.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpTimesheetSummaryMapper.java new file mode 100644 index 00000000..b8a72245 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpTimesheetSummaryMapper.java @@ -0,0 +1,37 @@ +package org.dromara.oa.erp.mapper; + +import java.util.List; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.oa.erp.domain.ErpTimesheetSummary; +import org.dromara.oa.erp.domain.vo.ErpTimesheetSummaryVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 月汇总工时信息Mapper接口 + * + * @author Yangk + * @date 2026-04-30 + */ +public interface ErpTimesheetSummaryMapper extends BaseMapperPlus { + + /** + * 查询月汇总工时信息列表 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 月汇总工时信息集合 + */ + public Page selectCustomErpTimesheetSummaryVoList(@Param("page") Page page, @Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + /** + * 查询月汇总工时信息列表 + * + * @param queryWrapper 条件 + * @return 月汇总工时信息集合 + */ + public List selectCustomErpTimesheetSummaryVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpTimesheetStandardMonthService.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpTimesheetStandardMonthService.java new file mode 100644 index 00000000..82f6da22 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpTimesheetStandardMonthService.java @@ -0,0 +1,69 @@ +package org.dromara.oa.erp.service; + +import org.dromara.oa.erp.domain.ErpTimesheetStandardMonth; +import org.dromara.oa.erp.domain.vo.ErpTimesheetStandardMonthVo; +import org.dromara.oa.erp.domain.bo.ErpTimesheetStandardMonthBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 月标准工时信息Service接口 + * + * @author Yangk + * @date 2026-04-30 + */ +public interface IErpTimesheetStandardMonthService { + + /** + * 查询月标准工时信息 + * + * @param standardMonthId 主键 + * @return 月标准工时信息 + */ + ErpTimesheetStandardMonthVo queryById(Long standardMonthId); + + /** + * 分页查询月标准工时信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 月标准工时信息分页列表 + */ + TableDataInfo queryPageList(ErpTimesheetStandardMonthBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的月标准工时信息列表 + * + * @param bo 查询条件 + * @return 月标准工时信息列表 + */ + List queryList(ErpTimesheetStandardMonthBo bo); + + /** + * 新增月标准工时信息 + * + * @param bo 月标准工时信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ErpTimesheetStandardMonthBo bo); + + /** + * 修改月标准工时信息 + * + * @param bo 月标准工时信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ErpTimesheetStandardMonthBo bo); + + /** + * 校验并批量删除月标准工时信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpTimesheetSummaryDetailService.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpTimesheetSummaryDetailService.java new file mode 100644 index 00000000..f20a1b9b --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpTimesheetSummaryDetailService.java @@ -0,0 +1,69 @@ +package org.dromara.oa.erp.service; + +import org.dromara.oa.erp.domain.ErpTimesheetSummaryDetail; +import org.dromara.oa.erp.domain.vo.ErpTimesheetSummaryDetailVo; +import org.dromara.oa.erp.domain.bo.ErpTimesheetSummaryDetailBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 月汇总工时明细Service接口 + * + * @author Yangk + * @date 2026-04-30 + */ +public interface IErpTimesheetSummaryDetailService { + + /** + * 查询月汇总工时明细 + * + * @param summaryDetailId 主键 + * @return 月汇总工时明细 + */ + ErpTimesheetSummaryDetailVo queryById(Long summaryDetailId); + + /** + * 分页查询月汇总工时明细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 月汇总工时明细分页列表 + */ + TableDataInfo queryPageList(ErpTimesheetSummaryDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的月汇总工时明细列表 + * + * @param bo 查询条件 + * @return 月汇总工时明细列表 + */ + List queryList(ErpTimesheetSummaryDetailBo bo); + + /** + * 新增月汇总工时明细 + * + * @param bo 月汇总工时明细 + * @return 是否新增成功 + */ + Boolean insertByBo(ErpTimesheetSummaryDetailBo bo); + + /** + * 修改月汇总工时明细 + * + * @param bo 月汇总工时明细 + * @return 是否修改成功 + */ + Boolean updateByBo(ErpTimesheetSummaryDetailBo bo); + + /** + * 校验并批量删除月汇总工时明细信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpTimesheetSummaryService.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpTimesheetSummaryService.java new file mode 100644 index 00000000..17e2ab68 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpTimesheetSummaryService.java @@ -0,0 +1,69 @@ +package org.dromara.oa.erp.service; + +import org.dromara.oa.erp.domain.ErpTimesheetSummary; +import org.dromara.oa.erp.domain.vo.ErpTimesheetSummaryVo; +import org.dromara.oa.erp.domain.bo.ErpTimesheetSummaryBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 月汇总工时信息Service接口 + * + * @author Yangk + * @date 2026-04-30 + */ +public interface IErpTimesheetSummaryService { + + /** + * 查询月汇总工时信息 + * + * @param summaryId 主键 + * @return 月汇总工时信息 + */ + ErpTimesheetSummaryVo queryById(Long summaryId); + + /** + * 分页查询月汇总工时信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 月汇总工时信息分页列表 + */ + TableDataInfo queryPageList(ErpTimesheetSummaryBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的月汇总工时信息列表 + * + * @param bo 查询条件 + * @return 月汇总工时信息列表 + */ + List queryList(ErpTimesheetSummaryBo bo); + + /** + * 新增月汇总工时信息 + * + * @param bo 月汇总工时信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ErpTimesheetSummaryBo bo); + + /** + * 修改月汇总工时信息 + * + * @param bo 月汇总工时信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ErpTimesheetSummaryBo bo); + + /** + * 校验并批量删除月汇总工时信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpTimesheetStandardMonthServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpTimesheetStandardMonthServiceImpl.java new file mode 100644 index 00000000..7cdfabbf --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpTimesheetStandardMonthServiceImpl.java @@ -0,0 +1,137 @@ +package org.dromara.oa.erp.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; + import org.dromara.common.mybatis.core.page.TableDataInfo; + import org.dromara.common.mybatis.core.page.PageQuery; + import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.oa.erp.domain.bo.ErpTimesheetStandardMonthBo; +import org.dromara.oa.erp.domain.vo.ErpTimesheetStandardMonthVo; +import org.dromara.oa.erp.domain.ErpTimesheetStandardMonth; +import org.dromara.oa.erp.mapper.ErpTimesheetStandardMonthMapper; +import org.dromara.oa.erp.service.IErpTimesheetStandardMonthService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 月标准工时信息Service业务层处理 + * + * @author Yangk + * @date 2026-04-30 + */ +@RequiredArgsConstructor +@Service +public class ErpTimesheetStandardMonthServiceImpl implements IErpTimesheetStandardMonthService { + + private final ErpTimesheetStandardMonthMapper baseMapper; + + /** + * 查询月标准工时信息 + * + * @param standardMonthId 主键 + * @return 月标准工时信息 + */ + @Override + public ErpTimesheetStandardMonthVo queryById(Long standardMonthId){ + return baseMapper.selectVoById(standardMonthId); + } + + /** + * 分页查询月标准工时信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 月标准工时信息分页列表 + */ + @Override + public TableDataInfo queryPageList(ErpTimesheetStandardMonthBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的月标准工时信息列表 + * + * @param bo 查询条件 + * @return 月标准工时信息列表 + */ + @Override + public List queryList(ErpTimesheetStandardMonthBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ErpTimesheetStandardMonthBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ErpTimesheetStandardMonth.class) + .selectAll(ErpTimesheetStandardMonth.class) + .eq(ErpTimesheetStandardMonth::getDelFlag, "0") + .eq(StringUtils.isNotBlank(bo.getMonthCode()), ErpTimesheetStandardMonth::getMonthCode, bo.getMonthCode()) + .eq(StringUtils.isNotBlank(bo.getMonthLabel()), ErpTimesheetStandardMonth::getMonthLabel, bo.getMonthLabel()) + .eq(bo.getStartDate() != null, ErpTimesheetStandardMonth::getStartDate, bo.getStartDate()) + .eq(bo.getEndDate() != null, ErpTimesheetStandardMonth::getEndDate, bo.getEndDate()) + .eq(bo.getStandardDays() != null, ErpTimesheetStandardMonth::getStandardDays, bo.getStandardDays()) +; + return lqw; + } + + /** + * 新增月标准工时信息 + * + * @param bo 月标准工时信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ErpTimesheetStandardMonthBo bo) { + ErpTimesheetStandardMonth add = MapstructUtils.convert(bo, ErpTimesheetStandardMonth.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setStandardMonthId(add.getStandardMonthId()); + } + return flag; + } + + /** + * 修改月标准工时信息 + * + * @param bo 月标准工时信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ErpTimesheetStandardMonthBo bo) { + ErpTimesheetStandardMonth update = MapstructUtils.convert(bo, ErpTimesheetStandardMonth.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ErpTimesheetStandardMonth entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除月标准工时信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpTimesheetSummaryDetailServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpTimesheetSummaryDetailServiceImpl.java new file mode 100644 index 00000000..cd7af43a --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpTimesheetSummaryDetailServiceImpl.java @@ -0,0 +1,147 @@ +package org.dromara.oa.erp.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; + import org.dromara.common.mybatis.core.page.TableDataInfo; + import org.dromara.common.mybatis.core.page.PageQuery; + import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.oa.erp.domain.bo.ErpTimesheetSummaryDetailBo; +import org.dromara.oa.erp.domain.vo.ErpTimesheetSummaryDetailVo; +import org.dromara.oa.erp.domain.ErpTimesheetSummaryDetail; +import org.dromara.oa.erp.mapper.ErpTimesheetSummaryDetailMapper; +import org.dromara.oa.erp.service.IErpTimesheetSummaryDetailService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 月汇总工时明细Service业务层处理 + * + * @author Yangk + * @date 2026-04-30 + */ +@RequiredArgsConstructor +@Service +public class ErpTimesheetSummaryDetailServiceImpl implements IErpTimesheetSummaryDetailService { + + private final ErpTimesheetSummaryDetailMapper baseMapper; + + /** + * 查询月汇总工时明细 + * + * @param summaryDetailId 主键 + * @return 月汇总工时明细 + */ + @Override + public ErpTimesheetSummaryDetailVo queryById(Long summaryDetailId){ + return baseMapper.selectVoById(summaryDetailId); + } + + /** + * 分页查询月汇总工时明细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 月汇总工时明细分页列表 + */ + @Override + public TableDataInfo queryPageList(ErpTimesheetSummaryDetailBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的月汇总工时明细列表 + * + * @param bo 查询条件 + * @return 月汇总工时明细列表 + */ + @Override + public List queryList(ErpTimesheetSummaryDetailBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ErpTimesheetSummaryDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ErpTimesheetSummaryDetail.class) + .selectAll(ErpTimesheetSummaryDetail.class) + .eq(ErpTimesheetSummaryDetail::getDelFlag, "0") + .eq(bo.getSummaryId() != null, ErpTimesheetSummaryDetail::getSummaryId, bo.getSummaryId()) + .eq(bo.getSortOrder() != null, ErpTimesheetSummaryDetail::getSortOrder, bo.getSortOrder()) + .eq(bo.getStaffUserId() != null, ErpTimesheetSummaryDetail::getStaffUserId, bo.getStaffUserId()) + .like(StringUtils.isNotBlank(bo.getStaffName()), ErpTimesheetSummaryDetail::getStaffName, bo.getStaffName()) + .eq(StringUtils.isNotBlank(bo.getIsProject()), ErpTimesheetSummaryDetail::getIsProject, bo.getIsProject()) + .eq(bo.getOriginalProjectId() != null, ErpTimesheetSummaryDetail::getOriginalProjectId, bo.getOriginalProjectId()) + .eq(StringUtils.isNotBlank(bo.getOriginalProjectCode()), ErpTimesheetSummaryDetail::getOriginalProjectCode, bo.getOriginalProjectCode()) + .like(StringUtils.isNotBlank(bo.getOriginalProjectName()), ErpTimesheetSummaryDetail::getOriginalProjectName, bo.getOriginalProjectName()) + .eq(bo.getOriginalHours() != null, ErpTimesheetSummaryDetail::getOriginalHours, bo.getOriginalHours()) + .eq(bo.getAdjustedProjectId() != null, ErpTimesheetSummaryDetail::getAdjustedProjectId, bo.getAdjustedProjectId()) + .eq(StringUtils.isNotBlank(bo.getAdjustedProjectCode()), ErpTimesheetSummaryDetail::getAdjustedProjectCode, bo.getAdjustedProjectCode()) + .like(StringUtils.isNotBlank(bo.getAdjustedProjectName()), ErpTimesheetSummaryDetail::getAdjustedProjectName, bo.getAdjustedProjectName()) + .eq(bo.getAdjustedHours() != null, ErpTimesheetSummaryDetail::getAdjustedHours, bo.getAdjustedHours()) + .eq(StringUtils.isNotBlank(bo.getIsGenerated()), ErpTimesheetSummaryDetail::getIsGenerated, bo.getIsGenerated()) + .eq(StringUtils.isNotBlank(bo.getWorkDescription()), ErpTimesheetSummaryDetail::getWorkDescription, bo.getWorkDescription()) +; + return lqw; + } + + /** + * 新增月汇总工时明细 + * + * @param bo 月汇总工时明细 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ErpTimesheetSummaryDetailBo bo) { + ErpTimesheetSummaryDetail add = MapstructUtils.convert(bo, ErpTimesheetSummaryDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setSummaryDetailId(add.getSummaryDetailId()); + } + return flag; + } + + /** + * 修改月汇总工时明细 + * + * @param bo 月汇总工时明细 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ErpTimesheetSummaryDetailBo bo) { + ErpTimesheetSummaryDetail update = MapstructUtils.convert(bo, ErpTimesheetSummaryDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ErpTimesheetSummaryDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除月汇总工时明细信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpTimesheetSummaryServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpTimesheetSummaryServiceImpl.java new file mode 100644 index 00000000..b4bc9008 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpTimesheetSummaryServiceImpl.java @@ -0,0 +1,142 @@ +package org.dromara.oa.erp.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; + import org.dromara.common.mybatis.core.page.TableDataInfo; + import org.dromara.common.mybatis.core.page.PageQuery; + import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.oa.erp.domain.bo.ErpTimesheetSummaryBo; +import org.dromara.oa.erp.domain.vo.ErpTimesheetSummaryVo; +import org.dromara.oa.erp.domain.ErpTimesheetSummary; +import org.dromara.oa.erp.mapper.ErpTimesheetSummaryMapper; +import org.dromara.oa.erp.service.IErpTimesheetSummaryService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 月汇总工时信息Service业务层处理 + * + * @author Yangk + * @date 2026-04-30 + */ +@RequiredArgsConstructor +@Service +public class ErpTimesheetSummaryServiceImpl implements IErpTimesheetSummaryService { + + private final ErpTimesheetSummaryMapper baseMapper; + + /** + * 查询月汇总工时信息 + * + * @param summaryId 主键 + * @return 月汇总工时信息 + */ + @Override + public ErpTimesheetSummaryVo queryById(Long summaryId){ + return baseMapper.selectVoById(summaryId); + } + + /** + * 分页查询月汇总工时信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 月汇总工时信息分页列表 + */ + @Override + public TableDataInfo queryPageList(ErpTimesheetSummaryBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的月汇总工时信息列表 + * + * @param bo 查询条件 + * @return 月汇总工时信息列表 + */ + @Override + public List queryList(ErpTimesheetSummaryBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ErpTimesheetSummaryBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ErpTimesheetSummary.class) + .selectAll(ErpTimesheetSummary.class) + .eq(ErpTimesheetSummary::getDelFlag, "0") + .eq(StringUtils.isNotBlank(bo.getSummaryCode()), ErpTimesheetSummary::getSummaryCode, bo.getSummaryCode()) + .eq(StringUtils.isNotBlank(bo.getMonthCode()), ErpTimesheetSummary::getMonthCode, bo.getMonthCode()) + .eq(bo.getDeptId() != null, ErpTimesheetSummary::getDeptId, bo.getDeptId()) + .eq(bo.getUserId() != null, ErpTimesheetSummary::getUserId, bo.getUserId()) + .eq(bo.getStandardMonthId() != null, ErpTimesheetSummary::getStandardMonthId, bo.getStandardMonthId()) + .eq(bo.getStandardDays() != null, ErpTimesheetSummary::getStandardDays, bo.getStandardDays()) + .eq(bo.getTotalProjectHours() != null, ErpTimesheetSummary::getTotalProjectHours, bo.getTotalProjectHours()) + .eq(bo.getTotalDeptHours() != null, ErpTimesheetSummary::getTotalDeptHours, bo.getTotalDeptHours()) + .eq(bo.getTotalHours() != null, ErpTimesheetSummary::getTotalHours, bo.getTotalHours()) + .eq(bo.getStaffCount() != null, ErpTimesheetSummary::getStaffCount, bo.getStaffCount()) +; + return lqw; + } + + /** + * 新增月汇总工时信息 + * + * @param bo 月汇总工时信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ErpTimesheetSummaryBo bo) { + ErpTimesheetSummary add = MapstructUtils.convert(bo, ErpTimesheetSummary.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setSummaryId(add.getSummaryId()); + } + return flag; + } + + /** + * 修改月汇总工时信息 + * + * @param bo 月汇总工时信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ErpTimesheetSummaryBo bo) { + ErpTimesheetSummary update = MapstructUtils.convert(bo, ErpTimesheetSummary.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ErpTimesheetSummary entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除月汇总工时信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpTimesheetStandardMonthMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpTimesheetStandardMonthMapper.xml new file mode 100644 index 00000000..fda772eb --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpTimesheetStandardMonthMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpTimesheetSummaryDetailMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpTimesheetSummaryDetailMapper.xml new file mode 100644 index 00000000..ce7c2fa8 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpTimesheetSummaryDetailMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpTimesheetSummaryMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpTimesheetSummaryMapper.xml new file mode 100644 index 00000000..c409a3af --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpTimesheetSummaryMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + +