package org.oep.processmgt.service.persistence; import java.util.ArrayList; import java.util.List; import org.oep.processmgt.util.CustomSQLUtil; import org.oep.processmgt.model.ProcessOrder; import org.oep.processmgt.model.impl.ProcessOrderImpl; import com.liferay.portal.kernel.dao.orm.QueryUtil; import com.liferay.portal.kernel.dao.orm.SQLQuery; import com.liferay.portal.kernel.dao.orm.Session; import com.liferay.portal.kernel.dao.orm.Type; import com.liferay.portal.service.ServiceContext; import com.liferay.portal.service.persistence.impl.BasePersistenceImpl; public class ProcessOrderFinderImpl extends BasePersistenceImpl implements ProcessOrderFinder { private static final String FIND_ALL_CAN_AUTOCONDITION = "findAllCanAutoCondition"; private static final String COUNT_ALL_CAN_AUTOCONDITION = "countAllCanAutoCondition"; private static final String FIND_BY_WAITING_PROCESSED = "findByWaitingProcessed"; private static final String COUNT_BY_WAITING_PROCESSED = "countByWaitingProcessed"; public int countAllCanAutoCondition(ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(ProcessOrder.class.getName(), COUNT_ALL_CAN_AUTOCONDITION); sql = sql.replace("[$COMPANY_FILTER$]", " AND COMPANYID = ?"); params.add(serviceContext.getCompanyId()); SQLQuery query = session.createSQLQuery(sql); query.addScalar("total", Type.LONG); if (params != null && params.size() > 0) { for (int index = 0; index < params.size(); index++) { query.setString(index, String.valueOf(params.get(index))); } } List temps = query.list(); if (temps != null && temps.size() > 0) { Long total = (Long) temps.get(0); return total.intValue(); } return 0; } public List<ProcessOrder> findAllCanAutoCondition(int startIndex, int endIndex, ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(ProcessOrderFinder.class.getName(), FIND_ALL_CAN_AUTOCONDITION); sql = sql.replace("[$COMPANY_FILTER$]", " AND COMPANYID = ?"); params.add(serviceContext.getCompanyId()); SQLQuery query = session.createSQLQuery(sql); query.addEntity("ProcessOrder", ProcessOrderImpl.class); if (params != null && params.size() > 0) { for (int index = 0; index < params.size(); index++) { query.setString(index, String.valueOf(params.get(index))); } } return (List<ProcessOrder>) QueryUtil.list(query, getDialect(), startIndex, endIndex); } public List<ProcessOrder> findAllCanAutoCondition(ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(ProcessOrderFinder.class.getName(), FIND_ALL_CAN_AUTOCONDITION); sql = sql.replace("[$COMPANY_FILTER$]", " AND COMPANYID = ?"); params.add(serviceContext.getCompanyId()); SQLQuery query = session.createSQLQuery(sql); query.addEntity("ProcessOrder", ProcessOrderImpl.class); if (params != null && params.size() > 0) { for (int index = 0; index < params.size(); index++) { query.setString(index, String.valueOf(params.get(index))); } } return (List<ProcessOrder>) query.list(); } public List<ProcessOrder> findAllCanAutoCondition(long companyId) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(ProcessOrderFinder.class.getName(), FIND_ALL_CAN_AUTOCONDITION); sql = sql.replace("[$COMPANY_FILTER$]", " AND COMPANYID = ?"); params.add(companyId); SQLQuery query = session.createSQLQuery(sql); query.addEntity("ProcessOrder", ProcessOrderImpl.class); if (params != null && params.size() > 0) { for (int index = 0; index < params.size(); index++) { query.setString(index, String.valueOf(params.get(index))); } } return (List<ProcessOrder>) query.list(); } public int countByWaitingProcessed(long userId, ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(ProcessOrder.class.getName(), COUNT_BY_WAITING_PROCESSED); sql = sql.replace("[$COMPANY_FILTER$]", " AND COMPANYID = ?"); params.add(serviceContext.getCompanyId()); sql = sql.replace("[$ASSIGN_USER$]", " AND (ASSIGNTOUSERID = ? OR USERID = ?)"); params.add(userId); params.add(userId); SQLQuery query = session.createSQLQuery(sql); query.addScalar("total", Type.LONG); if (params != null && params.size() > 0) { for (int index = 0; index < params.size(); index++) { query.setString(index, String.valueOf(params.get(index))); } } List temps = query.list(); if (temps != null && temps.size() > 0) { Long total = (Long) temps.get(0); return total.intValue(); } return 0; } public List<ProcessOrder> findByWaitingProcessed(long userId, int startIndex, int endIndex, ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(ProcessOrderFinder.class.getName(), FIND_BY_WAITING_PROCESSED); sql = sql.replace("[$COMPANY_FILTER$]", " AND COMPANYID = ?"); params.add(serviceContext.getCompanyId()); sql = sql.replace("[$ASSIGN_USER$]", " AND (ASSIGNTOUSERID = ? OR USERID = ?)"); params.add(userId); params.add(userId); SQLQuery query = session.createSQLQuery(sql); query.addEntity("ProcessOrder", ProcessOrderImpl.class); if (params != null && params.size() > 0) { for (int index = 0; index < params.size(); index++) { query.setString(index, String.valueOf(params.get(index))); } } return (List<ProcessOrder>) QueryUtil.list(query, getDialect(), startIndex, endIndex); } }