数据库大作业 仓库管理系统 nodejs+mongodb

(系统是我做的文档是张立伟写的,写的我看了感觉自己干了件很吊的事)


数据库应用课程设计报告

课题名称:东华大学仓库管理系统

课程名称:数据库原理课程设计

个人信息

卓越网络1401 141330121李鼎天

卓越网络1401 141330114 张立伟

卓越网络1401 141330124 杨海川

指导教师

丁祥武

时间:2017年3月-4月

目录

数据库应用课程设计报告    1

一、绪论    3

二、相关技术介绍    3

1、数据库    3

2、Web技术    3

3、服务器    3

三、需求分析    4

1、系统总体需求    4

四、概要设计    4

1、    系统的功能模块框图    5

2、ER图    6

五、详细设计    8

1、对每个功能模块的详细设计    8

2、逻辑表结构的设计    13

六、系统实现    16

1、开发环境搭建    16

2、数据库的实现    16

3、前端界面的实现    19

4、功能实现    22

七、总结    33

八、参考文献    33

一、绪论

应课程设计要求,设计一套通用的仓库物资管理系统,可广泛适用与各类企事业单位的商品、物资、材料的日常库存管理及财务进销存核算管理。

二、相关技术介绍

1、数据库

Mongodb(nosql)

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

2、Web技术

静态网页:html+css+javascript jquery 动态网页:ejs

3、服务器

Node.js
Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

三、需求分析

1、系统总体需求

本仓库管理系统预计实现以下功能。

  1. 、支持先进先出法、后进先出法计算成本;
  2. 、支持货品采购、销售、退货、领料、回料、借还、调拨及盘点等仓储业务;
  3. 、支持任意时期库存查询,库存数量及资金汇总;
  4. 、支持对各种业务进行汇总;
  5. 、支持生成货品收发明细账;
  6. 、支持库存上下限报警;
  7. 、支持业务结转;
  8. 、支持退货等异常处理;
  9. 、支持操作员权限控制功能。

四、概要设计

初期的设计按照需求设计如下:

按照要求设计前端页面,使用mongo数据库作为数据存储。

  1. 系统的功能模块框图

系统整体功能模块如图4-1所示


图4-1系统功能模块图

2、ER图

  • 采购管理下的结构关系

采购结构关系如图4-2-1所示

图4-2-1采购管理关系结构图

  • 仓库管理下的结构关系

查询时可以显示出各个仓库的库存与资金等内容,如图4-2-2所示

图4-2-2仓库管理模块功能结构图

  • 管理员设置权限的结构关系

权限管理结构如图4-2-3所示

图4-2-3管理员设置权限结构图

五、详细设计

1、对每个功能模块的详细设计

  • 模块一 权限设计

用户登录分为管理员与用户,普通用户可以注册登录,通过对登陆过程的不同标记,管理员为1,普通用户为0,跳转到分别属于管理员和用户的两个不同的页面,进而分别有不同的操作。 整体过程如图5-1-1所示

图5-1-1 权限设计过程

  • 模块二 成本管理

分为两种算法计算

先进先出法计算成本、后进先出法计算成本,过程如图5-1-2所示

图5-1-2 两种算法具体流程

  • 模块三 采购管理

采购、销售、退货、领料、回料、借货、还货、调拨

  • 采购

采购功能如图5-1-3-1所示

图5-1-3-1 采购流程

  • 销售

销售过程如图5-1-3-2所示

图5-1-3-2 销售过程

  • 退货

退货过程如图5-1-3-3所示

图5-1-3-3 退货流程

  • 领料

领料过程如图5-1-3-4所示

图5-1-3-4 领料过程

  • 回料

回料过程如图5-1-3-5所示

图5-1-3-5 回料

  • 借货

借货流程如图5-1-3-6所示

图5-1-3-6 借货

  • 还货

还货过程如图5-1-3-7所示

图5-1-3-7 还货

  • 调拨

调拨如图5-1-3-8所示

图5-1-3-8 调拨

  • 模块四 仓库管理

库存查询如图5-1-4所示

图5-1-4 库存查询

  • 模块五 财务管理

业务汇总如图5-1-5所示

图5-1-5 业务汇总

  • 模块六 业务转结

业务结转如图5-1-6所示


图5-1-6 结转

  • 模块七 权限设置

权限设置整体流程如图5-1-7所示,先进入管理员页面,进而选择为普通用户打开哪些权限(默认普通用户的权限关闭),进而对数据库操作更改权限。

图5-1-7 权限管理

2、逻辑表结构的设计

  • 用户管理员数据库

存储代码

类型

备注

username/name

string

用户/管理员

password

string

密码

mode

string

模式

表5-2-1 用户管理员数据库

  • 操作记录数据库
存储代码 类型 备注
data string 日期
mode string 采购模式
number string 物品编号
time string 实际日期
detail string 标记
stock string 库存
price string 单价
warehouse string 仓库编号

表5-2-2 操作记录数据库

  • 库存查询数据库
属性名 存储代码 类型 备注
number number string 物品编号
detail detail string 标记
stock stock string 库存
stock0 stock0 string 还货
stock1 stock1 string 库存
stock2 stock2 string 库存
stock3 stock3 string 库存
stock4 stock4 string 库存
upper upper string 库存上限
under under string 库存下限

表5-2-3 数据查询数据库

  • 资金业务结转数据库
属性名 存储代码 类型 备注
fund fund string 总资金
fund0 fund0 string 总资金2
fund2 fund2 string 总资金(结转)
cost cost string 成本

