Java住房公积金管理系统---长春工业大学期末实训

姓    名

xxx

学    号

2019xxx

班    级

192404

 

代码行数

 

项目名称

住房公积金管理系统——筹集子系统

 

1.实训目的

本次课程设计旨在通过一个完整项目的开发,巩固软件文档编写、软件工程、数据库技术等课程的相关知识,加深学生对网络程序设计的理解,尤其是对JSP技术、Mybatis访问数据库的理解,使学生进一步掌握环境构建、代码编写、文档阅读与理解、文档编写、软件测试、发行与部署等技能,进一步提高学生的学习能力、理解能力、表达能力及沟通能力。

2.实训内容

2.1 在线学习

 

表1  在线学习部分推荐课程

序号

内 容

学习时长

1

https://www.imooc.com/learn/180

 

2

 

 

3

 

 

4

 

 

 

2.2 项目开发

使用Eclipse/IntelliJ IDE为开发工具,Rational Rose或ProcessOn为建模工具,利用MySQL为数据库服务器,以Tomcat为Web服务器,基于JSP和Mybatis框架技术,分析、设计并实现一个住房公积金管理系统——筹集子系统,主要包括相关客户信息(单位开户、个人开户、单位资料修改、个人资料修改)管理、变更业务(封存、启封、比例变更、基数变更)、缴存登记入账(汇缴、补缴)、提取及销户(提取、个人注销、单位注销)、业务查询、凭证打印等业务。

3.需求分析

3.1 功能描述

筹集管理系统主要包括相关客户信息(单位开户、个人开户、单位资料修改、个人资料修改)管理、业务查询等业务。

单位信息,包括数据项有:单位公积金账号、单位名称、单位地址、组织机构代码、单位类别、企业类型、发薪日期、联系电话、单位联系人、经办人身份证号、账户状态、公积金余额、缴存基数、单位比例、个人比例、单位月应缴额、个人月应缴额、单位人数、最后汇缴月、公积金中心机构代码、柜员、建立日期、备注。

个人信息,包括数据项有:个人公积金账号、单位公积金账号、开户日期、公积金余额、账户状态、缴存基数、单位比例、个人比例、最后汇缴月、单位月应缴额、个人月应缴额、本年汇补缴额、年提取额、年度结息、公积金中心机构代码、柜员、备注。

主要完成功能:

单位资料管理:对单位资料的增加、修改、删除。

个人资料管理:对个人资料的增加、修改、删除。

柜员管理:

对系统参数的增加、修改、删除。

 

3.2 用例建模

1、柜员功能

 柜员登录成功后,进行单位开户,如果单位开户成功进行个人开户,否则不能进行个人开户。

 

图3-1柜员用例图

 

2、管理员功能

     管理员只进行系统参数的管理维护。

 

图3-2 管理员用例图

4.功能设计

4.1 总体设计

 

图4-1 功能层次图

 

4.2 算法设计

1.个人用户管理活动图

 个人登录进入系统后可进行个人信息查询和个人信息修改操作。

 

图4-2 个人用户管理活动图

2.单位用户活动图

单位用户登录进入系统后可进行单位信息查询和单位信息修改操作。

 

图4-3 单位用户管理活动图

 

3.柜员活动图

柜员登录系统后可进行开户(个人和单位)操作和信息管理(个人和单位)操作。

 

图4-4 柜员活动图

4.管理员活动图

管理员用户登录系统后可进行系统参数管理维护操作。

 

图4-5 管理员活动图

 

 

5.数据设计

5.1 类图设计

 1.bean包负责底层数据和与数据库的交互

 

图5-1 bean包类图

2.service包负责逻辑控制

 

图5-2  service包类图

 

3.fliter包负责过滤,防止出现乱码和不登录访问

 

图5-3  fliter包类图

 

4.servlet包负责接收传递页面数据和页面跳转

 

图5-4  servlet包类图

 

5.2 数据表设计

 

表5-1 用户信息表

 

 

表5-2 系统信息表

 

表5-3 个人账户信息表

 

 

 

表5-4 单位账户信息表

6.运行结果

1.登录页面

 

图6-1 用户登录界面

 

 

图6-2 管理员登录界面

 

2.登录成功页面

   

 

图6-3 柜员登录成功

 

图6-4 管理员登录成功

 

3.个人账户信息管理页面

 

图6-5 个人账户信息查询

 

图6-6 个人账户信息添加成功

4. 单位账户信息管理

 

图6-7 单位账户信息查询

 

图6-8 单位账户信息修改

 

图6-9 单位账户信息添加

 

5.账户信息导出

 

图6-10 个人账户信息导出

 

