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

📄 standarddaoimple.java

📁 企业人力资源管理
💻 JAVA
字号:
package com.y2.hr.salary.standard.dao.impl;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Transaction;
import org.hibernate.classic.Session;
import org.hibernate.criterion.DetachedCriteria;

import com.y2.hr.base.commom.Page;
import com.y2.hr.base.dao.impl.BaseDaoImpl;
import com.y2.hr.salary.standard.bean.SalaryStandard;
import com.y2.hr.salary.standard.bean.SalaryStandardDetails;
import com.y2.hr.salary.standard.dao.StandardDao;
import com.y2.hr.salary.standard.web.form.SearchForm;

public class StandardDaoImple extends BaseDaoImpl implements StandardDao {

	/**
	 * 查询只一条记录 *
	 * 
	 * @param hql
	 * @return Object
	 */
	public Object getUniqueResult(String hql) {
		Session se = this.sessionFactory.openSession();
		Query query = se.createQuery(hql);
		Object o = query.uniqueResult();
		se.close();
		return o;
	}

	/**
	 * 根据主键获取薪酬标准的对象信息
	 * 
	 * @param key
	 *            主键
	 * @return
	 */
	public SalaryStandard getStandardByKey(short key) {
		SalaryStandard standard = null;
		Session se = this.sessionFactory.openSession();
		standard = (SalaryStandard) se.get(SalaryStandard.class, key);
		se.close();
		return standard;
	}

	/**
	 * 分页查询
	 * 
	 * @param hql
	 * @param page
	 *            页数
	 * @return
	 */
	public List<?> getStandardByPage(String hql, int page, int pageSize) {
		Session se = this.sessionFactory.openSession();
		Query query = se.createQuery(hql);
		query.setFirstResult((page - 1) * pageSize);
		query.setMaxResults(pageSize);
		List<?> list = query.list();
		se.close();
		return list;
	}

	/**
	 * 查询需要审核的薪酬标准 的列表
	 * 
	 * @param page
	 * @return
	 */
	public int getRowCounts(int status) {
		StringBuilder hql = new StringBuilder(
				"select count(s.ssdId) from SalaryStandard as s ");
		if (status == 0) {
			hql.append(" where s.checkStatus=0");
		} else if (status == 1) {
			hql.append(" where s.checkStatus=1");
		}
		Session se = this.sessionFactory.openSession();
		Transaction t = se.beginTransaction();
		int rowCounts = 0;
		try {
			Query query = se.createQuery(hql.toString());
			rowCounts = Integer.parseInt(query.uniqueResult().toString());
			t.commit();
		} catch (Exception e) {
			t.rollback();
			e.printStackTrace();
		} finally {
			se.flush();
			se.close();
		}
		return rowCounts;
	}

	/**
	 * 添加登记
	 * 
	 * @param stand
	 * @return
	 */
	public boolean addReStandard(SalaryStandard stand) {
		boolean boo = true;
		Session se = this.sessionFactory.openSession();
		Transaction t = se.beginTransaction();
		try {
			String standardId = createSalaryStandId();
			stand.setStandardId(standardId);
			se.save(stand);
			Iterator<SalaryStandardDetails> i = stand.getItems().iterator();
			while (i.hasNext()) {
				SalaryStandardDetails item = i.next();
				item.setStandardId(standardId);
				se.save(item);
			}
			t.commit();
		} catch (Exception e) {
			boo = false;
			t.rollback();
			e.printStackTrace();
		} finally {
			se.close();
		}
		return boo;
	}

	public List<?> getStandList(Page page) {
		List<Object> standList = null;
		String hql = "select s.standardId,s.standardName,s.designer,s.register"
				+ ",s.registTime from SalaryStandard as s where s.checkStatus=0";
		Session se = this.sessionFactory.openSession();
		Transaction t = se.beginTransaction();
		try {
			Query query = se.createQuery(hql);
			int firstIndex = page.getPageSize() * (page.getCurrentPage() - 1);
			query.setFirstResult(firstIndex);
			query.setMaxResults(page.getPageSize());
			standList = query.list();
			t.commit();
		} catch (Exception e) {
			t.rollback();
			e.printStackTrace();
		} finally {
			se.flush();
			se.close();
		}
		return standList;
	}

