CrawlerService.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515
  1. package com.yihu.hos.crawler.service;
  2. import com.fasterxml.jackson.databind.JsonNode;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. import com.fasterxml.jackson.databind.node.ArrayNode;
  5. import com.fasterxml.jackson.databind.node.ObjectNode;
  6. import com.yihu.hos.core.datatype.StringUtil;
  7. import com.yihu.hos.crawler.dao.CrawlerDatasetDao;
  8. import com.yihu.hos.crawler.dao.CrawlerFlowDao;
  9. import com.yihu.hos.crawler.dao.CrawlerFlowHeadDao;
  10. import com.yihu.hos.crawler.model.flow.CrawlerDataSetModel;
  11. import com.yihu.hos.crawler.model.flow.CrawlerFlowHeadModel;
  12. import com.yihu.hos.crawler.model.flow.CrawlerFlowModel;
  13. import com.yihu.hos.crawler.model.flow.resultModel.*;
  14. import com.yihu.hos.datacollect.model.DtoJobDataset;
  15. import com.yihu.hos.standard.model.adapter.AdapterDatasetModel;
  16. import com.yihu.hos.standard.model.adapter.AdapterMetadataModel;
  17. import com.yihu.hos.standard.model.adapter.AdapterSchemeVersionModel;
  18. import com.yihu.hos.standard.model.adapter.resultModel.AdapterSchemeResultModel;
  19. import com.yihu.hos.standard.model.adapter.resultModel.AdapterSchemeVersionResultDetailModel;
  20. import com.yihu.hos.standard.service.adapter.AdapterDatasetService;
  21. import com.yihu.hos.standard.service.adapter.AdapterMetadataService;
  22. import com.yihu.hos.standard.service.adapter.AdapterSchemeService;
  23. import com.yihu.hos.standard.service.adapter.AdapterSchemeVersionService;
  24. import com.yihu.hos.standard.service.bo.AdapterVersion;
  25. import com.yihu.hos.web.framework.constrant.SqlConstants;
  26. import com.yihu.hos.web.framework.model.ActionResult;
  27. import com.yihu.hos.web.framework.model.DetailModelResult;
  28. import org.apache.commons.lang3.StringUtils;
  29. import org.springframework.beans.factory.annotation.Autowired;
  30. import org.springframework.stereotype.Service;
  31. import org.springframework.transaction.annotation.Transactional;
  32. import javax.annotation.Resource;
  33. import java.io.IOException;
  34. import java.util.*;
  35. @Transactional
  36. @Service("CrawlerService")
  37. public class CrawlerService {
  38. public static final String BEAN_ID = "CrawlerService";
  39. @Resource(name = AdapterSchemeVersionService.BEAN_ID)
  40. private AdapterSchemeVersionService adapterSchemeVersionService;
  41. @Resource(name = AdapterDatasetService.BEAN_ID)
  42. private AdapterDatasetService adapterDatasetService;
  43. @Resource(name = CrawlerDatasetDao.BEAN_ID)
  44. private CrawlerDatasetDao crawlerDatasetDao;
  45. @Resource(name = CrawlerFlowDao.BEAN_ID)
  46. private CrawlerFlowDao crawlerFlowDao;
  47. @Resource(name = CrawlerFlowHeadDao.BEAN_ID)
  48. private CrawlerFlowHeadDao crawlerFlowHeadDao;
  49. @Resource(name = AdapterMetadataService.BEAN_ID)
  50. private AdapterMetadataService adapterMetadataService;
  51. private static Map<Integer, List<FlowLines>> lineCache = new HashMap<>();
  52. @Resource(name = AdapterSchemeService.BEAN_ID)
  53. private AdapterSchemeService adapterSchemeService;
  54. @Autowired
  55. private ObjectMapper objectMapper;
  56. public static Map<Integer, List<FlowLines>> getLineCache() {
  57. return lineCache;
  58. }
  59. /**
  60. * 保存编排映射关系
  61. *
  62. * @param version 适配方案版本
  63. * @param json 映射数据
  64. * @return
  65. * @throws Exception
  66. */
  67. public ActionResult saveDataSetRelation(String version, String json) throws Exception {
  68. ObjectNode root = objectMapper.readValue(json,ObjectNode.class);
  69. ArrayNode jsonList = (ArrayNode) root.get("lines");
  70. ArrayNode entrances = (ArrayNode) root.get("entrances");
  71. AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(Integer.valueOf(version));
  72. if (jsonList != null && jsonList.size() > 0) {
  73. // 删除旧关联关系
  74. crawlerFlowDao.deleteCrawlerFlowList(versionModel.getId());
  75. for (JsonNode obj : jsonList) {
  76. String from = obj.get("from").toString();
  77. String to = obj.get("to").toString();
  78. String fromPort = obj.get("fromPort").toString();
  79. String toPort = obj.get("toPort").toString();
  80. // 保存编排关系
  81. CrawlerFlowModel crawlerFlow = new CrawlerFlowModel();
  82. crawlerFlow.setDatasetCode(to);
  83. crawlerFlow.setInputDatasetCode(from);
  84. crawlerFlow.setMetadataCode(toPort);
  85. crawlerFlow.setInputMetadataCode(fromPort);
  86. crawlerFlow.setSchemeVersionId(versionModel.getId());
  87. crawlerFlowDao.saveEntity(crawlerFlow);
  88. }
  89. // 删除编排头部信息
  90. crawlerFlowHeadDao.deleteCrawlerFlowHeadList(versionModel.getId());
  91. for (JsonNode obj : entrances) {
  92. String dataSet = obj.get("dataSet").toString();
  93. String meta = obj.get("meta").toString();
  94. // 保存入口数据集
  95. CrawlerFlowHeadModel headModel = new CrawlerFlowHeadModel();
  96. headModel.setSchemeVersionId(versionModel.getId());
  97. headModel.setDatasetCode(dataSet);
  98. headModel.setMetadataCode(meta);
  99. crawlerFlowHeadDao.saveEntity(headModel);
  100. }
  101. }
  102. return new ActionResult(true, "保存成功!");
  103. }
  104. /**
  105. * 获取任务编排数据集列表
  106. *
  107. * @param schemeVersionId
  108. * @return
  109. * @throws Exception
  110. */
  111. public DetailModelResult getSchemeDataset(Integer schemeVersionId, String datasetName) throws Exception {
  112. AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(schemeVersionId);
  113. //获取适配数据集总和
  114. Map<String, Object> map = new HashMap<String, Object>();
  115. String condition = null;
  116. if (datasetName != null && !"".equals(datasetName)) {
  117. map.put("name", datasetName);
  118. condition = objectMapper.writeValueAsString(condition);
  119. }
  120. List<AdapterDatasetModel> adapterDatasetModelList = adapterDatasetService.getDatasetList(AdapterDatasetModel.class, versionModel.getVersion(), condition, null, null, null);
  121. // 筛选掉 未适配数据
  122. List<AdapterDatasetModel> nAdapterDataSetModelList = new ArrayList<>();
  123. for (AdapterDatasetModel datasetModel : adapterDatasetModelList) {
  124. if (datasetModel.getAdapterDatasetId() != null && datasetModel.getAdapterDatasetName() != null && datasetModel.getAdapterDatasetCode() != null) {
  125. nAdapterDataSetModelList.add(datasetModel);
  126. }
  127. }
  128. //获取编排数据集
  129. List<CrawlerDataSetModel> crawlerDataset = crawlerDatasetDao.getCrawlerDatasetList(versionModel.getId());
  130. DetailModelResult re = new DetailModelResult();
  131. List<CrawlerDatasetResultDetailModel> list = new ArrayList<>();
  132. for (AdapterDatasetModel datasetModel : nAdapterDataSetModelList) {
  133. if (!StringUtil.isStrEmpty(datasetModel.getAdapterDatasetCode())) {
  134. List<AdapterMetadataModel> metadatas = adapterMetadataService.getAdapterMetadataByDataset(versionModel.getVersion(), datasetModel.getStdDatasetId());
  135. if (metadatas != null && metadatas.size() > 0) {
  136. CrawlerDatasetResultDetailModel obj = new CrawlerDatasetResultDetailModel();
  137. obj.setSchemeVersionId(schemeVersionId);
  138. obj.setDatasetId(datasetModel.getStdDatasetId());
  139. obj.setDatasetCode(datasetModel.getStdDatasetCode());
  140. obj.setDatasetName(datasetModel.getStdDatasetName());
  141. obj.setSchemeId(datasetModel.getSchemeId());
  142. if (crawlerDataset != null && crawlerDataset.size() > 0) {
  143. for (CrawlerDataSetModel cDataSet : crawlerDataset) {
  144. if (cDataSet.getDatasetId().equals(datasetModel.getStdDatasetId())) {
  145. obj.setSchemeVersionId(cDataSet.getSchemeVersionId());
  146. obj.setChecked("1");
  147. break;
  148. }
  149. }
  150. }
  151. list.add(obj);
  152. }
  153. }
  154. }
  155. re.setDetailModelList(list);
  156. return re;
  157. }
  158. /**
  159. * 保存任务编排数据
  160. *
  161. * @param json
  162. * @param rows
  163. * @param page @return
  164. * @throws Exception
  165. */
  166. public void saveJobData(String json, Integer rows, Integer page) throws Exception {
  167. ArrayNode jsonList = objectMapper.readValue(json,ArrayNode.class);
  168. //清空当页数据
  169. deleteCurrentPage(rows, page);
  170. for (JsonNode obj : jsonList) {
  171. if (obj.has("schemeId") && obj.has("versionId")) {
  172. String schemeId = obj.get("schemeId").toString();
  173. String versionId = obj.get("versionId").toString();
  174. AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(Integer.valueOf(versionId));
  175. if (versionModel != null) {
  176. AdapterVersion adapterVersion = new AdapterVersion(versionModel.getVersion());
  177. //删除已存在的数据集
  178. crawlerDatasetDao.deleteCrawlerDatasetList(versionModel.getId());
  179. List<AdapterDatasetModel> adapterDatasetModelList;
  180. //根据id字符串获取编排数据集
  181. if (obj.has("dataSets")) {
  182. List<Integer> newDatasetIdList = new ArrayList<>();
  183. String dataSetStr = obj.get("dataSets").toString();
  184. if (StringUtils.isNotBlank(dataSetStr)) {
  185. String[] IdList = dataSetStr.split(",");
  186. for (String aIdList : IdList) {
  187. if (!Objects.equals(aIdList, "")) {
  188. Integer DaSetId = Integer.valueOf(aIdList);
  189. newDatasetIdList.add(DaSetId);
  190. }
  191. }
  192. }
  193. adapterDatasetModelList = adapterDatasetService.getListByAdapterDatasetIdList(adapterVersion, newDatasetIdList);
  194. for (AdapterDatasetModel model : adapterDatasetModelList) {
  195. CrawlerDataSetModel dataSetModel = new CrawlerDataSetModel();
  196. dataSetModel.setSchemeId(Integer.valueOf(schemeId));
  197. dataSetModel.setSchemeVersionId(versionModel.getId());
  198. dataSetModel.setDatasetId(model.getStdDatasetId());
  199. dataSetModel.setDatasetCode(model.getStdDatasetCode());
  200. dataSetModel.setDatasetName(model.getStdDatasetName());
  201. crawlerDatasetDao.saveEntity(dataSetModel);
  202. }
  203. }
  204. //如果保存传入编排映射关系,进行保存操作
  205. if (obj.has("relation") && !Objects.equals(obj.get("relation").toString(), "")) {
  206. saveDataSetRelation(versionId, obj.get("relation").toString());
  207. }
  208. }
  209. }
  210. }
  211. }
  212. public List<FlowEntrance> getFlowEntrances(Integer schemeVersionId) {
  213. List<FlowEntrance> entrances = new ArrayList<>();
  214. List<CrawlerFlowHeadModel> modelList = crawlerFlowHeadDao.getCrawlerFlowHeadList(schemeVersionId);
  215. for (CrawlerFlowHeadModel headModel : modelList) {
  216. FlowEntrance entrance = new FlowEntrance();
  217. entrance.setDataSet(headModel.getDatasetCode());
  218. entrance.setMeta(headModel.getMetadataCode());
  219. entrances.add(entrance);
  220. }
  221. return entrances;
  222. }
  223. public List<FlowLines> getFlowLines(Integer schemeVersionId) {
  224. List<FlowLines> lines = new ArrayList<>();
  225. List<CrawlerFlowModel> modelList = crawlerFlowDao.getCrawlerFlowList(schemeVersionId);
  226. for (CrawlerFlowModel model : modelList) {
  227. FlowLines line = new FlowLines();
  228. line.setFrom(model.getInputDatasetCode());
  229. line.setFromPort(model.getInputMetadataCode());
  230. line.setTo(model.getDatasetCode());
  231. line.setToPort(model.getMetadataCode());
  232. lines.add(line);
  233. }
  234. return lines;
  235. }
  236. /**
  237. * 删除编排数据
  238. *
  239. * @param version
  240. */
  241. @Transactional
  242. public String deleteJobData(String version) {
  243. try {
  244. AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(Integer.valueOf(version));
  245. if (versionModel == null || versionModel.getId() == null) {
  246. return "删除失败";
  247. }
  248. //删除对应表记录
  249. crawlerDatasetDao.deleteCrawlerDatasetList(versionModel.getId());
  250. crawlerFlowHeadDao.deleteCrawlerFlowHeadList(versionModel.getId());
  251. crawlerFlowDao.deleteCrawlerFlowList(versionModel.getId());
  252. } catch (Exception e) {
  253. e.printStackTrace();
  254. return "删除失败";
  255. }
  256. return SqlConstants.EMPTY;
  257. }
  258. /**
  259. * 数据集列表
  260. *
  261. * @param limit rows
  262. * @param offset page
  263. * @return
  264. */
  265. public DetailModelResult getDataSetResult(Integer limit, Integer offset) {
  266. try {
  267. StringBuffer stringBuffer = new StringBuffer();
  268. String sql = "SELECT 1 as status, a.scheme_id, a.scheme_version_id, GROUP_CONCAT(a.dataset_id SEPARATOR ',') AS datasetId, GROUP_CONCAT(a.dataset_name SEPARATOR ',') AS datasetName" +
  269. " FROM crawler_dataset a " +
  270. " GROUP BY a.scheme_id, a.scheme_version_id ";
  271. stringBuffer.append(sql);
  272. if (limit != null && offset != null) {
  273. if (limit > 0 && offset > 0) {
  274. stringBuffer.append(" LIMIT " + (offset - 1) * limit + "," + limit);
  275. }
  276. }
  277. stringBuffer.append(" ;");
  278. Integer total = crawlerDatasetDao.getTotalRows();
  279. List<Map<String, Object>> list = crawlerDatasetDao.queryListBySql(stringBuffer.toString());
  280. DetailModelResult detailModelResult = DetailModelResult.success("获取数据集成功");
  281. detailModelResult.setDetailModelList(list);
  282. detailModelResult.setTotalCount(total);
  283. return detailModelResult;
  284. } catch (Exception e) {
  285. e.printStackTrace();
  286. return DetailModelResult.error("获取数据集失败");
  287. }
  288. }
  289. /**
  290. * 获取编排已选择的适配数据集
  291. *
  292. * @param schemeVersionId
  293. * @param datasetIdStr
  294. * @return
  295. * @throws Exception
  296. */
  297. public List<MappingDataset> getSchemeDatasetByChecked(Integer schemeVersionId, String datasetIdStr) throws Exception {
  298. AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(schemeVersionId);
  299. //获取适配数据集总和
  300. AdapterVersion adapterVersion = new AdapterVersion(versionModel.getVersion());
  301. List<AdapterDatasetModel> adapterDatasetModelList = new ArrayList<>();
  302. if (datasetIdStr != null && !"".equals(datasetIdStr)) {
  303. String[] datasetIdList = datasetIdStr.split(",");
  304. List<Integer> newDatasetIdList = new ArrayList<>();
  305. for (String datasetId : datasetIdList) {
  306. if (!StringUtil.isStrEmpty(datasetId)) {
  307. Integer newDatasetId = Integer.parseInt(datasetId);
  308. newDatasetIdList.add(newDatasetId);
  309. }
  310. }
  311. adapterDatasetModelList = adapterDatasetService.getListByAdapterDatasetIdList(adapterVersion, newDatasetIdList);
  312. } else {
  313. adapterDatasetModelList = adapterDatasetService.getDatasetList(AdapterDatasetModel.class, versionModel.getVersion(), null, null, null, null);
  314. }
  315. //获取编排数据集
  316. List<CrawlerDataSetModel> crawlerDataset = crawlerDatasetDao.getCrawlerDatasetList(versionModel.getId());
  317. List<MappingDataset> list = new ArrayList<>();
  318. for (AdapterDatasetModel datasetModel : adapterDatasetModelList) {
  319. // if (crawlerDataset != null && crawlerDataset.size() > 0) {
  320. MappingDataset obj = new MappingDataset();
  321. // for (CrawlerDataSetModel cDataSet : crawlerDataset) {
  322. if (!StringUtil.isStrEmpty(datasetModel.getAdapterDatasetCode())) {
  323. List<MappingMetadata> metadatas = getMappingMetaDatasByDataset(versionModel.getVersion(), datasetModel.getStdDatasetId());
  324. obj.setId(datasetModel.getStdDatasetId());
  325. obj.setCode(datasetModel.getStdDatasetCode());
  326. obj.setName(datasetModel.getStdDatasetName());
  327. obj.setData(metadatas);
  328. // break;
  329. }
  330. // }
  331. list.add(obj);
  332. // }
  333. }
  334. return list;
  335. }
  336. /**
  337. * 返回前端映射数据元信息
  338. *
  339. * @param adapterVersion 适配版本号
  340. * @param dataSetId 适配数据集ID
  341. * @return
  342. */
  343. public List<MappingMetadata> getMappingMetaDatasByDataset(String adapterVersion, Integer dataSetId) {
  344. List<AdapterMetadataModel> adapterMetadataModels = adapterMetadataService.getAdapterMetadataByDataset(adapterVersion, dataSetId);
  345. AdapterDatasetModel adapterDatasetModel = adapterMetadataService.getAdapterDataset(adapterVersion, dataSetId);
  346. List<MappingMetadata> resultList = new ArrayList<>();
  347. if (adapterMetadataModels != null && adapterMetadataModels.size() > 0) {
  348. for (AdapterMetadataModel metadataModel : adapterMetadataModels) {
  349. if (!StringUtil.isStrEmpty(metadataModel.getAdapterMetadataCode())) {
  350. MappingMetadata metadata = new MappingMetadata();
  351. metadata.setId(metadataModel.getAdapterMetadataId());
  352. metadata.setCode(adapterDatasetModel.getAdapterDatasetCode() + "-" + metadataModel.getAdapterMetadataCode());
  353. metadata.setName(metadataModel.getAdapterMetadataName());
  354. resultList.add(metadata);
  355. }
  356. }
  357. }
  358. return resultList;
  359. }
  360. /**
  361. * 获取适配方案映射数据
  362. *
  363. * @param schemeVersionId
  364. * @param datasetIdStr
  365. * @return
  366. */
  367. public String getRelations(Integer schemeVersionId, String datasetIdStr, String lineStr) {
  368. ObjectNode jsonObject = objectMapper.createObjectNode();
  369. try {
  370. List<MappingDataset> datasets = getSchemeDatasetByChecked(schemeVersionId, datasetIdStr);
  371. List<FlowLines> lines = getFlowLines(schemeVersionId);
  372. if (StringUtil.isEmpty(lineStr)) {
  373. lines = getFlowLines(schemeVersionId);
  374. } else {
  375. lines = lineCache.get(schemeVersionId);
  376. }
  377. jsonObject.set("tables", objectMapper.valueToTree(datasets));
  378. jsonObject.set("rels", objectMapper.valueToTree(lines));
  379. } catch (Exception e) {
  380. e.printStackTrace();
  381. }
  382. return jsonObject.toString();
  383. }
  384. public void setLinesCache(Integer schemeVersionId, String lines) throws IOException {
  385. ObjectNode rootNode = objectMapper.readValue(lines, ObjectNode.class);
  386. String lineJson = rootNode.get("lines").toString();
  387. List<FlowLines> line = objectMapper.readValue(lineJson, List.class);
  388. lineCache.put(schemeVersionId, line);
  389. }
  390. public void deleteCurrentPage(Integer rows, Integer page) {
  391. DetailModelResult currentResut = getDataSetResult(rows, page);
  392. List<Map<String, Object>> list = currentResut.getDetailModelList();
  393. for (Map<String, Object> map : list) {
  394. String version = String.valueOf(map.get("scheme_version_id"));
  395. deleteJobData(version);
  396. }
  397. }
  398. public DetailModelResult getDataSetSavedResult(Integer version) {
  399. try {
  400. DetailModelResult checkedSchemeLs = getDataSetResult(null, null);
  401. List<Map<String, Object>> list = checkedSchemeLs.getDetailModelList();
  402. for (Map<String, Object> objectMap : list) {
  403. String versionID = objectMap.get("scheme_version_id").toString();
  404. if (versionID.equals(version.toString())) {
  405. String datasetIdStr = objectMap.get("dataSetId").toString();
  406. List<MappingDataset> datasetList = getSchemeDatasetByChecked(version, datasetIdStr);
  407. List<DtoJobDataset> rsJobDatasetList = new ArrayList<>();
  408. for (MappingDataset dataset : datasetList) {
  409. DtoJobDataset rsJobDataset = new DtoJobDataset();
  410. rsJobDataset.setJobDatasetId(dataset.getId().toString());
  411. rsJobDataset.setJobDatasetName(dataset.getName());
  412. rsJobDataset.setJobDatasetCode(dataset.getCode());
  413. rsJobDatasetList.add(rsJobDataset);
  414. }
  415. DetailModelResult result = new DetailModelResult();
  416. result.setDetailModelList(rsJobDatasetList);
  417. return result;
  418. }
  419. }
  420. } catch (Exception e) {
  421. e.printStackTrace();
  422. return DetailModelResult.error("获取已存任务编排数据集错误");
  423. }
  424. return DetailModelResult.error("获取已存任务编排数据集错误");
  425. }
  426. public DetailModelResult getSchemeSavedResult() {
  427. DetailModelResult allScheme = adapterSchemeService.getAdapterSchemeResultModelList();
  428. List<AdapterSchemeResultModel> allSchemeLs = allScheme.getDetailModelList();
  429. if (allSchemeLs != null && allSchemeLs.size() > 0) {
  430. DetailModelResult checkedSchemeLs = getDataSetResult(null, null);
  431. List<Map<String, Object>> list = checkedSchemeLs.getDetailModelList();
  432. Set<String> schemeIdSets = new HashSet<>();
  433. Set<String> versionSets = new HashSet<>();
  434. DetailModelResult result = new DetailModelResult();
  435. List<AdapterSchemeVersionResultDetailModel> versionModelList = new ArrayList<>();
  436. if (list != null && list.size() > 0) {
  437. for (Map<String, Object> objectMap : list) {
  438. if (objectMap.get("scheme_id") != null && objectMap.get("scheme_version_id") != null) {
  439. schemeIdSets.add(objectMap.get("scheme_id").toString());
  440. versionSets.add(objectMap.get("scheme_version_id").toString());
  441. }
  442. }
  443. if (schemeIdSets.size() > 0 && versionSets.size() > 0) {
  444. for (AdapterSchemeResultModel schemeL : allSchemeLs) {
  445. String schemeID = schemeL.getSchemeId().toString();
  446. if (schemeIdSets.contains(schemeID)) {
  447. String name = schemeL.getName();
  448. List<AdapterSchemeVersionModel> versionModels = schemeL.getVersionList();
  449. for (AdapterSchemeVersionModel versionModel : versionModels) {
  450. String versionID = versionModel.getId().toString();
  451. if (versionSets.contains(versionID)) {
  452. AdapterSchemeVersionResultDetailModel model = new AdapterSchemeVersionResultDetailModel();
  453. model.setSchemeName(name);
  454. model.setId(versionModel.getId());
  455. model.setName(versionModel.getName());
  456. model.setSchemeId(versionModel.getSchemeId());
  457. model.setBaseVersion(versionModel.getBaseVersion());
  458. model.setPath(versionModel.getPath());
  459. model.setPublishStatus(versionModel.getPublishStatus());
  460. model.setPublishTime(versionModel.getPublishTime());
  461. model.setPublishUser(versionModel.getPublishUser());
  462. model.setVersion(versionModel.getVersion());
  463. versionModelList.add(model);
  464. }
  465. }
  466. }
  467. }
  468. result.setDetailModelList(versionModelList);
  469. return result;
  470. }
  471. }
  472. }
  473. return DetailModelResult.error("获取已编排任务适配方案失败!");
  474. }
  475. }