|  | @ -325,10 +325,10 @@ public class StdMetadataService extends SQLGeneralDAO {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List getAllVersionMetadataList(String condition) {
 | 
	
		
			
				|  |  |         //数据元列表应该是所选择的数据集列表的数据元并集去重 @modify by yingjie chen
 | 
	
		
			
				|  |  |         //数据元列表应该是所选择的数据集列表的数据元并集去重 @modify by Yingjie Chen
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             List<String>  versionList = new ArrayList<>();
 | 
	
		
			
				|  |  |             String sql = Constants.EMPTY;
 | 
	
		
			
				|  |  |             Map<String,List<StdDataSetModel>> version2DataSetMap = new HashMap<>();
 | 
	
		
			
				|  |  |             String sql;
 | 
	
		
			
				|  |  |             ObjectMapper objectMapper = new ObjectMapper();
 | 
	
		
			
				|  |  |             String code = Constants.EMPTY;
 | 
	
		
			
				|  |  |             if (!StringUtil.isEmpty(condition)) {
 | 
	
	
		
			
				|  | @ -343,6 +343,7 @@ public class StdMetadataService extends SQLGeneralDAO {
 | 
	
		
			
				|  |  |             List<StandardModel> standardModelList = criteria.list();
 | 
	
		
			
				|  |  |             List<Integer> idList = standardModelList.stream().map(StandardModel::getId).collect(Collectors.toList());
 | 
	
		
			
				|  |  |             List<StandardVersionModel> versionModelList;
 | 
	
		
			
				|  |  |             Session session = getCurrentSession();
 | 
	
		
			
				|  |  |             if (!CollectionUtil.isEmpty(idList)) {
 | 
	
		
			
				|  |  |                 String hql = "FROM StandardVersionModel WHERE publishTime is not null AND standardId IN :idList order by publishTime";
 | 
	
		
			
				|  |  |                 Query query = getCurrentSession().createQuery(hql);
 | 
	
	
		
			
				|  | @ -351,36 +352,41 @@ public class StdMetadataService extends SQLGeneralDAO {
 | 
	
		
			
				|  |  |                 for (StandardVersionModel versionModel : versionModelList) {
 | 
	
		
			
				|  |  |                     SqlCreator sqlDatasetCreator = new SqlCreator(StdDataSetModel.class);
 | 
	
		
			
				|  |  |                     StandardVersion version = new StandardVersion(versionModel.getVersion());
 | 
	
		
			
				|  |  |                     versionList.add(versionModel.getVersion());
 | 
	
		
			
				|  |  |                     sqlDatasetCreator.equalCondition("code", code);
 | 
	
		
			
				|  |  |                     sql = sql + sqlDatasetCreator.selectData(version.getDataSetTableName()) + Constants.UNION;
 | 
	
		
			
				|  |  |                     sql = sqlDatasetCreator.selectData(version.getDataSetTableName());
 | 
	
		
			
				|  |  |                     SQLQuery sqlQuery = session.createSQLQuery(sql);
 | 
	
		
			
				|  |  |                     BeanTransformer datasetTransformer = new BeanTransformer(StdDataSetModel.class);
 | 
	
		
			
				|  |  |                     sqlQuery.setResultTransformer(datasetTransformer);
 | 
	
		
			
				|  |  |                     sqlQuery.setParameter("code", code);
 | 
	
		
			
				|  |  |                     List<StdDataSetModel> dataList = sqlQuery.list();
 | 
	
		
			
				|  |  |                     if (dataList.size() > 0) {
 | 
	
		
			
				|  |  |                         version2DataSetMap.put(versionModel.getVersion(),dataList);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             BeanTransformer datasetTransformer = new BeanTransformer(StdDataSetModel.class);
 | 
	
		
			
				|  |  |             if (!StringUtil.isEmpty(sql)) {
 | 
	
		
			
				|  |  |                 sql = sql.substring(0, sql.length() - Constants.UNION.length());
 | 
	
		
			
				|  |  |                 SQLQuery sqlQuery = getCurrentSession().createSQLQuery(sql);
 | 
	
		
			
				|  |  |                 sqlQuery.setResultTransformer(datasetTransformer);
 | 
	
		
			
				|  |  |                 sqlQuery.setParameter("code", code);
 | 
	
		
			
				|  |  |                 List<StdDataSetModel> modelList = sqlQuery.list();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (!version2DataSetMap.isEmpty()) {
 | 
	
		
			
				|  |  |                 sql = Constants.EMPTY;
 | 
	
		
			
				|  |  |                 Integer count = 1;
 | 
	
		
			
				|  |  |                 Map<Integer, String> datasetIdMap = new HashMap<>();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 for (StdDataSetModel model : modelList) {
 | 
	
		
			
				|  |  |                 Iterator iter = version2DataSetMap.entrySet().iterator();
 | 
	
		
			
				|  |  |                 while (iter.hasNext()) {
 | 
	
		
			
				|  |  |                     Map.Entry entry = (Map.Entry) iter.next();
 | 
	
		
			
				|  |  |                     SqlCreator sqlMetadataCreator = new SqlCreator(StdMetaDataModel.class);
 | 
	
		
			
				|  |  |                     sqlMetadataCreator.equalConditionQue("datasetId", model.getId());
 | 
	
		
			
				|  |  |                     for (String versionKey : versionList) {
 | 
	
		
			
				|  |  |                         datasetIdMap.put(count++, StringUtil.toString(model.getId()));
 | 
	
		
			
				|  |  |                         StandardVersion version = new StandardVersion(versionKey);
 | 
	
		
			
				|  |  |                         sql = sql + sqlMetadataCreator.selectSingleData(version.getMetaDataTableName()) + Constants.UNION;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     StandardVersion version = new StandardVersion((String) entry.getKey());
 | 
	
		
			
				|  |  |                     List<StdDataSetModel> dataList = (List<StdDataSetModel>) entry.getValue();
 | 
	
		
			
				|  |  |                     datasetIdMap.put(count++, StringUtil.toString(dataList.get(0).getId()));
 | 
	
		
			
				|  |  |                     sqlMetadataCreator.equalConditionQue("datasetId", dataList.get(0).getId());
 | 
	
		
			
				|  |  |                     sql = sql + sqlMetadataCreator.selectData(version.getMetaDataTableName()) + Constants.UNION;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 BeanTransformer metadataTransformer = new BeanTransformer(StdMetaDataModel.class);
 | 
	
		
			
				|  |  |                 List<StdMetaDataModel> distinctModelList = new ArrayList<>();
 | 
	
		
			
				|  |  |                 if (!StringUtil.isEmpty(sql)) {
 | 
	
		
			
				|  |  |                     sql = sql.substring(0, sql.length() - Constants.UNION.length());
 | 
	
		
			
				|  |  |                     SQLQuery sqlQuery;
 | 
	
		
			
				|  |  |                     sqlQuery = getCurrentSession().createSQLQuery(sql);
 | 
	
		
			
				|  |  |                     sqlQuery.setResultTransformer(metadataTransformer);
 | 
	
		
			
				|  |  |                     for (int i = 1; i < count; i++) {
 | 
	
	
		
			
				|  | @ -391,9 +397,7 @@ public class StdMetadataService extends SQLGeneralDAO {
 | 
	
		
			
				|  |  |                     for (StdMetaDataModel model : metadataList) {
 | 
	
		
			
				|  |  |                         meatadataModelMap.put(model.getCode(), model);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     for (String key : meatadataModelMap.keySet()) {
 | 
	
		
			
				|  |  |                         distinctModelList.add(meatadataModelMap.get(key));
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     distinctModelList.addAll(meatadataModelMap.keySet().stream().map(meatadataModelMap::get).collect(Collectors.toList()));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 return distinctModelList;
 |