liu před 2 roky
rodič
revize
3cc825d934
46 změnil soubory, kde provedl 1021 přidání a 38 odebrání
  1. 7 0
      src/main/java/com/template/api/SmartAccessControllerAPI.java
  2. 6 5
      src/main/java/com/template/api/SmartAskForLeaveConfigControllerAPI.java
  3. 4 1
      src/main/java/com/template/api/SmartAttendanceControllerAPI.java
  4. 5 0
      src/main/java/com/template/api/SmartClassControllerAPI.java
  5. 7 0
      src/main/java/com/template/api/SmartVisitorControllerAPI.java
  6. 20 0
      src/main/java/com/template/api/SmartVisitorParentsConfigControllerAPI.java
  7. 20 0
      src/main/java/com/template/api/SmartVisitorRestsConfigControllerAPI.java
  8. 21 0
      src/main/java/com/template/controller/SmartAccessController.java
  9. 29 1
      src/main/java/com/template/controller/SmartAskForLeaveConfigController.java
  10. 30 9
      src/main/java/com/template/controller/SmartAttendanceController.java
  11. 11 0
      src/main/java/com/template/controller/SmartClassController.java
  12. 44 16
      src/main/java/com/template/controller/SmartFaceDiscernController.java
  13. 8 0
      src/main/java/com/template/controller/SmartVisitorController.java
  14. 55 0
      src/main/java/com/template/controller/SmartVisitorParentsConfigController.java
  15. 50 0
      src/main/java/com/template/controller/SmartVisitorRestsConfigController.java
  16. 16 0
      src/main/java/com/template/mapper/SmartAccessMapper.java
  17. 4 1
      src/main/java/com/template/mapper/SmartAttendanceMapper.java
  18. 8 0
      src/main/java/com/template/mapper/SmartClassMapper.java
  19. 6 0
      src/main/java/com/template/mapper/SmartVisitorMapper.java
  20. 23 0
      src/main/java/com/template/mapper/SmartVisitorParentsConfigMapper.java
  21. 18 0
      src/main/java/com/template/mapper/SmartVisitorRestsConfigMapper.java
  22. 12 0
      src/main/java/com/template/model/dto/AskConfigDto.java
  23. 85 0
      src/main/java/com/template/model/pojo/SmartAccess.java
  24. 1 1
      src/main/java/com/template/model/pojo/SmartAskForLeaveConfig.java
  25. 83 0
      src/main/java/com/template/model/pojo/SmartVisitorParentsConfig.java
  26. 64 0
      src/main/java/com/template/model/pojo/SmartVisitorRestsConfig.java
  27. 36 0
      src/main/java/com/template/model/vo/SmartAttendanceVo.java
  28. 10 0
      src/main/java/com/template/model/vo/SmartClassVo.java
  29. 45 0
      src/main/java/com/template/model/vo/SmartVisitorParentsConfigVo.java
  30. 21 0
      src/main/java/com/template/services/SmartAccessService.java
  31. 1 0
      src/main/java/com/template/services/SmartAskForLeaveConfigService.java
  32. 4 1
      src/main/java/com/template/services/SmartAttendanceService.java
  33. 5 0
      src/main/java/com/template/services/SmartClassService.java
  34. 20 0
      src/main/java/com/template/services/SmartVisitorParentsConfigService.java
  35. 16 0
      src/main/java/com/template/services/SmartVisitorRestsConfigService.java
  36. 3 0
      src/main/java/com/template/services/SmartVisitorService.java
  37. 35 0
      src/main/java/com/template/services/impl/SmartAccessServiceImpl.java
  38. 15 0
      src/main/java/com/template/services/impl/SmartAskForLeaveConfigServiceImpl.java
  39. 10 2
      src/main/java/com/template/services/impl/SmartAttendanceServiceImpl.java
  40. 13 0
      src/main/java/com/template/services/impl/SmartClassServiceImpl.java
  41. 39 0
      src/main/java/com/template/services/impl/SmartVisitorParentsConfigServiceImpl.java
  42. 20 0
      src/main/java/com/template/services/impl/SmartVisitorRestsConfigServiceImpl.java
  43. 9 0
      src/main/java/com/template/services/impl/SmartVisitorServiceImpl.java
  44. 42 1
      src/main/resources/mapper/template/SmartAttendanceMapper.xml
  45. 16 0
      src/main/resources/mapper/template/SmartClassMapper.xml
  46. 24 0
      src/main/resources/mapper/template/SmartVisitorMapper.xml

+ 7 - 0
src/main/java/com/template/api/SmartAccessControllerAPI.java

@@ -0,0 +1,7 @@
+package com.template.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@RequestMapping("/api/smartAccess")
+public interface SmartAccessControllerAPI {
+}

+ 6 - 5
src/main/java/com/template/api/SmartAskForLeaveConfigControllerAPI.java

@@ -1,18 +1,19 @@
 package com.template.api;
 
+import com.template.model.dto.AskConfigDto;
 import com.template.model.result.CommonResult;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
 
-@RequestMapping("/auto/smartAskForLeaveConfig")
+@RequestMapping("/api/smartAskForLeaveConfig")
 public interface SmartAskForLeaveConfigControllerAPI {
 
     @GetMapping(value = "/list")
     @ApiOperation(value = "请假配置展示", notes = "请假配置展示", httpMethod = "GET")
     CommonResult list();
 
-
+    @PostMapping(value = "/update")
+    @ApiOperation(value = "请假配置修改", notes = "请假配置修改", httpMethod = "POST")
+    CommonResult update(@RequestBody AskConfigDto askConfigDto);
 
 }

+ 4 - 1
src/main/java/com/template/api/SmartAttendanceControllerAPI.java

@@ -82,7 +82,10 @@ public interface SmartAttendanceControllerAPI {
      */
     @GetMapping(value = "/askForLeavePage")
     @ApiOperation(value = "请假管理", notes = "请假管理", httpMethod = "GET")
-    CommonResult askForLeavePage(@RequestParam int currentPage, @RequestParam int pageCount,String name,String cardNo,String startTime,String endTime,Integer ifVerification);
+    CommonResult askForLeavePage(@RequestParam int currentPage, @RequestParam int pageCount,String name,String cardNo,String startTime,String endTime,Integer ifVerification,String classId);
 
+    @GetMapping(value = "/queryPage")
+    @ApiOperation(value = "学生考勤纪律", notes = "学生考勤纪律", httpMethod = "GET")
+    CommonResult queryPage(@RequestParam int currentPage, @RequestParam int pageCount,Integer gradeId,Integer classId,Integer status,String studentNo ,String name,String startTime,String endTime);
 
 }

+ 5 - 0
src/main/java/com/template/api/SmartClassControllerAPI.java

