zoukankan      html  css  js  c++  java
  • 企业人事管理系统项目拾金

                   嗯,今天终于把花了3个星期的人事管理系统做完了,然后也答辩完成,导师对我这份作品应该还是比较满意的,我觉得他可能还是对我有点惊讶,因为我增加了很多他期待之外的功能(虽然也并没有什么鬼用安静)。非常感谢我的队友们对我的支持和信任,这也是我第一个完整开发的一个java项目,感触还是比较深的。这一路走过来真的有心酸有欢笑,是真的体会到做项目的那种感受。

              我一开始接这个项目的时候我第一感觉是我很狂妄,然后导师一声冷笑,因为在我眼里,我觉得这不就是一个人事管理系统嘛,小case啦!直到后来我发现,天啦噜,好难啊!啊,有些功能真的是看起来简单做起来还是挺复杂的,首先自己的逻辑思维要清晰,一开始的那周真的是不知道怎么下手,我做为项目组长,担负着整个组的重任,压力顿时就大了,这种感觉是和我以前一个人自学的时候是完全不一样。

      项目到手,我安排分工的时候其实是犯了很多误区的,例如一个人去做数据库,一个人去写界面,还有就是我来写整个架构,因为我也没有做过类似的东西啊,架构这种东西是什么鬼哦,我们一路下来真的是摸着石头过河了,一方面数据库没写完,界面自然也就不好写,然后做数据库部分的话也不知道要写什么东西,所以整个过程基本上是凌乱的,我承认这个地方真的没有安排妥当,以至于3天过去了,数据库迟迟写不出来,界面也画不出来。这个时候我脑海里突然飘出了“通宵达旦”这个词,我只想说,我只加班到凌晨2点,坚决不通宵哦,因为我们项目还没有那么急,所以要保证一个好的休息才能更好的发挥作用。

    后来呢,我把项目架构写完了,这个是初级版本的,依然存在很多问题,同时我是直接用svn做代码管理的,在中期项目交付的之前的3天,我每天下午和项目组的一个女生去机房加班做项目,好像有点小累,真的,当实现一个功能的时候真的是很开心的,直到中期评审,我的这整个项目几乎全是增删改查的功能,还有就是项目整合的时候还有一些问题,例如组员擅自改我的整个框架,好恼火你知道吗,最主要的原因是还有3个小时就要评审了,我好激动的。当然最后我们发现增加的这个用处还挺大,后期我对这个类做了很多的处理。

          我觉得我最主要的代码就是以下这段了,纠结了很久才写出来了,可能你会看起来比较简单,真的对于我这种小白来说,里面增加了6个循环还是挺难的,我们整个项目基本上都是在和sql打交道,动不动就是5,6个表连接查询,我觉得通过这个项目我的这个连接查询用的还是不错了,还有一些数据分析的部分。导师推荐我们组是可以做数据分析方向。

    <span style="font-size:14px;">// 综合查询
    		btnNewButton.addSelectionListener(new SelectionAdapter() {
    			@Override
    			public void widgetSelected(SelectionEvent e) {
    				String year = combo.getText().toString().trim();
    				String season = combo_2.getText().toString().trim();
    				String month = combo_3.getText().toString().trim();
    				String dname = combo_1.getText().toString().trim();
    
    				List<Object> params = new ArrayList<Object>();
    
    				String sql = "select e.eid,e.name as ename,e.sex,d.name as dname,j.name as jname,w.wmoney,"
    						+ "extract(year from gaintime) year,  "
    						+ "extract(month from gaintime) month  "
    						+ "from emp e join  dept d on e.did=d.did  join  job j  on j.jid=e.jid    join welfare w  on w.eid=e.eid "
    						+ "left join rm   on  rm.eid=e.eid  "
    						+ "group by  e.eid,e.name ,e.sex,d.name ,j.name ,w.wmoney, "
    						+ " extract(year from gaintime) ,extract(month from gaintime)   having  1=1 ";
    
    				if (year.equals("全部")) {
    					sql += "  ";
    				} else if (year != null && !"".equals(year)) {
    					sql += "   and extract(year from gaintime)=? ";
    					params.add(year);
    				}
    
    				if (month.equals("全部")) {
    					sql += "  ";
    				} else if (month != null && !"".equals(month)) {
    					sql += "   and extract(month from gaintime)=? ";
    					params.add(month);
    				}
    
    				if (season.equals("全部")) {
    					sql += "  ";
    				} else if (season.equals("第一")) {
    					sql += " and extract(month from gaintime) between 1 and 3 ";
    
    				} else if (season.equals("第二")) {
    					sql += " and extract(month from gaintime) between 4 and 6 ";
    
    				} else if (season.equals("第三")) {
    					sql += " and extract(month from gaintime) between 7 and 9 ";
    
    				} else if (season.equals("第四")) {
    					sql += " and extract(month from gaintime) between 10 and 12 ";
    
    				}
    
    				if (dname.equals("全部")) {
    					sql += " ";
    				} else if (dname != null && !"".equals(dname)) {
    					sql += "  and d.name=? ";
    					params.add(dname);
    				}
    
    				DBHelper db = new DBHelper();
    				table.removeAll();
    				List<Map<String, Object>> list = db.find(sql.toString(), params);
    
    				int summoney = 0; // 查询时工资条总工资数 
    				int tol = 0;   //个人总工资
    				TableItem ti = null;
    				String[] str = null;
    				if (list != null && list.size() > 0) {
    					for (Map<String, Object> data : list) {
    						ti = new TableItem(table, SWT.None);
    						String eid2 = (String) data.get("EID");
    						String ename2 = (String) data.get("ENAME");
    						String sex2 = (String) data.get("SEX");
    						String dname2 = (String) data.get("DNAME");
    						String wmoney2 = (String) data.get("WMONEY");
    						int  month2 = Integer.parseInt((String) data.get("MONTH"));
    
    						String gaintime = (String) data.get("YEAR") + "年"
    								+ data.get("MONTH") + "月";
    
    						int rmoney = 0, rmoney1 = 0; //奖励,惩罚
    						int smoney2 = 0;  //基本工资
    						int  month3=0;     //循环的月份
    						String jname2=null;
    						String sql4=" select extract(month from ajtime )  as month3  from adjust where eid='"+eid2+"'";
    						List<Map<String, Object>> list5 = db.find(sql4, null);
    						for (Map<String, Object> map : list5) {
    							month3=Integer.parseInt((String) map
    									.get("MONTH3"));
    						}
    						if(month2>=month3){
    							String sql5="select smoney,j.name  from emp  e , salary s ,adjust a ,job j where  e.jid=s.jid and a.eid=e.eid and e.jid=j.jid  and e.eid='"+eid2+"'";
    							List<Map<String, Object>> list6 = db.find(sql5, null);
    							
    							for (Map<String, Object> map : list6) {
    								smoney2 = Integer.parseInt((String) map
    										.get("SMONEY"));
    								jname2=(String) map.get("NAME");
    							}
    							
    						}else{
    							
    							String sql6=" select smoney,j.name from job j ,salary s where j.jid=s.jid  and j.name='实习生' ";
    							List<Map<String, Object>> list7 = db.find(sql6, null);
    							for (Map<String, Object> map : list7) {
    								smoney2 = Integer.parseInt((String) map
    										.get("SMONEY"));
    								jname2=(String) map.get("NAME");
    							}
    						}
    						
    
    						String sql3 = " select type,rmoney from rm  where eid='"
    								+ eid2
    								+ "'"
    								+ "  and extract(month from gaintime)='"
    								+ month2 + "'";
    						String type = null;
    
    						List<Map<String, Object>> list3 = db.find(sql3, null);
    						for (Map<String, Object> map : list3) {
    							type = (String) map.get("TYPE");
    
    							if (type.equals("奖励")) {
    								rmoney += Integer.parseInt((String) map
    										.get("RMONEY"));
    							} else {
    								rmoney1 -= Integer.parseInt((String) map
    										.get("RMONEY"));
    							}
    						}
    
    						tol = rmoney + rmoney1 + smoney2
    								+ Integer.parseInt((String) data.get("WMONEY"));
    						str = new String[] { eid2, ename2, sex2, dname2,
    								jname2, String.valueOf(smoney2), wmoney2,
    								String.valueOf(rmoney),
    								String.valueOf(rmoney1), gaintime,
    								String.valueOf(tol) };
    						ti.setText(str);
    
    						summoney += tol;
    					}
    
    				}
    				text.setText(summoney + "");
    			}
    		});</span>

             其他的话呢,我就是加了一个邮件的功能,生成动态二维码标签,excel数据导入导出,聊天(群聊+机器人),柱状图功能。



         整个项目下来,有纠结有惆怅, 甚至还有就是有的功能模块做不出来我想取消了,当然最后我没有放弃,还是做出来了,真的很感谢自己呢!组员有时候会丢一大堆奇奇怪怪的代码,然后还要拿过来修改,系统出问题了还要去查bug,各种debug,不过整个项目组学习氛围浓郁,每次都会到一起去研究,去解决,虽然最后还是大部分我解决的,但是感谢一路有你们,如果没有你们我估计我是没有信心做完这个项目的,整个过程累并快乐着,感谢你们在我想要放弃的时候跟我说“做了这么久的东西突然取消,我不服额",然后我就又想尽各种办法给做出来了,我都服了我自己了。我最大的感觉就是"世界上没有什么东西是做不出来的",一开始觉得很难的东西做出来却发现其实特别简单。我希望以后我可以改进管理方法,综合分析,全面把握,协调分工,深入学习!共同进步!

       感谢一路有你们,未来希望一起成长!祝各路大神也工作顺利!


    源码地址:点击打开链接http://download.csdn.net/detail/sdksdk0/9525714



       

  • 相关阅读:
    从Dojo1.6到Dojo1.8(二)—— 基本模块,事件,约定,DOM操作
    从Dojo1.6到Dojo1.8(三)—— Parser,Dijit,DojoX
    在Node.js上使用dojo库进行面向对象web应用开发
    JavaScript事件代理和委托(Delegation)
    介绍一款神级API接口神器,高效工作,告别加班!
    sqlserver备份存储过程
    WSGI原理与简单实现
    从Python看Web架构的发展
    Celery:小试牛刀
    Flask:用户角色与权限管理
  • 原文地址:https://www.cnblogs.com/sdksdk0/p/5585054.html
Copyright © 2011-2022 走看看