|  | @ -0,0 +1,663 @@
 | 
	
		
			
				|  |  | package com.yihu.hos.rest.services.crawler;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.JsonNode;
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.ObjectMapper;
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.node.ArrayNode;
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.node.ObjectNode;
 | 
	
		
			
				|  |  | import com.yihu.ehr.dbhelper.common.DBList;
 | 
	
		
			
				|  |  | import com.yihu.ehr.dbhelper.common.MongodbQuery;
 | 
	
		
			
				|  |  | import com.yihu.ehr.dbhelper.common.QueryCondition;
 | 
	
		
			
				|  |  | import com.yihu.ehr.dbhelper.common.QueryEntity;
 | 
	
		
			
				|  |  | import com.yihu.ehr.dbhelper.jdbc.DBHelper;
 | 
	
		
			
				|  |  | import com.yihu.hos.core.datatype.StringUtil;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.common.dao.CrawlerDatasetDao;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.common.dao.CrawlerFlowDao;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.common.dao.CrawlerFlowHeadDao;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.models.crawler.flow.CrawlerDataSetModel;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.models.crawler.flow.CrawlerFlowHeadModel;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.models.crawler.flow.CrawlerFlowModel;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.models.crawler.flow.resultModel.*;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.models.rs.DtoJobDataset;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.models.standard.adapter.AdapterDatasetModel;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.models.standard.adapter.AdapterMetadataModel;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.models.standard.adapter.AdapterSchemeVersionModel;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.models.standard.adapter.resultModel.AdapterSchemeResultModel;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.models.standard.adapter.resultModel.AdapterSchemeVersionResultDetailModel;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.models.standard.bo.AdapterVersion;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.services.standard.adapter.AdapterDatasetService;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.services.standard.adapter.AdapterMetadataService;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.services.standard.adapter.AdapterSchemeService;
 | 
	
		
			
				|  |  | import com.yihu.hos.rest.services.standard.adapter.AdapterSchemeVersionService;
 | 
	
		
			
				|  |  | import com.yihu.hos.web.framework.constant.SqlConstants;
 | 
	
		
			
				|  |  | import com.yihu.hos.web.framework.model.ActionResult;
 | 
	
		
			
				|  |  | import com.yihu.hos.web.framework.model.DetailModelResult;
 | 
	
		
			
				|  |  | import net.sf.json.JSONArray;
 | 
	
		
			
				|  |  | import net.sf.json.JSONObject;
 | 
	
		
			
				|  |  | import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | import org.bson.types.ObjectId;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import javax.annotation.Resource;
 | 
	
		
			
				|  |  | import java.io.File;
 | 
	
		
			
				|  |  | import java.io.FileOutputStream;
 | 
	
		
			
				|  |  | import java.io.IOException;
 | 
	
		
			
				|  |  | import java.io.InputStream;
 | 
	
		
			
				|  |  | import java.sql.Blob;
 | 
	
		
			
				|  |  | import java.util.*;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | @Transactional
 | 
	
		
			
				|  |  | @Service("CrawlerService")
 | 
	
		
			
				|  |  | public class CrawlerService {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static final String BEAN_ID = "CrawlerService";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Resource(name = AdapterSchemeVersionService.BEAN_ID)
 | 
	
		
			
				|  |  |     private AdapterSchemeVersionService adapterSchemeVersionService;
 | 
	
		
			
				|  |  |     @Resource(name = AdapterDatasetService.BEAN_ID)
 | 
	
		
			
				|  |  |     private AdapterDatasetService adapterDatasetService;
 | 
	
		
			
				|  |  |     @Resource(name = CrawlerDatasetDao.BEAN_ID)
 | 
	
		
			
				|  |  |     private CrawlerDatasetDao crawlerDatasetDao;
 | 
	
		
			
				|  |  |     @Resource(name = CrawlerFlowDao.BEAN_ID)
 | 
	
		
			
				|  |  |     private CrawlerFlowDao crawlerFlowDao;
 | 
	
		
			
				|  |  |     @Resource(name = CrawlerFlowHeadDao.BEAN_ID)
 | 
	
		
			
				|  |  |     private CrawlerFlowHeadDao crawlerFlowHeadDao;
 | 
	
		
			
				|  |  |     @Resource(name = AdapterMetadataService.BEAN_ID)
 | 
	
		
			
				|  |  |     private AdapterMetadataService adapterMetadataService;
 | 
	
		
			
				|  |  |     private static Map<Integer, List<FlowLines>> lineCache = new HashMap<>();
 | 
	
		
			
				|  |  |     @Resource(name = AdapterSchemeService.BEAN_ID)
 | 
	
		
			
				|  |  |     private AdapterSchemeService adapterSchemeService;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static Map<Integer, List<FlowLines>> getLineCache() {
 | 
	
		
			
				|  |  |         return lineCache;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 保存编排映射关系
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param version 适配方案版本
 | 
	
		
			
				|  |  |      * @param json    映射数据
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public ActionResult saveDataSetRelation(String version, String json) throws Exception {
 | 
	
		
			
				|  |  |         ObjectMapper mapper = new ObjectMapper();
 | 
	
		
			
				|  |  |         ObjectNode root = mapper.readValue(json,ObjectNode.class);
 | 
	
		
			
				|  |  |         ArrayNode jsonList = (ArrayNode) root.get("lines");
 | 
	
		
			
				|  |  |         ArrayNode entrances = (ArrayNode) root.get("entrances");
 | 
	
		
			
				|  |  |         AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(Long.valueOf(version));
 | 
	
		
			
				|  |  |         if (jsonList != null && jsonList.size() > 0) {
 | 
	
		
			
				|  |  |             // 删除旧关联关系
 | 
	
		
			
				|  |  |             crawlerFlowDao.deleteCrawlerFlowList(versionModel.getId());
 | 
	
		
			
				|  |  |             for (JsonNode obj : jsonList) {
 | 
	
		
			
				|  |  |                 String from = obj.get("from").toString();
 | 
	
		
			
				|  |  |                 String to = obj.get("to").toString();
 | 
	
		
			
				|  |  |                 String fromPort = obj.get("fromPort").toString();
 | 
	
		
			
				|  |  |                 String toPort = obj.get("toPort").toString();
 | 
	
		
			
				|  |  |                 // 保存编排关系
 | 
	
		
			
				|  |  |                 CrawlerFlowModel crawlerFlow = new CrawlerFlowModel();
 | 
	
		
			
				|  |  |                 crawlerFlow.setDatasetCode(to);
 | 
	
		
			
				|  |  |                 crawlerFlow.setInputDatasetCode(from);
 | 
	
		
			
				|  |  |                 crawlerFlow.setMetadataCode(toPort);
 | 
	
		
			
				|  |  |                 crawlerFlow.setInputMetadataCode(fromPort);
 | 
	
		
			
				|  |  |                 crawlerFlow.setSchemeVersionId(versionModel.getId());
 | 
	
		
			
				|  |  |                 crawlerFlowDao.saveEntity(crawlerFlow);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             // 删除编排头部信息
 | 
	
		
			
				|  |  |             crawlerFlowHeadDao.deleteCrawlerFlowHeadList(versionModel.getId());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             for (JsonNode obj : entrances) {
 | 
	
		
			
				|  |  |                 String dataSet = obj.get("dataSet").toString();
 | 
	
		
			
				|  |  |                 String meta = obj.get("meta").toString();
 | 
	
		
			
				|  |  |                 //  保存入口数据集
 | 
	
		
			
				|  |  |                 CrawlerFlowHeadModel headModel = new CrawlerFlowHeadModel();
 | 
	
		
			
				|  |  |                 headModel.setSchemeVersionId(versionModel.getId());
 | 
	
		
			
				|  |  |                 headModel.setDatasetCode(dataSet);
 | 
	
		
			
				|  |  |                 headModel.setMetadataCode(meta);
 | 
	
		
			
				|  |  |                 crawlerFlowHeadDao.saveEntity(headModel);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return new ActionResult(true, "保存成功!");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取任务编排数据集列表
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param schemeVersionId
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public DetailModelResult getSchemeDataset(Long schemeVersionId, String datasetName) throws Exception {
 | 
	
		
			
				|  |  |         AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(schemeVersionId);
 | 
	
		
			
				|  |  |         //获取适配数据集总和
 | 
	
		
			
				|  |  |         Map<String, Object> map = new HashMap<String, Object>();
 | 
	
		
			
				|  |  |         String condition = null;
 | 
	
		
			
				|  |  |         if (datasetName != null && !"".equals(datasetName)) {
 | 
	
		
			
				|  |  |             map.put("name", datasetName);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //TODO: Use Jackson
 | 
	
		
			
				|  |  | //            condition = net.sf.json.JSONObject.fromObject(map).toString();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<AdapterDatasetModel> adapterDatasetModelList = adapterDatasetService.getDatasetList(AdapterDatasetModel.class, versionModel.getVersion(), condition, null, null, null);
 | 
	
		
			
				|  |  |         // 筛选掉 未适配数据
 | 
	
		
			
				|  |  |         List<AdapterDatasetModel> nAdapterDataSetModelList = new ArrayList<>();
 | 
	
		
			
				|  |  |         for (AdapterDatasetModel datasetModel : adapterDatasetModelList) {
 | 
	
		
			
				|  |  |             if (datasetModel.getAdapterDatasetId() != null && datasetModel.getAdapterDatasetName() != null && datasetModel.getAdapterDatasetCode() != null) {
 | 
	
		
			
				|  |  |                 nAdapterDataSetModelList.add(datasetModel);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //获取编排数据集
 | 
	
		
			
				|  |  |         List<CrawlerDataSetModel> crawlerDataset = crawlerDatasetDao.getCrawlerDatasetList(versionModel.getId());
 | 
	
		
			
				|  |  |         DetailModelResult re = new DetailModelResult();
 | 
	
		
			
				|  |  |         List<CrawlerDatasetResultDetailModel> list = new ArrayList<>();
 | 
	
		
			
				|  |  |         for (AdapterDatasetModel datasetModel : nAdapterDataSetModelList) {
 | 
	
		
			
				|  |  |             if (!StringUtil.isStrEmpty(datasetModel.getAdapterDatasetCode())) {
 | 
	
		
			
				|  |  |                 List<AdapterMetadataModel> metadatas = adapterMetadataService.getAdapterMetadataByDataset(versionModel.getVersion(), datasetModel.getStdDatasetId());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 if (metadatas != null && metadatas.size() > 0) {
 | 
	
		
			
				|  |  |                     CrawlerDatasetResultDetailModel obj = new CrawlerDatasetResultDetailModel();
 | 
	
		
			
				|  |  |                     obj.setSchemeVersionId(schemeVersionId);
 | 
	
		
			
				|  |  |                     obj.setDatasetId(datasetModel.getStdDatasetId());
 | 
	
		
			
				|  |  |                     obj.setDatasetCode(datasetModel.getStdDatasetCode());
 | 
	
		
			
				|  |  |                     obj.setDatasetName(datasetModel.getStdDatasetName());
 | 
	
		
			
				|  |  |                     obj.setSchemeId(datasetModel.getSchemeId());
 | 
	
		
			
				|  |  |                     if (crawlerDataset != null && crawlerDataset.size() > 0) {
 | 
	
		
			
				|  |  |                         for (CrawlerDataSetModel cDataSet : crawlerDataset) {
 | 
	
		
			
				|  |  |                             if (cDataSet.getDatasetId().equals(datasetModel.getStdDatasetId())) {
 | 
	
		
			
				|  |  |                                 obj.setSchemeVersionId(cDataSet.getSchemeVersionId());
 | 
	
		
			
				|  |  |                                 obj.setChecked("1");
 | 
	
		
			
				|  |  |                                 break;
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     list.add(obj);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         re.setDetailModelList(list);
 | 
	
		
			
				|  |  |         return re;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 保存任务编排数据
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param json
 | 
	
		
			
				|  |  |      * @param rows
 | 
	
		
			
				|  |  |      * @param page @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public void saveJobData(String json, Integer rows, Integer page) throws Exception {
 | 
	
		
			
				|  |  |         ObjectMapper mapper = new ObjectMapper();
 | 
	
		
			
				|  |  |         ArrayNode jsonList = mapper.readValue(json,ArrayNode.class);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //清空当页数据
 | 
	
		
			
				|  |  |         deleteCurrentPage(rows, page);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         for (JsonNode obj : jsonList) {
 | 
	
		
			
				|  |  |             if (obj.has("schemeId") && obj.has("versionId")) {
 | 
	
		
			
				|  |  |                 String schemeId = obj.get("schemeId").toString();
 | 
	
		
			
				|  |  |                 String versionId = obj.get("versionId").toString();
 | 
	
		
			
				|  |  |                 AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(Long.valueOf(versionId));
 | 
	
		
			
				|  |  |                 if (versionModel != null) {
 | 
	
		
			
				|  |  |                     AdapterVersion adapterVersion = new AdapterVersion(versionModel.getVersion());
 | 
	
		
			
				|  |  |                     //删除已存在的数据集
 | 
	
		
			
				|  |  |                     crawlerDatasetDao.deleteCrawlerDatasetList(versionModel.getId());
 | 
	
		
			
				|  |  |                     List<AdapterDatasetModel> adapterDatasetModelList;
 | 
	
		
			
				|  |  |                     //根据id字符串获取编排数据集
 | 
	
		
			
				|  |  |                     if (obj.has("dataSets")) {
 | 
	
		
			
				|  |  |                         List<Long> newDatasetIdList = new ArrayList<>();
 | 
	
		
			
				|  |  |                         String dataSetStr = obj.get("dataSets").toString();
 | 
	
		
			
				|  |  |                         if (StringUtils.isNotBlank(dataSetStr)) {
 | 
	
		
			
				|  |  |                             String[] IdList = dataSetStr.split(",");
 | 
	
		
			
				|  |  |                             for (String aIdList : IdList) {
 | 
	
		
			
				|  |  |                                 if (!Objects.equals(aIdList, "")) {
 | 
	
		
			
				|  |  |                                     Long DaSetId = Long.valueOf(aIdList);
 | 
	
		
			
				|  |  |                                     newDatasetIdList.add(DaSetId);
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                         adapterDatasetModelList = adapterDatasetService.getListByAdapterDatasetIdList(adapterVersion, newDatasetIdList);
 | 
	
		
			
				|  |  |                         for (AdapterDatasetModel model : adapterDatasetModelList) {
 | 
	
		
			
				|  |  |                             CrawlerDataSetModel dataSetModel = new CrawlerDataSetModel();
 | 
	
		
			
				|  |  |                             dataSetModel.setSchemeId(Long.valueOf(schemeId));
 | 
	
		
			
				|  |  |                             dataSetModel.setSchemeVersionId(versionModel.getId());
 | 
	
		
			
				|  |  |                             dataSetModel.setDatasetId(model.getStdDatasetId());
 | 
	
		
			
				|  |  |                             dataSetModel.setDatasetCode(model.getStdDatasetCode());
 | 
	
		
			
				|  |  |                             dataSetModel.setDatasetName(model.getStdDatasetName());
 | 
	
		
			
				|  |  |                             crawlerDatasetDao.saveEntity(dataSetModel);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     //如果保存传入编排映射关系,进行保存操作
 | 
	
		
			
				|  |  |                     if (obj.has("relation") && !Objects.equals(obj.get("relation").toString(), "")) {
 | 
	
		
			
				|  |  |                         saveDataSetRelation(versionId, obj.get("relation").toString());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<FlowEntrance> getFlowEntrances(Long schemeVersionId) {
 | 
	
		
			
				|  |  |         List<FlowEntrance> entrances = new ArrayList<>();
 | 
	
		
			
				|  |  |         List<CrawlerFlowHeadModel> modelList = crawlerFlowHeadDao.getCrawlerFlowHeadList(schemeVersionId);
 | 
	
		
			
				|  |  |         for (CrawlerFlowHeadModel headModel : modelList) {
 | 
	
		
			
				|  |  |             FlowEntrance entrance = new FlowEntrance();
 | 
	
		
			
				|  |  |             entrance.setDataSet(headModel.getDatasetCode());
 | 
	
		
			
				|  |  |             entrance.setMeta(headModel.getMetadataCode());
 | 
	
		
			
				|  |  |             entrances.add(entrance);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return entrances;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<FlowLines> getFlowLines(Long schemeVersionId) {
 | 
	
		
			
				|  |  |         List<FlowLines> lines = new ArrayList<>();
 | 
	
		
			
				|  |  |         List<CrawlerFlowModel> modelList = crawlerFlowDao.getCrawlerFlowList(schemeVersionId);
 | 
	
		
			
				|  |  |         for (CrawlerFlowModel model : modelList) {
 | 
	
		
			
				|  |  |             FlowLines line = new FlowLines();
 | 
	
		
			
				|  |  |             line.setFrom(model.getInputDatasetCode());
 | 
	
		
			
				|  |  |             line.setFromPort(model.getInputMetadataCode());
 | 
	
		
			
				|  |  |             line.setTo(model.getDatasetCode());
 | 
	
		
			
				|  |  |             line.setToPort(model.getMetadataCode());
 | 
	
		
			
				|  |  |             lines.add(line);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return lines;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 删除编排数据
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param version
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public String deleteJobData(String version) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(Long.valueOf(version));
 | 
	
		
			
				|  |  |             if (versionModel == null || versionModel.getId() == null) {
 | 
	
		
			
				|  |  |                 return "删除失败";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //删除对应表记录
 | 
	
		
			
				|  |  |             crawlerDatasetDao.deleteCrawlerDatasetList(versionModel.getId());
 | 
	
		
			
				|  |  |             crawlerFlowHeadDao.deleteCrawlerFlowHeadList(versionModel.getId());
 | 
	
		
			
				|  |  |             crawlerFlowDao.deleteCrawlerFlowList(versionModel.getId());
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             return "删除失败";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return SqlConstants.EMPTY;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 数据集列表
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param limit  rows
 | 
	
		
			
				|  |  |      * @param offset page
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public DetailModelResult getDataSetResult(Integer limit, Integer offset) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             StringBuffer stringBuffer = new StringBuffer();
 | 
	
		
			
				|  |  |             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" +
 | 
	
		
			
				|  |  |                     " FROM crawler_dataset a " +
 | 
	
		
			
				|  |  |                     " GROUP BY a.scheme_id, a.scheme_version_id ";
 | 
	
		
			
				|  |  |             stringBuffer.append(sql);
 | 
	
		
			
				|  |  |             if (limit != null && offset != null) {
 | 
	
		
			
				|  |  |                 if (limit > 0 && offset > 0) {
 | 
	
		
			
				|  |  |                     stringBuffer.append("  LIMIT " + (offset - 1) * limit + "," + limit);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             stringBuffer.append(" ;");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             Integer total = crawlerDatasetDao.getTotalRows();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             List<Map<String, Object>> list = crawlerDatasetDao.queryListBySql(stringBuffer.toString());
 | 
	
		
			
				|  |  |             DetailModelResult detailModelResult = DetailModelResult.success("获取数据集成功");
 | 
	
		
			
				|  |  |             detailModelResult.setDetailModelList(list);
 | 
	
		
			
				|  |  |             detailModelResult.setTotalCount(total);
 | 
	
		
			
				|  |  |             return detailModelResult;
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             return DetailModelResult.error("获取数据集失败");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取编排已选择的适配数据集
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param schemeVersionId
 | 
	
		
			
				|  |  |      * @param datasetIdStr
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<MappingDataset> getSchemeDatasetByChecked(Long schemeVersionId, String datasetIdStr) throws Exception {
 | 
	
		
			
				|  |  |         AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(schemeVersionId);
 | 
	
		
			
				|  |  |         //获取适配数据集总和
 | 
	
		
			
				|  |  |         AdapterVersion adapterVersion = new AdapterVersion(versionModel.getVersion());
 | 
	
		
			
				|  |  |         List<AdapterDatasetModel> adapterDatasetModelList = new ArrayList<>();
 | 
	
		
			
				|  |  |         if (datasetIdStr != null && !"".equals(datasetIdStr)) {
 | 
	
		
			
				|  |  |             String[] datasetIdList = datasetIdStr.split(",");
 | 
	
		
			
				|  |  |             List<Long> newDatasetIdList = new ArrayList<>();
 | 
	
		
			
				|  |  |             for (String datasetId : datasetIdList) {
 | 
	
		
			
				|  |  |                 if (!StringUtil.isStrEmpty(datasetId)) {
 | 
	
		
			
				|  |  |                     Long newDatasetId = Long.parseLong(datasetId);
 | 
	
		
			
				|  |  |                     newDatasetIdList.add(newDatasetId);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             adapterDatasetModelList = adapterDatasetService.getListByAdapterDatasetIdList(adapterVersion, newDatasetIdList);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             adapterDatasetModelList = adapterDatasetService.getDatasetList(AdapterDatasetModel.class, versionModel.getVersion(), null, null, null, null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //获取编排数据集
 | 
	
		
			
				|  |  |         List<CrawlerDataSetModel> crawlerDataset = crawlerDatasetDao.getCrawlerDatasetList(versionModel.getId());
 | 
	
		
			
				|  |  |         List<MappingDataset> list = new ArrayList<>();
 | 
	
		
			
				|  |  |         for (AdapterDatasetModel datasetModel : adapterDatasetModelList) {
 | 
	
		
			
				|  |  | //            if (crawlerDataset != null && crawlerDataset.size() > 0) {
 | 
	
		
			
				|  |  |             MappingDataset obj = new MappingDataset();
 | 
	
		
			
				|  |  | //                for (CrawlerDataSetModel cDataSet : crawlerDataset) {
 | 
	
		
			
				|  |  |             if (!StringUtil.isStrEmpty(datasetModel.getAdapterDatasetCode())) {
 | 
	
		
			
				|  |  |                 List<MappingMetadata> metadatas = getMappingMetaDatasByDataset(versionModel.getVersion(), datasetModel.getStdDatasetId());
 | 
	
		
			
				|  |  |                 obj.setId(datasetModel.getStdDatasetId());
 | 
	
		
			
				|  |  |                 obj.setCode(datasetModel.getStdDatasetCode());
 | 
	
		
			
				|  |  |                 obj.setName(datasetModel.getStdDatasetName());
 | 
	
		
			
				|  |  |                 obj.setData(metadatas);
 | 
	
		
			
				|  |  | //                        break;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | //                }
 | 
	
		
			
				|  |  |             list.add(obj);
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return list;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 返回前端映射数据元信息
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param adapterVersion 适配版本号
 | 
	
		
			
				|  |  |      * @param dataSetId      适配数据集ID
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<MappingMetadata> getMappingMetaDatasByDataset(String adapterVersion, Long dataSetId) {
 | 
	
		
			
				|  |  |         List<AdapterMetadataModel> adapterMetadataModels = adapterMetadataService.getAdapterMetadataByDataset(adapterVersion, dataSetId);
 | 
	
		
			
				|  |  |         AdapterDatasetModel adapterDatasetModel = adapterMetadataService.getAdapterDataset(adapterVersion, dataSetId);
 | 
	
		
			
				|  |  |         List<MappingMetadata> resultList = new ArrayList<>();
 | 
	
		
			
				|  |  |         if (adapterMetadataModels != null && adapterMetadataModels.size() > 0) {
 | 
	
		
			
				|  |  |             for (AdapterMetadataModel metadataModel : adapterMetadataModels) {
 | 
	
		
			
				|  |  |                 if (!StringUtil.isStrEmpty(metadataModel.getAdapterMetadataCode())) {
 | 
	
		
			
				|  |  |                     MappingMetadata metadata = new MappingMetadata();
 | 
	
		
			
				|  |  |                     metadata.setId(metadataModel.getAdapterMetadataId());
 | 
	
		
			
				|  |  |                     metadata.setCode(adapterDatasetModel.getAdapterDatasetCode() + "-" + metadataModel.getAdapterMetadataCode());
 | 
	
		
			
				|  |  |                     metadata.setName(metadataModel.getAdapterMetadataName());
 | 
	
		
			
				|  |  |                     resultList.add(metadata);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return resultList;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取适配方案映射数据
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param schemeVersionId
 | 
	
		
			
				|  |  |      * @param datasetIdStr
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public String getRelations(Integer schemeVersionId, String datasetIdStr, String lineStr) {
 | 
	
		
			
				|  |  |         return "";  //TODO: Use jackson
 | 
	
		
			
				|  |  | //        JSONObject jsonObject = new JSONObject();
 | 
	
		
			
				|  |  | //        try {
 | 
	
		
			
				|  |  | //            List<MappingDataset> datasets = getSchemeDatasetByChecked(schemeVersionId, datasetIdStr);
 | 
	
		
			
				|  |  | //            List<FlowLines> lines = getFlowLines(schemeVersionId);
 | 
	
		
			
				|  |  | //            if (StringUtil.isEmpty(lineStr)) {
 | 
	
		
			
				|  |  | //                lines = getFlowLines(schemeVersionId);
 | 
	
		
			
				|  |  | //            } else {
 | 
	
		
			
				|  |  | //                lines = lineCache.get(schemeVersionId);
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  | //            jsonObject.put("tables", datasets);
 | 
	
		
			
				|  |  | //            jsonObject.put("rels", lines);
 | 
	
		
			
				|  |  | //        } catch (Exception e) {
 | 
	
		
			
				|  |  | //            e.printStackTrace();
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //        return jsonObject.toString();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public void setLinesCache(Integer schemeVersionId, String lines) throws IOException {
 | 
	
		
			
				|  |  |         ObjectMapper objectMapper = new ObjectMapper();
 | 
	
		
			
				|  |  |         ObjectNode rootNode = objectMapper.readValue(lines, ObjectNode.class);
 | 
	
		
			
				|  |  |         String lineJson = rootNode.get("lines").toString();
 | 
	
		
			
				|  |  |         List<FlowLines> line = objectMapper.readValue(lineJson, List.class);
 | 
	
		
			
				|  |  |         lineCache.put(schemeVersionId, line);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public void deleteCurrentPage(Integer rows, Integer page) {
 | 
	
		
			
				|  |  |         DetailModelResult currentResut = getDataSetResult(rows, page);
 | 
	
		
			
				|  |  |         List<Map<String, Object>> list = currentResut.getDetailModelList();
 | 
	
		
			
				|  |  |         for (Map<String, Object> map : list) {
 | 
	
		
			
				|  |  |             String version = String.valueOf(map.get("scheme_version_id"));
 | 
	
		
			
				|  |  |             deleteJobData(version);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public DetailModelResult getDataSetSavedResult(Long version) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             DetailModelResult checkedSchemeLs = getDataSetResult(null, null);
 | 
	
		
			
				|  |  |             List<Map<String, Object>> list = checkedSchemeLs.getDetailModelList();
 | 
	
		
			
				|  |  |             for (Map<String, Object> objectMap : list) {
 | 
	
		
			
				|  |  |                 String versionID = objectMap.get("scheme_version_id").toString();
 | 
	
		
			
				|  |  |                 if (versionID.equals(version.toString())) {
 | 
	
		
			
				|  |  |                     String datasetIdStr = objectMap.get("dataSetId").toString();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     List<MappingDataset> datasetList = getSchemeDatasetByChecked(version, datasetIdStr);
 | 
	
		
			
				|  |  |                     List<DtoJobDataset>  rsJobDatasetList = new ArrayList<>();
 | 
	
		
			
				|  |  |                     for (MappingDataset dataset : datasetList) {
 | 
	
		
			
				|  |  |                         DtoJobDataset rsJobDataset = new DtoJobDataset();
 | 
	
		
			
				|  |  |                         rsJobDataset.setJobDatasetId(dataset.getId().toString());
 | 
	
		
			
				|  |  |                         rsJobDataset.setJobDatasetName(dataset.getName());
 | 
	
		
			
				|  |  |                         rsJobDataset.setJobDatasetCode(dataset.getCode());
 | 
	
		
			
				|  |  |                         rsJobDatasetList.add(rsJobDataset);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     DetailModelResult result = new DetailModelResult();
 | 
	
		
			
				|  |  |                     result.setDetailModelList(rsJobDatasetList);
 | 
	
		
			
				|  |  |                     return result;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             return DetailModelResult.error("获取已存任务编排数据集错误");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return DetailModelResult.error("获取已存任务编排数据集错误");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public DetailModelResult getSchemeSavedResult() {
 | 
	
		
			
				|  |  |         DetailModelResult allScheme = adapterSchemeService.getAdapterSchemeResultModelList();
 | 
	
		
			
				|  |  |         List<AdapterSchemeResultModel> allSchemeLs = allScheme.getDetailModelList();
 | 
	
		
			
				|  |  |         if (allSchemeLs != null && allSchemeLs.size() > 0) {
 | 
	
		
			
				|  |  |             DetailModelResult checkedSchemeLs = getDataSetResult(null, null);
 | 
	
		
			
				|  |  |             List<Map<String, Object>> list = checkedSchemeLs.getDetailModelList();
 | 
	
		
			
				|  |  |             Set<String> schemeIdSets = new HashSet<>();
 | 
	
		
			
				|  |  |             Set<String> versionSets = new HashSet<>();
 | 
	
		
			
				|  |  |             DetailModelResult result = new DetailModelResult();
 | 
	
		
			
				|  |  |             List<AdapterSchemeVersionResultDetailModel> versionModelList = new ArrayList<>();
 | 
	
		
			
				|  |  |             if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |                 for (Map<String, Object> objectMap : list) {
 | 
	
		
			
				|  |  |                     if (objectMap.get("scheme_id") != null && objectMap.get("scheme_version_id") != null) {
 | 
	
		
			
				|  |  |                         schemeIdSets.add(objectMap.get("scheme_id").toString());
 | 
	
		
			
				|  |  |                         versionSets.add(objectMap.get("scheme_version_id").toString());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 if (schemeIdSets.size() > 0 && versionSets.size() > 0) {
 | 
	
		
			
				|  |  |                     for (AdapterSchemeResultModel schemeL : allSchemeLs) {
 | 
	
		
			
				|  |  |                         String schemeID = schemeL.getSchemeId().toString();
 | 
	
		
			
				|  |  |                         if (schemeIdSets.contains(schemeID)) {
 | 
	
		
			
				|  |  |                             String name = schemeL.getName();
 | 
	
		
			
				|  |  |                             List<AdapterSchemeVersionModel> versionModels = schemeL.getVersionList();
 | 
	
		
			
				|  |  |                             for (AdapterSchemeVersionModel versionModel : versionModels) {
 | 
	
		
			
				|  |  |                                 String versionID = versionModel.getId().toString();
 | 
	
		
			
				|  |  |                                 if (versionSets.contains(versionID)) {
 | 
	
		
			
				|  |  |                                     AdapterSchemeVersionResultDetailModel model = new AdapterSchemeVersionResultDetailModel();
 | 
	
		
			
				|  |  |                                     model.setSchemeName(name);
 | 
	
		
			
				|  |  |                                     model.setId(versionModel.getId());
 | 
	
		
			
				|  |  |                                     model.setName(versionModel.getName());
 | 
	
		
			
				|  |  |                                     model.setSchemeId(versionModel.getSchemeId());
 | 
	
		
			
				|  |  |                                     model.setBaseVersion(versionModel.getBaseVersion());
 | 
	
		
			
				|  |  |                                     model.setPath(versionModel.getPath());
 | 
	
		
			
				|  |  |                                     model.setPublishStatus(versionModel.getPublishStatus());
 | 
	
		
			
				|  |  |                                     model.setPublishTime(versionModel.getPublishTime());
 | 
	
		
			
				|  |  |                                     model.setPublishUser(versionModel.getPublishUser());
 | 
	
		
			
				|  |  |                                     model.setVersion(versionModel.getVersion());
 | 
	
		
			
				|  |  |                                     versionModelList.add(model);
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     result.setDetailModelList(versionModelList);
 | 
	
		
			
				|  |  |                     return result;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return DetailModelResult.error("获取已编排任务适配方案失败!");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static DBList getMongoDBData(String page, String rows, String tableCode, String paramJson) throws Exception {
 | 
	
		
			
				|  |  |         MongodbQuery mdb = new MongodbQuery("mydb");
 | 
	
		
			
				|  |  |         QueryEntity qe = new QueryEntity(tableCode, Integer.valueOf(page), Integer.valueOf(rows));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //设置参数
 | 
	
		
			
				|  |  |         //设置参数
 | 
	
		
			
				|  |  |         if (!org.springframework.util.StringUtils.isEmpty(paramJson) && !"{}".equals(paramJson)) {
 | 
	
		
			
				|  |  |             JSONArray ar = JSONArray.fromObject(paramJson);
 | 
	
		
			
				|  |  |             for (int i = 0; i < ar.size(); i++) {
 | 
	
		
			
				|  |  |                 JSONObject jo = (JSONObject) ar.get(i);
 | 
	
		
			
				|  |  |                 String andOr = String.valueOf(jo.get("andOr"));
 | 
	
		
			
				|  |  |                 String field = String.valueOf(jo.get("field"));
 | 
	
		
			
				|  |  |                 String cond = String.valueOf(jo.get("condition"));
 | 
	
		
			
				|  |  |                 String value = String.valueOf(jo.get("value"));
 | 
	
		
			
				|  |  |                 qe.addCondition(new QueryCondition(andOr, cond, field, value));
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         DBList list = mdb.query(qe);
 | 
	
		
			
				|  |  |         return list;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | //    public static void main(String[] args) {
 | 
	
		
			
				|  |  | //        try {
 | 
	
		
			
				|  |  | //        List<EhrCondition> queryParams = new ArrayList<>();
 | 
	
		
			
				|  |  | //        queryParams.add(new EhrCondition(" = ","_id","579091357a2b8f19b0000001" ));
 | 
	
		
			
				|  |  | //        ObjectMapper mapper = new ObjectMapper();
 | 
	
		
			
				|  |  | //        ObjectNode paramsNode = mapper.createObjectNode();
 | 
	
		
			
				|  |  | //        paramsNode.put("tableCode", "mydb");
 | 
	
		
			
				|  |  | //            paramsNode.put("condition", mapper.writeValueAsString(queryParams));
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //            DBList document= getMongoDBData("1","10","fs.chunks","");
 | 
	
		
			
				|  |  | //            List<org.json.JSONObject> list=document.getList();
 | 
	
		
			
				|  |  | //            for (org.json.JSONObject jsonObject:list){
 | 
	
		
			
				|  |  | //                String name = UUID.randomUUID().toString()+".jpg";
 | 
	
		
			
				|  |  | //                Binary binary = (Binary) jsonObject.get("data");
 | 
	
		
			
				|  |  | //                byte type=binary.getType();
 | 
	
		
			
				|  |  | //                System.out.println(type);
 | 
	
		
			
				|  |  | //                byte[] fileByte= binary.getData();
 | 
	
		
			
				|  |  | //                FileUtil.writeFile("E:/test/mongoFile/"+name,fileByte,"utf-8");
 | 
	
		
			
				|  |  | //                System.out.println(fileByte);
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //            System.out.println(document);
 | 
	
		
			
				|  |  | //        } catch (Exception e) {
 | 
	
		
			
				|  |  | //            e.printStackTrace();
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //        testGetBlob();
 | 
	
		
			
				|  |  | //        testFetch();
 | 
	
		
			
				|  |  | //    }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * TODO  采集测试,之后删除
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Map<String,List<org.json.JSONObject>> testFetch(){
 | 
	
		
			
				|  |  |         Map<String,List<org.json.JSONObject>> map=new HashMap<>();
 | 
	
		
			
				|  |  |         String tables[] ={"REPORT_MAIN","REPORT_THIN","REPORT_RELATION"};
 | 
	
		
			
				|  |  |         for (String table:tables){
 | 
	
		
			
				|  |  |             String sql ="select * from "+table;
 | 
	
		
			
				|  |  |             String config = "jdbc:oracle:thin:newhos/newhos@//172.19.103.71:1521/neworcl";
 | 
	
		
			
				|  |  |             DBHelper db = new DBHelper("blob",config);
 | 
	
		
			
				|  |  | //        db.dbType= DBType.Oracle;
 | 
	
		
			
				|  |  |             List<org.json.JSONObject> list = db.query(sql);
 | 
	
		
			
				|  |  | //        DBQuery  = new DBQuery("blob", config);
 | 
	
		
			
				|  |  | //        DBList dv = dbq.queryBySql(sql,1,10);
 | 
	
		
			
				|  |  | //        List<org.json.JSONObject> list2=dv.getList();
 | 
	
		
			
				|  |  |             for (org.json.JSONObject jsonObject:list){
 | 
	
		
			
				|  |  |                 if ("REPORT_THIN".equals(table)){
 | 
	
		
			
				|  |  |                     Blob blob=(Blob)jsonObject.get("CONTENT");
 | 
	
		
			
				|  |  |                     String type= (String) jsonObject.get("REPORT_TYPE");
 | 
	
		
			
				|  |  |                     try {
 | 
	
		
			
				|  |  |                         ObjectId objectId= GridFSUtil.uploadFile( blob, type, null);
 | 
	
		
			
				|  |  |                         jsonObject.put("CONTENT",objectId);
 | 
	
		
			
				|  |  | //                        InputStream in=blob.getBinaryStream();
 | 
	
		
			
				|  |  | //                        String path="e:/test/blob/"+UUID.randomUUID().toString()+"."+type;
 | 
	
		
			
				|  |  | //                        writeFile(path,in);
 | 
	
		
			
				|  |  |                     } catch (Exception e) {
 | 
	
		
			
				|  |  |                         e.printStackTrace();
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     System.out.println(jsonObject.toString());
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             map.put(table,list);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return map;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * TODO 文件采集测试 之后删除
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static void testGetBlob(){
 | 
	
		
			
				|  |  |         String sql ="select * from HOS_BLOB";
 | 
	
		
			
				|  |  |         String config = "jdbc:oracle:thin:newhos/newhos@//172.19.103.71:1521/neworcl";
 | 
	
		
			
				|  |  |         DBHelper db = new DBHelper("blob",config);
 | 
	
		
			
				|  |  | //        db.dbType= DBType.Oracle;
 | 
	
		
			
				|  |  |         List<org.json.JSONObject> list = db.query(sql);
 | 
	
		
			
				|  |  | //        DBQuery  = new DBQuery("blob", config);
 | 
	
		
			
				|  |  | //        DBList dv = dbq.queryBySql(sql,1,10);
 | 
	
		
			
				|  |  | //        List<org.json.JSONObject> list2=dv.getList();
 | 
	
		
			
				|  |  |         for (org.json.JSONObject jsonObject:list){
 | 
	
		
			
				|  |  |             Blob blob=(Blob)jsonObject.get("FILE_DATA");
 | 
	
		
			
				|  |  |             String type= (String) jsonObject.get("FILE_TYPE");
 | 
	
		
			
				|  |  |             System.out.println(blob);
 | 
	
		
			
				|  |  |             try {
 | 
	
		
			
				|  |  |                 InputStream in=blob.getBinaryStream();
 | 
	
		
			
				|  |  |                 String path="e:/test/blob/"+UUID.randomUUID().toString()+"."+type;
 | 
	
		
			
				|  |  |                 writeFile(path,in);
 | 
	
		
			
				|  |  |             } catch (Exception e) {
 | 
	
		
			
				|  |  |                 e.printStackTrace();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             System.out.println(jsonObject.toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static boolean writeFile(String filePath, InputStream stream) throws IOException {
 | 
	
		
			
				|  |  |         File file = new File(filePath);
 | 
	
		
			
				|  |  |         if(!file.getParentFile().exists() && !file.getParentFile().mkdirs()) {
 | 
	
		
			
				|  |  |             return false;
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             FileOutputStream fileOutputStream = new FileOutputStream(file);
 | 
	
		
			
				|  |  |             byte[] bbuf = new byte[1024];
 | 
	
		
			
				|  |  |             int hasRead1;
 | 
	
		
			
				|  |  |             while((hasRead1 = stream.read(bbuf)) > 0) {
 | 
	
		
			
				|  |  |                 fileOutputStream.write(bbuf, 0, hasRead1);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             fileOutputStream.close();
 | 
	
		
			
				|  |  |             return true;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |