liu 2 vuotta sitten
vanhempi
commit
a6ec2d0307

+ 9 - 0
src/main/java/com/template/api/SmartAttendanceControllerAPI.java

@@ -103,4 +103,13 @@ public interface SmartAttendanceControllerAPI {
     @ApiOperation(value = "大屏——请假数据展示", notes = "大屏——请假数据展示", httpMethod = "GET")
     @ApiOperation(value = "大屏——请假数据展示", notes = "大屏——请假数据展示", httpMethod = "GET")
     CommonResult askForLeaveScreenPage(@RequestParam int currentPage, @RequestParam int pageCount,String cardNo,String ifVerification);
     CommonResult askForLeaveScreenPage(@RequestParam int currentPage, @RequestParam int pageCount,String cardNo,String ifVerification);
 
 
+    /**
+     * 领导驾驶舱——考勤管理——学生考勤
+     * @param dateTime
+     * @return
+     */
+    @GetMapping(value = "/studentHistoricalAttendance")
+    @ApiOperation(value = "学生考勤统计", notes = "学生考勤统计", httpMethod = "GET")
+    CommonResult studentHistoricalAttendance(@RequestParam String dateTime);
+
 }
 }

+ 50 - 0
src/main/java/com/template/controller/SmartAttendanceController.java

@@ -472,6 +472,56 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
         return CommonResult.ok(result);
         return CommonResult.ok(result);
     }
     }
 
 
+    @Override
+    @DESRespondSecret(validated = true)
+    public CommonResult studentHistoricalAttendance(String dateTime) {
+        LocalDateTime now = LocalDateTime.now();
+        Date startTime = null;
+        Date endTime= null;
+        HistoricalAttendanceVo historicalAttendanceVo = new HistoricalAttendanceVo();
+        if ("1".equals(dateTime)) {
+//        本学期
+            SmartSemester smartSemester = smartSemesterService.getSemester(now);
+            if (ObjectUtils.isEmpty(smartSemester)) {
+                return CommonResult.ok(historicalAttendanceVo);
+            }
+            startTime = smartSemester.getStartTime();
+            endTime = smartSemester.getEndTime();
+            System.out.println("smartSemester = " + smartSemester);
+
+        } else if ("2".equals(dateTime)) {
+//        近1个月
+            LocalDateTime localDateTime = now.minusMonths(1);
+            startTime = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
+            endTime = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());
+
+        } else if ("3".equals(dateTime)) {
+//        近一周
+            LocalDateTime localDateTime = now.minusDays(7);
+            startTime = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
+            endTime = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());
+        }
+
+        List<Integer> statusList=smartAttendanceService.getGroup();
+
+        for (Integer status : statusList) {
+           Integer count =smartAttendanceService.getStudentHistoricalAttendance(status,startTime,endTime);
+            if (0==status) {
+                historicalAttendanceVo.setPunctuality(count);
+            }else if (1==status){
+                historicalAttendanceVo.setBeLate(count);
+            }else if (3==status){
+                historicalAttendanceVo.setNotClockingIn(count);
+            }else if (6==status){
+                historicalAttendanceVo.setAskForLeave(count);
+            }else if (7==status){
+                historicalAttendanceVo.setClockOut(count);
+            }
+        }
+
+        return CommonResult.ok(historicalAttendanceVo);
+    }
+
     public PersonalLeaveListSchoolPeriodRecordsResult getXwAttendance(String startDate, String endDate, Integer currentPage, Integer pageSize) {
     public PersonalLeaveListSchoolPeriodRecordsResult getXwAttendance(String startDate, String endDate, Integer currentPage, Integer pageSize) {
         //初始化客户端
         //初始化客户端
         SeewoClient seewoClient = new DefaultSeewoClient(new Account(seewoConfig.getAppId(), seewoConfig.getAppSecret()));
         SeewoClient seewoClient = new DefaultSeewoClient(new Account(seewoConfig.getAppId(), seewoConfig.getAppSecret()));

+ 1 - 0
src/main/java/com/template/services/SmartAttendanceService.java

@@ -44,4 +44,5 @@ public interface SmartAttendanceService extends IService<SmartAttendance> {
 
 
     PageUtils<AskForLeaveScreenVo> askForLeaveScreenPage(int currentPage, int pageCount, String cardNo, String ifVerification);
     PageUtils<AskForLeaveScreenVo> askForLeaveScreenPage(int currentPage, int pageCount, String cardNo, String ifVerification);
 
 
+    Integer getStudentHistoricalAttendance(Integer status, Date startTime, Date endTime);
 }
 }

+ 18 - 1
src/main/java/com/template/services/impl/SmartAttendanceServiceImpl.java

@@ -77,7 +77,11 @@ public class SmartAttendanceServiceImpl extends ServiceImpl<SmartAttendanceMappe
     @Override
     @Override
     public List<SmartAttendance> getHistoricalAttendance(Integer userId,Integer status,Date startTime, Date endTime) {
     public List<SmartAttendance> getHistoricalAttendance(Integer userId,Integer status,Date startTime, Date endTime) {
         LambdaQueryWrapper<SmartAttendance> queryWrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<SmartAttendance> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.between(SmartAttendance::getAttendTime,startTime,endTime);
+        if (6==status) {
+            queryWrapper.between(SmartAttendance::getInitiateTime,startTime,endTime);
+        }else {
+            queryWrapper.between(SmartAttendance::getAttendTime,startTime,endTime);
+        }
         queryWrapper.eq(SmartAttendance::getStatus,status);
         queryWrapper.eq(SmartAttendance::getStatus,status);
         queryWrapper.eq(SmartAttendance::getUserId,userId);
         queryWrapper.eq(SmartAttendance::getUserId,userId);
         List<SmartAttendance> result = smartAttendanceMapper.selectList(queryWrapper);
         List<SmartAttendance> result = smartAttendanceMapper.selectList(queryWrapper);
@@ -139,4 +143,17 @@ public class SmartAttendanceServiceImpl extends ServiceImpl<SmartAttendanceMappe
         IPage<AskForLeaveScreenVo> datas = smartAttendanceMapper.askForLeaveScreenPage(page,cardNo,ifVerification);
         IPage<AskForLeaveScreenVo> datas = smartAttendanceMapper.askForLeaveScreenPage(page,cardNo,ifVerification);
         return new PageUtils(datas);
         return new PageUtils(datas);
     }
     }
+
+    @Override
+    public Integer getStudentHistoricalAttendance(Integer status, Date startTime, Date endTime) {
+        LambdaQueryWrapper<SmartAttendance> queryWrapper = new LambdaQueryWrapper<>();
+        if (6==status) {
+            queryWrapper.between(SmartAttendance::getInitiateTime,startTime,endTime);
+        }else {
+            queryWrapper.between(SmartAttendance::getAttendTime,startTime,endTime);
+        }
+        queryWrapper.eq(SmartAttendance::getStatus,status);
+        Integer count = this.count(queryWrapper);
+        return count;
+    }
 }
 }