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