农业ERP系统的计划管理模块-需求分析

ustczb 2021-12-26 21:39:53

1.  项目背景

ERP是20世纪90年代在美国开始兴起的一种企业管理信息化的方法和工具。它将企业的基础数据、人力物力、管理理念、业务流程以及计算机硬件和软件整合于一体,并将人力资源、财务、业务等各个职能部门之间的流程集成起来,提高企业内部的协调性和工作效率,使企业有限的资源能够得到最优化的配置,从而产生最大的企业生产效益。简而言之,ERP就是一种有效地计划、组织和实施企业人、财、物的管理系统,并依靠计算机和网络等技术手段保证其信息的集成性、实时性、权威性和统一性。农业ERP系统作为针对物资资源管理、人力资源管理、财务资源管理、信息资源管理集合成体的企业管理软件,ERP的核心思想是把企业的业务流程链条式的联系在一起,将采购、生产、销售、客户供应商及企业内部捆绑在一块,将会针对所有环节有明确的方向和有效的管理,实现企业对资源的优化和集成,ERP实现了企业信息化、集成化、智能化的目标。

ERP在农业合作社的应用也逐渐深入,随着农业现代化、信息化的发展,农业生产企业的管理和运营与工业企业越来越相似。为此,本小组参考先进的农业合作社的运营特点和农业企业化管理理论,研发了一款应用于现代农业合作社的ERP系统(简称“农业ERP系统”),辅助农业合作社信息化管理并进行科学运营。

2.  需求分析

本章立足于用户的角度来思考需求,主要分析系统的功能性需求。农业ERP计划管理模块的功能需求主要包括对物料清单、生产订单和报表查询三个方面。

2.1  物料清单需求

物料清单,是在描述某一成品,由哪些原物料或半成品所组成的,且说明其彼此间的组合过程。如图2.1物料清单结构图所示,成品 A,是由二个原料 B,及 1 个半成品 C 所组成,而半成品 C 则是由两个原料 D 及三个原料 E 所组成。

 
 


图2.1  物料清单结构图

依其组成关系,A 为 B、C 的母件,B、C 为 A 的子件;C 为 D、E 的母件,D、E 为 C 的子件。 如果 A 之上再无母件,A 可称为成品,C 为自制或委外的半成品,B、D、E 则为采购件,采购件不可能是母件。 A 对 B、C,或者 C 对 D、E 的上下关系,称为单阶。如果对整个结构而言,上中下各阶,称为多阶或全阶。

物料清单初次建立时,可依母件料品的结构批量,建立其所有子件料品的使用数量、损耗率等资料。并可依子件料品设定其有效期间,作为生产订单、委外单用料选择的依据。也为MRP、MPS 展开的依据。所有无效(过期或未到期)的子件,皆不予列入考虑。

物料管理人员对于物料清单的需求主要可以分为三部分,如图2.2所示:

图2.2  物料管理人员用例图

(1)物料管理:用户需要对物料清单中可能用到的物料进行管理,应包含物料添加和物料编辑的功能,有新的物料参与生产时,可以及时添加,旧的物料属性发生变动时,可以及时修改。所有的物料都应被存储在系统之中,以便在生成新的物料清单时,可以随时添加母件或者子件。

(2)物料清单维护:在生产过程中,用户需要使用物料清单来确定母件与子件之间的数量关系和逻辑关系,因此,物料清单的维护是系统的重点,用户需要能够创建新的物料清单,也能对已有的物料清单进行编辑。

(3)物料清单整批修改:用户可以对多个物料清单同时进行操作,如选中多个物料清单同时删除,选中多个物料清单进行打印,选中多个物料清单归档等,可以减少用户的操作量。

2.2  生产订单需求

生产订单是下达给生产部门并要求生产部门执行的生产任务,生产部门根据生产订单组织生产和领用物料。用户可以手工填制生产订单,也可以由生产计划、销售订单和预测单下达生成。每个环节的成本发生和分摊,都要以订单为线索。事前的估价和事后的核算,都能够以订单为单位。

