|  | @ -0,0 +1,480 @@
 | 
												
													
														
															|  | 
 |  | package com.yihu.ehr.framework.common.dao;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | import com.fasterxml.jackson.databind.JsonNode;
 | 
												
													
														
															|  | 
 |  | import com.fasterxml.jackson.databind.ObjectMapper;
 | 
												
													
														
															|  | 
 |  | import com.fasterxml.jackson.databind.node.JsonNodeType;
 | 
												
													
														
															|  | 
 |  | import com.yihu.ehr.framework.model.DataGridResult;
 | 
												
													
														
															|  | 
 |  | import com.yihu.ehr.framework.util.log.Logger;
 | 
												
													
														
															|  | 
 |  | import com.yihu.ehr.framework.util.log.LoggerFactory;
 | 
												
													
														
															|  | 
 |  | import com.yihu.ehr.framework.util.operator.CollectionUtil;
 | 
												
													
														
															|  | 
 |  | import com.yihu.ehr.framework.util.operator.NumberUtil;
 | 
												
													
														
															|  | 
 |  | import com.yihu.ehr.framework.util.operator.StringUtil;
 | 
												
													
														
															|  | 
 |  | import com.yihu.ehr.framework.util.sql.SqlCreator;
 | 
												
													
														
															|  | 
 |  | import org.hibernate.Criteria;
 | 
												
													
														
															|  | 
 |  | import org.hibernate.Query;
 | 
												
													
														
															|  | 
 |  | import org.hibernate.SQLQuery;
 | 
												
													
														
															|  | 
 |  | import org.hibernate.Session;
 | 
												
													
														
															|  | 
 |  | import org.hibernate.criterion.Order;
 | 
												
													
														
															|  | 
 |  | import org.hibernate.criterion.Restrictions;
 | 
												
													
														
															|  | 
 |  | import org.hibernate.jdbc.Work;
 | 
												
													
														
															|  | 
 |  | import org.springframework.jdbc.core.BeanPropertyRowMapper;
 | 
												
													
														
															|  | 
 |  | import org.springframework.jdbc.core.JdbcTemplate;
 | 
												
													
														
															|  | 
 |  | import org.springframework.jdbc.core.RowMapper;
 | 
												
													
														
															|  | 
 |  | import org.springframework.orm.hibernate4.HibernateTemplate;
 | 
												
													
														
															|  | 
 |  | import org.springframework.stereotype.Repository;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | import javax.annotation.Resource;
 | 
												
													
														
															|  | 
 |  | import javax.transaction.Transactional;
 | 
												
													
														
															|  | 
 |  | import java.io.IOException;
 | 
												
													
														
															|  | 
 |  | import java.io.Serializable;
 | 
												
													
														
															|  | 
 |  | import java.sql.Connection;
 | 
												
													
														
															|  | 
 |  | import java.sql.ResultSet;
 | 
												
													
														
															|  | 
 |  | import java.sql.SQLException;
 | 
												
													
														
															|  | 
 |  | import java.sql.Statement;
 | 
												
													
														
															|  | 
 |  | import java.util.Collection;
 | 
												
													
														
															|  | 
 |  | import java.util.Iterator;
 | 
												
													
														
															|  | 
 |  | import java.util.List;
 | 
												
													
														
															|  | 
 |  | import java.util.Map;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | /**
 | 
												
													
														
															|  | 
 |  |  * @author HZY
 | 
												
													
														
															|  | 
 |  |  * @vsrsion 1.0
 | 
												
													
														
															|  | 
 |  |  * Created at 2016/8/8.
 | 
												
													
														
															|  | 
 |  |  */
 | 
												
													
														
															|  | 
 |  | @Transactional
 | 
												
													
														
															|  | 
 |  | @Repository("sqlGeneralDAO")
 | 
												
													
														
															|  | 
 |  | public class SQLGeneralDAO implements XSQLGeneralDAO {
 | 
												
													
														
															|  | 
 |  |     static private final Logger logger = LoggerFactory.getLogger(SQLGeneralDAO.class);
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     @Resource(
 | 
												
													
														
															|  | 
 |  |             name = "jdbcTemplate"
 | 
												
													
														
															|  | 
 |  |     )
 | 
												
													
														
															|  | 
 |  |     protected JdbcTemplate jdbcTemplate;
 | 
												
													
														
															|  | 
 |  |     @Resource(
 | 
												
													
														
															|  | 
 |  |             name = "hibernateTemplate"
 | 
												
													
														
															|  | 
 |  |     )
 | 
												
													
														
															|  | 
 |  |     protected HibernateTemplate hibernateTemplate;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public SQLGeneralDAO() {
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public JdbcTemplate getJdbcTemplate() {
 | 
												
													
														
															|  | 
 |  |         return this.jdbcTemplate;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public HibernateTemplate getHibernateTemplate() {
 | 
												
													
														
															|  | 
 |  |         return this.hibernateTemplate;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public DataGridResult getDataGridResult(String hql, Integer page, Integer rows) {
 | 
												
													
														
															|  | 
 |  |         DataGridResult dataGridResult = new DataGridResult();
 | 
												
													
														
															|  | 
 |  |         Query query = this.hibernateTemplate.getSessionFactory().getCurrentSession().createQuery(hql);
 | 
												
													
														
															|  | 
 |  |         if(page != null && rows != null) {
 | 
												
													
														
															|  | 
 |  |             dataGridResult.setPageSize(rows.intValue());
 | 
												
													
														
															|  | 
 |  |             dataGridResult.setCurrPage(page.intValue());
 | 
												
													
														
															|  | 
 |  |             dataGridResult.setTotalCount(query.list().size());
 | 
												
													
														
															|  | 
 |  |             query.setMaxResults(rows.intValue());
 | 
												
													
														
															|  | 
 |  |             query.setFirstResult((page.intValue() - 1) * rows.intValue());
 | 
												
													
														
															|  | 
 |  |             dataGridResult.setDetailModelList(query.list());
 | 
												
													
														
															|  | 
 |  |         } else {
 | 
												
													
														
															|  | 
 |  |             List list = query.list();
 | 
												
													
														
															|  | 
 |  |             dataGridResult.setDetailModelList(list);
 | 
												
													
														
															|  | 
 |  |             dataGridResult.setTotalCount(list.size());
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         return dataGridResult;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public void beginTransaction() throws Exception {
 | 
												
													
														
															|  | 
 |  |         this.hibernateTemplate.getSessionFactory().getCurrentSession().getTransaction().begin();
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public void commitTransaction() throws Exception {
 | 
												
													
														
															|  | 
 |  |         this.hibernateTemplate.getSessionFactory().getCurrentSession().getTransaction().commit();
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public void saveEntity(Object entity) throws Exception {
 | 
												
													
														
															|  | 
 |  |         if(entity != null) {
 | 
												
													
														
															|  | 
 |  |             this.hibernateTemplate.save(entity);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public void updateEntity(Object entity) throws Exception {
 | 
												
													
														
															|  | 
 |  |         if(entity != null) {
 | 
												
													
														
															|  | 
 |  |             this.hibernateTemplate.update(entity);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public void saveOrUpdateEntity(Object entity) throws Exception {
 | 
												
													
														
															|  | 
 |  |         if(entity != null) {
 | 
												
													
														
															|  | 
 |  |             this.hibernateTemplate.saveOrUpdate(entity);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public void mergeEntity(Object entity) throws Exception {
 | 
												
													
														
															|  | 
 |  |         if(entity != null) {
 | 
												
													
														
															|  | 
 |  |             this.hibernateTemplate.merge(entity);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public void deleteEntity(Object entity) throws Exception {
 | 
												
													
														
															|  | 
 |  |         if(entity != null) {
 | 
												
													
														
															|  | 
 |  |             this.hibernateTemplate.delete(entity);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public <T> void deleteEntity(Class<T> cls, Serializable id) throws Exception {
 | 
												
													
														
															|  | 
 |  |         Object obj = this.hibernateTemplate.load(cls, id);
 | 
												
													
														
															|  | 
 |  |         this.hibernateTemplate.delete(obj);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public <T> T getEntity(Class<T> cls, Serializable id) throws Exception {
 | 
												
													
														
															|  | 
 |  |         return this.hibernateTemplate.get(cls, id);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public List<Map<String, Object>> queryListBySql(String sql) throws Exception {
 | 
												
													
														
															|  | 
 |  |         List result = this.jdbcTemplate.queryForList(sql);
 | 
												
													
														
															|  | 
 |  |         return result;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public List<Map<String, Object>> queryListBySql(String sql, List params) throws Exception {
 | 
												
													
														
															|  | 
 |  |         List result = this.jdbcTemplate.queryForList(sql, params.toArray());
 | 
												
													
														
															|  | 
 |  |         return result;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public <T> List<T> queryListBySql(String sql, Class obj) throws Exception {
 | 
												
													
														
															|  | 
 |  |          RowMapper<T> rowMapper = BeanPropertyRowMapper.newInstance(obj);
 | 
												
													
														
															|  | 
 |  |         List result = this.jdbcTemplate.query(sql, rowMapper);
 | 
												
													
														
															|  | 
 |  |         return result;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public <T> List<T> queryListBySql(String sql, List params, Class obj) throws Exception {
 | 
												
													
														
															|  | 
 |  |          RowMapper<T> rowMapper = BeanPropertyRowMapper.newInstance(obj);
 | 
												
													
														
															|  | 
 |  |         List result = this.jdbcTemplate.query(sql, params.toArray(), rowMapper);
 | 
												
													
														
															|  | 
 |  |         return result;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public <T> T queryObjBySql(String sql, List params, Class obj) throws Exception {
 | 
												
													
														
															|  | 
 |  |          RowMapper<T> rowMapper = BeanPropertyRowMapper.newInstance(obj);
 | 
												
													
														
															|  | 
 |  |         T result = this.jdbcTemplate.queryForObject(sql, params.toArray(), rowMapper);
 | 
												
													
														
															|  | 
 |  |         return result;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public <T> T queryObjBySql(String sql, Class obj) throws Exception {
 | 
												
													
														
															|  | 
 |  |         RowMapper<T> rowMapper = BeanPropertyRowMapper.newInstance(obj);
 | 
												
													
														
															|  | 
 |  |         T result = this.jdbcTemplate.queryForObject(sql, rowMapper);
 | 
												
													
														
															|  | 
 |  |         return result;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public <T> T scalarBySql(String sql, Class cls) throws Exception {
 | 
												
													
														
															|  | 
 |  |         T result = (T) this.jdbcTemplate.queryForObject(sql, cls);
 | 
												
													
														
															|  | 
 |  |         return result;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public void execute(String sql) throws Exception {
 | 
												
													
														
															|  | 
 |  |         this.jdbcTemplate.execute(sql);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public <T> List getEntityList(Class<T> cls, String hql) {
 | 
												
													
														
															|  | 
 |  |         Query query = this.getCurrentSession().createQuery(hql);
 | 
												
													
														
															|  | 
 |  |         return query.list();
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public <T> List getEntityList(Class<T> cls, String condition, String order, Integer limit, Integer offset) throws IOException {
 | 
												
													
														
															|  | 
 |  |         Session session = this.getCurrentSession();
 | 
												
													
														
															|  | 
 |  |         Criteria criteria = session.createCriteria(cls);
 | 
												
													
														
															|  | 
 |  |         ObjectMapper objectMapper = new ObjectMapper();
 | 
												
													
														
															|  | 
 |  |         JsonNode jsonNode;
 | 
												
													
														
															|  | 
 |  |         Iterator fieldNames;
 | 
												
													
														
															|  | 
 |  |         String fieldName;
 | 
												
													
														
															|  | 
 |  |         if(!StringUtil.isEmpty(condition)) {
 | 
												
													
														
															|  | 
 |  |             jsonNode = objectMapper.readTree(condition);
 | 
												
													
														
															|  | 
 |  |             fieldNames = jsonNode.fieldNames();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             while(fieldNames.hasNext()) {
 | 
												
													
														
															|  | 
 |  |                 fieldName = (String)fieldNames.next();
 | 
												
													
														
															|  | 
 |  |                 if(jsonNode.get(fieldName).isInt()) {
 | 
												
													
														
															|  | 
 |  |                     criteria.add(Restrictions.eq(fieldName, Integer.valueOf(jsonNode.get(fieldName).asInt())));
 | 
												
													
														
															|  | 
 |  |                 } else {
 | 
												
													
														
															|  | 
 |  |                     criteria.add(Restrictions.eq(fieldName, jsonNode.get(fieldName).asText()));
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         if(!StringUtil.isEmpty(order)) {
 | 
												
													
														
															|  | 
 |  |             jsonNode = objectMapper.readTree(order);
 | 
												
													
														
															|  | 
 |  |             fieldNames = jsonNode.fieldNames();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             while(fieldNames.hasNext()) {
 | 
												
													
														
															|  | 
 |  |                 fieldName = (String)fieldNames.next();
 | 
												
													
														
															|  | 
 |  |                 String value = jsonNode.get(fieldName).asText().toUpperCase();
 | 
												
													
														
															|  | 
 |  |                 if(value.equals("ASC")) {
 | 
												
													
														
															|  | 
 |  |                     criteria.addOrder(Order.asc(fieldName));
 | 
												
													
														
															|  | 
 |  |                 } else if(value.equals("DESC")) {
 | 
												
													
														
															|  | 
 |  |                     criteria.addOrder(Order.desc(fieldName));
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         if(limit != null) {
 | 
												
													
														
															|  | 
 |  |             criteria.setMaxResults(limit.intValue());
 | 
												
													
														
															|  | 
 |  |             if(offset != null) {
 | 
												
													
														
															|  | 
 |  |                 criteria.setFirstResult((offset.intValue() - 1) * limit.intValue());
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         return criteria.list();
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public <T> List getEntityListByParentId(Class<T> cls, String parentFiledName, Integer patentId, String condition, String order, Integer limit, Integer offset) throws IOException {
 | 
												
													
														
															|  | 
 |  |         Session session = this.getCurrentSession();
 | 
												
													
														
															|  | 
 |  |         Criteria criteria = session.createCriteria(cls);
 | 
												
													
														
															|  | 
 |  |         criteria.add(Restrictions.eq(parentFiledName, patentId));
 | 
												
													
														
															|  | 
 |  |         ObjectMapper objectMapper = new ObjectMapper();
 | 
												
													
														
															|  | 
 |  |         JsonNode jsonNode;
 | 
												
													
														
															|  | 
 |  |         Iterator fieldNames;
 | 
												
													
														
															|  | 
 |  |         String fieldName;
 | 
												
													
														
															|  | 
 |  |         if(!StringUtil.isEmpty(condition)) {
 | 
												
													
														
															|  | 
 |  |             jsonNode = objectMapper.readTree(condition);
 | 
												
													
														
															|  | 
 |  |             fieldNames = jsonNode.fieldNames();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             while(fieldNames.hasNext()) {
 | 
												
													
														
															|  | 
 |  |                 fieldName = (String)fieldNames.next();
 | 
												
													
														
															|  | 
 |  |                 if(jsonNode.get(fieldName).isInt()) {
 | 
												
													
														
															|  | 
 |  |                     criteria.add(Restrictions.eq(fieldName, Integer.valueOf(jsonNode.get(fieldName).asInt())));
 | 
												
													
														
															|  | 
 |  |                 } else {
 | 
												
													
														
															|  | 
 |  |                     criteria.add(Restrictions.eq(fieldName, jsonNode.get(fieldName).asText()));
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         if(!StringUtil.isEmpty(order)) {
 | 
												
													
														
															|  | 
 |  |             jsonNode = objectMapper.readTree(order);
 | 
												
													
														
															|  | 
 |  |             fieldNames = jsonNode.fieldNames();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             while(fieldNames.hasNext()) {
 | 
												
													
														
															|  | 
 |  |                 fieldName = (String)fieldNames.next();
 | 
												
													
														
															|  | 
 |  |                 String value = jsonNode.get(fieldName).asText().toUpperCase();
 | 
												
													
														
															|  | 
 |  |                 if(value.equals("ASC")) {
 | 
												
													
														
															|  | 
 |  |                     criteria.addOrder(Order.asc(fieldName));
 | 
												
													
														
															|  | 
 |  |                 } else if(value.equals("DESC")) {
 | 
												
													
														
															|  | 
 |  |                     criteria.addOrder(Order.desc(fieldName));
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         if(limit != null) {
 | 
												
													
														
															|  | 
 |  |             criteria.setMaxResults(limit.intValue());
 | 
												
													
														
															|  | 
 |  |             if(offset != null) {
 | 
												
													
														
															|  | 
 |  |                 criteria.setFirstResult((offset.intValue() - 1) * limit.intValue());
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         return criteria.list();
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public List getList(Class tClass, String tableName, String condition, String order, Integer limit, Integer offset) {
 | 
												
													
														
															|  | 
 |  |         SqlCreator sqlCreator = new SqlCreator(tClass);
 | 
												
													
														
															|  | 
 |  |         ObjectMapper objectMapper = new ObjectMapper();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         try {
 | 
												
													
														
															|  | 
 |  |             JsonNode sql;
 | 
												
													
														
															|  | 
 |  |             Iterator query;
 | 
												
													
														
															|  | 
 |  |             String fieldName;
 | 
												
													
														
															|  | 
 |  |             String value;
 | 
												
													
														
															|  | 
 |  |             if(!StringUtil.isEmpty(condition)) {
 | 
												
													
														
															|  | 
 |  |                 sql = objectMapper.readTree(condition);
 | 
												
													
														
															|  | 
 |  |                 query = sql.fieldNames();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |                 while(query.hasNext()) {
 | 
												
													
														
															|  | 
 |  |                     fieldName = (String)query.next();
 | 
												
													
														
															|  | 
 |  |                     value = sql.get(fieldName).asText();
 | 
												
													
														
															|  | 
 |  |                     if(sql.get(fieldName).getNodeType().equals(JsonNodeType.NUMBER)) {
 | 
												
													
														
															|  | 
 |  |                         sqlCreator.equalCondition(fieldName, Integer.valueOf(Integer.parseInt(value)));
 | 
												
													
														
															|  | 
 |  |                     } else {
 | 
												
													
														
															|  | 
 |  |                         sqlCreator.equalCondition(fieldName, value);
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             if(!StringUtil.isEmpty(order)) {
 | 
												
													
														
															|  | 
 |  |                 sql = objectMapper.readTree(order);
 | 
												
													
														
															|  | 
 |  |                 query = sql.fieldNames();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |                 while(query.hasNext()) {
 | 
												
													
														
															|  | 
 |  |                     fieldName = (String)query.next();
 | 
												
													
														
															|  | 
 |  |                     value = sql.get(fieldName).asText().toUpperCase();
 | 
												
													
														
															|  | 
 |  |                     sqlCreator.order(fieldName, value);
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         } catch (Exception var13) {
 | 
												
													
														
															|  | 
 |  |             var13.printStackTrace();
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         String sql1 = sqlCreator.selectData(tableName);
 | 
												
													
														
															|  | 
 |  |         Query query1 = this.getQuery(sqlCreator, sql1);
 | 
												
													
														
															|  | 
 |  |         if(limit != null) {
 | 
												
													
														
															|  | 
 |  |             query1.setMaxResults(limit.intValue());
 | 
												
													
														
															|  | 
 |  |             if(offset != null) {
 | 
												
													
														
															|  | 
 |  |                 query1.setFirstResult(offset.intValue() * limit.intValue());
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         return query1.list();
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public List getListByIdList(Class tClass, String tableName, String fieldName, List<Integer> idList) {
 | 
												
													
														
															|  | 
 |  |         SqlCreator sqlCreator = new SqlCreator(tClass);
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         try {
 | 
												
													
														
															|  | 
 |  |             sqlCreator.inCondition(fieldName, idList);
 | 
												
													
														
															|  | 
 |  |         } catch (Exception var8) {
 | 
												
													
														
															|  | 
 |  |             var8.printStackTrace();
 | 
												
													
														
															|  | 
 |  |             return null;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         String sql = sqlCreator.selectData(tableName);
 | 
												
													
														
															|  | 
 |  |         Query query = this.getQuery(sqlCreator, sql);
 | 
												
													
														
															|  | 
 |  |         return query.list();
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public Integer getDataSetInt(Class tClass, String tableName, String condition) {
 | 
												
													
														
															|  | 
 |  |         SqlCreator sqlCreator = new SqlCreator(tClass);
 | 
												
													
														
															|  | 
 |  |         ObjectMapper objectMapper = new ObjectMapper();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         try {
 | 
												
													
														
															|  | 
 |  |             if(!StringUtil.isEmpty(condition)) {
 | 
												
													
														
															|  | 
 |  |                 JsonNode sql = objectMapper.readTree(condition);
 | 
												
													
														
															|  | 
 |  |                 Iterator query = sql.fieldNames();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |                 while(query.hasNext()) {
 | 
												
													
														
															|  | 
 |  |                     String count = (String)query.next();
 | 
												
													
														
															|  | 
 |  |                     String value = sql.get(count).asText();
 | 
												
													
														
															|  | 
 |  |                     if(NumberUtil.isInteger(value)) {
 | 
												
													
														
															|  | 
 |  |                         sqlCreator.equalCondition(count, Integer.valueOf(Integer.parseInt(value)));
 | 
												
													
														
															|  | 
 |  |                     } else {
 | 
												
													
														
															|  | 
 |  |                         sqlCreator.equalCondition(count, value);
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         } catch (Exception var10) {
 | 
												
													
														
															|  | 
 |  |             var10.printStackTrace();
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         String sql1 = sqlCreator.countData(tableName);
 | 
												
													
														
															|  | 
 |  |         Query query1 = this.getQuery(sqlCreator, sql1);
 | 
												
													
														
															|  | 
 |  |         Integer count1 = Integer.valueOf(Integer.parseInt(StringUtil.toString(query1.list().get(0))));
 | 
												
													
														
															|  | 
 |  |         return count1;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public Object get(Class tClass, String tableName, Integer id) {
 | 
												
													
														
															|  | 
 |  |         SqlCreator sqlCreator = new SqlCreator(tClass);
 | 
												
													
														
															|  | 
 |  |         sqlCreator.equalCondition("id", id);
 | 
												
													
														
															|  | 
 |  |         String sql = sqlCreator.selectData(tableName);
 | 
												
													
														
															|  | 
 |  |         Query query = this.getQuery(sqlCreator, sql);
 | 
												
													
														
															|  | 
 |  |         return query.uniqueResult();
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public Query getQuery(SqlCreator sqlCreator, String sql) {
 | 
												
													
														
															|  | 
 |  |         SQLQuery query = this.getCurrentSession().createSQLQuery(sql);
 | 
												
													
														
															|  | 
 |  |         Iterator var4 = sqlCreator.getKeyValueMap().keySet().iterator();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         while(var4.hasNext()) {
 | 
												
													
														
															|  | 
 |  |             String key = (String)var4.next();
 | 
												
													
														
															|  | 
 |  |             Object value = sqlCreator.getKeyValueMap().get(key);
 | 
												
													
														
															|  | 
 |  |             if(value instanceof Collection) {
 | 
												
													
														
															|  | 
 |  |                 query.setParameterList(key, (Collection)value);
 | 
												
													
														
															|  | 
 |  |             } else {
 | 
												
													
														
															|  | 
 |  |                 query.setParameter(key, value);
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         query.setResultTransformer(sqlCreator.getTransformer());
 | 
												
													
														
															|  | 
 |  |         return query;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public void insertBatch(final List<String> insertSqlList) {
 | 
												
													
														
															|  | 
 |  |         Session session = this.getHibernateTemplate().getSessionFactory().getCurrentSession();
 | 
												
													
														
															|  | 
 |  |         session.doWork(new Work() {
 | 
												
													
														
															|  | 
 |  |             public void execute(Connection connection) throws SQLException {
 | 
												
													
														
															|  | 
 |  |                 if(!CollectionUtil.isEmpty(insertSqlList)) {
 | 
												
													
														
															|  | 
 |  |                     Statement stmt = connection.createStatement();
 | 
												
													
														
															|  | 
 |  |                     connection.setAutoCommit(false);
 | 
												
													
														
															|  | 
 |  |                     Iterator ex = insertSqlList.iterator();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |                     while(ex.hasNext()) {
 | 
												
													
														
															|  | 
 |  |                         String sql = (String)ex.next();
 | 
												
													
														
															|  | 
 |  |                         stmt.addBatch(sql);
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |                     try {
 | 
												
													
														
															|  | 
 |  |                         stmt.executeBatch();
 | 
												
													
														
															|  | 
 |  |                     } catch (Exception var5) {
 | 
												
													
														
															|  | 
 |  |                         logger.error("insertBatch-ERROR: ", var5);
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |                     stmt.close();
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         });
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public Session openSession() {
 | 
												
													
														
															|  | 
 |  |         return this.getHibernateTemplate().getSessionFactory().openSession();
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public Session getCurrentSession() {
 | 
												
													
														
															|  | 
 |  |         return this.getHibernateTemplate().getSessionFactory().getCurrentSession();
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public Integer getMaxId(String tableName) {
 | 
												
													
														
															|  | 
 |  |         String sql = "select max(id) from " + tableName;
 | 
												
													
														
															|  | 
 |  |         SQLQuery query = this.getCurrentSession().createSQLQuery(sql);
 | 
												
													
														
															|  | 
 |  |         Object object = query.uniqueResult();
 | 
												
													
														
															|  | 
 |  |         Integer maxId = Integer.valueOf(object == null?1:Integer.parseInt(object.toString()) + 1);
 | 
												
													
														
															|  | 
 |  |         return maxId;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public Query getExeuteQuery(SqlCreator sqlCreator, String sql) {
 | 
												
													
														
															|  | 
 |  |         SQLQuery query = this.getCurrentSession().createSQLQuery(sql);
 | 
												
													
														
															|  | 
 |  |         Iterator var4 = sqlCreator.getKeyValueMap().keySet().iterator();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         while(var4.hasNext()) {
 | 
												
													
														
															|  | 
 |  |             String key = (String)var4.next();
 | 
												
													
														
															|  | 
 |  |             Object value = sqlCreator.getKeyValueMap().get(key);
 | 
												
													
														
															|  | 
 |  |             if(value instanceof Collection) {
 | 
												
													
														
															|  | 
 |  |                 query.setParameterList(key, (Collection)value);
 | 
												
													
														
															|  | 
 |  |             } else {
 | 
												
													
														
															|  | 
 |  |                 query.setParameter(key, value);
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         return query;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     protected void doClose(Session session, Statement stmt, ResultSet rs) {
 | 
												
													
														
															|  | 
 |  |         if(rs != null) {
 | 
												
													
														
															|  | 
 |  |             try {
 | 
												
													
														
															|  | 
 |  |                 rs.close();
 | 
												
													
														
															|  | 
 |  |                 rs = null;
 | 
												
													
														
															|  | 
 |  |             } catch (Exception var6) {
 | 
												
													
														
															|  | 
 |  |                 rs = null;
 | 
												
													
														
															|  | 
 |  |                 logger.error("close-ResultSet ", var6);
 | 
												
													
														
															|  | 
 |  |                 var6.printStackTrace();
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         if(stmt != null) {
 | 
												
													
														
															|  | 
 |  |             try {
 | 
												
													
														
															|  | 
 |  |                 stmt.close();
 | 
												
													
														
															|  | 
 |  |                 stmt = null;
 | 
												
													
														
															|  | 
 |  |             } catch (Exception var5) {
 | 
												
													
														
															|  | 
 |  |                 stmt = null;
 | 
												
													
														
															|  | 
 |  |                 logger.error("close-ResultSet ", var5);
 | 
												
													
														
															|  | 
 |  |                 var5.printStackTrace();
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | }
 |