图6-11 单位账户信息导出

 

7.关键代码

文件1:Login.jsp

<head>

    <title>住房公积金管理系统</title>

    <link rel="stylesheet" type="text/css" href="Styles/base.css" />

    <link rel="stylesheet" type="text/css" href="Styles/admin-all.css" />

    <link rel="stylesheet" type="text/css" href="Styles/bootstrap.min.css" />

    <script type="text/javascript" src="Scripts/jquery-1.7.2.js"></script>

    <script type="text/javascript" src="Scripts/jquery.spritely-0.6.js"></script>

    <!-- <script type="text/javascript" src="Scripts/chur.min.js"></script> -->

    <link rel="stylesheet" type="text/css" href="Styles/login.css" />

    <script type="text/javascript">

        $(function () {

            $('.login').click(function () {

                if ($('#uid').val() == "" || $('#pwd').val() == "" || $('#code').val() == "") {

                    $('#tip').html('<font color="red">用户名或密码不可为空!</font>')

                    return false;  

                }

            })

        })

    </script>

    <script type="text/javascript">

        function reg(){

            var url="ForegroundPage/Regist.jsp";

            window.open(url,"用户注册","height=500,width=1000");

        }

    </script>

</head>

<body>

    <form action="${pageContext.request.contextPath}/UserServlet?method=login" method="post">

    <div class="row-fluid">

        <h1>住房公积金管理系统</h1>

        <span id="tip"></span>

        <p>

            <label>帐&nbsp;&nbsp;&nbsp;号:<input name="username" type="text" id="uid" /></label>

        </p>

        <p>

            <label>密&nbsp;&nbsp;&nbsp;码:<input name="password" type="password" id="pwd" /></label>

        </p>

        <hr />

        <input type="submit" value=" 登 录 " class="btn btn-primary btn-large login" />

        &nbsp;&nbsp;&nbsp;<input type="button" onclick="reg()" value=" 注 册 " class="btn btn-large" />

        <br/>

    </div>

    </form>

</body>

</html>

文件2:PageModel.java

public class PageModel {

    private int  currentPageNum;//当前页数

    private int  PageSize=5;//每页记录数

    private int  totalRecords;//总记录数

    private int  totalPageNum;//总页数

    private int  startIndex;//每页开始索引

    private int  upPageNum;//上一页

    private int  dnPageNum;//下一页

    private List list;

    private String url;

    public PageModel(int currentPageNum,int PageSize,int totalRecords) {

        this.currentPageNum =currentPageNum;

        this.PageSize= PageSize;

        this.totalRecords =totalRecords;

        startIndex = (currentPageNum-1) * PageSize;

        totalPageNum = totalRecords%PageSize==0?(totalRecords/PageSize):(totalRecords/PageSize)+1;

    }

    public String getUrl() {

        return url;

    }

    public void setUrl(String url) {

        this.url = url;

    }

    public List getList() {

        return list;

    }

    public void setList(List list) {

        this.list = list;

    }

    public int getCurrentPageNum() {

        return currentPageNum;

    }

    public void setCurrentPageNum(int currentPageNum) {

        this.currentPageNum = currentPageNum;

    }

    public int getPageSize() {

        return PageSize;

    }

    public void setPageSize(int pageSize) {

        PageSize = pageSize;

    }

    public int getTotalRecords() {

        return totalRecords;

    }

    public void setTotalRecords(int totalRecords) {

        this.totalRecords = totalRecords;

    }

    public int getTotalPageNum() {

        return totalPageNum;

    }

    public void setTotalPageNum(int totalPageNum) {

        this.totalPageNum = totalPageNum;

    }

    public int getStartIndex() {

        return startIndex;

    }

    public void setStartIndex(int startIndex) {

        this.startIndex = startIndex;

    }

    public int getUpPageNum() {

        upPageNum=currentPageNum-1;

        if(upPageNum<1) {

            upPageNum=1;

        }

        return upPageNum;

    }

    public int getDnPageNum() {

        dnPageNum=currentPageNum+1;

        if(dnPageNum>totalPageNum) {

            dnPageNum=totalPageNum;

        }

        return dnPageNum;

    }  

}

文件3: Parameter.java

public class Parameter {

   private String seqname;

   private int seq;

   private int maxseq;

   private String desc;

   private String freeuse1;

   public Parameter() {

       super();

   }

   public String getSeqname() {

       return seqname;

   }

   public void setSeqname(String seqname) {

       this.seqname = seqname;

   }

   public int getSeq() {

       return seq;

   }

   public void setSeq(int seq) {

       this.seq = seq;

   }

   public int getMaxseq() {

       return maxseq;

   }

