📄 grantdaoimple.java
字号:
package com.y2.hr.salary.grant.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.classic.Session;
import com.y2.hr.base.dao.impl.BaseDaoImpl;
import com.y2.hr.salary.grant.bean.SalaryGrant;
import com.y2.hr.salary.grant.bean.SalaryGrantDetails;
import com.y2.hr.salary.grant.dao.GrantDao;
public class GrantDaoImple extends BaseDaoImpl implements GrantDao {
/**
* 查询只一条记录 *
*
* @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 hql
* @param page
* 页数
* @return
*/
public List<?> getGrantByPage(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 hql
* @return String
*/
@SuppressWarnings("unchecked")
public String getLastGrantId() {
String hql = "select max(sg.salaryGrantId) from SalaryGrant as sg";
Object o = this.getUniqueResult(hql);
return o == null ? null : (String.valueOf(o));
}
/**
* 获取 最后一次的薪酬发放的信息
*
* @param hql
* @return String
*/
public List<?> getLastGrant() {
String hql = "select sg.sgrId,sg.checkTime from SalaryGrant as sg where sg.checkStatus = 1 order by sg.checkTime desc limit 0,1 ";
List o = this.get(hql);
return o.size() == 0 ? null : o;
}
/**
* 保存薪酬发放信息和对应的详细信息
*
* @param sagrant
* @param grantDateList
* @return boolean
*/
public boolean savaGrantAndDate(SalaryGrant sagrant,
List<SalaryGrantDetails> grantDateList) {
try {
@SuppressWarnings("unused")
String salaryGrantId = createSalaryGrantId();
sagrant.setSalaryGrantId(salaryGrantId);
boolean b = this.add(sagrant);
Iterator<SalaryGrantDetails> it = grantDateList.iterator();
while (it.hasNext()) {
SalaryGrantDetails s = it.next();
s.setSalaryGrantId(salaryGrantId);
this.add(s);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 获取薪酬发放的总数
*
* @param sagrant
* @param grantDateList
* @return
*/
public int getReRows() {
String hql = "select max(sg.salaryGrantId) from SalaryGrant as sg "
+ " where sg.checkStatus = 0 order by sg.registTime";
Object o = this.getUniqueResult(hql);
return o == null ? null : ((Integer) o);
}
/**
* 获取需要审核的薪酬发放集合
*
* @return List<Object>
*/
@SuppressWarnings("unchecked")
public List<?> getCkGrantList() {
String hql = "select sg.salaryGrantId,sg.firstKindName,sg.secondKindName,"
+ "sg.humanAmount,sg.registTime from SalaryGrant as sg "
+ "where sg.checkStatus = 0 order by sg.registTime";
return this.get(hql);
}
/**
* 获取薪酬发放的信息
*
* @param sagrant
* @param grantDateList
* @return List<Object>
*/
@SuppressWarnings("unchecked")
public List<?> getCkGrantInfo() {
String hql = "";
return this.get(hql);
}
public SalaryGrant getGrantById(String salaryGrantId) {
String hql = "from SalaryGrant as s where s.salaryGrantId = '"
+ salaryGrantId + "'" + " and checkStatus = 0";
Object o = this.getUniqueResult(hql);
return o == null ? null : (SalaryGrant) o;
}
public List<?> getGrantDetaById(String salaryGrantId) {
String hql = "from SalaryGrantDetails as sd where sd.salaryGrantId='"
+ salaryGrantId + "'";
return this.get(hql);
}
public boolean updateGrantAndDate(SalaryGrant sagrant, List<?> grantDateList) {
boolean boo = true;
try {
this.mod(sagrant);
Iterator<?> it = grantDateList.iterator();
while (it.hasNext()) {
this.mod(it.next());
}
} catch (Exception e) {
boo = false;
}
return boo;
}
// 统计 最后一次的薪酬发放的次数
public int getLastGrantCount() {
String hql = "select count(sg.sgrId) from SalaryGrant as sg";
Object obj = this.getUniqueResult(hql);
return obj == null ? 0 : Integer.parseInt(obj.toString());
}
// 获取最后一次薪酬发放时间
public Date getLastGrantLastTime() {
String hql = "select sg.checkTime from SalaryGrant as sg where sg.checkStatus = 1 order by sg.checkTime desc";
Session se = this.sessionFactory.openSession();
Query query = se.createQuery(hql);
query.setFirstResult(0);
query.setMaxResults(1);
Object obj = query.uniqueResult();
se.close();
return obj == null ? null : (Date) obj;
}
private static int index = 1;
private static Date dateTime = null; // 映射数据库中的最大日期
private static SimpleDateFormat fmtDate = new SimpleDateFormat("yyyyMMdd");
public synchronized String[] getSalaryGrantIdInfo() {
String[] strIdInfo = null;
String hql = "select max(salaryGrantId) from SalaryGrant";
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 createSalaryGrantId() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (dateTime == null) { // time==null 即是第一次访问
dateTime = new Date();
Date now = new Date();
// 比较 映射数据库中的最大日期 与当前系统的日期
if (!fmtDate.format(dateTime).equals(fmtDate.format(now))) {
dateTime = now; // 不相等则 映射数据库中 换成 当前系统的日期
}
String[] strIdInfo = getSalaryGrantIdInfo();
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++);
}
// 编号的格式 XX日期INDEX
return "HGS" + fmtDate.format(new Date()) + fmtIndex;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -