springboot搭建訪客管理系統(tǒng)的實(shí)現(xiàn)示例
項(xiàng)目介紹
springboot搭建的訪客管理系統(tǒng),針對(duì)高端基地做嚴(yán)格把控來訪人員信息管理,用戶后端可以設(shè)置多個(gè)管理員帳號(hào),給予不同部門的管理層使用,用戶管理可以增加/修改內(nèi)部成員的基本信息,需要到訪的人員必須通過進(jìn)入程序,在訪客預(yù)約里面提交預(yù)約申請(qǐng),預(yù)約后管理員可查詢預(yù)約記錄以及訪客出入記錄。
項(xiàng)目適用人群
正在做畢設(shè)的學(xué)生,或者需要項(xiàng)目實(shí)戰(zhàn)練習(xí)的Java學(xué)習(xí)者
開發(fā)環(huán)境
- jdk 8
- intellij idea
- tomcat 8.5.40
- mysql 5.7
所用技術(shù)
- springboot
- mybatis
- layUi
- JSP
項(xiàng)目訪問地址
http://localhost:8090
帳號(hào):admin 密碼:admin
項(xiàng)目截圖
登錄
子賬號(hào)管理
新增成員
預(yù)約列表
歷史預(yù)約
出入影像記錄
表格導(dǎo)出
訪客預(yù)約申請(qǐng)
關(guān)鍵代碼:
用戶信息
public class SmartUser { @ApiModelProperty(value="用戶編號(hào)",dataType="String",name="password") private Long id; @ApiModelProperty(value="登錄帳號(hào)",dataType="String",name="account") private String account; @ApiModelProperty(value="用戶名稱",dataType="String",name="name") private String name; @ApiModelProperty(value="用戶年齡",dataType="Integer",name="age") private int age; @ApiModelProperty(value="手機(jī)號(hào)",dataType="String",name="phone") private String phone; @ApiModelProperty(value="密碼",dataType="String",name="password") private String password; @ApiModelProperty(value="mac",dataType="String",name="mac") private String mac; @ApiModelProperty(value="備注",dataType="String",name="remark") private String remark ; @ApiModelProperty(value="創(chuàng)建時(shí)間",dataType="String",name="createTime") private String createTime; private String headPic; }
添加訪客記錄
@ApiOperation(value="添加預(yù)約",notes="添加預(yù)約") @ResponseBody @PostMapping("/addVisitor") public Response<String> addVisitor(Visitor visitor){ SmartUser smartUser=new SmartUser(); smartUser.setPhone(visitor.getUserPhone()); smartUser.setName(visitor.getUserName()); smartUser=smartUserService.login(smartUser); if(null!=smartUser){ return visitorService.saveOrUpdate(visitor); }else{ return Response.error(300);//查無一人 } }
訪客記錄導(dǎo)出
@GetMapping("/exportExcel") public void exportExcel(HttpServletResponse response) { try{ List<List<String>> rows =new ArrayList<>(); List<String> row1 = CollUtil.newArrayList("訪客姓名", "訪客手機(jī)號(hào)", "被訪人姓名", "被訪人電話", "預(yù)約日期", "訪問事由"); rows.add(row1); List<VisitorRecord> list=smartUserService.getAll(); for(VisitorRecord vr:list){ rows.add(CollUtil.newArrayList(vr.getVisitorName(), vr.getPhone(),vr.getUserPhone(),vr.getUserName(),vr.getAppointmentTime(),vr.getReasons())); } ExcelWriter writer = ExcelUtil.getWriter(); writer.write(rows); response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition","attachment;filename="+ DateUtils.getTime3()+"visitorRecord.xls"); ServletOutputStream out=response.getOutputStream(); writer.flush(out); writer.close(); IoUtil.close(out); }catch (Exception e){ e.printStackTrace(); } }
4.過期預(yù)約做定時(shí)清理
@Scheduled(cron = "0 0/1 * * * ?") private void configureTasks() { List<Visitor> list=visitorService.findVisitorList(""); if(list.size()>0){ for(Visitor v:list){ Long now=Long.valueOf(DateUtils.getTime2()); Long appointmentTime=Long.valueOf(v.getAppointmentTime().replaceAll("-","").replaceAll(" ","")); if(appointmentTime-now<=0){ VisitorRecord visitorRecord=new VisitorRecord(); BeanUtils.copyProperties(v,visitorRecord); visitorRecordService.save(visitorRecord); visitorService.deleteUserById(Long.valueOf(v.getId())); } } } }
注意事項(xiàng)
- 預(yù)約地址需要有管理端分享地址給房主,由房主分享給到訪的做預(yù)約登記
- 后期增加房主端,新增房主查看記錄
備注:基礎(chǔ)版做的比較簡單,有條件的同學(xué)可以對(duì)接硬件設(shè)備,跑完整體流程
到此這篇關(guān)于springboot搭建訪客管理系統(tǒng)的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)springboot搭建訪客管理系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
教你開發(fā)腳手架集成Spring?Boot?Actuator監(jiān)控的詳細(xì)過程
這篇文章主要介紹了開發(fā)腳手架集成Spring?Boot?Actuator監(jiān)控的詳細(xì)過程,集成包括引入依賴配置文件及訪問驗(yàn)證的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05IntelliJ IDEA 創(chuàng)建spring boot 的Hello World 項(xiàng)目(圖解)
這篇文章主要介紹了IntelliJ IDEA 創(chuàng)建spring boot 的Hello World 項(xiàng)目的步驟詳解,需要的朋友可以參考下2018-01-01一文詳解Java如何優(yōu)雅地判斷對(duì)象是否為空
這篇文章主要給大家介紹了關(guān)于Java如何優(yōu)雅地判斷對(duì)象是否為空的相關(guān)資料,在Java中可以使用以下方法優(yōu)雅地判斷一個(gè)對(duì)象是否為空,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04IO流:java中解碼和編碼出現(xiàn)亂碼說明以及代碼實(shí)現(xiàn)方法
最近使用Java編寫一些讀取文件的小工具的時(shí)候,經(jīng)常與IO流打交道,但是自己對(duì)IO流的理解不是特別深刻,趁機(jī)整理下,這篇文章主要給大家介紹了關(guān)于IO流:java中解碼和編碼出現(xiàn)亂碼說明以及代碼實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2023-11-11Springboot 自定義校驗(yàn)代碼實(shí)例
這篇文章主要介紹了Springboot 自定義校驗(yàn)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11java循環(huán)結(jié)構(gòu)、數(shù)組的使用小結(jié)
這篇文章主要介紹了java循環(huán)結(jié)構(gòu)、數(shù)組的使用小結(jié),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09