   public void setMaxseq(int maxseq) {

       this.maxseq = maxseq;

   }

   public String getDesc() {

       return desc;

   }

   public void setDesc(String desc) {

       this.desc = desc;

   }

   public String getFreeuse1() {

       return freeuse1;

   }

   public void setFreeuse1(String freeuse1) {

       this.freeuse1 = freeuse1;

   }

   @Override

   public String toString() {

       return "Parameter [seqname=" + seqname + ", seq=" + seq + ", maxseq=" + maxseq + ", desc=" + desc

               + ", freeuse1=" + freeuse1 + "]";

   }

  

}

 

文件4: Person.java

public class Person {

   private String accnum;//个人公积金账号

   private String unitaccnum;//单位公积金账号

   private Date opendate;//开户日期

   private double blankce;//公积金余额

   private String peraccsate;//个人账户状态

   private double basenumber;//缴存基数

   private double unitprop;//单位比例

   private double indiprop;//个人比例

   private Date lastpaydate;//最后汇缴月

   private double unitmonpaysum ;//单位月应缴额

   private double permonpaysum;//个人月应缴额

   private double ypayamt;//本年汇补缴额

   private double ydrwamt;//年提取额

   private double yinterestbal;//年度结息

   private String instcode;//公积金中心机构代码

   private String op;//柜员

   private String remark;//备注

   private Unit u ;

   public Person() {

       super();

   }

  

   public Unit getU() {

       return u;

   }

 

   public void setU(Unit u) {

       this.u = u;

   }

 

   public String getAccnum() {

       return accnum;

   }

   public void setAccnum(String accnum) {

       this.accnum = accnum;

   }

   public String getUnitaccnum() {

       return unitaccnum;

   }

   public void setUnitaccnum(String unitaccnum) {

       this.unitaccnum = unitaccnum;

   }

   public Date getOpendate() {

       return opendate;

   }

   public void setOpendate(Date opendate) {

       this.opendate = opendate;

   }

   public double getBlankce() {

       return blankce;

   }

   public void setBlankce(double blankce) {

       this.blankce = blankce;

   }

   public String getPeraccsate() {

       return peraccsate;

   }

   public void setPeraccsate(String peraccsate) {

       this.peraccsate = peraccsate;

   }

   public double getBasenumber() {

       return basenumber;

   }

文件5:Unit.java

public class Unit {

   private String unitaccnum;//单位公积金账号

   private String unitaccname;//单位名称

   private String unitaddr;//单位地址

   private String orgcode;//组织机构代码

   private String unitchar;//单位类别

   private String unitkind;//企业类型

   private String salarydate;//发薪日期

   private String unitphone;//联系电话

   private String unitlinkman;//单位联系人

   private String unitagentpapno;//经办人身份证号码

   private int accstate;//账户状态

   private double balance;//公积金余额

   private double basenumber;//缴存基数

   private double unitprop;//单位比例

   private double perprop;//个人比例

   private double unitpaysum;//单位月应缴额

   private double peraysum;//个人月应缴额

   private int persnum;//单位人数

   private Date lastpaydate;//最后汇缴月

   private String instcode;//公积金中心机构代码

   private String op;//柜员

   private Date creadate;//建立日期

   private String remark;//备注

   private List<Person> persons;

   public Unit() {

       super();

   }

   public String getUnitaccnum() {

       return unitaccnum;

   }

   public void setUnitaccnum(String unitaccnum) {

       this.unitaccnum = unitaccnum;

   }

   public String getUnitaccname() {

       return unitaccname;

   }

   public void setUnitaccname(String unitaccname) {

       this.unitaccname = unitaccname;

   }

   public String getUnitaddr() {

       return unitaddr;

   }

   public void setUnitaddr(String unitaddr) {

       this.unitaddr = unitaddr;

   }

   public String getOrgcode() {

       return orgcode;

   }

   public void setOrgcode(String orgcode) {

       this.orgcode = orgcode;

   }

   public String getUnitchar() {

       return unitchar;

   }

   public void setUnitchar(String unitchar) {

       this.unitchar = unitchar;

   }

   public String getUnitkind() {

       return unitkind;

   }

   public void setUnitkind(String unitkind) {

       this.unitkind = unitkind;

   }

   public String getSalarydate() {

       return salarydate;

   }

   public void setSalarydate(String salarydate) {

       this.salarydate = salarydate;

   }

   public String getUnitphone() {

       return unitphone;

   }

   public void setUnitphone(String unitphone) {

       this.unitphone = unitphone;

   }

   public String getUnitlinkman() {

       return unitlinkman;

   }

   public void setUnitlinkman(String unitlinkman) {

       this.unitlinkman = unitlinkman;

   }

