package com.vci.server.portal.service; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.hibernate.SQLQuery; import org.hibernate.Session; import com.vci.server.base.persistence.dao.BaseService; import com.vci.server.base.persistence.dao.HibernateSessionFactory; import com.vci.server.portal.dao.impl.PLTabPageEntityDaoImpl; import com.vci.server.portal.entity.PLTabPageEntity; public class PLTabPageEntityService extends BaseService{ private static PLTabPageEntityService instance = null; private PLTabPageEntityService(){ } public static PLTabPageEntityService getInstance(){ if(instance == null){ instance = new PLTabPageEntityService(); } return instance; } /** * 新增对象 * @param obj * @throws Throwable */ public boolean savePLTabPageEntity(PLTabPageEntity obj) throws Throwable { try { PLTabPageEntityDaoImpl daoImpl = new PLTabPageEntityDaoImpl(); daoImpl.saveOrUpdate(obj); return true; }catch(Throwable e){ throw e; } } /** * 批量保持页签 * @param plTabPages * @return * @throws Throwable */ public boolean batchSavePLTabPageEntity(PLTabPageEntity[] objs) throws Throwable { try { PLTabPageEntityDaoImpl daoImpl = new PLTabPageEntityDaoImpl(); List list = new ArrayList(); int batchNum = 200; for (int i = 0; i < objs.length; i++) { list.add(objs[i]); if ((i + 1) % batchNum == 0) { daoImpl.saveOrUpdateAll(list); list = new ArrayList(); } } daoImpl.saveOrUpdateAll(list); return true; }catch(Throwable e){ throw e; } } /** * 更新对象 * @param obj * @return * @throws Throwable */ public boolean updatePLTabPageEntity(PLTabPageEntity obj) throws Throwable{ try { PLTabPageEntityDaoImpl daoImpl = new PLTabPageEntityDaoImpl(); PLTabPageEntity objGet = daoImpl.getById(obj.getId()); if (objGet == null) { daoImpl.saveOrUpdate(obj); } else { // objGet.setId(obj.getId()); objGet.setPlCode(obj.getPlCode()); objGet.setPlName(obj.getPlName()); objGet.setPlIsOpen(obj.getPlIsOpen()); objGet.setPlLabel(obj.getPlLabel()); objGet.setPlDesc(obj.getPlDesc()); objGet.setPlSeq(obj.getPlSeq()); objGet.setPlContextOId(obj.getPlContextOId()); // objGet.setPlCreateTime(obj.getPlCreateTime()); objGet.setPlCreateUser(obj.getPlCreateUser()); objGet.setPlModifyTime(obj.getPlModifyTime()); objGet.setPlModifyUser(obj.getPlModifyUser()); objGet.setPlLicensOrs(obj.getPlLicensOrs()); objGet.setPlOpenExpression(obj.getPlOpenExpression()); objGet.setPlUIParser(obj.getPlUIParser()); objGet.setPlExtAttr(obj.getPlExtAttr()); daoImpl.saveOrUpdate(objGet); } return true; }catch(Throwable e){ throw e; } } /** * 删除对象 * @param obj * @return * @throws Throwable */ public boolean deletePLTabPageEntity(PLTabPageEntity obj) throws Throwable{ try { PLTabPageEntityDaoImpl daoImpl = new PLTabPageEntityDaoImpl(); daoImpl.delete(obj); return true; }catch(Throwable e){ throw e; } } /** * 根据Id删除指定的对象 * @param id * @return * @throws Throwable */ public boolean deletePLTabPageEntityById(String id) throws Throwable{ try { PLTabPageEntityDaoImpl daoImpl = new PLTabPageEntityDaoImpl(); PLTabPageEntity obj = daoImpl.getById(id); if (obj != null) { daoImpl.delete(obj); } return true; }catch(Throwable e){ throw e; } } /** * 根据ID获取指定的PLTabPage * @param plOId * @return * @throws Throwable */ public PLTabPageEntity getPLTabPageEntityById(String plOId) throws Throwable { try { PLTabPageEntityDaoImpl daoImpl = new PLTabPageEntityDaoImpl(); return daoImpl.getById(plOId); }catch(Throwable e){ throw e; } } /** * 根据plPageDefinationOId获取PLPageLayoutDefinationArray * @param plPageDefinationOId * @return * @throws Throwable */ public List getPLTabPageEntitysByPageDefinationOId( String plPageDefinationOId) throws Throwable { try { PLTabPageEntityDaoImpl daoImpl = new PLTabPageEntityDaoImpl(); List list = daoImpl.findEntities("from PLTabPageEntity where plPageDefinationOId = '" + plPageDefinationOId + "'"); return list; }catch(Throwable e){ throw e; } } /** * 根据type,pageLayoutName获取指定的PLTabPage * @param type * @param code * @return * @throws Throwable */ public List getPLTabPageEntitysByTypeANDCode( String type, String code) throws Throwable { try { Session session = HibernateSessionFactory.getSession(); SQLQuery sql = session.createSQLQuery("select * from PLTABPAGE t join PLUILAYOUT p on t.plPageDefinationOId " + "= p.plOId where p.plRelatedType = ? and p.plCode = ?"); sql.setString(0, type); sql.setString(1, code); List list = sql.list(); List entityList = new ArrayList(); for(int i = 0; i < list.size(); i++){ PLTabPageEntity entity = new PLTabPageEntity(); Object[] objs = (Object[]) list.get(i); entity.setPlOId((String)objs[0]); entity.setPlCode((String)objs[1]); entity.setPlName((String)objs[2]); entity.setPlIsOpen(((BigDecimal)objs[3]).shortValue()); entity.setPlLabel((String)objs[4]); entity.setPlDesc((String)objs[5]); entity.setPlSeq(((BigDecimal)objs[6]).shortValue()); entity.setPlContextOId((String)objs[7]); entity.setPlCreateTime((Date)objs[8]); entity.setPlCreateUser((String)objs[9]); entity.setPlModifyTime((Date)objs[10]); entity.setPlModifyUser((String)objs[11]); entity.setPlLicensOrs((String)objs[12]); entity.setPlOpenExpression((String)objs[13]); entityList.add(entity); } return entityList; }catch(Throwable e){ throw e; } } /** * 根据上下文ID和区域的类型,按顺序获取当前tab页 * @param contextId * @param type * @return * @throws Throwable */ public List getTabPageByContextIdAndType(String contextId, int type) throws Throwable { try { PLTabPageEntityDaoImpl daoImpl = new PLTabPageEntityDaoImpl(); List list = daoImpl.findEntities("from PLTabPageEntity where plPageDefinationOId = '" + contextId + "' and areaType = " + type + " order by plSeq"); return list; }catch(Throwable e){ throw e; } } /** * 获取全量结果集,缓存使用 * @auther liu,20150727 * @return * @throws Throwable */ public List getAllTabPages() throws Throwable { try { PLTabPageEntityDaoImpl daoImpl = new PLTabPageEntityDaoImpl(); List list = daoImpl.findEntities("from PLTabPageEntity order by plSeq"); return list; }catch(Throwable e){ throw e; } } }