package org.yeeku.service;
import org.yeeku.dao.*;
import org.yeeku.model.*;
import org.yeeku.business.*;
import org.yeeku.exception.*;
import java.text.*;
import java.util.*;
/**
* @author yeeku.H.lee kongyeeku@163.com
* @version 1.0
* <br>Copyright (C), 2005-2008, yeeku.H.Lee
* <br>This program is protected by copyright laws.
* <br>Program Name:
* <br>Date:
*/
public class EmpManagerImpl implements EmpManager
{
private ApplicationDao appDao;
private AttendDao attendDao;
private AttendTypeDao typeDao;
private CheckBackDao checkDao;
private EmployeeDao empDao;
private ManagerDao mgrDao;
private PaymentDao payDao;
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
public void setAppDao(ApplicationDao appDao)
{
this.appDao = appDao;
}
public void setAttendDao(AttendDao attendDao)
{
this.attendDao = attendDao;
}
public void setTypeDao(AttendTypeDao typeDao)
{
this.typeDao = typeDao;
}
public void setCheckDao(CheckBackDao checkDao)
{
this.checkDao = checkDao;
}
public void setEmpDao(EmployeeDao empDao)
{
this.empDao = empDao;
}
public void setMgrDao(ManagerDao mgrDao)
{
this.mgrDao = mgrDao;
}
public void setPayDao(PaymentDao payDao)
{
this.payDao = payDao;
}
/**
* 验证登陆
* @param user 登陆用的用户名
* @param pass 登陆用的密码
* @return 登陆后的身份确认:0为登陆失败,1为登陆emp 2为登陆mgr
*/
public int validLogin(String user , String pass)
{
if (mgrDao.findByNameAndPass(user,pass).size() >= 1)
{
return LOGIN_MGR;
}
else if (empDao.findByNameAndPass(user,pass).size() >= 1)
{
return LOGIN_EMP;
}
else
{
return LOGIN_FAIL;
}
}
/**
* 自动打卡,周一到周五,早上7:00为每个员工插入旷工记录
*/
public void autoPunch()
{
System.out.println("自动插入旷工记录");
List<Employee> emps = empDao.findAll();
String dutyDay = new java.sql.Date(System.currentTimeMillis()).toString();
for (Employee e : emps)
{
AttendType atype = typeDao.get(6);
Attend a = new Attend();
a.setDutyDay(dutyDay);
a.setType(atype);
if (Calendar.getInstance().HOUR_OF_DAY < 11)
{
a.setIsCome(true);
}
a.setIsCome(false);
a.setEmployee(e);
attendDao.save(a);
}
}
/**
* 自动打卡,周一到周五,早上7:00为每个员工插入旷工记录
*/
public void autoPay()
{
System.out.println("自动插入工资结算");
List<Employee> emps = empDao.findAll();
//获取上个月时间
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -15);
String payMonth = sdf.format(c.getTime());
for (Employee e : emps)
{
Payment pay = new Payment();
List<Attend> attends = attendDao.findByEmp(e);
double amount = e.getSalary();
for ( Attend a : attends )
{
amount += a.getType().getAmerce();
}
pay.setPayMonth(payMonth);
pay.setEmployee(e);
pay.setAmount(amount);
payDao.save(pay);
}
}
/**
* 验证某个员工是否可打卡
* @param user 员工名
* @param dutyDay 日期
* @return 可打卡的类别
*/
public int validPunch(String user , String dutyDay)
{
//不能查找到对应用户,返回无法打卡
Employee emp = empDao.findByName(user);
if (emp == null)
{
return NO_PUNCH;
}
List<Attend> attends = attendDao.findByEmpAndDutyDay(emp , dutyDay);
//系统没有为用户在当天插入空打卡记录,无法打卡
if (attends == null)
{
return NO_PUNCH;
}
//可以上班、下班打卡
if (attends.size() <= 0)
{
return NO_PUNCH;
}
else if (attends.size() == 1 && attends.get(0).getIsCome()
&& attends.get(0).getPunchTime() == null)
{
return COME_PUNCH;
}
else if (attends.size() == 1 && attends.get(0).getPunchTime() == null)
{
return LEAVE_PUNCH;
}
else if (attends.size() == 2)
{
if (attends.get(0).getPunchTime() == null && attends.get(1).getPunchTime() == null)
{
return BOTH_PUNCH;
}
else if (attends.get(1).getPunchTime() == null)
{
return LEAVE_PUNCH;
}
else
{
return NO_PUNCH;
}
}
return NO_PUNCH;
}
/**
* 打卡
* @param user 员工名
* @param dutyDay 打卡日期
* @param isCome 是否是上班打卡
* @return 打卡结果
*/
public int punch(String user , String dutyDay , boolean isCome)
{
Employee emp = empDao.findByName(user);
if (emp == null)
{
return PUNCH_FAIL;
}
Attend attend = attendDao.findByEmpAndDutyDayAndCome(emp , dutyDay , isCome);
if (attend == null)
{
return PUNCH_FAIL;
}
if (attend.getPunchTime() != null)
{
return PUNCHED;
}
int punchHour = Calendar.getInstance().HOUR_OF_DAY;
attend.setPunchTime(new Date());
//上班打卡
if (isCome)
{
// 9 点之前算正常
if (punchHour < 9)
{
attend.setType(typeDao.get(1));
}
// 9~11 点之间算迟到
else if (punchHour < 11)
{
attend.setType(typeDao.get(4));
}
//11点之后算旷工
}
//下班打卡
else
{
// 6 点之后算正常
if (punchHour > 6)
{
attend.setType(typeDao.get(1));
}
// 4~6 点之间算早退
else if (punchHour < 4)
{
attend.setType(typeDao.get(5));
}
}
attendDao.update(attend);
return PUNCH_SUCC;
}
/**
* 根据员工浏览自己的工资
* @param empName 员工名
* @return 该员工的工资列表
*/
public List<PaymentBean> empSalary(String empName)
{
Employee emp = empDao.findByName(empName);
List<Payment> pays = payDao.findByEmp(emp);
List<PaymentBean> result = new ArrayList<PaymentBean>();
for (Payment p : pays )
{
result.add(new PaymentBean(p.getPayMonth(),p.getAmount()));
}
return result;
}
/**
* 员工查看自己的最近三天非正常打卡
* @param empName 员工名
* @return 该员工的最近三天的非正常打卡
*/
public List<AttendBean> unAttend(String empName)
{
AttendType type = typeDao.get(1);
Employee emp = empDao.findByName(empName);
List<Attend> attends = attendDao.findByEmpUnAttend(emp, type);
List<AttendBean> result = new ArrayList<AttendBean>();
for (Attend att : attends )
{
result.add(new AttendBean(att.getId() , att.getDutyDay() , att.getType().getName() , att.getPunchTime()));
}
return result;
}
/**
* 返回全部的出勤类别
* @return 全部的出勤类别
*/
public List<AttendType> getAllType()
{
return typeDao.findAll();
}
/**
* 添加申请
*
没有合适的资源?快使用搜索试试~ 我知道了~
基于struts2 spring2.5 hibernate3的人事管理系统 源码完整包
共144个文件
java:60个
jar:26个
jsp:22个
4星 · 超过85%的资源 需积分: 10 286 下载量 55 浏览量
2009-12-30
16:35:33
上传
评论 8
收藏 10.47MB RAR 举报
温馨提示
基于struts2 spring2.5 hibernate3的人事管理系统 源码完整包 ..系统采用了贫血模式实现dao
资源推荐
资源详情
资源评论
收起资源包目录
基于struts2 spring2.5 hibernate3的人事管理系统 源码完整包 (144个子文件)
css.css 674B
Thumbs.db 19KB
struts.gif 5KB
spring.gif 4KB
bg1.gif 104B
bg2.gif 104B
spring.jar 1.84MB
hibernate3.jar 1.6MB
commons-collections.jar 546KB
struts.jar 537KB
antlr-2.7.5H3.jar 423KB
mysql-connector-java-3.1.10-bin.jar 409KB
c3p0-0.8.5.2.jar 391KB
antlr.jar 350KB
quartz-1.5.1.jar 345KB
cglib-nodep-2.1_3.jar 317KB
dom4j-1.6.1.jar 307KB
commons-beanutils.jar 184KB
commons-digester.jar 164KB
junit.jar 118KB
spring-hibernate3.jar 107KB
commons-validator.jar 82KB
spring-mock.jar 71KB
commons-discovery-0.2.jar 70KB
jakarta-oro.jar 64KB
pull-parser-2.1.10.jar 51KB
ehcache-1.1.jar 46KB
commons-logging.jar 37KB
commons-fileupload.jar 22KB
saaj.jar 19KB
jta.jar 9KB
aopalliance.jar 4KB
EmpManagerImpl.java 9KB
MgrManagerImpl.java 6KB
AttendDaoHibernate.java 4KB
AuthImg.java 3KB
EmployeeDaoHibernate.java 3KB
ProcessPunchAction.java 3KB
Employee.java 3KB
Attend.java 3KB
PaymentDaoHibernate.java 3KB
EmpManager.java 3KB
ManagerDaoHibernate.java 2KB
ApplicationDaoHibernate.java 2KB
Application.java 2KB
LoginAction.java 2KB
Payment.java 2KB
CheckBack.java 2KB
AttendDao.java 2KB
AttendTypeDaoHibernate.java 2KB
CheckBackDaoHibernate.java 2KB
AddEmpAction.java 2KB
ProcessAppAction.java 2KB
EmployeeDao.java 1KB
AttendDaoTest.java 1KB
ManagerDaoTest.java 1KB
CheckAppAction.java 1KB
AppBean.java 1KB
PaymentDao.java 1KB
MgrManager.java 1KB
EmpManagerTest.java 1KB
ManagerDao.java 1KB
AttendTypeDaoTest.java 1KB
EmployeeDaoTest.java 1KB
EmpAuthorityInterceptor.java 1KB
PunchAction.java 1KB
ApplicationDao.java 1KB
MgrAuthorityInterceptor.java 1KB
AttendBean.java 1KB
Manager.java 1KB
ViewAppAction.java 1KB
CheckBackDaoTest.java 1KB
ApplicationDaoTest.java 1KB
ViewUnAttendAction.java 1KB
ViewDeptAction.java 1KB
PaymentDaoTest.java 1KB
ViewSalaryAction.java 1KB
EmpBean.java 1KB
ViewEmpAction.java 1KB
CheckBackDao.java 1KB
AttendTypeDao.java 1KB
AppChangeAction.java 1008B
AttendType.java 992B
PunchJob.java 910B
PaymentBean.java 909B
PayJob.java 904B
SalaryBean.java 896B
LogoutAction.java 778B
EmpBaseAction.java 709B
MgrBaseAction.java 709B
MyActionServlet.java 490B
HrException.java 429B
logo.jpg 33KB
bodybg.jpg 9KB
bg.jpg 8KB
bottom.jpg 8KB
addEmp.jsp 9KB
login.jsp 8KB
appChange.jsp 2KB
punch.jsp 2KB
共 144 条
- 1
- 2
scottfied
- 粉丝: 20
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页