诚成设计基于PHP框架及面向对象技术开发进销存管理系统仓存管理_第1页
诚成设计基于PHP框架及面向对象技术开发进销存管理系统仓存管理_第2页
诚成设计基于PHP框架及面向对象技术开发进销存管理系统仓存管理_第3页
诚成设计基于PHP框架及面向对象技术开发进销存管理系统仓存管理_第4页
诚成设计基于PHP框架及面向对象技术开发进销存管理系统仓存管理_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 毕业设计(论文)基于PHP框架及面向对象技术开发进销存管理系统仓存管理北京理工大学珠海学院毕业设计诚信承诺书本人郑重承诺:我所呈交的毕业设计基于PHP框架及面向对象技术开发进销存管理系统-仓存管理是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,设计使用的数据真实可靠。承诺人签名: 日期: 年 月 日摘 要随着我国经济的高速发展,各种大、中型企业的经营规模不断扩大,同时随着信息技术的不断发展,企业信息化建设也越来越重要,采用先进的企业资源计划(Enterprise Resource Planning,ERP)系统已势在必行。ERP是顺应时代

2、要求的信息技术与企业管理新思想相结合的产物,充分利用现代信息技术建立信息网络系统,对企业经营管理活动中的物流、信息流、资金流、工作流进行集成,实现企业各种资源的优化配置,加快企业对市场的反应速度,提高企业的管理效率和水平,并最终提高企业的经济效益和竞争能力。通过进销存管理系统,利用信息化手段把先进的企业管理方法引入企业,为企业的管理改革提供切实易行的途径。更重要的是,进销存管理系统可以及时通过信息技术把企业数据快速转化为企业信息,进而为相关管理者提供决策依据。为了加强关键物资,设备的管理,要定期掌握其储备,消耗情况,根据计划定额和实际消耗定额的比较,进行定额的管理,使得资金使用合理,物资设备的

3、储备最佳。所以一个完整的企业物资供应管理系统应该包括计划管理,合同托收管理,仓库管理,定额管理,统计管理,财务管理等模块。其中仓库管理是整个物资供应管理系统的核心。仓库管理的全面自动化、信息化则是其中极其重要的部分。为了加快仓库管理自动化的步伐,提高仓库的管理业务处理效率,建立仓库管理系统,尽可能地减少仓库管理的重复性和低效性,已变得十分必要。在企业中,仓存管理是企业的基础和核心,支撑企业销售、采购、生产业务的有效运作。仓存管理在物料日常出入库控制、保证生产的正常进行发挥重要作用,同时将库存控制在合理水平,为企业提供准确的库存信息。为企业快速响应市场变化、满足市场需求、提高企业竞争力提供了有力

4、保证。关键词:PHP OA 管理平台 办公系统 ABSTRACTWith the rapid development of Chinas 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 plannin

