Commit 9ab1aedddcf829608d13e7cfe9483629d51f3d94
1 parent
197be1c8
feat: 新增按天查询签到情况
Showing
2 changed files
with
39 additions
and
0 deletions
Bsth-admin/src/main/java/com/ruoyi/controller/ReportController.java
| ... | ... | @@ -92,4 +92,10 @@ public class ReportController { |
| 92 | 92 | public Result<PersonSignDataResponseVo> listReportMonth(@PathVariable("month") String month, HttpServletRequest request) { |
| 93 | 93 | return reportService.listReportMonth(month, request); |
| 94 | 94 | } |
| 95 | + | |
| 96 | + @ApiOperation("提供给人事用接口(获取当天所有签到记录)") | |
| 97 | + @GetMapping("/list/day/{date}") | |
| 98 | + public Result<PersonSignDataResponseVo> listReportDay(@PathVariable("date") String date, HttpServletRequest request) { | |
| 99 | + return reportService.listReportDay(date, request); | |
| 100 | + } | |
| 95 | 101 | } | ... | ... |
Bsth-admin/src/main/java/com/ruoyi/service/ReportService.java
| ... | ... | @@ -345,4 +345,37 @@ public class ReportService { |
| 345 | 345 | |
| 346 | 346 | return matcher.matches(); |
| 347 | 347 | } |
| 348 | + | |
| 349 | + public Result<PersonSignDataResponseVo> listReportDay(String date, HttpServletRequest request) { | |
| 350 | + boolean validateDayDate = validateDayDate(date); | |
| 351 | + String header = request.getHeader("X-TOKEN-AUTHORIZATION"); | |
| 352 | + if (!PERSONNEL_API_KEY.equals(header)) { | |
| 353 | + return Result.ERROR(ResultCode.CODE_401, "X-TOKEN-AUTHORIZATION value error"); | |
| 354 | + } | |
| 355 | + if (!validateDayDate) { | |
| 356 | + return Result.ERROR(ResultCode.CODE_400, "Parameter format error"); | |
| 357 | + } | |
| 358 | + ReportViewRequestVo vo = new ReportViewRequestVo(); | |
| 359 | + vo.setDate(date); | |
| 360 | + List<ExportReportViewResponseVo> responseVos = new ArrayList<>(10000); | |
| 361 | + List<ExportReportViewResponseVo> dayReportTableResponseVo = getDayReportTableResponseVo(date); | |
| 362 | + responseVos.addAll(dayReportTableResponseVo); | |
| 363 | + PersonSignDataResponseVo responseVo = new PersonSignDataResponseVo(); | |
| 364 | + handleResponseByDay(responseVos, responseVo, vo.getDate()); | |
| 365 | + return Result.OK(responseVo); | |
| 366 | + } | |
| 367 | + | |
| 368 | + /** | |
| 369 | + * yyyy-MM 格式的正则表达式 | |
| 370 | + */ | |
| 371 | + public static boolean validateDayDate(String input) { | |
| 372 | + String regex = "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|\"+\n" + | |
| 373 | + "\"((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|\"+\n" + | |
| 374 | + "\"((0[48]|[2468][048]|[3579][26])00))-02-29)$"; | |
| 375 | + | |
| 376 | + Pattern pattern = Pattern.compile(regex); | |
| 377 | + Matcher matcher = pattern.matcher(input); | |
| 378 | + | |
| 379 | + return matcher.matches(); | |
| 380 | + } | |
| 348 | 381 | } | ... | ... |