首页 资讯 社群 我的社区 搜索

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

zhupei
2018-10-12 15:53:42

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

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

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

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

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

// 综合查询
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 + "");
}
});

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


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

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

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


用户评论