5、g (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 a

6、ctivities 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 comp

7、etitiveness 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 thro

8、ugh 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 fixe

9、d 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 mana

10、gement, 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 op

11、erations 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

12、, 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

13、 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目 录摘 要IABSTRACTII目 录III1研究的背景/意义12 系统需求分析22.1业务工作流程22.2系统用例分析42.3其他需求52.4运行需求62.5业务需求63 系统设计73.1架构设计7设计思想7设计原则73.1.3 架构设计83.2详细设

14、计9菜单设计9界面设计9系统数据库设计114 系统测试运行154.1 模块测试154.2 整体测试155 总 结16参考文献17附 录18谢 辞451研究的背景/意义在信息化飞速发展的今天,企业的屹立不倒不仅需要一个强大的创业团队来维护自身企业的生存,还需要到一个强大高效的信息管理交流系统来管理内部的信息人员业务。OA的出现很好的解决了这一问题,随着时间的发展,OA系统基本上已经能够覆盖整个企业内部的每个环节。从传统的员工管理、客户管理,发展到现今的以员工管理为中心,向其绩效、单假、工资的一系列方向发展的员工管理体系,已客户为中心,向客户关系分析、业务影响、合同管理、采购管理等方向的客户管理。

15、企业人物不仅能通过OA系统很好的管理公司的内部信息,也能够通过OA对各项数据报表的统计,得到一系列有针对性、可阅读性很高的材料,便于企业人员分析,从而改善公司的不足,也可以更好的选择营业方案。作为0A系统中不可缺少的一部分,仓存系统在0A系统中起着不可缺少的作用,目前世界范围内分工使企业间的关联关系越来越紧密,上下游的企业必须共同紧密协作,使物流、信息流更加畅顺,提高运作效率,提高企业竞争力。上下游企业由于这种供应关系组成一个链条式的供应链。制造企业作为供应链环节一个节点,其主要处理好与上游供应商、下游客户、以及组织内部之间物流、信息、资金的流动,以较低的成本满足客户的需求。简单来说,就是整合

16、企业各种资源,协调企业人、财、物的高效运作,提供有竞争力的产品,满足客户的需求。 在制造型企业中,仓存管理是企业的基础和核心,支撑企业销售、采购、生产业务的有效运作。仓存管理在物料日常出入库控制、保证生产的正常进行发挥重要作用,同时将库存控制在合理水平,为企业提供准确的库存信息。为企业快速响应市场变化、满足市场需求提高企业竞争力提供了有力保证。 企业主要目标之一是满足客户需求,实现利润最大化。通过保持合适的库存,降低缺货的风险,能够快速响应客户的需求;同时,合理提高存货使用效率和存货周转率,降低企业的呆滞存货,使企业库存持有成本保持在最佳水平,并降低工厂运作成本,为市场提供有竞争力的产品。因此

17、满足客户需求、降低库存成本和工厂运作成本是仓存管理要达成的重要目标。 2 系统需求分析2.1业务工作流程1)入库流程:首先采购人员根据到货单填写入库申请单,并提交入库任务到仓存管理人员,仓存管理人员根据入库任务进行入库操作.入库后系统自动生成入库台账.2)出库流程:销售人员填写出库申请单,并提交出库任务到仓存管理人员,仓存管理人员根据出库任务进行出库操作,出库后系统自动生成出库台账.3)补库流程:仓存管理人员根据不同的仓库现实情况可以提交补库计划提交审批.这样来保证仓存产品的属性.4)盘点流程:仓存管理人员可以定时或按阶段对仓库中的产品进行盘点,把盘点得到的结果录入到系统中,并根据盘点的结果改

18、变仓库中盘点产品的数量. 5)退货流程:如果出现需要退货的情况,先填写退货申请单提交审批,审批成功后生成出库单,下面的情况和出库操作相同.4)初始化仓库流程:建立仓库,并对仓库中的产品进行初始化.2.2系统用例分析1)仓存管理人员负责出入库操作,盘点库存等操作.2)仓存经理负责下达出入库任务,盘点要求等操作.3)采购人员填写到货单,提交入库申请. 4)仓库信息管理人员负责维护仓库信息2.3其他需求(1)数据精确度产品的进货单和销售单中,单价、金额采用浮点数,保留至小数点后两位。(2)时间特性OA系统中正常运行时,页面跳转不宜太慢,至少达到3秒以下。(3)适用性该管理系统软件适用于Windows

19、 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.02.5业务需求仓存管理是企业物资供应体系中的一个重要组成部分,作为企业各种物资周转储备的环节,肩负着物资管理的多项业务职能。合理化库存控制,做好日常库存周转管理,做到数量准确、质量完好

20、、收发响应迅速、降低库存费用、加速库存资金周转是仓存主要职能。 仓存管理主要业务之一处理好物资出入库管理,即对物资的流转进行验证、确认、记录的过程。物资出入库管理包括,如入库(采购直接入库/采购检验入库/销售退回入库/产成品入库/其他入库等)、出库(销售出库/生产领料/其他出库)、仓库调拨、盘点、组装等。本章将介绍仓库的主要日常活动出入库管理。 对于企业来说,日常仓库出入库事务管理非常频繁,每天都有大量的物料进出,仓库人员往往疲于奔命,很难按照规范的出入库制度进行发料和入库操作,单据往往不能及时处理,造成错漏或者账实不符。另外由于仓存中的物料品种繁多,在无法了解库存的前提下,重复积累库存所带来

