| | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| | | 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; |
| | | import cn.iocoder.yudao.module.hrm.service.approval.HrmLeaveApplicationService; |
| | | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| | | import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | |
| | | 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; |
| | | |
| | |
| | | |
| | | @Resource |
| | | private HrmLeaveApplicationService leaveApplicationService; |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "创建请假申请") |
| | |
| | | @PreAuthorize("@ss.hasPermission('hrm:leave:submit')") |
| | | public CommonResult<Boolean> submitLeaveApplication(@RequestParam("id") Long id, |
| | | @RequestParam("processDefinitionKey") String processDefinitionKey) { |
| | | // 获取当前用户ID |
| | | AdminUserRespDTO user = adminUserApi.getUser(1L); // TODO: 获取当前登录用户 |
| | | leaveApplicationService.submitLeaveApplication(id, processDefinitionKey, user.getId()); |
| | | Long userId = SecurityFrameworkUtils.getLoginUserId(); |
| | | leaveApplicationService.submitLeaveApplication(id, processDefinitionKey, userId); |
| | | return success(true); |
| | | } |
| | | |
| | |
| | | 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')") |