EMOS個人教程-第7章 人臉考勤簽到進階篇


1 章節介紹

2 簽到業務流程

3 開通騰訊位置服務

  • 開通騰訊位置服務
    • 特點
      • 免費注冊
      • 每天提供1萬次的API調用
      • 可以把GPS坐標轉換成地址
      • 提供了JavaScript接口
    • 創建密鑰
    • 在小程序中添加騰訊位置服務為合法域名
  • 獲取GPS坐標
  • 把坐標轉換成地址

4 把定位坐標轉換成真實地址

5 在Docker中安裝人臉識別鏡像

[root@localhost ~]# cd /etc/sysconfig/ 
[root@localhost sysconfig]# cat selinux 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

SELINUX=enforcing 改為 disabled

修改完重啟 reboot

安裝docker並啟動

yum install docker -y

systemctl start docker

上傳影像

docker load < face.tar.gz

解壓配置文件

tar -xvf demo.tar

創建容器

docker run -itd -p 3000:3000 -v  ~/demo:/demo --name st_face face

docker rm st_face

docker start st_face

docker stop st_face

進入容器后,進入demo文件夾,運行python命令

docker exec -it st_face /bin/sh
cd demo
nohup python3 -c "from app import app;" > log.out 2>&1 &

查看進程

ps -aux


USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.6 169072 13236 pts/0    Ssl+ 02:07   0:00 /usr/bin/qemu-x
root        10  0.0  0.3 152532  6684 pts/1    Ssl  02:07   0:00 /usr/bin/qemu-x
root        37  0.0  0.4 187200  9684 ?        Rl+  Oct30   0:00 /bin/ps -aux
[1] + Illegal instruction        nohup python3 -c "from app import app;" 1>log.out 2>&1

查看網絡端口

ip addr

6 運行人臉識別程序

7 實現人臉簽到(持久層)

  • 先判斷簽到用戶是否存在人臉模型?
  • 用簽到照片比對人臉模型,識別簽到人
  • 根據簽到地址判斷新冠疫情風險等級
    • 向本地寶H5頁面傳入URL參數查詢疫情風險等級
    • 理由jsoup解析HTML頁面中的數據
    • 高風險則發出告警郵件
      • 異步多線程發送郵件
        • 不會阻塞簽到業務
        • 多線程發送郵件,速度更快
      • 導入Email庫
      • 配置SMTP服務器
      • 定義常用企業郵箱
      • 發送郵件
        • 創建線程池
        • 創建線程任務
  • 存儲簽到結果
    • 每天只能簽到1次
    • 測試的時候要刪除當天已有的簽到記錄

8 實現人臉簽到(業務層)

9 查詢簽到所在地區新冠疫情風險等級

10 發送疫情高風險地區告警郵件

11 實現人臉簽到(Web層)

       <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.14.3</version>
        </dependency>

12 創建新員工人臉模型數據(業務層)

13 創建新員工人臉模型數據(Web層)

14-1 實現人臉簽到(移動端)

設計簽到成功頁面

  • 內容
    • 用戶信息
    • 簽到信息
    • 考勤統計
      • 總考勤天數
      • 本周考勤統計
        • 先查詢出本周考勤記錄、特殊工作日和節假日
        • 用DateUtil.range()生成本周的七天日期對象
        • 用本周每天日期查詢當天的考勤情況
          • 先斷定當天是工作日還是節假日
          • 未來的日子考勤結果為空字符串
          • 當天考勤結束前,沒考勤的結果為空字符串
          • 工作日沒有考勤記錄就算曠工
  • 展示頁面內容

15-2 實現人臉簽到(移動端)

月考勤頁面

  • 用戶可以到月考勤頁面查看自己的考勤
  • 用戶頁面
    • 進入到月考勤頁面的鏈接
    • 移動端權限驗證
      • 用戶登陸后權限列表保存在Storage里面
      • 用Storage中的權限和目標權限做比較
    • 設計頁面,加載數據

16 章節總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM