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, "请åç±»åæ£æ¬¾é ç½®ä¸åå¨"); 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, "èªèµåæ¾å°è´¦å·²åæ¾ï¼è¯·å¿é夿ä½"); 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); } } 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 = "管çåå° - 请åç±»åæ£æ¬¾é ç½®æ°å¢ 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 = "æ£æ¬¾æ¯ä¾ï¼0-1ä¹é´ï¼å¦0.5表示æ£50%ï¼", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.5") @NotNull(message = "æ£æ¬¾æ¯ä¾ä¸è½ä¸ºç©º") private BigDecimal deductionRatio; @Schema(description = "夿³¨") private String remark; @Schema(description = "ç¶æï¼0-å¯ç¨, 1-ç¦ç¨") private Integer status; } 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); } 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; /** * 请åç±»åæ£æ¬¾é ç½® 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);