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,4 +92,10 @@ public class ReportController { | ||
| 92 | public Result<PersonSignDataResponseVo> listReportMonth(@PathVariable("month") String month, HttpServletRequest request) { | 92 | public Result<PersonSignDataResponseVo> listReportMonth(@PathVariable("month") String month, HttpServletRequest request) { |
| 93 | return reportService.listReportMonth(month, request); | 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,4 +345,37 @@ public class ReportService { | ||
| 345 | 345 | ||
| 346 | return matcher.matches(); | 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 | } |