	/**
	 * 获取登记的基本信息和详细信息
	 * 
	 * @param stand
	 * @return
	 */
	public SalaryStandard seStandById(String standardId) {
		String hql = "from SalaryStandard as s where s.standardId ='"
				+ standardId + "'";
		Object o = this.getUniqueResult(hql);
		SalaryStandard sd = (o == null ? null : (SalaryStandard) o);

		if (sd != null) {
			String h = "from SalaryStandardDetails sd where sd.standardId ='"
					+ standardId + "'";
			List<?> items = this.get(h);
			sd.setItems(items);
		}
		return sd;
	}

	/**
	 * 经理审核 修改后保存
	 * 
	 * @param stand
	 * @return
	 */
	public boolean updateStand(SalaryStandard stand) {
		boolean boo = true;
		Session se = this.sessionFactory.openSession();
		Transaction t = se.beginTransaction();
		try {
			se.update(stand);
			Iterator<SalaryStandardDetails> i = stand.getItems().iterator();
			while (i.hasNext()) {
				se.update(i.next());
			}
			t.commit();
		} catch (Exception e) {
			boo = false;
			t.rollback();
			e.printStackTrace();
		} finally {
			se.close();
		}
		return boo;
	}

	/**
	 * 搜索
	 * 
	 * @param search
	 * @return
	 */
	public List<?> getAboutBeans(SearchForm search, Page page) {

		return null;
	}

	/**
	 * 获得所有的薪酬标准项
	 * 
	 * @return
	 */
	public List<?> getSalaryStand() {
		String hql = "select s.standardId ,s.standardName,s.salarySum from "
				+ "SalaryStandard as s where s.checkStatus=1";
		return this.get(hql);
	}

	/**
	 * 获取最后一条编号
	 * 
	 * @return
	 */
	public String getLastSandId() {
		String hql = "select s.standardId from SalaryStandard as s "
				+ "order by s.standardId desc limit 0,1";
		List list = this.get(hql);
		return (list.size() == 0 ? null : list.get(0).toString());
	}

	public double getSalarySum(String standardId) {
		String hql = "select s.salarySum from SalaryStandard as s "
				+ "where s.standardId='" + standardId + "'";
		Object o = this.getUniqueResult(hql);
		return (o == null ? 0 : Double.parseDouble(o.toString()));
	}

	public List<?> getPage(int curPage) {
		String hql = "select s.standardId,s.standardName,s.designer,s.register"
				+ ",s.registTime from SalaryStandard as s where s.checkStatus=0";
		return this.getPage(hql, curPage);
	}

	public List<?> getPageBySearch(int curPage, SearchForm search) {
		StringBuilder hql1 = new StringBuilder(
				"select s.standardId,s.standardName,s.registTime,s.checkTime,s.ssdId"
						+ " from SalaryStandard as s where ");
		StringBuilder hql2 = new StringBuilder("select count(s.standardId)"
				+ " from SalaryStandard as s where ");
		StringBuilder m = new StringBuilder("");
		List<Object> list = null;
		if (search != null) {
			m = getSearchHql(search);
			hql1.append(m);
			hql2.append(m);
			Session se = this.sessionFactory.openSession();
			Query q = se.createQuery(hql2.toString());
			Query query = se.createQuery(hql1.toString());
			query.setFirstResult((curPage - 1) * 10);
			query.setMaxResults(10);
			list = query.list();
			se.close();
		}
		return list;
	}

	public SalaryStandard seStandById(short ssdId) {
		return null;
	}

	// 根据 页数 及 搜索 条件 查询薪酬信息
	public List<?> search(int curPage, SearchForm search) {
		return getPageBySearch(curPage, search);
	}