@@ -48,4 +48,9 @@ public interface SmartClassControllerAPI {
     @GetMapping(value = "/initSchoolClasses")
     @ApiOperation(value = "初始化班级", notes = "初始化班级", httpMethod = "GET")
     CommonResult initSchoolClasses();
+
+    @GetMapping(value = "/getSchoolClasses")
+    @ApiOperation(value = "获取班级", notes = "获取班级", httpMethod = "GET")
+    CommonResult getSchoolClasses(@RequestParam int schoolClass);
+
 }

+ 7 - 0
src/main/java/com/template/api/SmartVisitorControllerAPI.java

@@ -125,4 +125,11 @@ public interface SmartVisitorControllerAPI {
     @GetMapping(value = "/testVisitorDevice")
     @ApiOperation(value = "测试访客设备", notes = "测试访客设备", httpMethod = "GET")
     CommonResult testVisitorDevice(@RequestParam int id, @RequestParam String deviceNo) throws Exception;
+
+
+    @GetMapping(value = "/getPage")
+    @ApiOperation(value = "访客预约数据", notes = "访客预约数据", httpMethod = "GET")
+    CommonResult getPage(@RequestParam int currentPage, @RequestParam int pageCount,@RequestParam Integer type,String keyWord,Integer status,String startTime,String endTime,String visitorStartTime,String visitorEndTime);
+
+
 }

+ 20 - 0
src/main/java/com/template/api/SmartVisitorParentsConfigControllerAPI.java

@@ -0,0 +1,20 @@
+package com.template.api;
+
+import com.template.model.pojo.SmartAskForLeaveConfig;
+import com.template.model.pojo.SmartVisitorParentsConfig;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+@RequestMapping("/api/smartVisitorParentsConfig")
+public interface SmartVisitorParentsConfigControllerAPI {
+
+    @GetMapping(value = "/getClassId")
+    @ApiOperation(value = "获取班级所对应的配置", notes = "获取班级所对应的配置", httpMethod = "GET")
+    CommonResult getClassId(@RequestParam Integer page,@RequestParam Integer size, @RequestParam Integer classId);
+
+    @PostMapping(value = "/update")
+    @ApiOperation(value = "家长访客配置修改", notes = "家长访客配置修改", httpMethod = "POST")
+    CommonResult update(@RequestBody SmartVisitorParentsConfig smartVisitorParentsConfig);
+
+}

+ 20 - 0
src/main/java/com/template/api/SmartVisitorRestsConfigControllerAPI.java

@@ -0,0 +1,20 @@
+package com.template.api;
+
+import com.template.model.pojo.SmartVisitorParentsConfig;
+import com.template.model.pojo.SmartVisitorRestsConfig;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+@RequestMapping("/api/smartVisitorRestsConfig")
+public interface SmartVisitorRestsConfigControllerAPI {
+
+    @GetMapping(value = "/list")
+    @ApiOperation(value = "展示其他访客配置", notes = "展示其他访客配置", httpMethod = "GET")
+    CommonResult list();
+
+    @PostMapping(value = "/update")
+    @ApiOperation(value = "其他访客配置修改", notes = "其他访客配置修改", httpMethod = "POST")
+    CommonResult update(@RequestBody SmartVisitorRestsConfig smartVisitorRestsConfig);
+
+}

+ 21 - 0
src/main/java/com/template/controller/SmartAccessController.java

@@ -0,0 +1,21 @@
+package com.template.controller;
+
+
+import com.template.api.SmartAccessControllerAPI;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-31
+ */
+@RestController
+public class SmartAccessController implements SmartAccessControllerAPI {
+
+}
+

+ 29 - 1
src/main/java/com/template/controller/SmartAskForLeaveConfigController.java

@@ -1,12 +1,19 @@
 package com.template.controller;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.template.annotation.DESRespondSecret;
 import com.template.api.SmartAskForLeaveConfigControllerAPI;
+import com.template.model.dto.AskConfigDto;
 import com.template.model.pojo.SmartAskForLeaveConfig;
 import com.template.model.result.CommonResult;
 import com.template.services.SmartAskForLeaveConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * <p>
  *  前端控制器
@@ -16,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2024-05-24
  */
 @RestController
+@DESRespondSecret
 public class SmartAskForLeaveConfigController implements SmartAskForLeaveConfigControllerAPI {
 
     @Autowired
@@ -23,7 +31,27 @@ public class SmartAskForLeaveConfigController implements SmartAskForLeaveConfigC
 
     @Override
     public CommonResult list() {
-        return null;
+        SmartAskForLeaveConfig smartAskForLeaveConfig=smartAskForLeaveConfigService.getList();
+
+        return CommonResult.ok(smartAskForLeaveConfig);
+
+    }
+
+    @Override
+    public CommonResult update(AskConfigDto askConfigDto) {
+        int id = askConfigDto.getId();
+        SmartAskForLeaveConfig ask = smartAskForLeaveConfigService.getById(id);
+        if (ObjectUtils.isEmpty(ask)) {
+            return CommonResult.fail("不存在该id");
+        }
+        ask.setConfig(askConfigDto.getConfig());
+        boolean update = smartAskForLeaveConfigService.updateById(ask);
+        if (update) {
+            return CommonResult.ok();
+        }else{
+            return CommonResult.fail();
+        }
+
     }
 }
 

+ 30 - 9
src/main/java/com/template/controller/SmartAttendanceController.java

@@ -26,13 +26,12 @@ import com.template.model.seewo.PersonalLeaveListSchoolPeriodRecordsParam;
 import com.template.model.seewo.PersonalLeaveListSchoolPeriodRecordsRequest;
 import com.template.model.seewo.PersonalLeaveListSchoolPeriodRecordsResult;
 import com.template.model.vo.*;
-import com.template.services.SmartAttendanceService;
-import com.template.services.SmartEvaluateStudentService;
-import com.template.services.SmartSemesterService;
-import com.template.services.SmartUserService;
+import com.template.services.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.validation.BindingResult;
 
 import org.springframework.web.bind.annotation.RequestParam;
@@ -76,6 +75,8 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
     @Autowired
     SmartSemesterService smartSemesterService;
 
+    @Autowired
+    SmartAskForLeaveConfigService smartAskForLeaveConfigService;
 
     @Override
     @DESRespondSecret(validated = true)
@@ -101,6 +102,15 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
         return null;
     }
 
