财务报表管理财务报销管理财务报销管理.docx

上传人:b****7 文档编号:8974863 上传时间:2023-02-02 格式:DOCX 页数:61 大小:414.44KB
下载 相关 举报
财务报表管理财务报销管理财务报销管理.docx_第1页
第1页 / 共61页
财务报表管理财务报销管理财务报销管理.docx_第2页
第2页 / 共61页
财务报表管理财务报销管理财务报销管理.docx_第3页
第3页 / 共61页
财务报表管理财务报销管理财务报销管理.docx_第4页
第4页 / 共61页
财务报表管理财务报销管理财务报销管理.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

财务报表管理财务报销管理财务报销管理.docx

《财务报表管理财务报销管理财务报销管理.docx》由会员分享,可在线阅读,更多相关《财务报表管理财务报销管理财务报销管理.docx(61页珍藏版)》请在冰豆网上搜索。

财务报表管理财务报销管理财务报销管理.docx

财务报表管理财务报销管理财务报销管理

Web应用开发工程师

 

案例手册

 

----财务报销管理系统

一、项目需求分析

1、项目背景描述

某学院的财务部门,现在感觉到本院的财务支出管理有点混乱,对于个别业务部门存在任意开支的现象,所以希望通过网上统一登记报销细目的形式,财务主管和院领导可以随时掌握学院的经费支出情况。

学院的财务形式描述如下:

每年学院的国家拨款及各类收入都按照各个业务部门的预算,划成分类的账号,所有的支出都按照其所发生的业务性质所属账号进行报销。

各个账号有相应的负责人和出纳,有的负责人会有多个账号的支配权限,有的出纳可以操作多个账号,只要业务相关即可,这些都是由财务主管来分配。

用户已经提供原始表格,一期任务把该表格实现网上填报即可。

财务主管可以看到全院所有的报销信息,财务助理只能看到自己录入的信息。

所有的记录应可以导出Excel表格。

2、需求概要分析

(1)、用户和角色权限部分:

财务主管维护系统用户,并为用户指定角色,用户的初始化密码和证件号相同,各用户自己登陆后可修改密码。

角色分为三类:

1、出纳:

可以对自己被授权的账号进行报销记录的维护;

2、账号负责人:

可以对自己被授权的账号进行查询,不能做新增、修改、删除等操作;

3、财务主管:

可以查询、维护全院所有账号的报销记录;

(2)、报销记录维护:

填写报销记录时,需要记录摘要、费用类型、经办人、所属账号、记录人、记录时间、处理方式等信息。

参考用户提供的原始表格。

为规范填写,费用记录、处理方式都做标准化处理,财务主管维护代码表后,出纳录入时选择录入。

为避免账号填写错误,出纳录入时,账号信息也是选择方式录入,每个出纳只能列出自己被授权的账号。

(3)、报销记录查询

根据账号、费用类型、金额范围等字段进行查询。

出纳和账号负责人只能查询到自己被授权的账号的报销记录。

财务主管可以看到所有账号的报销记录。

查询结果最下方,需要对金额字段做汇总。

查询结果应该能导出Excel

3、开发技术参数

数据库采用Oracle;

系统架构采用Struts+Spring+Hibernate;

涉及开发环境和工具:

JDK1.5、Eclipse(MyEclipse)、Resin3.0.19(Tomcat5.5以上亦可)、Dreamweaver、Oracle数据库及客户端;

二、系统功能设计

1、用户维护

只有财务主管才有用户维护的功能。

 

 

2、账号维护

新加账号页面

账号:

_____________账号名称:

__________

账号负责人:

_______账号状态:

__________(select)

备注:

_______________________________________________

保存按钮

说明:

账号状态是指:

正常、关闭两种状态

 

 

3、报销处理方式维护

 

新加处理方式页面

处理方式:

__________

保存按钮

说明:

保存的时候,要检测该处理方式是否已经存在,如果已经存在,需要返回本页并给出提示;

 

4、费用类型维护

 

 

5、账号授权

Banner(财务主管)---账号授权

报销维护账号授权账号维护处理方式维护费用类型维护用户维护退出

新加账号授权按钮修改删除

账号_______授权人______查询按钮

选择序号账号授权人

Checkbox11000010001张华

Checkbox21000010002李磊

说明:

1、选中某条记录,可以进行修改,每次只能修改一条记录;

2、删除可以批量进行,可以选中多条记录进行删除;

3、点新加按钮后,跳转到下页的新账号授权界面;

4、点下查询按钮后,本页显示查询结果;

 

 

6、报销维护页

 

新加报销记录页

账号:

________(select)金额:

____________

摘要:

________

费用类型:

______(select)处理方式:

________(select)

报销时间:

____________经办人:

_____________

保存按钮

说明:

1、存盘的时候,自动保存当前用户为录入人;

2、金额框,只能输入数值型;

 

三、数据库设计

1、报销明细表

2、用户表

3、费用类型

4、账号

5、账号授权

四、运行结果实例

用户登录

 

报销记录列表

 

账号授权

 

结果导出Excel

 

删除之前必须进行询问与确认

 

账号维护

 

用户管理

报销处理方式的维护

 

费用类型维护

五、重点代码剖析

Struts-config.xml

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.2//EN""http:

//struts.apache.org/dtds/struts-config_1_2.dtd">

attribute="loginForm"

input="/login.jsp"

name="loginForm"

path="/login"

scope="request"

type="cn.edu.thcic.demo.action.LoginAction">

method=list"/>

attribute="bxmxForm"

input="/bxmxList.jsp"

parameter="method"

name="bxmxForm"

path="/bxmx"

scope="request"

