版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
天津大学硕士学位论文基于SaaS模式的中小企业全供应链管理系统综合设计案例目录TOC\o"1-3"\h\u17967第1章系统综合设计 137651.1系统架构设计 1128641.2系统功能模块设计 2117711.2.1系统基础信息管理模块设计 3119411.2.2零售管理模块设计 472421.2.3采购管理模块设计 5253081.2.4销售管理模块设计 613631.2.5仓库管理模块设计 734201.2.6财务管理模块设计 8289691.2.7商品管理模块设计 9131721.2.8其他辅助功能模块设计 9161711.3系统数据库设计 1044021.4本章小结 1513513第2章系统开发实现 16208522.1系统开发环境 16101932.1.1系统开发硬件环境 1660332.1.2系统开发软件环境 16184242.2系统基础信息管理功能设计与实现 17284782.3零售管理功能设计与实现 21270502.4采购管理功能设计与实现 2373192.5销售管理功能设计与实现 2711372.6仓库管理功能设计与实现 28218752.7财务管理功能设计与实现 30269882.8商品管理功能设计与实现 31303242.9其他辅助功能设计与实现 3368322.10系统界面设计风格 36第1章系统综合设计1.1系统架构设计基于SaaS模式的中小企业全供应链管理系统是在IntelliJIDEA平台上进行开发的,系统的开发采用基于SpringBoot+Maven+Mybatis框架的Mysql数据库与Java语言,该平台采用GPL-3.0协议技术进行搭建具有良好的系统插拔性与可拓展性,并且符合企业级应用的标准与需求,具备完善且流畅的系统业务功能流程,支持外部控件与插件的动态绑定,可以实现基于不同系统平台的深入开发与拓展,可以较为便捷地与Mysql数据库等关系型数据库进行连接并通过Navicat等进行数据库可视化。目前较为通用的企业级信息管理平台大多都采用三层体系架构进行架构设计,三层体系架构的优势在于其软件部署与硬件部署的明确性与规范性,各个层级间的功能目标明确,并且具有较好的可拓展性、跨平台可用性以及高可维护性。基于SaaS模式的中小企业全供应链管理系统的C/S三层体系结构包含数据访问层、业务逻辑层以及视图表示层三层,其中数据访问层是指在接收到业务逻辑层的数据请求时,通过与数据库的连接接口进行数据的调用与抽取;业务逻辑层是用于处理用户发送的请求,并将请求得到的系统响应交付到视图表示层;视图表示层是用于将用户的请求以可视化的方式进行响应,即为系统平台的显示主界面与操作页面。本平台的整体架构设计如下图所示:图4-1系统架构图1.2系统功能模块设计结合前文对于本系统构建的功能性需求与非功能性的需求,本文所设计的系统将包含基础信息管理模块、零售管理模块、采购管理模块、销售管理模块、仓库管理模块、财务管理模块、商品管理模块以及辅助功能模块,每一模块各自对应于上一章中的各个实体需求。本系统平台的设计严格按照软件工程的设计思路,采用“高内聚、低耦合”的设计原则,以达到需求分析部分的系统平台质量与条件需求。同时,在进行基于SaaS模式的中小企业全供应链管理系统平台的设计过程中,为了尽可能凸显出本系统的创新性与丰富性,设计过程中不仅将每一部分的系统功能尽可能的细化,还在设计过程中创新地添加了一些辅助性的系统功能,例如:系统基础信息管理模块中的经手人管理以及车辆管理,可以较为便捷地对销售的经手人信息与仓库的可支配车辆进行管理;采购管理模块中的供应商历史价格信息管理以及供应商比价管理可以较为快捷地查看供应商的历史报价与当前报价的差别,并可以利用系统平台生成符合当前数量的最优采购方案;采购管理模块中收预付款管理,可以使得企业的会员可以在销售旺季进行提前的预付款并进行随时调货;报表查询模块,为系统的信息化助力,提升了系统平台中企业各项数据的便捷导出;生产管理模块中的BOM管理则是利用可视化的方案对生产的流程以及生产过程中所需使用的原料进行可视化管理与分配。综上,基于SaaS模式的中小企业全供应链管理系统的整体功能模块设计如下图所示:图4-2系统功能设计图1.2.1系统基础信息管理模块设计结合3.2.1节中对于系统基础信息管理的需求分析情况,本系统平台设计了供应商信息管理、客户信息管理、会员信息管理、仓库信息管理、收支项目管理以及结算账户管理这六个主要模块功能,并附加了经手人管理以及车辆管理这两个插件功能,该部分的功能模块设计主要是为了进一步提升对于系统、企业管理中基础信息的管理效率。此外,为进一步分析系统基础信息管理中功能的设计思路,本节以客户信息管理中客户信息添加功能为例进行设计流程分析,客户信息的添加主要由系统管理人员完成,系统管理人员在进入本系统平台后选择客户信息管理模块按钮,选择客户信息的录入并输入对应的客户信息(部分内容为必填),再提交客户信息。若出现违规字符或缺少相应的内容则会进行提示,反之则会提示客户信息录入成功并返回添加客户信息的界面,这一设计流程的时序图如下图所示:图4-3系统基础信息管理时序图1.2.2零售管理模块设计结合3.2.2节中对于零售管理的需求分析情况,本系统平台设计了零售出库管理、零售退货管理以及零售数据可视化这三个主要模块功能,该部分的功能模块设计旨在于提高零售数据的可视化管理程度以及零售数据的高效统计。此外,为进一步分析零售管理中功能的设计思路,本节以零售管理中零售退货记录添加功能为例进行设计流程分析,零售退货记录的添加主要由销售管理人员完成,销售管理人员在进入本系统平台后选择零售退货管理模块按钮,选择“添加”并输入单据日期、单据编号、零售条码、商品规格、商品型号等基础信息,且可以在侧面中直观地计算当前退货所产生的资金变动情况,若需要扫码或者新增退货目的仓库则可以在菜单栏执行操作。完成后若缺少必需项时系统平台会提示重新录入,反之录入成功返回到零售退货列表界面,这一设计流程的时序图如下图所示:图4-4零售管理时序图1.2.3采购管理模块设计结合3.2.3节中对于采购管理的需求分析情况,本系统平台设计了供应商历史价格信息管理、供应商比价管理、采购订单管理、采购入库管理以及采购退货管理这五个主要模块功能,该部分的功能模块设计旨在于利用历史数据与比价功能实现企业的高效率高质量的采购计划设计,并从入库与退货方面精准管理企业的采购方案情况。此外,为进一步分析采购管理中功能的设计思路,本节以采购管理中供应商比价功能为例进行设计流程分析,供应商比价主要由采购管理人员完成,采购管理人员在进入本系统平台后选择供应商价格管理模块按钮,进入后选定需要进行采购的产品编号进行供应商的筛选,筛选后页面会显示出可以提供该商品的供应商信息,采购人员录入商品的数量进行价格分析,系统会根据采购人员的操作将筛选的供应商报价进行由低到高的排序,并给出最优的组合采购方式,这一设计流程的时序图如下图所示:图4-5采购管理时序图1.2.4销售管理模块设计结合3.2.4节中对于销售管理的需求分析情况,本系统平台设计了销售订单管理、销售出库管理以及销售退货管理这三个主要模块功能,该部分功能模块的设计旨在于提升销售部门的销售计划的制定与管理效率。此外,为进一步分析销售管理中功能的设计思路,本节以销售管理中销售订单出库功能为例进行设计流程分析,销售订单出库主要由仓库管理人员完成,仓库管理人员在进入本系统平台后选择订单出库管理模块按钮并执行“添加”来进行订单出库记录的更新,仓库管理人员需要添加仓库的名称、订单条码、产品数量、税率等基础性内容,也可以在页面中的关联订单、优惠率、销售人员栏等处添加额外的备注信息,这一设计流程的时序图如下图所示:图4-6销售管理时序图1.2.5仓库管理模块设计结合3.2.5节中对于仓库管理的需求分析情况,本系统平台设计了入库管理、出库管理、调拨出库管理、组装单管理以及拆卸单管理这五个主要模块功能,该部分功能模块的设计旨在于提升仓储部门对于仓库内产品的进出管理效率以及摘些组装的订单安排合理性。此外,为进一步分析仓库管理中功能的设计思路,本节以仓库管理中其他入库功能为例进行设计流程分析,其他入库这一功能主要由仓库管理人员完成,仓库管理人员在进入本系统平台后选择其他入库管理模块按钮并执行“增加”来进行入库(订单或本企业生产产品的入库)的更新,需要根据提示完成对于单据日期、单据编号、仓库名称、条码、金额等基础信息的添加,若添加信息无误则系统将数据存入后台数据库并返回原页面,反之则进行缺省值提示,这一设计流程的时序图如下图所示:图4-7仓库管理时序图1.2.6财务管理模块设计结合3.2.6节中对于财务管理的需求分析情况,本系统平台设计了收入单管理、支出单管理、收款单管理、付款单管理、转账单管理以及收预付款管理这六个主要模块功能,该部分功能模块的设计旨在于提升企业财务部门的各项款项管理与归类效率。此外,为进一步分析财务管理中功能的设计思路,本节以财务管理中收预付款管理功能为例进行设计流程分析,收预付款管理这一功能主要由财务管理人员完成,财务管理人员在进入本系统平台后选择收预付款管理模块按钮并执行“增加”来进行预付款项的记录,需要按照提示选择付款会员的信息、经手人的信息、单据记录日期、单据编号、优惠金额等基础内容,也可以选择随时撤销当前的预付款项信息,这一部分的活动图设计思路与1.2.5节保持一致在此不过多赘述。1.2.7商品管理模块设计结合3.2.7节中对于商品管理的需求分析情况,本系统平台设计了商品类别管理、商品信息管理、计量单位管理以及序列号管理这四个主要模块功能,该部分功能模块设计旨在于提升企业对于自身企业产品的管理效率。此外,为进一步分析商品管理中功能的设计思路,本节以商品管理中商品信息管理功能为例进行设计流程分析,商品信息管理这一功能主要由销售管理人员完成,销售管理人员在进入本系统平台后选择商品信息管理模块按钮并执行“增加”来进行商品信息记录的添加(也可以选择删除、启用、禁用、表格导入或导出来进行商品信息的管理),需要在添加商品信息时按照需求录入商品的名称、单位(可为复合单位)、类别、预警库存量等,且需要根据企业制定的销售策略添加该商品的采购价、零售价、销售价以及最低售价,完成信息录入后若信息添加完全则系统将会保存信息并返回商品列表,若存在缺省值则会提示添加,这一部分的活动图设计思路与1.2.3节保持一致在此不过多赘述。1.2.8其他辅助功能模块设计结合1.2.8节中对于系统中辅助模块的需求分析情况,本系统设计了系统管理模块、报表查询模块、盘点业务管理以及生产管理模块这四个主要模块作为系统的辅助功能模块,且每一部分各自包含独立的子功能模块,其中系统管理模块中包含角色管理、用户管理、机构管理、日志管理以及系统配置管理这五个子功能;报表查询模块中包含库存状况查询、账户统计查询、进货统计查询、销售统计查询以及库存预警等十五个子功能;盘点业务管理模块中包含盘点录入以及盘点复盘这两个子功能;生产管理模块中包含生产任务管理以及BOM管理这两个子功能。上述辅助模块功能中系统管理模块中大多为企业级的信息管理内容,所以在基础的增删改查的基础上额外添加了手势密码验证功能进行身份验证,以此保障系统内数据的安全性;报表查询模块则可以根据不同的登录权限开放不同的报表数据,不同权限的管理人员可以结合自身需求对可查询的报表进行数据导出,但无权进行报表数据的修改;盘点业务管理可以对过去阶段时间内的商品往来与前款往来进行盘点,若存在疑问的商品往来或前款往来则可以直接转向盘点复盘进行再次盘点(包含审核与反审核两种可操作类别);生产管理模块中可以由企业管理人员录入当前企业内部的生产计划与任务,并通过不同的状态显示当前生产进度情况,BOM管理则是该系统平台的创新功能内容之一,用于可视化显示当前生产的所需物料与生产工序情况。1.3系统数据库设计结合本章前半部分的功能模块设计内容,基于SaaS模式的中小企业全供应链管理系统平台的数据表包含角色表、用户表、产品表、供应商信息表、客户信息表、财务信息表、仓库表、操作日志表、序列号表等共计25张数据表,本节将给出重要主表的表结构信息,主要包括角色表(SaaS_role)、用户表(SaaS_user)、产品表(SaaS_material)、仓库表(SaaS_depot)、账户信息表(SaaS_account)以及供应商信息表(SaaS_supplier):表4-1角色表结构数据库表名:角色表(SaaS_role)列名数据类型数据长度是否可为空说明备注Idbigint20否主键无Namevarchar50是名称无Typevarchar50是类型无Valuevarchar200是数值无Descriptionvarchar100是描述无delete_Flagbool1是删除标记,0未删除,1删除默认为0表4-2用户表结构数据库表名:用户表(SaaS_user)列名数据类型数据长度是否可为空说明备注Idbigint20否主键无Usernamevarchar255否用户姓名无Loginnamevarchar255否登录用户名无Passwordvarchar255否登录密码无Positionvarchar200否职位无Departmentvarchar255否所属部门无Emailvarchar255否电子邮箱无Phonenumvarchar255否手机号码无Ismanagerbool4否是否为管理者,0==管理者1==员工默认为1Isystembool4否是否系统自带数据默认为0Statustinyint4否用户状态0:正常,1:删除,2封禁Descriptionvarchar255是用户描述信息无Remarkvarchar255是备注无表4-3产品表结构数据库表名:产品表(SaaS_material)列名数据类型数据长度是否可为空说明备注Idbigint20否主键无CategoryIdbigint20否产品类型无Namevarchar50否产品名称无Mfrsvarchar50否制造商无Packingdecimal(24,6)否包装无SafetyStockdecimal50否预警库存无Modelvarchar50否型号无Standardvarchar50否规格无Colorvarchar255否颜色无Unitvarchar50否单位无Remarkvarchar255是备注无RetailPricedecimal(24,6)否零售价无LowPricedecimal(24,6)否最低价无PresetPriceOnedecimal(24,6)是预售价格情况1无PresetPriceTwodecimal(24,6)是预售价格情况2无UnitIdbigint20否计量单位序号无FirstOutUnitvarchar255否首选出库单位无FirstInUnitvarchar255否首选入库单位无PriceStrategyvarchar50否价格策略无Enabledbool1否启用禁用1-启用无enableSerialNumbervarchar1否是否开启序列号,0否,1是默认为0delete_Flagbool1否删除标记,0未删除,1删除默认为0表4-4仓库表结构数据库表名:仓库表(SaaS_depot)列名数据类型数据长度是否可为空说明备注Idbigint20否主键无Namevarchar255否仓库名称无Addressvarchar255否仓库地址无Warehousingdecimal(24,6)否仓储费无Truckagedecimal(24,6)否搬运费无Typeint10否类型无Sortvarchar50否排序无Remarkvarchar255是备注无Principalbigint20否负责人无delete_Flagbool1否删除标记,0未删除,1删除默认为0IsDefaultbool1否是否默认值表4-5账户信息表结构数据库表名:账户信息表(SaaS_account)列名数据类型数据长度是否可为空说明备注Idbigint20否主键无Namevarchar50否账户名称无SerialNumvarchar50否账户序号无InitialAmountdecimal(24,6)否期初金额无CurrentAmountdecimal(24,6)否当期金额无Remarkvarchar255是备注无IsDefaultbool1否是否默认值无delete_Flagbool1否删除标记,0未删除,1删除默认为0表4-6供应商信息表结构数据库表名:供应商信息表(SaaS_supplier)列名数据类型数据长度是否可为空说明备注Idbigint20否主键无Suppliervarchar255否供应商名称无Contactsvarchar255否联系人无Phonenumvarchar50否联系电话无Emailvarchar255否电子邮箱无Descriptionvarchar255是备注无Isystembool4否是否系统自带0==系统1==非系统无Typevarchar50否类型无Enabledbool1否是否启用无AdvanceIndecimal(24,6)否预收款默认为0BeginNeedGetdecimal(24,6)否期初应收无BeginNeedPaydecimal(24,6)否期初应付无AllNeedGetdecimal(24,6)否累计应收无AllNeedPaydecimal(24,6)否累计应付无Faxvarchar255否传真无Telephonevarchar50是手机号码无Addressvarchar50是地址无TaxNumvarchar50否纳税人识别号无BankNamevarchar50是开户行无AccountNumbervarchar255是账号无TaxRatedecimal(24,6)是税率无delete_Flagbool1否删除标记,0未删除,1删除默认为01.4本章小结本章结合第三章的切实需求出发,分析了基于SaaS模式的中小企业全供应链管理系统的架构模式以及各个功能模块的设计思路,并通过业务流程图与时序图具体分析了各个功能模块的业务处理方案与开发思路,最后通过实体关系图分析了各个功能模块之间的关联,并给出了数据库主表的设计方案。第5章系统开发实现2.1系统开发环境2.1.1系统开发硬件环境基于SaaS模式的中小企业全供应链管理系统平台所需要处理的数据容量较大,系统的功能运行交互复杂,因此整体的硬件设备选择需要尽可能保障性能,且围绕系统平台的硬件部署环境主要是对服务器的配置,其具体配置结果如下所示:表5-1硬件环境配置项名称配置项参数CPUIntel酷睿I54570内存金斯顿DDR38G1600硬盘希捷1T7200转主板技嘉B85M-HD3显卡七彩虹镭风HD7760光驱鑫谷站侠500机箱撒哈拉走线大师GL6至尊版从上表的配置结果中可以看出,本系统平台的开发主板选用的是技嘉主板MATX板型,该板型可以协助硬件的高质量运行;CPU的插槽则采用LGA1150的接口模式,且技嘉主板MATX板型也提供了1条全规格的PCI-E显卡的插槽,用于防止在整体系统运行效率较低的情况下补足显卡用于维持稳定性。综上,该套硬件环境的配置可以满足本系统平台的实际开发应用需求。2.1.2系统开发软件环境基于SaaS模式的中小企业全供应链管理系统平台的软件环境采用Java语言进行发开,采用Window10与Linux操作系统进行跨平台开发,系统平台开发过程中选用基于JRE1.8(JDK1.8)的IntelliJIDEA2017+作为Java开发平台,选用SpringBoot2.0.0+Mybatis1.3.2+Maven3.2.3作为系统开发的主框架,并结合Log4j2.10.0作为日志管理框架、Jquery1.8.0作为JS框架、EasyUI1.9.4作为UI框架、AdminLTE2.1.0作为模板框架以及Swagger2.7.0(Ip:port/doc.html)作为API接口管理框架。2.2系统基础信息管理功能设计与实现系统基础信息管理功能模块中包含供应商信息管理、客户信息管理、会员信息管理、仓库信息管理、收支项目管理以及结算账户管理这六个子功能模块,以供应商信息管理与结算账户管理为例:图5-1供应商信息管理图5-2供应商信息管理图5-3结算账户管理从上图中可以看出供应商信息列表包含供应商名称、联系人、联系方式、预付款项、应收金额、供应商状态以及先关的启用与禁用操作等信息,也可以根据具体的需求进行条件检索或增加指定的供应商信息,这一部分的代码逻辑如下所示://根据供应商ID信息进行供应商列表获取publicList<Supplier>getSupplierListByIds(Stringids)throwsException{List<Long>idList=StringUtil.strToLongList(ids);List<Supplier>list=newArrayList<>();try{SupplierExampleexample=newSupplierExample();example.createCriteria().andIdIn(idList);list=supplierMapper.selectByExample(example);}catch(Exceptione){JshException.readFail(logger,e);}returnlist;}//根据不同的检索条件进行供应商检索结果列表获取publicList<Supplier>select(Stringsupplier,Stringtype,Stringphonenum,Stringtelephone,Stringdescription,intoffset,introws)throwsException{List<Supplier>resList=newArrayList<Supplier>();try{List<Supplier>list=supplierMapperEx.selectByConditionSupplier(supplier,type,phonenum,telephone,description,offset,rows);for(Suppliers:list){IntegersupplierId=s.getId().intValue();StringendTime=getNow3();StringsupType=null;if(("客户").equals(s.getType())){supType="customer";}elseif(("供应商").equals(s.getType())){supType="vendor";}BigDecimalsum=BigDecimal.ZERO;BigDecimalbeginNeedGet=s.getBeginneedget();if(beginNeedGet==null){beginNeedGet=BigDecimal.ZERO;}BigDecimalbeginNeedPay=s.getBeginneedpay();if(beginNeedPay==null){beginNeedPay=BigDecimal.ZERO;}sum=sum.add(depotHeadService.findTotalPay(supplierId,endTime,supType));sum=sum.add(accountHeadService.findTotalPay(supplierId,endTime,supType));if(("客户").equals(s.getType())){sum=sum.add(beginNeedGet).subtract(beginNeedPay);s.setAllneedget(sum);s.setAllneedpay(BigDecimal.ZERO);}elseif(("供应商").equals(s.getType())){sum=sum.add(beginNeedPay).subtract(beginNeedGet);s.setAllneedget(BigDecimal.ZERO);s.setAllneedpay(sum);}resList.add(s);}}catch(Exceptione){JshException.readFail(logger,e);}returnresList;}此外,从上图中可以看出结算账户中的各个账户的信息列表,并且可以根据实际的需求进行条件查询,也可以通过删除、增加以及设为默认进行操作,这一部分的代码逻辑如下所示://根据账户ID信息进行结算账户列表获取publicList<Account>getAccount()throwsException{AccountExampleexample=newAccountExample();example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);List<Account>list=null;try{list=accountMapper.selectByExample(example);}catch(Exceptione){JshException.readFail(logger,e);}returnlist;}//根据条件信息进行检索后的账户列表获取publicList<AccountVo4List>select(Stringname,StringserialNo,Stringremark,intoffset,introws)throwsException{List<AccountVo4List>resList=newArrayList<AccountVo4List>();List<AccountVo4List>list=null;try{list=accountMapperEx.selectByConditionAccount(name,serialNo,remark,offset,rows);}catch(Exceptione){JshException.readFail(logger,e);}StringtimeStr=Tools.getCurrentMonth();if(null!=list&&null!=timeStr){for(AccountVo4Listal:list){DecimalFormatdf=newDecimalFormat(".##");BigDecimalthisMonthAmount=getAccountSum(al.getId(),timeStr,"month").add(getAccountSumByHead(al.getId(),timeStr,"month")).add(getAccountSumByDetail(al.getId(),timeStr,"month")).add(getManyAccountSum(al.getId(),timeStr,"month"));StringthisMonthAmountFmt="0";if((thisMonthApareTo(BigDecimal.ZERO))!=0){thisMonthAmountFmt=df.format(thisMonthAmount);}al.setThismonthamount(thisMonthAmountFmt);//本月发生额BigDecimalcurrentAmount=getAccountSum(al.getId(),"","month").add(getAccountSumByHead(al.getId(),"","month")).add(getAccountSumByDetail(al.getId(),"","month")).add(getManyAccountSum(al.getId(),"","month")).add(al.getInitialamount());al.setCurrentamount(currentAmount);resList.add(al);}}returnresList;}2.3零售管理功能设计与实现零售管理功能模块中包含零售出库管理、零售退货管理以及零售数据可视化这三个子功能模块,本节以零售数据可视化与零售出库为例进行分析:图5-4数据可视化管理图5-5零售出库管理从上图中可以看出首页中的零售数据可视化中包含累计销售、累计进货、采购数据以及销售数据等信息。此外,通过“增加”按钮可以添加零售出库的信息,该功能可以额外进行会员信息的添加,新增或删除指定行、撤销或新增仓库信息、新增商品信息等操作也可以进行执行,同时在执行上述操作时也需要按照指定的条件需求进行基础信息的录入,这一部分代码逻辑如下所示://根据零售出库的ID信息获取信息列表publicList<InOutItem>getInOutItemListByIds(Stringids)throwsException{List<Long>idList=StringUtil.strToLongList(ids);List<InOutItem>list=newArrayList<>();try{InOutItemExampleexample=newInOutItemExample();example.createCriteria().andIdIn(idList);list=inOutItemMapper.selectByExample(example);}catch(Exceptione){JshException.readFail(logger,e);}returnlist;}publicList<InOutItem>getInOutItem()throwsException{InOutItemExampleexample=newInOutItemExample();example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);List<InOutItem>list=null;try{list=inOutItemMapper.selectByExample(example);}catch(Exceptione){JshException.readFail(logger,e);}returnlist;}2.4采购管理功能设计与实现采购管理功能模块下包含供应商历史价格信息管理、供应商比价管理、采购订单管理、采购入库管理以及采购退货管理这五个子功能,本节以采购订单与采购入库页面为例:图5-6采购订单管理图5-6采购订单管理从上图中可以看出采购订单信息列表包含供应商名称、商品信息、单据日期、操作员、金额合计、当前状态等信息,也可以根据具体的需求进行条件检索或增加或删除指定的采购订单信息。此外,采购入库页面信息中包含供应商名称、单据编号、商品信息、单据日期、操作员、金额合计、含税合计、优惠后金额以及实付款等操作信息,也可以根据单据编号或商品信息进行条件检索。此外,还在该模块额外纳入了基于数据挖掘的关联推荐算法,来进行关联性质的采购。数据挖掘(DataMining)是指结合具体的挖掘算法从大量的、存在噪声的、模糊的数据中抽取并分析潜在有效信息的技术,一般情况下,数据挖掘的主要目的是结合给定的数据完成数据描述与数据预测。其中,数据描述是对给定的数据进行合理的分析与整理,而数据预测则是根据给定的数据预测下一瞬间某一相关事件将会发生的概率。数据挖掘技术的发展取决于其应用场景的拓宽,数据挖掘并非仅仅面向基础浅层数据进行数据处理,而是通过微观与中观进行数据信息的汇总与推理,以研究的实际问题作为导向来挖掘事件间的潜在关联,或可以根据时序数据进行动态数据挖掘信息预测。大部分的数据挖掘工具可以根据使用者所提交的数据与内置处理算法进行数据分析,可以略去较为复杂的工具操作步骤。从本质角度来讲,数据挖掘的核心是数据统计与分析,所涉及的统计类型涵盖数理统计、计量统计、时序数据统计等,再结合人工智能与神经网络等关键技术的发展,数据挖掘被开拓出了新的研究思路。此外,数据挖掘的主体对象类型包含数据库系统数据、数据仓库数据、事务数据以及超文本与多媒体数据等,不同的数据需要不同的数据预处理方案,完成数据预处理后可以按照数据挖掘的基本流程继续执行后续的操作。关联规则是指在一项事务中的不同物品中同时出现了可以进行考究的规律或模式,也就是某一物品的出现对另一物品的出现有着何种程度的影响。关联规则中将称为项集,其中每一个代表一个自然项且取值范围是,1代表该自然项出现在事务的定义中,而0则代表该自然项未出现在事务的定义中。关联规则中称为数据库,用于存储不同的事务,每一个事务包含若干个项集中的自然项且每个事务具有其独特的事务标识符(TransactionID)。每一条关联规则都由两个事务集构成,并由其中一个事务集推导另一个事务集,通常情况下一条具有价值的关联规则可能由数十个事务进行支撑才被认为是统计效果显著的。一般用于衡量关联规则的指标包括支持度与置信度,支持度用于表示项目集中的自然项在数据库中的出现频率,可以用于体现某一自然项的重要程度;而置信度则是用于表示某一关联规则的显著程度或可信程度,也就是表明某一条规则的应用价值。在一套采购流程中,任何两个数据都具有一定的关联,但是为了保障统计的显著性,就需要利用置信度与支持度分离出具有价值的关联规则来进行序列数据的统计分析与后续预测,这就要求使用的关联规则需要满足最小支持度与置信度的阈值。而关联规则挖掘的具体流程主要包括两个步骤,第一是从项集中提取出高频项目组,也就是在生产运维数据中较为重要的一些数据组合;第二是利用这些高频的项目组合来生成具有价值的关联规则。关联规则挖掘算法可以划分为基于规则中变量类别的布尔型与数据型挖掘算法、基于抽象层次的单层次规则型与多层次规则型挖掘算法以及基于数据维度的单维与多维挖掘算法。具体的关联规则挖掘算法则包括Apriori挖掘算法、基于划分的挖掘算法以及FP-树频集挖掘算法,其中Apriori挖掘算法是单维、单层、布尔关联规则挖掘算法中较为突出的挖掘算法,这种方式侧重于进行数据挖掘中的信息预测,具有着较广泛的应用范畴,这一部分的代码逻辑如下所示://根据采购订单的ID信息获取采购订单的信息列表publicList<Depot>getDepotListByIds(Stringids)throwsException{List<Long>idList=StringUtil.strToLongList(ids);List<Depot>list=newArrayList<>();try{DepotExampleexample=newDepotExample();example.createCriteria().andIdIn(idList);list=depotMapper.selectByExample(example);}catch(Exceptione){JshException.readFail(logger,e);}returnlist;}//根据给定信息的录入进行采购订单信息的插入publicintinsertDepot(StringbeanJson,HttpServletRequestrequest)throwsException{Depotdepot=JSONObject.parseObject(beanJson,Depot.class);intresult=0;try{result=depotMapper.insertSelective(depot);logService.insertLog("仓库",newStringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(depot.getName()).toString(),request);}catch(Exceptione){JshException.writeFail(logger,e);}returnresult;}//执行“增加”或“删除”操作后对列表进行更新@Transactional(value="transactionManager",rollbackFor=Exception.class)publicintupdateDepot(StringbeanJson,Longid,HttpServletRequestrequest)throwsException{Depotdepot=JSONObject.parseObject(beanJson,Depot.class);depot.setId(id);intresult=0;try{result=depotMapper.updateByPrimaryKeySelective(depot);logService.insertLog("仓库",newStringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(depot.getName()).toString(),request);}catch(Exceptione){JshException.writeFail(logger,e);}returnresult;}2.5销售管理功能设计与实现销售管理功能中包含销售订单管理、销售出库管理以及销售退货管理这三个子功能,本节以销售订单管理与销售出库管理为例进行页面实现展示,这一部分的代码逻辑与2.4节中采购订单管理与采购出库的逻辑代码实现方案一致,在此不过多进行赘述:图5-7销售订单管理图5-8销售出库管理2.6仓库管理功能设计与实现仓库管理功能中包含入库管理、出库管理、调拨出库管理、组装单管理以及拆卸单管理这五个子功能,本节以为其他出库信息管理与组装单信息管理为例进行页面实现展示:图5-9其他出库管理图5-10组装单管理从上图中可以看出其他出库信息列表中包含客户名称、单据编号、商品信息、单据日期、操作员以及金额合计等信息,也可以根据具体的需求进行条件检索或增加或删除指定的出库信息记录。此外,组装单或拆卸单的代码开发逻辑与前述一致,且额外可以进行批量删除的操作,这一部分的代码逻辑如下所示://根据给定的条件信息的录入进行新记录的插入publicintinsertDepotItem(StringbeanJson,HttpServletRequestrequest)throwsException{DepotItemdepotItem=JSONObject.parseObject(beanJson,DepotItem.class);intresult=0;try{result=depotItemMapper.insertSelective(depotItem);}catch(Exceptione){JshException.readFail(logger,e);}returnresult;}//执行“增加”或“删除”操作后对信息列表进行更新@Transactional(value="transactionManager",rollbackFor=Exception.class)publicintupdateDepotItem(StringbeanJson,Longid,HttpServletRequestrequest)throwsException{DepotItemdepotItem=JSONObject.parseObject(beanJson,DepotItem.class);depotItem.setId(id);intresult=0;try{result=depotItemMapper.updateByPrimaryKeySelective(depotItem);}catch(Exceptione){JshException.readFail(logger,e);}returnresult;}2.7财务管理功能设计与实现财务管理功能包含收入单管理、支出单管理、收款单管理、付款单管理、转账单管理以及收预付款管理这六个子功能,本节以收入单管理模块与收预付款管理模块为例进行页面实现展示,该部分的关键性代码为金额统计与整合且已在2.4中给出,在此不进行过多的赘述:图5-11收入单管理图5-12收预付款管理2.8商品管理功能设计与实现商品管理功能中包含商品类别管理、商品信息管理、计量单位管理以及序列号管理这四个子功能,且商品类别管理、计量单位管理、序列号管理均为商品信息管理的辅助管理模块,本节以商品信息管理模块的实现为例:图5-13商品信息管理从上图中可以看出商品信息列表中包含条码、名称、规格、型号、颜色、单位、安全存量、库存、采购价、零售价以及销售价等基础信息,也可以根据具体的需求进行条件检索、外接设备扫描、增加或删除、启用或禁用指定的商品信息,这一部分的代码逻辑如下所示://根据商品信息的ID进行商品列表信息的获取publicList<Material>getMaterialListByIds(Stringids)throwsException{List<Long>idList=StringUtil.strToLongList(ids);List<Material>list=newArrayList<>();try{MaterialExampleexample=newMaterialExample();example.createCriteria().andIdIn(idList);list=materialMapper.selectByExample(example);}catch(Exceptione){JshException.readFail(logger,e);}returnlist;}//根据“增加”或“删除”操作进行商品信息列表的更新publicintupdateMaterial(StringbeanJson,Longid,HttpServletRequestrequest)throwsException{Materialmaterial=JSONObject.parseObject(beanJson,Material.class);material.setId(id);try{materialMapper.updateByPrimaryKeySelective(material);JSONObjectmObj=JSON.parseObject(beanJson);materialExtendService.saveDetials(mObj.getString("inserted"),mObj.getString("deleted"),mObj.getString("updated"),mObj.getString("sortList"),id);if(mObj.get("stock")!=null){StringstockStr=mObj.getString("stock");JSONArraystockArr=JSONArray.parseArray(stockStr);for(Objectobject:stockArr){JSONObjectjsonObj=(JSONObject)object;if(jsonObj.get("depotId")!=null&&jsonObj.get("number")!=null){Stringnumber=jsonObj.getString("number");LongdepotId=jsonObj.getLong("depotId");//先清除再插入MaterialStockExampleexample=newMaterialStockExample();example.createCriteria().andMaterialIdEqualTo(id).andDepotIdEqualTo(depotId);materialStockMapper.deleteByExample(example);if(number!=null&&Double.valueOf(number)>0){insertStockByMaterialAndDepot(depotId,id,parseBigDecimalEx(number));}}}}logService.insertLog("商品",newStringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(material.getName()).toString(),request);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金融担保和风险投资行业市场现状供需分析及投资评估规划分析研究报告
- 能源行业市场现状供需分析及投资评估发展战略规划研究报告
- 盐边县2026年医疗卫生辅助岗招募笔试备考题库及答案详解
- 2026上海复旦大学附属中山医院上海国际医学科创中心招聘笔试备考试题及答案详解
- 2026年喀什地区喀什市中小学编制教师招聘考试模拟试题及答案详解
- 2026青海海东市平安区第七批公益性岗位开发需求25人笔试参考试题及答案详解
- 2026年国盛证券股份有限公司总部社会招聘15人(第七批)笔试参考试题及答案详解
- 通渭县2026-2027学年数学六上期末经典模拟试题含解析
- 鹤岗市向阳区2027届六上数学期末达标检测模拟试题含解析
- 2026四川宜宾市屏山县文化广播电视和旅游局第二次招聘编外聘用人员1人笔试备考试题及答案详解
- 2026SCCM指南成人急性呼吸窘迫综合征神经肌肉阻滞剂的应用课件
- 肝母细胞瘤中国肿瘤整合诊治指南2026
- 2026年八年级下期地理生物中考会考重要知识点
- 《羊水栓塞预防与处理指南(2025)解读》
- 荆州市事业单位请假制度
- 2026年网络安全从入门到精通网络安全知识题库与答案解析
- 肩袖损伤3D打印个性化支具康复方案
- 2026年人教版道德与法治七年级下册期末质量检测卷(附答案解析)
- 陶粒砂生产前安全培训课件
- 实验室成果转化中的知识产权保护策略
- 肺部流域地形图+2.0+原理、技术规范及临床应用胸外科专家共识(2024版)解读
评论
0/150
提交评论