微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 基于Smartkey自动控制技术的车辆管理系统设计

基于Smartkey自动控制技术的车辆管理系统设计

时间:01-11 来源:3721RD 点击:

不同级别的用户拥有不同的权限,所以不同角色用户登陆后进入的主页面也不同,除了管理员之外,高级用户拥有相对较多的权利,图1展示了高级用户的主页面。


3 数据库设计

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

根据系统的需要。数据库中共设计了14个表。它们分别是:用户表、近途车辆使用表、长途车辆使用表、驾驶员档案表、车辆档案表、车辆类型表、车辆保险档案表、车辆保险类型表、车辆故障维修表、车辆故障维修明细表、车辆日常保养表、车辆日常保养明细表、车辆年审信息表、车辆重大事件表。图2展示了这些表的关系。表1和表2是其中的两个表的设计结构。


4 系统设计思路

4.1 系统的功能模块

如果说从纵向分析这个系统可以分为6种角色的话,从横向来看,系统又可以划分为多个功能模块,如用车管理、车辆养护、车辆信息、统计报表、系统管理。这几个功能模块针对不同的角色分发不同的权限,如车辆养护,中级用户只能填写和查看本部门的车辆,而高级用户可以查看整个公司的车辆养护信息。图3展示了系统主要涉及的几个功能模块。


4.2 用车管理

用车管理指的是申请人填写派车单,然后部门审核、总经部审核,最后申请人还车填写公里数和各种费用完成单子的流转。用车管理难点就是派车单的流转,派车单审批的流程如图4所示。

为了实现派车单的流转,本系统采取对数据库表中关键字判断的方式实现流程的控制,如一个长途派车单;申请人填写的内容只是长途车辆使用表中的部分字段;如果表中该记录"部门审核结果"字段为空就说明部门领导还没有审核,这时如部门主任登陆就可以看到该派车单,然后需要对该派车单审批。审批完后,"部门审批人"和"部门审批结果"字段就不为空,但是因为总经部还未审核,所以"总经部审核结果"字段为空。根据这个判断条件,可以显示出总经部要审核的派车单,总经部主任登陆后可以看到该派车单,然后进行审批,当"部门审核结果"和"总经部审核结果"都不为空时,就说明派车单审核流程已完成,接下来就需要申请人在用车后填写公里数和费用,这个派车单才算结束。

派车单流转的过程中,还涉及车辆的状态问题,在该系统中,部门派车是用车者自己选择部门的车辆出车;而总经部派车是总经部主任选择公司的车辆出车。派车单的派车类型如果是部门派车,在申请人选择本部门车辆的同时,该车辆的状态就由"空闲"变为"出车",而总经部派车是在总经部主任分配了公司的某个车辆出车后该车辆的状态才变为"出车".车辆的状态一旦变为"出车"就不能再被派遣,只有在申请人还车时填写了公里数和费用后车辆的状态才变为"空闲".

4.3 车辆养护和车辆信息

这两个模块在逻辑功能上相对较简单,通过司机用户进入相应的界面可以实现信息的录入,特殊用户、高级用户可以对车辆信息和车辆养护情况了解和查看。

4.4 统计报表

统计报表分为按月统计和年度统计两部分,它们的实现主要采用分为SQL语句中的SUM函数通过限定一定的时间范围从而得出想要的结果。以下就是年度统计页面中用到的SQL语句。

string YearSum="SELECT 车辆, 月份, sum(汽油费合计) AS 总汽油费, sum(公里合计) AS 总公里数"

+ " FROM (SELECT 车辆, month(出车时间) AS 月份, sum(汽油费) AS 汽油费合计, sum(止公里数-起公里数) AS 公里合计"

+ " FROM CTCLSYB"

+ " WHERE 车辆=′" + DropDownList1.SelectedValue + "′and year(出车时间)=′"+DropDownList2.SelectedValue+"′"

+ "GROUP BY month(出车时间), 车辆"

+ "UNION select 车辆,month(出车时间) as 月份,sum(汽油费) AS 汽油费合计, sum(止公里数-起公里数) AS 公里合计"

+ "FROM JTCLSYB"

+ "WHERE 车辆=′"+DropDownList1.SelectedValue+"′and year(出车时间)=′"+DropDownList2.SelectedValue+"′"

+ "group BY month(出车时间), 车辆) AS A"

+ "GROUP BY 月份, 车辆"); DataTable dt = DataLayer.Select("SELECT 车辆, 月份, sum(汽油费合计) AS 总汽油费, sum(公里合计) AS 总公里数"

+ " FROM (SELECT 车辆, month(出车时间) AS 月份, sum(汽油费)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top