浏览代码

更新学习轨迹,日常轨迹,轨迹查询

liu 2 年之前
父节点
当前提交
0e1139e79b

+ 6 - 0
src/main/java/com/template/api/SmartUserControllerAPI.java

@@ -264,4 +264,10 @@ public interface SmartUserControllerAPI {
     @ApiOperation(value = "个人通讯录", notes = "个人通讯录", httpMethod = "GET")
     CommonResult addressBook(@RequestParam Integer userId);
 
+
+    @GetMapping(value = "/statisticsCampusManag")
+    @ApiOperation(value = "管理端——在校统计", notes = "管理端——在校统计", httpMethod = "GET")
+    CommonResult statisticsCampusManage(@RequestParam Integer classId,@RequestParam String dateTime,String keyWord);
+
+
 }

+ 33 - 3
src/main/java/com/template/controller/SmartFaceDiscernController.java

@@ -1,6 +1,7 @@
 package com.template.controller;
 
 
+import com.alibaba.druid.sql.visitor.functions.If;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
@@ -135,7 +136,18 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
             }
 
             lastSevenDaysTrackVo.setName(attendance.getXwUserName());
-            lastSevenDaysTrackVo.setType("打卡");
+            Integer status = attendance.getStatus();
+            if (status==0) {
+                lastSevenDaysTrackVo.setType("准时打卡");
+            }else if (1==status){
+                lastSevenDaysTrackVo.setType("迟到打卡");
+            }else if (7==status){
+                lastSevenDaysTrackVo.setType("超时打卡");
+            }else if (6==status){
+                lastSevenDaysTrackVo.setType("请假");
+            }
+
+
 //            lastSevenDaysTrackVo.setLocation(className);
             Date attendTime = attendance.getAttendTime();
             lastSevenDaysTrackVo.setDateTime(sdf.format(attendTime));
@@ -240,7 +252,16 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
         for (SmartAttendance attendance : attendances) {
             LastSevenDaysTrackVo lastSevenDaysTrackVo = new LastSevenDaysTrackVo();
             lastSevenDaysTrackVo.setName(attendance.getXwUserName());
-            lastSevenDaysTrackVo.setType("打卡");
+            Integer status = attendance.getStatus();
+            if (status==0) {
+                lastSevenDaysTrackVo.setType("准时打卡");
+            }else if (1==status){
+                lastSevenDaysTrackVo.setType("迟到打卡");
+            }else if (7==status){
+                lastSevenDaysTrackVo.setType("超时打卡");
+            }else if (6==status){
+                lastSevenDaysTrackVo.setType("请假");
+            }
             lastSevenDaysTrackVo.setLocation(className);
             Date attendTime = attendance.getAttendTime();
             lastSevenDaysTrackVo.setDateTime(sdf.format(attendTime));
@@ -549,7 +570,16 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
                 vo.setLocation(coord.getType());
             }
             vo.setName(attendance.getXwUserName());
-            vo.setType("打卡");
+            Integer status = attendance.getStatus();
+            if (status==0) {
+                vo.setType("准时打卡");
+            }else if (1==status){
+                vo.setType("迟到打卡");
+            }else if (7==status){
+                vo.setType("超时打卡");
+            }else if (6==status){
+                vo.setType("请假");
+            }
             Date attendTime = attendance.getAttendTime();
             vo.setDateTime(sdf.format(attendTime));
             vos.add(vo);

+ 36 - 0
src/main/java/com/template/controller/SmartUserController.java

@@ -4974,6 +4974,42 @@ public class SmartUserController implements SmartUserControllerAPI {
 
         return CommonResult.ok(map);
     }
