预算执行与经费审批网络管理系统详细设计说明书_第1页
预算执行与经费审批网络管理系统详细设计说明书_第2页
预算执行与经费审批网络管理系统详细设计说明书_第3页
预算执行与经费审批网络管理系统详细设计说明书_第4页
预算执行与经费审批网络管理系统详细设计说明书_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

预算执行与经费审批网络管理系统具体设计说明书V1.0人员时间备注编写于洋、姜永英、黎猛审核陈长清TOC\o"1-3"\h\z1引言 41.1编写目的 41.2背景 41.3定义 51.4参考资料 52程序系统的结构 53审核/批管理模块 133.1程序描述 133.2功能 133.3性能 143.3.1时间特性规定 143.3.2可靠性 143.3.3灵活性 143.4输人/出项 143.5流程逻辑 163.6接口 164信息查询模块 184.1程序描述 184.2功能 184.3性能 194.3.1时间特性规定 194.3.2易用性 194.3.3实时性 194.4输人/出项 194.5接口 225偿还管理模块 255.1程序描述 255.2功能 255.3性能 265.3.1时间特性规定 265.3.2实时性 265.4输人/出项 265.5流程逻辑 295.6接口 316基本信息管理模块 336.1程序描述 336.2功能 336.3性能 346.3.1时间特性规定 346.3.2易用性 346.3.3实时性 346.4输人/出项 356.5流程逻辑 366.6接口 361引言1.1编写目的在前一阶段(概要设计说明书)中,已解决了实现该系统需求的程序模块设计问题。涉及如何把该系统划提成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的具体设计报告中将对在本阶段中对系统所做的所有具体设计进行说明。在本阶段中,拟定应当如何具体地实现所规定的系统,从而在编码阶段可以把这个描述直接翻译成用品体的程序语言书写的程序。重要的工作有:根据在《预算执行与货币化操作管理系统需求分析说明书》中所描述的数据、功能、运营、性能需求,并依照《预算执行与货币化操作管理系统概要设计说明书》所拟定的解决流程、总体结构和模块外部设计,设计软件系统的结构设计、逐个模块的程序描述(涉及各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等).在下一阶段的时候,设计人员可以在概要设计的基础上进行具体设计。在以后的系统维护的阶段也可以参考概要设计,以便对系统更好的维护。1.2背景开发软件名称:预算执行与货币化操作管理系统项目任务提出者:项目开发者:华中科技大学用户:实现软件单位:华中科技大学项目与其他软件,系统的关系:(1)服务器CPU:1G以上内存:1G(推荐:1G以上)硬盘:1G以上光驱:DVD监视器-VGA或更高分辨率:分辨率至少为1,024x768像素操作系统:Windows2023数据库:SQLServer2023公司版(2)支持软件操作系统:Windows2023ServerSP1,Windows2023ServerSP2。数据库:MicrosoftSQLServer2023Enterprise,MicrosoftSQLServer2023Express,或是MicrosoftSQLServer2023Developer。系统使用MicrosoftVisualS2023开发,必须运营在所规定的硬件和软件平台上。1.3定义IPO图:在计算机领域IPO是指结构化设计中变换型结构的输入(Input)、加工(Processing)、输出(Output)。IPO图是对每个模块进行具体设计的工具,它是输入加工输出(INPUTPROCESSOUTPUT)图的简称,它是由美国IBM公司发起并完善起来的一种工具。1.4参考资料预算执行与货币化操作管理系统需求说明书V1.0预算执行与货币化操作管理系统概要设计说明书V1.0预算执行与货币化操作管理系统数据库设计说明书V1.02程序系统的结构本项目将采用分层设计和装配件设计思想,结合局域网采用客户/服务器(C/S)结构。整个系统建立在Windows操作系统平台之上,采用基于.NET2.0装配件的分布式应用结构实现整个系统,并将整个系统分为客户端-应用服务器-数据库服务器三层,其中后台数据库系统采用MicrosoftSQLServer2023。基于分布式架构的优势,在后续的功能扩展中可以根据需要方便地将后台数据库系统移植到其它数据库上。客户使用客户端程序即可完毕所有操作。采用了.NETRemoting技术,客户端通过获取服务器端的IP地址和注册的唯一的端标语,访问通道以获得服务端对象,再通过(ServerProxy)代理解析为客户端对象。这就提供一种也许性,即以服务的方式来发布服务器对象。远程对象代码可以运营在服务器上(如服务器激活的对象和客户端激活的对象),客户端就是通过这种方式,使用服务器端为其提供的服务。本系统的重要目的是对以单位为服务对象的财务管理环境中,对预算计划提交、预算上报审核、经费结算报销、借还款以及科目进行全方位的数字化管理。实现普通用户的预算上报请求、财务人员审核预算上报信息、财务人员进行预算上报科目管理、结算报销经费按预置的流程和审批权限进行流转等功能。系统的整体功能结构图如图2-1所示:预算执行与货币化操作管理系统预算执行与货币化操作管理系统审批/核管理借款管理检查用户审核/批权限财务审核预算财务审核请求领导审批请求发出借款请求偿还管理发送直接报销或偿还请求执行借款请求执行直接报销请求执行钞票偿还请求添加报销金额相关信息判断信息的合法性上报管理上报预算相关信息向服务器发送报销提醒信息查询查询所有开支方式查询所有采购方式查询所有年度信息查询所有部门信息查询部门下科室信息查询预算的相关信息查询借款的相关信息查询报销的相关信息查询审核/批相关信息交互管理上报操作完毕提醒财务审核操作完毕提醒审核通过操作完毕提醒数据库管理备份数据库还原数据库清除所有一级预算信息获取备份文献列表基本信息管理增删改科目相关信息增删改部门相关信息增删改部门科室相关信息增删改年度相关信息增删改开支方式相关信息用户权限管理角色信息管理用户信息验证图2.1系统功能结构图由图2-1可知,本系统中我们所涉及到的功能之模块重要有九个部分,即:审核/批管理、借款管理、信息查询、偿还管理、上报管理、交互管理、数据库管理、基本信息管理和用户权限管理。而在实现这些功能模块时,我们所关心的重要业务实体有五个部分:预算信息、用户信息、请求信息、报销信息和借款信息。根据前面的概要设计和数据库设计说明书,我们对这五大业务实体进行概念抽象,得到在实现系统业务需求过程中,五大业务实体相关的类图和他们之间的互换关系类图。由于借款信息相对简朴,这里未对其进行单独的具体说明,其余的类图如下所示:1、预算相关信息类图:重要负责解决用户提交预算上报的相关业务,涉及预算明细,预算支付方式、预算年限、预算类型和预算的审核等级。具体情况如下图2.2所示:图2.2预算相关信息类图2、用户相关信息类图:重要负责解决用户相关信息管理业务,涉及用户基本信息、用户角色和角色权限相关信息管理。具体情况如下图2.3所示:图2.3用户相关信息类图3、请求信息类图:重要负责解决用户提交报销直接发放、偿还报销请求的相关业务。重要涉及请求的基本信息、请求解决的状态、请求所需的审核/批次数和请求所需的用户权限等相关信息。具体情况如下图2.4所示:图2.4请求相关信息类图4、报销信息类图:重要负责报销相关信息相关业务。涉及报销明细、报销类型、报销支付方式、报销提请的用户和报销请求。具体情况如下图2.5所示:图2.5报销相关信息类图5、审核/批日记类图:记录系统审核/批等相关信息的记录,涉及预算、预算状态和用户等相关信息。具体情况如下图2.6所示:图2.6审核/批日记类图6、报销日记类图:记录报销过程的相关日记信息,涉及报销、借款、预算、请求和用户等相关信息。具体情况如下图2.7所示:图2.7报销日记信息类图3审核/批管理模块3.1程序描述审核/批管理模块重要是解决预算上报后,财务部门的审核。部门科室上报直接发放报销和偿还报销请求后,通过财务部门审核后,由领导对相应的上报请求进行审批,最后由财务部门审核执行等一系列过程。3.2功能审核/批管理模块重要涉及检查用户审核/批权限、财务审核预算、财务审核请求、领导审批请求等。具体功能如下图3.1所示:审核/批管理模块审核/批管理模块检查用户审核权限财务审核预算财务审核请求领导审批请求图3.1审核/批管理模块3.3性能3.3.1时间特性规定系统的速度要在用户可接受的范围内,但考虑到需要实时检测服务器的可用性,对资源实时搜索的速度可以有较低的规定。3.3.2可靠性系统要有较高的可靠性,可恢复性。3.3.3灵活性系统要有良好的接口,以适应增长资源平台,增长资源类型,增长相关的资源获取功能的需求;并留有服务器接口,适应对以后实现服务器功能的需要;同时系统还需要具有跨平台功能。3.4输入/出项根据上面的模块功能结构图,表达出该模块各个功能的输入/出项。具体情况如下图:1、检查用户审核/批权限:系统根据操作用户的ID号,和待审核/批请求的ID号,检测该用户是否具有审核/批该请求的权限,并返回查询结果。具体IPO图如下图3.2所示:模块功能名称:检查用户审核/批权限输入:用户输入自己的id号和请求id号。解决:根据用户的ID号和待审核请求的ID号,分别重用户表和请求表中查询两者的权限。输出:用户是否具有审核/批权限数据表:user_info、user_type_info中根据user_id查询用户user_check_authority,在request_info中根据request_id查询request_approve_needcount。图3.2检查用户的审核/批权限IPO图2、财务审核预算:由于在实际业务中,预算信息只需要通过财务部门的审核即可,不要上部门领导的审批。因此,当部门科室的用户上报预算提请时,只需要通过财务部门的操作人员的审核即可对该预算信息进行裁决。具体情况如下图3.3所示:模块功能名称:财务审核预算输入:操作用户的ID号,预算的ID号和预算是否通过审核信息。解决:记录待审核预算在审核前的状态信息,对预算请求进行审核,并记录用户审核后的状态。将操作用户的ID号,预算请求的前后状态和预算自身等信息存储在approve_log表中。输出:提醒信息数据表:在budget_info中查询预算的解决前状态,改变budget_state_info中预算状态,并将解决结果存储在approve_log表中图3.3财务审核预算IPO图3、财务审核请求:解决实际业务中部门科室用户上报的直接发放报销请求和偿还报销请求。具体情况如下图3.4所示:模块功能名称:财务审核请求输入:请求ID号,审核人的ID号,审核是否通过及设定需要几级审批。解决:根据请求的ID号,和是否通过审核信息,修改request_info、request_state_info表状态相关信息。在request_approve_log表格中记录审核人ID号,审核结果和需要几级审批等相关信息。输出:提醒信息数据表:相关数据表request_info、request_state_info、request_approve_log和request_approve_needcount_info表图3.4财务审核请求IPO图4、领导审批请求:当请求通过财务部门审核后,需要根据财务部门操作人员设定的请求所需的审批级别,由相应级别的领导依次审批,最终记录审批结果。具体情况如下图3.5所示:模块功能名称:领导审批请求输入:请求ID号,审核人的ID号,请求是否通过审批解决:根据请求的ID号,和是否通过审核信息,修改request_info、request_state_info表状态相关信息。在request_approve_log表格中记录审核人ID号,审批结果。输出:提醒信息数据表:相关数据表request_info、request_state_info、request_approve_log和request_approve_needcount_info表。图3.6领导审批请求IPO图3.5流程逻辑审核/批管理模块的流程图如下图3.7所示:图3.7审核/批管理模块流程图3.6接口审核/批管理模块重要接口定义在IBudgetApprove.cs中,其中定义的方法简朴介绍如下:///<summary>///判断某用户是否对某请求有审批权限///</summary>///<paramname="request_id">用户ID</param>///<paramname="user_id">请求ID</param>///<returns>有则返回true</returns>publicboolIHaveApprveAuth(stringrequest_id,stringuser_id);///<summary>///财务审核预算///</summary>///<paramname="budget_id">被审核预算ID</param>///<paramname="user_id">审核人ID</param>///<paramname="isapproved">是否通过审核</param>///<returns>操作是否成功</returns>publicboolFBudgetApprove(stringbudget_id,stringuser_id,boolisapproved);///<summary>///领导审批请求///</summary>///<paramname="request_id">请求ID</param>///<paramname="user_id">审批人ID</param>///<paramname="isapproved">是否通过审批</param>///<returns>操作是否成功</returns>publicboolRequestApprove(stringrequest_id,stringuser_id,boolisapproved);///<summary>///财务审核请求///</summary>///<paramname="request_id">请求ID</param>///<paramname="user_id">审核人ID</param>///<paramname="isapproved">是否通过审核</param>///<paramname="request_approve_needcount">设定需要几级审批</param>///<returns>操作是否成功</returns>publicboolFRequestApprove(stringrequest_id,stringuser_id,boolisapproved,stringrequest_approve_needcount);///<summary>///财务审核报销请求///</summary>///<paramname="pay_log_id">报销请求ID</param>///<paramname="user_id">审核人ID</param>///<paramname="isapproved">是否通过审核</param>///<paramname="budget_approve_needcount">设定需要领导审批等级</param>///<returns>操作是否成功</returns>publicboolPayRequestFApprove(stringpay_log_id,stringuser_id,boolisapproved,stringbudget_approve_needcount);///<summary>///财务审核借款请求///</summary>///<paramname="pay_log_id">报销请求ID</param>///<paramname="user_id">审核人ID</param>///<paramname="isapproved">是否通过审核</param>///<paramname="budget_approve_needcount">设定需要领导审批等级</param>///<returns>操作是否成功</returns>publicboolBorrowRequestFApprove(stringborrow_id,stringuser_id,boolisapproved,stringbudget_approve_needcount)4信息查询模块4.1程序描述信息查询模块重要是根据各种用户的权限,为各种权限的用户提供相应范围内的信息查询功能。4.2功能信息查询模块的功能如下图4.1所示:信息查询模块信息查询模块查询所有开支方式查询所有年度信息查询预算的相关信息查询报销的相关信息查询所有采购方式查询部门下科室信息查询所有部门信息查询借款的相关信息查询审核批相关信息图4.1信息查询模块功能结构图查询部门下科室相关信息涉及:查询所有部门信息和查询某部门下所有科室信息;查询预算相关信息涉及:查询所有预算信息、根据年度ID、科目ID、部门科室ID、开支方式ID、采购方式ID、预算状态ID、是否通过所有审批和是否已执行等相关信息对预算信息进行查询;查询借款相关信息涉及:根据是否通过所有审批审核、是否已执行和是否还清查询借款信息,查询某人借款信息,查询某人可查看的所有借款信息,查询部门科室的借款信息和查询某借款中为偿还金额;查询报销的相关信息涉及:查询某预算下的报销信息,查询报销请求的物品信息,查询待执行的报销信息,查询某人的报销信息,查询部门科室下的报销信息,通过请求ID查询报销ID,查询某人可查看的报销信息,查询拥有某审批权限的所有用户信息和查询报销金额总和;查询审核/批相关信息涉及:判断某用户是否对请求有领导审批权限,查询需要某用户财务审核的报销信息,查询需要某用户领导审批的报销信息,查询需要某用户财务审核的预算信息,查询需要某用户财务审核的借款请求信息,查询需要某用户领导审批的借款请求信息,查询所有预算需审批级数,查询所有请求需审批级数,查询某预算的审批日记和查询某条请求的审批日记。4.3性能4.3.1时间特性规定查询模块作为用户经常使用的模块,对时间特性的规定较高。在本系统中,我们通过索引和视图的方法尽量提高数据库查询的效率。4.3.2易用性查询模块通过提供灵活智能的查询功能,使用户可以并且快速的获取其所感爱好的内容。4.3.3实时性由于系统具有三个客户端同时在运营。因此,系统的数据必然经常变化。系统在设计时,通过委托的方法使各个客户端之间可以实时的交互,使得用户在查询数据时,可以得到实时数据。4.4输入/出项根据上面的模块功能结构图,表达出该模块各个功能的输入/出项。具体情况如下图:1、查询所有开支方式:查询所有开始方式相关信息。具体IPO图如下图4.2所示:模块功能名称:查询所有开支方式输入:无。解决:查询系统提供的所有开支方式。输出:所有开支方式列表。数据表:pay_method_info开支方式图4.2查询所有开支方式IPO图2、查询所有采购方式:查询所有采购方式相关信息。具体IPO图如下图4.3所示:模块功能名称:查询所有采购方式输入:无。解决:查询系统提供的所有开支方式。输出:所有采购方式列表。数据表:purchase_method_info采购方式。图4.3查询所有采购方式IPO图3、查询所有年度信息:查询所有年度相关信息。具体IPO图如下图4.4所示:模块功能名称:查询所有年度信息输入:无。解决:查询系统提供的所有年度信息。输出:所有年度信息列表。数据表:budget_range_info年度信息。图4.4查询所有年度信息IPO图4、查询部门信息:查询所有部门信息。具体IPO图如下图4.5所示:模块功能名称:查询所有部门信息输入:无。解决:查询系统提供的所有部门信息。输出:所有部门信息列表。数据表:department_info部门信息。图4.5查询部门信息IPO图5、查询部门下科室信息:根据用户提供的部门ID号,查询部门下的科室信息。具体IPO图如下图4.6所示:模块功能名称:查询部门下科室信息输入:部门ID号。解决:根据用户提供待查询部门的ID号,查询相应部门下所有科室信息。输出:相应部门下所有科室信息列表。数据表:department_info部门信息图4.6查询部门下科室信息IPO图6、查询特定状态下的预算信息:根据用户提供的待查询预算状态,查询满足状态规定的所有预算信息。具体IPO图如下图4.7所示:模块功能名称:查询特定状态预算信息输入:预算状态ID号。解决:根据用户提供待查询预算状态ID号,查询该状态下的所有预算信息。输出:待查询状态所有预算信息列表。数据表:budget_info预算信息budget_item_info预算明细budget_range_info预算年度budget_state_info预算状态pay_method_info开支方式图4.7待查询状态的预算信息IPO图7、查询特定部门特定状态的预算信息:根据用户提供的待查询部门,待查询预算状态信息,查询满足规定的所有预算信息。居停IPO图如下图4.8所示:模块功能名称:查询特定状态、特定部门预算信息输入:预算状态ID号,部门ID号。解决:根据用户提供待查询预算状态ID号和待查询部门ID号,查询该状态下的所有预算信息。输出:待查询状态所有预算信息列表。数据表:budget_info预算信息budget_item_info预算明细budget_range_info预算年度budget_state_info预算状态pay_method_info开支方式department_info部门科室图4.8查询特定部门特定状态预算信息IPO图8、查询借款信息:根据是否通过所有审核/批,是否已执行,是否还清查询借款相关信息。具体IPO图如下图4.9所示:模块功能名称:查询特定借款信息输入:是否通过所有审核/批,是否已执行,是否还清。解决:根据用户提供是否通过所有审核/批,是否已执行,是否还清信息,查询该状态下的所有预算信息。输出:待查询状态所有借款信息列表。数据表:borrow_info借款is_allapproved_info是否通过所有审批is_allpayback_info是否所有偿还清图4.9查询借款信息IPO图9、查询某人借款信息:根据用户提供的用户ID号,查询该用户的借款信息。具体IPO图如下图4.10所示:模块功能名称:查询某人借款信息输入:待查询的用户ID号。解决:根据用户提供的待查询用户ID号,查询该用户的借款信息。输出:待查询状态所有借款信息列表。数据表:borrow_info借款is_allapproved_info是否通过所有审批is_allpayback_info是否所有偿还清user_info用户信息图4.10查询某用户借款信息IPO图10、查询某预算下的报销信息:根据用户提供的预算ID号,查询该预算下的所有报销信息。具体IPO图如下图4.11所示:模块功能名称:查询某预算下的报销信息输入:待查询的预算ID号。解决:根据用户提供的预算ID号,查询该预算下的所有报销信息。输出:待查询报销信息列表。数据表:pay_log报销记录pay_item_info报销明细budget_info预算信息budget_item_info预算具体信息图4.11查询某预算下的报销信息IPO图11、查询某部门科室的报销信息:根据用户提供的部门ID号,查询该部门下的所有报销信息。具体IPO图如下图4.12所示:模块功能名称:查询某部门下的报销信息输入:待查询的部门ID号。解决:根据用户提供的部门ID号,查询该部门下的所有报销信息。输出:待查询报销信息列表。数据表:pay_log报销记录pay_item_info报销明细department_info部门科室图4.12查询某部门科室的报销信息IPO图12、查询需要某用户领导审批的借款请求信息:根据领导ID号,查询需要该领导审批的借款信息。具体IPO图如下图4.13所示:模块功能名称:查询需要某用户领导审批的借款请求信息输入:待查询领导ID号。解决:根据用户提供的领导ID号,查询需要该领导审批的借款信息。输出:待查询借款请求信息列表。数据表:pay_log报销记录pay_item_info报销明细user_info部门科室borrow_info借款信息图4.13查询需要某用户领导审批的借款请求信息IPO图4.5接口查询管理模块重要接口定义在IBudgetApprove.cs中,其中定义的方法简朴介绍如下:///<summary>///查询特定状态预算///</summary>///<paramname="budget_state_id">预算状态ID</param>///<returns>查询到的数据集</returns>publicDataSetIGetBudgetInfoByState(stringbudget_state_id);///<summary>///查询特定部门科室特定状态的预算///</summary>///<paramname="budget_state_id">预算状态ID</param>///<paramname="department_id">部门科室ID</param>///<returns>查询到的数据集</returns>publicDataSetIGetBudgetInfoByStateDepartment(stringbudget_state_id,stringdepartment_id);///<summary>///得到所有科目///</summary>///<returns>查询到的科目数据集</returns>publicDataSetIGetBudgetType();///<summary>///得到特定一级科目下的所有二级科目///</summary>///<paramname="budget_type_parentid">一级科目ID</param>///<returns>查询到的二级科目数据集</returns>publicDataSetIGetBudgetSubType(stringbudget_type_parentid);///<summary>///得到所有开支方式///</summary>///<returns>查询到的开支方式数据集</returns>publicDataSetIGetPayMethod();///<summary>///得到所有采购方式///</summary>///<returns>查询到的采购方式数据集</returns>publicDataSetIGetPurchaseMethod();///<summary>///得到所有年度信息///</summary>///<returns>查询到的年度数据集</returns>publicDataSetIGetBudgetRange();///<summary>///得到所有部门信息///</summary>///<returns>查询到的部门信息数据集</returns>publicDataSetIGetAllDeptPName();///<summary>///得到部门下所有科室信息///</summary>///<paramname="department_pid">部门ID</param>///<returns>查询到的科室数据集</returns>publicDataSetIGetDeptNameByPId(stringdepartment_pid);///<summary>///查询预算信息///</summary>///<paramname="budget_range_id">年度ID</param>///<paramname="budget_type_id">科目ID</param>///<paramname="department_id">部门科室ID</param>///<paramname="pay_method_id">开支方式ID</param>///<paramname="purchase_method_id">采购方式ID</param>///<paramname="budget_state_id">预算状态ID</param>///<paramname="allapproved">是否通过所有审批</param>///<paramname="isfullinfo">是否查询完整信息</param>///<returns>查询到的预算信息数据集</returns>publicDataSetIGetBudgetInfo(stringbudget_range_id,stringbudget_type_id,stringdepartment_id,stringpay_method_id,stringpurchase_method_id,stringbudget_state_id,boolallapproved,boolisfullinfo);///<summary>///查询借款信息///</summary>///<paramname="borrow_id">借款ID</param>///<returns>查询到的借款信息数据集</returns>publicDataSetIGetBorrowFullInfo(stringborrow_id);///<summary>///查询某人可查看的所有借款信息///</summary>///<paramname="budget_id">预算ID</param>///<paramname="user_id">用户ID</param>///<returns>查询到的借款信息数据集</returns>publicDataSetIGetBorrowFullInfoAuth(stringbudget_id,stringuser_id);///<summary>///查询部门科室借款信息///</summary>///<paramname="department_id">部门科室ID</param>///<paramname="is_allpayback">是否还清</param>///<returns>查询到的借款信息数据集</returns>publicDataSetIGetBorrowFullInfoByDept(stringdepartment_id,boolis_allpayback);///<summary>///查询部门科室的借款信息///</summary>///<paramname="department_id">部门科室ID</param>///<paramname="is_allapproved">是否通过所有审批</param>///<paramname="is_executed">是否已执行</param>///<paramname="is_allpayback">是否还清</param>///<returns>查询到的借款信息数据集</returns>publicDataSetIGetBorrowFullInfoByDept(stringdepartment_id,boolis_allapproved,boolis_executed,boolis_allpayback);///<summary>///查询某人的报销信息///</summary>///<paramname="is_cashpay">是否是直接报销,若是FALSE则查询偿还报销</param>///<paramname="is_allapproved">是否通过所有审批</param>///<paramname="is_executed">是否已执行</param>///<paramname="user_id">用户ID</param>///<returns>查询到的报销信息数据集</returns>publicDataSetIGetPayFullInfoByUserId(boolis_cashpay,boolis_allapproved,boolis_executed,stringuser_id);///<summary>///查询报销金额总和///</summary>///<paramname="budget_type_id">科目ID</param>///<paramname="budget_range_id">年度ID</param>///<paramname="department_id">部门科室ID</param>///<returns>报销金额总和</returns>publicDataSetIGetPayPriceSumData(stringbudget_type_id,stringbudget_range_id,stringdepartment_id);5偿还管理模块5.1程序描述在本系统中,偿还管理模块重要解决报销偿还和钞票偿还两种业务流程。5.2功能偿还管理模块的功能如下图5.1所示:偿还管理偿还管理模块发送直接报销或偿还请求执行直接报销请求判断信息的合法性执行借款请求添加报销金额相关信息执行钞票偿还请求图5.1偿还管理模块功能结构图5.3性能5.3.1时间特性规定5.3.2实时性由于系统具有三个客户端同时在运营。因此,系统的数据必然经常变化。系统在设计时,通过委托的方法使各个客户端之间可以实时的交互,使得用户在查询数据时,可以得到实时数据5.4输入/出项根据上面的模块功能结构图,表达出该模块各个功能的输入/出项。具体情况如下图:1、发送报销请求:发送一条报销请求,此条报销只能是直接报销或者是偿还报销,若是直接报销,budget_id指定从哪条预算中borrow_id,borrow_pay_price为空;若是偿还报销borrow_id指定偿还哪条借款,budget_id,cash_pay_price为空。具体IPO图如下图5.2所示:模块功能名称:发送报销请求输入:报销请求ID号,经手人ID号,报销备注,开支方式,报销物品名数组,报销物品单价数组,报销物品备注数组,报销的预算ID号,直接报销金额,偿还报销从属借款ID号和偿还报销金额。解决:系统一方面验证各个输入参数的合法性,若合法则根据请求ID号,经手人ID号,报销备注和报销支付方式等信息,形成新的报销日记信息插入pay_log表中。然后将报销明细信息插入报销明细表pay_item_info中。最后,根据报销请求ID号,预算ID号,钞票报销金额,借款ID号,偿还报销金额等信息,形成报销具体记录日记。输出:报销请求ID号。数据表:pay_log报销信息pay_item_info报销项目明细pay_log_list_info报销具体记录日记pay_method_info开支方式pay_type_info报销类型图5.2发送报销请求IPO图2、执行借款请求:根据用户输入的借款请求ID号,执行借款请求。具体IPO图如下图5.3所示:模块功能名称:根据用户输入的借款请求ID号,执行借款请求。输入:请求ID号。解决:根据用户输入的借款请求ID号,获取借款具体信息。修改借款余额信息,并更改借款请求状态。输出:操作是否成功。数据表:borrow_info借款信息is_executed_info是否执行信息。图5.3执行借款请求IPO图3、执行钞票偿还请求:根据用户输入的偿还请求ID号,执行偿还请求。具体IPO图如下图5.4所示:模块功能名称:根据用户输入的偿还请求ID号,执行偿还请求。输入:请求ID号。解决:根据用户输入的偿还请求ID号,获取借款具体信息。修改借款余额信息,并更改偿还请求状态。输出:所有年度信息列表。数据表:borrow_info借款信息is_executed_info是否执行信息。图5.4执行钞票偿还请求IPO图4、添加报销金额信息:根据用户输入的报销金额相关信息,增长报销金额相关信息记录。具体IPO图如下图5.5所示:模块功能名称:添加报销金额信息输入:报销ID号,直接报销的预算ID号数组,直接报销的金额数组,偿还报销的借款ID数组和报销偿还金额。解决:系统一方面验证用户输入信息的合法性,若合法则判断预算ID号是否为空,若不为空则在报销具体信息日记表pay_log_list_info中添加报销具体日记信息。然后判断借款ID号是否为空,若不为空则在报销具体信息日记表pay_log_list_info中添加报销具体日记信息。输出:操作是否成功。数据表:borrow_info借款信息budget_info预算信息budget_item_info预算明细budget_range_info预算年限pay_log报销记录pay_log_list_info报销具体信息日记。图5.5添加报销金额信息IPO图5、判断借款信息是否合法:根据用户提供的借款请求ID号,查询该借款信息是否合法。具体IPO图如下图5.6所示:模块功能名称:判断借款信息是否合法输入:借款请求ID号。解决:根据用户提供的借款请求ID号,查询该借款信息的具体信息。获取借款的预算ID号、借款金额和预算余额等信息。比较借款金额和预算余额的互相关系。输出:借款信息是否合法。数据表:borrow_info借款信息budget_info预算信息图5.6判断借款信息是否合法IPO图6、判断直接报销请求是否合法:根据用户提供的直接报销请求ID号,查询该报销请求是否合法。具体IPO图如下图5.7所示:模块功能名称:判断直接报销请求是否合法输入:直接报销请求ID号。解决:根据用户提供的直接报销请求ID号,查询该直接报销请求的具体信息。获取借款的预算ID号、直接报销金额和预算余额等信息。比较直接报销金额和预算余额的互相关系。输出:直接报销请求是否合法。数据表:budget_info预算信息budget_item_info预算明细budget_range_info预算年度budget_state_info预算状态pay_method_info开支方式pay_log报销信息图5.7判断直接报销请求是否合法IPO图5.5流程逻辑偿还管理模块的重要涉及发送直接报销或偿还报销请求,执行请求和添加报销金额,它们的流程图如下图5.8,5.9,5.10所示:图5.8发送报销请求流程图图5.9执行请求流程图图5.10添加报销金额流程图5.6接口 偿还管理模块重要接口定在BudgetPayCommon.cs中,其中定义的方法简朴介绍如下: ///<summary>///添加新的报销金额方面信息,被MakePayRequest调用///</summary>///<paramname="pay_log_id">报销ID</param>///<paramname="budget_id">直接报销的预算ID数组</param>///<paramname="cash_pay_price">直接报销金额数组</param>///<paramname="borrow_id">偿还报销的借款ID数组</param>///<paramname="borrow_pay_price">偿还报销金额</param>///<returns>操作是否成功</returns>publicboolAddNewPayLogList(stringpay_log_id,string[]budget_id,string[]cash_pay_price,string[]borrow_id,string[]borrow_pay_price);///<summary>///执行钞票偿还请求///</summary>///<paramname="borrow_id">借款ID</param>///<paramname="cash_price">偿还金额</param>///<returns>操作是否成功</returns>publicboolExecuteCashPayBackBorrow(stringborrow_id,stringcash_price); ///<summary>///执行偿还报销请求///</summary>///<paramname="request_id">请求ID</param>///<returns>操作是否成功</returns>publicboolExecuteBorrowPayRequest(stringrequest_id);///<summary>///执行直接报销请求///</summary>///<paramname="request_id">请求ID</param>///<returns>操作是否成功</returns>publicboolExecuteCashPayRequest(stringrequest_id);///<summary>///执行借款请求///</summary>///<paramname="request_id">请求ID</param>///<returns>操作是否成功</returns>publicboolExecuteBorrowRequest(stringrequest_id);///<summary>///将用户操作划提成多个报销请求,各自生成请求号,调用MakePayRequest发送请求。///</summary>///<paramname="user_id">经手人ID</param>///<paramname="pay_remark">备注</param>///<paramname="pay_method_id">开支方式</param>///<paramname="pay_item_name">报销物品名数组</param>///<paramname="pay_item_count">报销物品数量数组</param>///<paramname="pay_item_price">报销物品单价数组</param>///<paramname="pay_item_remark">报销物品备注数组</param>///<paramname="budget_id">报销的预算ID</param>///<paramname="cash_pay_price">直接报销金额</param>///<paramname="borrow_id">偿还报销从属借款ID</param>///<paramname="borrow_pay_price">偿还报销金额</param>///<returns>请求ID</returns>publicstring[]MakeNewPayRequest(stringuser_id,stringpay_remark,stringpay_method_id,string[]pay_item_name,string[]pay_item_count,string[]pay_item_price,string[]pay_item_remark,string[]budget_id,string[]cash_pay_price,string[]borrow_id,string[]borrow_pay_price);///<summary>///发送一条报销请求,此条报销只能是直接报销或者是偿还报销,若是直接报销,budget_id指定从哪条预算///中报销,borrow_id,borrow_pay_price为空;若是偿还报销borrow_id指定偿还哪条借款,budget_id,///cash_pay_price为空///</summary>///<paramname="request_id">报销请求ID</param>///<paramname="user_id">经手人ID</param>///<paramname="pay_remark">备注</param>///<paramname="pay_method_id">开支方式</param>///<paramname="pay_item_name">报销物品名数组</param>///<paramname="pay_item_count">报销物品数量数组</param>///<paramname="pay_item_price">报销物品单价数组</param>///<paramname="pay_item_remark">报销物品备注数组</param>///<paramname="budget_id">报销的预算ID</param>///<paramname="cash_pay_price">直接报销金额</param>///<paramname="borrow_id">偿还报销从属借款ID</param>///<paramname="borrow_pay_price">偿还报销金额</param>///<returns>请求ID</returns>publicstringMakePayRequest(stringrequest_id,stringuser_id,stringpay_remark,stringpay_method_id,string[]pay_item_name,string[]pay_item_count,string[]pay_item_price,string[]pay_item_remark,string[]budget_id,string[]cash_pay_price,string[]borrow_id,string[]borrow_pay_price);6基本信息管理模块6.1程序描述本系统属于桌面信息管理系统,其最重要的功能就是对系统中相关信息的管理。具体在本系统中,基本信息有:部门科室信息、科目信息、开支方式、支付方式和用户信息等。基本信息管理模块的重要任务就是对系统中这部分信息进行统一管理,使它们保持在逻辑上的一致性,为系统用户提供有序的数据管理功能。6.2功能基本信息管理模块的功能如下图6.1所示:基本信息管理模块基本信息管理模块增删改科目相关信息增删改部门科室相关信息增删改开支方式相关信息增删改部门相关信息增删改用户相关信息增删改年度相关信息图6.1基本信息管理模块功能结构图6.3性能6.3.1时间特性规定查询模块重要是为用户提供感爱好的数据,但待查询的数据总量往往规模很大,对查询效率规定较高。在系统的速度要在用户可接受的范围内,但考虑到需要实时检测服务器的可用性,对资源实时搜索的速度可以有较低的规定。6.3.2易用性查询模块需要提供灵活易用的查询操作,是用户可以并且快速的获取其所感爱好的内容。6.3.3实时性由于系统具有三个客户端同时在运营。因此,系统的数据必然经常变化。在查询模块为用户提供实时的数据6.4输入/出项根据上面的模块功能结构图,表达出该模块各个功能的输入/出项。具体情况如下图:1、增长科目信息:根据用户输入的科目相关信息,添加科目信息。具体IPO图如下图6.2所示:模块功能名称:增长科目信息输入:科目ID,科目名称,二级科目名称,一级可审批人员ID,二级可审批人员ID,三级可审批人员ID。解决:系根据科目ID号,科目名称,若为二级科目则包含其父科目ID,一级可审批人员ID号,二级可审批ID号,三级可审批ID号等信息,添加科目信息。输出:操作是否成功。数据表:budget_type_info科目信息图6.2添加科目信息IPO图2、修改科目信息:根据用户输入的待修改科目的ID号,对相应的科目信息进行更新。具体IPO图如下图6.3所示:模块功能名称:根据用户输入的待修改科目的ID号,对相应的科目信息进行更新。输入:待修改科目ID,修改后的科目ID号,修改后的科目名称,修改后的科目的父科目ID号,科目ID号,一、二、三级审批人ID。解决:根据用户输入的待修改科目的ID号,对相应的科目信息进行更新。输出:操作是否成功。数据表:budget_type_info科目信息图6.3修改科目信息IPO图3、删除科目信息:根据用户输入的待删除科目ID号,删除相应的科目信息。具体IPO图如下图6.4所示:模块功能名称:根据用户输入的偿还请求ID号,执行偿还请求。输入:待删除科目ID号。解决:系统根据待删除的科目ID号,判断是否为一级科目,假如是则一次删除它的子科目,若不是则直接删除该科目。输出:是否执行成功。数据表:budget_type_info科目信息图6.4删除科目信息IPO图6.5流程逻辑基本信息管理模块的重要涉及科目、部门科室、年度和开支方式信息增删改,流程图如下图6.5所示:图6.5科目、部门科室、年度和开支方式信息增删改6.6接口基本信息管理模块重要接口定在InformationManageCommon.cs中,其中定义的方法简朴介绍如下:///<summary>///添加科目///</summary>///<paramname="budget_type_id">科目ID</param>///<paramname="budget_type_name">科目名称</param>///<paramname="budget_type_parentid">若是二级科目,则指定父亲科目ID</param>///<paramname="approve_user_id_1">可审批人员ID</param>///<paramname="approve_user_id_2">可审批人员ID</param>///<paramname="approve_user_id_3">可审批人员ID</param>///<returns>操作是否成功</returns>publicboolAddBudgetType(stringbudget_type_id,stringbudget_type_name,stringbudget_type_parentid,stringapprove_user_id_1,stringapprove_user_id_2,stringapprove_user_id_3);///<summary>///删除科目信息///</summary>///<paramname="Budget_type_id">科目ID</param>///<returns>操作是否成功</returns>publicboolDeleteBudgetType_by_Budget_id(stringBudget_type_id);///<summary>///修改科目信息///</summary>///<paramname="Modify_Budget_type_id">修改后科目ID</param>//

温馨提示

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

评论

0/150

提交评论