+    /**
+     * 每一小时获取请假信息
+      */
+    @Async
+    @Scheduled(cron = "0 0 0/1 * * ? ")
+    public void get(){
+        queryLeaveRecords();
+    }
+
     @Override
     @DESRespondSecret(validated = true)
     public CommonResult queryLeaveRecords() {
@@ -114,7 +124,11 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
         if (!result.getResponseBody().getCode().equals("000000")) {
             return CommonResult.fail(result.getResponseBody().getMessage());
         }
-
+        SmartAskForLeaveConfig list = smartAskForLeaveConfigService.getList();
+        Integer IfVerification=0;
+        if (ObjectUtils.isNotEmpty(list)&&ObjectUtils.isNotEmpty(list.getConfig())) {
+            IfVerification = list.getConfig();
+        }
         List<SmartAttendance> attendances = new ArrayList<>();
         for (int i = 0; i < result.getResponseBody().getData().getTotalCount(); i++) {
             if (result.getResponseBody().getData().getResult().get(i).getLeaveStatus().intValue() == eXwApproveStatu.Passed.getValue()) {
@@ -131,7 +145,7 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
                 attendance.setInitiateXwphone(result.getResponseBody().getData().getResult().get(i).getApplyUserPhone());
                 attendance.setStatus(eAttendanceStatu.AskLeave.getValue());
 //               加未核销字段
-                attendance.setIfVerification(eIfVerification.NoVerification.getValue());
+                attendance.setIfVerification(IfVerification);
                 attendances.add(attendance);
             }
         }
@@ -164,7 +178,7 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
                         attendance.setInitiateXwphone(result.getResponseBody().getData().getResult().get(j).getApplyUserPhone());
                         attendance.setStatus(eAttendanceStatu.AskLeave.getValue());
 //                        加未核销字段
-                        attendance.setIfVerification(eIfVerification.NoVerification.getValue());
+                        attendance.setIfVerification(IfVerification);
                         attendances.add(attendance);
                     }
                 }
@@ -341,12 +355,19 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
 
     @Override
     @DESRespondSecret(validated = true)