+
+    @Override
+    public CommonResult statisticsCampusManage(Integer classId, String dateTime,String keyWord) {
+        DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        LocalDateTime startTime = LocalDateTime.parse(dateTime, dateTimeFormatter1);
+        LocalDateTime endTime = startTime.plusDays(1);
+
+        //        正常
+        Set<StatisticsCampusManageVo> vos = new HashSet<>();
+
+//        查找门禁记录
+        List<StatisticsCampusManageVo> accessVos=smartUserService.getAccessStatisticsCampusManage(classId,startTime,endTime,keyWord);
+        for (StatisticsCampusManageVo accessVo : accessVos) {
+            vos.add(accessVo);
+        }
+//        查找打卡记录
+        List<StatisticsCampusManageVo> attendanceVos=smartUserService.getAttendanceStatisticsCampusManage(classId,startTime,endTime,keyWord);
+        for (StatisticsCampusManageVo attendanceVo : attendanceVos) {
+            vos.add(attendanceVo);
+        }
+//        查找人脸记录
+        List<StatisticsCampusManageVo> faceDiscernVos=smartUserService.getFaceDiscernStatisticsCampusManage(classId,startTime,endTime,keyWord);
+        for (StatisticsCampusManageVo faceDiscernVo : faceDiscernVos) {
+            vos.add(faceDiscernVo);
+        }
+
+//        查找请假记录
+        List<StatisticsCampusManageVo> ackVos= smartUserService.getAckStatisticsCampusManage(classId,startTime,endTime,keyWord);
+        for (StatisticsCampusManageVo ackVo : ackVos) {
+            vos.add(ackVo);
+        }
+
+
+
+        return null;
+    }
     //endregion
 
     //region 用户导出

+ 15 - 6
src/main/java/com/template/mapper/SmartUserMapper.java

