📄 marchedaoimple.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 + -