	// 根据页数获取 薪酬登记信息
	public List<?> getStandarList(int curPage) {
		String hql = "select s.standardId,s.standardName,s.designer,s.register"
				+ ",s.registTime from SalaryStandard as s where s.checkStatus=0";
		return this.getStandardByPage(hql, curPage, 10);
	}

	// 根据薪酬编号 获取薪酬的信息
	public SalaryStandard getStandarById(String standardId) {
		String hql = "from SalaryStandard as s where s.standardId ='"
				+ standardId + "'";
		Object o = this.getUniqueResult(hql);
		SalaryStandard sd = (o == null ? null : (SalaryStandard) o);
		if (sd != null) {
			String h = "from SalaryStandardDetails sd where sd.standardId ='"
					+ standardId + "'";
			List<?> items = this.get(h);
			sd.setItems(items);
		}
		return sd;
	}

	// 根据条件获取总业数
	public int getRowCounts(SearchForm search) {
		StringBuilder hql = new StringBuilder(
				"select count(s.ssdId) from SalaryStandard as s where ");
		hql.append(getSearchHql(search));
		return Integer.parseInt(this.getUniqueResult(hql.toString()).toString());
	}

	// 根据条件获取相应的查询条件
	public StringBuilder getSearchHql(SearchForm search) {
		StringBuilder m = new StringBuilder("");
		String standardId = search.getStandardId().trim();
		if (standardId != "" || !standardId.equals("")) {
			m.append("s.standardId like '%" + standardId + "%'");
		}
		String key = search.getKey().trim();
		if (key != "" || !key.equals("")) {
			if (standardId != "") {
				m.append(" and s.standardName like '%" + key + "%' or ");
			} else {
				m.append(" s.standardName like '%" + key + "%' or ");
			}
			m.append("s.designer like '%" + key + "%' or ");
			m.append("s.register like '%" + key + "%' or ");
			m.append("s.checker like '%" + key + "%'");
		}
		String beginTime = search.getBegineTime().trim();
		if (beginTime != "" || !beginTime.equals("")) {
			if (standardId != "" || key != "") {
				m.append(" and s.registTime > '" + beginTime + "' ");
			} else {
				m.append(" s.registTime > '" + beginTime + "' ");
			}
		}
		String endTime = search.getEndTime().trim();
		if (endTime != "" || !endTime.equals("")) {
			m.append(" and s.registTime < '" + endTime + "' ");
		}
		m.append(" order by s.checkTime,s.registTime");
		return m;
	}

	private static int index = 1;
	private static Date dateTime = null;
	private static SimpleDateFormat fmtDate = new SimpleDateFormat("yyyyMMdd");

	public synchronized String[] getSalaryStandIdInfo() {
		String[] strIdInfo = null;
		String hql = "select max(standardId) from SalaryStandard";
		Object obj = getUniqueResult(hql);
		String result = obj == null ? null : String.valueOf(obj);
		if (result != null) {
			strIdInfo = new String[2];
			strIdInfo[0] = result.substring(3, 11);
			strIdInfo[1] = result.substring(11, 14);
		}
		return strIdInfo;
	}

	public synchronized String createSalaryStandId() {
		if (dateTime == null) {
			dateTime = new Date();
			Date now = new Date();
			if (!fmtDate.format(dateTime).equals(fmtDate.format(now))) {
				dateTime = now;
			}
			String[] strIdInfo = getSalaryStandIdInfo();
			if (strIdInfo != null) {
				if (fmtDate.format(dateTime).equals(strIdInfo[0])) {
					index = Integer.parseInt(strIdInfo[1]) + 1;
				}
			} else {
				index = 1;
			}
		}
		String fmtIndex = "";
		if (index < 10) {
			fmtIndex = "00" + index++;
		} else if (index >= 10 && index < 100) {
			fmtIndex = "0" + index++;
		} else if (index >= 100 && index < 999) {
			fmtIndex = String.valueOf(index++);
		} else {
			index = 1;
			fmtIndex = "00" + String.valueOf(index++);
		}
		return "HSS" + fmtDate.format(new Date()) + fmtIndex;
	}

}

⌨️ 快捷键说明

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