liu 2 лет назад
Родитель
Сommit
f619548f17

+ 3 - 0
src/main/java/com/template/api/SmartFaceDiscernControllerAPI.java

@@ -40,5 +40,8 @@ public interface SmartFaceDiscernControllerAPI {
     @ApiOperation(value = "人脸管理记录", notes = "人脸管理记录", httpMethod = "GET")
     CommonResult faceManagement(@RequestParam int currentPage, @RequestParam int pageCount,String keyWord,String gradeId,String classId,String startTime,String endTime);
 
+    @GetMapping(value = "/faceManagementExport")
+    @ApiOperation(value = "人脸管理记录", notes = "人脸管理记录", httpMethod = "GET")
+    void faceManagementExport(HttpServletResponse response,String keyWord,String gradeId,String classId,String startTime,String endTime);
 
 }

+ 47 - 0
src/main/java/com/template/controller/SmartFaceDiscernController.java

@@ -18,7 +18,12 @@ import com.template.model.result.PageUtils;
 import com.template.model.vo.AskForLeaveScreenVo;
 import com.template.model.vo.FaceManagementVo;
 import com.template.model.vo.LastSevenDaysTrackVo;
+import com.template.model.vo.SmartAccessVo;
 import com.template.services.*;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -546,6 +551,48 @@ public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI
         return CommonResult.ok(result);
     }
 
+    @Override
+    public void faceManagementExport(HttpServletResponse response, String keyWord, String gradeId, String classId, String startTime, String endTime) {
+        //导出
+        Workbook workbook = new XSSFWorkbook();
+        Sheet sheet = workbook.createSheet("人脸记录");
+        Row headerRow = sheet.createRow(0);
+        headerRow.createCell(0).setCellValue("序号");
+        headerRow.createCell(1).setCellValue("姓名");
+        headerRow.createCell(2).setCellValue("班级");
+        headerRow.createCell(3).setCellValue("年级");
+        headerRow.createCell(4).setCellValue("地点");
+        headerRow.createCell(5).setCellValue("图片");
+        headerRow.createCell(6).setCellValue("创建时间");
+
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        //        默认前一天的
+        if (ObjectUtils.isEmpty(startTime)||ObjectUtils.isEmpty(endTime)) {
+            LocalDateTime now = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0);
+            LocalDateTime end = now.plusDays(1);
+            startTime=now.format(dateTimeFormatter);
+            endTime=end.format(dateTimeFormatter);
+        }
+
+        List<FaceManagementVo> vos= smartFaceDiscernService.faceManagementExport(keyWord,gradeId,classId,startTime,endTime);
+
+        for (int i = 0; i < vos.size(); i++) {
+            FaceManagementVo vo = vos.get(i);
+            Row dataRow = sheet.createRow(i + 1);
+            dataRow.createCell(0).setCellValue(i + 1);
+            dataRow.createCell(1).setCellValue(vo.getName());
+            dataRow.createCell(2).setCellValue(vo.getClassName());
+            dataRow.createCell(3).setCellValue(vo.getGradeName());
+            dataRow.createCell(4).setCellValue(vo.getLocation());
+            dataRow.createCell(5).setCellValue(vo.getImage());
+            dataRow.createCell(6).setCellValue(vo.getDateTime());
+
+        }
+
+        // 将工作簿写入文件
+        ExcelUtils.excelDownload(workbook, "人脸记录.xlsx", response);
+    }
+
 
     public static JSONObject getDate(Integer date) {
         JSONObject jsonObject = new JSONObject();

+ 6 - 1
src/main/java/com/template/mapper/SmartFaceDiscernMapper.java

@@ -9,6 +9,8 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * <p>
  *  Mapper 接口
@@ -20,5 +22,8 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface SmartFaceDiscernMapper extends BaseMapper<SmartFaceDiscern> {
 
-    IPage<FaceManagementVo> faceManagement(Page<FaceManagementVo> page,@Param("keyWord") String keyWord,@Param("gradeId") String gradeId,@Param("classId") String classId,@Param("startTime") String startTime,@Param("endTime") String endTime);
+    IPage<FaceManagementVo> faceManagement(Page<FaceManagementVo> page, @Param("keyWord") String keyWord, @Param("gradeId") String gradeId, @Param("classId") String classId, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    List<FaceManagementVo> faceManagementExport(@Param("keyWord") String keyWord, @Param("gradeId") String gradeId, @Param("classId") String classId, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
 }

+ 2 - 0
src/main/java/com/template/services/SmartFaceDiscernService.java

@@ -40,4 +40,6 @@ public interface SmartFaceDiscernService extends IService<SmartFaceDiscern> {
     List<SmartFaceDiscern> track(String stateTime, String endTime, Integer id);
 
     PageUtils<FaceManagementVo> faceManagement(int currentPage, int pageCount, String keyWord,String gradeId,String classId,String startTime,String endTime);
+
+    List<FaceManagementVo> faceManagementExport(String keyWord, String gradeId, String classId, String startTime, String endTime);
 }

+ 6 - 0
src/main/java/com/template/services/impl/SmartFaceDiscernServiceImpl.java

@@ -304,4 +304,10 @@ public class SmartFaceDiscernServiceImpl extends ServiceImpl<SmartFaceDiscernMap
         IPage<FaceManagementVo> datas = smartFaceDiscernMapper.faceManagement(page,keyWord,gradeId,classId,startTime,endTime);
         return new PageUtils(datas);
     }
+
+    @Override
+    public List<FaceManagementVo> faceManagementExport(String keyWord, String gradeId, String classId, String startTime, String endTime) {
+        List<FaceManagementVo> vos = smartFaceDiscernMapper.faceManagementExport(keyWord,gradeId,classId,startTime,endTime);
+        return vos;
+    }
 }

+ 33 - 0
src/main/resources/mapper/template/SmartFaceDiscernMapper.xml

@@ -33,4 +33,37 @@
         </if>
         ORDER BY sfd.date_time desc
     </select>
+
+    <select id="faceManagementExport" resultType="com.template.model.vo.FaceManagementVo">
+        SELECT
+        sfd.id,
+        sfd.`name`,
+        sc.`name` as className,
+        sg.`name` as gradeName,
+        sfd.type,
+        sfd.location,
+        sfd.image,
+        sfd.date_time AS dateTime
+        FROM
+        `smart_face_discern` sfd
+        LEFT JOIN smart_user su ON sfd.user_id = su.id
+        LEFT JOIN smart_class sc ON su.school_class = sc.id
+        LEFT JOIN smart_grade sg ON sc.grade_id = sg.id
+        WHERE
+        sfd.deleted =0
+        <if test="keyWord != null and keyWord != ''">
+            and (sfd.`name` like '%' #{keyWord} '%'  or sfd.location like '%' #{keyWord} '%')
+        </if>
+        <if test="gradeId != null and gradeId != ''">
+            and sc.grade_id= #{gradeId}
+        </if>
+        <if test="classId != null and classId != ''">
+            and su.school_class= #{classId}
+        </if>
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+            and sfd.date_time &gt;= #{startTime} and sfd.date_time &lt;= #{endTime}
+        </if>
+        ORDER BY sfd.date_time desc
+    </select>
+
 </mapper>