Package com.vst.dao.hibernate

Source Code of com.vst.dao.hibernate.DefectCategoryDaoHibernate

package com.vst.dao.hibernate;

import java.util.ArrayList;
import java.util.List;

import com.vst.dao.DefectCategoryDao;
import com.vst.dao.util.RefferenceUtil;
import com.vst.model.ConstructionDefect;
import com.vst.model.DefectCategory;
import com.vst.model.DefectParameter;
import com.vst.model.DefectRecomendation;

public class DefectCategoryDaoHibernate extends BaseDaoHibernate<DefectCategory> implements DefectCategoryDao {


    public boolean isUniqueDefectCategory(DefectCategory defectCategory){
        int count = super.getSession().createQuery("from DefectCategory defectCategory  where defectCategory.defectCategoryName.defectCategoryNameId=?  AND defectCategory.constructionType.constructionTypeId=? AND defectCategory.defectZone.defectZoneId=? AND defectCategory.defectType.defectTypeId=? AND defectCategory.defectVarity.varityId=? AND defectCategory.defectCategoryId<>? ").setString(0, defectCategory.getDefectCategoryName().getDefectCategoryNameId().toString()).setString(1, defectCategory.getConstructionType().getConstructionTypeId().toString()).setString(2,defectCategory.getDefectZone().getDefectZoneId().toString()).setString(3,defectCategory.getDefectType().getDefectTypeId().toString()).setString(4,defectCategory.getDefectVarity().getVarityId().toString()).setString(5,String.valueOf(defectCategory.getDefectCategoryId())).list().size();
        return count == 0;
    }

    public List getDefectCategorysByConstructionTypeIdDefectZoneId(String constructionTypeId,String defectZoneId){
        return getSession().createQuery("from DefectCategory defectCategory where defectCategory.defectZone.defectZoneId=? AND defectCategory.constructionType.constructionTypeId=?").setString(0,defectZoneId).setString(1,constructionTypeId).list();
    }

