Java tutorial
package com.zdtx.ifms.common.service; import com.zdtx.ifms.common.dao.BaseDao; import com.zdtx.ifms.common.utils.KeyAndValue; import com.zdtx.ifms.common.utils.Struts2Util; import com.zdtx.ifms.common.utils.Utils; import com.zdtx.ifms.specific.model.authority.Feat; import com.zdtx.ifms.specific.model.authority.User; import org.hibernate.Criteria; import org.hibernate.SQLQuery; import org.hibernate.criterion.DetachedCriteria; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.InputStream; import java.util.List; import java.util.Map; /** * ??? - ????? * */ /** * * ? * @author Leon Liu * @since 2013-2-25 9:22:40 */ @Service @Transactional public class BaseManager { @Autowired private BaseDao baseDao; /** * ? * @param <E> * @param entity */ public <E> void save(E entity) { baseDao.save(entity); } /** * ID * @param <E> * @param clazz * @param id */ public <E> void delete(Class<E> clazz, Long id) { baseDao.delete(clazz, id); } /** * * @param <E> * @param entity */ public <E> void delete(E entity) { baseDao.delete(entity); } /** * ID? * @param <E> * @param clazz * @param id * @return */ public <E> E get(Class<E> clazz, Long id) { return (E) baseDao.get(clazz, id); } /** * ? * @param <E> * @param clazz * @return */ public <E> List<E> getAll(Class<E> clazz) { return baseDao.getAll(clazz); } /** * ?? * * @param <E> * @param clazz * @param orderColumn * @param orderAsc * @return */ public <E> List<E> getAll(Class<E> clazz, String orderColumn, String orderAsc) { return baseDao.getAll(clazz, orderColumn, orderAsc); } /** * ???(?FEAT_ID = 0?) * @param roleID ??ID * @return true:??; false:??. */ public boolean isAllFeats(Long roleID) { if (Utils.isEmpty(roleID)) { return false; } String sql = "SELECT 1 FROM T_CORE_ROLE_FEAT WHERE FEAT_ID = 0 AND ROLE_ID = " + roleID; List<?> countList = baseDao.getSession().createSQLQuery(sql).list(); int countNum = 0; if (countList != null) { countNum = countList.size(); } return countNum > 0; } /** * ????(inlevel=0???) * @param userID ID * @return true:???; false:???. */ public boolean isAllData(Long userID) { if (Utils.isEmpty(userID)) { return false; } User u = baseDao.get(User.class, userID); if (u != null) { if ((u.getUserRole().getAflag() != null) && "0".equals(u.getUserRole().getAflag())) { return true; } else { return false; } } else { return false; } } /** * get companys by authority * @return List<KeyAndValue> */ public List<KeyAndValue> getComByAuthority(Long userID) { if (Utils.isEmpty(userID)) { return null; } User u = baseDao.get(User.class, userID); if (u.getUserRole().getAflag().equals("0")) { String sql = "SELECT A.ORG_ID AS KEY, A.ORGNAME AS VALUE" + " FROM T_CORE_ORG A" + " WHERE A.INLEVEL = 1" + " AND A.ISDELETE = 'F'" + " ORDER BY A.ORGNAME ASC"; return baseDao.getKeyAndValueBySQL(sql); } else { String sql = "SELECT A.ORG_ID AS KEY, A.ORGNAME AS VALUE" + " FROM T_CORE_ORG A, T_CORE_USER_DATA B" + " WHERE A.INLEVEL = 1" + " AND A.ISDELETE = 'F'" + " AND A.ORG_ID = B.ORG_ID AND B.USERID = " + userID + " ORDER BY A.ORGNAME ASC"; return baseDao.getKeyAndValueBySQL(sql); } } /** * get departments by authority * @return List<KeyAndValue> */ public List<KeyAndValue> getDepartByAuthority(Long userID) { if (Utils.isEmpty(userID)) { return null; } User u = baseDao.get(User.class, userID); if (u.getUserRole().getAflag().equals("0")) { String sql = "SELECT A.ORG_ID AS KEY, A.ORGNAME AS VALUE" + " FROM T_CORE_ORG A" + " WHERE A.INLEVEL = 2" + " AND A.ISDELETE = 'F'" + " ORDER BY A.ORGNAME ASC"; return baseDao.getKeyAndValueBySQL(sql); } else { String sql = "SELECT A.ORG_ID AS KEY, A.ORGNAME AS VALUE" + " FROM T_CORE_ORG A, T_CORE_USER_DATA B" + " WHERE A.INLEVEL = 2" + " AND A.ISDELETE = 'F'" + " AND A.ORG_ID = B.ORG_ID AND B.USERID = " + userID + " ORDER BY A.ORGNAME ASC"; return baseDao.getKeyAndValueBySQL(sql); } } /** * get fleets by authority * @return List<KeyAndValue> */ public List<KeyAndValue> getFleetByAuthority(Long userID) { if (Utils.isEmpty(userID)) { return null; } User u = baseDao.get(User.class, userID); if (u.getUserRole().getAflag().equals("0")) { String sql = "SELECT A.ORG_ID AS KEY, A.ORGNAME AS VALUE" + " FROM T_CORE_ORG A WHERE A.INLEVEL = 3 and A.ISDELETE='F' ORDER BY A.ORGNAME ASC"; return baseDao.getKeyAndValueBySQL(sql); } else { String sql = "SELECT A.ORG_ID AS KEY, A.ORGNAME AS VALUE" + " FROM T_CORE_ORG A WHERE A.INLEVEL = 3 AND A.ISDELETE = 'F' AND A.PARENTID IN (SELECT B.ORG_ID FROM T_CORE_ORG B, T_CORE_USER_DATA C" + " WHERE B.INLEVEL = 2 AND B.ISDELETE = 'F'" + " AND B.ORG_ID = C.ORG_ID AND C.USERID = " + userID + " ) ORDER BY A.ORGNAME ASC"; return baseDao.getKeyAndValueBySQL(sql); } } /** * get vehicle name by authority * @return List<KeyAndValue> */ public List<KeyAndValue> getVehicleNameByAuthority(Long userID) { if (Utils.isEmpty(userID)) { return null; } String sql = ""; User user = baseDao.get(User.class, userID); if (user.getUserRole().getAflag().equals("0")) { //super admin sql = "SELECT A.VEHICLEID AS KEY, A.VEHICLENAME AS VALUE" + " FROM T_CORE_VEHICLE A" + " WHERE A.ISDELETE = 'F'" + " ORDER BY A.VEHICLENAME ASC"; } else { sql = "SELECT A.VEHICLEID AS KEY, A.VEHICLENAME AS VALUE" + " FROM T_CORE_VEHICLE A, T_CORE_ORG B, T_CORE_USER_DATA C" + " WHERE A.ISDELETE = 'F'" + " AND A.FLEETID = B.ORG_ID" + " AND B.PARENTID = C.ORG_ID" + " AND C.USERID = " + userID + " ORDER BY A.VEHICLENAME ASC"; } return baseDao.getKeyAndValueBySQL(sql); } /** * get vehicle's license plate number by authority * @return List<KeyAndValue> */ public List<KeyAndValue> getVehicleLicenseByAuthority(Long userID) { if (Utils.isEmpty(userID)) { return null; } String sql = ""; User user = baseDao.get(User.class, userID); if (user.getUserRole().getAflag().equals("0")) { //super admin sql = "SELECT A.VEHICLEID AS KEY, A.LICENSEPLATE AS VALUE" + " FROM T_CORE_VEHICLE A" + " WHERE A.ISDELETE = 'F'" + " ORDER BY A.LICENSEPLATE ASC"; } else { sql = "SELECT A.VEHICLEID AS KEY, A.LICENSEPLATE AS VALUE" + " FROM T_CORE_VEHICLE A, T_CORE_ORG B, T_CORE_USER_DATA C" + " WHERE A.ISDELETE = 'F'" + " AND A.FLEETID = B.ORG_ID" + " AND B.PARENTID = C.ORG_ID" + " AND C.USERID = " + userID + " ORDER BY A.LICENSEPLATE ASC"; } return baseDao.getKeyAndValueBySQL(sql); } /** * get drivers by authority * @param userID operater's ID * @return List<KeyAndValue> */ public List<KeyAndValue> getDriverByAuthority(Long userID) { if (Utils.isEmpty(userID)) { return null; } String sql = ""; User user = baseDao.get(User.class, userID); if (user.getUserRole().getAflag().equals("0")) { //super admin sql = "SELECT A.DRIVERID AS KEY, A.DRIVERNAME AS VALUE" + " FROM T_CORE_DRIVER A" + " WHERE A.ISDELETE = 'F'" + " ORDER BY A.DRIVERNAME ASC"; } else { sql = "SELECT A.DRIVERID AS KEY, A.DRIVERNAME AS VALUE" + " FROM T_CORE_DRIVER A, T_CORE_USER_DATA B" + " WHERE A.DEPARTMENTID = B.ORG_ID" + " AND A.ISDELETE = 'F'" + " AND B.USERID = " + userID + " ORDER BY A.DRIVERNAME ASC"; } return baseDao.getKeyAndValueBySQL(sql); } /** * get fleets by department's ID * @return List<KeyAndValue> */ public List<KeyAndValue> getFleetByDepartment(Long departmentID) { if (Utils.isEmpty(departmentID)) { return null; } String sql = "SELECT A.ORG_ID AS KEY, A.ORGNAME AS VALUE" + " FROM T_CORE_ORG A WHERE A.PARENTID =" + departmentID + " ORDER BY A.ORGNAME ASC"; return baseDao.getKeyAndValueBySQL(sql); } /** * get vehicle name by fleet * @param fleetID * @return List<KeyAndValue> */ public List<KeyAndValue> getVehicleNameByFleet(Long fleetID) { if (Utils.isEmpty(fleetID)) { return null; } String sql = "SELECT VEHICLEID AS KEY, VEHICLENAME AS VALUE" + " FROM T_CORE_VEHICLE" + " WHERE ISDELETE = 'F'" + " AND FLEETID = " + fleetID + " ORDER BY VEHICLENAME ASC"; return baseDao.getKeyAndValueBySQL(sql); } /** * get vehicle's license plate number by fleet * @param fleetID * @return List<KeyAndValue> */ public List<KeyAndValue> getVehicleLicenseByFleet(Long fleetID) { if (Utils.isEmpty(fleetID)) { return null; } String sql = "SELECT VEHICLEID AS KEY, LICENSEPLATE AS VALUE" + " FROM T_CORE_VEHICLE" + " WHERE ISDELETE = 'F'" + " AND FLEETID = " + fleetID + " ORDER BY LICENSEPLATE ASC"; return baseDao.getKeyAndValueBySQL(sql); } /** * get drivers by department * @param departID * @param userID operater's ID * @return List<KeyAndValue> */ public List<KeyAndValue> getDriverByDepart(Long departID) { if (Utils.isEmpty(departID)) { return null; } String sql = "SELECT DRIVERID AS KEY, DRIVERNAME AS VALUE" + " FROM T_CORE_DRIVER" + " WHERE ISDELETE = 'F'" + " AND DEPARTMENTID = " + departID + " ORDER BY DRIVERNAME ASC"; return baseDao.getKeyAndValueBySQL(sql); } /** * get vehcle's lisence plate number by filter text (top 10) * @param text filter context * @return List<KeyAndValue> */ public List<KeyAndValue> getVehicleByFilter(String text) { String sql = "SELECT DISTINCT A.VEHICLEID AS KEY, A.LICENSEPLATE AS VALUE FROM T_CORE_VEHICLE A WHERE A.ISDELETE = 'F'" + " AND A.LICENSEPLATE LIKE '%" + text + "%' AND ROWNUM < 11"; return baseDao.getKeyAndValueBySQL(sql); } /** * get feat tree by authority(used by left feat tree) * @param roleID operater's role ID * @return List<Feat> */ @SuppressWarnings("unchecked") public List<Feat> getRoleTree(Long roleID) { String sql = ""; if (isAllFeats(roleID)) { //true?? sql = "SELECT * FROM T_CORE_FEAT WHERE ISDELETE = 'F' ORDER BY TO_NUMBER(FATHERID), SORT"; } else { sql = "SELECT * FROM T_CORE_FEAT A, T_CORE_ROLE_FEAT B WHERE A.ISDELETE = 'F' AND A.FEAT_ID = B.FEAT_ID AND B.ROLE_ID = " + roleID + " ORDER BY TO_NUMBER(A.FATHERID), A.SORT"; } SQLQuery query = baseDao.getSession().createSQLQuery(sql).addEntity(Feat.class); return (List<Feat>) query.list(); } /** * get vehicle name by authority * @return List<KeyAndValue> */ public List<String> getVehicleNameOnlyByAuthority() { String sql = "SELECT A.VEHICLENAME " + "FROM T_CORE_VEHICLE A " + "WHERE A.ISDELETE = 'F' ORDER BY A.VEHICLENAME ASC"; return baseDao.getStringBySQL(sql); } /*** * get vehicle's DeviceName * @return */ public List<KeyAndValue> getVehicleAndDeviceNameByAuthority() { // String sql = // "SELECT DISTINCT A.VEHICLENAME AS KEY, b.devicekey AS VALUE " // +" FROM T_CORE_VEHICLE A ,t_core_device b " // +" WHERE A.ISDELETE = 'F' and a.deviceid=b.deviceid(+) ORDER BY A.VEHICLENAME ASC "; /*** * ? */ // String sql = "select a.vehiclename as key, b.o_videoname as value " // + " from T_CORE_VEHICLE a, t_dm_videoid b " // + " where a.vehiclename = b.o_busname(+) order by a.vehiclename"; /*** * id */ String sql = "select a.vehiclename as key, a.VEHICLEID as value from T_CORE_VEHICLE a "; return baseDao.getKeyAndValueBySQL(sql); } /*** * get vehicle's DeviceName (and police's name) Liu jun 2014-6-20 13:47:35 * @return */ public List<KeyAndValue> getVehicleAndDeviceNameByAuthority2(Long userid) { String sql2 = "SELECT A.ORG_ID AS KEY " + " FROM T_CORE_ORG A WHERE A.ISDELETE = 'F' AND A.PARENTID IN (SELECT B.ORG_ID FROM T_CORE_ORG B, T_CORE_USER_DATA C" + " WHERE B.INLEVEL = 2" + " AND B.ISDELETE = 'F'" + " AND B.ORG_ID = C.ORG_ID AND C.USERID = " + userid + " ) "; // String sql = // "SELECT DISTINCT A.VEHICLENAME AS KEY, b.devicekey AS VALUE " // +" FROM T_CORE_VEHICLE A ,t_core_device b " // +" WHERE A.ISDELETE = 'F' and a.deviceid=b.deviceid(+) ORDER BY A.VEHICLENAME ASC "; /*** * ? */ // String sql = "select a.vehiclename as key, b.o_videoname as value " // + " from T_CORE_VEHICLE a, t_dm_videoid b " // + " where a.vehiclename = b.o_busname(+) order by a.vehiclename"; /*** * id */ // String sql = "select d.vehiclename as key, d.VEHICLEID as value from T_CORE_VEHICLE d where d.ISDELETE='F' and d.FLEETID in ( "+sql2+" )"; String sql = "SELECT D.VEHICLENAME AS KEY, D.VEHICLEID AS VALUE " + "FROM T_CORE_VEHICLE D WHERE D.ISDELETE='F' AND D.FLEETID IN (" + sql2 + ") " + "UNION (SELECT POLICENAME AS KEY, DEVICEID AS VALUE FROM T_CORE_POLICE WHERE FLEETID IN (" + sql2 + ") AND ISDELETE = 'F')"; return baseDao.getKeyAndValueBySQL(sql); } /** * public do print pdf interface */ public void doPrintPdf(final String title, final Boolean hasSeq, final String headerArray, final String fieldsArray, final Map<String, String> convert, final Integer[] colWidth, final Integer pageSize, final String... paper) { DetachedCriteria criteria = (DetachedCriteria) Struts2Util.getSession().getAttribute("criteria_export"); Criteria criteria2 = criteria.getExecutableCriteria(baseDao.getSession()); criteria2.setFirstResult(0); criteria2.setMaxResults(1000); Utils.printPDF(title, hasSeq, criteria2.list(), headerArray, fieldsArray, convert, colWidth, pageSize, paper); } /** * public do export excel interface */ public InputStream doExportExcel(final String title, final String headerArray, final String fieldsArray, final Map<String, String> convert) { DetachedCriteria detachedCriteria = (DetachedCriteria) Struts2Util.getSession() .getAttribute("criteria_export"); Criteria criteria = detachedCriteria.getExecutableCriteria(baseDao.getSession()); criteria.setFirstResult(0); criteria.setMaxResults(1000); return Utils.exportExcel(criteria.list(), title, headerArray, fieldsArray, convert); } /*** * idname * @param typeid * @return */ public List<KeyAndValue> getVehByType(Long typeid) { String sql = "select t.VEHICLEID as key ,t.VEHICLENAME as value from V_CORE_VEHICLE t where t.TYPEID=" + typeid; return baseDao.getKeyAndValueBySQL(sql); } }