From 76bf0caef9a6f4b7daae7e7b1d09b0c9044aebef Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期一, 24 八月 2026 10:07:33 +0800
Subject: [PATCH] 新增请假扣款配置设置
---
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmLeaveTypeConfigServiceImpl.java | 16 ++++++++
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmLeaveTypeConfigController.java | 25 +++++++++++-
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/vo/HrmLeaveTypeConfigCreateReqVO.java | 32 ++++++++++++++++
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmLeaveTypeConfigService.java | 10 +++++
yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java | 1
5 files changed, 81 insertions(+), 3 deletions(-)
diff --git a/yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java b/yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java
index c845909..cd8b6d8 100644
--- a/yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java
+++ b/yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java
@@ -102,6 +102,7 @@
ErrorCode EMPLOYEE_SOCIAL_SECURITY_NOT_EXISTS = new ErrorCode(1_030_005_009, "鍛樺伐绀句繚鍏Н閲戞。妗堜笉瀛樺湪");
ErrorCode SOCIAL_SECURITY_SCHEME_NOT_EXISTS = new ErrorCode(1_030_005_010, "绀句繚鍏Н閲戞柟妗堜笉瀛樺湪");
ErrorCode LEAVE_TYPE_CONFIG_NOT_EXISTS = new ErrorCode(1_030_005_011, "璇峰亣绫诲瀷鎵f閰嶇疆涓嶅瓨鍦�");
+ ErrorCode LEAVE_TYPE_CONFIG_TYPE_EXISTS = new ErrorCode(1_030_005_022, "璇ヨ鍋囩被鍨嬫墸娆鹃厤缃凡瀛樺湪");
ErrorCode SALARY_PAYMENT_EXISTS = new ErrorCode(1_030_005_012, "璇ュ懆鏈熻柂璧勫彂鏀惧彴璐﹀凡瀛樺湪");
ErrorCode SALARY_CALCULATION_NO_CONFIRMED = new ErrorCode(1_030_005_013, "璇ュ懆鏈熸病鏈夊凡纭鐨勮柂閰牳绠楄褰�");
ErrorCode SALARY_PAYMENT_ALREADY_PAY = new ErrorCode(1_030_005_014, "钖祫鍙戞斁鍙拌处宸插彂鏀撅紝璇峰嬁閲嶅鎿嶄綔");
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmLeaveTypeConfigController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmLeaveTypeConfigController.java
index bc1898b..5c1af32 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmLeaveTypeConfigController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmLeaveTypeConfigController.java
@@ -2,6 +2,7 @@
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.hrm.controller.admin.salary.vo.HrmLeaveTypeConfigCreateReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.salary.vo.HrmLeaveTypeConfigRespVO;
import cn.iocoder.yudao.module.hrm.controller.admin.salary.vo.HrmLeaveTypeConfigSaveReqVO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.salary.HrmLeaveTypeConfigDO;
@@ -30,7 +31,7 @@
@GetMapping("/list")
@Operation(summary = "鑾峰彇鎵�鏈夎鍋囩被鍨嬮厤缃垪琛�")
- @PreAuthorize("@ss.hasPermission('hrm:salary:query')")
+ @PreAuthorize("@ss.hasPermission('hrm:leave-type-config:query')")
public CommonResult<List<HrmLeaveTypeConfigRespVO>> getLeaveTypeConfigList() {
List<HrmLeaveTypeConfigDO> list = leaveTypeConfigService.getLeaveTypeConfigList();
return success(BeanUtils.toBean(list, HrmLeaveTypeConfigRespVO.class));
@@ -39,19 +40,37 @@
@GetMapping("/get")
@Operation(summary = "鑾峰彇璇峰亣绫诲瀷閰嶇疆")
@Parameter(name = "leaveType", description = "璇峰亣绫诲瀷", required = true, example = "1")
- @PreAuthorize("@ss.hasPermission('hrm:salary:query')")
+ @PreAuthorize("@ss.hasPermission('hrm:leave-type-config:query')")
public CommonResult<HrmLeaveTypeConfigRespVO> getLeaveTypeConfig(@RequestParam("leaveType") Integer leaveType) {
HrmLeaveTypeConfigDO config = leaveTypeConfigService.getLeaveTypeConfig(leaveType);
return success(BeanUtils.toBean(config, HrmLeaveTypeConfigRespVO.class));
}
+ @PostMapping("/create")
+ @Operation(summary = "鏂板璇峰亣绫诲瀷閰嶇疆")
+ @PreAuthorize("@ss.hasPermission('hrm:leave-type-config:create')")
+ public CommonResult<Long> createLeaveTypeConfig(@Valid @RequestBody HrmLeaveTypeConfigCreateReqVO createReqVO) {
+ HrmLeaveTypeConfigDO config = BeanUtils.toBean(createReqVO, HrmLeaveTypeConfigDO.class);
+ leaveTypeConfigService.createLeaveTypeConfig(config);
+ return success(config.getId());
+ }
+
@PutMapping("/update")
@Operation(summary = "鏇存柊璇峰亣绫诲瀷閰嶇疆")
- @PreAuthorize("@ss.hasPermission('hrm:salary:update')")
+ @PreAuthorize("@ss.hasPermission('hrm:leave-type-config:update')")
public CommonResult<Boolean> updateLeaveTypeConfig(@Valid @RequestBody HrmLeaveTypeConfigSaveReqVO updateReqVO) {
HrmLeaveTypeConfigDO config = BeanUtils.toBean(updateReqVO, HrmLeaveTypeConfigDO.class);
leaveTypeConfigService.updateLeaveTypeConfig(config);
return success(true);
}
+ @DeleteMapping("/delete")
+ @Operation(summary = "鍒犻櫎璇峰亣绫诲瀷閰嶇疆")
+ @Parameter(name = "id", description = "閰嶇疆ID", required = true)
+ @PreAuthorize("@ss.hasPermission('hrm:leave-type-config:delete')")
+ public CommonResult<Boolean> deleteLeaveTypeConfig(@RequestParam("id") Long id) {
+ leaveTypeConfigService.deleteLeaveTypeConfig(id);
+ return success(true);
+ }
+
}
\ No newline at end of file
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/vo/HrmLeaveTypeConfigCreateReqVO.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/vo/HrmLeaveTypeConfigCreateReqVO.java
new file mode 100644
index 0000000..1e7bb89
--- /dev/null
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/vo/HrmLeaveTypeConfigCreateReqVO.java
@@ -0,0 +1,32 @@
+package cn.iocoder.yudao.module.hrm.controller.admin.salary.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "绠$悊鍚庡彴 - 璇峰亣绫诲瀷鎵f閰嶇疆鏂板 Request VO")
+@Data
+public class HrmLeaveTypeConfigCreateReqVO {
+
+ @Schema(description = "璇峰亣绫诲瀷锛�1-浜嬪亣, 2-鐥呭亣, 3-骞村亣, 4-濠氬亣, 5-浜у亣, 6-涓у亣", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @NotNull(message = "璇峰亣绫诲瀷涓嶈兘涓虹┖")
+ private Integer leaveType;
+
+ @Schema(description = "绫诲瀷鍚嶇О", requiredMode = Schema.RequiredMode.REQUIRED, example = "浜嬪亣")
+ @NotBlank(message = "绫诲瀷鍚嶇О涓嶈兘涓虹┖")
+ private String name;
+
+ @Schema(description = "鎵f姣斾緥锛�0-1涔嬮棿锛屽0.5琛ㄧず鎵�50%锛�", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.5")
+ @NotNull(message = "鎵f姣斾緥涓嶈兘涓虹┖")
+ private BigDecimal deductionRatio;
+
+ @Schema(description = "澶囨敞")
+ private String remark;
+
+ @Schema(description = "鐘舵�侊細0-鍚敤, 1-绂佺敤")
+ private Integer status;
+
+}
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmLeaveTypeConfigService.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmLeaveTypeConfigService.java
index c73c853..fbcfda7 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmLeaveTypeConfigService.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmLeaveTypeConfigService.java
@@ -22,8 +22,18 @@
HrmLeaveTypeConfigDO getLeaveTypeConfig(Integer leaveType);
/**
+ * 鏂板璇峰亣绫诲瀷閰嶇疆
+ */
+ void createLeaveTypeConfig(HrmLeaveTypeConfigDO config);
+
+ /**
* 鏇存柊璇峰亣绫诲瀷閰嶇疆
*/
void updateLeaveTypeConfig(HrmLeaveTypeConfigDO config);
+ /**
+ * 鍒犻櫎璇峰亣绫诲瀷閰嶇疆
+ */
+ void deleteLeaveTypeConfig(Long id);
+
}
\ No newline at end of file
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmLeaveTypeConfigServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmLeaveTypeConfigServiceImpl.java
index 4374c44..0b48e62 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmLeaveTypeConfigServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmLeaveTypeConfigServiceImpl.java
@@ -10,6 +10,7 @@
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.hrm.enums.ErrorCodeConstants.LEAVE_TYPE_CONFIG_NOT_EXISTS;
+import static cn.iocoder.yudao.module.hrm.enums.ErrorCodeConstants.LEAVE_TYPE_CONFIG_TYPE_EXISTS;
/**
* 璇峰亣绫诲瀷鎵f閰嶇疆 Service 瀹炵幇绫�
@@ -34,11 +35,26 @@
}
@Override
+ public void createLeaveTypeConfig(HrmLeaveTypeConfigDO config) {
+ // 鏍¢獙鍚屼竴璇峰亣绫诲瀷鍙厑璁稿瓨鍦ㄤ竴鏉¢厤缃�
+ if (leaveTypeConfigMapper.selectCount(HrmLeaveTypeConfigDO::getLeaveType, config.getLeaveType()) > 0) {
+ throw exception(LEAVE_TYPE_CONFIG_TYPE_EXISTS);
+ }
+ leaveTypeConfigMapper.insert(config);
+ }
+
+ @Override
public void updateLeaveTypeConfig(HrmLeaveTypeConfigDO config) {
validateLeaveTypeConfigExists(config.getId());
leaveTypeConfigMapper.updateById(config);
}
+ @Override
+ public void deleteLeaveTypeConfig(Long id) {
+ validateLeaveTypeConfigExists(id);
+ leaveTypeConfigMapper.deleteById(id);
+ }
+
private void validateLeaveTypeConfigExists(Long id) {
if (leaveTypeConfigMapper.selectById(id) == null) {
throw exception(LEAVE_TYPE_CONFIG_NOT_EXISTS);
--
Gitblit v1.9.3