Commit 9ab1aedddcf829608d13e7cfe9483629d51f3d94

Authored by guzijian
1 parent 197be1c8

feat: 新增按天查询签到情况

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 }
... ...