    public Integer getDangerCategoryByParameters(Integer constructionTypeId,Integer defectZoneId,Integer defectTypeId,Integer defectVarityId, List parameterList){
        String queryParameter="";
        String queryCondition="";
        for (int i = 0; i < parameterList.size(); i++) {
            DefectParameter defectParameter = (DefectParameter) parameterList.get(i);
            queryParameter+="left join fetch  defectCategory.categoryParameters as categoryParameters"+i+" ";
            if(i==0){
               queryCondition+=" AND ";
                if(parameterList.size()!=1){
                   queryCondition+="(";
                }
            }
            else{
                queryCondition+=" OR ";

            }
            queryCondition+=" (categoryParameters"+i+".parameter.parameterId="+defectParameter.getParameter().getParameterId()+" AND categoryParameters"+i+".parameterValue>="+defectParameter.getParameterValue()+" AND  categoryParameters"+i+".parameterBeginValue<="+defectParameter.getParameterValue()+" AND (NOT  categoryParameters"+i+".parameterValue=1000000 )) ";

           if(i==parameterList.size()-1 && parameterList.size()!=1){
              queryCondition+=")";
           }
        }

        List defectCategoryList=super.getSession().createQuery("from DefectCategory defectCategory "+queryParameter+" where defectCategory.constructionType.constructionTypeId=? AND defectCategory.defectZone.defectZoneId=? AND defectCategory.defectType.defectTypeId=? AND defectCategory.defectVarity.varityId=?"+queryCondition+" order by defectCategory.defectCategoryName.defectPriority asc").setInteger(0,constructionTypeId.intValue()).setInteger(1,defectZoneId.intValue()).setInteger(2,defectTypeId.intValue()).setInteger(3,defectVarityId.intValue()).list();

        DefectCategory defectCategory=null;

        if(defectCategoryList.size()==0){
            return new Integer(-1);
        }
        else{
            defectCategory=(DefectCategory)defectCategoryList.get(defectCategoryList.size()-1);
            return (Integer)super.getSession().createQuery("select dangerCategory.dangerCategoryId from DangerCategory dangerCategory where dangerCategory.categoryName=?)").setString(0,defectCategory.getDefectCategoryName().getDefectCategoryName()).uniqueResult();
        }

    }
    public List getDefectCategoryByParameters(DefectRecomendation defectRecomendation) {
        String hqlQuery = "from DefectCategory defectCategory ";
        boolean isFirst = true;
        if (!defectRecomendation.getFormDefectType().getDefectTypeId().equals(new Integer(-1))) {
            if (!isFirst) {
                hqlQuery += " AND ";
            }
            if (isFirst) {
                isFirst = false;
                hqlQuery += " where ";
            }
            hqlQuery += " defectCategory.defectType.defectTypeId=" + defectRecomendation.getFormDefectType().getDefectTypeId() + " ";


        }

        if (!defectRecomendation.getFormDefectVarity().getVarityId().equals(new Integer(-1))) {
            if (!isFirst) {
                hqlQuery += " AND ";
            }
            if (isFirst) {
                isFirst = false;
                hqlQuery += " where ";

            }
            hqlQuery += " defectCategory.defectVarity.varityId=" + defectRecomendation.getFormDefectVarity().getVarityId() + " ";


        }

        if (!defectRecomendation.getFormConstructionType().getConstructionTypeId().equals(new Integer(-1))) {
            if (!isFirst) {
                hqlQuery += " AND ";
            }
            if (isFirst) {
                isFirst = false;
                hqlQuery += " where ";
            }
            hqlQuery += " defectCategory.constructionType.constructionTypeId=" + defectRecomendation.getFormConstructionType().getConstructionTypeId() + " ";


        }


        if (!defectRecomendation.getFormDefectZone().getDefectZoneId().equals(new Integer(-1))) {
            if (!isFirst) {
                hqlQuery += " AND ";
            }
            if (isFirst) {
                isFirst = false;
                hqlQuery += " where ";
            }
            hqlQuery += " defectCategory.defectZone.defectZoneId=" + defectRecomendation.getFormDefectZone().getDefectZoneId() + " ";


        }
        //System.out.println("hqlQuery==="+hqlQuery);
        return getHibernateTemplate().find(hqlQuery);

    }

    public List getCategoriesByVarityIdConstructionTypeId(String varityId, String constructionTypeId) {
        return super.getSession().createQuery("from DefectCategory defectCategory where defectCategory.defectVarity.varityId=? AND defectCategory.constructionType.constructionTypeId=?").setString(0, varityId).setString(1, constructionTypeId).list();
    }

    public List getCategoriesByVarityId(String varityId) {
        return super.getSession().createQuery("from DefectCategory defectCategory where defectCategory.defectVarity.varityId=?").setString(0, varityId).list();
    }

