package com.norteksoft.mms.form.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.norteksoft.mms.form.dao.ListColumnDao; import com.norteksoft.mms.form.dao.ListViewDao; import com.norteksoft.mms.form.entity.ListColumn; import com.norteksoft.product.util.ContextUtils; import com.norteksoft.product.util.JsonParser; @Service @Transactional(readOnly=true) public class ListColumnManager { private ListColumnDao listColumnDao; private ListViewDao listViewDao; @Autowired public void setListColumnDao(ListColumnDao listColumnDao) { this.listColumnDao = listColumnDao; } @Autowired public void setListViewDao(ListViewDao listViewDao) { this.listViewDao = listViewDao; } public List<ListColumn> getColumns(Long viewId){ return listColumnDao.getColumns(viewId); } public List<ListColumn> getUnCompanyColumns(Long viewId){ return listColumnDao.getUnCompanyColumns(viewId); } @Transactional(readOnly=false) public void save(Long viewId){ List<Object> list=JsonParser.getFormTableDatas(ListColumn.class); for(Object obj:list){ ListColumn column=(ListColumn)obj; column.setCompanyId(ContextUtils.getCompanyId()); column.setListView(listViewDao.get(viewId)); listColumnDao.save(column); } } @Transactional(readOnly=false) public void deleteByViewId(Long viewId){ List<Long> ids=listColumnDao.getColumnIdsByViewId(viewId); for(Long id:ids){ listColumnDao.delete(id); } } public List<ListColumn> getColumnsByViewId(Long viewId){ return listColumnDao.getColumnsByViewId(viewId); } /** * 列表标签使用 */ public List<ListColumn> getColumnsByViewCode(String code){ return listColumnDao.getColumnsByViewCode(code); } /** * 供其他项目使用的 */ public String getSelectColumnsByViewCode(String code){ List<ListColumn> columns = listColumnDao.getColumnsByViewCode(code); StringBuffer columnsStr = new StringBuffer(); for (int i = 0; i < columns.size(); i++) { if(i+1==columns.size()){ columnsStr.append(columns.get(i).getTableColumn().getName()); }else{ columnsStr.append(columns.get(i).getTableColumn().getName() + ", "); } } return columnsStr.toString(); } /** * 根据ID查询列 */ public ListColumn getColumn(Long id){ return listColumnDao.get(id); } /** * 查询所有查询列 * @param code * @return */ @Transactional(readOnly=true) public List<ListColumn> getQueryColumnsByCode(String code){ return listColumnDao.getQueryColumnsByCode(code); } /** * 查询所有显示的列 * @return */ public List<ListColumn> getDisplayColumns(Long viewId){ return listColumnDao.getDisplayColumns(viewId); } @Transactional(readOnly=false) public void deleteColumn(Long columnId){ listColumnDao.delete(columnId); } /** * 查询所有导出列 * @param code * @return */ public List<ListColumn> getExportColumnsByCode(String listCode){ return listColumnDao.getExportColumnsByCode(listCode); } /** * 获得所有导出列头名称 * @param listCode * @return */ public List<Object> getExportHeadnameByCode(String listCode) { return listColumnDao.getExportHeadnameByCode(listCode); } @Transactional(readOnly=false) public void saveColumn(ListColumn column){ listColumnDao.save(column); } /** * 通过数据表字段名获得列表中的字段 * @return */ public ListColumn getListColumnByTbCol(Long viewId,String tbColumnName){ return listColumnDao.getListColumnByTbCol(viewId, tbColumnName); } /** * 彻底删除对应数据表所有的字段 * @param dataTableId */ @Transactional(readOnly=false) public void deleteAllColumns(Long listViewId){ listColumnDao.deleteAllColumns(listViewId); } @Transactional(readOnly=false) public void deleteColumnsByTableColumn(Long tableColumnId){ listColumnDao.deleteColumnsByTableColumn(tableColumnId); } public String getValuesetByTableColumn(Long tableColumnId) { return listColumnDao.getValuesetByTableColumn(tableColumnId); } }