-    public CommonResult askForLeavePage(int currentPage, int pageCount, String name, String cardNo, String startTime, String endTime,Integer ifVerification) {
-        PageUtils<AskForLeaveVo> result=smartAttendanceService.askForLeavePage(currentPage,pageCount,name,cardNo,startTime,endTime,ifVerification);
+    public CommonResult askForLeavePage(int currentPage, int pageCount, String name, String cardNo, String startTime, String endTime,Integer ifVerification,String classId) {
+        PageUtils<AskForLeaveVo> result=smartAttendanceService.askForLeavePage(currentPage,pageCount,name,cardNo,startTime,endTime,ifVerification,classId);
         return CommonResult.ok(result);
 
     }
 
+    @Override
+    @DESRespondSecret(validated = false)
+    public CommonResult queryPage(int currentPage, int pageCount, Integer gradeId, Integer classId, Integer status, String studentNo, String name, String startTime, String endTime) {
+        PageUtils<SmartAttendanceVo> result= smartAttendanceService.queryPage(currentPage,pageCount,gradeId,classId,status,studentNo,name,startTime,endTime);
+        return CommonResult.ok(result);
+    }
+
     public PersonalLeaveListSchoolPeriodRecordsResult getXwAttendance(String startDate, String endDate, Integer currentPage, Integer pageSize) {
         //初始化客户端
         SeewoClient seewoClient = new DefaultSeewoClient(new Account(seewoConfig.getAppId(), seewoConfig.getAppSecret()));

+ 11 - 0
src/main/java/com/template/controller/SmartClassController.java

@@ -447,5 +447,16 @@ public class SmartClassController implements SmartClassControllerAPI {
 
         return null;
     }
+
+    @Override
+    @DESRespondSecret(validated = true)
+    public CommonResult getSchoolClasses(int schoolClass) {
+        if (schoolClass==0) {
+            List<SmartClassVo> vos = smartClassService.getSchoolClassIdList();
+            return CommonResult.ok(vos);
+        }
+        SmartClassVo vo = smartClassService.getSchoolClassId(schoolClass);
+        return CommonResult.ok(vo);
+    }
 }
 

+ 44 - 16
src/main/java/com/template/controller/SmartFaceDiscernController.java

@@ -81,6 +81,9 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
     @Autowired
     SmartDeviceService smartDeviceService;
 
+    @Autowired
+    SmartAccessService smartAccessService;
+
     @Override
     @DESRespondSecret(validated = true)
     public CommonResult track(Integer id, int dateTime) {
@@ -117,6 +120,18 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
             vos.add(lastSevenDaysTrackVo);
         }
 
+//        门禁信息
+        List<SmartAccess> smartAccesses = smartAccessService.track(stateTime, endTime, id);
+        for (SmartAccess faceDiscern : smartAccesses) {
+            LastSevenDaysTrackVo lastSevenDaysTrackVo = new LastSevenDaysTrackVo();
+            lastSevenDaysTrackVo.setName(faceDiscern.getName());
+            lastSevenDaysTrackVo.setType(faceDiscern.getType());
+            lastSevenDaysTrackVo.setLocation(faceDiscern.getLocation());
+            lastSevenDaysTrackVo.setImage(faceDiscern.getImage());
+            lastSevenDaysTrackVo.setDateTime(faceDiscern.getDateTime());
+            vos.add(lastSevenDaysTrackVo);
+        }
+
 //        排序
         Collections.sort(vos, Comparator.comparing((h) -> {
             return h.getDateTime();
@@ -139,10 +154,9 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
             LocalDateTime stateTime = now.minusDays(i + 1);
             LocalDateTime endTime = now.minusDays(i);
             String dateTime = endTime.format(dateTimeFormatter);
-            LambdaQueryWrapper<SmartFaceDiscern> faceDiscernWrapper = new LambdaQueryWrapper<>();
-            faceDiscernWrapper.between(SmartFaceDiscern::getDateTime, stateTime, endTime)
-                    .ne(SmartFaceDiscern::getType, "人脸比对");
-            int faceDiscernCount = smartFaceDiscernService.count(faceDiscernWrapper);
+            LambdaQueryWrapper<SmartAccess> smartAccessWrapper = new LambdaQueryWrapper<>();
+            smartAccessWrapper.between(SmartAccess::getDateTime, stateTime, endTime);
+            int faceDiscernCount = smartAccessService.count(smartAccessWrapper);
 
             LambdaQueryWrapper<SmartQrcode> qrcodeWrapper = new LambdaQueryWrapper<>();
             qrcodeWrapper.between(SmartQrcode::getCreateTime, stateTime, endTime);
@@ -173,6 +187,7 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
         String endTime = end.format(dateTimeFormatter1);
         String startTime = satrt.format(dateTimeFormatter1);
         ArrayList<LastSevenDaysTrackVo> vos = new ArrayList<>();
+//        人脸抓拍
         List<SmartFaceDiscern> faceDiscerns = smartFaceDiscernService.track(startTime, endTime, userId);
         for (SmartFaceDiscern faceDiscern : faceDiscerns) {
             LastSevenDaysTrackVo lastSevenDaysTrackVo = new LastSevenDaysTrackVo();
@@ -184,6 +199,7 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
             vos.add(lastSevenDaysTrackVo);
         }
 
+//        打卡
         List<SmartAttendance> attendances = smartAttendanceService.track(startTime, endTime, userId);
 //        获取班级名称
         SmartUser smartUser = smartUserService.getSmartById(userId);
@@ -200,6 +216,18 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
             vos.add(lastSevenDaysTrackVo);
         }
 
+        //        门禁信息
+        List<SmartAccess> smartAccesses = smartAccessService.track(startTime, endTime, userId);
+        for (SmartAccess faceDiscern : smartAccesses) {
+            LastSevenDaysTrackVo lastSevenDaysTrackVo = new LastSevenDaysTrackVo();
+            lastSevenDaysTrackVo.setName(faceDiscern.getName());
+            lastSevenDaysTrackVo.setType(faceDiscern.getType());
+            lastSevenDaysTrackVo.setLocation(faceDiscern.getLocation());
+            lastSevenDaysTrackVo.setImage(faceDiscern.getImage());
+            lastSevenDaysTrackVo.setDateTime(faceDiscern.getDateTime());
+            vos.add(lastSevenDaysTrackVo);
+        }
+
 //        排序
         Collections.sort(vos, Comparator.comparing((h) -> {
             return h.getDateTime();
@@ -264,7 +292,7 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
                     }
 
 
-                    SmartFaceDiscern smartFaceDiscern = new SmartFaceDiscern();
+                    SmartAccess smartFaceDiscern = new SmartAccess();
 
                     smartFaceDiscern.setName(s);
                     smartFaceDiscern.setLocation(address);
@@ -275,10 +303,10 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
                     smartFaceDiscern.setSn(sn);
                     if (userId != 0) {
                         //                    判断是否已经添加
-                        LambdaQueryWrapper<SmartFaceDiscern> wrapperFD = new LambdaQueryWrapper<>();
-                        wrapperFD.eq(SmartFaceDiscern::getDateTime, smartFaceDiscern.getDateTime())
-                                .eq(SmartFaceDiscern::getUserId, userId);
-                        List<SmartFaceDiscern> list = smartFaceDiscernService.list(wrapperFD);
+                        LambdaQueryWrapper<SmartAccess> wrapperFD = new LambdaQueryWrapper<>();
+                        wrapperFD.eq(SmartAccess::getDateTime, smartFaceDiscern.getDateTime())
+                                .eq(SmartAccess::getUserId, userId);
+                        List<SmartAccess> list = smartAccessService.list(wrapperFD);
                         if (ObjectUtils.isEmpty(list) && list.size() == 0) {
                             //          抓拍的照片 base64字符串
                             String scenePhoto = jsonObject.getString("scenePhoto");
@@ -296,7 +324,7 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
                             }
 
                             smartFaceDiscern.setImage(image);
-                            smartFaceDiscernService.save(smartFaceDiscern);
+                            smartAccessService.save(smartFaceDiscern);
 
 //                        通过学生id找到关联的家长affiliate,并找到公众号,如果openid为空则不传
                             List<SmartUser> userList = smartUserService.getAffiliateList(userId);
@@ -336,11 +364,11 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
 
                         smartFaceDiscern.setUserId(0);
 //                    判断是否已经添加
-                        LambdaQueryWrapper<SmartFaceDiscern> wrapperFD = new LambdaQueryWrapper<>();
-                        wrapperFD.eq(SmartFaceDiscern::getDateTime, time)
-                                .eq(SmartFaceDiscern::getName, s)
-                                .eq(SmartFaceDiscern::getType, type);
-                        List<SmartFaceDiscern> list = smartFaceDiscernService.list(wrapperFD);
+                        LambdaQueryWrapper<SmartAccess> wrapperFD = new LambdaQueryWrapper<>();
+                        wrapperFD.eq(SmartAccess::getDateTime, time)
+                                .eq(SmartAccess::getName, s)
+                                .eq(SmartAccess::getType, type);
+                        List<SmartAccess> list = smartAccessService.list(wrapperFD);
 
                         if (ObjectUtils.isEmpty(list) && list.size() == 0) {
                             //          抓拍的照片 base64字符串
@@ -358,7 +386,7 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
                                 logger.error("上传cos桶失败");
                             }
                             smartFaceDiscern.setImage(image);
-                            smartFaceDiscernService.save(smartFaceDiscern);
+                            smartAccessService.save(smartFaceDiscern);
                         }
 
                     }

+ 8 - 0
src/main/java/com/template/controller/SmartVisitorController.java

@@ -428,6 +428,14 @@ public class SmartVisitorController implements SmartVisitorControllerAPI {
         return CommonResult.ok("操作成功");
     }
 
+    @Override
+    @DESRespondSecret(validated = false)
+    public CommonResult getPage(int currentPage, int pageCount,Integer type, String keyWord, Integer status, String startTime, String endTime,String visitorStartTime,String visitorEndTime) {
+       PageUtils<SmartVisitor> page= smartVisitorService.getPage(currentPage,pageCount,type,keyWord,status,startTime,endTime,visitorStartTime,visitorEndTime);
+
+        return CommonResult.ok(page);
+    }
+
     /**
      * 1、学生请假:
      * 我们这边调用请假接口之后,把请假数据写到了百胜系统的"学生请假登记"页面中,那到时候学生是通过任意设备都能进出吗?

+ 55 - 0
src/main/java/com/template/controller/SmartVisitorParentsConfigController.java

@@ -0,0 +1,55 @@
+package com.template.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.template.annotation.DESRespondSecret;
+import com.template.api.SmartVisitorParentsConfigControllerAPI;
+import com.template.mapper.SmartVisitorParentsConfigMapper;
+import com.template.model.pojo.SmartAskForLeaveConfig;
+import com.template.model.pojo.SmartVisitorParentsConfig;
+import com.template.model.result.CommonResult;
+import com.template.model.result.PageUtils;
+import com.template.model.vo.SmartVisitorParentsConfigVo;
+import com.template.services.SmartVisitorParentsConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-29
+ */
+@RestController
+@DESRespondSecret
+public class SmartVisitorParentsConfigController implements SmartVisitorParentsConfigControllerAPI {
+
+    @Autowired
+    SmartVisitorParentsConfigService smartVisitorParentsConfigService;
+
+    @Override
+    @DESRespondSecret(validated = true)
+    public CommonResult getClassId(Integer page,Integer size, Integer classId) {
+        PageUtils<SmartVisitorParentsConfigVo> smartVisitorParentsConfig=smartVisitorParentsConfigService.getClassIdPage(page,size,classId);
+        return CommonResult.ok(smartVisitorParentsConfig);
+    }
+
+    @Override
+    @DESRespondSecret(validated = true)
+    public CommonResult update(SmartVisitorParentsConfig smartVisitorParentsConfig) {
+        boolean update = smartVisitorParentsConfigService.updateById(smartVisitorParentsConfig);
+
+        if (update) {
+            return CommonResult.ok();
+        }
+        return CommonResult.fail();
+    }
+
+}
+

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

@@ -0,0 +1,50 @@
+package com.template.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.template.annotation.DESRespondSecret;
+import com.template.api.SmartVisitorRestsConfigControllerAPI;
+import com.template.model.pojo.SmartVisitorRestsConfig;
+import com.template.model.result.CommonResult;
+import com.template.services.SmartVisitorRestsConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-30
+ */
+@RestController
+@DESRespondSecret
+public class SmartVisitorRestsConfigController implements SmartVisitorRestsConfigControllerAPI {
+
+    @Autowired
+    SmartVisitorRestsConfigService smartVisitorRestsConfigService;
+
+    @Override
+    @DESRespondSecret(validated = true)
+    public CommonResult list() {
+        List<SmartVisitorRestsConfig> list = smartVisitorRestsConfigService.list(new LambdaQueryWrapper<>());
+        SmartVisitorRestsConfig smartVisitorRestsConfig = list.get(0);
+        return CommonResult.ok(smartVisitorRestsConfig);
+    }
+
+    @Override
+    @DESRespondSecret(validated = true)
+    public CommonResult update(SmartVisitorRestsConfig smartVisitorRestsConfig) {
+        boolean update = smartVisitorRestsConfigService.updateById(smartVisitorRestsConfig);
+        if (update) {
+            return CommonResult.ok();
+        }
+        return CommonResult.fail();
+    }
+}
+

+ 16 - 0
src/main/java/com/template/mapper/SmartAccessMapper.java

@@ -0,0 +1,16 @@
+package com.template.mapper;
+
+import com.template.model.pojo.SmartAccess;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-31
+ */
+public interface SmartAccessMapper extends BaseMapper<SmartAccess> {
+
+}

+ 4 - 1
src/main/java/com/template/mapper/SmartAttendanceMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.template.model.pojo.SmartAttendance;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.template.model.vo.AskForLeaveVo;
+import com.template.model.vo.SmartAttendanceVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
@@ -23,5 +24,7 @@ public interface SmartAttendanceMapper extends BaseMapper<SmartAttendance> {
 
     List<Integer> getGroup();
 
-    IPage<AskForLeaveVo> askForLeavePage(Page<AskForLeaveVo> page, @Param("name") String name,@Param("cardNo") String cardNo,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("ifVerification")Integer ifVerification);
+    IPage<AskForLeaveVo> askForLeavePage(Page<AskForLeaveVo> page, @Param("name") String name,@Param("cardNo") String cardNo,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("ifVerification")Integer ifVerification,@Param("classId")String classId);
+
+    IPage<SmartAttendanceVo> queryPage(Page<SmartAttendanceVo> page,@Param("gradeId") Integer gradeId,@Param("classId") Integer classId,@Param("status") Integer status,@Param("studentNo") String studentNo,@Param("name") String name,@Param("startTime") String startTime,@Param("endTime") String endTime);
 }

+ 8 - 0
src/main/java/com/template/mapper/SmartClassMapper.java

@@ -2,8 +2,12 @@ package com.template.mapper;
 
 import com.template.model.pojo.SmartClass;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.template.model.vo.SmartClassVo;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * <p>
  * 楼栋表 Mapper 接口
@@ -15,4 +19,8 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface SmartClassMapper extends BaseMapper<SmartClass> {
 
+
+    List<SmartClassVo> getSchoolClassIdList();
+
+    SmartClassVo getSchoolClassId(@Param("schoolClass") int schoolClass);
 }

+ 6 - 0
src/main/java/com/template/mapper/SmartVisitorMapper.java

@@ -1,6 +1,7 @@
 package com.template.mapper;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.template.model.pojo.SmartVisitor;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.template.model.vo.VisitorPageVo;
@@ -24,4 +25,9 @@ public interface SmartVisitorMapper extends BaseMapper<SmartVisitor> {
     Integer queryVisitorCount(@Param("cardNo") String cardNo, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
     IPage<SmartVisitor> queryVisitorPageDatas(IPage<SmartVisitor> page, @Param("type") Integer type, @Param("studentIds") List<Integer> studentIds, @Param("isAdmin") String isAdmin);
+
+    IPage<VisitorPageVo> getPage(Page<SmartVisitor> page,@Param("type")Integer type,@Param("keyWord") String keyWord,@Param("status") Integer status,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("visitorStartTime") String visitorStartTime,@Param("visitorEndTime") String visitorEndTime);
+
+
+
 }

+ 23 - 0
src/main/java/com/template/mapper/SmartVisitorParentsConfigMapper.java

@@ -0,0 +1,23 @@
+package com.template.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.template.model.pojo.SmartVisitorParentsConfig;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.template.model.vo.SmartVisitorParentsConfigVo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-29
+ */
+@Repository
+public interface SmartVisitorParentsConfigMapper extends BaseMapper<SmartVisitorParentsConfig> {
+
+    IPage<SmartVisitorParentsConfigVo> getClassIdPage(Page<SmartVisitorParentsConfigVo> p,@Param("classId") Integer classId);
+}

+ 18 - 0
src/main/java/com/template/mapper/SmartVisitorRestsConfigMapper.java

@@ -0,0 +1,18 @@
+package com.template.mapper;
+
+import com.template.model.pojo.SmartVisitorRestsConfig;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-30
+ */
+@Repository
+public interface SmartVisitorRestsConfigMapper extends BaseMapper<SmartVisitorRestsConfig> {
+
+}

+ 12 - 0
src/main/java/com/template/model/dto/AskConfigDto.java

@@ -0,0 +1,12 @@
+package com.template.model.dto;
+
+import lombok.Data;
+
+@Data
+public class AskConfigDto {
+
+    private Integer id;
+
+    private Integer config;
+
+}

+ 85 - 0
src/main/java/com/template/model/pojo/SmartAccess.java

@@ -0,0 +1,85 @@
+package com.template.model.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-31
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartAccess对象", description="")
+public class SmartAccess implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "名字")
+    private String name;
+
+    @ApiModelProperty(value = "用户ID")
+    private Integer userId;
+
+    @ApiModelProperty(value = "类型")
+    private String type;
+
+    @ApiModelProperty(value = "地点")
+    private String location;
+
+    @ApiModelProperty(value = "图片")
+    private String image;
+
+    @ApiModelProperty(value = "百胜门禁编号")
+    private String idNum;
+
+    @ApiModelProperty(value = "设备sn号")
+    private String sn;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "发生时间")
+    private String dateTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    @ApiModelProperty(value = "创建人员")
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    @ApiModelProperty(value = "更新人员")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateUser;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleted;
+
+
+}

+ 1 - 1
src/main/java/com/template/model/pojo/SmartAskForLeaveConfig.java

@@ -33,7 +33,7 @@ public class SmartAskForLeaveConfig implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    @ApiModelProperty(value = "配置")
+    @ApiModelProperty(value = "配置  0:需要核销,1:不需要核销")
     private Integer config;
 
     @ApiModelProperty(value = "创建时间")

+ 83 - 0
src/main/java/com/template/model/pojo/SmartVisitorParentsConfig.java

@@ -0,0 +1,83 @@
+package com.template.model.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartVisitorParentsConfig对象", description="")
+public class SmartVisitorParentsConfig implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "小程序家长访客预约配置")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "年级ID")
+    private Integer classId;
+
+    @ApiModelProperty(value = "小程序审核配置 1:需要审核, 4:不需要审核")
+    private Integer appAuditConfig;
+
+    @ApiModelProperty(value = "小程序推送配置 5:需要推送,3:不需要推送")
+    private Integer appPushConfig;
+
+    @ApiModelProperty(value = "小程序核销配置 6:需要核销,7:不需要核销")
+    private Integer appCancelConfig;
+
+    @ApiModelProperty(value = "大屏序审核配置 1:需要审核, 4:不需要审核")
+    private Integer screenAuditConfig;
+
+    @ApiModelProperty(value = "大屏序推送配置 5:需要推送,3:不需要推送")
+    private Integer screenPushConfig;
+
+    @ApiModelProperty(value = "大屏核销配置 6:需要核销,7:不需要核销")
+    private Integer screenCancelConfig;
+
+    @ApiModelProperty(value = "门禁配置 0:推送到门禁,1:不推送到门禁")
+    private Integer accessConfig;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    @ApiModelProperty(value = "创建人员")
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    @ApiModelProperty(value = "更新人员")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateUser;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleted;
+
+
+}