   public String getUnitagentpapno() {

       return unitagentpapno;

   }

   public void setUnitagentpapno(String unitagentpapno) {

       this.unitagentpapno = unitagentpapno;

   }

   public int getAccstate() {

       return accstate;

   }

   public void setAccstate(int accstate) {

       this.accstate = accstate;

   }

   public double getBalance() {

       return balance;

   }

   public void setBalance(double balance) {

       this.balance = balance;

   }

   public double getBasenumber() {

       return basenumber;

   }

   public void setBasenumber(double basenumber) {

       this.basenumber = basenumber;

   }

   public double getUnitprop() {

       return unitprop;

   }

   public void setUnitprop(double unitprop) {

       this.unitprop = unitprop;

   }

   public double getPerprop() {

       return perprop;

   }

   public void setPerprop(double perprop) {

       this.perprop = perprop;

   }

   public double getUnitpaysum() {

       return unitpaysum;

   }

   public void setUnitpaysum(double unitpaysum) {

       this.unitpaysum = unitpaysum;

   }

  

   public double getPeraysum() {

       return peraysum;

   }

   public void setPeraysum(double peraysum) {

       this.peraysum = peraysum;

   }

   public int getPersnum() {

       return persnum;

   }

   public void setPersnum(int persnum) {

       this.persnum = persnum;

   }

   public Date getLastpaydate() {

       return lastpaydate;

   }

   public void setLastpaydate(Date lastpaydate) {

       this.lastpaydate = lastpaydate;

   }

   public String getInstcode() {

       return instcode;

   }

   public void setInstcode(String instcode) {

       this.instcode = instcode;

   }

   public String getOp() {

       return op;

   }

   public void setOp(String op) {

       this.op = op;

   }

   public Date getCreadate() {

       return creadate;

   }

   public void setCreadate(Date creadate) {

       this.creadate = creadate;

   }

   public String getRemark() {

       return remark;

   }

   public void setRemark(String remark) {

       this.remark = remark;

   }

   public List<Person> getPersons() {

       return persons;

   }

   public void setPersons(List<Person> persons) {

       this.persons = persons;

   }  

}

文件6:PersonServiceImp.java

public class PersonServiceImp implements PersonService {

 

   @Override

   public PageModel listPage(int curNum) {

       SqlSessionFactory sqlSessionfactory = SqlSessionFactoryUtils.getSqlSessionfactory();

       SqlSession session = sqlSessionfactory.openSession();

       PersonMapper mapper = session.getMapper(PersonMapper.class);

       int num = mapper.count();

       PageModel pm = new PageModel(curNum, 2, num);

       List<Person> list = mapper.listPage(pm);

       pm.setUrl("PersonServlet?method=listPage");

       pm.setList(list);

       session.close();

       return pm;

   }

 

   @Override

   public PageModel load(String accnum) {

       SqlSessionFactory sqlSessionfactory = SqlSessionFactoryUtils.getSqlSessionfactory();

       SqlSession session = sqlSessionfactory.openSession();

       PersonMapper mapper = session.getMapper(PersonMapper.class);

       int num = mapper.count();

       PageModel pm = new PageModel(0, 2, num);

       List<Person> list = mapper.load(accnum);

       pm.setList(list);

       pm.setUrl("PersonServlet?method=listPage");

       session.close();

       return pm;

   }

 

   @Override

   public void delete(String accnum) {

       SqlSessionFactory sqlSessionfactory = SqlSessionFactoryUtils.getSqlSessionfactory();

       SqlSession session = sqlSessionfactory.openSession();

       PersonMapper mapper = session.getMapper(PersonMapper.class);

       mapper.delete(accnum);

       session.commit();

       session.close();

   }

@Override

   public void add(Person p) {

       SqlSessionFactory sqlSessionfactory = SqlSessionFactoryUtils.getSqlSessionfactory();

       SqlSession session = sqlSessionfactory.openSession();

       PersonMapper mapper = session.getMapper(PersonMapper.class);

       mapper.add(p);

       session.commit();

       session.close();

   }

@Override

   public List<Person> list() {

       SqlSessionFactory sqlSessionfactory = SqlSessionFactoryUtils.getSqlSessionfactory();

       SqlSession session = sqlSessionfactory.openSession();

       PersonMapper mapper = session.getMapper(PersonMapper.class);

       List<Person> list = mapper.list();

       return list;

   }

public void update(Person un) {

       SqlSessionFactory sqlSessionfactory = SqlSessionFactoryUtils.getSqlSessionfactory();

       SqlSession session = sqlSessionfactory.openSession();

       PersonMapper mapper = session.getMapper(PersonMapper.class);

       mapper.update(un);

       session.commit();

       session.close();

   }

}

文件7: UnitServiceImp.java

public class UnitServiceImp implements UnitService{

 

