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

📄 marchedaoimple.java

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

import java.util.Date;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;

import org.hibernate.classic.Session;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;

import com.y2.hr.base.commom.Common;
import com.y2.hr.base.commom.Page;
import com.y2.hr.base.dao.impl.BaseDaoImpl;

import com.y2.hr.change.majorchange.bean.MajorChange;
import com.y2.hr.change.majorchange.dao.MarCheDao;
import com.y2.hr.change.majorchange.web.form.Condition;

public class MarCheDaoImple extends BaseDaoImpl implements MarCheDao {

	// 根据主键获取人事调动信息
	public MajorChange getMarCheChange(short id) {
		Session se = sessionFactory.openSession();
		MajorChange major = (MajorChange) se.get(MajorChange.class, id);
		se.flush();
		se.close();
		return major;
	}

	// 按输入的页数获取需要审核的人事调动的信息
	public List<Object> checkList(Page page) {
		String hql = "select m.mchId,m.humanId,m.humanName,"
				+ "m.register,m.registTime from MajorChange as m "
				+ "where m.checkStatus=0";
		return this.getList(page, hql);
	}

	// 设置相等的条件
	public void setEquelCriterion(DetachedCriteria c, String proName,
			Object value) {
		if (value != null && !"".equals(value)) {
			if (String.class == value.getClass()) {
				c.add(Restrictions.eq(proName, String.valueOf(value)));
			}
			if (Integer.class == value.getClass()) {
				c.add(Restrictions.eq(proName, (Integer) value));
			}
		}
	}

	// 根据条件获取最大记录数
	public int getSearchListCounts(Condition condition) {
		Session se = sessionFactory.openSession();
		DetachedCriteria query = getDetachedCriteria(condition);
		query.setProjection(Projections.count("mchId"));
		Object o = query.getExecutableCriteria(se).uniqueResult();
		return o == null ? 0 : (Integer) o;
	}

	// 设置开始时间的条件
	public void setBtime(Criteria c, String proName, Condition condition) {
		String btime = condition.getBtime();
		if (btime != null && !"".equals(btime)) {
			c.add(Restrictions.ge(proName, Common.format(btime)));
		}
	}

	// 设置结束时间的条件
	public void setEtime(Criteria c, String proName, Condition condition) {
		String etime = condition.getBtime();
		if (etime != null && !"".equals(etime)) {
			c.add(Restrictions.le(proName, Common.format(etime)));
		}
	}

	// 获取最后的编号
	@SuppressWarnings("unchecked")
	public String getLastMajorId() {
		String hql = "select max(m.mchId) from MajorChange m ";
		Object o = this.getUniqueResult(hql);
		return (o == null ? null : o.toString());
	}

	// 获取待复核的登记列表的总数
	public int getMarCheSumPage() {
		String hql = "select count(mar.mchId) from MajorChange as mar where mar.checkStatus=0";
		Object o = this.getUniqueResult(hql);
		return (o == null ? null : Integer.parseInt(o.toString()));
	}

	// 修改人事调动信息
	public boolean updateMajorChe(MajorChange major) {
		return this.mod(major);
	}

	// 根据原机构获取新机构
	public List<?> getNewKinds(int kind, String kindId) {
		StringBuilder builder = new StringBuilder("select ");
		switch (kind) {
		case 1:
			builder
					.append("m.newFirstKindId,m.newFirstKindName from MajorChange as m ");
			builder.append("where m.firstKindId ='" + kindId + "' ");
			break;
		case 2:
			builder
					.append("m.newSecondKindId,m.newSecondKindName from MajorChange as m ");
			builder.append("where m.secondKindId ='" + kindId + "' ");
			break;
		case 3:
			builder
					.append("m.newThirdKindId,m.newThirdKindName from MajorChange as m ");
			builder.append("where m.thirdKindId ='" + kindId + "' ");
			break;
		default:
			return null;
		}
		return this.get(builder.toString());
	}

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

	// 分页查询
	public List<Object> getList(Page page, String hql) {
		Session se = sessionFactory.openSession();
		Query query = se.createQuery(hql);
		int firstIndex = page.getPageSize() * (page.getCurrentPage() - 1);
		query.setFirstResult(firstIndex);
		query.setMaxResults(page.getPageSize());
		List list = query.list();
		se.flush();
		se.close();
		return list;
	}

