package com.norteksoft.bs.options.dao;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.norteksoft.bs.options.entity.Timer;
import com.norteksoft.bs.options.enumeration.TimingType;
import com.norteksoft.product.enumeration.DataState;
import com.norteksoft.product.orm.hibernate.HibernateDao;
@Repository
public class CornInfoDao extends HibernateDao<Timer, Long> {
public List<Object> getCornInfo(){
String hql = "select c,j from Timer c,TimedTask j where c.jobId=j.id and j.dataState=?";
return this.findNoCompanyCondition(hql,DataState.ENABLE);
}
public List<Timer> getCornInfoByJob(Long jobInfoId){
return this.findNoCompanyCondition("from Timer c where c.jobId=?", jobInfoId);
}
public Timer getCornInfo(String typeEnum,String corn,String dateTime,String weekTime,String appointTime,String appointSet,Long jobInfoId){
String hql="from Timer t ";
List<Timer> corns=null;
if(TimingType.everyDate.toString().equals(typeEnum)){
hql=hql+" where t.timingType=? and t.jobId=? and t.corn=?";
corns=this.find(hql,TimingType.everyDate,jobInfoId,corn);
if(corns.size()>0)return corns.get(0);
}else if(TimingType.everyMonth.toString().equals(typeEnum)){
hql=hql+" where t.timingType=? and t.jobId=? and t.dateTime=? and t.corn=?";
corns=this.find(hql,TimingType.everyMonth,jobInfoId,dateTime,corn);
if(corns.size()>0)return corns.get(0);
}else if(TimingType.everyWeek.toString().equals(typeEnum)){
hql=hql+" where t.timingType=? and t.jobId=? and t.weekTime=?";
corns=this.find(hql,TimingType.everyWeek,jobInfoId,weekTime);
if(corns.size()>0)return corns.get(0);
}else if(TimingType.appointSet.toString().equals(typeEnum)){
hql=hql+" where t.timingType=? and t.jobId=? and t.appointSet=?";
corns=this.find(hql,TimingType.appointSet,jobInfoId,appointSet);
if(corns.size()>0)return corns.get(0);
}else if(TimingType.appointTime.toString().equals(typeEnum)){
hql=hql+" where t.timingType=? and t.jobId=? and t.appointTime=?";
corns=this.find(hql,TimingType.appointTime,jobInfoId,appointTime);
if(corns.size()>0)return corns.get(0);
}
return null;
}
}