   @Override

   public PageModel listPage(int curNum) {

       SqlSessionFactory sqlSessionfactory = SqlSessionFactoryUtils.getSqlSessionfactory();

       SqlSession session = sqlSessionfactory.openSession();

       UnitMapper mapper = session.getMapper(UnitMapper.class);

       int num = mapper.count();

       PageModel pm = new PageModel(curNum, 2, num);

       List<Unit> list = mapper.listPage(pm);

       pm.setUrl("TellerServlet?method=unitOpenUi");

       pm.setList(list);

       session.close();

       return pm;

   }

 

   @Override

   public PageModel load(String unitaccnum) {

       SqlSessionFactory sqlSessionfactory = SqlSessionFactoryUtils.getSqlSessionfactory();

       SqlSession session = sqlSessionfactory.openSession();

       UnitMapper mapper = session.getMapper(UnitMapper.class);

       int num = mapper.count();

       PageModel pm = new PageModel(1, 2, num);

       List<Unit> list = mapper.load(unitaccnum);

       pm.setUrl("TellerServlet?method=unitOpenUi");

       pm.setList(list);

       session.close();

       return pm;

   }

 

   @Override

   public void delete(String unitaccnum) {

       SqlSessionFactory sqlSessionfactory = SqlSessionFactoryUtils.getSqlSessionfactory();

       SqlSession session = sqlSessionfactory.openSession();

       UnitMapper mapper = session.getMapper(UnitMapper.class);

       mapper.delete(unitaccnum);

       session.commit();

       session.close();

   }

 

   @Override

   public void update(Unit un) {

       SqlSessionFactory sqlSessionfactory = SqlSessionFactoryUtils.getSqlSessionfactory();

       SqlSession session = sqlSessionfactory.openSession();

       UnitMapper mapper = session.getMapper(UnitMapper.class);

       mapper.update(un);

       session.commit();

       session.close();

   }

 

   @Override

   public void add(Unit un) {

       SqlSessionFactory sqlSessionfactory = SqlSessionFactoryUtils.getSqlSessionfactory();

       SqlSession session = sqlSessionfactory.openSession();

       UnitMapper mapper = session.getMapper(UnitMapper.class);

       mapper.add(un);

       session.commit();

       session.close();

   }

 

   @Override

   public List<Unit> list() {

       SqlSessionFactory sqlSessionfactory = SqlSessionFactoryUtils.getSqlSessionfactory();

       SqlSession session = sqlSessionfactory.openSession();

       UnitMapper mapper = session.getMapper(UnitMapper.class);

       List<Unit> list = mapper.list();

       return list;

   }

}

文件8:EncodingFilter .java

public class EncodingFilter implements Filter {

 

   @Override

   public void init(FilterConfig filterConfig) throws ServletException {

   }

 

   @Override

   public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {

       //1.强转

       HttpServletRequest request=(HttpServletRequest) req;

       HttpServletResponse response=(HttpServletResponse) resp;

       //System.out.println("@@@@@@@@@@@@@@@@@@");    

       //2.放行

       chain.doFilter(new MyRequest(request), response);

   }

 

   @Override

   public void destroy() {

       // TODO Auto-generated method stub

 

   }

 

}

 

//之前的MyRequest增强了request.getParameter("name");方法

//增强了所有的获取参数的方法request.getParameterValues("name");

//增强了所有的获取参数的方法request.getParameterMap();

class MyRequest extends HttpServletRequestWrapper{

   private HttpServletRequest request;

   private boolean flag=true;

  

  

   public MyRequest(HttpServletRequest request) {

       super(request);

       this.request=request;

   }

  

   @Override

   public String getParameter(String name) { 

       if(name==null || name.trim().length()==0){

           return null;

       }

       String[] values = getParameterValues(name);

       if(values==null || values.length==0){

           return null;

       }

      

       return values[0];

   }

  

   @Override

   /**

    * hobby=[eat,drink]

    */

   public String[] getParameterValues(String name) {

       if(name==null || name.trim().length()==0){

           return null;

       }

       Map<String, String[]> map = getParameterMap();

       if(map==null || map.size()==0){

           return null;

       }

      

       return map.get(name);

   }

  

   @Override

   /**

    * map{ username=[tom],password=[123],hobby=[eat,drink]}

    */