	// 动态分页查询
	public List<Object> getMarcheByPage(DetachedCriteria query, int page,
			int pageSize) {
		Session se = sessionFactory.openSession();
		List list = null;
		try {
			list = query.getExecutableCriteria(se).setFirstResult(
					(page - 1) * pageSize).setMaxResults(pageSize).list();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			se.close();
		}
		return list;
	}

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

	public int getRowCounts(int status) {
		String hql = "select count(mar.mchId) from MajorChange as mar where mar.checkStatus=0";
		Object o = this.getUniqueResult(hql);
		return (o == null ? null : Integer.parseInt(o.toString()));
	}

	// 根据页数 获取调动的信息
	public List<?> getCheckList(int curPage) {
		String hql = "select m.mchId,m.humanId,m.humanName,"
				+ "m.register,m.registTime from MajorChange as m "
				+ "where m.checkStatus=0";
		return getMarcheByPage(hql, curPage, 2);
	}

	// 根据条件 获得调动信息
	public List<?> getSearchList(int curPage, Condition condition) {
		DetachedCriteria query = getDetachedCriteria(condition);
		query.addOrder(Order.asc("checkTime"));
		return getMarcheByPage(query, curPage, 10);
	}

	public List<Object> getSearchList(Page page, Condition condition) {
		return null;
	}

	public DetachedCriteria getDetachedCriteria(Condition condition) {
		DetachedCriteria query = DetachedCriteria.forClass(MajorChange.class);
		setEquelCriterion(query, "firstKindId", condition.getFirst());
		setEquelCriterion(query, "newFirstKindId", condition.getNewFirst());
		setEquelCriterion(query, "secondKindId", condition.getSecond());
		setEquelCriterion(query, "newSecondKindId", condition.getNewSecond());
		setEquelCriterion(query, "thirdKindId", condition.getThird());
		setEquelCriterion(query, "newThirdKindId", condition.getNewThird());
		if (condition.getStatus() != 2) {
			query.add(Restrictions.eq("checkStatus", condition.getStatus()));
		}
		if (condition.getKey() != null && !"".equals(condition.getKey())) {
			Criterion c1 = Restrictions.like("register", condition.getKey(),
					MatchMode.ANYWHERE);
			Criterion c2 = Restrictions.like("checker", condition.getKey(),
					MatchMode.ANYWHERE);
			query.add(Restrictions.or(c1, c2));
		}
		String bt = condition.getBtime();
		String et = condition.getEtime();
		Date beginTime = null;
		Date endTime = null;
		if (null != bt && !"".equals(bt)) {
			beginTime = Common.format(bt);
		}
		if (null != et && !"".equals(et)) {
			endTime = Common.format(et);
		}
		if (null != beginTime && !"".equals(beginTime) && null != endTime
				&& !"".equals(endTime)) {
			Criterion reBtime = Restrictions.ge("registTime", beginTime);
			Criterion reEtime = Restrictions.le("registTime", endTime);
			Criterion ckBtime = Restrictions.ge("checkTime", beginTime);
			Criterion ckEtime = Restrictions.le("checkTime", endTime);
			Criterion rand = Restrictions.and(reBtime, reEtime);
			Criterion cand = Restrictions.and(ckBtime, ckEtime);
			Criterion rorc = Restrictions.or(rand, cand);
			query.add(rorc);
		} else if (null != beginTime && !"".equals(beginTime)
				&& null == endTime && "".equals(endTime)) {
			Criterion reBtime = Restrictions.ge("registTime", beginTime);
			Criterion ckBtime = Restrictions.ge("checkTime", beginTime);
			Criterion rand = Restrictions.or(reBtime, ckBtime);
			query.add(rand);
		} else if (null == beginTime && "".equals(beginTime) && null != endTime
				&& !"".equals(endTime)) {
			Criterion reEtime = Restrictions.le("registTime", endTime);
			Criterion ckEtime = Restrictions.le("checkTime", endTime);
			Criterion cand = Restrictions.or(reEtime, ckEtime);
			query.add(cand);
		} else {

		}
		return query;
	}
}

⌨️ 快捷键说明

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