• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于人臉識別的值班簽到系統(tǒng)設(shè)計與實現(xiàn)

    2019-05-24 14:12:12謝亦才
    電腦知識與技術(shù) 2019年7期
    關(guān)鍵詞:人臉識別

    謝亦才

    摘要:本值班簽到系統(tǒng)以MVC為開發(fā)模式,采用JSP為前臺頁面開發(fā)技術(shù)、servlet開發(fā)跳轉(zhuǎn)等流程控制的控制器,Java語言開發(fā)業(yè)務邏輯等模型,以SQL SERVER2008為數(shù)據(jù)庫,tomcat為WEB服務器。開發(fā)了用戶管理、值班管理(包括部門排班、節(jié)假日排班、值周排班、生成值班信息等)、人臉識別設(shè)備管理、微信端值班情況查詢及上報等功能模塊。實現(xiàn)了值班簽到的真實性和無紙化,推進了校園信息化建設(shè)。

    關(guān)鍵詞:人臉識別;值班考勤;MVC

    中圖分類號:TP311 文獻標識碼:A

    文章編號:1009-3044(2019)07-0200-03

    開放科學(資源服務)標識碼(OSID):

    1 引言

    我國絕大部分大學都建設(shè)了占地面積大的新校區(qū),需要每天安排值班人員巡查,及時發(fā)現(xiàn)、報告、處置各種突發(fā)事件。為了加強對值班人員的管理,切實履行值班職責,需要對值班人員進行簽到考勤。傳統(tǒng)的值班簽到考勤,很多采用紙質(zhì)簽名的方式,這種方式浪費人力、物力,特別不能解決真實性問題,很容易代簽、事后補簽。如今可以利用計算機和網(wǎng)絡(luò)技術(shù)使傳統(tǒng)的紙質(zhì)簽名考勤方式向網(wǎng)絡(luò)化和無紙化方向發(fā)展,有采用一卡通、指紋等打卡[1]的手段,但都無法解決真實性問題。目前采用人臉識別手段的值班考勤,能解決真實性問題,基于人臉識別的值班簽到系統(tǒng)就是因此而設(shè)計和開發(fā)的。可以有效解決代簽、事后補簽等問題,還可以圖文并茂的方式及時上報值班情況。

    本文根據(jù)學校值班管理制度的實際業(yè)務需求,設(shè)計并實現(xiàn)了一套基于人臉識別的值班簽到系統(tǒng)。系統(tǒng)采用MVC架構(gòu),使用JSP做前臺WEB頁面、HTML5做微信查看和上報情況前端、SQL Server2008 作為后臺數(shù)據(jù)庫、JAVA編程實現(xiàn)業(yè)務邏輯。系統(tǒng)有用戶管理、值班管理(包括部門排班、節(jié)假日排班、值周排班、生成值班信息等)、人臉識別設(shè)備管理、微信端值班情況查詢及上報等功能模塊。本系統(tǒng)的使用提高了值班人員的便捷性和工作效率。

    2 系統(tǒng)架構(gòu)

    為了使系統(tǒng)有更好的可擴展性,便于后期的維護,本基于人臉識別的值班簽到系統(tǒng)采用MVC架構(gòu),如圖1所示。

    MVC 設(shè)計模式的核心是實現(xiàn)三層甚至多層的松散耦合,它將應用程序抽象為模型、控制器以及視圖3 個部分,三者既分工又合作地完成用戶提交的任務[2]。實現(xiàn)了視圖層、業(yè)務層和模型層的分離。

    (1)視圖層(View):提供用戶交互界面,包括登錄界面、排班頁面、值班上報頁面、刷臉記錄頁面、設(shè)備管理頁面等。它依據(jù)模型數(shù)據(jù)創(chuàng)建的,可以從 Model 訪問數(shù)據(jù),并指定如何表示數(shù)據(jù)。

    (2)控制器(Controller):負責從視圖讀取數(shù)據(jù),并向模型發(fā)送數(shù)據(jù),然后根據(jù)用戶動作和 Model 處理的結(jié)果,選擇一個 視圖作為這個用戶請求響應的一部分。

    (3)模型層 (Model):負責在數(shù)據(jù)庫中存取數(shù)據(jù),用于處理應用程序業(yè)務邏輯,比如登錄認證、排班錄入、生成預排班記錄、值班上報、設(shè)置值班類型、查詢值班情況等。

    3 功能設(shè)計

    該人臉識別簽到系統(tǒng)的功能有管理員系統(tǒng)和微信端查詢及上報情況子系統(tǒng)兩大模塊,其中管理員系統(tǒng)功能包括用戶管理、值班管理(包括部門排班、節(jié)假日排班、值周排班、生成值班信息等)、微信端值班情況查詢及上報、人臉識別設(shè)備管理等功能模塊。功能圖2所示:

    4 數(shù)據(jù)庫設(shè)計

    依據(jù)系統(tǒng)功能模塊, 按照數(shù)據(jù)庫設(shè)計規(guī)范[3],數(shù)據(jù)庫主要有用戶表、值班記錄表、值班調(diào)整表、值班類型表、設(shè)備表信息表等。其中以用戶表和值班記錄表為例如表1所示:

    5 系統(tǒng)實現(xiàn)

    根據(jù)系統(tǒng)功能和數(shù)據(jù)庫設(shè)計分析,實現(xiàn)系統(tǒng)的總體工作流程如圖3所示:

    5.1 系統(tǒng)開發(fā)工具

    本系統(tǒng)總體采用MVC開發(fā)模式,用JSP技術(shù)開發(fā)視圖層,其中微信端用HTML5,Java語言開發(fā)模型層,Servlet開發(fā)控制層。采用SQL SERVER2008做數(shù)據(jù)庫,TOMCAT做WEB服務器。

    5.2 生成預值班記錄

    系統(tǒng)每天晚上12點根據(jù)值班安排表自動生成第二天的值班人員名單,簡稱為預值班記錄,該預值班記錄只有工號和日期字段值,其他的諸如簽到時間、簽退時間、情況報告和狀態(tài)等字段暫設(shè)置為空,第二天各個值班人員確實通過刷臉簽到(退)時填入。部分核心代碼如下:

    public void generateDuty(Integer scheduleId) {

    SimpleCondition condition = new SimpleCondition();

    condition.andEqual("scheduleId", scheduleId);

    List scheduleList = dutySchedulemapper.list(condition);

    for (DutyDeptScheduleVO dutyScheduleVO : scheduleList) {

    SimpleCondition itemCondition = new SimpleCondition();

    itemCondition.andEqual("scheduleId", dutyScheduleVO.getScheduleId());

    itemCondition.andEqual("dataFlag", BaseConstant.DATA_FLAG_NORMAL);

    itemCondition.orderAsc("dutySort");

    List itemList = dutyScheduleItemService.list(itemCondition);

    if (itemList == null) {throw new ProgramException("排班明細不能為空!"); }

    if (itemList != null && dutyScheduleVO.getDutyNum() > itemList.size()) {

    throw new ProgramException("值班人數(shù)大于員工數(shù),請重新設(shè)置");}

    dutyDeptRecordService.deleteDutyRecordBatch(new Date(), dutyScheduleVO.getOrgId(), DutyTypeEnum.DeptDuty.getIndex());

    if (ScheduleTypeEnum.WEEKLOOP.getIndex() == dutyScheduleVO.getSheduleType()) {generateWeekLoop(dutyScheduleVO, itemList);}

    else if (ScheduleTypeEnum.DAYLOOP.getIndex() == dutyScheduleVO.getSheduleType()) {generateDayLoop(dutyScheduleVO, itemList);}

    else if (ScheduleTypeEnum.FIXED.getIndex() == dutyScheduleVO.getSheduleType()) {generateFixed(dutyScheduleVO, itemList);

    } else if (ScheduleTypeEnum.CADRE.getIndex() == dutyScheduleVO.getSheduleType()) {generateCadre(dutyScheduleVO, itemList);}

    else if (ScheduleTypeEnum.WEEKEND.getIndex() == dutyScheduleVO.getSheduleType())

    {generateWeekend(dutyScheduleVO, itemList); }}PartitiveFields fields = new PartitiveFields();

    fields.put("status", 2);UserUtil.initUpdateInfo(fields);updatePartitive(fields, scheduleId); }}

    5.3 微信端查詢

    微信端查詢包括查看值班人員的簽到簽退時間和值班情況上報。這個功能的實現(xiàn)主要是在web層使用html5制作頁面,在學校的微信服務號中加鏈接即可實現(xiàn),如圖4所示:

    5.4 刷臉簽到(退)更新策略算法

    因為是刷臉記錄簽到(退)時間,而刷臉可能有意無意地會有多次,不同時間刷臉的時間記錄作為簽到還是簽退時間,后面的刷臉時間覆蓋前面的時間還是保持不變等都需要更新策略。刷臉簽到(退)更新策略步驟如下:

    第一、獲取當前刷臉時間CurRecTime;

    第二、簽到字段是否為空?是,則更新簽到值為當前CurRecTime;否,則轉(zhuǎn)入第三步;

    第三、簽退字段值是否為空?是,則轉(zhuǎn)入第四步;否,則轉(zhuǎn)入第六步;

    第四、簽到記錄值是否在正常簽到時間之前?是,則轉(zhuǎn)入第五步;否,則更新簽退字段值為當前CurRecTime;

    第五、CurRecTime是否小于正常右端值?是,則更新簽到字段值為CurRecTime;否,則更新簽退字段值為CurRecTime;

    第六、簽退記錄是否在正常簽退時間區(qū)間?是,不更新簽退值;否,則轉(zhuǎn)入第七步;

    第七、簽退記錄時間小于正常簽退時間左端?是, 簽退字段值更新為CurRecTime;否,則不更新。

    6 結(jié)束語

    基于MVC模式開發(fā)的基于人臉識別的值班簽到系統(tǒng),有效地杜絕了替簽到、事后簽到的問題,從根本上解決了值班真實性問題。

    參考文獻:

    [1] 江奇峰.高校課堂指紋考勤信息管理系統(tǒng)設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2017.13(23):72-73.

    [2] 邊霞,趙奎,胡曉勤,等.基于MVC的文件備份后臺管理系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與技術(shù),2011,32(9):3196.

    [3] 亓永剛.SQL Server數(shù)據(jù)庫管理與開發(fā)兵書[M].北京:電子工業(yè)出版社,2013.

    【通聯(lián)編輯:梁書】

    猜你喜歡
    人臉識別
    人臉識別 等
    作文中學版(2022年1期)2022-04-14 08:00:34
    揭開人臉識別的神秘面紗
    學生天地(2020年31期)2020-06-01 02:32:06
    基于(2D)2PCA-LBP 的人臉識別方法的研究
    電子制作(2017年17期)2017-12-18 06:40:55
    人臉識別在高校安全防范中的應用
    電子制作(2017年1期)2017-05-17 03:54:46
    基于類獨立核稀疏表示的魯棒人臉識別
    計算機工程(2015年8期)2015-07-03 12:19:07
    基于K-L變換和平均近鄰法的人臉識別
    铜陵市| 拜泉县| 镇巴县| 张北县| 中西区| 彭山县| 高州市| 涞水县| 高碑店市| 上高县| 亚东县| 集安市| 乾安县| 金阳县| 华安县| 韩城市| 南康市| 广汉市| 孝义市| 宁乡县| 罗平县| 娄底市| 阿巴嘎旗| 阿合奇县| 定西市| 龙门县| 楚雄市| 亚东县| 白城市| 九寨沟县| 泽普县| 德令哈市| 房山区| 济阳县| 新昌县| 克什克腾旗| 吉安县| 齐齐哈尔市| 正定县| 宾川县| 溧阳市|