+ 64 - 0
src/main/java/com/template/model/pojo/SmartVisitorRestsConfig.java

@@ -0,0 +1,64 @@
+package com.template.model.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-30
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartVisitorRestsConfig对象", description="")
+public class SmartVisitorRestsConfig implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "审核配置 1:需要审核, 9:不需要审核")
+    private Integer auditConfig;
+
+    @ApiModelProperty(value = "门禁配置 0:推送到门禁,1:不推送到门禁")
+    private Integer accessConfig;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    @ApiModelProperty(value = "创建人员")
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    @ApiModelProperty(value = "更新人员")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateUser;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleted;
+
+
+}

+ 36 - 0
src/main/java/com/template/model/vo/SmartAttendanceVo.java

@@ -0,0 +1,36 @@
+package com.template.model.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class SmartAttendanceVo {
+    private Integer id;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "年级")
+    private String gradeName;
+
+    @ApiModelProperty(value = "班级")
+    private String className;
+
+    @ApiModelProperty(value = "学号")
+    private String cardNo;
+
+    @ApiModelProperty(value = "头像")
+    private String headImage;
+
+    @ApiModelProperty(value = "签到时间")
+    private Date attendTime;
+
+    @ApiModelProperty(value = "希沃发起时间")
+    private Date initiateTime;
+
+    @ApiModelProperty(value = "考勤状态 准时:0 迟到:1 缺卡:3 请假:6 超时打卡:7")
+    private Integer status;
+
+}