   public Map<String,String[]> getParameterMap() { 

      

       /**

        * 首先判断请求方式

        * 若为post  request.setchar...(utf-8)

        * 若为get 将map中的值遍历编码就可以了

        */

       String method = request.getMethod();

       if("post".equalsIgnoreCase(method)){

           try {

               request.setCharacterEncoding("utf-8");

               return request.getParameterMap();

           } catch (UnsupportedEncodingException e) {

               // TODO Auto-generated catch block

               e.printStackTrace();

           }

       }else if("get".equalsIgnoreCase(method)){

           Map<String,String[]> map = request.getParameterMap();

           if(flag){

               for (String key:map.keySet()) {

                   String[] arr = map.get(key);

                   //继续遍历数组

                   for(int i=0;i<arr.length;i++){

                       //编码

                       try {

                           arr[i]=new String(arr[i].getBytes("iso-8859-1"),"utf-8");

                       } catch (UnsupportedEncodingException e) {

                           e.printStackTrace();

                       }

                   }

               }

               flag=false;

           }

           //需要遍历map 修改value的每一个数据的编码

          

           return map;

       }

       return super.getParameterMap();

   }  

}

文件9: PersonServlet .java

public class PersonServlet extends BaseServlet {

    private static final long serialVersionUID = 1L;

private static final String UPLOAD_DIRECTORY = "upload";

  private static final int MEMORY_THRESHOLD   = 1024 * 1024 * 3;  // 3MB

    private static final int MAX_FILE_SIZE      = 1024 * 1024 * 40; // 40MB

    private static final int MAX_REQUEST_SIZE   = 1024 * 1024 * 50; // 50MB

    SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");

    public String listPage(HttpServletRequest req, HttpServletResponse resp) throws Exception {

        int num = Integer.parseInt(req.getParameter("num"));

        PersonService service = new PersonServiceImp();

        PageModel page = service.listPage(num);

        req.getSession().setAttribute("page", page);

        return "/jsp/user/person.jsp";

    }

    public String load(HttpServletRequest req, HttpServletResponse resp) throws Exception {

        PersonService service = new PersonServiceImp();

        String accnum = req.getParameter("accnum");

        PageModel page = service.load(accnum);

        req.getSession().setAttribute("page", page);

        return "/jsp/user/person.jsp";

    }

    public String delete(HttpServletRequest req, HttpServletResponse resp) throws Exception {

        String accnum = req.getParameter("accnum");

        PersonService service = new PersonServiceImp();

        service.delete(accnum);

        resp.sendRedirect("/hfms/PersonServlet?method=listPage&num=1");

        return null;

    }  

    public String updateUi(HttpServletRequest req, HttpServletResponse resp) throws Exception {

        String accnum = req.getParameter("accnum");

        PersonService service = new PersonServiceImp();

        PageModel page = service.load(accnum);

        req.getSession().setAttribute("person", page.getList().get(0));

        return "/jsp/user/personUpate.jsp";

    }

    public String update(HttpServletRequest req, HttpServletResponse resp) throws Exception {

        Person p = new Person();

        MyBeanUtils.populate(p, req.getParameterMap());

        PersonService service = new PersonServiceImp();

        service.update(p);

        resp.sendRedirect("/hfms/PersonServlet?method=listPage&num=1");

        return null;

    }

    public String addUi(HttpServletRequest req, HttpServletResponse resp) throws Exception {

        return "/jsp/user/personAdd.jsp";

    }

    public String add(HttpServletRequest req, HttpServletResponse resp) throws Exception {

        Person p = new Person();

        MyBeanUtils.populate(p, req.getParameterMap());

        ParameterService service = new ParameterServiceImp();

        Parameter param = service.load("peraccnum");

        int seq = param.getSeq();

        String uintaccnum=seq+"";

        UnitService us = new UnitServiceImp();

        PageModel pageModel = us.load(p.getUnitaccnum());

        Unit un = (Unit) pageModel.getList().get(0);

        if(un!=null) {

        if(seq<=999999999) {

            String str="";

            for(int i=0;i<12-uintaccnum.length();i++) {

                str+=0;

            }

            int num = seq+1;

            uintaccnum=str+num;

            p.setAccnum(uintaccnum);

            p.setUnitaccnum(un.getUnitaccnum());

            p.setOpendate(new Date());

            p.setBlankce(0);

            p.setPeraccsate("0");

            p.setUnitprop(un.getUnitprop());

            p.setIndiprop(un.getPerprop());

            p.setLastpaydate(new Date());

            p.setUnitmonpaysum(p.getBasenumber()*un.getUnitprop());

            p.setPermonpaysum(p.getBasenumber()*un.getPerprop());

            p.setYdrwamt(0);

            p.setYpayamt(0);

            p.setYinterestbal(0);

            p.setInstcode("0110");

            param.setSeq(num);

            service.update(param);

            PersonService ps = new PersonServiceImp();

            ps.add(p);

        }else {

            resp.sendRedirect("/hfms/jsp/info.jsp?msg=用户数量超过最大值无法即系添加");

        }

        }else {

            resp.sendRedirect("/hfms/jsp/info.jsp?msg=单位账号不存在");

        }

        return "/jsp/user/personAdd.jsp";

    }

