|
@ -8,6 +8,7 @@ import com.yihu.hos.standard.dao.IStdDataSetModelDao;
|
|
|
import com.yihu.hos.standard.dao.IStdMetaDataModelDao;
|
|
|
import com.yihu.hos.standard.match.matchModel.MetadataMatchVO;
|
|
|
import com.yihu.hos.standard.match.metadata.MetadataStrategyExecute;
|
|
|
import com.yihu.hos.standard.match.metadata.MetatdataStandardNameStrategy;
|
|
|
import com.yihu.hos.standard.model.adapter.AdapterDatasetModel;
|
|
|
import com.yihu.hos.standard.model.adapter.AdapterDictModel;
|
|
|
import com.yihu.hos.standard.model.adapter.AdapterMetadataModel;
|
|
@ -16,6 +17,8 @@ import com.yihu.hos.standard.model.standard.StdDataSetModel;
|
|
|
import com.yihu.hos.standard.model.standard.StdMetaDataModel;
|
|
|
import com.yihu.hos.standard.service.bo.AdapterVersion;
|
|
|
import com.yihu.hos.standard.service.bo.StandardVersion;
|
|
|
import com.yihu.hos.standard.service.standard.StdMetadataService;
|
|
|
import com.yihu.hos.standard.util.GetChineseFirst;
|
|
|
import com.yihu.hos.web.framework.constant.ErrorCode;
|
|
|
import com.yihu.hos.web.framework.constant.SqlConstants;
|
|
|
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
|
|
@ -23,8 +26,10 @@ import com.yihu.hos.web.framework.exception.ApiException;
|
|
|
import com.yihu.hos.web.framework.model.DetailModelResult;
|
|
|
import com.yihu.hos.web.framework.model.Result;
|
|
|
import com.yihu.hos.web.framework.model.TreeView;
|
|
|
import com.yihu.hos.web.framework.util.springutil.SpringBeanUtil;
|
|
|
import com.yihu.hos.web.framework.util.sql.BeanTransformer;
|
|
|
import com.yihu.hos.web.framework.util.sql.SqlCreator;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.hibernate.Query;
|
|
|
import org.hibernate.Session;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@ -55,6 +60,11 @@ public class AdapterDatasetService extends SQLGeneralDAO {
|
|
|
@Autowired
|
|
|
private IStdDataSetModelDao stdDataSetModelDao;
|
|
|
|
|
|
@Autowired
|
|
|
private StdMetadataService stdMetadataService;
|
|
|
|
|
|
private AdapterDatasetService adapterDatasetService;
|
|
|
|
|
|
public AdapterDatasetService() {
|
|
|
}
|
|
|
|
|
@ -640,24 +650,71 @@ public class AdapterDatasetService extends SQLGeneralDAO {
|
|
|
MetadataMatchVO matchVO = new MetadataMatchVO();
|
|
|
matchVO.setCodeAdapter(matchVO.geNameGroup(adapterMetadataModel));
|
|
|
|
|
|
//設置匹配的机构数据緩存
|
|
|
List<StdMetaDataModel> orgMetadatas = stdMetadataService.getList(adapter_std_version, null, null, null, null, null);//查找出机构所有的metadatas
|
|
|
for (StdMetaDataModel stdMetadata:orgMetadatas){
|
|
|
MetatdataStandardNameStrategy.getNameMap().put(stdMetadata.getName(),stdMetadata);
|
|
|
MetatdataStandardNameStrategy.getRemarkMap().put(stdMetadata.getDefinition(),stdMetadata);
|
|
|
}
|
|
|
|
|
|
//执行匹配
|
|
|
MetadataStrategyExecute.setFirst(version, unAdapterMetadataModels.size());//设置第一次匹配
|
|
|
Set<String> sqlList = new HashSet<String>();
|
|
|
|
|
|
for (AdapterMetadataModel unAdapterMetadataModel : unAdapterMetadataModels) {
|
|
|
threadPoolTaskExecutor.execute(new MetadataStrategyExecute(unAdapterMetadataModel, matchVO, std_version,adapter_std_version,version, stdMetaDataModelDao,stdDataSetModelDao,adapterMetadataService));
|
|
|
|
|
|
String metadataNameFirstCode = GetChineseFirst.cn2py(unAdapterMetadataModel.getStdMetadataName());//待匹配
|
|
|
List<AdapterMetadataModel> adapterMetadatas = matchVO.getCodeAdapter().get(metadataNameFirstCode);//已存在
|
|
|
if (adapterMetadatas != null && adapterMetadatas.size() > 0) {
|
|
|
//获取待适配的数据集名
|
|
|
Integer unAdaptStdId = unAdapterMetadataModel.getStdDatasetId();
|
|
|
StdDataSetModel adapterDataset = stdDataSetModelDao.getDatasetName(adapter_std_version, unAdaptStdId);
|
|
|
if (adapterDataset != null) {
|
|
|
adapterDatasetService = SpringBeanUtil.getService(AdapterDatasetService.BEAN_ID);
|
|
|
AdapterDatasetModel entity = adapterDatasetService.getAdapterDatasetByCode(version, adapterDataset.getCode());
|
|
|
String sqrSql = null;
|
|
|
if(null != entity){
|
|
|
sqrSql = adapterDatasetService.saveAdaptDatasetSql(entity, adapterDataset, version);
|
|
|
}
|
|
|
if(null != sqrSql && !"".equals(sqrSql)){
|
|
|
sqlList.add(sqrSql);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(CollectionUtils.isNotEmpty(sqlList)){
|
|
|
List list=new ArrayList();
|
|
|
Iterator it=sqlList.iterator();
|
|
|
while(it.hasNext()){
|
|
|
list.add((String) it.next());
|
|
|
}
|
|
|
super.insertBatch(list);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
public void saveAdaptDataset(AdapterDatasetModel strategyDataset,StdDataSetModel orgDataset,String version) throws Exception {
|
|
|
strategyDataset.setAdapterDatasetId(orgDataset.getId());
|
|
|
strategyDataset.setAdapterDatasetCode(orgDataset.getCode());
|
|
|
strategyDataset.setAdapterDatasetName(orgDataset.getName());
|
|
|
JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(strategyDataset));
|
|
|
SqlCreator sqlCreator = new SqlCreator(AdapterDatasetModel.class);
|
|
|
String sql = sqlCreator.updateDataByTableKey(new AdapterVersion(version).getDataSetTableName(), jsonNode);
|
|
|
Query query = getExeuteQuery(sqlCreator, sql);
|
|
|
query.executeUpdate();
|
|
|
if(null != strategyDataset){
|
|
|
strategyDataset.setAdapterDatasetId(orgDataset.getId());
|
|
|
strategyDataset.setAdapterDatasetCode(orgDataset.getCode());
|
|
|
strategyDataset.setAdapterDatasetName(orgDataset.getName());
|
|
|
JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(strategyDataset));
|
|
|
SqlCreator sqlCreator = new SqlCreator(AdapterDatasetModel.class);
|
|
|
String sql = sqlCreator.updateDataByTableKey(new AdapterVersion(version).getDataSetTableName(), jsonNode);
|
|
|
Query query = getExeuteQuery(sqlCreator, sql);
|
|
|
query.executeUpdate();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public String saveAdaptDatasetSql(AdapterDatasetModel strategyDataset,StdDataSetModel orgDataset,String version) throws Exception {
|
|
|
StringBuilder sqlBuffer = new StringBuilder();
|
|
|
sqlBuffer.append(SqlConstants.UPDATE + new AdapterVersion(version).getDataSetTableName() + SqlConstants.SET);
|
|
|
sqlBuffer.append(" adapter_dataset_id = " + orgDataset.getId());
|
|
|
sqlBuffer.append(",adapter_dataset_code = '" + orgDataset.getCode() + "'");
|
|
|
sqlBuffer.append(",adapter_dataset_name = '" + orgDataset.getName() + "'");
|
|
|
sqlBuffer.append(" where id=" + strategyDataset.getId());
|
|
|
return sqlBuffer.toString();
|
|
|
}
|
|
|
}
|