+ 10 - 0
src/main/java/com/template/model/vo/SmartClassVo.java

@@ -0,0 +1,10 @@
+package com.template.model.vo;
+
+import lombok.Data;
+
+@Data
+public class SmartClassVo {
+    private Integer id;
+    private String className;
+    private String gradeName;
+}

+ 45 - 0
src/main/java/com/template/model/vo/SmartVisitorParentsConfigVo.java

@@ -0,0 +1,45 @@
+package com.template.model.vo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class SmartVisitorParentsConfigVo {
+    private Integer id;
+
+    @ApiModelProperty(value = "年级ID")
+    private Integer classId;
+
+    private String className;
+
+    private String gradeName;
+
+    @ApiModelProperty(value = "小程序审核配置 1:需要审核, 4:不需要审核")
+    private Integer appAuditConfig;
+
+    @ApiModelProperty(value = "小程序推送配置 5:需要推送,3:不需要推送")
+    private Integer appPushConfig;
+
+    @ApiModelProperty(value = "小程序核销配置 6:需要核销,7:不需要核销")
+    private Integer appCancelConfig;
+
+    @ApiModelProperty(value = "大屏序审核配置 1:需要审核, 4:不需要审核")
+    private Integer screenAuditConfig;
+
+    @ApiModelProperty(value = "大屏序推送配置 5:需要推送,3:不需要推送")
+    private Integer screenPushConfig;
+
+    @ApiModelProperty(value = "大屏核销配置 6:需要核销,7:不需要核销")
+    private Integer screenCancelConfig;
+
+    @ApiModelProperty(value = "门禁配置 0:推送到门禁,1:不推送到门禁")
+    private Integer accessConfig;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+}

+ 21 - 0
src/main/java/com/template/services/SmartAccessService.java

@@ -0,0 +1,21 @@
+package com.template.services;
+
+import com.template.model.pojo.SmartAccess;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-31
+ */
+@Repository
+public interface SmartAccessService extends IService<SmartAccess> {
+
+    List<SmartAccess> track(String stateTime, String endTime, Integer id);
+}

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

@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface SmartAskForLeaveConfigService extends IService<SmartAskForLeaveConfig> {
 
+    SmartAskForLeaveConfig getList();
 }

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

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.template.model.pojo.SmartVisitor;
 import com.template.model.result.PageUtils;
 import com.template.model.vo.AskForLeaveVo;
+import com.template.model.vo.SmartAttendanceVo;
 
 import java.util.Date;
 import java.util.List;
@@ -32,5 +33,7 @@ public interface SmartAttendanceService extends IService<SmartAttendance> {
 
     List<SmartAttendance> track(String startTime, String endTime, int userId);
 
-    PageUtils<AskForLeaveVo> askForLeavePage(int currentPage, int pageCount,String name, String cardNo, String startTime, String endTime,Integer ifVerification);
+    PageUtils<AskForLeaveVo> askForLeavePage(int currentPage, int pageCount,String name, String cardNo, String startTime, String endTime,Integer ifVerification,String classId);
+
+    PageUtils<SmartAttendanceVo> queryPage(int currentPage, int pageCount, Integer gradeId, Integer classId, Integer status, String studentNo, String name, String startTime, String endTime);
 }

+ 5 - 0
src/main/java/com/template/services/SmartClassService.java

@@ -4,6 +4,7 @@ import com.template.model.pojo.SmartBuild;
 import com.template.model.pojo.SmartClass;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.template.model.result.PageUtils;
+import com.template.model.vo.SmartClassVo;
 
 import java.util.List;
 
@@ -33,4 +34,8 @@ public interface SmartClassService extends IService<SmartClass> {
     SmartClass existSmartClassData(Integer gradeId, String name, Integer classNo);
 
     PageUtils<SmartClass> queryPageSmartClass(int currentPage, int pageCount, String name);
+
+    List<SmartClassVo> getSchoolClassIdList();
+
+    SmartClassVo getSchoolClassId(int schoolClass);
 }

