做一个C# winform程序放在管理机上作为服务端,数据库用mysql,增删改查、签到签退和日志记录都在服务端进行,然后再写一个简单的html表单页面,用js获取前台数据后通过websocket传给winform,再通过它传给数据库实现远程预约。

采用的技术

C# winform, MySQL, HTML+CSS+JS, HTML5 websocket


项目背景

公司对保密机房实行出入控制,并留存所有进出人员的信息作为追责依据。

现存模式是线上问卷调查和线下纸质记录的模式,具体来说,来访人员通过扫描二维码填写调查问卷完成预约,管理员从问卷后台获取信息后手动记录到纸质档案中。在来访者到达和离开机房时,由陪同人员进行签到和签退,并记录此次访问的具体操作过程。

这种模式下需要相对较多的人工干预,不利于长期稳定的维护,公司需要开发一种新的预约登记模式来替代现存模式,这种新模式需要管理员机器自动记录所有来访人员信息,并提供一种线上预约途径以替代此前使用的第三方问卷平台。这样既可以保护来访者的隐私信息,又能大量减轻管理员的日常工作负担,同时自动化的登记过程也为完整的日志记录提供了强有力的保证,避免过多人工干预带来的事故。


具体需求

管理员服务端:多用户登录,来访登记的增删改查,签到签退,日志记录,导出阅读性良好的日志文件等;

web客户端:登记预约信息。


数据库

user: 管理员用户表
字段:username, password

registration: 预约信息表
字段:number, name, company, idcard, phone, staff, ETA, date, relevants, intention, signinstaff, signindatetime, signoutstaff, signoutdatetime

log: 日志表
字段:name, company, idcard, phone, staff, date, signinstaff, signindatetime, signoutstaff, signoutdatetime, relevants, intention


开发思路

最初的思路是借助微信小程序便捷的特性,开发一款小程序提供给移动端进行登记,在服务端通过调用小程序的API获取数据并记录下来,而记录的增删改查和签到签退都由小程序实现,这样可以省去大部分服务端开发过程,快速实现需求功能。但我对微信小程序开发几乎没有了解,而且作为公司用户开发小程序需要在系统没有开发完成前预支一定的平台使用费用,因此我把这个思路否掉了。

正式采用的思路是做一个C# winform程序放在管理机上作为服务端,数据库用mysql,增删改查、签到签退和日志记录都在服务端进行,然后再写一个简单的html表单页面,用js获取前台数据后通过websocket传给winform,再通过它传给数据库实现远程预约。


web客户端界面

来访登记系统 android 来访请登记_数据库


服务端界面

来访登记系统 android 来访请登记_数据库_02

来访登记系统 android 来访请登记_来访登记系统 android_03

来访登记系统 android 来访请登记_数据库_04

来访登记系统 android 来访请登记_服务端_05

来访登记系统 android 来访请登记_服务端_06

来访登记系统 android 来访请登记_服务端_07