生产订单可分为四种状态,“草稿”表示生产订单尚未确认,初步写出的计划订单;草稿确认后状态变为“已确认”,正式开始订单的生产;一旦有产品产出,状态便变为“进行中”;而生产任务全部完成后,状态变为“完成”。

当生产订单出现问题,无法返工时,生产部门便可以创建拆解工单任务,然后下达拆解工单的指令,接下来到拆解线进行拆解,对于拆解下来的拆解散件进行检测是否存在故障,若无故障,将相应的拆解散件进行入库。如果无可用的拆解散件,则将生产订单进行报废处理。例如,在农业生产中,计划在一片土地上进行西瓜种植,已经完成播种施肥工作,但因天气原因,西瓜无法继续生长,这时便可以创建拆解工单任务,检查西瓜种子、种植肥料等组件是否还可以继续使用,若有可用组件,则进行拆解散件的入库,若无可用组件,则直接将生产订单进行报废处理。

生产订单管理人员对于生产订单的需求主要可以分为四部分,如图2.3所示:

 

图2.3  生产订单人员用例图

(1)生产工序维护:用户需要对物料的生产流程进行管理,以详细掌握物料的生产步骤。包括添加新的生产工序和对已有的生产工序进行修改。

(2)生产订单生成:对于一个生产计划,用户需要用生产订单记录下来。生产订单生成后,相应的部门才开始进行物料生产。用户不仅仅需要能够创建新的生产订单和对已有的生产订单进行编辑,还需要能够在生产订单中添加对应的物料清单,以便生产部门按符合物料清单子件配比来生产母件。还需要能够在生产订单中添加相应的生产工序,以便各个生产部门安排好生产环节,充分利用生产资源,提高生产效率。

(3)拆解单维护:用户需要系统能够对需要拆解的产品生成拆解单,方便日后对产品余料的回收再利用工作。

(4)报废单维护:用户需要系统能对报废的产品生成报废单,方便日后对生产垃圾的处理工作。

2.3  报表查询需求

用户能够对系统的相应数据进行查询和检索,以便更好地对对生产步骤进行优化,对生产流程进行把握,掌握物料的流动状态。

报表查询人员对于报表查询的需求主要可以分为四部分,如图2.4所示:

 

图2.4  报表查询人员用例图

 

(1)母件结构查询:用户能够查看某母件的结构,以便了解该母件是由哪些子件所构成。有利于优化相应物料清单结构。

(2)子件用途查询:用户能够查看某子件的用途,以便了解该子件可以组成哪些母件。有利于优化相应物料清单结构。

(3)物料清单查询:用户能够查询物料清单的相应属性,能够方便快捷地找到想要查找的物料清单。

(4)生产订单变化趋势:用户需要对每月的生产订单数量有一个直观的认识,希望系统能够用图表的形式(如折线图,扇形图等)对每月生产订单数量进行可视化展示,以便用户能够预测未来的物料生产数量,更好地安排生产工作。

3  系统设计

3.1  系统架构设计

系统使用模型 - 视图 - 控制器(MVC)架构模式来设计模块,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

它把软件系统分为三个基本部分,如图3.1 MVC关系图所示:模型(Model):负责存储系统的中心数据。视图(View):将信息显示给用户(可以定义多个视图)。控制器(Controller):处理用户输入的信息。负责从视图读取数据,控制用户输入,并向模型发送数据,是应用程序中处理用户交互的部分。

 

mvc1 (1)

图3.1  MVC关系图

 

在MVC中,View层是界面,Model层是业务逻辑,Controller层用来调度View层和Model层,将用户界面和业务逻辑合理的组织在一起,起到粘合的效果。所以Controller中的内容越少越好,这样才能提供最大的灵活性。当一个View提交数据给Model进行处理,以实现具体的行为时,View通常不会直接提交数据给Model,它会先把数据提交给Controller,然后Controller再将数据转发给Model。假如此时程序业务逻辑的处理方式有变化,那么只需要在Controller中将原来的Model换成新实现的Model。Controller 用来将不同的View和不同的Model组织在一起,顺便替双方传递消息,仅此而已。在Odoo的controller目录下,新建controller类,在其中,定义请求处理方法,在方法上方通过 @http:route('url',auth='public/user') 控制请求映射,以及访问权限(公开/需要登陆)。