    public DefectCategory getDefectCategoryByConstructionDefect(String constructionDefectId,String constructionTypeId) {
        ConstructionDefect constructionDefect = (ConstructionDefect) super.getSession().createQuery("from ConstructionDefect constructionDefect where constructionDefect.constructionDefectId=?").setString(0, constructionDefectId).uniqueResult();
        String defectZoneId=constructionDefect.getDefectZone().getDefectZoneId().toString();
        String defectTypeId=constructionDefect.getDefectType().getDefectTypeId().toString();
        String defectVarityId=constructionDefect.getDefectVarity().getVarityId().toString();
        String hqlQuery = "from DefectCategory defectCategory ";
        List parameterList = constructionDefect.getDefectParameters();
        boolean hasParameters = parameterList.size() > 0;



        String queryParameter="";
          String queryCondition="";
          for (int i = 0; i < parameterList.size(); i++) {
              DefectParameter defectParameter = (DefectParameter) parameterList.get(i);
              queryParameter+="left join fetch  defectCategory.categoryParameters as categoryParameters"+i+" ";
              if(i==0){
                 queryCondition+=" AND ";
                  if(parameterList.size()!=1){
                     queryCondition+="(";
                  }
              }
              else{
                  queryCondition+=" OR ";

              }
              queryCondition+=" (categoryParameters"+i+".parameter.parameterId="+defectParameter.getParameter().getParameterId()+" AND categoryParameters"+i+".parameterValue>="+defectParameter.getParameterValue()+" AND  categoryParameters"+i+".parameterBeginValue<="+defectParameter.getParameterValue()+" AND (NOT  categoryParameters"+i+".parameterValue=1000000 )) ";

             if(i==parameterList.size()-1 && parameterList.size()!=1){
                queryCondition+=")";
             }
          }


          List defectCategoryList=super.getSession().createQuery("from DefectCategory defectCategory "+queryParameter+" where defectCategory.constructionType.constructionTypeId=? AND defectCategory.defectZone.defectZoneId=? AND defectCategory.defectType.defectTypeId=? AND defectCategory.defectVarity.varityId=?"+queryCondition+" order by defectCategory.defectCategoryName.defectPriority asc").setString(0,constructionTypeId).setString(1,defectZoneId).setString(2,defectTypeId).setString(3,defectVarityId).list();


          if(defectCategoryList.size()==0){
              return null;
          }
          else{
              return (DefectCategory)defectCategoryList.get(defectCategoryList.size()-1);
          }




    }


    public List getConnectedRefferences(final String defectCategoryId){
        List defectRecomendationList= super.getSession().createQuery("from DefectRecomendation defectRecomendation where defectRecomendation.defectCategory.defectCategoryId=?").setString(0, defectCategoryId).list();
        List referenceList=new ArrayList();
        RefferenceUtil.makeURL(referenceList,"defectRecomendation",defectRecomendationList);

        return referenceList;
    }

    public boolean isDefectCategoryUsed(String defectCategoryId) {
      Long count = (Long) super.getSession().createQuery("select count(*) from DefectRecomendation defectRecomendation where defectRecomendation.defectCategory.defectCategoryId=?").setString(0, defectCategoryId).uniqueResult();
        if (count == null || count.intValue() == 0) {
            return false;
        }
        return true;
    }

    /**
     * @see com.vst.dao.DefectCategoryDao#getDefectCategorys(com.vst.model.DefectCategory)
     */
    public List getDefectCategorys(final DefectCategory defectCategory) {
        return getHibernateTemplate().find("from DefectCategory order by constructionType,defectZone,defectType,defectVarity,defectCategoryName");

        /* Remove the line above and uncomment this code block if you want
           to use Hibernate's Query by Example API.
        if (defectCategory == null) {
            return getHibernateTemplate().find("from DefectCategory");
        } else {
            // filter on properties set in the defectCategory
            HibernateCallback callback = new HibernateCallback() {
                public Object doInHibernate(Session session) throws HibernateException {
                    Example ex = Example.create(defectCategory).ignoreCase().enableLike(MatchMode.ANYWHERE);
                    return session.createCriteria(DefectCategory.class).add(ex).list();
                }
            };
            return (List) getHibernateTemplate().execute(callback);
        }*/
    }

    /**
     * @see com.vst.dao.DefectCategoryDao#getDefectCategory(Integer defectCategoryId)
     */
    public DefectCategory getDefectCategory(final Integer defectCategoryId) {
        DefectCategory defectCategory = (DefectCategory) getObject(defectCategoryId);
        return defectCategory;
    }

    /**
     * @see com.vst.dao.DefectCategoryDao#saveDefectCategory(DefectCategory defectCategory)
     */
    public void saveDefectCategory(final DefectCategory defectCategory) {
        saveObject(defectCategory);
    }

    /**
     * @see com.vst.dao.DefectCategoryDao#removeDefectCategory(Integer defectCategoryId)
     */
    public void removeDefectCategory(final Integer defectCategoryId) {
        removeObject(defectCategoryId);
    }

  @Override
  Class<DefectCategory> getServiceClass() {
    return DefectCategory.class;
  }
}
TOP

Related Classes of com.vst.dao.hibernate.DefectCategoryDaoHibernate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.