智能决策技术报告47935.docx
智能决策技术期末考核设计题目: 生产物料料需求决决策支持持系统目录智能决策技技术1期末考核1一规划与与分析阶阶段31.问题描描述31.1现状状31.2解决决手段41.3意义义42.数据处处理分析析42.1数据据流程图图42.2物料料需求分分析的核核心流程程:52.3建立立数据字字典:63.抽象模模型建立立63.1系统统功能结结构图63.2系统统业务流流程图7二设计阶阶段81.系统平平台设计计81.1开发发平台设设计82.主要功功能模块块设计82.1登录录模块82.2主界界面模块块92.3主生生产计划划模块102.4订单单管理模模块122.5用户户管理模模块133.数据库库设计13三实施阶阶段161.实现方方案162.系统开开发、调调试与运运行172.1登录录模块设设计172.2订单单管理202.3库存存管理242.4物料料需求分分析27四总结43一规划与与分析阶阶段1.问题描描述1.1现状状 选定定决策支支持主题题是生产产物料需需求计划划。在现现代企业业的生产产经营活活动中物物料是企企业价值值链中极极其重要要的一环环,物料料采购决决策占有有十分重重要的地地位。在在成熟、稳稳定的市市场条件件下,理理性的企企业决策策者总是是力争在在“正确时时间”采购“正确数数量”的物料料,供企企业生产产使用。物料需求计计算的基基本任务务是:一一是从最最终产品品的生产产计划导导出相关关物料(原原材料、零零部件)的的需求量量和需求求时间(相相关需求求);二二是根据据物料的的需求时时间和订订货周期期来确定定其开始始订货的的时间。物料需求计计算的基基本内容容是编制制物料(包包括零部部件和原原材料)的的采购计计划(这这里不考考虑生产产的自制制,假定定所有的的物料都都进行采采购)。要要正确编编制物料料采购计计划,首首先必须须落实最最终产品品的产出出进度计计划,即即主生产产计划,这这是物料料需求计计算展开开的依据据。还要要需要知知道产品品的零部部件和原原材料结结构,即即无聊清清单,才才能把主主生产计计划展开开成物料料需求计计划;同同时,必必须知道道库存数数量才能能准确地地计算出出各种零零部件和和原材料料的采购购数量。因因此,以以主生产产计划,物物料清单单为依据据计算物物料需求求。物料需求计计划原理理框架如如下图11.1:产品产出计划物料需求计划报 告物料需求计划(数量、时间)产品结构文件库存状态文件图1.11.2解决决手段 建立立物料需需求分析析的决策策支持系系统,完完成复杂杂的分析析过程,并并自动生生成物料料需求订订单,以以供生产产使用。 1.3意义义应用该系统统,可为为企业生生产过程程中物料料需求和和选择供供应商提提供依据据。2.数据处处理分析析2.1数据据流程图图图2 .12.2物料料需求分分析的核核心流程程:物料需求计计划主要要按照反反工艺路路线(成成品组装件件零部部件)的的原理,按按照产品品产出计计划规定定的产品品的生产产数量和和期限要要求,利利用产品品结构文文件、库库存信息息文件等等数据资资料,反反工艺顺顺序计算算出各种种物料的的需求数数量与需需求期限限,进而而,根据据企业实实际确定定自制和和采购的的数量和和期限。物料需求计计算时主主要用到到五种库库存状态态数据:毛需求求G(tt)、计计划到货货量S(tt)、现现有量HH(t)、净净需求量量N(tt)和计计划发出出订货量量R(tt-L),这这里t是是表示周周期的变变量,LL是提前前期。计算在第tt周期第第i层所所有物料料需求量量和需求求时间的的步骤为为:第一步:确确定第ii层第tt周期所所有毛需需求量。毛毛需求量量是指生生产中实实际需要要的量,00层的毛毛需求由由主生产产计划确确定,其其余各层层的毛需需求量是是由其上上层的计计划订单单下达。第二步:确确定物料料第i层层第t周周期的净净需求量量,净需需求量是是指实际际需要的的增加量量。第三步:根根据净需需求量确确定第tt周期计计划下达达数量第四步:第第i层第第t周期期的计划划订单下下达数量量,即为为第i层层物料的的毛需求求量,由由毛需求求量开始始重复上上述14步,直直至最低低层物料料。其分析流程程图如下下图:i=0 , t=1按照时间周期计算第n层所有物料的毛需求量第0层根据产品计划得出,其他层由其父项计划下达取得 确定第n层第t周期净需求量N(t) 由净需求N(t)确定计划定单入库R(t-L)所有周期算完否 确定计划定单下达所有产品结构层次已分解 向下一层分解i=i+1结 束t=t+1否是是否2.3建立立数据字字典:总编号编号名称来源去向包含数据结结构1-01F1客户订单客户分析处理订单号、产产品编号号、订购购数量、交交货日期期1-02F2产品结构设计分析处理产品编号、层层次、上上层编号号、上层层需求1-03F3库存状态库存分析处理产品编号、产产品名称称、库存存总量、可可用量、将将要入库库量、安安全库存存1-04F4物料订单分析处理订单下达订单号、物物料编号号、订购购数量、订订购日期期、有效效期至1-05F5用户信息用户登录判断用户名、密密码、权权限、备备注表2.33.抽象模模型建立立3.1系统统功能结结构图图3.13.2系统统业务流流程图图3.2二设计阶阶段1.系统平平台设计计1.1开发发平台设设计前台设计工工具:BBorllandd Deelphhi 66后台数据库库: SQLL Seerveer 220088开发环境:硬件环环境:PPC电脑脑软件环境:(见下下图)服务器操作系统WINDOOWS 20007应用程序SQL SServver 20008客户端操作系统WINDOOWS 20007应用程序Borlaand Dellphii 61.2网络络运行模模式设计计本系统采用用C/SS模式,即即客户端端/服务务器模式式网络拓扑结结构为星星型结构构2.主要功功能模块块设计2.1登录录模块界面截图如如下图44.2 1:图4.2 1 功能能是验证证用户是是否合法法,是否否允许登登入系统统,如果果合法则则还要判判断其权权限,以以限定用用户的操操作权限限。2.2主界界面模块块界面如图44.2 2登录录之前及及4.22 3登登录之后后,其功功能是实实现在各各个功能能模块的的界面之之间的进进行跳转转: 图4.2 2 图44.2 32.3主生生产计划划模块界面如下图图4.22 4,主主要是实实现客户户订单管管理:图4.2 4 图图4.22 5为为产品结结构管理理:图4.2 5 图图4.22 6为为物料库库存管理理:图4.2 6 图图4.22 7为为物料需需求分析析界面:图4.2 72.4订单单管理模模块 图图4.22 8为为订单管管理界面面:图4.2 82.5用户户管理模模块 图图4.22 9为为用户管管理界面面,包括括注册、修修改密码码、权限限设置等等:图4.2 93.数据库库设计数据库设计计如下:客户订单文文件表ooderrforrm字段名称字段描述数据类型字段长度是否主键允许为空否否Odernno订单号Char10YNPno产品编号Char10NNPnum订单总量Int4NNPselffnumm自产量Int4NNPbuynnum外购量Int4NNOdertt下单日期Datettimee8NYDelitt交货日期Datettimee8NYStatee当前状态Datettimee10NY物料需求订订单文件件表maatellistt字段名称字段描述数据类型字段长度是否主键允许为空否否Mlno订单编号Char10YNMno物料编号Char10NYMlnumm订购数量Int4NYMltimme订购日期Datettimee8NYMlvivvtimme有效期至Datettimee8NYRemarrk备注Char30NY物料库存文文件表mmateestoor字段名称字段描述数据类型字段长度是否主键允许为空否否Mno物料编号Char8YNMnamee物料名称Char10NYMlayeer所属层次Int4NYMprenno上层编号Char8NYMprennum上层需求Int4NYMtnumm库存总量Int4NYMvnumm可用数量Int4NYMwnumm将要入库量量Int4NYSecnuum安全库存Int4NYMut计量单位Char4NYMfiniish成品率Floatt8NYMadvaant提前期Int4NYAvat生效日期Datettimee8NYInvatt失效日期Datettimee8NYRemarrk备注Char30NY物料分析临临时表ttemppinffo字段名称字段描述数据类型字段长度是否主键允许为空否否Dtimee需求日期Datettimee8NNDmno物料编号Char8NNDmnamme物料名称Char10NNDmlayyer所属层次Int4NNDmadvvanttt提前期Int4NNDprenno上层编号Char8NNDprennum上层需求Int4NNDmfinnishh成品率Floatt8NNDvnumm可用数量Int4NNDwnumm将要入库量量Int4NNDsnumm安全库存Int4NNDdtnuum毛需求量Int4NNDdnettnumm净需求量Int4NNdselffn自产量Int4NYdbuynn外购量Int4NY用户信息表表useerinnfo字段名称字段描述数据类型字段长度是否主键允许为空否否Usernnamee用户名Char10YNPasssswd用密码Char10NNUrighht用户权限Char10NYLastiit最近登录时时间Datettimee8NYLastoot最近登出时时间Datettimee8NYRemarrk备注Char30NY三实施阶阶段1.实现方方案以一个简化化了的自自行车产产品来说说明,其其库存状状态书记记库如上上图所示示。其结结构示意意图为:自行车 车架(1)车轮(2) 车把(1)轮圈(1)轮胎(2)辐条(42)0层1层2层基本的物料料计划步步骤为:(1) 确定自行车车的总需需求、净净需求和和计划定定单下达达的时间间;(2) 根据上层的的结果,确确定第11层上所所有物料料的净需需求和计计划定单单下达的的时间;(3) 根据上层车车轮的结结果,确确定第22层上所所有物料料的净需需求和计计划定单单下达的的时间。其中用到的的公式有有:第t周期的的净需求求量=第第t周期期的毛需需求现有量量第t周周期计划划入库量量+安全全库存不考虑批量量问题,则则t-LL周期计计算计划划订单下下达数量量等于tt周期净净需求量量,即: R(tt-L)=N(tt)2.系统开开发、调调试与运运行2.1登录录模块设设计 界界面如图图图5.4 1 主主要程序序代码为为:unit Loggin;var fmLLogiin: TfmmLoggin;impleemenntattionnuses dattamdd, MMainn;$R *.dffm/自自定义过过程,验验证用户户/proceedurre TTfmllogiin.uuserrjugg(u,p,rr:sttrinng);var uupsqql,uupsqql2:strringg;beginn if u=''' tthenn bbegiin shhowmmesssagee('用用户名不不能为空空,请输输入用户户名!''); eddtunn.seetfoocuss; eend elsse iif pp=''' thhen bbegiin shhowmmesssagee('密密码不能能为空,请请输入密密码!''); eddtpww.seetfoocuss; eend elsse bbegiin uppsqll:=''sellectt ussernnm,ppassswd,uriightt frrom useerinnfo wheere useernmm='+'''''+uu+'''''+' aand passswdd =''+'''''+p+''''''+' andd urrighht=''+'''''+r+'''''' uppsqll2:='uppdatte uuserrinffo sset lasstitt='+'''''+ddateetosstr(Noww)+''''''+' wheere useernmm='+'''''+uu+''''' trry dtmmd.qqryuup.CClosse; dtmmd.qqryuup.SSQL.Cleear; dtmmd.qqryuup.SSQL.Addd(uppsqll); dtmmd.qqryuup.OOpenn; if nott dttmd.qryyup.Eoff thhen /用用户合法法,则进进入系统统 bbegiin dttmd.qryyup.Cloose; /更新用用户的最最近登录录时间 dttmd.qryyup.SQLL.Cllearr; dttmd.qryyup.SQLL.Addd(uupsqql2); dttmd.qryyup.ExeecSQQL; fmmMaiin.RRzGrroupp1.VVisiiblee:=ffalsse; fmmMaiin.RRzGrroupp2.VVisiiblee:=ttruee; fmmMaiin.RRzGrroupp2.OOpenned:=trrue; fmmMaiin.RRzGrroupp3.VVisiiblee:=ttruee; fmmMaiin.RRzGrroupp4.VVisiiblee:=ttruee; fmmMaiin.RRzGrroupp5.VVisiiblee:=ttruee; fmmMaiin.RRzGrroupp5.VVisiiblee:=ttruee; fmmMaiin.ppu:=u; fmmMaiin.ppp:=p; fmmMaiin.ppr:=r; fmmMaiin.ssttbb.Paanells00.TTextt:=ffmMaain.pu; fmmLoggin.Cloose; eend elsse bbegiin shhowmmesssagee('用用户名或或密码错错误!''); eddtunn.SeetFoocuss; eend exxceppt shoowmeessaage('连接接数据库库失败,请请检查数数据库服服务是否否正常!'); ennd; eend;end;/退出出登录/proceedurre TTfmLLogiin.bbtneextCClicck(SSendder: TOObjeect);beginn sellf.CClosse;end;/登录录按钮/proceedurre TTfmLLogiin.bbtnllgCllickk(Seendeer: TObbjecct);var rri:sstriing;beginn if sellf.rrbu.Cheeckeed tthenn rri:='usser'' elsse iif sselff.rbba.CChecckedd thhen rri:='addminni' useerjuug(ttrimm(eddtunn.Teext),trrim(edttpw.Texxt),ri);end;/用户名名和密码码文本框框里回车车/proceedurre TTfmLLogiin.eedtuunKeeyPrresss(Seendeer: TObbjecct; varr Keey: Chaar);var rri:sstriing;beginn if keyy=#113 tthenn bbegiin if sellf.rrbu.Cheeckeed tthenn rri:='usser'' elsse iif sselff.rbba.CChecckedd thhen rri:='addminni' useerjuug(ttrimm(eddtunn.Teext),trrim(edttpw.Texxt),ri); eend;end;end.2.2订单单管理界面如图55.4 2图5.4 2主要代码:unit Odeerfoorm;var fmOOderrforrm: TfmmOdeerfoorm;impleemenntattionnuses dattamdd, MMainn;$R *.dffm/各个个下拉框框赋值共共用过程程/proceedurre TTfmOOderrforrm.ccbpbbdpdd(teet:sstriing);var i,jj:inntegger; osqql:sstriing;beginn witth ddtmdd.qrryoffm ddo bbegiin ossql:='sseleect disstinnct '+ttet+' ffromm odderfformm' /查询询唯一值值 trry Cloose; SQLL.cllearr; SQLL.Addd(oosqll); Opeen; fmOOderrforrm.ddbnoo.DaataSSourrce:=niil; fmOOderrforrm.ddbgoo.DaataSSourrce:=niil; Firrst; i:=ReccorddCouunt; forr j:=0 to i-11 doo /循循环赋值值 bbegiin iff m=1 tthenn cbnno1.Iteems.Addd(FiielddByNNamee('ooderrno'').AAsSttrinng) ellse if m=22 thhen cbnno2.Iteems.Addd(FiielddByNNamee('ooderrno'').AAsSttrinng); Neext; eend; exxceppt shoowmeessaage('数据据库连接接失败!请检查查数据库库服务是是否正常常!'); ennd; eend;end;proceedurre TTfmOOderrforrm.bbtneexittCliick(Sennderr: TTObjjectt);beginn sellf.CClosse;end;proceedurre TTfmOOderrforrm.ccbnoo1DrropDDownn(Seendeer: TObbjecct);beginn m:=1; sellf.ccbnoo1.IItemms.CCleaar; sellf.ccbpbbdpdd('ooderrno'');end;proceedurre TTfmOOderrforrm.ccbnoo2DrropDDownn(Seendeer: TObbjecct);beginn m:=2; sellf.ccbnoo2.IItemms.CCleaar; sellf.ccbpbbdpdd('ooderrno'');end;/=/proceedurre TTfmOOderrforrm.bbtnssearrCliick(Sennderr: TTObjjectt);var ssqql,ccdt:strringg;beginn ssqql:='seelecct ooderrno as 订单号号,pnno aas 产产品编号号,mnnamee ass 产品品名称,pnuum aas 订订购量,odeert as 订购日日期,ddeliit aas 交交货日期期,sttatee ass 当前前状态 froom ooderrforrm,mmateestoor wwherre mmno=pnoo annd ppno<<>'+'''''+'''''' if cbnno1.Texxt<>>'' theen ccdt:=' andd oddernno>='+''''''+trrim(cbnno1.Texxt)+''''' if cbnno2.Texxt<>>'' theen ccdt:=cddt+'' annd ooderrno<<='+'''''+ttrimm(cbbno22.Teext)+''''' if dattetoostrr(dttp1.Datte)<<>''' thhen cdtt:=ccdt+' aand dellit>>='+'''''+ddateetosstr(dtpp1.DDateeTimme)+''''' if dattetoostrr(dttp2.Datte)<<>''' thhen cdtt:=ccdt+' aand dellit<<='+'''''+ddateetosstr(dtpp2.DDateeTimme)+''''' if cbnnm.TTextt<>''' tthenn cddt:=cdtt+' andd pnno=''+'''''+triim(ccbnmm.Teext)+''''' if cbsst.TTextt<>''' tthenn cddt:=cdtt+' andd sttatee='+'''''+ttrimm(cbbst.Texxt)+''''' ssqql:=ssqql+ccdt; witth ddtmdd.qrryoffm ddo bbegiin trry Cloose; SQLL.cllearr; SQLL.Addd(sssqll); Opeen; fmOOderrforrm.ddbnoo.DaataSSourrce:=dttmd.dsoofm; /动动态指定定数据感感知组件件的数据据源 fmOOderrforrm.ddbgoo.DaataSSourrce:=dttmd.dsoofm; exxceppt shoowmeessaage('数据据库连接接失败!请检查查数据库库服务是是否正常常!'); ennd; eend;end;/*是否否允许编编辑*proceedurre TTfmOOderrforrm.eedorrCliick(Sennderr: TTObjjectt);beginn if fmOOderrforrm.eedorr.Chheckked theen /允允许编辑辑 bbegiin fmmOdeerfoorm.dbggo.OOptiionss:=ffmOdderfformm.dbbgo.Opttionns-dgRRowSSeleect+ddgedditiing; fmmOdeerfoorm.dbnno.VVisiibleeButttonns:=nbbinssertt,nbbdelletee,nbbediit,nnbpoost,nbccanccel,nbrrefrreshh; eend elsse /不允允许编辑辑 bbegiin fmmOdeerfoorm.dbggo.OOptiionss:=ffmOdderfformm.dbbgo.Opttionns+dgRRowSSeleect-ddgedditiing; fmmOdeerfoorm.dbnno.VVisiibleeButttonns:=nbbfirrst,nbpprioor,nnbneext,nbllastt; eendend;proceedurre TTfmOOderrforrm.FFormmCreeatee(Seendeer: TObbjecct);beginn fmOOderrforrm.ddbnoo.ViisibbleBButttonss:=nbffirsst,nnbprriorr,nbbnexxt,nnblaast; fmOOderrforrm.ddbgoo.Opptioons:=fmmOdeerfoorm.dbggo.OOptiionss+ddgRoowSeelecct-dggediitinng;end;proceedurre TTfmOOderrforrm.FFormmShoow(SSendder: TOObjeect);beginn if fmMMainn.stttb.Pannelss0.Teext='' theen bbegiin /游游客不能能操作数数据库 seelf.GrooupBBox11.Ennablled:=faalsee; seelf.GrooupBBox22.Ennablled:=faalsee; eend elsse bbegiin /游游客不能能操作数数据库 seelf.GrooupBBox11.Ennablled:=trrue; seelf.GrooupBBox22.Ennablled:=trrue; eend; / sselff.dttp1.DatteTiime:=noow; sellf.ddtp22.DaateTTimee:=nnow;end;/单击击DBGGridd标题时时排序/proceedurre TTfmOOderrforrm.ddbgooTittleCClicck(CColuumn: TCColuumn);var i:iinteegerr;beginn if dtmmd.qqryoofm.Acttivee thhen bbegiin foor ii:=11 too dbbgo.Collumnns.CCounnt ddo beggin ddbgoo.Coolummnsi-11.TTitlle.FFontt.Coolorr:=cclWiindoowTeext;/恢恢复所有有标题字字体为默默认 ddbgoo.Coolummnsi-11.TTitlle.FFontt.Sttylee:=; endd; if dtmmd.qqryoofm.Sorrt<>>(Coolummn.FFielldNaame+' AASC'') tthenn bbegiin dttmd.qryyofmm.Soort:=Coolummn.FFielldNaame+' AASC'' Coolummn.TTitlle.FFontt.Coolorr:= clRRed; /改改变标题题行字体体为红色色,表示示当前的的排序方方式为升升序 Coolummn.TTitlle.FFontt.Sttylee:= fssBolld; eend elsse bbegiin dttmd.qryyofmm.Soort:=Coolummn.FFielldNaame+' DDESCC' Coolummn.TTitlle.FFontt.Coolorr:=cclBllue; /改改变标题题行字体体为蓝色色,表示示当前的的排序方方式为降降序