| 
					
				 | 
			
			
				@ -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; 
			 |