ResourceBrowseController.java 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528
  1. package com.yihu.ehr.resource.controller;
  2. import com.fasterxml.jackson.core.type.TypeReference;
  3. import com.yihu.ehr.agModel.resource.ResourceQuotaModel;
  4. import com.yihu.ehr.agModel.resource.RsBrowseModel;
  5. import com.yihu.ehr.agModel.resource.RsCategoryTypeTreeModel;
  6. import com.yihu.ehr.agModel.resource.RsResourcesModel;
  7. import com.yihu.ehr.constants.ApiVersion;
  8. import com.yihu.ehr.constants.ServiceApi;
  9. import com.yihu.ehr.controller.BaseController;
  10. import com.yihu.ehr.model.resource.MRsCategory;
  11. import com.yihu.ehr.model.resource.MRsResources;
  12. import com.yihu.ehr.model.tj.MTjQuotaModel;
  13. import com.yihu.ehr.quota.service.TjQuotaClient;
  14. import com.yihu.ehr.quota.service.TjQuotaJobClient;
  15. import com.yihu.ehr.quota.service.TjQuotaSynthesizeQueryClient;
  16. import com.yihu.ehr.resource.client.*;
  17. import com.yihu.ehr.util.rest.Envelop;
  18. import io.swagger.annotations.Api;
  19. import io.swagger.annotations.ApiOperation;
  20. import io.swagger.annotations.ApiParam;
  21. import org.apache.commons.collections.map.HashedMap;
  22. import org.apache.commons.lang.StringUtils;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.http.ResponseEntity;
  25. import org.springframework.web.bind.annotation.RequestMapping;
  26. import org.springframework.web.bind.annotation.RequestMethod;
  27. import org.springframework.web.bind.annotation.RequestParam;
  28. import org.springframework.web.bind.annotation.RestController;
  29. import java.util.*;
  30. /**
  31. * Created by wq on 2016/5/30.
  32. */
  33. @RestController
  34. @Api(value = "ResourceBrowse", description = "资源浏览", tags = {"资源管理-资源浏览"})
  35. @RequestMapping(value = ApiVersion.Version1_0 + "/admin")
  36. public class ResourceBrowseController extends BaseController {
  37. @Autowired
  38. private RsResourceClient resourcesClient;
  39. @Autowired
  40. private RsResourceCategoryClient resourcesCategoryClient;
  41. @Autowired
  42. private ResourceBrowseClient resourceBrowseClient;
  43. @Autowired
  44. private RsResourceQuotaClient resourceQuotaClient;
  45. @Autowired
  46. private TjQuotaClient tjQuotaClient;
  47. @Autowired
  48. private TjQuotaJobClient tjQuotaJobClient;
  49. @Autowired
  50. private TjQuotaSynthesizeQueryClient tjQuotaSynthesizeQueryClient;
  51. @Autowired
  52. private RsResourceDefaultQueryClient rsResourceDefaultQueryClient;
  53. @Autowired
  54. private RsResourceStatisticsClient rsResourceStatisticsClient;
  55. @ApiOperation("获取档案资源分类")
  56. @RequestMapping(value = ServiceApi.Resources.ResourceBrowseCategories, method = RequestMethod.GET)
  57. public Envelop getCategories(
  58. @ApiParam(name = "id", value = "返回字段", defaultValue = "")
  59. @RequestParam(value = "id", required = false) String id) throws Exception {
  60. Envelop envelop = new Envelop();
  61. List<RsCategoryTypeTreeModel> rsCategoryTypeTreeModelList = new ArrayList<>();
  62. List<MRsResources> rsResources = new ArrayList<>();
  63. try {
  64. List<MRsCategory> rsCategories = new ArrayList<>();
  65. //查询资源分类
  66. List<MRsCategory> resources = resourcesCategoryClient.getAllCategories("");
  67. for (MRsCategory mRsCategory:resources){
  68. RsCategoryTypeTreeModel rsCategoryModel = new RsCategoryTypeTreeModel();
  69. rsCategoryModel.setId(mRsCategory.getId());
  70. rsCategoryModel.setPid(mRsCategory.getPid());
  71. rsCategoryModel.setName(mRsCategory.getName());
  72. rsCategoryTypeTreeModelList.add(rsCategoryModel);
  73. ResponseEntity<List<MRsResources>> categoryResponseEntity = resourcesClient.queryResources("", "categoryId=" + mRsCategory.getId(), "", 1, 999, null, null);// TODO: 2016/5/30 测试数据15(无不分页查询)
  74. rsResources = categoryResponseEntity.getBody();
  75. //rsResources = resourcesClient.queryNoPageResources("categoryId=" + mRsCategory.getId());
  76. if (rsResources.size() > 0) {
  77. List<RsResourcesModel> resourcesModelList = (List<RsResourcesModel>) convertToModels(rsResources, new ArrayList<RsResourcesModel>(rsResources.size()), RsResourcesModel.class, null);
  78. for (RsResourcesModel resourcesModel : resourcesModelList) {
  79. RsCategoryTypeTreeModel rsCategoryTypeModel = new RsCategoryTypeTreeModel();
  80. rsCategoryTypeModel.setId(resourcesModel.getId());
  81. rsCategoryTypeModel.setPid(mRsCategory.getId());
  82. rsCategoryTypeModel.setResourceIds(resourcesModel.getId());
  83. rsCategoryTypeModel.setName(resourcesModel.getName());
  84. rsCategoryTypeModel.setResourceCode(resourcesModel.getCode());
  85. rsCategoryTypeTreeModelList.add(rsCategoryTypeModel);
  86. }
  87. }
  88. }
  89. envelop.setSuccessFlg(true);
  90. envelop.setDetailModelList(rsCategoryTypeTreeModelList);
  91. } catch (Exception e) {
  92. e.printStackTrace();
  93. envelop.setSuccessFlg(false);
  94. envelop.setErrorMsg("获取档案资源分类失败");
  95. }
  96. return envelop;
  97. }
  98. @ApiOperation("档案资源数据元结构")
  99. @RequestMapping(value = ServiceApi.Resources.ResourceBrowseResourceMetadata, method = RequestMethod.GET)
  100. public Envelop getResourceMetadata(
  101. @ApiParam(name = "resourcesCode", value = "资源编码")
  102. @RequestParam(value = "resourcesCode") String resourcesCode,
  103. @ApiParam(name = "roleId", value = "角色id")
  104. @RequestParam(value = "roleId") String roleId) throws Exception {
  105. Envelop envelop = new Envelop();
  106. List<RsBrowseModel> rsBrowseModelList = new ArrayList<>();
  107. String resourceMetadata = resourceBrowseClient.getResourceMetadata(resourcesCode, roleId);
  108. if (resourceMetadata != null) {
  109. RsBrowseModel resourceMetadataModel = toEntity(resourceMetadata, RsBrowseModel.class);
  110. if (resourceMetadataModel != null) {
  111. List<String> code = resourceMetadataModel.getColunmCode();
  112. List<String> value = resourceMetadataModel.getColunmName();
  113. List<String> type = resourceMetadataModel.getColunmType();
  114. List<String> dict = resourceMetadataModel.getColunmDict();
  115. for (int i = 0; i < code.size(); i++) {
  116. RsBrowseModel rsBrowseModel = new RsBrowseModel();
  117. rsBrowseModel.setCode(code.get(i));
  118. rsBrowseModel.setValue(value.get(i));
  119. rsBrowseModel.setType(type.get(i));
  120. rsBrowseModel.setDict(dict.get(i));
  121. rsBrowseModelList.add(rsBrowseModel);
  122. }
  123. envelop.setSuccessFlg(true);
  124. envelop.setDetailModelList(rsBrowseModelList);
  125. } else {
  126. envelop.setSuccessFlg(false);
  127. }
  128. }
  129. envelop.setErrorMsg("资源数据元为空");
  130. envelop.setSuccessFlg(false);
  131. return envelop;
  132. }
  133. @ApiOperation("档案资源浏览")
  134. @RequestMapping(value = ServiceApi.Resources.ResourceBrowseResourceData, method = RequestMethod.GET)
  135. public Envelop getResourceData(
  136. @ApiParam(name = "resourcesCode", value = "资源编码")
  137. @RequestParam(value = "resourcesCode") String resourcesCode,
  138. @ApiParam(name = "roleId", value = "角色id")
  139. @RequestParam(value = "roleId") String roleId,
  140. @ApiParam(name= "orgCode", value = "机构编码")
  141. @RequestParam(value = "orgCode") String orgCode,
  142. @ApiParam(name= "areaCode", value = "地区编码")
  143. @RequestParam(value = "areaCode") String areaCode,
  144. @ApiParam(name= "queryCondition", value = "查询条件")
  145. @RequestParam(value = "queryCondition", required = false) String queryCondition,
  146. @ApiParam(name = "page", value = "第几页")
  147. @RequestParam(value = "page", required = false) Integer page,
  148. @ApiParam(name = "size", value = "每页几行")
  149. @RequestParam(value = "size", required = false) Integer size,
  150. @ApiParam(name = "top", value = "获取前几条数据")
  151. @RequestParam(value = "top", required = false) String top) throws Exception {
  152. Envelop envelop = resourcesClient.getResourceByCode(resourcesCode);
  153. RsResourcesModel rsResourcesModel = objectMapper.convertValue(envelop.getObj(), RsResourcesModel.class);
  154. if (!rsResourcesModel.getRsInterface().equals("getQuotaData")){//接口 来自接口统计
  155. return resourceBrowseClient.getResourceData(resourcesCode, roleId, orgCode, areaCode, queryCondition, page, size);
  156. } else {
  157. String quotaCodeStr = "";
  158. List<ResourceQuotaModel> list = resourceQuotaClient.getByResourceId(rsResourcesModel.getId());
  159. if (list != null && list.size() > 0) {
  160. for (ResourceQuotaModel resourceQuotaModel : list) {
  161. quotaCodeStr = quotaCodeStr + resourceQuotaModel.getQuotaCode() + ",";
  162. }
  163. }
  164. List<Map<String, Object>> resultList = rsResourceStatisticsClient.getQuotaReportTwoDimensionalTable(quotaCodeStr, null, rsResourcesModel.getDimension(), top);
  165. envelop.setDetailModelList(resultList);
  166. envelop.setSuccessFlg(true);
  167. return envelop;
  168. }
  169. }
  170. @ApiOperation("档案资源浏览细表数据")
  171. @RequestMapping(value = ServiceApi.Resources.ResourceBrowseResourceSubData, method = RequestMethod.GET)
  172. public Envelop findSubDateByRowKey(
  173. @ApiParam(name = "rowKey", value = "主表rowKey", required = true)
  174. @RequestParam(value = "rowKey") String rowKey,
  175. @ApiParam(name = "version", value = "版本", required = true)
  176. @RequestParam(value = "version") String version){
  177. return resourceBrowseClient.findSubDateByRowKey(rowKey, version);
  178. }
  179. @ApiOperation("指标视图查询列表浏览")
  180. @RequestMapping(value = ServiceApi.Resources.ResourceBrowseQuotaResourceData, method = RequestMethod.GET)
  181. public Envelop getQuotaResourceData(
  182. @ApiParam("资源Id")
  183. @RequestParam String resourcesId,
  184. @ApiParam("机构代码(预留参数)")
  185. @RequestParam(required = false) String orgCode,
  186. @ApiParam("查询条件")
  187. @RequestParam(required = false) String queryCondition,
  188. @ApiParam(name = "userOrgList" ,value = "用户拥有机构权限" )
  189. @RequestParam(value = "userOrgList" , required = false) List<String> userOrgList) throws Exception {
  190. Envelop envelop = new Envelop();
  191. String [] quotaCodeArr = null;
  192. //获取资源关联指标
  193. List<ResourceQuotaModel> rqmList = resourceQuotaClient.getByResourceId(resourcesId);
  194. if (rqmList == null || rqmList.size() <= 0) {
  195. envelop.setErrorMsg("关联指标为空");
  196. return envelop;
  197. }
  198. //获取资源默认查询条件
  199. String query = rsResourceDefaultQueryClient.getByResourceId(resourcesId);
  200. //拼接指标code字符串作为维度交集查询参数
  201. String quotaCodes = "";
  202. quotaCodeArr = new String [rqmList.size()];
  203. List<Map<String, String>> objList = new ArrayList<Map<String, String>>();
  204. for (int i = 0; i< rqmList.size(); i ++) {
  205. ResourceQuotaModel resourceQuotaModel = rqmList.get(i);
  206. MTjQuotaModel tjQuotaModel = tjQuotaClient.getById((long) resourceQuotaModel.getQuotaId());
  207. quotaCodeArr[i] = tjQuotaModel.getCode();
  208. quotaCodes += tjQuotaModel.getCode() + ",";
  209. }
  210. //拼接交集维度字符串作为查询参数
  211. String dimension = "";
  212. if (StringUtils.isEmpty(quotaCodes)) {
  213. envelop.setErrorMsg("指标编码有误");
  214. return envelop;
  215. }
  216. //查询多个指标交集维度
  217. List<Map<String, String>> qsdList = tjQuotaSynthesizeQueryClient.getTjQuotaSynthesiseDimension(quotaCodes.substring(0, quotaCodes.length() - 1));
  218. if (qsdList == null || qsdList.size() <= 0) {
  219. envelop.setSuccessFlg(true);
  220. return envelop;
  221. }
  222. for (Map<String, String> temp : qsdList) {
  223. for (String codeStr : temp.keySet()) {
  224. if (quotaCodes.contains(codeStr)) {
  225. //添加键值对应列表
  226. Map<String, String> objMap = new HashMap<String, String>();
  227. objMap.put("key", temp.get(codeStr));
  228. objMap.put("name", temp.get("name"));
  229. objList.add(objMap);
  230. //结果总量参数
  231. dimension += temp.get(codeStr) + ";";
  232. break;
  233. }
  234. }
  235. }
  236. for (int i = 0; i< rqmList.size(); i ++) {
  237. ResourceQuotaModel resourceQuotaModel = rqmList.get(i);
  238. MTjQuotaModel tjQuotaModel = tjQuotaClient.getById((long) resourceQuotaModel.getQuotaId());
  239. Map<String, String> objMap = new HashMap<String, String>();
  240. objMap.put("key", tjQuotaModel.getCode());
  241. objMap.put("name", tjQuotaModel.getName());
  242. objList.add(objMap);
  243. }
  244. //依次获取指标统计不同维度结果总量
  245. List<Envelop> envelopList = new ArrayList<Envelop>();
  246. for (ResourceQuotaModel resourceQuotaModel : rqmList) {
  247. Envelop envelop1;
  248. //-----------------用户数据权限 start
  249. String org = "";
  250. if (userOrgList != null ){
  251. if(!(userOrgList.size()==1 && userOrgList.get(0).equals("null")) ) {
  252. org = StringUtils.strip(String.join(",", userOrgList), "[]");
  253. }
  254. }
  255. //-----------------用户数据权限 end
  256. //判断是否启用默认查询条件
  257. Map<String, Object> params = new HashMap<>();
  258. if (queryCondition == null || queryCondition.equals("{}")) {
  259. boolean orgFlag = false;
  260. for(Map<String, String> map:objList){
  261. for(String key :map.keySet()){
  262. if(map.get(key).equals("org")){
  263. orgFlag = true;
  264. }
  265. }
  266. }
  267. if(org.length()>0 && orgFlag){
  268. if( !StringUtils.isEmpty(query)){
  269. params = objectMapper.readValue(query, new TypeReference<Map>() {});
  270. }
  271. params.put("org",org);
  272. query = objectMapper.writeValueAsString(params);
  273. }
  274. //获取指标统计不同维度结果数据
  275. envelop1 = tjQuotaJobClient.getQuotaTotalCount(resourceQuotaModel.getQuotaId(), query, dimension.substring(0, dimension.length() - 1));
  276. envelopList.add(envelop1);
  277. } else {
  278. if(org.length()>0){
  279. params = objectMapper.readValue(queryCondition, new TypeReference<Map>() {});
  280. params.put("org",org);
  281. queryCondition = objectMapper.writeValueAsString(params);
  282. }
  283. envelop1 = tjQuotaJobClient.getQuotaTotalCount(resourceQuotaModel.getQuotaId(), queryCondition, dimension.substring(0, dimension.length() - 1));
  284. envelopList.add(envelop1);
  285. }
  286. }
  287. List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
  288. //遍历数据集,拼装结果集
  289. for (int i = 0; i < envelopList.size(); i ++ ) {
  290. Envelop envelop1 = envelopList.get(i);
  291. if (envelop1.getDetailModelList() != null) {
  292. //遍历当前数据
  293. for (Map<String, Object> tempMap1 : (List<Map<String, Object>>) envelop1.getDetailModelList()) {
  294. //判断是否已记录数据
  295. boolean isRecode = false;
  296. for (Map<String, Object> resultMap : resultList) {
  297. if (Arrays.equals(((List<String>) tempMap1.get("cloumns")).toArray(), ((List<String>) resultMap.get("cloumns")).toArray())) {
  298. isRecode = true;
  299. }
  300. }
  301. //未记录的数据
  302. if (!isRecode) {
  303. Map<String, Object> newMap = new HashMap<String, Object>();
  304. //初始化基本列名
  305. newMap.put("cloumns", tempMap1.get("cloumns"));
  306. //初始化为空数据
  307. for (int p = 0; p < i; p++) {
  308. newMap.put(quotaCodeArr[p], 0);
  309. }
  310. //当数据为最后一个数据集中的一个时
  311. if ((envelopList.size() - 1) == i) {
  312. newMap.put(quotaCodeArr[i], tempMap1.get("value"));
  313. } else {
  314. //与其他数据集进行对比
  315. for (int j = i + 1; j < envelopList.size(); j++) {
  316. //判断是否匹配
  317. boolean isMatch = false;
  318. Envelop envelop2 = envelopList.get(j);
  319. if (null != envelop2.getDetailModelList() && envelop2.getDetailModelList().size() > 0) {
  320. for (Map<String, Object> tempMap2 : (List<Map<String, Object>>) envelop2.getDetailModelList()) {
  321. if (Arrays.equals(((List<String>) tempMap1.get("cloumns")).toArray(), ((List<String>) tempMap2.get("cloumns")).toArray())) {
  322. newMap.put(quotaCodeArr[i], tempMap1.get("value"));
  323. newMap.put(quotaCodeArr[j], tempMap2.get("value"));
  324. isMatch = true;
  325. }
  326. }
  327. }
  328. //未匹配到数据
  329. if (!isMatch) {
  330. newMap.put(quotaCodeArr[i], tempMap1.get("value"));
  331. newMap.put(quotaCodeArr[j], 0);
  332. }
  333. }
  334. }
  335. resultList.add(newMap);
  336. }
  337. }
  338. }
  339. }
  340. List<Map<String, Object>> finalList = new ArrayList<Map<String, Object>>();
  341. String [] dimensionArr = dimension.split(";");
  342. for (Map<String, Object> tempMap : resultList) {
  343. List<String> colList = (List<String>)tempMap.get("cloumns");
  344. Map<String, Object> finalMap = new HashMap<String, Object>();
  345. for (int i = 0; i < colList.size(); i++) {
  346. finalMap.put(dimensionArr[i], colList.get(i));
  347. }
  348. for (String key : tempMap.keySet()) {
  349. if (!key.equals("cloumns")) {
  350. finalMap.put(key, tempMap.get(key));
  351. }
  352. }
  353. finalList.add(finalMap);
  354. }
  355. envelop.setSuccessFlg(true);
  356. envelop.setDetailModelList(finalList);
  357. envelop.setObj(objList);
  358. if (resultList != null) {
  359. envelop.setTotalCount(resultList.size());
  360. }
  361. return envelop;
  362. }
  363. @ApiOperation("指标资源浏览数据检索条件获取")
  364. @RequestMapping(value = ServiceApi.Resources.ResourceBrowseQuotaResourceParam, method = RequestMethod.GET)
  365. public Envelop getStatisticsParam(
  366. @ApiParam("资源Id")
  367. @RequestParam String resourcesId){
  368. Envelop envelop = new Envelop();
  369. String [] quotaCodeArr = null;
  370. //获取资源关联指标
  371. List<ResourceQuotaModel> rqmList = resourceQuotaClient.getByResourceId(resourcesId);
  372. if(rqmList == null || rqmList.size() <= 0) {
  373. envelop.setErrorMsg("关联指标为空");
  374. return envelop;
  375. }
  376. //拼接指标code字符串作为维度交集查询参数
  377. String quotaCodes = "";
  378. quotaCodeArr = new String [rqmList.size()];
  379. List<Map<String, String>> objList = new ArrayList<Map<String, String>>();
  380. for (int i = 0; i< rqmList.size(); i ++) {
  381. ResourceQuotaModel resourceQuotaModel = rqmList.get(i);
  382. MTjQuotaModel tjQuotaModel = tjQuotaClient.getById((long) resourceQuotaModel.getQuotaId());
  383. quotaCodeArr[i] = tjQuotaModel.getCode();
  384. quotaCodes += tjQuotaModel.getCode() + ",";
  385. }
  386. //拼接交集维度字符串作为查询参数
  387. String dimensions = "";
  388. if(StringUtils.isEmpty(quotaCodes)) {
  389. envelop.setErrorMsg("指标编码有误");
  390. return envelop;
  391. }
  392. List<Map<String, String>> qsdList = tjQuotaSynthesizeQueryClient.getTjQuotaSynthesiseDimension(quotaCodes.substring(0, quotaCodes.length() - 1));
  393. if(qsdList == null || qsdList.size() <= 0) {
  394. envelop.setSuccessFlg(true);
  395. return envelop;
  396. }
  397. for(Map<String, String> temp : qsdList) {
  398. for(String codeStr : temp.keySet()){
  399. if(quotaCodes.contains(codeStr)) {
  400. //交集维度参数
  401. dimensions += temp.get(codeStr) + ",";
  402. break;
  403. }
  404. }
  405. }
  406. Map<String, Map<String, Object>> dataMap = tjQuotaSynthesizeQueryClient.getTjQuotaSynthesiseDimensionKeyVal(quotaCodeArr[0], dimensions);
  407. if (dataMap != null) {
  408. envelop.setSuccessFlg(true);
  409. envelop.setObj(dataMap);
  410. }
  411. return envelop;
  412. }
  413. @RequestMapping(value = ServiceApi.Resources.ResourceBrowseTree, method = RequestMethod.GET)
  414. @ApiOperation(value = "获取视图类别-数据集列表树")
  415. public Envelop getResourceBrowseTree() {
  416. Envelop envelop = new Envelop();
  417. List<MRsResources> rsResources = new ArrayList<>();
  418. List<RsCategoryTypeTreeModel> rsCategoryTypeTreeModelList=new ArrayList<>();
  419. Map<String,String> map=new HashedMap();
  420. //限定五大库
  421. map.put("0dae002159535497b3865e129433e933","0dae002159535497b3865e129433e933");
  422. map.put("0dae0021595354a8b3865e129433e934","0dae0021595354a8b3865e129433e934");
  423. map.put("0dae0021595354c4b3865e129433e935","0dae0021595354c4b3865e129433e935");
  424. map.put("0dae0021595354cfb3865e129433e936","0dae0021595354cfb3865e129433e936");
  425. map.put("0dae0021595354d6b3865e129433e937","0dae0021595354d6b3865e129433e937");
  426. //查询资源分类
  427. List<MRsCategory> resources = resourcesCategoryClient.getAllCategories("");
  428. RsCategoryTypeTreeModel rsCategoryModel;
  429. for (MRsCategory mRsCategory:resources){
  430. if(null!=map.get(mRsCategory.getId().toString())){
  431. rsCategoryModel = new RsCategoryTypeTreeModel();
  432. rsCategoryModel.setId(mRsCategory.getId());
  433. rsCategoryModel.setPid(mRsCategory.getPid());
  434. rsCategoryModel.setName(mRsCategory.getName());
  435. //查询资源-数据集
  436. ResponseEntity<List<MRsResources>> categoryResponseEntity = resourcesClient.queryResources("", "categoryId=" + mRsCategory.getId(), "", 1, 999, null, null);// TODO: 2016/5/30 测试数据15(无不分页查询)
  437. rsResources = categoryResponseEntity.getBody();
  438. if (rsResources.size() > 0) {
  439. List<RsResourcesModel> resourcesModelList = (List<RsResourcesModel>) convertToModels(rsResources, new ArrayList<RsResourcesModel>(rsResources.size()), RsResourcesModel.class, null);
  440. rsCategoryModel.setRsResourceslist(resourcesModelList);
  441. }
  442. rsCategoryTypeTreeModelList.add(rsCategoryModel);
  443. }
  444. }
  445. //平台应用-角色组对象模型列表
  446. envelop.setSuccessFlg(true);
  447. envelop.setDetailModelList(rsCategoryTypeTreeModelList);
  448. return envelop;
  449. }
  450. @RequestMapping(value = ServiceApi.Resources.ResourceBrowseGetRsByCategoryId, method = RequestMethod.GET)
  451. @ApiOperation(value = "根据视图分类的CategoryId获取数据集")
  452. public Envelop getResourceByCategoryId (
  453. @ApiParam("categoryId")
  454. @RequestParam(value = "categoryId", required = true) String categoryId) {
  455. //查询资源-数据集
  456. String filters="";
  457. if(null!=categoryId&&!"".equals(categoryId)){
  458. filters="categoryId=" + categoryId;
  459. }
  460. ResponseEntity<List<MRsResources>> categoryResponseEntity = resourcesClient.queryResources("", filters, "", 1, 999, null, null);
  461. List<MRsResources> rsResources = categoryResponseEntity.getBody();
  462. Integer totalCount = getTotalCount(categoryResponseEntity);
  463. return getResult(rsResources, totalCount, 1, 999);
  464. }
  465. /**
  466. @ApiOperation("资源浏览详细信息")
  467. @RequestMapping(value = "/resources/ResourceBrowses/getResourceDataSub", method = RequestMethod.GET)
  468. public Envelop getResourceDataSub(
  469. @ApiParam("资源代码") @RequestParam String resourcesCode,
  470. @ApiParam("最后一个版本记录") @RequestParam String rowKey) throws Exception {
  471. Envelop categoryResponseEntity = resourceBrowseClient.getResourceDataSub(resourcesCode, rowKey);
  472. return categoryResponseEntity;
  473. }
  474. */
  475. /**
  476. @ApiOperation("获取资源数据元信息,column信息")
  477. @RequestMapping(value = "/resources/ResourceBrowses", method = RequestMethod.GET)
  478. public Envelop queryResources(
  479. @ApiParam(name = "category_id", value = "返回字段", defaultValue = "")
  480. @RequestParam(value = "category_id") String categoryId) throws Exception {
  481. Envelop envelop = new Envelop();
  482. List<RsResourceMetadataModel> rsMetadataModels = new ArrayList<>();
  483. try {
  484. //查询资源注册信息
  485. ResponseEntity<List<MRsResources>> categoryResponseEntity = resourcesClient.queryResources("", "id=" + categoryId, "", 1, 15);// TODO: 2016/5/30 测试数据15(无不分页查询)
  486. List<MRsResources> rsResources = categoryResponseEntity.getBody();
  487. //查询资源数据元信息
  488. ResponseEntity<List<MRsResourceMetadata>> resourceMetadataResponseEntity = resourceMetadataClient.queryDimensions("", "resourcesId=" + rsResources.get(0).getId(), "", 1, 15);// TODO: 2016/5/30 测试数据15(无不分页查询)
  489. List<MRsResourceMetadata> rsMetadatas = resourceMetadataResponseEntity.getBody();
  490. //查询资源数据元详情
  491. for (MRsResourceMetadata mrm : rsMetadatas) {
  492. RsResourceMetadataModel rsMetadataModel = convertToModel(mrm, RsResourceMetadataModel.class);
  493. ResponseEntity<List<MRsMetadata>> RsresponseEntity = metadataClient.getMetadata("", "id=" + rsMetadataModel.getMetadataId(), "", 1, 15);// TODO: 2016/5/30 测试数据15(无不分页查询)
  494. List<MRsMetadata> mRsMetadataList = RsresponseEntity.getBody();
  495. if (mRsMetadataList.size() > 0) {
  496. rsMetadataModel.setStdCode(mRsMetadataList.get(0).getStdCode());
  497. rsMetadataModel.setName(mRsMetadataList.get(0).getName());
  498. rsMetadataModel.setColumnType(mRsMetadataList.get(0).getColumnType());
  499. rsMetadataModel.setDictId(mRsMetadataList.get(0).getDictCode());
  500. rsMetadataModels.add(rsMetadataModel);
  501. }
  502. }
  503. envelop.setSuccessFlg(true);
  504. envelop.setDetailModelList(rsMetadataModels);
  505. } catch (Exception e) {
  506. envelop.setSuccessFlg(false);
  507. }
  508. return envelop;
  509. }
  510. */
  511. }