    public void import1(HttpServletRequest req, HttpServletResponse resp) throws Exception {

        resp.setContentType("application/x-download");

        PersonService service = new PersonServiceImp();

        List<Person> persons = service.list();

        XSSFWorkbook wb = new XSSFWorkbook();

        XSSFSheet sheet =  wb.createSheet("个人开户信息");

        XSSFRow row = sheet.createRow(0);

        String[] headerNames = {"个人公积金账号","单位公积金账号","开户日期","公积金余额","个人账户状态","缴存基数","单位比例"

                ,"个人比例","最后汇缴月","单位月应缴额","个人月应缴额","本年汇补缴额","年提取额","年度结息","公积金中心机构代码",

                "柜员","备注"};

XSSFCell cell = null;

        for(int i = 0; i < headerNames.length; i++){

                cell =  row.createCell(i);

                cell.setCellValue(headerNames[i]);

                //sheet.setColumnWidth(i, columnWidths[i]);

            }

      int i = 1;

  for(Person u : persons){

            row = sheet.createRow(i);

            //必须按照hderarNames的顺序来

            row.createCell(0).setCellValue(u.getAccnum());//账号

            row.createCell(1).setCellValue(u.getUnitaccnum());//名称

            row.createCell(2).setCellValue(sm.format(u.getOpendate()));//最后汇缴月

            row.createCell(3).setCellValue(u.getBlankce());//组织机构代码

            row.createCell(4).setCellValue(u.getPeraccsate());//单位类别

            row.createCell(5).setCellValue(u.getBasenumber());//企业类型

            row.createCell(6).setCellValue(u.getUnitprop());//发薪日期

            row.createCell(7).setCellValue(u.getIndiprop());//联系电话

            row.createCell(8).setCellValue(sm.format(u.getLastpaydate()));//最后汇缴月

            row.createCell(9).setCellValue(u.getUnitmonpaysum());//经办人身份证号码

            row.createCell(10).setCellValue(u.getPermonpaysum());//账户状态

            row.createCell(11).setCellValue(u.getYpayamt());//公积金余额

            row.createCell(12).setCellValue(u.getYdrwamt());//缴存基数

            row.createCell(13).setCellValue(u.getYinterestbal());//单位比例

            row.createCell(14).setCellValue(u.getInstcode());//个人比例

            row.createCell(15).setCellValue(u.getOp());//单位月应缴额

            row.createCell(16).setCellValue(u.getRemark());//个人月应缴额

            i++;

        }

        try {

              

              //resp.setHeader("Content-Disposition", "attachment;filename="+new String("单位开户信息.xls".getBytes(),"ISO-8859-1"));//中文名称进行转码

           

        }finally{

            try {

                        wb.close();

            } catch (IOException e) {

                e.printStackTrace();

            }

        }  

    }