@@ -24,7 +24,7 @@ import java.util.List;
 public interface SmartUserMapper extends BaseMapper<SmartUser> {
     List<AffiliateUserVo> queryAffiliateUserById(@Param("id") Integer id);
 
-    IPage<UserVo> querySmartUserPages(IPage<UserVo> page,@Param("departmentIds") List<Integer> departmentIds, @Param("name") String name);
+    IPage<UserVo> querySmartUserPages(IPage<UserVo> page, @Param("departmentIds") List<Integer> departmentIds, @Param("name") String name);
 
     List<SmartUser> querySmartUsers(@Param("departmentIds") List<Integer> departmentIds, @Param("name") String name);
 
@@ -38,7 +38,7 @@ public interface SmartUserMapper extends BaseMapper<SmartUser> {
 
     List<AffiliateParentVo> queryAffiliateParents(@Param("userId") Integer userId);
 
-    List<SmartUser> getAffiliateList(@Param("id")Integer id);
+    List<SmartUser> getAffiliateList(@Param("id") Integer id);
 
     SmartUserVo querySmartUserById(@Param("userId") Integer userId);
 
@@ -52,13 +52,22 @@ public interface SmartUserMapper extends BaseMapper<SmartUser> {
 
     List<SmartUser> querySmartParentByIds(@Param("studentIds") List<Integer> studentIds);
 
-    List<StatisticsCampusVo> getAccessStatisticsCampus(@Param("classId") Integer classId,@Param("startTime") LocalDateTime startTime,@Param("endTime") LocalDateTime endTime);
+    List<StatisticsCampusVo> getAccessStatisticsCampus(@Param("classId") Integer classId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
 
-    List<StatisticsCampusVo> getAttendanceStatisticsCampus(@Param("classId") Integer classId,@Param("startTime") LocalDateTime startTime,@Param("endTime") LocalDateTime endTime);
+    List<StatisticsCampusVo> getAttendanceStatisticsCampus(@Param("classId") Integer classId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
 
-    List<StatisticsCampusVo> getFaceDiscernStatisticsCampus(@Param("classId") Integer classId,@Param("startTime") LocalDateTime startTime,@Param("endTime") LocalDateTime endTime);
+    List<StatisticsCampusVo> getFaceDiscernStatisticsCampus(@Param("classId") Integer classId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
 
-    List<StatisticsCampusVo> getAckStatisticsCampus(@Param("classId") Integer classId,@Param("startTime") LocalDateTime startTime,@Param("endTime") LocalDateTime endTime);
+    List<StatisticsCampusVo> getAckStatisticsCampus(@Param("classId") Integer classId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
 
     List<StatisticsCampusVo> getClassStudent(@Param("classId") Integer classId);
+
+    List<StatisticsCampusManageVo> getAccessStatisticsCampusManage(@Param("classId") Integer classId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime,@Param("keyWord")String keyWord);
+
+    List<StatisticsCampusManageVo> getAttendanceStatisticsCampusManage(@Param("classId") Integer classId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime,@Param("keyWord")String keyWord);
+
+    List<StatisticsCampusManageVo> getFaceDiscernStatisticsCampusManage(@Param("classId") Integer classId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime,@Param("keyWord")String keyWord);
+
+    List<StatisticsCampusManageVo> getAckStatisticsCampusManage(@Param("classId") Integer classId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime,@Param("keyWord")String keyWord);
+
 }

+ 28 - 0
src/main/java/com/template/model/vo/StatisticsCampusManageVo.java

@@ -0,0 +1,28 @@
+package com.template.model.vo;
+
+import lombok.Data;
+
+@Data
+public class StatisticsCampusManageVo {
+    private Integer userId;
+
+    private String gradeName;
+
+    private String className;
+
+    private String name;
+
+    private String cardNo;
+
+
+    @Override
+    public String toString() {
+        return "StatisticsCampusManageVo{" +
+                "userId=" + userId +
+                ", gradeName='" + gradeName + '\'' +
+                ", className='" + className + '\'' +
+                ", name='" + name + '\'' +
+                ", cardNo='" + cardNo + '\'' +
+                '}';
+    }
+}

+ 8 - 0
src/main/java/com/template/services/SmartUserService.java

@@ -159,4 +159,12 @@ public interface SmartUserService extends IService<SmartUser> {
     List<SmartUser> queryTeachers();
 
     List<SmartUser> getAddressBook(Integer userId);
+
+    List<StatisticsCampusManageVo> getAccessStatisticsCampusManage(Integer classId, LocalDateTime startTime, LocalDateTime endTime,String keyWord);
+
+    List<StatisticsCampusManageVo> getAttendanceStatisticsCampusManage(Integer classId, LocalDateTime startTime, LocalDateTime endTime,String keyWord);
+
+    List<StatisticsCampusManageVo> getFaceDiscernStatisticsCampusManage(Integer classId, LocalDateTime startTime, LocalDateTime endTime,String keyWord);
+
+    List<StatisticsCampusManageVo> getAckStatisticsCampusManage(Integer classId, LocalDateTime startTime, LocalDateTime endTime, String keyWord);
 }

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

@@ -98,7 +98,7 @@ public class SmartAttendanceServiceImpl extends ServiceImpl<SmartAttendanceMappe
         LambdaQueryWrapper<SmartAttendance> wrapper=new LambdaQueryWrapper<>();
         wrapper.eq(SmartAttendance::getUserId,userId)
                 .between(SmartAttendance::getAttendTime,startTime,endTime)
-                .eq(SmartAttendance::getStatus,0)
+                .ne(SmartAttendance::getStatus,3)
                 .orderByDesc(SmartAttendance::getAttendTime);
         List<SmartAttendance> list = this.list(wrapper);
 

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

@@ -418,5 +418,25 @@ public class SmartUserServiceImpl extends ServiceImpl<SmartUserMapper, SmartUser
         return list;
     }
 
+    @Override
+    public List<StatisticsCampusManageVo> getAccessStatisticsCampusManage(Integer classId, LocalDateTime startTime, LocalDateTime endTime,String keyWord) {
+        return smartUserMapper.getAccessStatisticsCampusManage(classId,startTime,endTime,keyWord);
+    }
+
+    @Override
+    public List<StatisticsCampusManageVo> getAttendanceStatisticsCampusManage(Integer classId, LocalDateTime startTime, LocalDateTime endTime,String keyWord) {
+        return smartUserMapper.getAttendanceStatisticsCampusManage(classId,startTime,endTime,keyWord);
+    }
+
+    @Override
+    public List<StatisticsCampusManageVo> getFaceDiscernStatisticsCampusManage(Integer classId, LocalDateTime startTime, LocalDateTime endTime,String keyWord) {
+        return smartUserMapper.getFaceDiscernStatisticsCampusManage(classId,startTime,endTime,keyWord);
+    }
+
+    @Override
+    public List<StatisticsCampusManageVo> getAckStatisticsCampusManage(Integer classId, LocalDateTime startTime, LocalDateTime endTime, String keyWord) {
+        return smartUserMapper.getAckStatisticsCampusManage(classId,startTime,endTime,keyWord);
+    }
+
 
 }

+ 104 - 9
src/main/resources/mapper/template/SmartUserMapper.xml

@@ -329,16 +329,111 @@
         GROUP BY su.id
     </select>
     <select id="getClassStudent" resultType="com.template.model.vo.StatisticsCampusVo">
-        SELECT
-            su.id      as userId,
-            su.`name`  as name,
-            su.card_no as cardNo
-        FROM
-            `smart_user` su
-        WHERE
-            su.deleted = 0
+        SELECT su.id      as userId,
+               su.`name`  as name,
+               su.card_no as cardNo
+        FROM `smart_user` su
+        WHERE su.deleted = 0
           AND su.is_cancel = 0
           AND su.identity_id = 2
-          AND su.school_class=#{classId}
+          AND su.school_class = #{classId}
     </select>
+    <select id="getAccessStatisticsCampusManage" resultType="com.template.model.vo.StatisticsCampusManageVo">
+        SELECT su.id as userId,
+        su.`name` as name,
+        su.card_no as cardNo,
+        sc.`name` as className,
+        sg.`name` as gradeName
+        FROM `smart_user` su
+        LEFT JOIN smart_access sa on sa.user_id = su.id
+        LEFT JOIN smart_class sc on sc.id = su.school_class
+        LEFT JOIN smart_grade sg on sg.id = sc.grade_id
+        WHERE su.deleted = 0
+        AND su.is_cancel = 0
+        AND su.identity_id = 2
+        AND su.school_class = #{classId}
+        AND sa.date_time >= #{startTime}
+        AND #{endTime} >= sa.date_time
+        <if test="keyWord != null and keyWord != '' ">
+            and (su.name like '%' #{keyWord} '%' or su.card_no like '%' #{keyWord} '%')
+        </if>
+        GROUP BY su.id
+    </select>
+
+    <select id="getAttendanceStatisticsCampusManage"
+            resultType="com.template.model.vo.StatisticsCampusManageVo">
+        SELECT su.id as userId,
+        su.`name` as name,
+        su.card_no as cardNo,
+        sc.`name` as className,
+        sg.`name` as gradeName
+        FROM `smart_user` su
+        LEFT JOIN smart_attendance sat on sat.user_id = su.id
+        LEFT JOIN smart_class sc on sc.id = su.school_class
+        LEFT JOIN smart_grade sg on sg.id = sc.grade_id
+        WHERE su.deleted = 0
+        AND su.is_cancel = 0
+        AND su.identity_id = 2
+        AND su.school_class = #{classId}
+        AND sat.`status`!=3
+        AND sat.attend_time >= #{startTime}
+        AND #{endTime} >= sat.attend_time
+        <if test="keyWord != null and keyWord != '' ">
+            and (su.name like '%' #{keyWord} '%' or su.card_no like '%' #{keyWord} '%')
+        </if>
+        GROUP BY su.id
+    </select>
+
+    <select id="getFaceDiscernStatisticsCampusManage"
+            resultType="com.template.model.vo.StatisticsCampusManageVo">
+
+        SELECT su.id as userId,
+        su.`name` as name,
+        su.card_no as cardNo,
+        sc.`name` as className,
+        sg.`name` as gradeName
+        FROM
+        `smart_user` su
+        LEFT JOIN smart_face_discern sfd on sfd.user_id=su.id
+        LEFT JOIN smart_class sc on sc.id=su.school_class
+        LEFT JOIN smart_grade sg on sg.id=sc.grade_id
+        WHERE
+        su.deleted = 0
+        AND su.is_cancel = 0
+        AND su.identity_id = 2
+        AND su.school_class=#{classId}
+        AND sfd.date_time >= #{startTime}
+        AND #{endTime} >= sfd.date_time
+        <if test="keyWord != null and keyWord != '' ">
+            and (su.name like '%' #{keyWord} '%' or su.card_no like '%' #{keyWord} '%')
+        </if>
+        GROUP BY su.id
+
+
+    </select>
+    <select id="getAckStatisticsCampusManage" resultType="com.template.model.vo.StatisticsCampusManageVo">
+        SELECT su.id as userId,
+        su.`name` as name,
+        su.card_no as cardNo,
+        sc.`name` as className,
+        sg.`name` as gradeName
+        FROM
+        `smart_user` su
+        LEFT JOIN smart_attendance sat on sat.user_id=su.id
+        LEFT JOIN smart_class sc on sc.id=su.school_class
+        LEFT JOIN smart_grade sg on sg.id=sc.grade_id
+        WHERE
+        su.deleted = 0
+        AND su.is_cancel = 0
+        AND su.identity_id = 2
+        AND su.school_class=#{classId}
+        AND sat.`status`=6
+        AND sat.initiate_time >= #{startTime}
+        AND #{endTime} >= sat.initiate_time
+        <if test="keyWord != null and keyWord != '' ">
+            and (su.name like '%' #{keyWord} '%' or su.card_no like '%' #{keyWord} '%')
+        </if>
+        GROUP BY su.id
+    </select>
+
 </mapper>