type="cn.edu.thcic.demo.action.BxmxAction">

attribute="zhForm"

name="zhForm"

parameter="method"

path="/zh"

scope="request"

type="cn.edu.thcic.demo.action.ZhAction">

attribute="fylxForm"

input="/fylxAdd.jsp"

name="fylxForm"

parameter="method"

path="/fylx"

scope="request"

type="cn.edu.thcic.demo.action.FylxAction">

attribute="clfsForm"

input="/clfsadd.jsp"

name="clfsForm"

parameter="method"

path="/clfs"

scope="request"

type="cn.edu.thcic.demo.action.ClfsAction">

attribute="zhsqForm"

input="/zhsq.jsp"

parameter="method"

name="zhsqForm"

path="/zhsq"

scope="request"

type="cn.edu.thcic.demo.action.ZhsqAction">

attribute="cwUserForm"

input="/cwUserAdd.jsp"

name="cwUserForm"

parameter="method"

path="/cwUser"

scope="request"

type="cn.edu.thcic.demo.action.CwUserAction">

 

Web.xml

xmlversion="1.0"encoding="UTF-8"?

>

--设置请求编码过滤器-->

EncodeFilter

cn.edu.thcic.demo.util.ReqEncodeFilter

--设置请求编码类型-->

RequestEncode

GBK

--请求编码过滤器与网址映射-->

EncodeFilter

*.do

action

org.apache.struts.action.ActionServlet

config

/WEB-INF/struts-config.xml

debug

3

detail

3

0

action

*.do

index.jsp

//报销明细的Action

packagecn.edu.thcic.demo.action;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importorg.apache.struts.action.ActionForm;

importorg.apache.struts.action.ActionForward;

importorg.apache.struts.action.ActionMapping;

importorg.apache.struts.actions.DispatchAction;

importcn.edu.thcic.demo.bo.BxmxService;

importcn.edu.thcic.demo.bo.ClfsService;

importcn.edu.thcic.demo.bo.FylxService;

importcn.edu.thcic.demo.bo.ZhsqService;

importcn.edu.thcic.demo.form.BxmxForm;

importcn.edu.thcic.demo.vo.Bxmx;

importcn.edu.thcic.demo.vo.CwUser;

 

publicclassBxmxActionextendsDispatchAction{

//报销明细的列表

publicActionForwardlist(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse){

getListData(request);

returnmapping.findForward("success");

}

//获得列表需要显示的数据

privatevoidgetListData(HttpServletRequestrequest){

BxmxServicebxmxService=newBxmxService();

ZhsqServicezhsqService=newZhsqService();

FylxServicefylxService=newFylxService();

ClfsServiceclfsService=newClfsService();

CwUseruser=(CwUser)request.getSession().getAttribute("user");

//找到当前用户有权限看到的所有报销记录

request.setAttribute("bxmxList",bxmxService.getUserBxmx(user));

//找到当前用户被授权的全部账号

request.setAttribute("zhList",zhsqService.getUserZhList(user));

//费用类型列表

request.setAttribute("fylxList",fylxService.getAllFylxList());

//处理方式列表

request.setAttribute("clfsList",clfsService.getAllClfsList());

}

//新加报销明细

publicActionForwardsaveOrUpdate(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse){

BxmxFormbxmxForm=(BxmxForm)form;

//把form里的属性赋值给mx实体

Bxmxmx=newBxmx();

if(bxmxForm.getId()!

=null&&bxmxForm.getId().trim()!

=""&&bxmxForm.getId().length()>0){

mx.setId(Long.parseLong(bxmxForm.getId()));

}

mx.setFylx(bxmxForm.getFylx());

mx.setJe(Double.parseDouble(bxmxForm.getJe()));

mx.setBxsj(bxmxForm.getBxsj());

mx.setClfs(bxmxForm.getClfs());

mx.setBz(bxmxForm.getBz());

mx.setJbr(bxmxForm.getJbr());

mx.setJlr(((CwUser)request.getSession().getAttribute("user")).getUsername());

mx.setZh(bxmxForm.getZh());

mx.setZy(bxmxForm.getZy());

newBxmxService().saveOrUpdateClfs(mx);

//做好返回数据准备

this.getListData(request);

bxmxForm.reset(mapping,request);

returnmapping.findForward("success");

}

//删除报销明细

publicActionForwarddelete(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse){

BxmxServicebxmxService=newBxmxService();

Stringid=request.getParameter("id");

Bxmxmx=bxmxService.getBxmxById(id);

bxmxService.delBxmx(mx);

this.getListData(request);

returnmapping.findForward("success");

}

/**

*编辑某条记录

**/

publicActionForwardtoEdit(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse){

BxmxFormbxmxForm=(BxmxForm)form;

BxmxServicebxmxService=newBxmxService();

Stringid=request.getParameter("id");

Bxmxmx=bxmxService.getBxmxById(id);

bxmxForm.setBxsj(mx.getBxsj());

bxmxForm.setBz(mx.getBz());

bxmxForm.setClfs(mx.getClfs());

bxmxForm.setFylx(mx.getFylx());

bxmxForm.setId(String.valueOf(mx.getId()));

bxmxForm.setJbr(mx.getJbr());

bxmxForm.setJe(String.valueOf(mx.getJe()));

bxmxForm.setJlr(mx.getJlr());

bxmxForm.setZy(mx.getZy());

bxmxForm.setZh(mx.getZh());

this.getListData(request);

returnmapping.findForward("success");

}

}

packagecn.edu.thcic.demo.action;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importorg.apache.struts.action.ActionForm;

importorg.apache.struts.action.ActionForward;

importorg.apache.struts.action.ActionMapping;

importor

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1