企业人事管理系统项目拾金
嗯,今天终于把花了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