电子商务课程实验,小实验一共是有两个,MPS进度安排和CRM商品推荐,两个小实验我放在了同一个界面里。
先附上github地址:https://github.com/shanghaixuhuan/myERP
实验工具
Python、SQLite、PyQt5、PyCharm
实验目的
熟悉MRP算法,能应用MRP计算出采购计划和生产计划
实验内容
1、输入主生产计划的记录
2、MRP计算
3、输出相应子物料的采购计划和生产计划,根据需求日期的先后排序
实验步骤
① 整体框架设计
② 数据表的设计
(1) BOM表
数据表名:BOM 中文描述:BOM
字段名称 字段描述 数据类型 长度 是否允许空 缺省值 备注
BOMid BOM编号 Char 20 N NULL 主键
BOMdes BOM描述 var
har 20 N NULL
BOMnum BOM数量 int Y 0
BOMunit BOM单位 varchar 20 Y NULL
BOMlayer BOM层次 char 20 N NULL
(2) 物料表
数据表名:material 中文描述:物料表
字段名称 字段描述 数据类型 长度 是否允许空 缺省值 备注
Mid 物料编号 Char 20 N NULL 主键
Mname 物料名称 varchar 20 N NULL
Munit 物料单位 varchar 20 N 0
Mway 获取方式 varchar 20 N NULL
Mrate 损耗率 float N 0.0
Mday 作业提前期 int N 0
(3) 库存表
数据表名:stock 中文描述:库存表
字段名称 字段描述 数据类型 长度 是否允许空 缺省值 备注
Sid 物料编号 Char 20 N NULL 主键
Sname 物料名称 varchar 20 N NULL
Sgstock 工序库存 Int N 0
Szstock 资材库存 int N 0
(4) 调配构成表
数据表名:allocate 中文描述:调配构成表
字段名称 字段描述 数据类型 长度 是否允许空 缺省值 备注
Aid 调配基准编号 Char 20 N NULL 主键
Alid 调配区代码 char 20 N NULL 主键
fatherid 父物料编号 Char 20 N NULL 外键
fathername 父物料名称 varchar 20 N NULL
childid 子物料编号 char 20 N NULL 外键
childname 子物料名称 varchar 20 N NULL
anum 构成数 Int N 0
pday 配料提前期 Int N 0
gday 供应商提前期 int N 0
(5) MPS记录表
数据表名:MPSinput 中文描述:MPS记录表
字段名称 字段描述 数据类型 长度 是否允许空 缺省值 备注
Name 物料名称 varchar 20 N NULL 主键
Num 物料数量 Int N 0
date 完成日期 Date N 2000/1/1
(6) MPS结果表
数据表名:MPSoutput 中文描述:MPS结果表
字段名称 字段描述 数据类型 长度 是否允许空 缺省值 备注
Way 获取方式 Varchar 20 N NULL
Id 物料编号 varchar 20 N NULL 主键
Name 物料名称 varchar 20 N NULL
Num 物料数量 int N 0
Xiaday 下达日期 date N 2000/1/1
Wanday 完成日期 date N 2000/1/1
③ 算法
MPS安排使用了DFS深度优先算法,是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。
系统运行情况界面
1 主界面
2 MPS进度安排输入界面
3 BOM表界面
4 物料表界面
5 调配构成表
6 库存表
7 合成表
8 计算结果
程序设计核心代码
1 通过对BOM表、物料表、调配表、库存表合成生成合成表的SQL语句。
1. create view compose as
2. select distinct allocate.fathername,allocate.childname,material.mway,
3. allocate.anum,material.mrate,st