package com.norteksoft.mms.form.dao;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Repository;
import com.norteksoft.mms.form.entity.DataTable;
import com.norteksoft.product.api.impl.WorkflowClientManager;
import com.norteksoft.product.enumeration.DataState;
import com.norteksoft.product.orm.Page;
import com.norteksoft.product.orm.hibernate.HibernateDao;
import com.norteksoft.product.util.ContextUtils;
@Repository
public class DataTableDao extends HibernateDao<DataTable, Long> {
private Log log = LogFactory.getLog(WorkflowClientManager.class);
public void findAllDataTable(Page<DataTable> tables){
String hql = "from DataTable dt where dt.companyId = ? order by dt.createdTime desc";
findPage(tables, hql, ContextUtils.getCompanyId());
}
public void findSystemAllDataTable(Page<DataTable> tables,Long menuId){
String hql ="from DataTable dt where dt.companyId = ? and dt.menuId = ? and dt.entityName!=null order by dt.createdTime desc";
this.searchPageByHql(tables, hql, ContextUtils.getCompanyId(),menuId);
}
public void findSystemDefaultDataTable(Page<DataTable> tables,Long menuId){
String hql ="from DataTable dt where dt.companyId = ? and dt.menuId = ? and dt.entityName is null order by dt.createdTime desc";
this.searchPageByHql(tables, hql, ContextUtils.getCompanyId(),menuId);
}
public void findAllEnabledDataTable(Page<DataTable> tables){
String hql = "from DataTable dt where dt.companyId = ? and dt.tableState=? order by dt.createdTime desc";
findPage(tables, hql, ContextUtils.getCompanyId(), DataState.ENABLE);
}
public List<DataTable> getEnabledDataTables() {
String hql = "from DataTable dt where (dt.tableState=? or dt.tableState=? ) and dt.companyId=? order by dt.createdTime";
return this.find(hql, DataState.ENABLE,DataState.DISABLE,ContextUtils.getCompanyId());
}
public List<DataTable> getAllEnabledDataTables() {
String hql = "from DataTable dt where dt.tableState=? and dt.companyId=? order by dt.createdTime";
return this.find(hql, DataState.ENABLE,ContextUtils.getCompanyId());
}
public DataTable getDataTableByEntity(String entityName){
String hql = "from DataTable dt where dt.entityName=? and dt.companyId=?";
List<DataTable> tables = find(hql, entityName, ContextUtils.getCompanyId());
if(tables.size()>0){
return tables.get(0);
}else{
return null;
}
}
public DataTable findDataTableByName(String name){
String hql = "from DataTable dt where dt.name=? and dt.companyId=?";
if(ContextUtils.getCompanyId()==null){
log.debug("companyId不能为null");
throw new RuntimeException("companyId不能为null");
}
List<DataTable> tables = find(hql, name, ContextUtils.getCompanyId());
if(tables.size()>0){
return tables.get(0);
}else{
return null;
}
}
public List<DataTable> getStandardDataTables() {
String hql = "from DataTable dt where entityName is not null and dt.name<>'null' and dt.companyId=? order by dt.createdTime";
return this.find(hql, ContextUtils.getCompanyId());
}
public List<DataTable> getDefaultDataTables() {
String hql = "from DataTable dt where entityName is null and dt.name<>'null' and dt.companyId=? order by dt.createdTime";
return this.find(hql, ContextUtils.getCompanyId());
}
public List<DataTable> getAllDataTablesByMenu(Long menuId){
String hql = "from DataTable dt where dt.companyId = ? and dt.menuId=? order by dt.createdTime desc";
return this.find(hql,ContextUtils.getCompanyId(),menuId);
}
public List<DataTable> getUnCompanyAllDataTablesByMenu(Long menuId){
String hql = "from DataTable dt where dt.menuId=? order by dt.createdTime desc";
return this.findNoCompanyCondition(hql,menuId);
}
}