21、的呆滞料问题,占用了企业有限的资源。对呆滞料的统计、分析和处理也难以及时处理,最终造成很大的损失。传统的管理方式,通过物料卡片、台帐等方式手工记账, 数据量大,效率低下,容易出错,并且数据难以查询、共享。 以上种种问题,都是仓库业务中常见的问题,解决方式是建立规范的仓库作业流程,提高仓库运作效率,满足生产、销售还环节的物资供应。另外,采用集成化的信息管理手段。 3 系统设计3.1架构设计3.1.1设计思想(1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。(3)合理的数据流设计,在应用系

22、统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。3.1.2设计原则为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:(1)合法性原则:根据企业中实际的合同格式正确的拟出出库单,入库单、盘点单、退货单等表单也按照实际表单拟出。整个流程中按照企业中真实的流程进行。(2)实用性原则:适合企业仓存处理的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。(3)准确性原则:对输入的相关信息建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如:类型匹配,长度

23、不超限等)。(3)易操作原则:要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。(5)源程序可读性原则:为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,即可能做好代码注释工作。(6)优化原则:为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简介明了,也方便了将来的维护。(7)安全性原则:可以为该系统的用户设置用户权限。3.1.3 架构设计本系统采用的是php 的MVC三层架构的框架进行开发,分别是表示层,业务逻辑层,数据层,此框架下的系统,模块功能的扩展方便,有利于后期的更新、升级和维护。1)表示

24、层:即界面层,是用户直接接触及操作的一部分。本系统的表示层是通过display()方法来实现页面跳转,通过assign()方法来实现页面的字符串替换。2)业务逻辑层:为实现业务模块功能提供逻辑解决思路,完成页面的跳转,替换等方法的后台调用及实现。3)数据层:为系统的核心部分,对数据进行获取、处理及返回等的操作。使用客户的MVC(ModelViewController)框架进行模块功能开发,系统的功能模块的操作,主要是由控制层及数据层来实现。由于本系统采用的MVC框架,需要在控制层与模型层分别实例化对应的基类,以调用公共操作函数。每个Model类对应操作一张数据表,在Model类里对数据进行增、

25、删、改、查及相应的计算,再将数据返回到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_ap

26、ply2) 入库申请单产品清单oa_stock_storage_product3) 出库申请单(任务)基本信息oa_stock_outapply4) 出库申请单(任务)清单oa_stock_outapply_item5) 仓库基本信息oa_stock_baseinfo6) 盘点入库清单oa_stock_instock_list7) 补库计划oa_stock_fillup8) 退货单基本信息oa_stock_delivered4 系统测试运行完成对流程的编码后最重要的事情就是对系统的测试工作了,测试在系统设计阶段有两个时期,通常在编写每个模块后做单元测试,另一个时期是对系统的综合测试。4.1 模

27、块测试在模块测试时我们主要从以下几个方面考虑:1. 模块接口;2. 局部数据结构;3. 重要执行通道;4. 出错处理通道;5. 影响上述方面的边界条件。测试时进行代码审查,从数据类型,变量声明,数据结构进行审查,然后进行功能测试,从输入一些简单的数据开始执行一遍,观测运行期间变量的变化,运行中值的变化范围。改变测试方案来变换另一个角度进行测试,发现错误并记录,修改代码,测试条件使程序通过多层分支,判别运行结果从而完成模块测试。4.2 整体测试总体测试是组装软件的系统技术,本系统测试采用渐增集成测试,即测试单一模块,将测试完的模块加入系统中,进行一次系统测试,依次类推将所有模块加入系统中,在具体

28、测试时,采用自顶向下的结合方式,从主控模块开始,沿各控制层向下移动,逐渐把所有模块结合了。整体测试是用不同角色登陆到系统后,对整个合同流程执行的过程。在该测试中,可以查出系统中是否存在业务性错误,也可以测出系统的技术性缺陷(如页面跳转错误,不同角色是否会显示错误的页面)。其次,通过输入大量的数据,查看系统中是否会出现例如分页不能实现,查询不能实现之类的技术性错误。评估运行的可靠性问题:1. 结果正确;2. 运行速度;3. 空间利用率;4. 算法的可行性。5 总 结在半年的实习当中认我认识到开发一项好的软件不是某一个人就能完成的任务。一个团队的小组,一个勤奋的小组非常重要,沟通是解决问题的就好办

29、法。俗话也得好:“不怕虎一样的敌人,就怕猪一样的队伍”。所以小组中的每个成员的能力与协作能力也是致关重要的。同时,不仅是团队内部的交流,更多需要协调好团队之间的交流。其次呢,在实习中我了解了,在开发一个项目时一定要先做好规划,按照软件的开发过程,详细地写好每一个必要的文档。一般的规则是,写文档需要团队协作,这样就允许开发人员和文档编写者利用彼此的长处,取长补短。例如,如果预期读者是系统设计师,开发人员需要提供技术细节,然后文档编写者按照正确语法组织和编辑内容。软件文档的最主要目标是传达一个系统的技术要素和使用方法。第二个目标是提供软件开发过程中的需求,决策,行为,角色和责任的书面记录。只有实现

