薪资计算逻辑
This commit is contained in:
@@ -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.OaBindingItemDetailVo;
|
||||
import com.ruoyi.oa.domain.bo.OaBindingItemDetailBo;
|
||||
import com.ruoyi.oa.service.IOaBindingItemDetailService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 绑定记录明细
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-06-23
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/bindingItemDetail")
|
||||
public class OaBindingItemDetailController extends BaseController {
|
||||
|
||||
private final IOaBindingItemDetailService iOaBindingItemDetailService;
|
||||
|
||||
/**
|
||||
* 查询绑定记录明细列表
|
||||
*/
|
||||
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<OaBindingItemDetailVo> list(OaBindingItemDetailBo bo, PageQuery pageQuery) {
|
||||
return iOaBindingItemDetailService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出绑定记录明细列表
|
||||
*/
|
||||
|
||||
@Log(title = "绑定记录明细", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(OaBindingItemDetailBo bo, HttpServletResponse response) {
|
||||
List<OaBindingItemDetailVo> list = iOaBindingItemDetailService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "绑定记录明细", OaBindingItemDetailVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取绑定记录明细详细信息
|
||||
*
|
||||
* @param bindingItemId 主键
|
||||
*/
|
||||
|
||||
@GetMapping("/{bindingItemId}")
|
||||
public R<OaBindingItemDetailVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long bindingItemId) {
|
||||
return R.ok(iOaBindingItemDetailService.queryById(bindingItemId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增绑定记录明细
|
||||
*/
|
||||
|
||||
@Log(title = "绑定记录明细", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaBindingItemDetailBo bo) {
|
||||
return toAjax(iOaBindingItemDetailService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改绑定记录明细
|
||||
*/
|
||||
|
||||
@Log(title = "绑定记录明细", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaBindingItemDetailBo bo) {
|
||||
return toAjax(iOaBindingItemDetailService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除绑定记录明细
|
||||
*
|
||||
* @param bindingItemIds 主键串
|
||||
*/
|
||||
@Log(title = "绑定记录明细", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{bindingItemIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] bindingItemIds) {
|
||||
return toAjax(iOaBindingItemDetailService.deleteWithValidByIds(Arrays.asList(bindingItemIds), true));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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.OaEmployeeVo;
|
||||
import com.ruoyi.oa.domain.bo.OaEmployeeBo;
|
||||
import com.ruoyi.oa.service.IOaEmployeeService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 员工基础信息
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-06-23
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/employee")
|
||||
public class OaEmployeeController extends BaseController {
|
||||
|
||||
private final IOaEmployeeService iOaEmployeeService;
|
||||
|
||||
/**
|
||||
* 查询员工基础信息列表
|
||||
*/
|
||||
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<OaEmployeeVo> list(OaEmployeeBo bo, PageQuery pageQuery) {
|
||||
return iOaEmployeeService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出员工基础信息列表
|
||||
*/
|
||||
|
||||
@Log(title = "员工基础信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(OaEmployeeBo bo, HttpServletResponse response) {
|
||||
List<OaEmployeeVo> list = iOaEmployeeService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "员工基础信息", OaEmployeeVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取员工基础信息详细信息
|
||||
*
|
||||
* @param employeeId 主键
|
||||
*/
|
||||
|
||||
@GetMapping("/{employeeId}")
|
||||
public R<OaEmployeeVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long employeeId) {
|
||||
return R.ok(iOaEmployeeService.queryById(employeeId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增员工基础信息
|
||||
*/
|
||||
|
||||
@Log(title = "员工基础信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaEmployeeBo bo) {
|
||||
return toAjax(iOaEmployeeService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改员工基础信息
|
||||
*/
|
||||
|
||||
@Log(title = "员工基础信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaEmployeeBo bo) {
|
||||
return toAjax(iOaEmployeeService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除员工基础信息
|
||||
*
|
||||
* @param employeeIds 主键串
|
||||
*/
|
||||
|
||||
@Log(title = "员工基础信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{employeeIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] employeeIds) {
|
||||
return toAjax(iOaEmployeeService.deleteWithValidByIds(Arrays.asList(employeeIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
package com.ruoyi.oa.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.ruoyi.oa.domain.vo.EmployeeSalaryRecordVo;
|
||||
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.OaEmployeeTemplateBindingVo;
|
||||
import com.ruoyi.oa.domain.bo.OaEmployeeTemplateBindingBo;
|
||||
import com.ruoyi.oa.service.IOaEmployeeTemplateBindingService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 员工模板绑定及月度发放记录
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-06-23
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/employeeTemplateBinding")
|
||||
public class OaEmployeeTemplateBindingController extends BaseController {
|
||||
|
||||
private final IOaEmployeeTemplateBindingService iOaEmployeeTemplateBindingService;
|
||||
|
||||
/**
|
||||
* 查询员工模板绑定及月度发放记录列表
|
||||
*/
|
||||
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<OaEmployeeTemplateBindingVo> list(OaEmployeeTemplateBindingBo bo, PageQuery pageQuery) {
|
||||
return iOaEmployeeTemplateBindingService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出员工模板绑定及月度发放记录列表
|
||||
*/
|
||||
|
||||
@Log(title = "员工模板绑定及月度发放记录", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(OaEmployeeTemplateBindingBo bo, HttpServletResponse response) {
|
||||
List<OaEmployeeTemplateBindingVo> list = iOaEmployeeTemplateBindingService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "员工模板绑定及月度发放记录", OaEmployeeTemplateBindingVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取员工模板绑定及月度发放记录详细信息
|
||||
*
|
||||
* @param bindingId 主键
|
||||
*/
|
||||
|
||||
@GetMapping("/{bindingId}")
|
||||
public R<OaEmployeeTemplateBindingVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long bindingId) {
|
||||
return R.ok(iOaEmployeeTemplateBindingService.queryById(bindingId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增员工模板绑定及月度发放记录
|
||||
*/
|
||||
|
||||
@Log(title = "员工模板绑定及月度发放记录", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaEmployeeTemplateBindingBo bo) {
|
||||
return toAjax(iOaEmployeeTemplateBindingService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改员工模板绑定及月度发放记录
|
||||
*/
|
||||
|
||||
@Log(title = "员工模板绑定及月度发放记录", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaEmployeeTemplateBindingBo bo) {
|
||||
return toAjax(iOaEmployeeTemplateBindingService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除员工模板绑定及月度发放记录
|
||||
*
|
||||
* @param bindingIds 主键串
|
||||
*/
|
||||
|
||||
@Log(title = "员工模板绑定及月度发放记录", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{bindingIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] bindingIds) {
|
||||
return toAjax(iOaEmployeeTemplateBindingService.deleteWithValidByIds(Arrays.asList(bindingIds), true));
|
||||
}
|
||||
|
||||
// 6. 薪资批量计算/一键复制上月
|
||||
@PostMapping("/calculate")
|
||||
public R<Void> calculateSalary(@RequestBody OaEmployeeTemplateBindingBo bo) {
|
||||
if (CollectionUtils.isEmpty(bo.getEmployeeIds())) {
|
||||
return R.fail("请选择员工");
|
||||
}
|
||||
if (bo.getPayYear() == null || bo.getPayMonth() == null) {
|
||||
return R.fail("请选择发薪年月");
|
||||
}
|
||||
if (bo.getDefaultInsuranceTemplateId() == null || bo.getDefaultSalaryTemplateId() == null) {
|
||||
return R.fail("请选择默认模板");
|
||||
}
|
||||
return toAjax(iOaEmployeeTemplateBindingService.calculateSalary(bo.getEmployeeIds(), bo.getPayYear(), bo.getPayMonth(), bo.getDefaultInsuranceTemplateId(), bo.getDefaultSalaryTemplateId()));
|
||||
}
|
||||
// 7. 批量确认发放
|
||||
@PostMapping("/finalize")
|
||||
public R<Void> finalizeSalary(@RequestBody List<Long> bindingIds) {
|
||||
return toAjax(iOaEmployeeTemplateBindingService.finalizeSalary(bindingIds));
|
||||
}
|
||||
// 8. 查询单员工历史发放记录
|
||||
@GetMapping("/history/{employeeId}")
|
||||
public R<List<EmployeeSalaryRecordVo>> history(@PathVariable Long employeeId) {
|
||||
return R.ok(iOaEmployeeTemplateBindingService.querySalaryHistory(employeeId));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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.OaInsuranceTemplateVo;
|
||||
import com.ruoyi.oa.domain.bo.OaInsuranceTemplateBo;
|
||||
import com.ruoyi.oa.service.IOaInsuranceTemplateService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 社保/公积金模板主
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-06-23
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/insuranceTemplate")
|
||||
public class OaInsuranceTemplateController extends BaseController {
|
||||
|
||||
private final IOaInsuranceTemplateService iOaInsuranceTemplateService;
|
||||
|
||||
/**
|
||||
* 查询社保/公积金模板主列表
|
||||
*/
|
||||
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<OaInsuranceTemplateVo> list(OaInsuranceTemplateBo bo, PageQuery pageQuery) {
|
||||
return iOaInsuranceTemplateService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出社保/公积金模板主列表
|
||||
*/
|
||||
|
||||
@Log(title = "社保/公积金模板主", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(OaInsuranceTemplateBo bo, HttpServletResponse response) {
|
||||
List<OaInsuranceTemplateVo> list = iOaInsuranceTemplateService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "社保/公积金模板主", OaInsuranceTemplateVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取社保/公积金模板主详细信息
|
||||
*
|
||||
* @param insuranceTemplateId 主键
|
||||
*/
|
||||
|
||||
@GetMapping("/{insuranceTemplateId}")
|
||||
public R<OaInsuranceTemplateVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long insuranceTemplateId) {
|
||||
return R.ok(iOaInsuranceTemplateService.queryById(insuranceTemplateId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增社保/公积金模板主
|
||||
*/
|
||||
|
||||
@Log(title = "社保/公积金模板主", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaInsuranceTemplateBo bo) {
|
||||
return toAjax(iOaInsuranceTemplateService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改社保/公积金模板主
|
||||
*/
|
||||
|
||||
@Log(title = "社保/公积金模板主", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaInsuranceTemplateBo bo) {
|
||||
return toAjax(iOaInsuranceTemplateService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除社保/公积金模板主
|
||||
*
|
||||
* @param insuranceTemplateIds 主键串
|
||||
*/
|
||||
|
||||
@Log(title = "社保/公积金模板主", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{insuranceTemplateIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] insuranceTemplateIds) {
|
||||
return toAjax(iOaInsuranceTemplateService.deleteWithValidByIds(Arrays.asList(insuranceTemplateIds), true));
|
||||
}
|
||||
}
|
||||
@@ -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.OaInsuranceTemplateDetailVo;
|
||||
import com.ruoyi.oa.domain.bo.OaInsuranceTemplateDetailBo;
|
||||
import com.ruoyi.oa.service.IOaInsuranceTemplateDetailService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 社保/公积金模板明细
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-06-23
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/insuranceTemplateDetail")
|
||||
public class OaInsuranceTemplateDetailController extends BaseController {
|
||||
|
||||
private final IOaInsuranceTemplateDetailService iOaInsuranceTemplateDetailService;
|
||||
|
||||
/**
|
||||
* 查询社保/公积金模板明细列表
|
||||
*/
|
||||
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<OaInsuranceTemplateDetailVo> list(OaInsuranceTemplateDetailBo bo, PageQuery pageQuery) {
|
||||
return iOaInsuranceTemplateDetailService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出社保/公积金模板明细列表
|
||||
*/
|
||||
|
||||
@Log(title = "社保/公积金模板明细", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(OaInsuranceTemplateDetailBo bo, HttpServletResponse response) {
|
||||
List<OaInsuranceTemplateDetailVo> list = iOaInsuranceTemplateDetailService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "社保/公积金模板明细", OaInsuranceTemplateDetailVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取社保/公积金模板明细详细信息
|
||||
*
|
||||
* @param insuranceDetailId 主键
|
||||
*/
|
||||
|
||||
@GetMapping("/{insuranceDetailId}")
|
||||
public R<OaInsuranceTemplateDetailVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long insuranceDetailId) {
|
||||
return R.ok(iOaInsuranceTemplateDetailService.queryById(insuranceDetailId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增社保/公积金模板明细
|
||||
*/
|
||||
|
||||
@Log(title = "社保/公积金模板明细", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaInsuranceTemplateDetailBo bo) {
|
||||
return toAjax(iOaInsuranceTemplateDetailService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改社保/公积金模板明细
|
||||
*/
|
||||
|
||||
@Log(title = "社保/公积金模板明细", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaInsuranceTemplateDetailBo bo) {
|
||||
return toAjax(iOaInsuranceTemplateDetailService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除社保/公积金模板明细
|
||||
*
|
||||
* @param insuranceDetailIds 主键串
|
||||
*/
|
||||
|
||||
@Log(title = "社保/公积金模板明细", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{insuranceDetailIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] insuranceDetailIds) {
|
||||
return toAjax(iOaInsuranceTemplateDetailService.deleteWithValidByIds(Arrays.asList(insuranceDetailIds), true));
|
||||
}
|
||||
}
|
||||
@@ -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.OaSalaryTemplateVo;
|
||||
import com.ruoyi.oa.domain.bo.OaSalaryTemplateBo;
|
||||
import com.ruoyi.oa.service.IOaSalaryTemplateService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 薪资模板主
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-06-23
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/salaryTemplate")
|
||||
public class OaSalaryTemplateController extends BaseController {
|
||||
|
||||
private final IOaSalaryTemplateService iOaSalaryTemplateService;
|
||||
|
||||
/**
|
||||
* 查询薪资模板主列表
|
||||
*/
|
||||
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<OaSalaryTemplateVo> list(OaSalaryTemplateBo bo, PageQuery pageQuery) {
|
||||
return iOaSalaryTemplateService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出薪资模板主列表
|
||||
*/
|
||||
|
||||
@Log(title = "薪资模板主", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(OaSalaryTemplateBo bo, HttpServletResponse response) {
|
||||
List<OaSalaryTemplateVo> list = iOaSalaryTemplateService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "薪资模板主", OaSalaryTemplateVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取薪资模板主详细信息
|
||||
*
|
||||
* @param salaryTemplateId 主键
|
||||
*/
|
||||
|
||||
@GetMapping("/{salaryTemplateId}")
|
||||
public R<OaSalaryTemplateVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long salaryTemplateId) {
|
||||
return R.ok(iOaSalaryTemplateService.queryById(salaryTemplateId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增薪资模板主
|
||||
*/
|
||||
|
||||
@Log(title = "薪资模板主", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaSalaryTemplateBo bo) {
|
||||
return toAjax(iOaSalaryTemplateService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改薪资模板主
|
||||
*/
|
||||
|
||||
@Log(title = "薪资模板主", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaSalaryTemplateBo bo) {
|
||||
return toAjax(iOaSalaryTemplateService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除薪资模板主
|
||||
*
|
||||
* @param salaryTemplateIds 主键串
|
||||
*/
|
||||
|
||||
@Log(title = "薪资模板主", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{salaryTemplateIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] salaryTemplateIds) {
|
||||
return toAjax(iOaSalaryTemplateService.deleteWithValidByIds(Arrays.asList(salaryTemplateIds), true));
|
||||
}
|
||||
}
|
||||
@@ -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.OaSalaryTemplateDetailVo;
|
||||
import com.ruoyi.oa.domain.bo.OaSalaryTemplateDetailBo;
|
||||
import com.ruoyi.oa.service.IOaSalaryTemplateDetailService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 薪资模板明细
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-06-23
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/salaryTemplateDetail")
|
||||
public class OaSalaryTemplateDetailController extends BaseController {
|
||||
|
||||
private final IOaSalaryTemplateDetailService iOaSalaryTemplateDetailService;
|
||||
|
||||
/**
|
||||
* 查询薪资模板明细列表
|
||||
*/
|
||||
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<OaSalaryTemplateDetailVo> list(OaSalaryTemplateDetailBo bo, PageQuery pageQuery) {
|
||||
return iOaSalaryTemplateDetailService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出薪资模板明细列表
|
||||
*/
|
||||
|
||||
@Log(title = "薪资模板明细", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(OaSalaryTemplateDetailBo bo, HttpServletResponse response) {
|
||||
List<OaSalaryTemplateDetailVo> list = iOaSalaryTemplateDetailService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "薪资模板明细", OaSalaryTemplateDetailVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取薪资模板明细详细信息
|
||||
*
|
||||
* @param salaryDetailId 主键
|
||||
*/
|
||||
|
||||
@GetMapping("/{salaryDetailId}")
|
||||
public R<OaSalaryTemplateDetailVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long salaryDetailId) {
|
||||
return R.ok(iOaSalaryTemplateDetailService.queryById(salaryDetailId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增薪资模板明细
|
||||
*/
|
||||
|
||||
@Log(title = "薪资模板明细", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaSalaryTemplateDetailBo bo) {
|
||||
return toAjax(iOaSalaryTemplateDetailService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改薪资模板明细
|
||||
*/
|
||||
|
||||
@Log(title = "薪资模板明细", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaSalaryTemplateDetailBo bo) {
|
||||
return toAjax(iOaSalaryTemplateDetailService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除薪资模板明细
|
||||
*
|
||||
* @param salaryDetailIds 主键串
|
||||
*/
|
||||
|
||||
@Log(title = "薪资模板明细", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{salaryDetailIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] salaryDetailIds) {
|
||||
return toAjax(iOaSalaryTemplateDetailService.deleteWithValidByIds(Arrays.asList(salaryDetailIds), true));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user