+ 20 - 0
src/main/java/com/template/services/SmartVisitorParentsConfigService.java

@@ -0,0 +1,20 @@
+package com.template.services;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.template.model.pojo.SmartVisitorParentsConfig;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.result.PageUtils;
+import com.template.model.vo.SmartVisitorParentsConfigVo;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-29
+ */
+public interface SmartVisitorParentsConfigService extends IService<SmartVisitorParentsConfig> {
+
+    PageUtils<SmartVisitorParentsConfigVo> getClassIdPage(Integer page, Integer size, Integer classId);
+}

+ 16 - 0
src/main/java/com/template/services/SmartVisitorRestsConfigService.java

@@ -0,0 +1,16 @@
+package com.template.services;
+
+import com.template.model.pojo.SmartVisitorRestsConfig;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-30
+ */
+public interface SmartVisitorRestsConfigService extends IService<SmartVisitorRestsConfig> {
+
+}

+ 3 - 0
src/main/java/com/template/services/SmartVisitorService.java

@@ -39,4 +39,7 @@ public interface SmartVisitorService extends IService<SmartVisitor> {
     SmartVisitor querySmartVisitorByCode(String visitorCode);
 
     SmartVisitor queryParentVisitor(Integer userId);
+
+    PageUtils<SmartVisitor> getPage(int currentPage, int pageCount,Integer type, String keyWord, Integer status, String startTime, String endTime, String visitorStartTime, String visitorEndTime);
+
 }

+ 35 - 0
src/main/java/com/template/services/impl/SmartAccessServiceImpl.java

@@ -0,0 +1,35 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.template.model.pojo.SmartAccess;
+import com.template.mapper.SmartAccessMapper;
+import com.template.model.pojo.SmartFaceDiscern;
+import com.template.services.SmartAccessService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-31
+ */
+@Service
+public class SmartAccessServiceImpl extends ServiceImpl<SmartAccessMapper, SmartAccess> implements SmartAccessService {
+
+    @Override
+    public List<SmartAccess> track(String stateTime, String endTime, Integer id) {
+        LambdaQueryWrapper<SmartAccess> wrapper = new LambdaQueryWrapper<>();
+        wrapper.between(SmartAccess::getDateTime, stateTime, endTime)
+                .eq(SmartAccess::getUserId, id)
+                .orderByDesc(SmartAccess::getDateTime);
+
+        List<SmartAccess> list = this.list(wrapper);
+
+        return list;
+    }
+}

+ 15 - 0
src/main/java/com/template/services/impl/SmartAskForLeaveConfigServiceImpl.java

@@ -1,11 +1,16 @@
 package com.template.services.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.template.model.pojo.SmartAskForLeaveConfig;
 import com.template.mapper.SmartAskForLeaveConfigMapper;
 import com.template.services.SmartAskForLeaveConfigService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +22,14 @@ import org.springframework.stereotype.Service;
 @Service
 public class SmartAskForLeaveConfigServiceImpl extends ServiceImpl<SmartAskForLeaveConfigMapper, SmartAskForLeaveConfig> implements SmartAskForLeaveConfigService {
 
+    @Override
+    public SmartAskForLeaveConfig getList() {
+        Wrapper<SmartAskForLeaveConfig> wrapper=new LambdaQueryWrapper<>();
+        List<SmartAskForLeaveConfig> list = this.list(wrapper);
+        SmartAskForLeaveConfig smartAskForLeaveConfig=null;
+        if (ObjectUtils.isNotEmpty(list)) {
+            smartAskForLeaveConfig = list.get(0);
+        }
+        return smartAskForLeaveConfig;
+    }
 }

+ 10 - 2
src/main/java/com/template/services/impl/SmartAttendanceServiceImpl.java

@@ -10,6 +10,7 @@ import com.template.mapper.SmartAttendanceMapper;
 import com.template.model.pojo.SmartVisitor;
 import com.template.model.result.PageUtils;
 import com.template.model.vo.AskForLeaveVo;
+import com.template.model.vo.SmartAttendanceVo;
 import com.template.services.SmartAttendanceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -101,9 +102,16 @@ public class SmartAttendanceServiceImpl extends ServiceImpl<SmartAttendanceMappe
     }
 
     @Override
-    public PageUtils<AskForLeaveVo> askForLeavePage(int currentPage, int pageCount,String name, String cardNo, String startTime, String endTime,Integer ifVerification) {
+    public PageUtils<AskForLeaveVo> askForLeavePage(int currentPage, int pageCount,String name, String cardNo, String startTime, String endTime,Integer ifVerification,String classId) {
         Page<AskForLeaveVo> page = new Page<>(currentPage,pageCount);
-        IPage<AskForLeaveVo> datas = smartAttendanceMapper.askForLeavePage(page, name,cardNo,startTime,endTime,ifVerification);
+        IPage<AskForLeaveVo> datas = smartAttendanceMapper.askForLeavePage(page, name,cardNo,startTime,endTime,ifVerification,classId);
+        return new PageUtils(datas);
+    }
+
+    @Override
+    public PageUtils<SmartAttendanceVo> queryPage(int currentPage, int pageCount, Integer gradeId, Integer classId, Integer status, String studentNo, String name, String startTime, String endTime) {
+        Page<SmartAttendanceVo> page = new Page<>(currentPage,pageCount);
+        IPage<SmartAttendanceVo> datas = smartAttendanceMapper.queryPage(page,gradeId,classId,status,studentNo,name,startTime,endTime);
         return new PageUtils(datas);
     }
 }

+ 13 - 0
src/main/java/com/template/services/impl/SmartClassServiceImpl.java

@@ -10,6 +10,7 @@ import com.template.model.pojo.SmartClass;
 import com.template.model.pojo.SmartGrade;
 import com.template.model.pojo.SmartSchool;
 import com.template.model.result.PageUtils;
+import com.template.model.vo.SmartClassVo;
 import com.template.services.SmartClassService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -97,4 +98,16 @@ public class SmartClassServiceImpl extends ServiceImpl<SmartClassMapper, SmartCl
         IPage<SmartClass> result = smartClassMapper.selectPage(page, queryWrapper);
         return new PageUtils<>(result);
     }
+
+    @Override
+    public List<SmartClassVo> getSchoolClassIdList() {
+        List<SmartClassVo> vos = smartClassMapper.getSchoolClassIdList();
+        return vos;
+    }
+
+    @Override
+    public SmartClassVo getSchoolClassId(int schoolClass) {
+        SmartClassVo vo = smartClassMapper.getSchoolClassId(schoolClass);
+        return vo;
+    }
 }

+ 39 - 0
src/main/java/com/template/services/impl/SmartVisitorParentsConfigServiceImpl.java