30、了这两个目标,软件文档才真正提供了有意义的信息。软件的概念就是:程序+文档,程序就是文档,文档集成在程序中。它要求在选择开发环境时不仅要考虑环境对设计、开发的完美支持,而且要考虑对维护、文档的支持;它要求软件人员在设计、开发过程中要考虑维护问题、文档问题;它要求程序与文档存储在同一位置、同一系统中;它要求使用相同工具进行程序与文档的书写、检索;它要求在编写和维护程序的同时形成文档,在书写文档时编写、维护程序。程序与文档合一的概念不仅存在于系统的设计、开发阶段而且存在于系统的维护阶段,它贯穿软件的生命周期。参考文献1萨师煊、王珊:数据库系统概论北京:高校教育出版社1985;2王勇领:计算机数据处

31、理系统分析与设计北京:清华大学出版社,1986;3张基温:信息系统开发案例北京;清华大学出版社,1999;4党建武:管理信息系统兰州大学出版社,2001;5毕庶伟:管理信息系统分析与设计.北京:机械工业出版社,1992;6黄梯云:企业管理模型及微型机应用程序石家庄:河北人民出版社,1985;.7黄梯云:管理信息系统导论北京:机械工业出版社,1986。附 录1数据库类文件Link_ID ) $this-Link_ID = mysql_connect( $this-Host, $this-User, $this-pas_sWo_RD ); if ( !$this-Link_ID ) $this-h

32、alt( 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 = m

33、ysql_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-Databas

34、e; /? 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);

35、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_

36、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

37、= 0; $id = 0; $res = array( ); $this-connect( ); $id = mysql_list_fields( $this-Database, $table ); if ( $id halt( Metadata query failed. ); $count = mysql_num_fields( $id ); $i = 0; for ( ; $i Link_ID ); function num_rows( ) return mysql_num_rows( $this-Query_ID ); function num_fields( ) return mys

38、ql_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)=)? :$this-Record$Name; function p( $Name ) function pos( ) return $this-Row; fu

39、nction instid( ) return mysql_insert_id( $this-Link_ID ); function halt( $msg ) printf( 数据库暂时连接故障,请再试一次db.inc: %sn, $msg ); printf( 数据库暂时连接故障,请再试一次: %s (%s)n, $this-Errno, $this-Error ); exit( ); function &execute( $sqlstring) if(!function_exists(writeToLog) require(util.php); writeToLog($sqlstring,

40、sql.txt); $this-Query_ID = mysql_query( $sqlstring, $this-Link_ID ); if ( $this-Query_ID ) return $this; function insert($insertSql) $ret = mysql_query($insertSql,$this-Link_ID); if($ret) return mysql_insert_id($this-Link_ID); function rs2array( ) $trowset = false; $i=0; while( $row = mysql_fetch_as

41、soc( $this-Query_ID ) ) foreach ( $row as $var=$val ) $row$var = $val; $trowset$i = $row; $i+; $this-rowset = $trowset; function getarray( $num = 0 ) $this-rs2array( ); if ( 0 rowset, 0, $num ); else return $this-rowset; function getrow( $sql ) $this-SelectLimit( $sql, 1 ); return $this-rowset0; fun

42、ction selectlimit( $sql, $numrows = false, $lm_offset = false ) if ( $numrows | $lm_offset ) $sql .= LIMIT; if ( $lm_offset ) $sql .= .$lm_offset.,; if ( $numrows ) $sql .= .$numrows; $this-Execute( $sql ); $this-rs2array( ); return $this-rowset; function recordcount( ) if ( $this-Query_ID ) if ( is

43、_resource( $this-Query_ID ) ) return mysql_num_rows( $this-Query_ID ); return 0; function microtime_float() list($usec, $sec) = explode( , microtime(); return (float)$usec + (float)$sec);function prevlink( $linkpage, $prevobj, $lcolor, $currentpage, $totalnum, $pagenum ) $plink = ; if ( 1 $currentpage ) $ppage = $currentpage - 1; if ( $lcolor = ) $plink = $prevobj ); return $plink; else $plink = $prevobj ); return $plink;function nextlink( $linkpage, $nextobj, $lcolor, $cur

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论