如图3.2 系统时序图所示,当系统用户在网页中访问web界面时,web服务器向本地Odoo服务器发出http请求,本地Odoo服务器便调用Controller中调用odoo.http.route()处理http请求,完成后Controller访问计划管理模块相关代码,后端代码调用数据库数据后,在方法中,处理数据,然后通过 http.request.render() ,把参数传递给视图模板并渲染出页面,然后返回Odoo服务器,Odoo服务器进行http响应,web服务器再将页面呈现给mrp管理员。

 

 

图3.2  系统时序图

 3.2  功能模块设计

如图3.3 系统基本功能组织结构图所示,计划管理模块的基本功能分为三个方面,包括物料清单维护、生产订单生成以及报表查询。物料清单维护主要包括物料清单维护、物料清单资料维护以及物料清单整批修改,用户能够查看所有物料和物料清单以及生成新的物料清单;生产订单生成包括标准工序维护、生产订单编制、拆解单编制以及报废单编制,能够对生产工序进行维护管理,创建新的生产订单,并能实现生产订单四种状态的转换,以及对拆解单和报废单的管理;报表查询主要实现对母件结构查询、子件用途查询以及物料清单资料查询。能够查询母件的物料清单结构,子件能够构成哪些母件,以及对物料清单相关信息的检索。

 

图3.3  系统基本功能模块结构图

3.3  系统详细设计

3.3.1  数据库设计

物料清单包括mrp.bom表和mrp.bom.line表,物料包括product.template表,生产工序包括mrp.procedure表和mrp.procedure.line表,生产订单包括mrp.production表。其ER图如图3.4所示,其中一个物料清单包含一个母件(物料),一个物料可以构成多个物料清单,是多对一关系;一个生产订单需要一个物料,一个物料可以构成多个生产订单,是多对一关系;一个生产订单可以包含多个生产工序,而一个生产工序也可以参与多个生产订单,是多对多关系。

图3.4  系统ER图

3.3.2  访问权限设计

可以通过安全性配置来设定到菜单级和到模型级的权限,可以具体到操作的查看、编辑和删除等明细动作。这些权限全部存储在ir.model.access模型中,在我们的项目中,可以通过文件在系统启动时写入该模型。因为我们是使用命令创建的项目,所以项目的security路径下已经默认创建了一个文件:ir.model.access.csv, 文件名与模型名是一样的,名称不可以更改,Odoo会将文件的数据写人对应的模型中。各属性详细说明如下,见表4.1:

id:是该记录的唯一标示,在模块内具有唯一性。

name:该记录的名称,也具有唯一性, 一般的命名方法是用点(.)连接模块名和组名。如表中,模块名为mrp,组名分别为procedure和bom,代表工序部分和物料清单部分。

model_ id:是设置访问权限的模块_ name,model_ id 的命名规则比较固定,如工序部分的name是mrp.procedure,那么model_ id就是model_mrp_procedure。

group_ id:这就是我们要授予权限的安全组的id,本处我们为mrp员工组授权。

perm:对应于读、写、新建、删除操作的设置。1代表可以进行该操作,0代表不能进行该操作。

 

表4.1  系统权限表

属性

物料清单模块值

生产工序模块值

id

access_mrp_bom

access_mrp_procedure

name

mrp.bom

mrp.procedure

model_id

model_mrp_bom

model_mrp_procedure

group_id

group_mrp_user

mrp.group_mrp_user

perm_read

1

1

perm_write

0

1

perm_create

0

1

perm_unlink

0

1

 

 


作者:577

...全文
328 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