|  | @ -1,570 +0,0 @@
 | 
	
		
			
				|  |  | package com.yihu.ehr.resource.service.impl;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.yihu.ehr.framework.model.ActionResult;
 | 
	
		
			
				|  |  | import com.yihu.ehr.framework.model.DataGridResult;
 | 
	
		
			
				|  |  | import com.yihu.ehr.framework.model.Result;
 | 
	
		
			
				|  |  | import com.yihu.ehr.framework.model.TreeResult;
 | 
	
		
			
				|  |  | import com.yihu.ehr.framework.util.PKUtil;
 | 
	
		
			
				|  |  | import com.yihu.ehr.resource.dao.*;
 | 
	
		
			
				|  |  | import com.yihu.ehr.resource.model.*;
 | 
	
		
			
				|  |  | import com.yihu.ehr.resource.service.IRsResourceService;
 | 
	
		
			
				|  |  | import com.yihu.ehr.resource.viewresult.ResourceAuthorizeDGModel;
 | 
	
		
			
				|  |  | import com.yihu.ehr.resource.viewresult.RsResourceDeatilModel;
 | 
	
		
			
				|  |  | import com.yihu.ehr.resource.viewresult.RsResourceDimensionModel;
 | 
	
		
			
				|  |  | import com.yihu.ehr.std.service.BaseHttpService;
 | 
	
		
			
				|  |  | import com.yihu.ehr.std.service.intf.IStdService;
 | 
	
		
			
				|  |  | import com.yihu.ehr.system.dao.intf.IAppDao;
 | 
	
		
			
				|  |  | import com.yihu.ehr.system.model.SystemApp;
 | 
	
		
			
				|  |  | import net.sf.json.JSONArray;
 | 
	
		
			
				|  |  | import net.sf.json.JSONObject;
 | 
	
		
			
				|  |  | import org.springframework.beans.BeanUtils;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | import org.springframework.util.StringUtils;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import javax.annotation.Resource;
 | 
	
		
			
				|  |  | import java.util.ArrayList;
 | 
	
		
			
				|  |  | import java.util.HashMap;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | @Service("resourceService")
 | 
	
		
			
				|  |  | public class RsResourceServiceImpl extends BaseHttpService implements IRsResourceService {
 | 
	
		
			
				|  |  |     @Resource(name = "rsResourceCategoryDao")
 | 
	
		
			
				|  |  |     private IRsResourceCategoryDao rsResourceCategoryDao;
 | 
	
		
			
				|  |  |     @Resource(name = "rsResourceDao")
 | 
	
		
			
				|  |  |     private IRsResourceDao rsResourceDao;
 | 
	
		
			
				|  |  |     @Resource(name = "resourceDatasetDao")
 | 
	
		
			
				|  |  |     private IRsResourceDatasetDao resourceDatasetDao;
 | 
	
		
			
				|  |  |     @Resource(name = "resourceMetadataDao")
 | 
	
		
			
				|  |  |     private IRsResourceMetadataDao resourceMetadataDao;
 | 
	
		
			
				|  |  |     @Resource(name = "appDao")
 | 
	
		
			
				|  |  |     private IAppDao appDao;
 | 
	
		
			
				|  |  |     @Resource(name = "rsAppResourceDao")
 | 
	
		
			
				|  |  |     private IRsAppResourceDao appResourceDao;
 | 
	
		
			
				|  |  |     @Resource(name = "rsAppResourceDetailDao")
 | 
	
		
			
				|  |  |     private IRsAppResourceDetailDao rsAppResourceDetailDao;
 | 
	
		
			
				|  |  |     @Resource(name = "resourceDimensionDao")
 | 
	
		
			
				|  |  |     private IRsResourceDimensionDao resourceDimensionDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private IStdService stdService;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public List<TreeResult> getResourceTreeList() throws Exception {
 | 
	
		
			
				|  |  |         List<TreeResult> treeVOs = new ArrayList<TreeResult>();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<RsResourceCategory> rsCategorya = rsResourceCategoryDao.getAllRsResourceCategory();
 | 
	
		
			
				|  |  |         for (RsResourceCategory r : rsCategorya) {
 | 
	
		
			
				|  |  |             TreeResult treeVO = new TreeResult();
 | 
	
		
			
				|  |  |             treeVO.setId(r.getId());
 | 
	
		
			
				|  |  |             treeVO.setPid(r.getPid());
 | 
	
		
			
				|  |  |             treeVO.setText(r.getName());
 | 
	
		
			
				|  |  |             treeVO.setType("1");
 | 
	
		
			
				|  |  |             treeVOs.add(treeVO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return treeVOs;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public List<TreeResult> resourceCategoryTreeList() throws Exception {
 | 
	
		
			
				|  |  |         List<TreeResult> treeVOs = new ArrayList<TreeResult>();
 | 
	
		
			
				|  |  |         List<RsResourceCategory> rsCategorya = rsResourceCategoryDao.getAllRsResourceCategory();
 | 
	
		
			
				|  |  |         for (RsResourceCategory r : rsCategorya) {
 | 
	
		
			
				|  |  |             TreeResult treeVO = new TreeResult();
 | 
	
		
			
				|  |  |             treeVO.setId(r.getId());
 | 
	
		
			
				|  |  |             treeVO.setPid(r.getPid());
 | 
	
		
			
				|  |  |             treeVO.setText(r.getName());
 | 
	
		
			
				|  |  |             treeVO.setType("1");
 | 
	
		
			
				|  |  |             treeVO.setIcon("../develop/lib/ligerui/skins/Aqua/images/tree/folder.gif");
 | 
	
		
			
				|  |  |             treeVOs.add(treeVO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<RsResource> rsResources = rsResourceDao.getAllRsResource();
 | 
	
		
			
				|  |  |         for (RsResource r : rsResources) {
 | 
	
		
			
				|  |  |             TreeResult treeVO = new TreeResult();
 | 
	
		
			
				|  |  |             treeVO.setId(r.getId());
 | 
	
		
			
				|  |  |             treeVO.setPid(r.getCategory());
 | 
	
		
			
				|  |  |             treeVO.setText(r.getName());
 | 
	
		
			
				|  |  |             treeVO.setType("2");
 | 
	
		
			
				|  |  |             treeVO.setIcon("../develop/lib/ligerui/skins/Aqua/images/tree/tree-leaf.gif");
 | 
	
		
			
				|  |  |             treeVOs.add(treeVO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return treeVOs;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public DataGridResult getResourceList(Map<String, Object> conditionMap, Integer page, Integer rows) throws Exception {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return rsResourceDao.getResourceList(conditionMap, page, rows);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public int getResourceListCount(Map<String, Object> conditionMap) throws Exception {
 | 
	
		
			
				|  |  |         return rsResourceDao.getResourceListCount(conditionMap);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public RsResourceDeatilModel getRsResourceDeatilModel(String id) throws Exception {
 | 
	
		
			
				|  |  |         RsResourceDeatilModel rsResourceDeatilModel = new RsResourceDeatilModel();
 | 
	
		
			
				|  |  |         RsResource rsResource = rsResourceDao.getResourceById(id);
 | 
	
		
			
				|  |  |         BeanUtils.copyProperties(rsResource, rsResourceDeatilModel);
 | 
	
		
			
				|  |  |         return rsResourceDeatilModel;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public void updateRsResource(RsResource rs) throws Exception {
 | 
	
		
			
				|  |  |         RsResource rsResourceEntrty = rsResourceDao.getResourceById(rs.getId());
 | 
	
		
			
				|  |  |         rsResourceEntrty.setCategory(rs.getCategory());
 | 
	
		
			
				|  |  |         rsResourceEntrty.setServiceRate(rs.getServiceRate());
 | 
	
		
			
				|  |  |         rsResourceEntrty.setName(rs.getName());
 | 
	
		
			
				|  |  |         rsResourceEntrty.setCode(rs.getCode());
 | 
	
		
			
				|  |  |         rsResourceEntrty.setType(rs.getType());
 | 
	
		
			
				|  |  |         rsResourceEntrty.setDataSupportType(rs.getDataSupportType());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public void createRsResource(RsResource rs) throws Exception {
 | 
	
		
			
				|  |  |         rsResourceDao.saveEntity(rs);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public void deleteResource(String id) throws Exception {
 | 
	
		
			
				|  |  |         RsResource rs = rsResourceDao.getResourceById(id);
 | 
	
		
			
				|  |  |         String dataSetCode = rs.getDatasetCode();
 | 
	
		
			
				|  |  |         //删除资源
 | 
	
		
			
				|  |  |         rsResourceDao.deleteEntity(rs);
 | 
	
		
			
				|  |  |         //删除资源对应的数据集和数据源
 | 
	
		
			
				|  |  |         if (!StringUtils.isEmpty(dataSetCode)) {
 | 
	
		
			
				|  |  |             resourceDatasetDao.deleteEntity(resourceDatasetDao.getEntity(RsResourceDataset.class, dataSetCode));
 | 
	
		
			
				|  |  |             resourceMetadataDao.deleteMetadatasByDataSetCode(dataSetCode);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public DataGridResult getResourceFiled(Map<String, Object> conditionMap, Integer page, Integer rows) throws Exception {
 | 
	
		
			
				|  |  |         RsResource rs = rsResourceDao.getEntity(RsResource.class, (String) conditionMap.get("resourceId"));
 | 
	
		
			
				|  |  |         conditionMap.put("datasetId", rs.getDatasetCode());
 | 
	
		
			
				|  |  |         conditionMap.put("resourceId", rs.getId());
 | 
	
		
			
				|  |  |         return rsResourceDao.getResourceFiled(conditionMap, page, rows);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public String searchRomoteResourceList(String url, Map<String, Object> params) throws Exception {
 | 
	
		
			
				|  |  |         String result = super.doGetByResourceCode(url, params);
 | 
	
		
			
				|  |  |         JSONObject jsonobject = JSONObject.fromObject(result);
 | 
	
		
			
				|  |  |         String response_params = (String) jsonobject.get("responseParams");
 | 
	
		
			
				|  |  |         return response_params;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public Result getDataSet(Map<String, Object> params) throws Exception {
 | 
	
		
			
				|  |  |         DataGridResult re = new DataGridResult();
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(params.get("datasetId"))) {
 | 
	
		
			
				|  |  |             re.setDetailModelList(net.sf.json.JSONArray.fromObject(stdService.datasetsAllVersionList()));
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             RsResourceDataset rd = resourceDatasetDao.getEntity(RsResourceDataset.class, (String) params.get("datasetId"));
 | 
	
		
			
				|  |  |             List list = new ArrayList();
 | 
	
		
			
				|  |  |             JSONObject jo = JSONObject.fromObject(rd);
 | 
	
		
			
				|  |  |             jo.put("checked", "true");
 | 
	
		
			
				|  |  |             list.add(jo);
 | 
	
		
			
				|  |  |             re.setDetailModelList(list);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return re;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public Result improtAllMetadata(RsResourceDataset dataset, String reourceId) throws Exception {
 | 
	
		
			
				|  |  |         RsResource resource = rsResourceDao.getResourceById(reourceId);
 | 
	
		
			
				|  |  |         String dataSetId = null;
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(resource.getDatasetCode())) {
 | 
	
		
			
				|  |  |             //第一次
 | 
	
		
			
				|  |  |             dataSetId = PKUtil.getUuid();
 | 
	
		
			
				|  |  |             //更新资源
 | 
	
		
			
				|  |  |             resource.setDatasetCode(dataSetId);
 | 
	
		
			
				|  |  |             dataset.setId(dataSetId);
 | 
	
		
			
				|  |  |             resourceDatasetDao.saveEntity(dataset);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             dataSetId = resource.getDatasetCode();
 | 
	
		
			
				|  |  |             resourceMetadataDao.deleteLogicDataSupportMetaDataByLocalDataSetId(dataSetId);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         Map<String, Object> params = new HashMap<String, Object>();
 | 
	
		
			
				|  |  |         params.put("code", dataset.getCode());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Map<String, Object> paramsTemp = new HashMap<String, Object>();
 | 
	
		
			
				|  |  |         paramsTemp.put("condition", JSONObject.fromObject(params).toString());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String responseParasm = stdService.metadatasAllVersionList(paramsTemp);
 | 
	
		
			
				|  |  |         JSONArray array = JSONArray.fromObject(responseParasm);
 | 
	
		
			
				|  |  |         if (array.size() == 0) {
 | 
	
		
			
				|  |  |             throw new Exception("该数据集没有数据元");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //保存数据集
 | 
	
		
			
				|  |  |         //保存数据元
 | 
	
		
			
				|  |  |         for (int i = 0; i < array.size(); i++) {
 | 
	
		
			
				|  |  |             JSONObject jsonObject = array.getJSONObject(i);
 | 
	
		
			
				|  |  |             RsResourceMetadata rsResourceMetadata = new RsResourceMetadata();
 | 
	
		
			
				|  |  |             rsResourceMetadata.setDatasetId(dataSetId);
 | 
	
		
			
				|  |  |             rsResourceMetadata.setCode((String) jsonObject.get("code"));
 | 
	
		
			
				|  |  |             rsResourceMetadata.setDeCode((String) jsonObject.get("deCode"));
 | 
	
		
			
				|  |  |             rsResourceMetadata.setResourceId(reourceId);
 | 
	
		
			
				|  |  |             rsResourceMetadata.setName((String) jsonObject.get("name"));
 | 
	
		
			
				|  |  |             rsResourceMetadata.setType((String) jsonObject.get("type"));
 | 
	
		
			
				|  |  |             rsResourceMetadata.setFormat((String) jsonObject.get("format"));
 | 
	
		
			
				|  |  |             rsResourceMetadata.setDictId((Integer) jsonObject.get("dictId"));
 | 
	
		
			
				|  |  |             rsResourceMetadata.setDefinition((String) jsonObject.get("definition"));
 | 
	
		
			
				|  |  |             rsResourceMetadata.setNullable((Integer) jsonObject.get("nullable"));
 | 
	
		
			
				|  |  |             rsResourceMetadata.setColumnLength((String) jsonObject.get("columnLength"));
 | 
	
		
			
				|  |  |             rsResourceMetadata.setColumnType((String) jsonObject.get("columnType"));
 | 
	
		
			
				|  |  |             rsResourceMetadata.setColumnName((String) jsonObject.get("columnName"));
 | 
	
		
			
				|  |  |             rsResourceMetadata.setPrimaryKey((Integer) jsonObject.get("primaryKey"));
 | 
	
		
			
				|  |  |             rsResourceMetadata.setDataSupportType(1);
 | 
	
		
			
				|  |  |             resourceMetadataDao.saveEntity(rsResourceMetadata);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return Result.success("导入成功");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public Result deleteMetadata(String id) throws Exception {
 | 
	
		
			
				|  |  |         resourceMetadataDao.deleteEntity(resourceMetadataDao.getEntity(RsResourceMetadata.class, id));
 | 
	
		
			
				|  |  |         return Result.success("删除成功");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public RsResourceMetadata getRsResourceMetadata(String id) throws Exception {
 | 
	
		
			
				|  |  |         return resourceMetadataDao.getEntity(RsResourceMetadata.class, id);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public Result createMetaData(RsResourceMetadata rmd) throws Exception {
 | 
	
		
			
				|  |  |         RsResourceMetadata rmdTemp = resourceMetadataDao.getMetadataByCodeAndResourceId(rmd.getCode(), rmd.getResourceId());
 | 
	
		
			
				|  |  |         if (rmdTemp != null) {
 | 
	
		
			
				|  |  |             return Result.error("字段代码已经存在");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         resourceMetadataDao.saveEntity(rmd);
 | 
	
		
			
				|  |  |         return Result.success("保存成功");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public Result updateMetaData(RsResourceMetadata rmd) throws Exception {
 | 
	
		
			
				|  |  |         RsResourceMetadata rmdTemp = resourceMetadataDao.getMetadataByCodeAndResourceIdWithOutId(rmd.getCode(), rmd.getResourceId(),rmd.getId());
 | 
	
		
			
				|  |  |         if (rmdTemp != null) {
 | 
	
		
			
				|  |  |             return Result.error("字段代码已经存在");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         rmdTemp = resourceMetadataDao.getEntity(RsResourceMetadata.class, rmd.getId());
 | 
	
		
			
				|  |  |         rmdTemp.setColumnName(rmd.getColumnName());
 | 
	
		
			
				|  |  |         rmdTemp.setColumnType(rmd.getColumnType());
 | 
	
		
			
				|  |  |         rmdTemp.setColumnLength(rmd.getColumnLength());
 | 
	
		
			
				|  |  |         rmdTemp.setNullable(rmd.getNullable());
 | 
	
		
			
				|  |  |         rmdTemp.setCode(rmd.getCode());
 | 
	
		
			
				|  |  |         rmdTemp.setPrimaryKey(rmd.getPrimaryKey());
 | 
	
		
			
				|  |  |         rmdTemp.setDefinition(rmd.getDefinition());
 | 
	
		
			
				|  |  |         rmdTemp.setDataSupportType(rmd.getDataSupportType());
 | 
	
		
			
				|  |  |         rmdTemp.setLogicDataSource(rmd.getLogicDataSource());
 | 
	
		
			
				|  |  |         return Result.success("更新成功");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public Result getMetaDataByDatasetId(String code, String datasetId) throws Exception {
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(code)) {
 | 
	
		
			
				|  |  |             return new DataGridResult();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         DataGridResult r = new DataGridResult();
 | 
	
		
			
				|  |  |         Map<String, Object> params = new HashMap<String, Object>();
 | 
	
		
			
				|  |  |         params.put("code", code);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Map<String, Object> paramsTemp = new HashMap<String, Object>();
 | 
	
		
			
				|  |  |         paramsTemp.put("condition", JSONObject.fromObject(params).toString());
 | 
	
		
			
				|  |  |         //得到所有的数据元
 | 
	
		
			
				|  |  |         String responseParasm = stdService.metadatasAllVersionList(paramsTemp);
 | 
	
		
			
				|  |  |         JSONArray jr = JSONArray.fromObject(responseParasm);
 | 
	
		
			
				|  |  |         if (!StringUtils.isEmpty(datasetId)) {
 | 
	
		
			
				|  |  |             List<RsResourceMetadata> md = resourceMetadataDao.getMetadataByLocalDatssetId(datasetId);
 | 
	
		
			
				|  |  |             for (int i = 0; i < JSONArray.fromObject(responseParasm).size(); i++) {
 | 
	
		
			
				|  |  |                 for (int j = 0; j < md.size(); j++) {
 | 
	
		
			
				|  |  |                     if (JSONArray.fromObject(responseParasm).getJSONObject(i).get("code").equals(md.get(j).getCode())) {
 | 
	
		
			
				|  |  |                         jr.getJSONObject(i).put("checked", "true");
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         r.setDetailModelList(jr);
 | 
	
		
			
				|  |  |         return r;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public Result improtSameMetadata(String reourceId, String metaData, String dataset, String datasetId) throws Exception {
 | 
	
		
			
				|  |  |         RsResource resource = rsResourceDao.getResourceById(reourceId);
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(datasetId)) {
 | 
	
		
			
				|  |  |             //第一次导入
 | 
	
		
			
				|  |  |             String datasetID = PKUtil.getUuid();//得到ID
 | 
	
		
			
				|  |  |             RsResourceDataset rsResourceDataset = new RsResourceDataset();
 | 
	
		
			
				|  |  |             org.apache.commons.beanutils.BeanUtils.populate(rsResourceDataset, JSONObject.fromObject(dataset));
 | 
	
		
			
				|  |  |             rsResourceDataset.setId(datasetID);
 | 
	
		
			
				|  |  |             resourceDatasetDao.saveEntity(rsResourceDataset);
 | 
	
		
			
				|  |  |             JSONArray array = JSONArray.fromObject(metaData);
 | 
	
		
			
				|  |  |             if (array.size() == 0) {
 | 
	
		
			
				|  |  |                 throw new Exception("该数据集没有数据元");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             for (int i = 0; i < array.size(); i++) {
 | 
	
		
			
				|  |  |                 JSONObject jsonObject = array.getJSONObject(i);
 | 
	
		
			
				|  |  |                 RsResourceMetadata rsResourceMetadata = new RsResourceMetadata();
 | 
	
		
			
				|  |  |                 org.apache.commons.beanutils.BeanUtils.populate(rsResourceMetadata, jsonObject);
 | 
	
		
			
				|  |  |                 rsResourceMetadata.setDataSupportType(1);
 | 
	
		
			
				|  |  |                 rsResourceMetadata.setDatasetId(datasetID);
 | 
	
		
			
				|  |  |                 rsResourceMetadata.setResourceId(reourceId);
 | 
	
		
			
				|  |  |                 resourceMetadataDao.saveEntity(rsResourceMetadata);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             resource.setDatasetCode(datasetID);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //修改
 | 
	
		
			
				|  |  |             resourceMetadataDao.deleteLogicDataSupportMetaDataByLocalDataSetId(datasetId);
 | 
	
		
			
				|  |  |             JSONArray array = JSONArray.fromObject(metaData);
 | 
	
		
			
				|  |  |             for (int i = 0; i < array.size(); i++) {
 | 
	
		
			
				|  |  |                 JSONObject jsonObject = array.getJSONObject(i);
 | 
	
		
			
				|  |  |                 RsResourceMetadata rsResourceMetadata = new RsResourceMetadata();
 | 
	
		
			
				|  |  |                 org.apache.commons.beanutils.BeanUtils.populate(rsResourceMetadata, jsonObject);
 | 
	
		
			
				|  |  |                 rsResourceMetadata.setDataSupportType(1);
 | 
	
		
			
				|  |  |                 rsResourceMetadata.setResourceId(reourceId);
 | 
	
		
			
				|  |  |                 rsResourceMetadata.setDatasetId(resource.getDatasetCode());
 | 
	
		
			
				|  |  |                 resourceMetadataDao.saveEntity(rsResourceMetadata);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return Result.success("导入成功");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public RsResourceDataset getLocalDataSetById(String datasetId) throws Exception {
 | 
	
		
			
				|  |  |         return resourceDatasetDao.getEntity(RsResourceDataset.class, datasetId);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public Result getMetadataByLocalDatssetId(String datasetId) throws Exception {
 | 
	
		
			
				|  |  |         ActionResult ar = new ActionResult();
 | 
	
		
			
				|  |  |         ar.setData(resourceMetadataDao.getMetadataByLocalDatssetId(datasetId));
 | 
	
		
			
				|  |  |         return ar;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public Result getResourceAuthorize(String resourceId, String appId) throws Exception {
 | 
	
		
			
				|  |  |         DataGridResult dr = new DataGridResult();
 | 
	
		
			
				|  |  |         //查找该资源所对应的数据元
 | 
	
		
			
				|  |  |         RsResource rsResource = rsResourceDao.getResourceById(resourceId);
 | 
	
		
			
				|  |  |         List<RsResourceMetadata> metadatas = resourceMetadataDao.getMetadataByResourceId(rsResource.getId());
 | 
	
		
			
				|  |  |         //得到所有的细表
 | 
	
		
			
				|  |  |         RsAppResource rsAppResource = appResourceDao.getAppResourceByResourceIdAndAppId(resourceId, appId);
 | 
	
		
			
				|  |  |         List<RsAppResourceDetail> rsAppResourceDetails = rsAppResourceDetailDao.getAppResourceDetailByAppResouceId(rsAppResource.getId());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<ResourceAuthorizeDGModel> rdg = new ArrayList<ResourceAuthorizeDGModel>();
 | 
	
		
			
				|  |  |         if (rsAppResourceDetails.size() == 0) {
 | 
	
		
			
				|  |  |             for (int i = 0; i < metadatas.size(); i++) {
 | 
	
		
			
				|  |  |                 ResourceAuthorizeDGModel resourceAuthorizeDGModel = new ResourceAuthorizeDGModel();
 | 
	
		
			
				|  |  |                 resourceAuthorizeDGModel.setMetaDataId(metadatas.get(i).getId());
 | 
	
		
			
				|  |  |                 resourceAuthorizeDGModel.setMetaDataName(metadatas.get(i).getName());
 | 
	
		
			
				|  |  |                 rdg.add(resourceAuthorizeDGModel);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             for (int i = 0; i < metadatas.size(); i++) {
 | 
	
		
			
				|  |  |                 for (int j = 0; j < rsAppResourceDetails.size(); j++) {
 | 
	
		
			
				|  |  |                     if (metadatas.get(i).getId().equals(rsAppResourceDetails.get(j).getMetadataId())) {
 | 
	
		
			
				|  |  |                         //允许的
 | 
	
		
			
				|  |  |                         ResourceAuthorizeDGModel resourceAuthorizeDGModel = new ResourceAuthorizeDGModel();
 | 
	
		
			
				|  |  |                         resourceAuthorizeDGModel.setChecked("true");
 | 
	
		
			
				|  |  |                         resourceAuthorizeDGModel.setAppResourceDeatilId(rsAppResourceDetails.get(j).getId());
 | 
	
		
			
				|  |  |                         resourceAuthorizeDGModel.setMetaDataId(metadatas.get(i).getId());
 | 
	
		
			
				|  |  |                         resourceAuthorizeDGModel.setMetaDataName(metadatas.get(i).getName());
 | 
	
		
			
				|  |  |                         if (!StringUtils.isEmpty(rsAppResourceDetails.get(j).getDimensionId())) {
 | 
	
		
			
				|  |  |                             RsDimension rd = resourceDimensionDao.getEntity(RsDimension.class, rsAppResourceDetails.get(j).getDimensionId());
 | 
	
		
			
				|  |  |                             resourceAuthorizeDGModel.setDimensionMessage(rd.getName() + rsAppResourceDetails.get(j).getDimensionValue());
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         rdg.add(resourceAuthorizeDGModel);
 | 
	
		
			
				|  |  |                         break;
 | 
	
		
			
				|  |  |                     } else {
 | 
	
		
			
				|  |  |                         if (j == rsAppResourceDetails.size() - 1) {
 | 
	
		
			
				|  |  |                             ResourceAuthorizeDGModel resourceAuthorizeDGModel = new ResourceAuthorizeDGModel();
 | 
	
		
			
				|  |  |                             resourceAuthorizeDGModel.setMetaDataId(metadatas.get(i).getId());
 | 
	
		
			
				|  |  |                             resourceAuthorizeDGModel.setMetaDataName(metadatas.get(i).getName());
 | 
	
		
			
				|  |  |                             rdg.add(resourceAuthorizeDGModel);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         dr.setDetailModelList(rdg);
 | 
	
		
			
				|  |  |         return dr;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public Result getMetaData(Map<String, Object> params) throws Exception {
 | 
	
		
			
				|  |  |         DataGridResult re = new DataGridResult();
 | 
	
		
			
				|  |  |         RsResourceMetadata rd = resourceMetadataDao.getEntity(RsResourceMetadata.class, (String) params.get("id"));
 | 
	
		
			
				|  |  |         List rslist = new ArrayList();
 | 
	
		
			
				|  |  |         rslist.add(rd);
 | 
	
		
			
				|  |  |         re.setDetailModelList(rslist);
 | 
	
		
			
				|  |  |         return re;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public Result getResourceApp(String resourceid) throws Exception {
 | 
	
		
			
				|  |  |         ActionResult returnData = new ActionResult();
 | 
	
		
			
				|  |  |         Map<String, Object> rsMap = new HashMap<String, Object>();
 | 
	
		
			
				|  |  |         List<SystemApp> selectApps = new ArrayList<SystemApp>();//已经选中
 | 
	
		
			
				|  |  |         List<SystemApp> noSelectApps = new ArrayList<SystemApp>();//未选中
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<SystemApp> allApps = appDao.getAllApplist();
 | 
	
		
			
				|  |  |         List<RsAppResource> selectApp = appResourceDao.getAppResourceByResourceId(resourceid);
 | 
	
		
			
				|  |  |         if (selectApp != null && selectApp.size() != 0) {
 | 
	
		
			
				|  |  |             for (int i = 0; i < allApps.size(); i++) {
 | 
	
		
			
				|  |  |                 for (int j = 0; j < selectApp.size(); j++) {
 | 
	
		
			
				|  |  |                     if (allApps.get(i).getId().equals(selectApp.get(j).getAppId())) {
 | 
	
		
			
				|  |  |                         selectApps.add(allApps.get(i));
 | 
	
		
			
				|  |  |                         break;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     if (j == selectApp.size() - 1) {
 | 
	
		
			
				|  |  |                         noSelectApps.add(allApps.get(i));
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             rsMap.put("noSelect", noSelectApps);
 | 
	
		
			
				|  |  |             rsMap.put("select", selectApps);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             rsMap.put("noSelect", allApps);
 | 
	
		
			
				|  |  |             rsMap.put("select", null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         returnData.setData(rsMap);
 | 
	
		
			
				|  |  |         return returnData;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public Result updateResourceApp(String ids, String resourceId) throws Exception {
 | 
	
		
			
				|  |  |         // appResourceDao.deleteByResourceId(resourceId);
 | 
	
		
			
				|  |  |         List<RsAppResource> rs = appResourceDao.getAppResourceByResourceId(resourceId);
 | 
	
		
			
				|  |  |         List<RsAppResource> deleteList = new ArrayList<RsAppResource>();
 | 
	
		
			
				|  |  |         List<RsAppResource> newList = new ArrayList<RsAppResource>();
 | 
	
		
			
				|  |  |         String[] appResourceIds = ids.split(",");
 | 
	
		
			
				|  |  |         //找出需要新增的
 | 
	
		
			
				|  |  |         for (String appResourceId : appResourceIds) {
 | 
	
		
			
				|  |  |             if (rs.size() != 0) {
 | 
	
		
			
				|  |  |                 for (int i = 0; i < rs.size(); i++) {
 | 
	
		
			
				|  |  |                     if (rs.get(i).getAppId().equals(appResourceId)) {
 | 
	
		
			
				|  |  |                         break;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     if (i == (rs.size() - 1)) {
 | 
	
		
			
				|  |  |                         //添加主表
 | 
	
		
			
				|  |  |                         RsAppResource rsAppResource = new RsAppResource();
 | 
	
		
			
				|  |  |                         rsAppResource.setAppId(appResourceId);
 | 
	
		
			
				|  |  |                         rsAppResource.setResourceId(resourceId);
 | 
	
		
			
				|  |  |                         newList.add(rsAppResource);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 //第一次直接新增
 | 
	
		
			
				|  |  |                 RsAppResource rsAppResource = new RsAppResource();
 | 
	
		
			
				|  |  |                 rsAppResource.setAppId(appResourceId);
 | 
	
		
			
				|  |  |                 rsAppResource.setResourceId(resourceId);
 | 
	
		
			
				|  |  |                 newList.add(rsAppResource);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //找出需要删除的
 | 
	
		
			
				|  |  |         //遍历原有的
 | 
	
		
			
				|  |  |         for (int i = 0; i < rs.size(); i++) {
 | 
	
		
			
				|  |  |             //遍历现在的
 | 
	
		
			
				|  |  |             for (int j = 0; j < appResourceIds.length; j++) {
 | 
	
		
			
				|  |  |                 if (rs.get(i).getAppId().equals(appResourceIds[j])) {
 | 
	
		
			
				|  |  |                     break;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 if (appResourceIds.length - 1 == j) {
 | 
	
		
			
				|  |  |                     deleteList.add(rs.get(i));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         appResourceDao.deleteEntityList(deleteList);
 | 
	
		
			
				|  |  |         appResourceDao.saveEntityList(newList);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return Result.success("更新成功");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public Result getResourceAppList(String resourceId) throws Exception {
 | 
	
		
			
				|  |  |         DataGridResult dgr = new DataGridResult();
 | 
	
		
			
				|  |  |         List<RsAppResource> rars = appResourceDao.getAppResourceByResourceId(resourceId);
 | 
	
		
			
				|  |  |         List modelList = new ArrayList();
 | 
	
		
			
				|  |  |         for (RsAppResource rar : rars) {
 | 
	
		
			
				|  |  |             modelList.add(appDao.getEntity(SystemApp.class, rar.getAppId()));
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         dgr.setDetailModelList(modelList);
 | 
	
		
			
				|  |  |         return dgr;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public Result changeAppResource(String flag, String appId, String ids, String resourceId) throws Exception {
 | 
	
		
			
				|  |  |         RsAppResource rar = appResourceDao.getAppResourceByResourceIdAndAppId(resourceId, appId);
 | 
	
		
			
				|  |  |         switch (flag) {
 | 
	
		
			
				|  |  |             //全部禁止
 | 
	
		
			
				|  |  |             case "1": {
 | 
	
		
			
				|  |  |                 rsAppResourceDetailDao.deleteByAppResourceId(rar.getId());
 | 
	
		
			
				|  |  |                 break;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //全部允许
 | 
	
		
			
				|  |  |             case "2": {
 | 
	
		
			
				|  |  |                 List<RsResourceMetadata> rrmd = resourceMetadataDao.getMetadataByResourceId(resourceId);
 | 
	
		
			
				|  |  |                 rsAppResourceDetailDao.deleteByAppResourceId(rar.getId());
 | 
	
		
			
				|  |  |                 for (RsResourceMetadata rRsResourceMetadata : rrmd) {
 | 
	
		
			
				|  |  |                     RsAppResourceDetail appResourceDetail = new RsAppResourceDetail();
 | 
	
		
			
				|  |  |                     appResourceDetail.setAppResouceId(rar.getId());
 | 
	
		
			
				|  |  |                     appResourceDetail.setMetadataId(rRsResourceMetadata.getId());
 | 
	
		
			
				|  |  |                     rsAppResourceDetailDao.saveEntity(appResourceDetail);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 break;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //选中禁止
 | 
	
		
			
				|  |  |             case "3": {
 | 
	
		
			
				|  |  |                 String[] idArray = ids.split(",");
 | 
	
		
			
				|  |  |                 for (String id : idArray) {
 | 
	
		
			
				|  |  |                     rsAppResourceDetailDao.deleteEntity(rsAppResourceDetailDao.getEntity(RsAppResourceDetail.class, id));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 break;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //选中允许
 | 
	
		
			
				|  |  |             case "4": {
 | 
	
		
			
				|  |  |                 String[] idArray = ids.split(",");
 | 
	
		
			
				|  |  |                 for (String id : idArray) {
 | 
	
		
			
				|  |  |                     RsResourceMetadata rrmd = resourceMetadataDao.getEntity(RsResourceMetadata.class, id);
 | 
	
		
			
				|  |  |                     RsAppResourceDetail appResourceDetail = new RsAppResourceDetail();
 | 
	
		
			
				|  |  |                     appResourceDetail.setAppResouceId(rar.getId());
 | 
	
		
			
				|  |  |                     appResourceDetail.setMetadataId(rrmd.getId());
 | 
	
		
			
				|  |  |                     rsAppResourceDetailDao.saveEntity(appResourceDetail);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 break;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return Result.success("修改成功");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public List<RsResourceDimensionModel> getDimensionByResourceId(String resourceId) throws Exception {
 | 
	
		
			
				|  |  |         return resourceDimensionDao.getDimensionByResourceId(resourceId);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public RsAppResourceDetail getAppResourceDetailId(String id) throws Exception {
 | 
	
		
			
				|  |  |         return rsAppResourceDetailDao.getEntity(RsAppResourceDetail.class, id);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public Result saveResourceDimension(RsAppResourceDetail appResourceDetail) throws Exception {
 | 
	
		
			
				|  |  |         RsAppResourceDetail rsAppResourceDetail = rsAppResourceDetailDao.getEntity(RsAppResourceDetail.class, appResourceDetail.getId());
 | 
	
		
			
				|  |  |         rsAppResourceDetail.setDimensionValue(appResourceDetail.getDimensionValue());
 | 
	
		
			
				|  |  |         rsAppResourceDetail.setDimensionId(appResourceDetail.getDimensionId());
 | 
	
		
			
				|  |  |         return Result.success("保存成功");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public List<RsResourceMetadata> getResourceMetadataListColumn(String code) throws Exception {
 | 
	
		
			
				|  |  |         return resourceMetadataDao.getMetadataByResourceId(code);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |