From fdd74891026d80f4f72e53da06d03741ce4474a8 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 8 Sep 2025 14:22:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E6=B7=BB=E5=8A=A0=E5=B7=A5?= =?UTF-8?q?=E8=B5=84=E5=8F=91=E6=94=BE=E4=B8=BB=E5=92=8C=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增工资发放主和明细的实体类、BO类、VO类 - 实现工资发放主和明细的增删查改功能 - 添加工资发放主和明细的导出功能 --- .../controller/OaSalaryDetailController.java | 101 +++++++ .../controller/OaSalaryMasterController.java | 101 +++++++ .../com/ruoyi/oa/domain/OaSalaryDetail.java | 177 +++++++++++++ .../com/ruoyi/oa/domain/OaSalaryMaster.java | 68 +++++ .../ruoyi/oa/domain/bo/OaSalaryDetailBo.java | 206 +++++++++++++++ .../ruoyi/oa/domain/bo/OaSalaryMasterBo.java | 70 +++++ .../ruoyi/oa/domain/vo/OaSalaryDetailVo.java | 250 ++++++++++++++++++ .../ruoyi/oa/domain/vo/OaSalaryMasterVo.java | 79 ++++++ .../ruoyi/oa/mapper/OaSalaryDetailMapper.java | 15 ++ .../ruoyi/oa/mapper/OaSalaryMasterMapper.java | 15 ++ .../oa/service/IOaSalaryDetailService.java | 49 ++++ .../oa/service/IOaSalaryMasterService.java | 49 ++++ .../impl/OaSalaryDetailServiceImpl.java | 142 ++++++++++ .../impl/OaSalaryMasterServiceImpl.java | 115 ++++++++ .../mapper/oa/OaSalaryDetailMapper.xml | 52 ++++ .../mapper/oa/OaSalaryMasterMapper.xml | 25 ++ 16 files changed, 1514 insertions(+) create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryDetailController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryMasterController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalaryDetail.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalaryMaster.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryDetailBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryMasterBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryDetailVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryMasterVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryDetailMapper.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryMasterMapper.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryDetailService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryMasterService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryDetailServiceImpl.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryMasterServiceImpl.java create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/OaSalaryDetailMapper.xml create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMasterMapper.xml diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryDetailController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryDetailController.java new file mode 100644 index 0000000..f5555d7 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryDetailController.java @@ -0,0 +1,101 @@ +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 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.OaSalaryDetailVo; +import com.ruoyi.oa.domain.bo.OaSalaryDetailBo; +import com.ruoyi.oa.service.IOaSalaryDetailService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 工资发放明细 + * + * @author Joshi + * @date 2025-09-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/oa/salaryDetail") +public class OaSalaryDetailController extends BaseController { + + private final IOaSalaryDetailService iOaSalaryDetailService; + + /** + * 查询工资发放明细列表 + */ + @GetMapping("/list") + public TableDataInfo list(OaSalaryDetailBo bo, PageQuery pageQuery) { + return iOaSalaryDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出工资发放明细列表 + */ + @Log(title = "工资发放明细", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(OaSalaryDetailBo bo, HttpServletResponse response) { + List list = iOaSalaryDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "工资发放明细", OaSalaryDetailVo.class, response); + } + + /** + * 获取工资发放明细详细信息 + * + * @param detailId 主键 + */ + @GetMapping("/{detailId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long detailId) { + return R.ok(iOaSalaryDetailService.queryById(detailId)); + } + + /** + * 新增工资发放明细 + */ + @Log(title = "工资发放明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody OaSalaryDetailBo bo) { + return toAjax(iOaSalaryDetailService.insertByBo(bo)); + } + + /** + * 修改工资发放明细 + */ + @Log(title = "工资发放明细", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody OaSalaryDetailBo bo) { + return toAjax(iOaSalaryDetailService.updateByBo(bo)); + } + + /** + * 删除工资发放明细 + * + * @param detailIds 主键串 + */ + @Log(title = "工资发放明细", businessType = BusinessType.DELETE) + @DeleteMapping("/{detailIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] detailIds) { + return toAjax(iOaSalaryDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryMasterController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryMasterController.java new file mode 100644 index 0000000..e3d0f81 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryMasterController.java @@ -0,0 +1,101 @@ +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 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.OaSalaryMasterVo; +import com.ruoyi.oa.domain.bo.OaSalaryMasterBo; +import com.ruoyi.oa.service.IOaSalaryMasterService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 工资发放主 + * + * @author Joshi + * @date 2025-09-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/oa/salaryMaster") +public class OaSalaryMasterController extends BaseController { + + private final IOaSalaryMasterService iOaSalaryMasterService; + + /** + * 查询工资发放主列表 + */ + @GetMapping("/list") + public TableDataInfo list(OaSalaryMasterBo bo, PageQuery pageQuery) { + return iOaSalaryMasterService.queryPageList(bo, pageQuery); + } + + /** + * 导出工资发放主列表 + */ + @Log(title = "工资发放主", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(OaSalaryMasterBo bo, HttpServletResponse response) { + List list = iOaSalaryMasterService.queryList(bo); + ExcelUtil.exportExcel(list, "工资发放主", OaSalaryMasterVo.class, response); + } + + /** + * 获取工资发放主详细信息 + * + * @param masterId 主键 + */ + @GetMapping("/{masterId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long masterId) { + return R.ok(iOaSalaryMasterService.queryById(masterId)); + } + + /** + * 新增工资发放主 + */ + @Log(title = "工资发放主", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody OaSalaryMasterBo bo) { + return toAjax(iOaSalaryMasterService.insertByBo(bo)); + } + + /** + * 修改工资发放主 + */ + @Log(title = "工资发放主", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody OaSalaryMasterBo bo) { + return toAjax(iOaSalaryMasterService.updateByBo(bo)); + } + + /** + * 删除工资发放主 + * + * @param masterIds 主键串 + */ + @Log(title = "工资发放主", businessType = BusinessType.DELETE) + @DeleteMapping("/{masterIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] masterIds) { + return toAjax(iOaSalaryMasterService.deleteWithValidByIds(Arrays.asList(masterIds), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalaryDetail.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalaryDetail.java new file mode 100644 index 0000000..1a65993 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalaryDetail.java @@ -0,0 +1,177 @@ +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.math.BigDecimal; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 工资发放明细对象 oa_salary_detail + * + * @author Joshi + * @date 2025-09-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("oa_salary_detail") +public class OaSalaryDetail extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键,自增 + */ + @TableId(value = "detail_id") + private Long detailId; + /** + * 关联主表ID + */ + private Long mainId; + /** + * 序号 + */ + private Long serialNumber; + /** + * 部门 + */ + private String dept; + /** + * 员工姓名 + */ + private String name; + /** + * 基本工资 + */ + private BigDecimal basicSalary; + /** + * 岗位工资 + */ + private BigDecimal postSalary; + /** + * 餐补 + */ + private BigDecimal mealAllowance; + /** + * 住房补贴 + */ + private BigDecimal housingAllowance; + /** + * 公交补贴 + */ + private BigDecimal busAllowance; + /** + * 出差天数 + */ + private Long businessDaysOther; + /** + * 出差补助 + */ + private BigDecimal businessAllowance; + /** + * 社保补助(模板2字段) + */ + private BigDecimal socialSecurityAllowance; + /** + * 加班时长(模板2字段) + */ + private BigDecimal overtimeHours; + /** + * 加班标准(模板2字段) + */ + private BigDecimal overtimeRate; + /** + * 加班工资总计(模板2字段) + */ + private BigDecimal overtimeTotal; + /** + * 出勤天数(模板2字段) + */ + private Long businessDays; + /** + * 请假扣款 + */ + private BigDecimal leaveDeduction; + /** + * 其他扣款 + */ + private BigDecimal otherDeduction; + /** + * 应发工资 + */ + private BigDecimal grossSalary; + /** + * 个人缴纳养老保险 + */ + private BigDecimal personalPension; + /** + * 个人缴纳医疗保险 + */ + private BigDecimal personalMedical; + /** + * 个人缴纳失业保险 + */ + private BigDecimal personalUnemployment; + /** + * 个人缴纳大病医疗 + */ + private BigDecimal personalBigMedical; + /** + * 个人缴纳住房公积金 + */ + private BigDecimal personalHousingFund; + /** + * 个人所得税 + */ + private BigDecimal personalTax; + /** + * 实发工资 + */ + private BigDecimal netSalary; + /** + * 企业缴纳养老保险 + */ + private BigDecimal enterprisePension; + /** + * 企业缴纳医疗保险 + */ + private BigDecimal enterpriseMedical; + /** + * 企业缴纳工伤保险(模板2字段) + */ + private BigDecimal enterpriseInjury; + /** + * 企业缴纳失业保险 + */ + private BigDecimal enterpriseUnemployment; + /** + * 企业缴纳生育保险(模板1字段) + */ + private BigDecimal enterpriseMaternity; + /** + * 企业缴纳住房公积金 + */ + private BigDecimal enterpriseHousingFund; + /** + * 企业缴纳大病医疗(模板2字段) + */ + private BigDecimal enterpriseBigMedical; + /** + * 单位总支出 + */ + private BigDecimal unitTotalExpense; + /** + * 备注 + */ + private String remark; + /** + * 删除标志(0正常 1删除) + */ + @TableLogic + private Long delFlag; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalaryMaster.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalaryMaster.java new file mode 100644 index 0000000..1c99fb6 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaSalaryMaster.java @@ -0,0 +1,68 @@ +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_salary_master + * + * @author Joshi + * @date 2025-09-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("oa_salary_master") +public class OaSalaryMaster extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键,自增 + */ + @TableId(value = "master_id") + private Long masterId; + /** + * 单位名称 + */ + private String unitName; + /** + * 工资所属期间,格式如:2023-08 + */ + private String salaryPeriod; + /** + * 总经理审批状态或姓名 + */ + private String gmApproval; + /** + * 财务审核状态或姓名 + */ + private String financeAudit; + /** + * 出纳姓名 + */ + private String cashier; + /** + * 部门主管姓名 + */ + private String deptManager; + /** + * 经办人姓名 + */ + private String operator; + /** + * 备注 + */ + private String remark; + /** + * 删除标志(0正常 1删除) + */ + @TableLogic + private Long delFlag; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryDetailBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryDetailBo.java new file mode 100644 index 0000000..7e17d4f --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryDetailBo.java @@ -0,0 +1,206 @@ +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.math.BigDecimal; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 工资发放明细业务对象 oa_salary_detail + * + * @author Joshi + * @date 2025-09-08 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class OaSalaryDetailBo extends BaseEntity { + + /** + * 主键,自增 + */ + private Long detailId; + + /** + * 关联主表ID + */ + private Long mainId; + + /** + * 序号 + */ + private Long serialNumber; + + /** + * 部门 + */ + private String dept; + + /** + * 员工姓名 + */ + private String name; + + /** + * 基本工资 + */ + private BigDecimal basicSalary; + + /** + * 岗位工资 + */ + private BigDecimal postSalary; + + /** + * 餐补 + */ + private BigDecimal mealAllowance; + + /** + * 住房补贴 + */ + private BigDecimal housingAllowance; + + /** + * 公交补贴 + */ + private BigDecimal busAllowance; + + /** + * 出差天数 + */ + private Long businessDaysOther; + + /** + * 出差补助 + */ + private BigDecimal businessAllowance; + + /** + * 社保补助(模板2字段) + */ + private BigDecimal socialSecurityAllowance; + + /** + * 加班时长(模板2字段) + */ + private BigDecimal overtimeHours; + + /** + * 加班标准(模板2字段) + */ + private BigDecimal overtimeRate; + + /** + * 加班工资总计(模板2字段) + */ + private BigDecimal overtimeTotal; + + /** + * 出勤天数(模板2字段) + */ + private Long businessDays; + + /** + * 请假扣款 + */ + private BigDecimal leaveDeduction; + + /** + * 其他扣款 + */ + private BigDecimal otherDeduction; + + /** + * 应发工资 + */ + private BigDecimal grossSalary; + + /** + * 个人缴纳养老保险 + */ + private BigDecimal personalPension; + + /** + * 个人缴纳医疗保险 + */ + private BigDecimal personalMedical; + + /** + * 个人缴纳失业保险 + */ + private BigDecimal personalUnemployment; + + /** + * 个人缴纳大病医疗 + */ + private BigDecimal personalBigMedical; + + /** + * 个人缴纳住房公积金 + */ + private BigDecimal personalHousingFund; + + /** + * 个人所得税 + */ + private BigDecimal personalTax; + + /** + * 实发工资 + */ + private BigDecimal netSalary; + + /** + * 企业缴纳养老保险 + */ + private BigDecimal enterprisePension; + + /** + * 企业缴纳医疗保险 + */ + private BigDecimal enterpriseMedical; + + /** + * 企业缴纳工伤保险(模板2字段) + */ + private BigDecimal enterpriseInjury; + + /** + * 企业缴纳失业保险 + */ + private BigDecimal enterpriseUnemployment; + + /** + * 企业缴纳生育保险(模板1字段) + */ + private BigDecimal enterpriseMaternity; + + /** + * 企业缴纳住房公积金 + */ + private BigDecimal enterpriseHousingFund; + + /** + * 企业缴纳大病医疗(模板2字段) + */ + private BigDecimal enterpriseBigMedical; + + /** + * 单位总支出 + */ + private BigDecimal unitTotalExpense; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryMasterBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryMasterBo.java new file mode 100644 index 0000000..80d03c3 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaSalaryMasterBo.java @@ -0,0 +1,70 @@ +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_salary_master + * + * @author Joshi + * @date 2025-09-08 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class OaSalaryMasterBo extends BaseEntity { + + /** + * 主键,自增 + */ + private Long masterId; + + /** + * 单位名称 + */ + private String unitName; + + /** + * 工资所属期间,格式如:2023-08 + */ + private String salaryPeriod; + + /** + * 总经理审批状态或姓名 + */ + private String gmApproval; + + /** + * 财务审核状态或姓名 + */ + private String financeAudit; + + /** + * 出纳姓名 + */ + private String cashier; + + /** + * 部门主管姓名 + */ + private String deptManager; + + /** + * 经办人姓名 + */ + private String operator; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryDetailVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryDetailVo.java new file mode 100644 index 0000000..b8f380c --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryDetailVo.java @@ -0,0 +1,250 @@ +package com.ruoyi.oa.domain.vo; + +import java.math.BigDecimal; +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_detail + * + * @author Joshi + * @date 2025-09-08 + */ +@Data +@ExcelIgnoreUnannotated +public class OaSalaryDetailVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键,自增 + */ + @ExcelProperty(value = "主键,自增") + private Long detailId; + + /** + * 关联主表ID + */ + @ExcelProperty(value = "关联主表ID") + private Long mainId; + + /** + * 序号 + */ + @ExcelProperty(value = "序号") + private Long serialNumber; + + /** + * 部门 + */ + @ExcelProperty(value = "部门") + private String dept; + + /** + * 员工姓名 + */ + @ExcelProperty(value = "员工姓名") + private String name; + + /** + * 基本工资 + */ + @ExcelProperty(value = "基本工资") + private BigDecimal basicSalary; + + /** + * 岗位工资 + */ + @ExcelProperty(value = "岗位工资") + private BigDecimal postSalary; + + /** + * 餐补 + */ + @ExcelProperty(value = "餐补") + private BigDecimal mealAllowance; + + /** + * 住房补贴 + */ + @ExcelProperty(value = "住房补贴") + private BigDecimal housingAllowance; + + /** + * 公交补贴 + */ + @ExcelProperty(value = "公交补贴") + private BigDecimal busAllowance; + + /** + * 出差天数 + */ + @ExcelProperty(value = "出差天数") + private Long businessDaysOther; + + /** + * 出差补助 + */ + @ExcelProperty(value = "出差补助") + private BigDecimal businessAllowance; + + /** + * 社保补助(模板2字段) + */ + @ExcelProperty(value = "社保补助", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "模=板2字段") + private BigDecimal socialSecurityAllowance; + + /** + * 加班时长(模板2字段) + */ + @ExcelProperty(value = "加班时长", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "模=板2字段") + private BigDecimal overtimeHours; + + /** + * 加班标准(模板2字段) + */ + @ExcelProperty(value = "加班标准", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "模=板2字段") + private BigDecimal overtimeRate; + + /** + * 加班工资总计(模板2字段) + */ + @ExcelProperty(value = "加班工资总计", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "模=板2字段") + private BigDecimal overtimeTotal; + + /** + * 出勤天数(模板2字段) + */ + @ExcelProperty(value = "出勤天数", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "模=板2字段") + private Long businessDays; + + /** + * 请假扣款 + */ + @ExcelProperty(value = "请假扣款") + private BigDecimal leaveDeduction; + + /** + * 其他扣款 + */ + @ExcelProperty(value = "其他扣款") + private BigDecimal otherDeduction; + + /** + * 应发工资 + */ + @ExcelProperty(value = "应发工资") + private BigDecimal grossSalary; + + /** + * 个人缴纳养老保险 + */ + @ExcelProperty(value = "个人缴纳养老保险") + private BigDecimal personalPension; + + /** + * 个人缴纳医疗保险 + */ + @ExcelProperty(value = "个人缴纳医疗保险") + private BigDecimal personalMedical; + + /** + * 个人缴纳失业保险 + */ + @ExcelProperty(value = "个人缴纳失业保险") + private BigDecimal personalUnemployment; + + /** + * 个人缴纳大病医疗 + */ + @ExcelProperty(value = "个人缴纳大病医疗") + private BigDecimal personalBigMedical; + + /** + * 个人缴纳住房公积金 + */ + @ExcelProperty(value = "个人缴纳住房公积金") + private BigDecimal personalHousingFund; + + /** + * 个人所得税 + */ + @ExcelProperty(value = "个人所得税") + private BigDecimal personalTax; + + /** + * 实发工资 + */ + @ExcelProperty(value = "实发工资") + private BigDecimal netSalary; + + /** + * 企业缴纳养老保险 + */ + @ExcelProperty(value = "企业缴纳养老保险") + private BigDecimal enterprisePension; + + /** + * 企业缴纳医疗保险 + */ + @ExcelProperty(value = "企业缴纳医疗保险") + private BigDecimal enterpriseMedical; + + /** + * 企业缴纳工伤保险(模板2字段) + */ + @ExcelProperty(value = "企业缴纳工伤保险", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "模=板2字段") + private BigDecimal enterpriseInjury; + + /** + * 企业缴纳失业保险 + */ + @ExcelProperty(value = "企业缴纳失业保险") + private BigDecimal enterpriseUnemployment; + + /** + * 企业缴纳生育保险(模板1字段) + */ + @ExcelProperty(value = "企业缴纳生育保险", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "模=板1字段") + private BigDecimal enterpriseMaternity; + + /** + * 企业缴纳住房公积金 + */ + @ExcelProperty(value = "企业缴纳住房公积金") + private BigDecimal enterpriseHousingFund; + + /** + * 企业缴纳大病医疗(模板2字段) + */ + @ExcelProperty(value = "企业缴纳大病医疗", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "模=板2字段") + private BigDecimal enterpriseBigMedical; + + /** + * 单位总支出 + */ + @ExcelProperty(value = "单位总支出") + private BigDecimal unitTotalExpense; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryMasterVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryMasterVo.java new file mode 100644 index 0000000..ebd8707 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaSalaryMasterVo.java @@ -0,0 +1,79 @@ +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_salary_master + * + * @author Joshi + * @date 2025-09-08 + */ +@Data +@ExcelIgnoreUnannotated +public class OaSalaryMasterVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键,自增 + */ + @ExcelProperty(value = "主键,自增") + private Long masterId; + + /** + * 单位名称 + */ + @ExcelProperty(value = "单位名称") + private String unitName; + + /** + * 工资所属期间,格式如:2023-08 + */ + @ExcelProperty(value = "工资所属期间,格式如:2023-08") + private String salaryPeriod; + + /** + * 总经理审批状态或姓名 + */ + @ExcelProperty(value = "总经理审批状态或姓名") + private String gmApproval; + + /** + * 财务审核状态或姓名 + */ + @ExcelProperty(value = "财务审核状态或姓名") + private String financeAudit; + + /** + * 出纳姓名 + */ + @ExcelProperty(value = "出纳姓名") + private String cashier; + + /** + * 部门主管姓名 + */ + @ExcelProperty(value = "部门主管姓名") + private String deptManager; + + /** + * 经办人姓名 + */ + @ExcelProperty(value = "经办人姓名") + private String operator; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryDetailMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryDetailMapper.java new file mode 100644 index 0000000..138f125 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryDetailMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.oa.mapper; + +import com.ruoyi.oa.domain.OaSalaryDetail; +import com.ruoyi.oa.domain.vo.OaSalaryDetailVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; + +/** + * 工资发放明细Mapper接口 + * + * @author Joshi + * @date 2025-09-08 + */ +public interface OaSalaryDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryMasterMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryMasterMapper.java new file mode 100644 index 0000000..cf0d8e0 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaSalaryMasterMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.oa.mapper; + +import com.ruoyi.oa.domain.OaSalaryMaster; +import com.ruoyi.oa.domain.vo.OaSalaryMasterVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; + +/** + * 工资发放主Mapper接口 + * + * @author Joshi + * @date 2025-09-08 + */ +public interface OaSalaryMasterMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryDetailService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryDetailService.java new file mode 100644 index 0000000..6cc33a5 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryDetailService.java @@ -0,0 +1,49 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.OaSalaryDetail; +import com.ruoyi.oa.domain.vo.OaSalaryDetailVo; +import com.ruoyi.oa.domain.bo.OaSalaryDetailBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 工资发放明细Service接口 + * + * @author Joshi + * @date 2025-09-08 + */ +public interface IOaSalaryDetailService { + + /** + * 查询工资发放明细 + */ + OaSalaryDetailVo queryById(Long detailId); + + /** + * 查询工资发放明细列表 + */ + TableDataInfo queryPageList(OaSalaryDetailBo bo, PageQuery pageQuery); + + /** + * 查询工资发放明细列表 + */ + List queryList(OaSalaryDetailBo bo); + + /** + * 新增工资发放明细 + */ + Boolean insertByBo(OaSalaryDetailBo bo); + + /** + * 修改工资发放明细 + */ + Boolean updateByBo(OaSalaryDetailBo bo); + + /** + * 校验并批量删除工资发放明细信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryMasterService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryMasterService.java new file mode 100644 index 0000000..f1d2cc7 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaSalaryMasterService.java @@ -0,0 +1,49 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.OaSalaryMaster; +import com.ruoyi.oa.domain.vo.OaSalaryMasterVo; +import com.ruoyi.oa.domain.bo.OaSalaryMasterBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 工资发放主Service接口 + * + * @author Joshi + * @date 2025-09-08 + */ +public interface IOaSalaryMasterService { + + /** + * 查询工资发放主 + */ + OaSalaryMasterVo queryById(Long masterId); + + /** + * 查询工资发放主列表 + */ + TableDataInfo queryPageList(OaSalaryMasterBo bo, PageQuery pageQuery); + + /** + * 查询工资发放主列表 + */ + List queryList(OaSalaryMasterBo bo); + + /** + * 新增工资发放主 + */ + Boolean insertByBo(OaSalaryMasterBo bo); + + /** + * 修改工资发放主 + */ + Boolean updateByBo(OaSalaryMasterBo bo); + + /** + * 校验并批量删除工资发放主信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryDetailServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryDetailServiceImpl.java new file mode 100644 index 0000000..ec2155f --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryDetailServiceImpl.java @@ -0,0 +1,142 @@ +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.OaSalaryDetailBo; +import com.ruoyi.oa.domain.vo.OaSalaryDetailVo; +import com.ruoyi.oa.domain.OaSalaryDetail; +import com.ruoyi.oa.mapper.OaSalaryDetailMapper; +import com.ruoyi.oa.service.IOaSalaryDetailService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工资发放明细Service业务层处理 + * + * @author Joshi + * @date 2025-09-08 + */ +@RequiredArgsConstructor +@Service +public class OaSalaryDetailServiceImpl implements IOaSalaryDetailService { + + private final OaSalaryDetailMapper baseMapper; + + /** + * 查询工资发放明细 + */ + @Override + public OaSalaryDetailVo queryById(Long detailId){ + return baseMapper.selectVoById(detailId); + } + + /** + * 查询工资发放明细列表 + */ + @Override + public TableDataInfo queryPageList(OaSalaryDetailBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询工资发放明细列表 + */ + @Override + public List queryList(OaSalaryDetailBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(OaSalaryDetailBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getMainId() != null, OaSalaryDetail::getMainId, bo.getMainId()); + lqw.eq(bo.getSerialNumber() != null, OaSalaryDetail::getSerialNumber, bo.getSerialNumber()); + lqw.eq(StringUtils.isNotBlank(bo.getDept()), OaSalaryDetail::getDept, bo.getDept()); + lqw.like(StringUtils.isNotBlank(bo.getName()), OaSalaryDetail::getName, bo.getName()); + lqw.eq(bo.getBasicSalary() != null, OaSalaryDetail::getBasicSalary, bo.getBasicSalary()); + lqw.eq(bo.getPostSalary() != null, OaSalaryDetail::getPostSalary, bo.getPostSalary()); + lqw.eq(bo.getMealAllowance() != null, OaSalaryDetail::getMealAllowance, bo.getMealAllowance()); + lqw.eq(bo.getHousingAllowance() != null, OaSalaryDetail::getHousingAllowance, bo.getHousingAllowance()); + lqw.eq(bo.getBusAllowance() != null, OaSalaryDetail::getBusAllowance, bo.getBusAllowance()); + lqw.eq(bo.getBusinessDaysOther() != null, OaSalaryDetail::getBusinessDaysOther, bo.getBusinessDaysOther()); + lqw.eq(bo.getBusinessAllowance() != null, OaSalaryDetail::getBusinessAllowance, bo.getBusinessAllowance()); + lqw.eq(bo.getSocialSecurityAllowance() != null, OaSalaryDetail::getSocialSecurityAllowance, bo.getSocialSecurityAllowance()); + lqw.eq(bo.getOvertimeHours() != null, OaSalaryDetail::getOvertimeHours, bo.getOvertimeHours()); + lqw.eq(bo.getOvertimeRate() != null, OaSalaryDetail::getOvertimeRate, bo.getOvertimeRate()); + lqw.eq(bo.getOvertimeTotal() != null, OaSalaryDetail::getOvertimeTotal, bo.getOvertimeTotal()); + lqw.eq(bo.getBusinessDays() != null, OaSalaryDetail::getBusinessDays, bo.getBusinessDays()); + lqw.eq(bo.getLeaveDeduction() != null, OaSalaryDetail::getLeaveDeduction, bo.getLeaveDeduction()); + lqw.eq(bo.getOtherDeduction() != null, OaSalaryDetail::getOtherDeduction, bo.getOtherDeduction()); + lqw.eq(bo.getGrossSalary() != null, OaSalaryDetail::getGrossSalary, bo.getGrossSalary()); + lqw.eq(bo.getPersonalPension() != null, OaSalaryDetail::getPersonalPension, bo.getPersonalPension()); + lqw.eq(bo.getPersonalMedical() != null, OaSalaryDetail::getPersonalMedical, bo.getPersonalMedical()); + lqw.eq(bo.getPersonalUnemployment() != null, OaSalaryDetail::getPersonalUnemployment, bo.getPersonalUnemployment()); + lqw.eq(bo.getPersonalBigMedical() != null, OaSalaryDetail::getPersonalBigMedical, bo.getPersonalBigMedical()); + lqw.eq(bo.getPersonalHousingFund() != null, OaSalaryDetail::getPersonalHousingFund, bo.getPersonalHousingFund()); + lqw.eq(bo.getPersonalTax() != null, OaSalaryDetail::getPersonalTax, bo.getPersonalTax()); + lqw.eq(bo.getNetSalary() != null, OaSalaryDetail::getNetSalary, bo.getNetSalary()); + lqw.eq(bo.getEnterprisePension() != null, OaSalaryDetail::getEnterprisePension, bo.getEnterprisePension()); + lqw.eq(bo.getEnterpriseMedical() != null, OaSalaryDetail::getEnterpriseMedical, bo.getEnterpriseMedical()); + lqw.eq(bo.getEnterpriseInjury() != null, OaSalaryDetail::getEnterpriseInjury, bo.getEnterpriseInjury()); + lqw.eq(bo.getEnterpriseUnemployment() != null, OaSalaryDetail::getEnterpriseUnemployment, bo.getEnterpriseUnemployment()); + lqw.eq(bo.getEnterpriseMaternity() != null, OaSalaryDetail::getEnterpriseMaternity, bo.getEnterpriseMaternity()); + lqw.eq(bo.getEnterpriseHousingFund() != null, OaSalaryDetail::getEnterpriseHousingFund, bo.getEnterpriseHousingFund()); + lqw.eq(bo.getEnterpriseBigMedical() != null, OaSalaryDetail::getEnterpriseBigMedical, bo.getEnterpriseBigMedical()); + lqw.eq(bo.getUnitTotalExpense() != null, OaSalaryDetail::getUnitTotalExpense, bo.getUnitTotalExpense()); + return lqw; + } + + /** + * 新增工资发放明细 + */ + @Override + public Boolean insertByBo(OaSalaryDetailBo bo) { + OaSalaryDetail add = BeanUtil.toBean(bo, OaSalaryDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setDetailId(add.getDetailId()); + } + return flag; + } + + /** + * 修改工资发放明细 + */ + @Override + public Boolean updateByBo(OaSalaryDetailBo bo) { + OaSalaryDetail update = BeanUtil.toBean(bo, OaSalaryDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(OaSalaryDetail 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/OaSalaryMasterServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryMasterServiceImpl.java new file mode 100644 index 0000000..50550ef --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaSalaryMasterServiceImpl.java @@ -0,0 +1,115 @@ +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.OaSalaryMasterBo; +import com.ruoyi.oa.domain.vo.OaSalaryMasterVo; +import com.ruoyi.oa.domain.OaSalaryMaster; +import com.ruoyi.oa.mapper.OaSalaryMasterMapper; +import com.ruoyi.oa.service.IOaSalaryMasterService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工资发放主Service业务层处理 + * + * @author Joshi + * @date 2025-09-08 + */ +@RequiredArgsConstructor +@Service +public class OaSalaryMasterServiceImpl implements IOaSalaryMasterService { + + private final OaSalaryMasterMapper baseMapper; + + /** + * 查询工资发放主 + */ + @Override + public OaSalaryMasterVo queryById(Long masterId){ + return baseMapper.selectVoById(masterId); + } + + /** + * 查询工资发放主列表 + */ + @Override + public TableDataInfo queryPageList(OaSalaryMasterBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询工资发放主列表 + */ + @Override + public List queryList(OaSalaryMasterBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(OaSalaryMasterBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getUnitName()), OaSalaryMaster::getUnitName, bo.getUnitName()); + lqw.eq(StringUtils.isNotBlank(bo.getSalaryPeriod()), OaSalaryMaster::getSalaryPeriod, bo.getSalaryPeriod()); + lqw.eq(StringUtils.isNotBlank(bo.getGmApproval()), OaSalaryMaster::getGmApproval, bo.getGmApproval()); + lqw.eq(StringUtils.isNotBlank(bo.getFinanceAudit()), OaSalaryMaster::getFinanceAudit, bo.getFinanceAudit()); + lqw.eq(StringUtils.isNotBlank(bo.getCashier()), OaSalaryMaster::getCashier, bo.getCashier()); + lqw.eq(StringUtils.isNotBlank(bo.getDeptManager()), OaSalaryMaster::getDeptManager, bo.getDeptManager()); + lqw.eq(StringUtils.isNotBlank(bo.getOperator()), OaSalaryMaster::getOperator, bo.getOperator()); + return lqw; + } + + /** + * 新增工资发放主 + */ + @Override + public Boolean insertByBo(OaSalaryMasterBo bo) { + OaSalaryMaster add = BeanUtil.toBean(bo, OaSalaryMaster.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMasterId(add.getMasterId()); + } + return flag; + } + + /** + * 修改工资发放主 + */ + @Override + public Boolean updateByBo(OaSalaryMasterBo bo) { + OaSalaryMaster update = BeanUtil.toBean(bo, OaSalaryMaster.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(OaSalaryMaster 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/OaSalaryDetailMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryDetailMapper.xml new file mode 100644 index 0000000..6302914 --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryDetailMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMasterMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMasterMapper.xml new file mode 100644 index 0000000..62e16ea --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMasterMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + +