| | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | 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.attendance.vo.HrmAttendanceRuleImportExcelVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceRuleImportReqVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceRuleImportRespVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceRulePageReqVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceRuleRespVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceRuleSaveReqVO; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalTime; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "新增考勤规则") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance:create')") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:create')") |
| | | public CommonResult<Long> createAttendanceRule(@Valid @RequestBody HrmAttendanceRuleSaveReqVO createReqVO) { |
| | | return success(attendanceRuleService.createAttendanceRule(createReqVO)); |
| | | } |
| | | |
| | | @PutMapping("/update") |
| | | @Operation(summary = "更新考勤规则") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance:update')") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:update')") |
| | | public CommonResult<Boolean> updateAttendanceRule(@Valid @RequestBody HrmAttendanceRuleSaveReqVO updateReqVO) { |
| | | attendanceRuleService.updateAttendanceRule(updateReqVO); |
| | | return success(true); |
| | |
| | | @DeleteMapping("/delete") |
| | | @Operation(summary = "删除考勤规则") |
| | | @Parameter(name = "id", description = "规则ID", required = true) |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance:delete')") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:delete')") |
| | | public CommonResult<Boolean> deleteAttendanceRule(@RequestParam("id") Long id) { |
| | | attendanceRuleService.deleteAttendanceRule(id); |
| | | return success(true); |
| | |
| | | @GetMapping("/get") |
| | | @Operation(summary = "获得考勤规则") |
| | | @Parameter(name = "id", description = "规则ID", required = true) |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance:query')") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:query')") |
| | | public CommonResult<HrmAttendanceRuleRespVO> getAttendanceRule(@RequestParam("id") Long id) { |
| | | HrmAttendanceRuleDO attendanceRule = attendanceRuleService.getAttendanceRule(id); |
| | | if (attendanceRule == null) { |
| | |
| | | |
| | | @GetMapping("/page") |
| | | @Operation(summary = "获得考勤规则分页") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance:query')") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:query')") |
| | | public CommonResult<PageResult<HrmAttendanceRuleRespVO>> getAttendanceRulePage(@Valid HrmAttendanceRulePageReqVO pageReqVO) { |
| | | PageResult<HrmAttendanceRuleDO> pageResult = attendanceRuleService.getAttendanceRulePage(pageReqVO); |
| | | List<HrmAttendanceRuleRespVO> list = BeanUtils.toBean(pageResult.getList(), HrmAttendanceRuleRespVO.class); |
| | |
| | | |
| | | @GetMapping("/list") |
| | | @Operation(summary = "获得考勤规则列表") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance:query')") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:query')") |
| | | public CommonResult<List<HrmAttendanceRuleRespVO>> getAttendanceRuleList() { |
| | | List<HrmAttendanceRuleDO> list = attendanceRuleService.getAttendanceRuleList(); |
| | | return success(BeanUtils.toBean(list, HrmAttendanceRuleRespVO.class)); |
| | |
| | | |
| | | @GetMapping("/export-excel") |
| | | @Operation(summary = "导出考勤规则 Excel") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance:export')") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:export')") |
| | | @ApiAccessLog(operateType = EXPORT) |
| | | public void exportAttendanceRuleExcel(@Valid HrmAttendanceRulePageReqVO pageReqVO, |
| | | HttpServletResponse response) throws IOException { |
| | |
| | | ExcelUtils.write(response, "考勤规则.xls", "数据", HrmAttendanceRuleRespVO.class, data); |
| | | } |
| | | |
| | | @GetMapping("/get-import-template") |
| | | @Operation(summary = "获得导入考勤规则模板") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:import')") |
| | | public void importTemplate(HttpServletResponse response) throws IOException { |
| | | // 手动创建导出 demo |
| | | List<HrmAttendanceRuleImportExcelVO> list = Collections.singletonList( |
| | | HrmAttendanceRuleImportExcelVO.builder().name("标准考勤规则").deptName("研发部") |
| | | .workStartTime(LocalTime.of(9, 0)).workEndTime(LocalTime.of(18, 0)) |
| | | .lateAllowMinutes(10).earlyAllowMinutes(10).overtimeThreshold(BigDecimal.ONE) |
| | | .status(0).remark("").build() |
| | | ); |
| | | // 输出 |
| | | ExcelUtils.write(response, "考勤规则导入模板.xls", "考勤规则列表", HrmAttendanceRuleImportExcelVO.class, list); |
| | | } |
| | | |
| | | @PostMapping("/import") |
| | | @Operation(summary = "导入考勤规则") |
| | | @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:import')") |
| | | public CommonResult<HrmAttendanceRuleImportRespVO> importExcel(@Valid HrmAttendanceRuleImportReqVO importReqVO) |
| | | throws Exception { |
| | | List<HrmAttendanceRuleImportExcelVO> list = ExcelUtils.read(importReqVO.getFile(), HrmAttendanceRuleImportExcelVO.class); |
| | | return success(attendanceRuleService.importAttendanceRuleList(list, importReqVO)); |
| | | } |
| | | } |