package com.tdtech.pdm.create.dao.impl;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import com.tdtech.pdm.create.dao.NewMateAppBillDao;
import com.tdtech.pdm.create.pojo.DQAssemblyPojo;
import com.tdtech.pdm.create.pojo.NewMateAppBillPojo;
public class NewMateAppBillDaoImpl implements NewMateAppBillDao{
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
/**
* 风险评估时的更新
*/
public boolean updateRiskEvaluation(final NewMateAppBillPojo newMateAppBillPojo){
boolean flag=false;
try{
int count=this.hibernateTemplate.execute(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String sql="update tb_newMateAppBill d "+
"set d.recallbill=? "+
"where d.applyid=?";
Query query = session.createSQLQuery(sql);
query.setString(0, newMateAppBillPojo.getRecallbill());
query.setString(1, newMateAppBillPojo.getApplyid());
return query.executeUpdate();
}
});
if(count>0){
flag=true;
}
}catch(Exception e){
e.printStackTrace();
}
return flag;
}
/**
* 通过applyid查询物料申请单的主键
*/
public int queryIdByApplyid(final String applyid){
int id=0;
try{
id=this.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String sql="select d.id from tb_newMateAppBill d where d.applyid=?";
Query query = session.createSQLQuery(sql);
query.setString(0, applyid);
return query.list().get(0);
}
});
}catch(Exception e){
e.printStackTrace();
}
System.out.println("通过applyid查询物料申请单的主键:id="+id);
return id;
}
/**
* 任务完成
*/
public boolean updateTaskComplate(final String applyid,final String applyResult,final String isYTechEnvalute,final String isYResearchValidate){
boolean flag = false;
int num=0; //受影响的行数
try{
num=this.hibernateTemplate.execute(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String sql = "update tb_newMateAppBill d "+
"set d.applyResult=?,d.isYTechEnvalute=?,d.isYResearchValidate=? "+
"where d.applyid=?";
Query query = session.createSQLQuery(sql);
query.setString(0, applyResult);
query.setString(1, isYTechEnvalute);
query.setString(2, isYResearchValidate);
query.setString(3, applyid);
return query.executeUpdate();
}
});
}catch(Exception e){
e.printStackTrace();
}
if(num>0){
flag=true;
}
return flag;
}
/**
* 更新物料申请单信息
*/
public boolean updateMateDemandAppBill(final NewMateAppBillPojo newMateAppBillPojo){
boolean flag=false;
try{
this.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
int num=0;
String sql="update tb_newMateAppBill d "
+"set d.appbillname=?,d.projecttype=?,d.standprotime=?,"
+"d.cdcpplaintime=?,d.pdcpplaintime=?,d.tr4atime=?,d.productmanager=?,"
+"d.hardwaremanager=?,d.buyer=?,d.costmanager=?,"
+"d.sysmanager=?,d.projectmanager=?,d.roadsignedition=?,d.edition=? "
+"where d.applyid=?";
Query query=session.createSQLQuery(sql);
query.setString(0, newMateAppBillPojo.getAppbillname());
query.setString(1, newMateAppBillPojo.getProjecttype());
query.setString(2, newMateAppBillPojo.getStandprotime());
query.setString(3, newMateAppBillPojo.getCdcpplaintime());
query.setString(4, newMateAppBillPojo.getPdcpplaintime());
query.setString(5, newMateAppBillPojo.getTr4atime());
query.setString(6, newMateAppBillPojo.getProductmanager());
query.setString(7, newMateAppBillPojo.getHardwaremanager());
query.setString(8, newMateAppBillPojo.getBuyer());
query.setString(9, newMateAppBillPojo.getCostmanager());
query.setString(10, newMateAppBillPojo.getSysmanager());
query.setString(11, newMateAppBillPojo.getProjectmanager());
query.setString(12, newMateAppBillPojo.getRoadsignedition());
query.setString(13, newMateAppBillPojo.getEdition());
query.setString(14, newMateAppBillPojo.getApplyid());
query.executeUpdate();
num+=1;
return num;
}
});
flag=true;
}catch(Exception e){
e.printStackTrace();
}
return flag;
}
/**
* 通过申请单编号查询物料认证申请单--精确查询
*/
public NewMateAppBillPojo queryMateDemandAppBillByApplyid(final String applyid){
NewMateAppBillPojo n=new NewMateAppBillPojo();
List<NewMateAppBillPojo> list=this.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql="from NewMateAppBillPojo n where applyid='"+applyid+"'";
Query query = session.createQuery(hql);
return query.list();
}
});
System.out.println("NewMateAppBillDaoImpl.java,method=queryMateDemandAppBillByApplyid()通过申请单编号查询物料认证申请单--dao--精确查询"+list.size());
if(list.size()>0){
n=list.get(0);
}
return n;
}
/**
* 查询多个新物料认证申请单
*/
public List<NewMateAppBillPojo> queryMutiNewMateAppBill(final String applyid){
List<NewMateAppBillPojo> list=new ArrayList<NewMateAppBillPojo>();
try{
list=this.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql="from NewMateAppBillPojo n where n.applyid like ? order by n.applyid desc";
Query query = session.createQuery(hql);
query.setString(0, "%"+applyid+"%");
return query.list();
}
});
//System.out.println("------------size="+list.size());
}catch(Exception e){
e.printStackTrace();
}
return list;
}
/**
* 查询最新的新物件认证申请单
*/
public List<NewMateAppBillPojo> queryNewMateAppBill(){
List<NewMateAppBillPojo> list=new ArrayList<NewMateAppBillPojo>();
try{
list=this.hibernateTemplate.execute(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String sql="select * from tb_newMateAppBill m where m.id=(select max(t.id) from tb_newMateAppBill t)";
Query query = session.createSQLQuery(sql).addEntity(NewMateAppBillPojo.class);
return query.list();
}
});
}catch(Exception e){
e.printStackTrace();
}
return list;
}
/**
* 创建新物料认证申请单
*/
public boolean createNewMateAppBill(NewMateAppBillPojo newMateAppBillPojo){
boolean flag=false;
try{
this.hibernateTemplate.save(newMateAppBillPojo);
flag=true;
}catch(Exception e){
e.printStackTrace();
}
return flag;
}
/**
* 生成申请单编号
*/
public String generateAppBillCode(final String smallSortCode){
// System.out.println("dao-生成新物料认证申请单编号 smallSortCode="+smallSortCode);
String applyid=null;
List<NewMateAppBillPojo> list=new ArrayList<NewMateAppBillPojo>();
try{
list=this.getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql="from NewMateAppBillPojo np where np.applyid like 'MAB-"+smallSortCode+"%' order by np.applyid desc";
Query query=session.createQuery(hql);
return query.list();
}
});
}catch(Exception e){
applyid=" ";
}
// System.out.println("生成申请单编号 size="+list.size());
if(list.size()>0){
applyid=list.get(0).getApplyid();
// System.out.println("当前申请单编号:"+applyid);
}else{
applyid=" ";
}
if(!(" ".equals(applyid))){
String s=applyid.substring(8);
StringBuffer sb=new StringBuffer();
int applyNum=Integer.parseInt(s);
applyNum+=1;
if(applyNum<10){
sb.append("0000"+applyNum);
}else if(applyNum<100){
sb.append("000"+applyNum);
}else if(applyNum<1000){
sb.append("00"+applyNum);
}else if(applyNum<10000){
sb.append("0"+applyNum);
}else{
sb.append(applyNum);
}
// System.out.println("生成的物料申请单号:"+applyNum);
System.out.println("生成完整的物料申请单号:"+"MAB-"+smallSortCode+sb.toString());
return "MAB-"+smallSortCode+sb.toString();
}else{
System.out.println("物料申请单号:"+smallSortCode+"00001");
return "MAB-"+smallSortCode+"00001";
}
}
}
|