⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 salaryserviceimpl.java

📁 人力资源管理系统
💻 JAVA
字号:
package org.HumResManSys.service.impl;

import java.util.List;

import org.HumResManSys.dao.JfdDAO;
import org.HumResManSys.dao.Kq_infoDAO;
import org.HumResManSys.dao.Salary_infoDAO;
import org.HumResManSys.factory.DAOFactory;
import org.HumResManSys.service.JxdService;
import org.HumResManSys.service.SalaryService;
import org.HumResManSys.vo.Jfd;
import org.HumResManSys.vo.Kq_info;
import org.HumResManSys.vo.Salary_info;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SalaryServiceImpl implements SalaryService{
    private DAOFactory daoFactory;
    
    /*
     *显示所有员工工资信息 
     * (non-Javadoc)
     * @see org.HumResManSys.service.SalaryService#showAllSalaryInfos()
     */
    
    public List<Salary_info> showAllSalaryInfos(){
    	List list=null;
    	try {
			//获得salary_infoDAO
			Salary_infoDAO salary_infoDAO=daoFactory.getSalary_infoDAO();
			list=salary_infoDAO.queryAllSalary_infos();
			//一定要关闭session	
			salary_infoDAO.closeSession();
			
		} catch (RuntimeException e) {
			// TODO Auto-generated catch block
			System.out.print("SalaryService show AllSalaryInfos\n");
			e.printStackTrace();
			return null;
		}
		return list;
    }
    /*
     * 保存更改的员工工资信息
     * (non-Javadoc)
     * @see org.HumResManSys.service.SalaryService#saveSalaryinfo(org.HumResManSys.vo.Salary_info)
     */
    
    public boolean saveSalaryinfo(Salary_info salary_info){
    	boolean result=false;
    	
    	try {
			//获得salary_infoDAO
			Salary_infoDAO salary_infoDAO=daoFactory.getSalary_infoDAO();
			Salary_info salary_info1=new Salary_info();
			salary_info1.setEmp_name(salary_info.getEmp_name());
			salary_info1.setMonth(salary_info.getMonth());
			List<Salary_info> list=salary_infoDAO.querySalary_infosByEntity(salary_info1);
			Salary_info salary_info2=list.get(0);
			salary_info2.setBasic_sal(salary_info.getBasic_sal());
			salary_info2.setJintie(salary_info.getJintie());
			salary_info2.setBonus(salary_info.getBonus());
			salary_info2.setTax_rate(salary_info.getTax_rate());
			salary_info2.setSum_sal(salary_info.getSum_sal());
            //一定要关闭session	
			salary_infoDAO.closeSession();
			result=salary_infoDAO.updateSalary_info(salary_info2);
		} catch (RuntimeException e) {
			// TODO Auto-generated catch block
			System.out.print("SalaryService save SalaryInfos\n");
			e.printStackTrace();
			return false;
		}
		return result;
    	   
    }
    
    
    /*
     * 增加一条员工工资记录
     * (non-Javadoc)
     * @see org.HumResManSys.service.SalaryService#addSalaryInfo(java.lang.String, java.lang.String, double)
     */
    
    public boolean addSalaryInfo(String name,String month,long jintie){
    	long basicSal=0;
    	long bonus=0;
    	long tax_rate=0;
    	long sum_sal=0;
    	long times=0;
    	long kq_degree=0;
    	long mark=0;
    	long avg_mark=0;
    	try{
  		    //得到Salary_infoDAO	
    		Salary_infoDAO salary_infoDAO=daoFactory.getSalary_infoDAO();
    		Kq_infoDAO kq_infoDAO=daoFactory.getKq_infoDAO(); 		
    		
    		//取得基本工资
    		Salary_info salary_info1=new Salary_info();
    		salary_info1.setEmp_name(name);

    		List<Salary_info> list1=salary_infoDAO.querySalary_infosByEntity(salary_info1);
    		if(list1.size()>0){

    			basicSal=list1.get(0).getBasic_sal();
    			tax_rate=list1.get(0).getTax_rate();

    		}else{
    			System.out.println("bb");
    			return false;
    		}
    		//取得奖金
    		JfdDAO jfdDAO=daoFactory.getJfdDAO();
    		Jfd jfd=new Jfd();
    		jfd.setEmp_name(name);
    		jfd.setMonth(month);
;
    		List<Jfd> list2=jfdDAO.queryJfdsByEntity(jfd);
    		if(list2!=null){
    			for(int i=0;i<list2.size();i++){
    				bonus=bonus+list2.get(i).getJf_money();
    			}
    		}
    		
            // 获得员工考勤信息 
        	Kq_info kq_info=new Kq_info();
        	kq_info.setEmp_name(name);
        	kq_info.setMonth(month);
        	List<Kq_info> list3=kq_infoDAO.queryKq_infosByEntity(kq_info);
        	//System.out.println(list3.size());
        	times=list3.get(0).getTimes();

        	kq_degree=list3.get(0).getKq_degree();
        	
        	//获得员工绩效评估信息
        	ApplicationContext ac=
				new ClassPathXmlApplicationContext("/applicationContext.xml");
        	JxdService jxdService=(JxdService)ac.getBean("JxdService");
        	
        	mark=jxdService.getOneEmployeeTotalMark(name, month);
        	avg_mark=jxdService.getAllEmployeesAverageMark(month);
        	
            //计算员工工资
        	sum_sal=(basicSal+1000*(kq_degree/times + mark/avg_mark) + jintie + bonus)*(1-tax_rate);

    		//增加员工工资记录
    		Salary_info salary_info=new Salary_info();
    		salary_info.setEmp_name(name);
    		salary_info.setMonth(month);
    		salary_info.setJintie(jintie);
    		salary_info.setBasic_sal(basicSal);
    		salary_info.setTax_rate(tax_rate);
    		//salary_info.setTax_rate(0.07);
    		salary_info.setBonus(bonus);
    		salary_info.setSum_sal(sum_sal);
    		salary_infoDAO.createSalary_info(salary_info);
    		
  		   //一定要关闭session	
    		jfdDAO.closeSession();
    		salary_infoDAO.closeSession();
    		kq_infoDAO.closeSession();
  			return true;
  		}catch(Exception e){
  			System.out.print("SalaryService add SalaryInfo error\n");
  			e.printStackTrace();
  			return false;
  		}
    	
    }
    
	
	public DAOFactory getDaoFactory() {
		return daoFactory;
	}

	public void setDaoFactory(DAOFactory daoFactory) {
		this.daoFactory = daoFactory;
	}

	
	//显示一个员工的所有薪酬记录
	public List<Salary_info> showSelfSalaryInfos(String name) {
		// TODO Auto-generated method stub
    	List selfSal=null;
    	try {
			//获得salary_infoDAO
			Salary_infoDAO salary_infoDAO=daoFactory.getSalary_infoDAO();
			selfSal=salary_infoDAO.queryAllSalary_infosByCondition("emp_name", name);
			//一定要关闭session	
			salary_infoDAO.closeSession();
			
		} catch (RuntimeException e) {
			// TODO Auto-generated catch block
			System.out.print("SalaryService show one employee's all Salary Infos\n");
			e.printStackTrace();
			return null;
		}
		return selfSal;
	}
	
	
	public List<Salary_info> calculateSalaryInfos(){
    	long basic_Sal=0;
    	long bonus=0;
    	long tax_rate=0;
    	long sum_sal=0;
    	long jintie=0;
    	List<Salary_info> list1=null;
    	
		try {
			//得到Salary_infoDAO	
			Salary_infoDAO salary_infoDAO=daoFactory.getSalary_infoDAO();
			List<Salary_info> list=salary_infoDAO.queryAllSalary_infos();
			
			if(list!=null){
				for(int i=0;i<list.size();i++){
					salary_infoDAO.deleteSalary_info(list.get(i));
					String name=list.get(i).getEmp_name();
					basic_Sal=list.get(i).getBasic_sal();
					bonus=list.get(i).getBonus()+700;
					tax_rate=list.get(i).getTax_rate();
					jintie=jintie+300;
					sum_sal=(basic_Sal+bonus+jintie)*(1-tax_rate);
					Salary_info salary_info=new Salary_info();
					salary_info.setBasic_sal(basic_Sal);
					salary_info.setJintie(jintie);
					salary_info.setBonus(bonus);
					salary_info.setEmp_name(name);
					salary_info.setJintie(jintie);
					salary_info.setSum_sal(sum_sal);
					salary_info.setMonth("08-01");
					
					salary_infoDAO.createSalary_info(salary_info);		
					
				}
				list1=salary_infoDAO.queryAllSalary_infos();
			}
			salary_infoDAO.closeSession();
			return list1;
		} catch (RuntimeException e) {
			// TODO Auto-generated catch block
			System.out.print("SalaryService calculate all Salary Infos\n");
			e.printStackTrace();
			return null;
		}
	
    }
	

}

	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -