package cn.iocoder.yudao.module.hrm.controller.admin.salary; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.hrm.controller.admin.salary.vo.HrmLeaveTypeConfigImportExcelVO; import cn.iocoder.yudao.module.hrm.controller.admin.salary.vo.HrmLeaveTypeConfigImportReqVO; import cn.iocoder.yudao.module.hrm.controller.admin.salary.vo.HrmLeaveTypeConfigImportRespVO; 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; import cn.iocoder.yudao.module.hrm.service.salary.HrmLeaveTypeConfigService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.math.BigDecimal; import java.util.Arrays; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - HRM 请假类型扣款配置") @RestController @RequestMapping("/hrm/leave-type-config") @Validated public class HrmLeaveTypeConfigController { @Resource private HrmLeaveTypeConfigService leaveTypeConfigService; @GetMapping("/list") @Operation(summary = "获取所有请假类型配置列表") public CommonResult> getLeaveTypeConfigList() { List list = leaveTypeConfigService.getLeaveTypeConfigList(); return success(BeanUtils.toBean(list, HrmLeaveTypeConfigRespVO.class)); } @GetMapping("/get") @Operation(summary = "获取请假类型配置") @Parameter(name = "leaveType", description = "请假类型", required = true, example = "1") public CommonResult getLeaveTypeConfig(@RequestParam("leaveType") Integer leaveType) { HrmLeaveTypeConfigDO config = leaveTypeConfigService.getLeaveTypeConfig(leaveType); return success(BeanUtils.toBean(config, HrmLeaveTypeConfigRespVO.class)); } @PutMapping("/update") @Operation(summary = "更新请假类型配置") @PreAuthorize("@ss.hasPermission('hrm:salary:update')") public CommonResult updateLeaveTypeConfig(@Valid @RequestBody HrmLeaveTypeConfigSaveReqVO updateReqVO) { HrmLeaveTypeConfigDO config = BeanUtils.toBean(updateReqVO, HrmLeaveTypeConfigDO.class); leaveTypeConfigService.updateLeaveTypeConfig(config); return success(true); } @GetMapping("/get-import-template") @Operation(summary = "获得导入请假类型扣款配置模板") public void importTemplate(HttpServletResponse response) throws IOException { // 手动创建导出 demo List list = Arrays.asList( HrmLeaveTypeConfigImportExcelVO.builder().leaveType(1).name("事假") .deductionRatio(new BigDecimal("1")).status(0).remark("").build() ); // 输出 ExcelUtils.write(response, "请假类型扣款配置导入模板.xls", "请假类型扣款配置列表", HrmLeaveTypeConfigImportExcelVO.class, list); } @PostMapping("/import") @Operation(summary = "导入请假类型扣款配置") @PreAuthorize("@ss.hasPermission('hrm:leave-type-config:import')") public CommonResult importExcel(@Valid HrmLeaveTypeConfigImportReqVO importReqVO) throws Exception { List list = ExcelUtils.read(importReqVO.getFile(), HrmLeaveTypeConfigImportExcelVO.class); return success(leaveTypeConfigService.importLeaveTypeConfigList(list, importReqVO)); } }