    public void onLoad(HttpServletRequest request, HttpServletResponse response) throws Exception {

         // 检测是否为多媒体上传

       if (!ServletFileUpload.isMultipartContent(request)) {

           // 如果不是则停止

           PrintWriter writer = response.getWriter();

           writer.println("Error: 表单必须包含 enctype=multipart/form-data");

           writer.flush();

           return;

       }

           DiskFileItemFactory factory = new DiskFileItemFactory();

              factory.setSizeThreshold(MEMORY_THRESHOLD);

              factory.setRepository(new File(System.getProperty("java.io.tmpdir")));

 

       ServletFileUpload upload = new ServletFileUpload(factory);

       

             upload.setFileSizeMax(MAX_FILE_SIZE);

       

              upload.setSizeMax(MAX_REQUEST_SIZE);

      

        upload.setHeaderEncoding("UTF-8");

       String uploadPath = getServletContext().getRealPath("/") + File.separator + UPLOAD_DIRECTORY;

     

       

             File uploadDir = new File(uploadPath);

       if (!uploadDir.exists()) {

           uploadDir.mkdir();

       }

 

       try {

                    @SuppressWarnings("unchecked")

           List<FileItem> formItems = upload.parseRequest(request);

           if (formItems != null && formItems.size() > 0) {

         

               for (FileItem item : formItems) {

                   // 处理不在表单中的字段

                   if (!item.isFormField()) {

                       String fileName = new File(item.getName()).getName();

                       String filePath = uploadPath + File.separator + fileName;

                       File storeFile = new File(filePath);

                                             System.out.println(filePath);

                 

                       item.write(storeFile);

                       request.setAttribute("message",

                           "文件上传成功!");

                   }

               }

           }

       } catch (Exception ex) {

           request.setAttribute("message",

                   "错误信息: " + ex.getMessage());

       }

    getServletContext().getRequestDispatcher("/print.jsp").forward(

      //         request, response);

       Fil file=new File("D:/java/apache-tomcat-7.0.99/webapps/hfms/upload/个人开户信息.xlsx");

       XSSFWorkbook wb = null;

       PersonServiceImp service  =  new PersonServiceImp();

       wb = new XSSFWorkbook(FileUtils.openInputStream(file));

       XSSFSheet sheet = wb.getSheetAt(0);    

       int lastRow = sheet.getLastRowNum();

       Person un = null;

       for(int i= 1;i<= lastRow;i++) {

       un = new Person();

       un.setAccnum(sheet.getRow(i).getCell(0).getStringCellValue());

       PageModel page = service.load(un.getAccnum());

       List<Person> list = page.getList();

       if(list.size()>0) {

           un=list.get(0);

       }

       //row10.getCell(i).setCellType(CellType.STRING);

        //row17.getCell(i).setCellType(CellType.STRING);

       DataFormatter dfm = new DataFormatter();

       un.setUnitaccnum(sheet.getRow(i).getCell(1).getStringCellValue());

       un.setOpendate(sm.parse(sheet.getRow(i).getCell(2).getStringCellValue()));

       un.setBlankce(sheet.getRow(i).getCell(3).getNumericCellValue());

       un.setPeraccsate(dfm.formatCellValue(sheet.getRow(i).getCell(4)));

       un.setBasenumber(sheet.getRow(i).getCell(5).getNumericCellValue());

       un.setUnitprop(sheet.getRow(i).getCell(6).getNumericCellValue());

       un.setIndiprop(sheet.getRow(i).getCell(7).getNumericCellValue());

        un.setLastpaydate(sm.parse(sheet.getRow(i).getCell(8).getStringCellValue()));

       un.setUnitmonpaysum(sheet.getRow(i).getCell(9).getNumericCellValue());

       un.setPermonpaysum(sheet.getRow(i).getCell(10).getNumericCellValue());

       un.setYpayamt(sheet.getRow(i).getCell(11).getNumericCellValue());

       un.setYdrwamt(sheet.getRow(i).getCell(12).getNumericCellValue());

       un.setYinterestbal(sheet.getRow(i).getCell(13).getNumericCellValue());

       un.setInstcode(sheet.getRow(i).getCell(14).getStringCellValue());

       un.setOp(sheet.getRow(i).getCell(15).getStringCellValue());

       un.setRemark(sheet.getRow(i).getCell(16).getStringCellValue());

     //un.setPersnum(Integer.parseInt(dfm.formatCellValue(sheet.getRow(i).getCell(17))));

       service.update(un);

       if(list.size()==0) {

           service.add(un);

       }

       }

       if(null!=wb) {

        wb.close();

       }

   response.sendRedirect("/hfms/PersonServlet?method=listPage&num=1");  

    }

}

8.实训总结

在为期三周的实训转眼就到了收尾阶段,在此期间,我巩固复习了之前学习的有关数据库的创建,信息的修改、添加、删除以及查询,数据库逻辑结构的构建等专业课程知识并实习运用。能够熟练运用编程语言以及软件工程中各类图的创建,例如用例图、类图、活动图等,这次程序设计,具有极强的完整性,不仅锻炼了我的独立思考和动手操作的能力,也锻炼了我发现问题、解决问题的能力,使我能够更加灵活的将书本知识和实际操作联系到一起。另外,通过本次实训,认识到软件开发并不是一个简单的过程,而是一个既繁琐且严谨的过程,是一个需要不断学习进步的过程。而学习是一个不断积累的过程,是通过不断的汲取新的知识,以填补自己的不足,不断拓展自己的视野,增强自身能力的过程。。

实践是检验真理的唯一标准,理论的拥有不能代表我们的实力和能力,一切成功都是理论和实践的结合。

 

 

 

成    绩

 

 

 

教师签字                    日期:2020年7月

 
 
             

 

   

项目链接: https://pan.baidu.com/s/1LNcfkVigkdJdVTK6ipfvJA 提取码: sdm6
--来自百度网盘超级会员v3的分享

            

posted @ 2020-09-11 09:52  mz张洋洋  阅读(786)  评论(0编辑  收藏  举报