@@ -0,0 +1,39 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.template.model.pojo.SmartVisitorParentsConfig;
+import com.template.mapper.SmartVisitorParentsConfigMapper;
+import com.template.model.result.PageUtils;
+import com.template.model.vo.AskForLeaveVo;
+import com.template.model.vo.SmartVisitorParentsConfigVo;
+import com.template.services.SmartVisitorParentsConfigService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-29
+ */
+@Service
+public class SmartVisitorParentsConfigServiceImpl extends ServiceImpl<SmartVisitorParentsConfigMapper, SmartVisitorParentsConfig> implements SmartVisitorParentsConfigService {
+
+    @Autowired
+    SmartVisitorParentsConfigMapper smartVisitorParentsConfigMapper;
+
+    @Override
+    public PageUtils<SmartVisitorParentsConfigVo> getClassIdPage(Integer page, Integer size, Integer classId) {
+        Page<SmartVisitorParentsConfigVo> p = new Page<>(page,size);
+
+        IPage<SmartVisitorParentsConfigVo> page1 = smartVisitorParentsConfigMapper.getClassIdPage(p,classId);
+
+        return new PageUtils<>(page1);
+    }
+}

+ 20 - 0
src/main/java/com/template/services/impl/SmartVisitorRestsConfigServiceImpl.java

@@ -0,0 +1,20 @@
+package com.template.services.impl;
+
+import com.template.model.pojo.SmartVisitorRestsConfig;
+import com.template.mapper.SmartVisitorRestsConfigMapper;
+import com.template.services.SmartVisitorRestsConfigService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-05-30
+ */
+@Service
+public class SmartVisitorRestsConfigServiceImpl extends ServiceImpl<SmartVisitorRestsConfigMapper, SmartVisitorRestsConfig> implements SmartVisitorRestsConfigService {
+
+}

+ 9 - 0
src/main/java/com/template/services/impl/SmartVisitorServiceImpl.java

@@ -117,4 +117,13 @@ public class SmartVisitorServiceImpl extends ServiceImpl<SmartVisitorMapper, Sma
 
         return resultDatas != null && resultDatas.size() > 0 ? resultDatas.get(0) : null;
     }
+
+    @Override
+    public PageUtils<SmartVisitor> getPage(int currentPage, int pageCount,Integer type, String keyWord, Integer status, String startTime, String endTime, String visitorStartTime, String visitorEndTime) {
+        Page<SmartVisitor> page = new Page<>();
+        page.setCurrent(currentPage);
+        page.setSize(pageCount);
+        IPage<VisitorPageVo> datas = smartVisitorMapper.getPage(page,type,keyWord,status,startTime,endTime,visitorStartTime,visitorEndTime);
+        return new PageUtils(datas);
+    }
 }

+ 42 - 1
src/main/resources/mapper/template/SmartAttendanceMapper.xml

@@ -40,6 +40,47 @@
         <if test="ifVerification != null and ifVerification != ''">
             and sa.if_verification = #{ifVerification}
         </if>
-        ORDER BY sa.initiate_time
+        <if test="classId != null and classId != ''">
+            and sa.class_id = #{classId}
+        </if>
+        ORDER BY sa.initiate_time desc
+    </select>
+
+    <select id="queryPage" resultType="com.template.model.vo.SmartAttendanceVo">
+        SELECT
+            sa.id,
+            sa.xw_user_name as name,
+            sc.`name` as className,
+            sg.`name` as gradeName,
+            su.card_no as cardNo,
+            su.head_image as headImage,
+            sa.attend_time as attendTime,
+            sa.initiate_time as initiateTime,
+            sa.`status`
+        FROM
+            `smart_attendance` sa
+                LEFT JOIN smart_class sc on sa.class_id=sc.id
+                LEFT JOIN smart_grade sg on sc.grade_id=sg.id
+                LEFT JOIN smart_user su on sa.user_id=su.id
+        where sa.deleted = 0
+        <if test="gradeId != null and gradeId != ''">
+            and sc.grade_id=#{gradeId}
+        </if>
+        <if test="classId != null and classId != ''">
+            and sa.class_id = #{classId}
+        </if>
+        <if test="status != null and status != ''">
+            and sa.`status` = #{status}
+        </if>
+        <if test="studentNo != null and studentNo != ''">
+            and su.card_no = #{studentNo}
+        </if>
+        <if test="name != null and name != ''">
+            and sa.xw_user_name = #{name}
+        </if>
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+            and sa.attend_time &gt;= #{startTime} and sa.attend_time &lt;= #{endTime}
+        </if>
+        ORDER BY sa.create_time desc
     </select>
 </mapper>

+ 16 - 0
src/main/resources/mapper/template/SmartClassMapper.xml

@@ -2,4 +2,20 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.template.mapper.SmartClassMapper">
 
+    <select id="getSchoolClassIdList" resultType="com.template.model.vo.SmartClassVo">
+        SELECT sc.id     as id,
+               sc.name   as className,
+               sg.`name` as gradeName
+        FROM `smart_class` sc
+                 LEFT JOIN smart_grade sg ON sc.grade_id = sg.id
+    </select>
+    <select id="getSchoolClassId" resultType="com.template.model.vo.SmartClassVo">
+        SELECT sc.id     as id,
+               sc.name   as className,
+               sg.`name` as gradeName
+        FROM `smart_class` sc
+                 LEFT JOIN smart_grade sg ON sc.grade_id = sg.id
+        WHERE sc.id = #{schoolClass}
+    </select>
+
 </mapper>

+ 24 - 0
src/main/resources/mapper/template/SmartVisitorMapper.xml

@@ -111,4 +111,28 @@
         order by create_time desc
     </select>
 
+    <select id="getPage" resultType="com.template.model.vo.VisitorPageVo">
+        SELECT
+            sv.*
+        FROM
+            `smart_visitor` sv
+        WHERE deleted=0 and sv.visitor_type=#{type}
+        <if test="status != null and status != ''">
+            and sv.statu = #{status}
+        </if>
+        <if test="keyWord != null and keyWord != ''">
+            and (sv.user_name like '%' #{keyWord} '%' or sv.user_phone like '%' #{keyWord} '%' or sv.respondent_name
+            like '%' #{keyWord} '%'
+            or sv.department_id in (select id from smart_department where deleted = 0 and name like '%' #{keyWord} '%')
+            or sv.respondent_phone like '%' #{keyWord} '%' or sv.car_num like '%' #{keyWord} '%')
+        </if>
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+            and sv.create_time &gt;= #{startTime} and sv.create_time &lt;= #{endTime}
+        </if>
+        <if test="visitorStartTime != null and visitorStartTime != '' and visitorEndTime != null and visitorEndTime != ''">
+            and sv.visitor_time &gt;= #{visitorStartTime} and sv.visitor_time &lt;= #{visitorEndTime
+        </if>
+        order by sv.create_time desc
+    </select>
+
 </mapper>