package com.example.expense.loan.dao; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import com.norteksoft.mms.form.dao.ListColumnDao; import com.norteksoft.mms.form.dao.ListViewDao; import com.norteksoft.mms.form.entity.FormControl; import com.norteksoft.mms.form.entity.FormView; import com.norteksoft.mms.form.entity.ListColumn; import com.norteksoft.mms.form.entity.ListView; import com.norteksoft.mms.form.jdbc.JdbcSupport; import com.norteksoft.product.orm.Page; import com.norteksoft.product.orm.hibernate.HibernateDao; import com.norteksoft.product.util.ContextUtils; @Repository public class TestFormDao extends HibernateDao<Object, Long> { @Autowired private ListViewDao listViewDao; @Autowired private ListColumnDao listColumnDao; @Autowired private JdbcSupport jdbcDao; public Page<Object> list(Page<Object> page, String code) { ListView view = listViewDao.getListViewByCode(code); String fieldSql = getSelectPartByListCode(code); StringBuilder sql=new StringBuilder(); sql.append("select "); sql.append(fieldSql); sql.append(" from "); sql.append(view.getDataTable().getName()).append(" "); sql.append("where company_id=? "); return this.searchPageBySql(page, sql.toString(), ContextUtils.getCompanyId()); } private String getSelectPartByListCode(String listCode){ List<ListColumn> columns = listColumnDao.getColumnsByViewCode(listCode); StringBuffer columnsStr = new StringBuffer(); String columnName = null; for (int i = 0; i < columns.size(); i++) { if(i != 0){ columnsStr.append(","); } columnName = columns.get(i).getTableColumn().getName(); if(!"id".equalsIgnoreCase(columnName)){ columnsStr.append("dt_"); } columnsStr.append(columns.get(i).getTableColumn().getName()); } return columnsStr.toString(); } public Long update(Map<String,String[]> parameter, FormView form, List<FormControl> fields, Long id){ return jdbcDao.updateTable(parameter, form, fields, id); } public Long save(Map<String,String[]> parameter, FormView form, List<FormControl> fields){ return jdbcDao.insertTable(parameter, form, fields); } /** * 查询数据 * @param tableName 表名 * @param id 数据ID * @return */ public Object getDateById(String tableName, Long id){ return jdbcDao.getDataMap(tableName, id); } }