修改版本4S店汽车销售及服务管理系统的设计与实现.docx
《修改版本4S店汽车销售及服务管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《修改版本4S店汽车销售及服务管理系统的设计与实现.docx(30页珍藏版)》请在冰豆网上搜索。
修改版本4S店汽车销售及服务管理系统的设计与实现
4S店汽车销售及服务管理系统的设计与实现
1引言
1.14S店汽车销售及服务管理系统的发展现状
相对于国外同行来说,我国汽车服务企业的信息化总体应用水平还相当低。
企业信息的传送更多地仍以最原始的图纸传送方式为主,只有少量的信息借助互联网进行传送。
这种状况要求我们必须尽快提升汽车服务企业的信息化水平,总结国外汽车服务企业的发展历程,少走弯路,在提升整个行业信息化水平的过程中充分采用跨跃式发展的思路。
近年来我国汽车服务业的信息化水平已经有了长足的发展和进步。
企业信息管理系统正在规划和建设之中,管理者也已清醒地认识到,信息化对推动一个企业发展的重要作用及意义,这就为下一步更好地利用信息化成果来推动汽车服务业健康高效发展奠定了坚实的基础。
1.2开发的背景和意义
随着汽车工业竞争的日趋激烈,我国汽车销售市场出现了以整车销售(sale)、配件供销(sparepart)、售后服务(service)、信息反馈(survey)这四项功能集于一体(简称为4S)的汽车销售服务企业。
由于许多4S店不分经销的汽车品牌的档次、强弱,不管其投资何时能回收,过份追求毫华、一流,一哄而上建4S店,导致了社会资源的大量浪费,和给自身的生存和发展背上了沉重的包袱。
值得一提的是随着利润空间的不断压缩,不少4S店已直接面临着生存危机,提高工作效率,降低经营成本迫在眉睫。
电子计算机信息管理系统在4S店的合理运用,能很好的解决如上问题。
电子计算机系统的建立,实现了汽车销售、配件供销、服务接待与结算、业务管理等系统的内外联网。
加强软件建设,使4S店发挥更大的优势,特别是充分发挥电子计算机进行信息交流的互动功能和管理功能。
汽车销售及服务管理系统在汽车服务企业的合理运用顺应新时代计算机信息技术和汽车服务企业发展趋势的要求,是企业信息化的必然过程,是降低企业经营成本和提高企业竞争力的有效方法。
2需求分析
2.14S店汽车销售及服务管理系统功能
汽车服务企业管理系统要根据行业特点,对经营过程中所有的重要环节——销售、维修和库存进行管理。
能够完成需要的营业统计和生成所有的维修、销售和出入库单据。
能够对企业经营的人力和物质资源进行有效管理。
2.24S店汽车销售及服务管理系统业务分析
根据对汽车服务企业的调查,该类企业的主要管理业务主要有以下几点:
1.汽车维修业务管理
汽车维修业务的完成需要企业多个部门人员的配合才能完成,包括进厂接待、接待人员输入客户车辆的相关信息、调度员分析汽车故障后确定派工人员、派工人员确定车辆故障、根据车辆故障列出需要使用的物料、工具和服务等、仓库人员根据派工人员的需求查询库存信息确定采购方式和库存调拨方案、派工人员到仓库领用物资进行作业、车辆维修完工结算。
2.汽车销售业务管理
销售管理是系统的核心功能。
需要处理汽车服务企业中所有常见的销售方式,区别对待销售、预售、调拨,为财务管理提供合适的销售数据。
该模块还必须提供多种查询方式,将配件标准编码、拼音和通用情况结合起来,找出最符合客户要求的配件组合,供其选择。
3.物料出入库、移动管理
对日常的生产领料、销售提货、采购入库、生产入库和物料库位移动等工作进行管理,产生出、入和移动单据,改变仓库、货位的库存数量,登记数量帐。
4.库存物料管理信息分析
从各种角度对库存物料信息做分析。
如物料库存数量分析(是否超储或短缺)、物料来源和去向分析和物料分类构成分析等。
3系统设计
3.1系统模块设计
根据系统的需求分析,系统应包括以下几个模块:
(1)维修管理模块
维修管理主要完成维修单据的创建、维修单据的编辑和维修单据的删除。
(2)销售管理模块
销售管理主要完成销售单据的创建、销售单据的编辑和销售单据的删除。
(3)库存管理模块
库存管理主要完成仓库的管理、出入库的管理、库存盘点。
(4)客户管理模块
客户管理主要完成销售和维修客户的创建、编辑和删除。
(5)系统管理模块
系统管理主要完成系统用户的维护、系统通知的维护、仓库基本信息管理和所有仓库数据维护及报表打印。
系统的总体功能模块如图1-1所示
图1-1系统的总体功能模块图
3.1.1维修管理模块
(1)创建维修工单。
在系统输入送修单位、送修时间、操作类型、故障描述、经手人、材料名和材料数量,可以点击查找物料的链接到物料查找的页面进行查找,点击查找到的物料系统会自动跳转回创建维修工单的页面,并会自动填入刚才选择的物料,输入完所有的信息,点击提交,系统提示成功创建维修工单。
(2)编辑维修工单。
该管理页面可以实现对维修工单的修改,操作用户根据实际需求填入需要修改的数据,点击提交保存,系统提示成功修改维修工单。
(3)删除维修工单。
该管理页面可以实现对维修工单的删除,操作用户根据实际需求,选择要删除的维修工单,点击确定删除按钮,系统会提示:
是否要删除该维修工单,单击是,该维修工单会从数据库里删除,系统提示成功删除维修工单,单击否,系统自动跳转到工作页面,系统不对该维修工单进行删除操作,数据库仍然会保留该维修工单的数据。
维修管理模块包括如图1-2所示
图1-2维修管理模块图
3.1.2销售管理模块
(1)创建销售单。
在系统内输入购买单位、购买时间、操作类型、细节描述、经手人、购买车型和数量等信息,点击提交按钮,系统把信息写入数据库,系统提示操作成功。
(2)编辑销售单。
该管理页面实现对销售单的修改,操作用户根据实际情况,对要修改的内容进行修改,点击保存按钮,系统把修改后的数据写入相关的数据库,系统提示操作成功。
(3)删除销售单。
该管理页面可以实现对销售单的删除,操作用户根据实际需求,选择要删除的销售单。
销售管理模块包括如图1-3所示
图1-3销售管理模块图
3.1.3库存管理模块
(1)仓库管理。
该管理页面主要完成以下功能:
通知列表及内容展示功能,所管理仓库的库存产品数量超限警报功能,产品的类别设置等。
(2)库存盘点。
根据物料打印出盘点单据,根据盘点单据到仓库进行实物盘点,根据盘点结果录入盘点差异。
(3)入库管理。
操作员根据收货单据录入材料名和数量等相应的数据,系统会自动生成入库单。
(4)出库管理。
操作员根据实际需求录入材料名和数量,系统自动生成出库单。
(5)仓库查询。
输入要查询的物料号或物料名,点击开始查询,输出查询结果;如果不记得物料号和物料名,可以进行模糊查询,输入物料描述,点击开始查询,输出查询结果。
库存管理模块包括如图1-4所示
图1-4库存管理模块图
3.1.4客户管理模块
(1)添加客户信息。
在系统内输入客户姓名、电话等信息,点击提交按钮,系统提示成功创建客户信息。
(2)编辑客户信息。
根据需要修改客户信息,点击保存,系统提示修改成功。
(3)删除客户信息。
该管理页面可以实现对客户信息的删除,操作用户根据实际需求,选择要删除的客户信息。
客户管理模块包括如图1-5所示
图1-5客户管理模块图
3.1.5系统管理模块
(1)系统用户管理。
系统管理员可以增加、删除、编辑用户,用户分为仓库管理员、入库员、出库员这三个角色,由于本系统支持多仓库操作,所以状态权限细分到单个仓库,修改本用户密码。
(2)系统通知管理。
发布系统通知,方便管理员和整个系统用户的信息交流,显示通知列表及内容。
(3)仓库信息管理。
对仓库进行增加、删除、及相关编辑,以满足生产扩张的需要,对仓库库存产品大类、产品小类进行增删改管理,产品小类设置数量上下限,索模块支持模糊搜索。
(4)仓库数据维护。
库存警报显示库存产品数量超限的产品,方便管理员实时监控库存数量;库存盘点对近三个月及本年度的出入库等数据进行展示,方便管理对帐;单据管理展示所有用户的操作记录及产品流动记录,并提供搜索服务;数据报表将仓库所有产品流动记录展示并提供报表数据搜索及导出功能(数据导出主要为Excel和PDF两种格式)
系统管理模块包括如图1-6所示
图1-6系统管理模块图
3.2系统数据库设计
表1.1仓储人员表(User)
字段
类型
长度
备注
id
int
4
自编号
username
varchar
20
用户名
password
varchar
20
密码
warehouse_id
int
4
仓库ID
goods_type
int
4
0库管理1为入库2为出库
表1.2仓库表(Warehouse)
字段
类型
长度
备注
id
int
4
自编号
name
varchar
20
仓库名称
shelf_number
int
4
货架总数
表1.3库存产品表(Goods)
字段
类型
长度
备注
id
int
4
自编号
price
decimal
10
产品价格
quantity
int
4
产品数量
factory
varchar
20
产品厂家
ctime
varchar
10
生产日期
itime
varchar
10
入库日期
表1.4单据表(Receipt)
字段
类型
长度
备注
id
int
4
自编号
goods_id
int
4
库存产品ID
goods_number
int
4
库存产品数量
get_user
varchar
20
需求人
input_user
int
4
操作人
time
varchar
10
操作时间
receipt_type
int
4
操作类型
表1.5操作类型表(ReceiptType)
字段
类型
长度
备注
id
int
4
自编号
receipt_type
varchar
50
类型
表1.6系统日志表(Record)
字段
类型
长度
备注
id
int
4
自编号
uid
int
4
用户ID
goods_id
Int
4
操作的产品ID
goods_number
Int
4
该产品数量
receipt_type
Int
4
操作类型表
record_time
varchar
10
操作时间
表1.7系统通知表(SystemNotification)
字段
类型
长度
备注
id
int
4
自编号
tatile
varchar
50
公告标题
content
text
255
系统公告
time
varchar
10
发布时间
6总结
6.1系统的总结
本系统已经从功能上满足了4S店汽车销售及服务管理系统管理的需要,但是从技术上来说这个系统还并不是一个高水平的作品。
任何一个项目想做的完美都不是一件很容易的事情。
本系统在以下几个方面还存在缺陷:
1.没有设计财务模块,已有模块功能也不是很完善,特别是没有设计与财务模块的集成点;
2.数据报表模块应该有图形化的展示界面,这样更加直观。
6.2开发过程的总结
开发过程是快乐的。
因为在开发中不但能充实生活,同时自己的技能也得到了很好锻炼。
但是在开发过程中暴露出自己的一些问题或不足也是很值得思考的:
首先,在对一个系统的整体理解上,还不够充分,因此功能模块的设计和开发出现过技术上的调整。
其次,在进行开发时,还不能深入的理解ASP.NET的思想,所以虽然是在.NET下开发程序,有些时候却还是在用面向过程的程序算法来实现……
相信有了这次开发经历,以后再做类似的开发项目,应该就会少栽很多跟头了。
附录
系统共用类,该类在系统App_Code文件夹下。
该类下文件可以被整个应用程序集引用,其主要文件如下所示。
SqlDataBase.cs类,数据库操作文件程序如下:
usingSystem;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
///
///SqlDataBase的摘要说明
///
publicclassSqlDataBase
{
publicSqlDataBase()
{
//
//TODO:
在此处添加构造函数逻辑
//
}
privateSqlConnectionCn;
privateSqlCommandCm;
privateDataSetds;
privateDataViewdv;
#region
privatevoidOpen()//数据库连接
{
Cn=newSqlConnection(ConfigurationSettings.AppSettings["Den"]);
Cn.Open();
}
#endregion
#region关闭连接
privatevoidClose()
{
if(Cn!
=null)
{
Cn.Close();
Cn.Dispose();
}
}
#endregion
#region执行简单的SQL语句
publicvoidNoreturnSql(stringSql)
{
Open();
Cm=newSqlCommand(Sql,Cn);
Cm.ExecuteNonQuery();
Close();
}
#endregion
#region返回首列单行的SQL语句
publicstringReturnSQL(stringSql)
{
stringReturnstring="";
try
{
Open();
Cm=newSqlCommand(Sql,Cn);
Returnstring=Cm.ExecuteScalar().ToString();
}
catch
{
}
Close();
returnReturnstring;
}
#endregion
#region返回SQL语句的DateSet数据集
publicDataSetGetDS(stringSQL)
{
Open();
SqlDataAdaptermyAdapter=newSqlDataAdapter(SQL,Cn);
ds=newDataSet();
myAdapter.Fill(ds);
Close();
returnds;
}
#endregion
#region返回一个DataView视图
publicDataViewDV(stringSQL)
{
ds=GetDS(SQL);
dv=ds.Tables[0].DefaultView;
returndv;
}
#endregion
#region返回一个DataTable对象
publicDataTableDT(stringSQL)
{
returnGetDS(SQL).Tables[0];
}
#endregion
#region返回一个含有两个DataTable的DataSet数据集
publicDataSetTwoDS(stringSQL1,stringSQL2)
{
DataSetmyDS=newDataSet();
Open();
SqlDataAdaptermyAD1=newSqlDataAdapter(SQL1,Cn);
myAD1.Fill(myDS,"Big");
SqlDataAdaptermyAD2=newSqlDataAdapter(SQL2,Cn);
myAD2.Fill(myDS,"Small");
Close();
returnmyDS;
}
#endregion
#region
publicSqlDataReaderGRead(stringSql)
{
Open();
SqlCommandmycom=newSqlCommand(Sql,Cn);
SqlDataReaderDr=mycom.ExecuteReader();
returnDr;
}
#endregion
#region创建一个Command来执行存储过程
privateSqlCommandReturnCM(stringRunNM,SqlParameter[]PartNM)
{
Open();
SqlCommandThisCm=newSqlCommand(RunNM,Cn);
ThisCm.CommandType=CommandType.StoredProcedure;
//传入参数
if(PartNM!
=null)
{
foreach(SqlParameterparmtinPartNM)
ThisCm.Parameters.Add(parmt);
}
//加入返回参数
ThisCm.Parameters.Add(newSqlParameter("ReturnValue",SqlDbType.Int,4,
ParameterDirection.ReturnValue,false,0,0,
string.Empty,DataRowVersion.Default,null));
returnThisCm;
}
#endregion
#region返回带参数的存储过程
publicintRunInsert(stringRunName,SqlParameter[]PartName)
{
SqlCommandMyCM=ReturnCM(RunName,PartName);
MyCM.ExecuteNonQuery();
this.Close();
return(int)MyCM.Parameters["ReturnValue"].Value;
}
#endregion
#region//传入输入的参数
publicSqlParameterIntParam(stringParamName,SqlDbTypeDbType,intSize,objectValue)
{
ReturnMakeParam(ParamName,DbType,Size,ParameterDirection.Input,Value);
}
#endregion
#region//传入返回值参数
publicSqlParameterOutParam(stringParamName,SqlDbTypeDbType,intSize)
{
returnMakeParam(ParamName,DbType,Size,ParameterDirection.Output,null);
}
#endregion
#region//生成存储过程参数
privateSqlParameterMakeParam(stringParamName,SqlDbTypeDbType,Int32Size,ParameterDirectionDirection,objectValue)
{
SqlParameterparam;
if(Size>0)
{
param=newSqlParameter(ParamName,DbType,Size);
}
else
{
param=newSqlParameter(ParamName,DbType);
}
param.Direction=Direction;
if(!
(Direction==ParameterDirection.Output&&Value==null))
param.Value=Value;
returnparam;
}
#endregion
}
UserAction.cs类,用户操作行为文件程序如下:
usingSystem;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
///
///UserAction的摘要说明
///
publicclassUserAction:
SqlDataBase
{
publicUserAction()
{
//
//TODO:
在此处添加构造函数逻辑
//
}
publicboolUserChangePwd(stringUserNam,stringOldPwd,stringNewPwd)
{
SqlDataBaseMyDB=newSqlDataBase();//调用SqlDataBase类
intCheckNum=Convert.ToInt32(MyDB.ReturnSQL("selectcount(*)fromUserListwhereUserName='"+UserNam+"'andPassWord='"+OldPwd+"'"));
if(CheckNum>0)
{
MyDB.NoreturnSql("updateUserListsetPassWord='"+NewPwd+"'whereUserName='"+UserNam+"'");
returntrue;
}
else
{
returnfalse;
}
}
publicboolUserAdd(stringUserNam,s