gaoluyang
12 小时以前 ef3cbc1c6882786e8218b08be3e52ea44587f03b
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/HrmLeaveApplicationController.java
@@ -6,6 +6,9 @@
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmLeaveApplicationImportExcelVO;
import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmLeaveApplicationImportReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmLeaveApplicationImportRespVO;
import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmLeaveApplicationPageReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmLeaveApplicationRespVO;
import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmLeaveApplicationSaveReqVO;
@@ -21,6 +24,8 @@
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
@@ -94,6 +99,35 @@
        return success(leaveApplicationService.getApproveProcessDefinitionList());
    }
    @GetMapping("/get-import-template")
    @Operation(summary = "下载请假申请导入模板")
    @PreAuthorize("@ss.hasPermission('hrm:leave:import')")
    public void getImportTemplate(HttpServletResponse response) throws IOException {
        List<HrmLeaveApplicationImportExcelVO> list = List.of(
                HrmLeaveApplicationImportExcelVO.builder()
                        .phone("13800138000")
                        .leaveType("年假")
                        .startTime(LocalDateTime.of(2026, 10, 8, 9, 0, 0))
                        .endTime(LocalDateTime.of(2026, 10, 8, 18, 0, 0))
                        .duration(new BigDecimal("1"))
                        .reason("家中有事")
                        .remark("示例行,导入前请删除")
                        .build()
        );
        ExcelUtils.write(response, "请假申请导入模板.xls", "请假申请列表",
                HrmLeaveApplicationImportExcelVO.class, list);
    }
    @PostMapping("/import")
    @Operation(summary = "批量导入请假申请")
    @PreAuthorize("@ss.hasPermission('hrm:leave:import')")
    public CommonResult<HrmLeaveApplicationImportRespVO> importLeaveApplication(
            @Valid HrmLeaveApplicationImportReqVO importReqVO) throws IOException {
        List<HrmLeaveApplicationImportExcelVO> list = ExcelUtils.read(
                importReqVO.getFile(), HrmLeaveApplicationImportExcelVO.class);
        return success(leaveApplicationService.importLeaveApplicationList(list));
    }
    @GetMapping("/export-excel")
    @Operation(summary = "导出请假申请 Excel")
    @PreAuthorize("@ss.hasPermission('hrm:leave:export')")