package org.oep.datamgt.service.persistence; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.oep.datamgt.model.DictData; import org.oep.datamgt.model.impl.DictDataImpl; import org.oep.datamgt.service.persistence.DictDataFinder; 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; import com.liferay.util.dao.orm.CustomSQLUtil; public class DictDataFinderImpl extends BasePersistenceImpl implements DictDataFinder{ private static final String COUNT_BY_CUSTOMCONDITION = DictDataFinder.class.getName() + ".countByCustomCondition"; private static final String FIND_BY_CUSTOMCONDITION = DictDataFinder.class.getName() + ".findByCustomCondition"; private static final String FIND_BY_DATALEVELDATACODE = DictDataFinder.class.getName() + ".findByDataLevelDataCode"; private static final String COUNT_BY_DATALEVELDATACODE = DictDataFinder.class.getName() + ".countByDataLevelDataCode"; public List<DictData> findByCustomCondition(String dataCode, String collectionName,String dataCodeParent, int datalevel, Date validatedFrom, Date validatedTo, int status, ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(FIND_BY_CUSTOMCONDITION); sql = sql.replace("[$COMPANY_FILTER$]", " AND COMPANYID = ?"); params.add(serviceContext.getCompanyId()); if (dataCode != null && !"".equals(dataCode)) { sql = sql.replace("[$DATACODE_FILTER$]", " AND (LOWER(DATACODE) LIKE ? OR LOWER(TITLE) LIKE ?)"); params.add("%" + dataCode.toLowerCase() + "%"); params.add("%" + dataCode.toLowerCase() + "%"); } else { sql = sql.replace("[$DATACODE_FILTER$]", ""); } if (collectionName != null && !"".equals(collectionName)) { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", " AND COLLECTIONNAME = ?"); params.add(collectionName); } else { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", ""); } DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); if (validatedFrom != null) { sql = sql.replace("[$VALIDATEDFROM_FILTER$]", " AND VALIDATEDFROM >= ?"); params.add(df.format(validatedFrom)); } else { sql = sql.replace("[$VALIDATEDFROM_FILTER$]", ""); } if (validatedTo != null) { sql = sql.replace("[$VALIDATEDTO_FILTER$]", " AND VALIDATEDTO <= ?"); params.add(df.format(validatedTo)); } else { sql = sql.replace("[$VALIDATEDTO_FILTER$]", ""); } if (status != -1 && status <= 3 && status >= 0) { sql = sql.replace("[$STATUS_FILTER$]", " AND STATUS = ?"); params.add(status); } else { sql = sql.replace("[$STATUS_FILTER$]", ""); } if (datalevel != -1 && datalevel <= 5 && datalevel >= 1) { String node = "NODE_" + datalevel; sql = sql.replace("[$NODE_FILTER$]", " AND " + node + " = ?"); params.add(dataCodeParent); } else { sql = sql.replace("[$NODE_FILTER$]", ""); } SQLQuery query = session.createSQLQuery(sql); query.addEntity("DictData", DictDataImpl.class); if (params != null && params.size() > 0) { for (int index = 0; index < params.size(); index++) { query.setString(index, String.valueOf(params.get(index))); } } if (query.list() != null){ return (List<DictData>) query.list(); } return new ArrayList<DictData>(); //return (List<DictData>) query.list(); } public List<DictData> findByCustomCondition(String dataCode, String collectionName,String dataCodeParent, int datalevel, Date validatedFrom, Date validatedTo, int status, int startIndex, int endIndex, ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(FIND_BY_CUSTOMCONDITION); sql = sql.replace("[$COMPANY_FILTER$]", " AND COMPANYID = ?"); params.add(serviceContext.getCompanyId()); if (dataCode != null && !"".equals(dataCode)) { sql = sql.replace("[$DATACODE_FILTER$]", " AND (LOWER(DATACODE) LIKE ? OR LOWER(TITLE) LIKE ?)"); params.add("%" + dataCode.toLowerCase() + "%"); params.add("%" + dataCode.toLowerCase() + "%"); } else { sql = sql.replace("[$DATACODE_FILTER$]", ""); } if (collectionName != null && !"".equals(collectionName)) { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", " AND COLLECTIONNAME = ?"); params.add(collectionName); } else { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", ""); } DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); if (validatedFrom != null) { sql = sql.replace("[$VALIDATEDFROM_FILTER$]", " AND VALIDATEDFROM >= ?"); params.add(df.format(validatedFrom)); } else { sql = sql.replace("[$VALIDATEDFROM_FILTER$]", ""); } if (validatedTo != null) { sql = sql.replace("[$VALIDATEDTO_FILTER$]", " AND VALIDATEDTO <= ?"); params.add(df.format(validatedTo)); } else { sql = sql.replace("[$VALIDATEDTO_FILTER$]", ""); } if (status != -1 && status <= 3 && status >= 0) { sql = sql.replace("[$STATUS_FILTER$]", " AND STATUS = ?"); params.add(status); } else { sql = sql.replace("[$STATUS_FILTER$]", ""); } if (datalevel != -1 && datalevel <= 5 && datalevel >= 1) { String node = "NODE_" + datalevel; sql = sql.replace("[$NODE_FILTER$]", " AND " + node + " = ?"); params.add(dataCodeParent); } else { sql = sql.replace("[$NODE_FILTER$]", ""); } SQLQuery query = session.createSQLQuery(sql); query.addEntity("DictData", DictDataImpl.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<DictData>) QueryUtil.list(query, getDialect(), startIndex, endIndex); } public int countByCustomCondition(String dataCode, String collectionName,String dataCodeParent, int datalevel, Date validatedFrom, Date validatedTo, int status, ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(COUNT_BY_CUSTOMCONDITION); sql = sql.replace("[$COMPANY_FILTER$]", " AND COMPANYID = ?"); params.add(serviceContext.getCompanyId()); if (dataCode != null && !"".equals(dataCode)) { sql = sql.replace("[$DATACODE_FILTER$]", " AND (LOWER(DATACODE) LIKE ? OR LOWER(TITLE) LIKE ?)"); params.add("%" + dataCode.toLowerCase() + "%"); params.add("%" + dataCode.toLowerCase() + "%"); } else { sql = sql.replace("[$DATACODE_FILTER$]", ""); } if (collectionName != null && !"".equals(collectionName)) { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", " AND COLLECTIONNAME = ?"); params.add(collectionName); } else { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", ""); } DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); if (validatedFrom != null) { sql = sql.replace("[$VALIDATEDFROM_FILTER$]", " AND VALIDATEDFROM >= ?"); params.add(df.format(validatedFrom)); } else { sql = sql.replace("[$VALIDATEDFROM_FILTER$]", ""); } if (validatedTo != null) { sql = sql.replace("[$VALIDATEDTO_FILTER$]", " AND VALIDATEDTO <= ?"); params.add(df.format(validatedTo)); } else { sql = sql.replace("[$VALIDATEDTO_FILTER$]", ""); } if (status != -1 && status <= 3 && status >= 0) { sql = sql.replace("[$STATUS_FILTER$]", " AND STATUS = ?"); params.add(status); } else { sql = sql.replace("[$STATUS_FILTER$]", ""); } if (datalevel != -1 && datalevel <= 5 && datalevel >= 1) { String node = "NODE_" + datalevel; sql = sql.replace("[$NODE_FILTER$]", " AND " + node + " = ?"); params.add(dataCodeParent); } else { sql = sql.replace("[$NODE_FILTER$]", ""); } 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<DictData> findByGroupCustomCondition(String dataCode, String collectionName,String dataCodeParent, int datalevel, Date validatedFrom, Date validatedTo, int status, ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(FIND_BY_CUSTOMCONDITION); sql = sql.replace("[$COMPANY_FILTER$]", " AND GROUPID = ?"); params.add(serviceContext.getScopeGroupId()); if (dataCode != null && !"".equals(dataCode)) { sql = sql.replace("[$DATACODE_FILTER$]", " AND (LOWER(DATACODE) LIKE ? OR LOWER(TITLE) LIKE ?)"); params.add("%" + dataCode.toLowerCase() + "%"); params.add("%" + dataCode.toLowerCase() + "%"); } else { sql = sql.replace("[$DATACODE_FILTER$]", ""); } if (collectionName != null && !"".equals(collectionName)) { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", " AND COLLECTIONNAME = ?"); params.add(collectionName); } else { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", ""); } DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); if (validatedFrom != null) { sql = sql.replace("[$VALIDATEDFROM_FILTER$]", " AND VALIDATEDFROM >= ?"); params.add(df.format(validatedFrom)); } else { sql = sql.replace("[$VALIDATEDFROM_FILTER$]", ""); } if (validatedTo != null) { sql = sql.replace("[$VALIDATEDTO_FILTER$]", " AND VALIDATEDTO <= ?"); params.add(df.format(validatedTo)); } else { sql = sql.replace("[$VALIDATEDTO_FILTER$]", ""); } if (status != -1 && status <= 3 && status >= 0) { sql = sql.replace("[$STATUS_FILTER$]", " AND STATUS = ?"); params.add(status); } else { sql = sql.replace("[$STATUS_FILTER$]", ""); } if (datalevel != -1 && datalevel <= 5 && datalevel >= 1) { String node = "node_" + datalevel; sql = sql.replace("[$NODE_FILTER$]", " AND " + node + " = ?" ); params.add(dataCodeParent); } else { sql = sql.replace("[$NODE_FILTER$]", ""); } //System.out.println(""); //System.out.println(sql); //System.out.println(""); SQLQuery query = session.createSQLQuery(sql); query.addEntity("DictData", DictDataImpl.class); if (params != null && params.size() > 0) { for (int index = 0; index < params.size(); index++) { query.setString(index, String.valueOf(params.get(index))); } } if (query.list() != null){ return (List<DictData>) query.list(); } return new ArrayList<DictData>(); } public List<DictData> findByGroupCustomCondition(String dataCode, String collectionName,String dataCodeParent, int datalevel, Date validatedFrom, Date validatedTo, int status, int startIndex, int endIndex, ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(FIND_BY_CUSTOMCONDITION); sql = sql.replace("[$COMPANY_FILTER$]", " AND GROUPID = ?"); params.add(serviceContext.getScopeGroupId()); if (dataCode != null && !"".equals(dataCode)) { sql = sql.replace("[$DATACODE_FILTER$]", " AND (LOWER(DATACODE) LIKE ? OR LOWER(TITLE) LIKE ?)"); params.add("%" + dataCode.toLowerCase() + "%"); params.add("%" + dataCode.toLowerCase() + "%"); } else { sql = sql.replace("[$DATACODE_FILTER$]", ""); } if (collectionName != null && !"".equals(collectionName)) { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", " AND COLLECTIONNAME = ?"); params.add(collectionName); } else { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", ""); } DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); if (validatedFrom != null) { sql = sql.replace("[$VALIDATEDFROM_FILTER$]", " AND VALIDATEDFROM >= ?"); params.add(df.format(validatedFrom)); } else { sql = sql.replace("[$VALIDATEDFROM_FILTER$]", ""); } if (validatedTo != null) { sql = sql.replace("[$VALIDATEDTO_FILTER$]", " AND VALIDATEDTO <= ?"); params.add(df.format(validatedTo)); } else { sql = sql.replace("[$VALIDATEDTO_FILTER$]", ""); } if (status != -1 && status <= 3 && status >= 0) { sql = sql.replace("[$STATUS_FILTER$]", " AND STATUS = ?"); params.add(status); } else { sql = sql.replace("[$STATUS_FILTER$]", ""); } if (datalevel != -1 && datalevel <= 5 && datalevel >= 1) { String node = "NODE_" + datalevel; sql = sql.replace("[$NODE_FILTER$]", " AND " + node + " = ?"); params.add(dataCodeParent); } else { sql = sql.replace("[$NODE_FILTER$]", ""); } SQLQuery query = session.createSQLQuery(sql); query.addEntity("DictData", DictDataImpl.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<DictData>) QueryUtil.list(query, getDialect(), startIndex, endIndex); } public int countByGroupCustomCondition(String dataCode, String collectionName,String dataCodeParent, int datalevel, Date validatedFrom, Date validatedTo, int status, ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(COUNT_BY_CUSTOMCONDITION); sql = sql.replace("[$COMPANY_FILTER$]", " AND GROUPID = ?"); params.add(serviceContext.getScopeGroupId()); if (dataCode != null && !"".equals(dataCode)) { sql = sql.replace("[$DATACODE_FILTER$]", " AND (LOWER(DATACODE) LIKE ? OR LOWER(TITLE) LIKE ?)"); params.add("%" + dataCode.toLowerCase() + "%"); params.add("%" + dataCode.toLowerCase() + "%"); } else { sql = sql.replace("[$DATACODE_FILTER$]", ""); } if (collectionName != null && !"".equals(collectionName)) { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", " AND COLLECTIONNAME = ?"); params.add(collectionName); } else { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", ""); } DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); if (validatedFrom != null) { sql = sql.replace("[$VALIDATEDFROM_FILTER$]", " AND VALIDATEDFROM >= ?"); params.add(df.format(validatedFrom)); } else { sql = sql.replace("[$VALIDATEDFROM_FILTER$]", ""); } if (validatedTo != null) { sql = sql.replace("[$VALIDATEDTO_FILTER$]", " AND VALIDATEDTO <= ?"); params.add(df.format(validatedTo)); } else { sql = sql.replace("[$VALIDATEDTO_FILTER$]", ""); } if (status != -1 && status <= 3 && status >= 0) { sql = sql.replace("[$STATUS_FILTER$]", " AND STATUS = ?"); params.add(status); } else { sql = sql.replace("[$STATUS_FILTER$]", ""); } if (datalevel != -1 && datalevel <= 5 && datalevel >= 1) { String node = "NODE_" + datalevel; sql = sql.replace("[$NODE_FILTER$]", " AND " + node + " = ?"); params.add(dataCodeParent); } else { sql = sql.replace("[$NODE_FILTER$]", ""); } 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<DictData> findByDataLevelDataCode(String dataCode, String collectionName,String dataCodeParent, int datalevel, ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(FIND_BY_DATALEVELDATACODE); sql = sql.replace("[$COMPANY_FILTER$]", " AND COMPANYID = ?"); params.add(serviceContext.getCompanyId()); if (dataCode != null && !"".equals(dataCode)) { sql = sql.replace("[$DATACODE_FILTER$]", " AND (LOWER(DATACODE) LIKE ? OR LOWER(TITLE) LIKE ?)"); params.add("%" + dataCode.toLowerCase() + "%"); params.add("%" + dataCode.toLowerCase() + "%"); } else { sql = sql.replace("[$DATACODE_FILTER$]", ""); } if (collectionName != null && !"".equals(collectionName)) { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", " AND COLLECTIONNAME = ?"); params.add(collectionName); } else { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", ""); } if (datalevel != -1 && datalevel <= 5 && datalevel >= 1) { sql = sql.replace("[$DATALEVEL_FILTER$]", " AND DATALEVEL = ?"); params.add(datalevel); } else { sql = sql.replace("[$DATALEVEL_FILTER$]", ""); } if (datalevel != -1 && datalevel <= 5 && datalevel >= 2) { String node = "NODE_" + (datalevel - 1); sql = sql.replace("[$NODE_FILTER$]", " AND " + node + " = ?"); params.add(dataCodeParent); } else { sql = sql.replace("[$NODE_FILTER$]", ""); } //System.out.println(" dddddddddddddddd " + sql + " " + datalevel + " " + dataCodeParent + " " + serviceContext.getCompanyId() + " " + collectionName); SQLQuery query = session.createSQLQuery(sql); query.addEntity("DictData", DictDataImpl.class); if (params != null && params.size() > 0) { for (int index = 0; index < params.size(); index++) { query.setString(index, String.valueOf(params.get(index))); } } if (query.list() != null){ //System.out.println("ssssssss" + query.list().size()); return (List<DictData>) query.list(); } return new ArrayList<DictData>(); //return (List<DictData>) query.list(); } @SuppressWarnings("unchecked") public List<DictData> findByDataLevelDataCode(String dataCode, String collectionName,String dataCodeParent, int datalevel,int startIndex, int endIndex, ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(FIND_BY_DATALEVELDATACODE); sql = sql.replace("[$COMPANY_FILTER$]", " AND COMPANYID = ?"); params.add(serviceContext.getCompanyId()); if (dataCode != null && !"".equals(dataCode)) { sql = sql.replace("[$DATACODE_FILTER$]", " AND (LOWER(DATACODE) LIKE ? OR LOWER(TITLE) LIKE ?)"); params.add("%" + dataCode.toLowerCase() + "%"); params.add("%" + dataCode.toLowerCase() + "%"); } else { sql = sql.replace("[$DATACODE_FILTER$]", ""); } if (collectionName != null && !"".equals(collectionName)) { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", " AND COLLECTIONNAME = ?"); params.add(collectionName); } else { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", ""); } if (datalevel != -1 && datalevel <= 5 && datalevel >= 1) { sql = sql.replace("[$DATALEVEL_FILTER$]", " AND DATALEVEL = ?"); params.add(datalevel); } else { sql = sql.replace("[$DATALEVEL_FILTER$]", ""); } if (datalevel != -1 && datalevel <= 5 && datalevel >= 2) { String node = "NODE_" + (datalevel - 1); sql = sql.replace("[$NODE_FILTER$]", " AND " + node + " = ?"); params.add(dataCodeParent); } else { sql = sql.replace("[$NODE_FILTER$]", ""); } //System.out.println(sql); SQLQuery query = session.createSQLQuery(sql); query.addEntity("DictData", DictDataImpl.class); if (params != null && params.size() > 0) { for (int index = 0; index < params.size(); index++) { query.setString(index, String.valueOf(params.get(index))); } } if (query.list() != null){ return (List<DictData>) QueryUtil.list(query, getDialect(), startIndex, endIndex); } return new ArrayList<DictData>(); } public int countByDataLevelDataCode(String dataCode, String collectionName,String dataCodeParent, int datalevel,ServiceContext serviceContext) { List<Object> params = new ArrayList<Object>(); Session session = openSession(); String sql = CustomSQLUtil.get(COUNT_BY_DATALEVELDATACODE); sql = sql.replace("[$COMPANY_FILTER$]", " AND COMPANYID = ?"); params.add(serviceContext.getCompanyId()); if (dataCode != null && !"".equals(dataCode)) { sql = sql.replace("[$DATACODE_FILTER$]", " AND (LOWER(DATACODE) LIKE ? OR LOWER(TITLE) LIKE ?)"); params.add("%" + dataCode.toLowerCase() + "%"); params.add("%" + dataCode.toLowerCase() + "%"); } else { sql = sql.replace("[$DATACODE_FILTER$]", ""); } if (collectionName != null && !"".equals(collectionName)) { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", " AND COLLECTIONNAME = ?"); params.add(collectionName); } else { sql = sql.replace("[$COLLECTIONNAME_FILTER$]", ""); } if (datalevel != -1 && datalevel <= 5 && datalevel >= 1) { sql = sql.replace("[$DATALEVEL_FILTER$]", " AND DATALEVEL = ?"); params.add(datalevel); } else { sql = sql.replace("[$DATALEVEL_FILTER$]", ""); } if (datalevel != -1 && datalevel <= 5 && datalevel >= 2) { String node = "NODE_" + (datalevel - 1); sql = sql.replace("[$NODE_FILTER$]", " AND " + node + " = ?"); params.add(dataCodeParent); } else { sql = sql.replace("[$NODE_FILTER$]", ""); } 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; } }