收藏 分销(赏)

诚成设计-基于PHP框架及面向对象技术开发进销存管理系统--仓存管理.doc

上传人:仙人****88 文档编号:9284529 上传时间:2025-03-19 格式:DOC 页数:50 大小:477.50KB
下载 相关 举报
诚成设计-基于PHP框架及面向对象技术开发进销存管理系统--仓存管理.doc_第1页
第1页 / 共50页
诚成设计-基于PHP框架及面向对象技术开发进销存管理系统--仓存管理.doc_第2页
第2页 / 共50页
点击查看更多>>
资源描述
毕业设计(论文) 基于PHP框架及面向对象技术开发进销存管理系统—仓存管理 北京理工大学珠海学院毕业设计 诚信承诺书 本人郑重承诺:我所呈交的毕业设计《基于PHP框架及面向对象技术开发进销存管理系统--仓存管理》是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,设计使用的数据真实可靠。 承诺人签名: 日期: 年 月 日 北京理工大学珠海学院2012届本科生毕业设计 摘 要 随着我国经济的高速发展,各种大、中型企业的经营规模不断扩大,同时随着信息技术的不断发展,企业信息化建设也越来越重要,采用先进的企业资源计划(Enterprise Resource Planning,ERP)系统已势在必行。ERP是顺应时代要求的信息技术与企业管理新思想相结合的产物,充分利用现代信息技术建立信息网络系统,对企业经营管理活动中的物流、信息流、资金流、工作流进行集成,实现企业各种资源的优化配置,加快企业对市场的反应速度,提高企业的管理效率和水平,并最终提高企业的经济效益和竞争能力。。通过进销存管理系统,利用信息化手段把先进的企业管理方法引入企业,为企业的管理改革提供切实易行的途径。更重要的是,进销存管理系统可以及时通过信息技术把企业数据快速转化为企业信息,进而为相关管理者提供决策依据。 为了加强关键物资,设备的管理,要定期掌握其储备,消耗情况,根据计划定额和实际消耗定额的比较,进行定额的管理,使得资金使用合理,物资设备的储备最佳。所以一个完整的企业物资供应管理系统应该包括计划管理,合同托收管理,仓库管理,定额管理,统计管理,财务管理等模块。其中仓库管理是整个物资供应管理系统的核心。 仓库管理的全面自动化、信息化则是其中极其重要的部分。为了加快仓库管理自动化的步伐,提高仓库的管理业务处理效率,建立仓库管理系统,尽可能地减少仓库管理的重复性和低效性,已变得十分必要。 在企业中,仓存管理是企业的基础和核心,支撑企业销售、采购'、生产业务的有效运作。仓存管理在物料日常出入库控制、保证生产的正常进行发挥重要作用,同时将库存控制在合理水平,为企业提供准确的库存信息。为企业快速响应市场变化、满足市场需求、提高企业竞争力提供了有力保证。 关键词:PHP OA 管理平台 办公系统 ABSTRACT With the rapid development of China's economy, various large and medium-sized business have been expanding, and with the continuous development of information technology, enterprise information is becoming more important, the use of advanced enterprise resource planning (Enterprise Resource Planning, ERP) system is imperative. ERP is in line with requirements of the times of information technology and business management product of the combination of new ideas, take advantage of modern information technology to establish an information network system management activities of the business of logistics, information flow, capital flow, workflow integration, enterprise the optimal allocation of resources to accelerate business-to-market, speed of response, and improving the management efficiency and level, and ultimately improve the economic efficiency and competitiveness of enterprises. . Inventory management system through the use of information technology means to the introduction of advanced enterprise management company, to provide practical business management reform easy way. More importantly, the inventory management system in a timely manner through information technology to corporate data into business information quickly, and then decision-making basis for the relevant managers. In order to strengthen key supplies, equipment management, to periodically control the reserves, consumption, according to the plan and actual consumption of fixed compared to the scale of management, making reasonable use of funds, materials, equipment, reserve the best. Therefore, a complete enterprise material supply management system should include project management, contract collection management, warehouse management, quota management, statistics management, financial management and other modules. Storage management is one of the core material supply management system. Fully automated warehouse management, information technology is one of the most important part. To speed up the pace of automation of warehouse management, warehouse management operations to improve efficiency, the establishment of warehouse management systems, warehouse management as much as possible to reduce repetitive and ineffective, has become very necessary. In the enterprise, inventory management is the foundation and core of support for enterprise sales, procurement, 'the effective operation of manufacturing operations. Routine in the materials out of inventory management, storage control, to ensure normal production play an important role, while the inventory at a reasonable level, providing accurate inventory information. For enterprises to respond quickly to market changes, to meet the market demand and improve the competitiveness of enterprises to provide a strong guarantee. Key words:PHP OA office systems management platform 目 录 摘 要 I ABSTRACT II 目 录 III 1研究的背景/意义 1 2 系统需求分析 2 2.1业务工作流程 2 2.2系统用例分析 4 2.3其他需求 5 2.4运行需求 6 2.5业务需求 6 3 系统设计 7 3.1架构设计 7 3.1.1设计思想 7 3.1.2设计原则 7 3.1.3 架构设计 8 3.2详细设计 9 3.2.1菜单设计 9 3.2.2界面设计 9 3.2.3系统数据库设计 11 4 系统测试运行 15 4.1 模块测试 15 4.2 整体测试 15 5 总 结 16 参考文献 17 附 录 18 谢 辞 45 45 1研究的背景/意义 在信息化飞速发展的今天,企业的屹立不倒不仅需要一个强大的创业团队来维护自身企业的生存,还需要到一个强大高效的信息管理交流系统来管理内部的信息人员业务。OA的出现很好的解决了这一问题,随着时间的发展,OA系统基本上已经能够覆盖整个企业内部的每个环节。从传统的员工管理、客户管理,发展到现今的以员工管理为中心,向其绩效、单假、工资的一系列方向发展的员工管理体系,已客户为中心,向客户关系分析、业务影响、合同管理、采购管理等方向的客户管理。企业人物不仅能通过OA系统很好的管理公司的内部信息,也能够通过OA对各项数据报表的统计,得到一系列有针对性、可阅读性很高的材料,便于企业人员分析,从而改善公司的不足,也可以更好的选择营业方案。作为0A系统中不可缺少的一部分,仓存系统在0A系统中起着不可缺少的作用, 目前世界范围内分工使企业间的关联关系越来越紧密,上下游的企业必须共同紧密协作,使物流、信息流更加畅顺,提高运作效率,提高企业竞争力。上下游企业由于这种供应关系组成一个链条式的供应链。制造企业作为供应链环节一个节点,其主要处理好与上游供应商、下游客户、以及组织内部之间物流、信息、资金的流动,以较低的成本满足客户的需求。简单来说,就是整合企业各种资源,协调企业人、财、物的高效运作,提供有竞争力的产品,满足客户的需求。 在制造型企业中,仓存管理是企业的基础和核心,支撑企业销售、采购、生产业务的有效运作。仓存管理在物料日常出入库控制、保证生产的正常进行发挥重要作用,同时将库存控制在合理水平,为企业提供准确的库存信息。为企业快速响应市场变化、满足市场需求提高企业竞争力提供了有力保证。 企业主要目标之一是满足客户需求,实现利润最大化。通过保持合适的库存,降低缺货的风险,能够快速响应客户的需求;同时,合理提高存货使用效率和存货周转率,降低企业的呆滞存货,使企业库存持有成本保持在最佳水平,并降低工厂运作成本,为市场提供有竞争力的产品。因此满足客户需求、降低库存成本和工厂运作成本是仓存管理要达成的重要目标。 2 系统需求分析 2.1业务工作流程 1)入库流程:首先采购人员根据到货单填写入库申请单,并提交入库任务到仓存管理人员,仓存管理人员根据入库任务进行入库操作.入库后系统自动生成入库台账. 2)出库流程:销售人员填写出库申请单,并提交出库任务到仓存管理人员,仓存管理人员根据出库任务进行出库操作,出库后系统自动生成出库台账. 3)补库流程:仓存管理人员根据不同的仓库现实情况可以提交补库计划提交审批.这样来保证仓存产品的属性. 4)盘点流程:仓存管理人员可以定时或按阶段对仓库中的产品进行盘点,把盘点得到的结果录入到系统中,并根据盘点的结果改变仓库中盘点产品的数量. 5)退货流程:如果出现需要退货的情况,先填写退货申请单提交审批,审批成功后生成出库单,下面的情况和出库操作相同. 4)初始化仓库流程:建立仓库,并对仓库中的产品进行初始化. 2.2系统用例分析 1)仓存管理人员负责出入库操作,盘点库存等操作. 2)仓存经理负责下达出入库任务,盘点要求等操作. 3)采购人员填写到货单,提交入库申请. 4)仓库信息管理人员负责维护仓库信息 2.3其他需求 (1)数据精确度 产品的进货单和销售单中,单价、金额采用浮点数,保留至小数点后两位。 (2)时间特性 OA系统中正常运行时,页面跳转不宜太慢,至少达到3秒以下。 (3)适用性 该管理系统软件适用于Windows 2000/xp及以上操作系统。 2.4运行需求 (1)用户界面 本系统采用Windows XP+Apache+PHP+MySQL设计,用户交互界面采用的是基于Windows的窗口界面。 (2)硬件接口 运行本系统的硬件基本要求如下: CPU:Intel P3及以上; 内存:256MB及以上; 硬盘:10GB及以上。 (3)软件接口 服务器:Apache HTTP Server 2.2 数据库:MySQL 5.1 编程语言:PHP5.0 2.5业务需求 仓存管理是企业物资供应体系中的一个重要组成部分,作为企业各种物资周转储备的环节,肩负着物资管理的多项业务职能。合理化库存控制,做好日常库存周转管理,做到数量准确、质量完好、收发响应迅速、降低库存费用、加速库存资金周转是仓存主要职能。 仓存管理主要业务之一处理好物资出入库管理,即对物资的流转进行验证、确认、记录的过程。物资出入库管理包括,如入库(采购直接入库/采购检验入库/销售退回入库/产成品入库/其他入库等)、出库(销售出库/生产领料/其他出库)、仓库调拨、盘点、组装等。本章将介绍仓库的主要日常活动出入库管理。 对于企业来说,日常仓库出入库事务管理非常频繁,每天都有大量的物料进出,仓库人员往往疲于奔命,很难按照规范的出入库制度进行发料和入库操作,单据往往不能及时处理,造成错漏或者账实不符。另外由于仓存中的物料品种繁多,在无法了解库存的前提下,重复积累库存所带来的呆滞料问题,占用了企业有限的资源。对呆滞料的统计、分析和处理也难以及时处理,最终造成很大的损失。传统的管理方式,通过物料卡片、台帐等方式手工记账, 数据量大,效率低下,容易出错,并且数据难以查询、共享。 以上种种问题,都是仓库业务中常见的问题,解决方式是建立规范的仓库作业流程,提高仓库运作效率,满足生产、销售还环节的物资供应。另外,采用集成化的信息管理手段。 3 系统设计 3.1架构设计 3.1.1设计思想 (1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。 (2)分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。 (3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。 3.1.2设计原则 为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则: (1)合法性原则:根据企业中实际的合同格式正确的拟出出库单,入库单、盘点单、退货单等表单也按照实际表单拟出。整个流程中按照企业中真实的流程进行。 (2)实用性原则:适合企业仓存处理的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。 (3)准确性原则:对输入的相关信息建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如:类型匹配,长度不超限等)。 (3)易操作原则:要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。 (5)源程序可读性原则:为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,即可能做好代码注释工作。 (6)优化原则:为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简介明了,也方便了将来的维护。 (7)安全性原则:可以为该系统的用户设置用户权限。 3.1.3 架构设计 本系统采用的是php 的MVC三层架构的框架进行开发,分别是表示层,业务逻辑层,数据层,此框架下的系统,模块功能的扩展方便,有利于后期的更新、升级和维护。 1)表示层:即界面层,是用户直接接触及操作的一部分。本系统的表示层是通过display()方法来实现页面跳转,通过assign()方法来实现页面的字符串替换。 2)业务逻辑层:为实现业务模块功能提供逻辑解决思路,完成页面的跳转,替换等方法的后台调用及实现。 3)数据层:为系统的核心部分,对数据进行获取、处理及返回等的操作。 使用客户的MVC(Model-View-Controller)框架进行模块功能开发,系统的功能模块的操作,主要是由控制层及数据层来实现。 由于本系统采用的MVC框架,需要在控制层与模型层分别实例化对应的基类,以调用公共操作函数。每个Model类对应操作一张数据表,在Model类里对数据进行增、删、改、查及相应的计算,再将数据返回到Controller层,此时,Controller层再将该数据用assign()方法,进行替换,然后在View层将对应的字符串替换字符写到相应的替换位置,由Controller层的display()方法,指向到对应的页面。 3.2详细设计 3.2.1菜单设计 OA系统下仓存模块的目录结构如下图 3.2.2界面设计 系统部分界面如下: (1)主菜单 (2)入库任务列表 (3)新增盘点申请单页面 (3)新增补库申请单页面 3.2.3系统数据库设计 由数据模型利用Mysql进行数据库的详细设计,其基本表的设计如下: 1) 入库申请单(任务)基本信息oa_stock_storage_apply 2) 入库申请单产品清单oa_stock_storage_product 3) 出库申请单(任务)基本信息oa_stock_outapply 4) 出库申请单(任务)清单oa_stock_outapply_item 5) 仓库基本信息oa_stock_baseinfo 6) 盘点入库清单oa_stock_instock_list 7) 补库计划oa_stock_fillup 8) 退货单基本信息oa_stock_delivered 4 系统测试运行 完成对流程的编码后最重要的事情就是对系统的测试工作了,测试在系统设计阶段有两个时期,通常在编写每个模块后做单元测试,另一个时期是对系统的综合测试。 4.1 模块测试 在模块测试时我们主要从以下几个方面考虑: 1. 模块接口; 2. 局部数据结构; 3. 重要执行通道; 4. 出错处理通道; 5. 影响上述方面的边界条件。 测试时进行代码审查,从数据类型,变量声明,数据结构进行审查,然后进行功能测试,从输入一些简单的数据开始执行一遍,观测运行期间变量的变化,运行中值的变化范围。改变测试方案来变换另一个角度进行测试,发现错误并记录,修改代码,测试条件使程序通过多层分支,判别运行结果从而完成模块测试。 4.2 整体测试 总体测试是组装软件的系统技术,本系统测试采用渐增集成测试,即测试单一模块,将测试完的模块加入系统中,进行一次系统测试,依次类推将所有模块加入系统中,在具体测试时,采用自顶向下的结合方式,从主控模块开始,沿各控制层向下移动,逐渐把所有模块结合了。 整体测试是用不同角色登陆到系统后,对整个合同流程执行的过程。在该测试中,可以查出系统中是否存在业务性错误,也可以测出系统的技术性缺陷(如页面跳转错误,不同角色是否会显示错误的页面)。 其次,通过输入大量的数据,查看系统中是否会出现例如分页不能实现,查询不能实现之类的技术性错误。 评估运行的可靠性问题: 1. 结果正确; 2. 运行速度; 3. 空间利用率; 4. 算法的可行性。 5 总 结 在半年的实习当中认我认识到开发一项好的软件不是某一个人就能完成的任务。一个团队的小组,一个勤奋的小组非常重要,沟通是解决问题的就好办法。俗话也得好:“不怕虎一样的敌人,就怕猪一样的队伍”。所以小组中的每个成员的能力与协作能力也是致关重要的。同时,不仅是团队内部的交流,更多需要协调好团队之间的交流。 其次呢,在实习中我了解了,在开发一个项目时一定要先做好规划,按照软件的开发过程,详细地写好每一个必要的文档。一般的规则是,写文档需要团队协作,这样就允许开发人员和文档编写者利用彼此的长处,取长补短。例如,如果预期读者是系统设计师,开发人员需要提供技术细节,然后文档编写者按照正确语法组织和编辑内容。软件文档的最主要目标是传达一个系统的技术要素和使用方法。第二个目标是提供软件开发过程中的需求,决策,行为,角色和责任的书面记录。只有实现了这两个目标,软件文档才真正提供了有意义的信息。软件的概念就是:程序+文档,程序就是文档,文档集成在程序中。它要求在选择开发环境时不仅要考虑环境对设计、开发的完美支持,而且要考虑对维护、文档的支持;它要求软件人员在设计、开发过程中要考虑维护问题、文档问题;它要求程序与文档存储在同一位置、同一系统中;它要求使用相同工具进行程序与文档的书写、检索;它要求在编写和维护程序的同时形成文档,在书写文档时编写、维护程序。程序与文档合一的概念不仅存在于系统的设计、开发阶段而且存在于系统的维护阶段,它贯穿软件的生命周期。 参考文献 [1]萨师煊、王珊:《数据库系统概论》北京:高校教育出版社1985; [2]王勇领:《计算机数据处理系统分析与设计》北京:清华大学出版社,1986; [3]张基温:《信息系统开发案例》北京;清华大学出版社,1999; [4]党建武:《管理信息系统》兰州大学出版社,2001; [5]毕庶伟:《管理信息系统分析与设计》.北京:机械工业出版社,1992; [6]黄梯云:《企业管理模型及微型机应用程序》石家庄:河北人民出版社,1985;. [7]黄梯云:《管理信息系统导论》北京:机械工业出版社,1986。 附 录 [1]数据库类文件 <?php class dbbase_mysql { var $Host; var $Database; var $User; var $pas_sWo_RD; var $Link_ID; var $Query_ID; var $rowset; var $Record; var $Row; var $Errno; var $Error; var $Auto_free; var $Auto_commit; function connect( ) { if ( 0 == $this->Link_ID ) { $this->Link_ID = mysql_connect( $this->Host, $this->User, $this->pas_sWo_RD ); if ( !$this->Link_ID ) $this->halt( "Link-ID == false, connect failed" ); if ( mysql_query( sprintf( "use %s", $this->Database ), $this->Link_ID ) ){ mysql_query("SET NAMES 'GBK'"); }else{ $this->halt( "cannot use database ".$this->Database ); } } } function query( $Query_String ) { $time_start = microtime_float(); $this->connect( ); try { $this->Query_ID = mysql_query( $Query_String, $this->Link_ID ); }catch(Exception $e) { $this->halt( "Invalid SQL: ".$e); } $time_end = microtime_float(); $time_xc = $time_end - $time_start; if(!function_exists("writeToLog")) { include "util.php"; } writeToLog($Query_String.":".$time_xc,"sql.txt"); $this->Row = 0; $this->Error = $this->Database; //? if ( $this->Query_ID ) return $this->Query_ID; } function query2( $Query_String ) { $time_start = microtime_float(); $this->Query_ID = mysql_query( $Query_String, $this->Link_ID ); //? $time_end = microtime_float(); $time_xc = $time_end - $time_start; if(!function_exists("writeToLog")) require("util.php"); writeToLog($Query_String,"sql.txt"); if ( $this->Query_ID ) return $this->Query_ID; else throw new Exception(mysql_error()); } function free() { if(is_resource($this->Query_ID)) mysql_free_result($this->Query_ID); } function next_record( ) { if(!$this->Query_ID) return; $this->Record = mysql_fetch_array( $this->Query_ID ); $this->Row += 1; $stat = is_array( $this->Record ); if ( !$stat && $this->Auto_free ) { mysql_free_result( $this->Query_ID ); $this->Query_ID = 0; } return $stat; } function seek( $pos ) { $status = mysql_data_seek( $this->Query_ID, $pos ); if ( $status ) { $this->Row = $pos; } } function metadata( $table ) { $count = 0; $id = 0; $res = array( ); $this->connect( ); $id = mysql_list_fields( $this->Database, $table ); if ( $id < 0 ) { $this->halt( "Metadata query failed." ); } $count = mysql_num_fields( $id ); $i = 0; for ( ; $i < $count; ++$i ) { $res[$i]['table'] = mysql_field_table( $id, $i ); $res[$i]['name'] = mysql_field_name( $id, $i ); $res[$i]['type'] = mysql_field_type( $id, $i ); $res[$i]['len'] = mysql_field_len( $id, $i ); $res[$i]['flags'] = mysql_field_flags( $id, $i ); $res['meta'][$res[$i]['name']] = $i; $res['num_fields'] = $count; } mysql_free_result( $id ); return $res; } function affected_rows( ) { return mysql_affected_rows( $this->Link_ID ); } function num_rows( ) { return mysql_num_rows( $this->Query_ID ); } function num_fields( ) { return mysql_num_fields( $this->Query_ID ); } function nf( ) { return $this->num_rows( ); } function np( ) { } function f( $Name ) { return $this->Record[$Name]; } function fHtml( $Name ) { return ($this->Record[$Name]==null || trim($this->Record[$Name])=='')?"&nbsp;":$this->Record[$Name]; } function p( $Name ) { } function pos( ) { return $this->Row; } function instid( ) { return mysql_insert_id( $this->Link_ID ); } function halt( $msg ) { printf( "</td></tr></table><b>数据库暂时连接故障,请再试一次db.inc:</b> %s<br>\n", $msg ); printf( "<b>数据库暂时连接故障,请再试一次:</b>: %s (%s)<br>\n", $this->Errno, $this->Error ); exit( ); } function &execute( $sqlstring) { if(!function_exists("writeToLog")
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服