企业人事管理系统项目拾金

               嗯,今天终于把花了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



   

posted @ 2016-05-20 09:17  朱培  阅读(224)  评论(0编辑  收藏  举报