表5-2-4 资金业务结转数据库

  • 更改权限的数据库
属性名 存储代码 类型 备注
purchase purchase string 采购
sale sale string 销售
cacle cacle string 退货
borrow borrow string 借货
return return string 还货
allot allot string 收发明细
authority authority string 库存查询

表5-2-5 权限数据库

六、系统实现

1、开发环境搭建

操作系统 Windows 8

数据库 Mongodb

Web开发软件 webstorm

服务器 node.js

语言 JavaScript、HTML5

2、数据库的实现

根据规划的变量关系分别建立了以下几个数据库

  • 用户管理员数据库


图6-2-1-1 用户管理员



图6-2-1-2 用户管理员数据库建立

分别有三个变量用户名、密码与模式,模式代表是管理员还是用户。

  • 操作记录数据库

建立了八个数据来存储操作记录

图6-2-2-1 操作记录


图6-2-2-2 操作记录数据库实现

  • 库存查询数据库

建立了10个数据来表示仓库的库存等内容

图6-2-3-1 库存查询相关数据


图6-2-3-2 库存查询数据库实现

  • 资金业务结转数据库

建立了四个数据来存储总资金与结转账户资金

图6-2-4-1 资金存储


图6-2-4-2 存储数据库

  • 更改权限的数据库

将需要更改的权限设立了一个数据库,便于管理员更改普通用户的权限(默认情况下系统各权限都是关闭的)

图6-2-5-1 权限


图6-2-5-2 权限数据库实现

3、前端界面的实现

(1)、登陆界面

本系统支持用户与管理员登陆,支持新用户注册

  1. 登陆页面

  • 图6-3-1-1 登录界面

  1. 注册页面


图6-3-1-2 注册页面

  1. 注册成功界面


图6-3-1-3 注册成功页面

  1. 前端界面实现的各个文件


图6-3-1-4 实现前端的各个文件截图

(2)、功能界面

  1. 用户界面

图6-3-2-1 用户界面

  1. 管理员界面


图6-3-2-2 管理员界面

4、功能实现

(1)、成本管理

需要在采购的时候选择是先进先出计算成本还是后进先出计算成本


图6-4-1-1 计算成本图

实现代码

部分源码截图


图6-4-1-2 实现代码截图

首先判断库存是否大于销售数量,大于的话按时间正序排列并更新成本,把销售的数据删除。等于的话直接更新成本,小于的话则跳转到erro界面。

(2)、采购管理

  1. 采购

可实现页面如下


图6-4-2-1 采购界面

实现部分代码截图

更新采购信息


图6-4-2-2 更新代码截图

计算库存与总资产


图6-4-2-3 计算库存总资产截图

  1. 销售

可实现销售物品日期等一系列信息,并支持选择先进先出法还是后进先出法计算成本。


图6-4-2-4 销售界面

实现过程将选择的信息写入数据库,并标记好按哪种方式计算成本,计算库存,计算总资产,两部分计算成本的算法如下。


图6-4-2-5 先进后出


图6-4-2-6 先进先出

  1. 退货

与采购类似,可以实现以下功能


图6-4-2-7 退货页面

实现功能的部分代码


图6-4-2-8 退货功能实现代码

  1. 领料、回料、借货、还货、调拨功能类似故放在一起阐述

实现效果如图


图6-4-2-9 功能界面

实现的部分代码如下


图6-4-2-10 实现代码

首先判断操作数据是否大于零,然后判断几号物品然后判断几号仓库,进而进行相关操作。

(3)、仓库管理

实现效果如下


图6-4-3-1 库存查询

直接查询数据库相关数据显示到前端web界面。

实现的部分操作代码如下。


图6-4-3-2 操作代码

(4)、业务汇总

实现效果如下


图6-4-4-1 业务汇总

做了个页面实现功能跳转


图6-4-4-2 跳转实现部分代码

(5)、业务结转

效果图


图6-4-5-1 业务结转

设置一个结转账户,将总资产转结到转结账户,并将总资产清零。


图6-4-5-2 结转账户代码实现

(6)、设置权限


图6-4-6-1 权限设置页面

根据建立的标记数据库,更改权限,打开更改权限功能将标记乘以-1


图6-4-6-2 权限设置实现部分代码

七、总结

在开始课程设计之前,我们也并没有做过一个完整系统的经验,上学期的课程也仅仅是对数据库的一些操作,并没有学会如何连接数据库,所以我们是边学习边完成的这个项目,

学会如何设计前端界面,如何对数据库中的数据操作,如何进行服务器的异步运算以及服务器对前端网页的操作。看似很简单的要求都会折磨我们很久去解决,在这期间碰到很多的问题,找寻了大量的参考书和网络上的教程官方文档来学习,最后也算完美的实现了要求项目的功能。

八、参考文献

Node.js开发实战详解 黄丹华 清华大学出版社

JavaScript实战 张泽娜 清华大学出版社

MongoDB实战 Shavn Verch 华中科技大学出版社

HTML5权威指南 Adam Freeman 人民邮电出版社

锋利的jQuery 单东林 张晓菲 魏然 人民邮电出版社

JavaScript Dom 编程艺术 人民邮电出版社

mongoose官方文档:

http://www.nodeclass.com/api/mongoose.html

mongoose学习参考文档:

https://cnodejs.org/topic/504b4924e2b84515770103dd

nodejs基于express搭建注册登录web功能:

http://www.cnblogs.com/Leowl/p/4361289.html

发表评论

电子邮件地址不会被公开。