您好,欢迎访问三七文档
1第一天国际物流杰信商贸+搭建环境1.项目背景杰信商贸是国际物流行业一家专门从事进出口玻璃器皿贸易的公司。公司总部位于十一个朝代的帝王之都西安,业务遍及欧美。随着公司不断发展壮大,旧的信息系统已无法满足公司的快速发展需求,妨碍公司成长,在此背景下,公司领导决定研发《杰信商贸综合管理平台》。《杰信商贸综合管理平台》分三期完成。一期完成仓储管理(包括:采购单、仓库、货物、条形码、入库、出库、退货、盘点、库存、库存上限报警、统计查询)和展会管理(包括:展会管理、出单管理),形成货物统一数字化管理。二期完成货运全流程管理,包括购销合同、出货表统计、出口报运单、HOME装箱单、装箱单、委托书、发票、财务统计等。三期完成决策分析(包括:成本分析图、销售情况统计、重点客户、经营情况同期比对统计、工作绩效),为公司经营决策提供数据支持。2a)用例图2.了解系统是所有功能模块利用visio画系统功能结构图,目的让开发人员了解都有哪些业务模块,方便分工合作,根据每个页面模块的难度,复杂,投入的人力情况来衡量每个模块多少钱。验收标准。数据库建模,业界都使用PowerDesinger建模管理员生产厂家信息销售财务船运出口报运购销合同装箱委托发票财务货物附件33.系统架构4.业务:生产厂家a)功能在货物模块和附近模块,它们都有个生产厂家,讲生产厂家信息提出,成为一个单独的表。b)需求调研《需求说明书》生产厂家表FACTORY_C(_C业务后缀)序号名称代码是否主键类型(长度)说明1.编号FACTORY_ID是VARCHAR2(40)UUID2.全称FULL_NAME否VARCHAR2(200)对应客户比较模糊,翻倍2到4倍3.简称FACTORY_NAME否VARCHAR2(50)4.联系人CONTACTS否VARCHAR2(30)人名20/305.电话PHONE否VARCHAR2(20)6.手机MOBILE否VARCHAR2(20)7.传真FAX否VARCHAR220)8.验货员INSPECTOR否VARCHAR2(30)9.排序号ORDER_NO否INT10.备注CNOTE否VARCHAR2(500)如果感觉它可能和关键字冲突,4给它加个C前缀11.创建人CREATE_BY否VARCHAR2(40)权限字段,登陆人ID12.创建部门CREATE_DEPT否VARCHAR2(40)登陆人所在部门的ID13.创建时间CREATE_TIME否TIMESTAMP第二天生产厂家CRUD+购销合同1.业务:启用,停用功能:和杰信合作生产厂家突然有一天它以次品冒充优质品,杰信不跟这个厂家进行合作。在货物中生产厂家选择框,不能选择这个不再合作的厂家。在系统中不能直接删除这个厂家,因为我们的历史数据中含有对这个生产厂家的引用。软件是采用“伪删除”方式来解决。实际是在数据库表中加入列,作为标识,标识厂家是否可以被引用。0停用1启用。新增厂家默认1,可以修改某个厂家为停用。在货物中选择厂家的下拉列表,只显示为启用。52.加“启用”“停用”功能,修改状态。3.货运管理核心流程:购销合同a)需求调研过程软件企业就会到杰信去需求调研,项目经理,他面对客户的高层中层领导,目的跟客户安排好调研日程。设计人员,带领初级程序员到具体的业务部门调研。聊天,围绕项目的目标,设计人员会自己记录谈话内容,(主干),初级程序员(所有内容)。回来整理笔记,整理《需求调研报告》报告中怎么体现纸质报表?初级程序员将纸质报表转化成电子的。b)购销合同业务分析4.需求过程杰信和生产厂家签到的合同,称为购销合同。一个购销合同中包含多个货物信息,一个货物信息包括多个附件信息。报表打印时,同一个生产厂家的货物信息才能放在同一个页上,不同生产厂家的货物信息不能放在同一个页上。分析阶段,抠每个字段5.出货表设计方案一(传统设计)合同表,货物表,附件表多次左连接,SQL极其复杂,由于附件值特殊,SQL不能直接完成,还需要代码去实现。设计方案二(冗余设计)通过冗余,都在货物表中,只需要合同表和货物表左连接即可。66.分析过程将用户的需求(大白话)转化为开发人员看得懂的数据库表,表之间的关系,业务逻辑。给我们的开发人员看,开发人员依据设计来写代码。复杂,大型项目画类图,序列图辅助开发人员开发。在实际开发中,架构师搭建项目框架,框架的基类都有,基础工具类,统一样式表,统一的公用的js,图片。公司提供一个CVS/SVN账号,配置环境,从中检出你负责的项目的代码。代码一般以项目结构。导入工程,在其上面开发新的业务模块。FK_CONTRACT_REFERENCE_CONTRACTFK_EXT_CPRO_REFERENCE_CONTRACT购销合同CONTRACT_ID收购方合同号签单日期制单人审单人验货员总金额重要程度要求客户名称交货期限船期贸易条款说明打印版式归档前状态状态走货状态创建人创建部门创建日期...VARCHAR2(40)VARCHAR2(200)VARCHAR2(50)TIMESTAMPVARCHAR2(30)VARCHAR2(30)VARCHAR2(30)NUMBER(10,2)INTVARCHAR2(2000)VARCHAR2(200)TIMESTAMPTIMESTAMPVARCHAR2(30)VARCHAR2(600)CHAR(1)INTINTINTVARCHAR2(40)VARCHAR2(40)TIMESTAMPpk合同货物CONTRACT_PRODUCT_IDCONTRACT_IDFACTORY_ID厂家名称货号货物照片货物描述数量实际出货数量装率箱数包装单位单价总金额是否出货完毕附件排序号...VARCHAR2(40)VARCHAR2(40)VARCHAR2(40)VARCHAR2(50)VARCHAR2(50)VARCHAR2(200)VARCHAR2(600)INTINTVARCHAR2(10)INTVARCHAR2(10)NUMBER(10,2)NUMBER(10,2)INTVARCHAR2(50)INTpkfk1fk2合同附件EXT_CPRODUCT_IDCONTRACT_PRODUCT_IDFACTORY_ID厂家名称类型货号货物照片货物描述数量包装单位单价总金额要求排序号...VARCHAR2(40)VARCHAR2(40)VARCHAR2(40)VARCHAR2(50)INTVARCHAR2(50)VARCHAR2(200)VARCHAR2(600)INTVARCHAR2(10)NUMBER(10,2)NUMBER(10,2)VARCHAR2(2000)INTpkfk2fk177.业务需求销售人员录入合同时,它为草稿状态,这时只能销售人员自己看到。只有当销售人员检查合同无误,提交,状态变成“已上报”。这时候,其他人员才可以看到。销售的领导和船务专责才能看到。利用这个状态字段来控制对当前用户是否可见。(细粒度的权限控制-数据权限)8.重点知识回顾货运管理核心业务流程:购销合同1.定义购销合同是杰信和生产厂家签订的合同。2.业务复杂度购销合同业务比较复杂,它是货运管理的一个流程,它包括三部分内容,合同的主信息和多个货物信息和多个附件信息。合同主信息和货物是一对多,货物和附件信息是一对多。3.从业务中迁出技术亮点前期我参与了业务调研,重点负责购销合同。给客户交流后,我编写了《需求说明书》,然后参数购销合同的表设计。从需求说明书结合客户给的电子表格,我抽取出数据库表,利用PD进行建模。设计:1.跟客户聊天,要引导性和他们聊天。业务基础术语,了解业务流程2.深入内容,拿到客户手中现有某个模块表单,电子表格,填写的内容,每个内容要注意的事项。来源:手填,从其他模块来获取。抠每个字段,电子表格中每个内容。3.《详细说明书》功能的细化,业务逻辑说清楚,画图辅助开发,UML(类图、序列图、状态图)数据库建模细化。目的:开发人员可以依照详细设计开始开发。详细设计本意能达到开发人员无需和客户沟通,就可以在设计人员的指导下就可以直接开发出客户满意的代码。但实际中做不到。设计不到位。实际中开发往复比较多。第三天购销合同+货物信息+附件信息1.业务需求:上报、取消a)功能:上报实现销售人员确定购销合同录入完毕,检查无误后,上报给领导,领导审核无误后,提8交给船运部。取消实现当船务专责未处理此相关的合同时,可以取消这个合同,重新修改合同内容,然后再次上报。如果船运专责已经开始处理报运的业务,不能取消,必须走货物增补流程。b)设计实现:在表中增加状态字段,新增时默认状态为0草稿,当销售专责确认无误后,点击“上报”状态变为1已上报。当船运专责未处理报运时,销售专责点击“取消”状态变为0,草稿。状态为0时,只能销售专责自己看到,当状态为1时,他的领导和报运专责都可以看到。第四天购销合同查看,SQL语句的Power1.附件业务实现随时携带主表的ID2.购销合同查看合同下货物,货物下面附件,在购销合同中全部浏览,体现货物和附件的关系。构建对象关系93.*细粒度权限控制主菜单,左侧菜单,按钮,URL,方法,业界都称为粗粒度的权限控制。日常的小系统,基于用户,角色,权限架构足够用。在实际大型项目中,光有上面的用户角色,URL这样的控制粒度不够细致,还有数据访问权限。1)对数据的访问列是可以自己定制的。例如:访问一个人员工资信息表,这个表中含有人员的工资。2)对数据的访问行可以受权限控制。例如:工资表中有销售部人员的工资信息,还有船运部人员的工资信息。当销售部领导登录时,他只能看到销售人员的工资信息,他不能看到船运部人员的工资信息。3)直接浏览数据库表,工资列不能直接看到其值。对这个数据库列进行加密。上面统称为数据访问权限,这个权限加上角色用户这样这个系统才比较安全。也称为细粒度的权限控制。a)列访问控制:单独建立表,权限分配某个角色能访问哪些列;b)行访问控制:1)只能看自己创建的记录,不能看到别人创建的记录Wherecreate_by=当前登陆人ID2)部门领导看到,他能看到本部门人员创建的记录,不能看到其他部门人员创建的记录Wherecreate_dept=当前登陆人部门IDanduser_level43)跨部门访问权限,分管领导跨部门,跨人员再加一个配置表,分管领导可以管理的人和部门;10第七天异构数据库支持+出口报运核心业务1.核心业务:货运管理第二个流程,出口报运a)定义:做国际物流,货物要运往国外之前,向海关申报。向海关申报符合国家标准的货物,和货物的体积和重量信息。除了在合同中货物的基本信息外,在报运时新增7个字段,长,宽,高,毛重,净重,出口单价,含税。分次报运一个可以可以分多次来报运,体现在运输的货物数上。11例如:10000货物,第一次报运运输6000,第二次报运运输4000.可以多次报运,这种情况很少。日常大多是一次报运。b)分析设计一个出口报运单来自多个购销合同(一对多);给货物信息新增的7个字段的内容。创建一个出口报运单表c)冗余设计将货物信息冗余到报运单下的货物信息中。一个实现读取数据快速,减小业务的复杂度,业务逻辑简单。d)打断设计实现跳跃查询避免关联层级过多,数据量大了后,访问奇慢。打断设计。(表设计不成为文规定,表之间的关联关系不超过4层)在设计时使用一个虚线箭头来表示表之间是存在关联关系,在设计时,不是往常的外键关系。利用一个字段来存储主表和子表之间的关系。X,YWherecontract_idin(‘x’,’y’)。经过打断设计,表之间的关系不存在,跳跃查询。无需查询合同表,直接查询合同下的货物表。(新增)经过上面的设计,后续业务变的更加简单。122.业务,劳保报表领用周期不同鞋帽子手套毛巾军大衣洗衣粉饭盒…班组110105班组220203FK_Reference_9FK_Reference_20报运单EXPORT_ID制单日期合同编号集合合同或确认书号L/CNO收货人及地址唛头装运港目的港运输方式价格条件备注总毛重总净重体积M3总金额状
本文标题:物流管理系统
链接地址:https://www.777doc.com/doc-760106 .html