From 37e1a53c9837db457934a07724b4e3afa5d250a9 Mon Sep 17 00:00:00 2001 From: hdka <823267011@qq.com> Date: Thu, 6 Mar 2025 22:37:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=96=AA=E8=B5=84=E8=AE=A1=E7=AE=97=E5=88=9D?= =?UTF-8?q?=E6=AD=A5=EF=BC=8C=E7=AD=89=E5=BE=85=E8=84=9A=E6=9C=AC=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oa/controller/OaSalaryController.java | 108 +++++++++++++++++ .../oa/controller/OaSalaryItemController.java | 108 +++++++++++++++++ .../java/com/ruoyi/oa/domain/OaSalary.java | 58 +++++++++ .../com/ruoyi/oa/domain/OaSalaryItem.java | 66 ++++++++++ .../com/ruoyi/oa/domain/bo/OaSalaryBo.java | 60 +++++++++ .../ruoyi/oa/domain/bo/OaSalaryItemBo.java | 74 ++++++++++++ .../ruoyi/oa/domain/vo/OaSalaryItemVo.java | 76 ++++++++++++ .../com/ruoyi/oa/domain/vo/OaSalaryVo.java | 72 +++++++++++ .../ruoyi/oa/mapper/OaSalaryItemMapper.java | 15 +++ .../com/ruoyi/oa/mapper/OaSalaryMapper.java | 21 ++++ .../oa/service/IOaSalaryItemService.java | 49 ++++++++ .../ruoyi/oa/service/IOaSalaryService.java | 49 ++++++++ .../service/impl/OaSalaryItemServiceImpl.java | 114 ++++++++++++++++++ .../oa/service/impl/OaSalaryServiceImpl.java | 112 +++++++++++++++++ .../mapper/oa/OaSalaryItemMapper.xml | 24 ++++ .../resources/mapper/oa/OaSalaryMapper.xml | 52 ++++++++ 16 files changed, 1058 insertions(+) create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryItemController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalary.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalaryItem.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryItemBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryItemVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryItemMapper.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryMapper.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryItemService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryItemServiceImpl.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryServiceImpl.java create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/OaSalaryItemMapper.xml create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMapper.xml diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryController.java new file mode 100644 index 0000000..e3e0e7e --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryController.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.OaSalaryVo; +import com.ruoyi.oa.domain.bo.OaSalaryBo; +import com.ruoyi.oa.service.IOaSalaryService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 薪资管理 + * + * @author hdka + * @date 2025-03-06 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/oa/salary") +public class OaSalaryController extends BaseController { + + private final IOaSalaryService iOaSalaryService; + + /** + * 查询薪资管理列表 + */ + @SaCheckPermission("oa:salary:list") + @GetMapping("/list-staff") + public TableDataInfo list(OaSalaryBo bo, PageQuery pageQuery) { + return iOaSalaryService.queryPageList(bo, pageQuery); + } + + /** + * 导出薪资管理列表 + */ + @SaCheckPermission("oa:salary:export") + @Log(title = "薪资管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(OaSalaryBo bo, HttpServletResponse response) { + List list = iOaSalaryService.queryList(bo); + ExcelUtil.exportExcel(list, "薪资管理", OaSalaryVo.class, response); + } + + /** + * 获取薪资管理详细信息 + * + * @param salaryId 主键 + */ + @SaCheckPermission("oa:salary:query") + @GetMapping("/{salaryId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long salaryId) { + return R.ok(iOaSalaryService.queryById(salaryId)); + } + + /** + * 新增薪资管理 + */ + @SaCheckPermission("oa:salary:add") + @Log(title = "薪资管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody OaSalaryBo bo) { + return toAjax(iOaSalaryService.insertByBo(bo)); + } + + /** + * 修改薪资管理 + */ + @SaCheckPermission("oa:salary:edit") + @Log(title = "薪资管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody OaSalaryBo bo) { + return toAjax(iOaSalaryService.updateByBo(bo)); + } + + /** + * 删除薪资管理 + * + * @param salaryIds 主键串 + */ + @SaCheckPermission("oa:salary:remove") + @Log(title = "薪资管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{salaryIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] salaryIds) { + return toAjax(iOaSalaryService.deleteWithValidByIds(Arrays.asList(salaryIds), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryItemController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryItemController.java new file mode 100644 index 0000000..f60a8cf --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryItemController.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.OaSalaryItemVo; +import com.ruoyi.oa.domain.bo.OaSalaryItemBo; +import com.ruoyi.oa.service.IOaSalaryItemService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 薪水详情 + * + * @author hdka + * @date 2025-03-06 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/oa/salaryItem") +public class OaSalaryItemController extends BaseController { + + private final IOaSalaryItemService iOaSalaryItemService; + + /** + * 查询薪水详情列表 + */ + @SaCheckPermission("oa:salaryItem:list") + @GetMapping("/list") + public TableDataInfo list(OaSalaryItemBo bo, PageQuery pageQuery) { + return iOaSalaryItemService.queryPageList(bo, pageQuery); + } + + /** + * 导出薪水详情列表 + */ + @SaCheckPermission("oa:salaryItem:export") + @Log(title = "薪水详情", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(OaSalaryItemBo bo, HttpServletResponse response) { + List list = iOaSalaryItemService.queryList(bo); + ExcelUtil.exportExcel(list, "薪水详情", OaSalaryItemVo.class, response); + } + + /** + * 获取薪水详情详细信息 + * + * @param salaryItemId 主键 + */ + @SaCheckPermission("oa:salaryItem:query") + @GetMapping("/{salaryItemId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long salaryItemId) { + return R.ok(iOaSalaryItemService.queryById(salaryItemId)); + } + + /** + * 新增薪水详情 + */ + @SaCheckPermission("oa:salaryItem:add") + @Log(title = "薪水详情", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody OaSalaryItemBo bo) { + return toAjax(iOaSalaryItemService.insertByBo(bo)); + } + + /** + * 修改薪水详情 + */ + @SaCheckPermission("oa:salaryItem:edit") + @Log(title = "薪水详情", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody OaSalaryItemBo bo) { + return toAjax(iOaSalaryItemService.updateByBo(bo)); + } + + /** + * 删除薪水详情 + * + * @param salaryItemIds 主键串 + */ + @SaCheckPermission("oa:salaryItem:remove") + @Log(title = "薪水详情", businessType = BusinessType.DELETE) + @DeleteMapping("/{salaryItemIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] salaryItemIds) { + return toAjax(iOaSalaryItemService.deleteWithValidByIds(Arrays.asList(salaryItemIds), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalary.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalary.java new file mode 100644 index 0000000..766cb83 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalary.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_salary + * + * @author hdka + * @date 2025-03-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("oa_salary") +public class OaSalary extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键id + */ + @TableId(value = "salary_id") + private Long salaryId; + /** + * 用户id + */ + private Long userId; + /** + * 实际工资 + */ + private Double realSalary; + /** + * 涉及时间 + */ + private Date payTime; + /** + * 基础日薪 + */ + private Double baseSalary; + /** + * 删除标志 + */ + @TableLogic + private Long delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalaryItem.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalaryItem.java new file mode 100644 index 0000000..80013ca --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalaryItem.java @@ -0,0 +1,66 @@ +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_salary_item + * + * @author hdka + * @date 2025-03-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("oa_salary_item") +public class OaSalaryItem extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键id + */ + @TableId(value = "salary_item_id") + private Long salaryItemId; + /** + * 奖惩类型 + */ + private Long type; + /** + * 加/减理由 + */ + private String reason; + /** + * 涉及金额 + */ + private Double price; + /** + * 奖罚记号1奖0罚 + */ + private Long flag; + /** + * 外键id + */ + private Long salaryId; + /** + * 设计日期 + */ + private Date signTime; + /** + * 删除标志 + */ + @TableLogic + private Long delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryBo.java new file mode 100644 index 0000000..2ae1d09 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryBo.java @@ -0,0 +1,60 @@ +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; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 薪资管理业务对象 oa_salary + * + * @author hdka + * @date 2025-03-06 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class OaSalaryBo extends BaseEntity { + + /** + * 主键id + */ + private Long salaryId; + + /** + * 用户id + */ + private Long userId; + + /** + * 实际工资 + */ + private Double realSalary; + + /** + * 涉及时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date payTime; + + /** + * 基础日薪 + */ + private Double baseSalary; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryItemBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryItemBo.java new file mode 100644 index 0000000..487b3bd --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryItemBo.java @@ -0,0 +1,74 @@ +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; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 薪水详情业务对象 oa_salary_item + * + * @author hdka + * @date 2025-03-06 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class OaSalaryItemBo extends BaseEntity { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) + private Long salaryItemId; + + /** + * 奖惩类型 + */ + @NotNull(message = "奖惩类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long type; + + /** + * 理由 + */ + private String reason; + + /** + * 涉及金额 + */ + @NotNull(message = "涉及金额不能为空", groups = { AddGroup.class, EditGroup.class }) + private Double price; + + /** + * 奖罚记号1奖0罚 + */ + @NotNull(message = "奖罚记号不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long flag; + + /** + * 外键id + */ + private Long salaryId; + + /** + * 涉及日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date signTime; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryItemVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryItemVo.java new file mode 100644 index 0000000..25e16e6 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryItemVo.java @@ -0,0 +1,76 @@ +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_salary_item + * + * @author hdka + * @date 2025-03-06 + */ +@Data +@ExcelIgnoreUnannotated +public class OaSalaryItemVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long salaryItemId; + + /** + * 奖惩类型 + */ + @ExcelProperty(value = "奖惩类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "oa_salary_type") + private Long type; + + /** + * 加/减理由 + */ + @ExcelProperty(value = "加/减理由") + private String reason; + + /** + * 涉及金额 + */ + @ExcelProperty(value = "涉及金额") + private Double price; + + /** + * 奖罚记号1奖0罚 + */ + @ExcelProperty(value = "奖罚记号1奖0罚") + private Long flag; + + /** + * 外键id + */ + @ExcelProperty(value = "外键id") + private Long salaryId; + + /** + * 设计日期 + */ + @ExcelProperty(value = "设计日期") + private Date signTime; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryVo.java new file mode 100644 index 0000000..d8c528f --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryVo.java @@ -0,0 +1,72 @@ +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 com.ruoyi.oa.domain.OaSalary; +import com.ruoyi.oa.domain.bo.OaSalaryBo; +import lombok.Data; +import java.util.Date; + + + +/** + * 薪资管理视图对象 oa_salary + * + * @author hdka + * @date 2025-03-06 + */ +@Data +@ExcelIgnoreUnannotated +public class OaSalaryVo extends OaSalary { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long salaryId; + + + /** + * 人名 + */ + @ExcelProperty(value = "姓名") + private String nickName; + + + /** + * 用户id + */ + @ExcelProperty(value = "用户id") + private Long userId; + + /** + * 实际工资 + */ + @ExcelProperty(value = "实际工资") + private Double realSalary; + + /** + * 涉及时间 + */ + @ExcelProperty(value = "涉及时间") + private Date payTime; + + /** + * 基础日薪 + */ + @ExcelProperty(value = "基础日薪") + private Double baseSalary; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryItemMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryItemMapper.java new file mode 100644 index 0000000..5f151a1 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryItemMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.oa.mapper; + +import com.ruoyi.oa.domain.OaSalaryItem; +import com.ruoyi.oa.domain.vo.OaSalaryItemVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; + +/** + * 薪水详情Mapper接口 + * + * @author hdka + * @date 2025-03-06 + */ +public interface OaSalaryItemMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryMapper.java new file mode 100644 index 0000000..3557d9f --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryMapper.java @@ -0,0 +1,21 @@ +package com.ruoyi.oa.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.oa.domain.OaSalary; +import com.ruoyi.oa.domain.vo.OaSalaryVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; + +/** + * 薪资管理Mapper接口 + * + * @author hdka + * @date 2025-03-06 + */ +public interface OaSalaryMapper extends BaseMapperPlus { + + Page selectStaffVoPage(Page build,@Param(Constants.WRAPPER) Wrapper lqw); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryItemService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryItemService.java new file mode 100644 index 0000000..5aea3de --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryItemService.java @@ -0,0 +1,49 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.OaSalaryItem; +import com.ruoyi.oa.domain.vo.OaSalaryItemVo; +import com.ruoyi.oa.domain.bo.OaSalaryItemBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 薪水详情Service接口 + * + * @author hdka + * @date 2025-03-06 + */ +public interface IOaSalaryItemService { + + /** + * 查询薪水详情 + */ + OaSalaryItemVo queryById(Long salaryItemId); + + /** + * 查询薪水详情列表 + */ + TableDataInfo queryPageList(OaSalaryItemBo bo, PageQuery pageQuery); + + /** + * 查询薪水详情列表 + */ + List queryList(OaSalaryItemBo bo); + + /** + * 新增薪水详情 + */ + Boolean insertByBo(OaSalaryItemBo bo); + + /** + * 修改薪水详情 + */ + Boolean updateByBo(OaSalaryItemBo bo); + + /** + * 校验并批量删除薪水详情信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryService.java new file mode 100644 index 0000000..e21932e --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryService.java @@ -0,0 +1,49 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.OaSalary; +import com.ruoyi.oa.domain.vo.OaSalaryVo; +import com.ruoyi.oa.domain.bo.OaSalaryBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 薪资管理Service接口 + * + * @author hdka + * @date 2025-03-06 + */ +public interface IOaSalaryService { + + /** + * 查询薪资管理 + */ + OaSalaryVo queryById(Long salaryId); + + /** + * 查询薪资管理列表 + */ + TableDataInfo queryPageList(OaSalaryBo bo, PageQuery pageQuery); + + /** + * 查询薪资管理列表 + */ + List queryList(OaSalaryBo bo); + + /** + * 新增薪资管理 + */ + Boolean insertByBo(OaSalaryBo bo); + + /** + * 修改薪资管理 + */ + Boolean updateByBo(OaSalaryBo bo); + + /** + * 校验并批量删除薪资管理信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryItemServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryItemServiceImpl.java new file mode 100644 index 0000000..53da809 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryItemServiceImpl.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.OaSalaryItemBo; +import com.ruoyi.oa.domain.vo.OaSalaryItemVo; +import com.ruoyi.oa.domain.OaSalaryItem; +import com.ruoyi.oa.mapper.OaSalaryItemMapper; +import com.ruoyi.oa.service.IOaSalaryItemService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 薪水详情Service业务层处理 + * + * @author hdka + * @date 2025-03-06 + */ +@RequiredArgsConstructor +@Service +public class OaSalaryItemServiceImpl implements IOaSalaryItemService { + + private final OaSalaryItemMapper baseMapper; + + /** + * 查询薪水详情 + */ + @Override + public OaSalaryItemVo queryById(Long salaryItemId){ + return baseMapper.selectVoById(salaryItemId); + } + + /** + * 查询薪水详情列表 + */ + @Override + public TableDataInfo queryPageList(OaSalaryItemBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询薪水详情列表 + */ + @Override + public List queryList(OaSalaryItemBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(OaSalaryItemBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getType() != null, OaSalaryItem::getType, bo.getType()); + lqw.eq(StringUtils.isNotBlank(bo.getReason()), OaSalaryItem::getReason, bo.getReason()); + lqw.eq(bo.getPrice() != null, OaSalaryItem::getPrice, bo.getPrice()); + lqw.eq(bo.getFlag() != null, OaSalaryItem::getFlag, bo.getFlag()); + lqw.eq(bo.getSalaryId() != null, OaSalaryItem::getSalaryId, bo.getSalaryId()); + lqw.eq(bo.getSignTime() != null, OaSalaryItem::getSignTime, bo.getSignTime()); + return lqw; + } + + /** + * 新增薪水详情 + */ + @Override + public Boolean insertByBo(OaSalaryItemBo bo) { + OaSalaryItem add = BeanUtil.toBean(bo, OaSalaryItem.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setSalaryItemId(add.getSalaryItemId()); + } + return flag; + } + + /** + * 修改薪水详情 + */ + @Override + public Boolean updateByBo(OaSalaryItemBo bo) { + OaSalaryItem update = BeanUtil.toBean(bo, OaSalaryItem.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(OaSalaryItem 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/OaSalaryServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryServiceImpl.java new file mode 100644 index 0000000..685ccef --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryServiceImpl.java @@ -0,0 +1,112 @@ +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.OaSalaryBo; +import com.ruoyi.oa.domain.vo.OaSalaryVo; +import com.ruoyi.oa.domain.OaSalary; +import com.ruoyi.oa.mapper.OaSalaryMapper; +import com.ruoyi.oa.service.IOaSalaryService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 薪资管理Service业务层处理 + * + * @author hdka + * @date 2025-03-06 + */ +@RequiredArgsConstructor +@Service +public class OaSalaryServiceImpl implements IOaSalaryService { + + private final OaSalaryMapper baseMapper; + + /** + * 查询薪资管理 + */ + @Override + public OaSalaryVo queryById(Long salaryId){ + return baseMapper.selectVoById(salaryId); + } + + /** + * 查询薪资管理列表 + */ + @Override + public TableDataInfo queryPageList(OaSalaryBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectStaffVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询薪资管理列表 + */ + @Override + public List queryList(OaSalaryBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(OaSalaryBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getUserId() != null, OaSalary::getUserId, bo.getUserId()); + lqw.eq(bo.getRealSalary() != null, OaSalary::getRealSalary, bo.getRealSalary()); + lqw.eq(bo.getPayTime() != null, OaSalary::getPayTime, bo.getPayTime()); + lqw.eq(bo.getBaseSalary() != null, OaSalary::getBaseSalary, bo.getBaseSalary()); + return lqw; + } + + /** + * 新增薪资管理 + */ + @Override + public Boolean insertByBo(OaSalaryBo bo) { + OaSalary add = BeanUtil.toBean(bo, OaSalary.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setSalaryId(add.getSalaryId()); + } + return flag; + } + + /** + * 修改薪资管理 + */ + @Override + public Boolean updateByBo(OaSalaryBo bo) { + OaSalary update = BeanUtil.toBean(bo, OaSalary.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(OaSalary 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/OaSalaryItemMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryItemMapper.xml new file mode 100644 index 0000000..31da68e --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryItemMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMapper.xml new file mode 100644 index 0000000..e76765d --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + +