AdmShaftController.java 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471
  1. package com.persagy.proxy.object.controller;
  2. import cn.hutool.core.collection.CollUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import cn.hutool.json.JSONUtil;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.fasterxml.jackson.databind.node.ArrayNode;
  7. import com.fasterxml.jackson.databind.node.JsonNodeFactory;
  8. import com.fasterxml.jackson.databind.node.ObjectNode;
  9. import com.persagy.dmp.basic.dto.RequestData;
  10. import com.persagy.dmp.basic.model.QueryCriteria;
  11. import com.persagy.dmp.basic.utils.JsonNodeUtils;
  12. import com.persagy.dmp.common.model.entity.BaseEntity;
  13. import com.persagy.dmp.define.client.DigitalObjectInfoFacade;
  14. import com.persagy.dmp.define.entity.ObjectInfoDefine;
  15. import com.persagy.dmp.digital.client.DigitalObjectFacade;
  16. import com.persagy.dmp.digital.client.DigitalRelationFacade;
  17. import com.persagy.dmp.simple.client.DigitalObjectSimpleFacade;
  18. import com.persagy.proxy.adm.request.AdmCreateRequest;
  19. import com.persagy.proxy.adm.request.AdmCreateResponse;
  20. import com.persagy.proxy.adm.request.AdmQueryCriteria;
  21. import com.persagy.proxy.adm.request.AdmResponse;
  22. import com.persagy.proxy.adm.service.IAdmRelationService;
  23. import com.persagy.proxy.adm.utils.AdmContextUtil;
  24. import com.persagy.proxy.adm.utils.AdmQueryCriteriaHelper;
  25. import com.persagy.proxy.adm.utils.ObjectNameUtil;
  26. import com.persagy.proxy.common.entity.RelationDTO;
  27. import com.persagy.proxy.object.model.*;
  28. import com.persagy.proxy.object.service.IAdmBuildingService;
  29. import com.persagy.proxy.object.service.IAdmShaftService;
  30. import com.persagy.proxy.object.service.IAdmSpaceService;
  31. import org.springframework.beans.factory.annotation.Autowired;
  32. import org.springframework.web.bind.annotation.*;
  33. import javax.ws.rs.QueryParam;
  34. import java.util.*;
  35. import java.util.stream.Collectors;
  36. /**
  37. * Adm 竖井 API
  38. * @author lvxy
  39. * @date 2021/8/16
  40. */
  41. @RestController
  42. @RequestMapping("/object/shaft")
  43. public class AdmShaftController {
  44. @Autowired
  45. private IAdmShaftService service;
  46. @Autowired
  47. private IAdmRelationService relationService;
  48. @Autowired
  49. private IAdmBuildingService buildingService;
  50. @Autowired
  51. private IAdmSpaceService spaceService;
  52. /**
  53. * 统计
  54. *
  55. * @param request
  56. * @return
  57. * @throws Exception
  58. */
  59. @PostMapping("/count")
  60. public AdmResponse count(@RequestBody AdmQueryCriteria request) throws Exception {
  61. request.setName("shaft");
  62. request.setOnlyCount(true);
  63. return service.doQuery(AdmContextUtil.toDmpContext(), request, AdmShaft.class);
  64. }
  65. /**
  66. * 创建
  67. * @param createRequest
  68. * @return
  69. * @throws Exception
  70. */
  71. @PostMapping("/create")
  72. public AdmCreateResponse create(@RequestBody AdmCreateRequest<AdmShaft> createRequest) throws Exception {
  73. List<AdmShaft> vos = CollUtil.newArrayList(createRequest.getContent());
  74. List<AdmShaft> unRelationShaft = new ArrayList<>();
  75. List<AdmShaft> admShafts = new ArrayList<>(vos.size());
  76. List<RelationDTO> relationDTOS = new ArrayList<>(vos.size());
  77. vos.stream().forEach(admShaft -> {
  78. if (StrUtil.isEmpty(admShaft.getName())) {
  79. admShaft.setName(ObjectNameUtil.objectName("竖井-"));
  80. }
  81. if(CollUtil.isEmpty(admShaft.getBuildingList())){
  82. unRelationShaft.add(admShaft);
  83. }else{
  84. //插入对象 添加关系
  85. List<AdmShaft> shafts = service.doInsert(AdmContextUtil.toDmpContext(), AdmShaft.class, CollUtil.newArrayList(admShaft));
  86. admShaft.getBuildingList().stream().forEach(admBuilding ->{
  87. if(StrUtil.isNotEmpty(admBuilding.getId())){
  88. relationDTOS.add(new RelationDTO(null, "ArchSubset", "Bd2Sh", null , admBuilding.getId(), shafts.get(0).getId()));
  89. }
  90. });
  91. admShafts.addAll(shafts);
  92. }
  93. });
  94. if(CollUtil.isNotEmpty(relationDTOS)){
  95. relationService.doSave(AdmContextUtil.toDmpContext(), relationDTOS);
  96. }
  97. if(CollUtil.isNotEmpty(unRelationShaft)){
  98. List shaftList = service.doInsert(AdmContextUtil.toDmpContext(), AdmShaft.class, unRelationShaft);
  99. admShafts.addAll(shaftList);
  100. }
  101. return AdmCreateResponse.success(admShafts);
  102. }
  103. /**
  104. * 根据ID删除
  105. * @param vos
  106. * @return
  107. * @throws Exception
  108. */
  109. @PostMapping("/delete")
  110. public AdmResponse delete( @RequestBody List<AdmShaft> vos) throws Exception {
  111. service.doDelete(AdmContextUtil.toDmpContext(), vos);
  112. return AdmResponse.success();
  113. }
  114. /**
  115. * 更新
  116. * @param createRequest
  117. * @return
  118. * @throws Exception
  119. */
  120. @PostMapping("/update")
  121. public AdmResponse update(@RequestBody AdmCreateRequest<AdmShaft> createRequest) throws Exception {
  122. List<AdmShaft> vos = CollUtil.newArrayList(createRequest.getContent());
  123. vos = service.doUpdate(AdmContextUtil.toDmpContext(), AdmShaft.class, vos);
  124. return AdmResponse.success(vos);
  125. }
  126. /**
  127. * 查询
  128. *
  129. * @param request
  130. * @return
  131. * @throws Exception
  132. */
  133. @PostMapping("/query")
  134. public AdmResponse query(@RequestBody AdmQueryCriteria request) throws Exception {
  135. request.setName(AdmShaft.OBJ_TYPE);
  136. return service.doQuery(AdmContextUtil.toDmpContext(), request, AdmShaft.class);
  137. }
  138. /**
  139. * 查询竖井信息-包含统计信息
  140. * 此方法可能会弃用
  141. *
  142. * 暂不实现
  143. *
  144. * @param request
  145. * @return
  146. * @throws Exception
  147. */
  148. @PostMapping("/query-with-count")
  149. public AdmResponse queryWithCount(@RequestBody AdmQueryCriteria request) throws Exception {
  150. request.setName("shaft");
  151. return service.doQuery(AdmContextUtil.toDmpContext(), request, AdmShaft.class);
  152. }
  153. /**
  154. * 查询关联元空间
  155. * 可能移至关系
  156. *
  157. * @param request
  158. * @return
  159. * @throws Exception
  160. */
  161. @PostMapping("/relate-space")
  162. public AdmResponse queryRelateSp(@RequestBody JSONObject request) throws Exception {
  163. //Sh2Sp
  164. // 先取消后重新建立
  165. if(JSONUtil.isNull(request)){
  166. return AdmResponse.failure("参数为空");
  167. }
  168. String shaftId = request.getString("shaftId");
  169. String spaceId = request.getString("spaceId");
  170. // 组装条件
  171. QueryCriteria criteria = new QueryCriteria();
  172. if(!StrUtil.isAllNotEmpty(shaftId,spaceId)) {
  173. return AdmResponse.failure("必填项:shaftId(竖井id)、spaceId(空间id)");
  174. }
  175. ObjectNode node = JsonNodeFactory.instance.objectNode();
  176. node.put("graphCode", "ArchSubset");
  177. node.put("relCode", "Sh2Sp");
  178. node.put("objFrom", shaftId);
  179. criteria.setCriteria(node);
  180. relationService.doDelete(AdmContextUtil.toDmpContext(), criteria);
  181. List<String> spaceIds = Arrays.asList(spaceId.split(","));
  182. Set<String> existsIds = spaceExists(spaceIds);
  183. List<String> failureList = null;
  184. if(CollUtil.isNotEmpty(existsIds)){
  185. failureList = spaceIds.stream().filter(isId -> !existsIds.contains(isId)).collect(Collectors.toList());
  186. List<RelationDTO> relationDTOS = new ArrayList<>();
  187. existsIds.stream().forEach(spId -> {
  188. RelationDTO relationDTO = new RelationDTO();
  189. relationDTO.setGraphCode("ArchSubset");
  190. relationDTO.setObjFrom(shaftId);
  191. relationDTO.setRelCode("Sh2Sp");
  192. relationDTO.setObjTo(spId);
  193. relationDTOS.add(relationDTO);
  194. });
  195. List<ObjectNode> nodeList = JsonNodeUtils.toListNode(relationDTOS, null, null);
  196. DigitalRelationFacade.create(AdmContextUtil.toDmpContext().getGroupCode(), AdmContextUtil.toDmpContext().getProjectId(),AdmContextUtil.toDmpContext().getAppId(), null, nodeList);
  197. }else{
  198. failureList = spaceIds;
  199. }
  200. if(CollUtil.isNotEmpty(failureList))
  201. return AdmResponse.failure("元空间 " +failureList.stream().collect(Collectors.joining(","))+ " 不存在");
  202. else
  203. return AdmResponse.success();
  204. }
  205. /**
  206. * 查询项目下已有的竖井类型
  207. * 此方法可能会弃用
  208. * {
  209. * "id":"shaftFuncType",
  210. * "name":"竖井功能"
  211. * }
  212. *
  213. * @return
  214. * @throws Exception
  215. */
  216. @PostMapping("/query-shaft-functype")
  217. public AdmResponse queryShFuncType() throws Exception {
  218. String projectId = AdmContextUtil.toDmpContext().getProjectId();
  219. if(StrUtil.isNotEmpty(projectId)){
  220. AdmResponse admResponse = AdmResponse.success();
  221. //查询参数请求查询的类型是否存在
  222. AdmQueryCriteria admQueryCriteria = new AdmQueryCriteria();
  223. StringBuilder filters = new StringBuilder(" code = '");
  224. filters.append("shaftFuncType").append("';");
  225. filters.append(" classCode ='").append("shaft").append(" '");
  226. admQueryCriteria.setFilters(filters.toString());
  227. QueryCriteria dmpRequest = AdmQueryCriteriaHelper.toDmpCriteria(admQueryCriteria);
  228. List<ObjectInfoDefine> defineList = DigitalObjectInfoFacade.query(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmContextUtil.toDmpContext().getAppId(),null,dmpRequest);
  229. //是否有该类型的竖井信息
  230. if(CollUtil.isNotEmpty(defineList)){
  231. //查询中台项目实际使用该信息点的竖井
  232. RequestData requestData = new RequestData();
  233. requestData.setObjType(AdmShaft.OBJ_TYPE);
  234. requestData.setGroups(Arrays.asList("shaftFuncType"));
  235. List<Map<String, Object>> listInfos = DigitalObjectSimpleFacade.queryObjectCountByObjInfos(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getAppId(),null, requestData);
  236. if(CollUtil.isNotEmpty(listInfos)){
  237. ArrayNode datasource = defineList.get(0).getDataSource();
  238. List<HashMap> datasourceList = JSONUtil.toList(datasource.toString(), HashMap.class);
  239. Map<String, String> datasourceMap = new HashMap<>(datasourceList.size());
  240. for (HashMap map : datasourceList){
  241. datasourceMap.put(map.get("code").toString(),map.get("name").toString());
  242. }
  243. Map<String, Object> datasourceMapUsed = new HashMap<>(datasourceMap.size());
  244. listInfos.stream().forEach(map -> {
  245. if(!datasourceMapUsed.containsKey(map.get("shaftFuncType")) || datasourceMap.containsKey(map.get("shaftFuncType"))){
  246. JSONObject jsonObject = new JSONObject();
  247. jsonObject.put("id", map.get("shaftFuncType").toString());
  248. jsonObject.put("name", datasourceMap.get(map.get("shaftFuncType").toString()));
  249. datasourceMapUsed.put(map.get("shaftFuncType").toString(),jsonObject);
  250. }
  251. });
  252. if(CollUtil.isNotEmpty(datasourceMapUsed)){
  253. admResponse = AdmResponse.success(datasourceMapUsed.values().stream().collect(Collectors.toList()));
  254. }
  255. }
  256. }
  257. return admResponse;
  258. }else{
  259. return AdmResponse.failure("项目Id为空");
  260. }
  261. }
  262. /**
  263. * 查询和当前竖井有关联的业务空间
  264. * shaftId 为竖井id
  265. *
  266. * @param request
  267. * @return
  268. * @throws Exception
  269. */
  270. @PostMapping("/shaft-zoneSpaceBaseTable")
  271. public AdmResponse queryZoneSp(@QueryParam("ShaftId") String ShaftId, @RequestBody AdmQueryCriteria request) throws Exception {
  272. // 组装条件
  273. request.setName(AdmSpace.OBJ_TYPE);
  274. QueryCriteria queryCriteria = AdmQueryCriteriaHelper.toDmpCriteria(request);
  275. if(!StrUtil.isNotEmpty(ShaftId)) {
  276. return AdmResponse.failure("必填项:shaftId(竖井id)");
  277. }
  278. ObjectNode criteria = JsonNodeFactory.instance.objectNode();
  279. ObjectNode relationTO = JsonNodeFactory.instance.objectNode();
  280. relationTO.put("relCode", "Sh2Sp");
  281. relationTO.put("graphCode","ArchSubset");
  282. relationTO.put("objFrom", ShaftId);
  283. criteria.putPOJO("relationTo", relationTO);
  284. queryCriteria.setCriteria(criteria);
  285. AdmResponse admResponse = spaceService.doQuery(AdmContextUtil.toDmpContext(), queryCriteria, AdmSpace.class);
  286. return admResponse;
  287. }
  288. /**
  289. * 查询和当前竖井有关联的业务空间所在建筑及楼层信息
  290. * shaftId 为竖井id
  291. *
  292. * @return
  293. * @throws Exception
  294. */
  295. @GetMapping("/shaft-zoneSpaceBaseTable-building")
  296. public AdmResponse queryZoneSpBd(@QueryParam("shaftId") String shaftId,
  297. @QueryParam("objectType") String objectType) throws Exception {
  298. if(!StrUtil.isAllNotEmpty(shaftId,AdmContextUtil.toDmpContext().getProjectId())) {
  299. return AdmResponse.failure("必填项:shaftId(竖井id)、projectId(项目id)");
  300. }
  301. // 组装条件 查询竖井下的空间
  302. AdmQueryCriteria admQueryCriteriaSpace = new AdmQueryCriteria();
  303. admQueryCriteriaSpace.setName(AdmSpace.OBJ_TYPE);
  304. if(StrUtil.isNotEmpty(objectType)){
  305. admQueryCriteriaSpace.setFilters(" classCode = '"+objectType+"'");
  306. }
  307. ObjectNode relationTO = JsonNodeFactory.instance.objectNode();
  308. relationTO.put("relCode", "Sh2Sp");
  309. relationTO.put("graphCode","ArchSubset");
  310. relationTO.put("objFrom", shaftId);
  311. relationTO.put("relValue", objectType);
  312. admQueryCriteriaSpace.setRelationTo(relationTO);
  313. //1 空间级联建筑
  314. List<AdmQueryCriteria> cascadeSp2BdFl = new ArrayList<>(1);
  315. //1.1 空间级联楼层
  316. AdmQueryCriteria cascadeSpFl = new AdmQueryCriteria();
  317. cascadeSpFl.setName("floorList");
  318. cascadeSpFl.setProjection(Arrays.asList("id","name","localName"));
  319. cascadeSpFl.setOrders("floorSequenceId desc");
  320. cascadeSp2BdFl.add(cascadeSpFl);
  321. //1.2 空间级联建
  322. AdmQueryCriteria queryCriteriaBd = new AdmQueryCriteria();
  323. queryCriteriaBd.setName("building");
  324. queryCriteriaBd.setProjection(Arrays.asList("id","name","localName","floor"));
  325. cascadeSp2BdFl.add(queryCriteriaBd);
  326. admQueryCriteriaSpace.setCascade(cascadeSp2BdFl);
  327. AdmResponse admResponseSp = spaceService.query(admQueryCriteriaSpace);
  328. if(CollUtil.isNotEmpty(admResponseSp.getContent())){
  329. //处理建筑下的楼层不是和空间关联的信息
  330. List<AdmSpace> spaces = (List<AdmSpace>) admResponseSp.getContent();
  331. List<AdmBuilding> admBuildingList = new ArrayList<>();
  332. for(AdmSpace space : spaces){
  333. AdmBuilding building = space.getBuilding();
  334. List<AdmFloor> floorList = space.getFloorList();
  335. if(building != null && CollUtil.isNotEmpty(floorList)){
  336. building.setFloor(floorList);
  337. admBuildingList.add(building);
  338. }
  339. }
  340. return AdmResponse.success(admBuildingList);
  341. }else{
  342. return AdmResponse.success();
  343. }
  344. }
  345. /*@GetMapping("/shaft-zoneSpaceBaseTable-building")
  346. public AdmResponse queryZoneSpBd(@QueryParam("shaftId") String shaftId,
  347. @QueryParam("objectType") String objectType) throws Exception {
  348. if(!StrUtil.isAllNotEmpty(shaftId,AdmContextUtil.toDmpContext().getProjectId())) {
  349. return AdmResponse.failure("必填项:shaftId(竖井id)、projectId(项目id)");
  350. }
  351. // 组装条件 查询竖井下的空间
  352. AdmQueryCriteria admQueryCriteria = new AdmQueryCriteria();
  353. admQueryCriteria.setName(AdmSpace.OBJ_TYPE);
  354. if(StrUtil.isNotEmpty(objectType)){
  355. admQueryCriteria.setFilters(" classCode = '"+objectType+"'");
  356. }
  357. //转化为中台的查询条件
  358. QueryCriteria queryCriteria = AdmQueryCriteriaHelper.toDmpCriteria(admQueryCriteria);
  359. ObjectNode criteria = JsonNodeFactory.instance.objectNode();
  360. ObjectNode relationTO = JsonNodeFactory.instance.objectNode();
  361. relationTO.put("relCode", "Sh2Sp");
  362. relationTO.put("graphCode","ArchSubset");
  363. relationTO.put("objFrom", shaftId);
  364. criteria.putPOJO("relationTo", relationTO);
  365. criteria.put("objType", AdmSpace.OBJ_TYPE);
  366. queryCriteria.setCriteria(criteria);
  367. List<ObjectNode> spaceList = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(), AdmContextUtil.toDmpContext().getProjectId(), AdmContextUtil.toDmpContext().getAppId(), null, queryCriteria);
  368. if(CollUtil.isNotEmpty(spaceList)){
  369. AdmQueryCriteria queryCriteriaBd = new AdmQueryCriteria();
  370. queryCriteriaBd.setName(AdmBuilding.OBJ_TYPE);
  371. queryCriteriaBd.setProjection(Arrays.asList("id","name","localName","floor"));
  372. //建筑级联楼层
  373. List<AdmQueryCriteria> cascade = new ArrayList<>(1);
  374. AdmQueryCriteria cascadeFloor = new AdmQueryCriteria();
  375. cascadeFloor.setName(AdmFloor.OBJ_TYPE);
  376. cascadeFloor.setProjection(Arrays.asList("id","name","localName"));
  377. cascade.add(cascadeFloor);
  378. cascadeFloor.setOrders("floorSequenceId desc");
  379. queryCriteriaBd.setCascade(cascade);
  380. List<AdmSpace> vos = JSONUtil.toList(spaceList.toString(), AdmSpace.class);
  381. Map<String, AdmSpace> admSpaceMap = CollUtil.fieldValueMap(vos, "buildingId");
  382. ObjectNode relationFrom = JsonNodeFactory.instance.objectNode();
  383. relationFrom.put("relCode", "Bd2Sp");
  384. relationFrom.put("graphCode","ArchSubset");
  385. ArrayNode arrayNode = relationFrom.putObject("objTo").putArray("$in");
  386. admSpaceMap.keySet().stream().forEach(spaceId -> arrayNode.add(spaceId));
  387. AdmResponse response = buildingService.doQuery(AdmContextUtil.toDmpContext(), queryCriteriaBd, AdmBuilding.class);
  388. return response;
  389. }else{
  390. return AdmResponse.success();
  391. }
  392. }
  393. */
  394. /**
  395. * 查询和当前竖井没有关联的业务空间
  396. * shaftId 为竖井id
  397. *
  398. * @param request
  399. * @return
  400. * @throws Exception
  401. */
  402. @PostMapping("/un-shaft-zoneSpaceBaseTable")
  403. public AdmResponse queryUnZoneSp(@QueryParam("shaftId") String shaftId,
  404. @RequestBody AdmQueryCriteria request) throws Exception {
  405. // 组装条件
  406. if(!StrUtil.isNotEmpty(shaftId)) {
  407. return AdmResponse.failure("必填项:shaftId(竖井id)");
  408. }
  409. request.setName(AdmSpace.OBJ_TYPE);
  410. request.resetRelationCond(false, "ArchSubset", "Sh2Sp", AdmSpace.OBJ_TYPE, shaftId, false);
  411. QueryCriteria queryCriteria = AdmQueryCriteriaHelper.toDmpCriteria(request);
  412. List<ObjectNode> spaceList = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(), AdmContextUtil.toDmpContext().getProjectId(), AdmContextUtil.toDmpContext().getAppId(), null, queryCriteria);
  413. if(CollUtil.isNotEmpty(spaceList)){
  414. List<AdmSpace> vos = JSONUtil.toList(spaceList.toString(), AdmSpace.class);
  415. return AdmResponse.success(spaceList, request);
  416. }else{
  417. return AdmResponse.success();
  418. }
  419. }
  420. /**
  421. * 元空间是否存在
  422. *
  423. * @param spaceIds failureList
  424. * @return 是否存在
  425. */
  426. private Set<String> spaceExists(List<String> spaceIds) {
  427. QueryCriteria queryCriteria = new QueryCriteria();
  428. ObjectNode node = JsonNodeFactory.instance.objectNode();
  429. ArrayNode arrayNode = node.putObject("id").putArray("$in");
  430. spaceIds.stream().forEach(spaceId -> arrayNode.add(spaceId));
  431. node.put("objType","ispace");
  432. queryCriteria.setCriteria(node);
  433. List<ObjectNode> ispaces = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmContextUtil.toDmpContext().getAppId(),AdmContextUtil.toDmpContext().getAppId(),queryCriteria);
  434. if(CollUtil.isNotEmpty(ispaces)){
  435. List<AdmISpace> iSpaceList = JSONUtil.toList(JSONUtil.parseArray(ispaces.toString()), AdmISpace.class);
  436. Map<String, AdmISpace> admISpaceMap = CollUtil.fieldValueMap(iSpaceList, BaseEntity.PROP_ID);
  437. return admISpaceMap.keySet();
  438. }else{
  439. return null;
  440. }
  441. }
  442. }