|
@@ -4,12 +4,14 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.fasterxml.jackson.databind.node.ArrayNode;
|
|
|
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
import com.persagy.dmp.basic.dto.RequestData;
|
|
|
import com.persagy.dmp.basic.model.QueryCriteria;
|
|
|
import com.persagy.dmp.common.model.entity.BaseEntity;
|
|
|
+import com.persagy.dmp.common.model.response.CommonResult;
|
|
|
import com.persagy.dmp.define.client.DigitalDefineFacade;
|
|
|
import com.persagy.dmp.define.entity.ObjectTypeDefine;
|
|
|
import com.persagy.dmp.digital.client.DigitalObjectFacade;
|
|
@@ -129,7 +131,7 @@ public class AdmSystemController {
|
|
|
relationDTOS.add(new RelationDTO(null, "MechInArch", "Sy2Fl", null, systemId , floorId));
|
|
|
}
|
|
|
if(StrUtil.isNotEmpty(buildID)){
|
|
|
- relationDTOS.add(new RelationDTO(null, "MechForArch", "Sy2Bd", null, systemId , buildID));
|
|
|
+ relationDTOS.add(new RelationDTO(null, "MechInArch", "Sy2Bd", null, systemId , buildID));
|
|
|
}
|
|
|
});
|
|
|
admSystemList.addAll(admSystems);
|
|
@@ -217,7 +219,33 @@ public class AdmSystemController {
|
|
|
@PostMapping("/query")
|
|
|
public AdmResponse query(@RequestBody AdmQueryCriteria request) {
|
|
|
request.setName(AdmSystem.OBJ_TYPE);
|
|
|
- return service.doQuery(AdmContextUtil.toDmpContext(), request, AdmSystem.class);
|
|
|
+
|
|
|
+ if(CollUtil.isNotEmpty(request.getProjection()) && request.getDistinct() && !request.getProjection().contains(BaseEntity.PROP_ID)){
|
|
|
+ RequestData requestData = new RequestData();
|
|
|
+ requestData.setProjection(request.getProjection());
|
|
|
+ requestData.setObjType(AdmSystem.OBJ_TYPE);
|
|
|
+ requestData.setPage(request.getPageNumber().longValue());
|
|
|
+ requestData.setSize(request.getPageSize().longValue());
|
|
|
+ CommonResult<List<ObjectNode>> result = DigitalObjectSimpleFacade.querySystemListByConditions(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(), AdmContextUtil.toDmpContext().getAppId(), null, requestData);
|
|
|
+ if(result == null || CollUtil.isEmpty(result.getData())){
|
|
|
+ return AdmResponse.success();
|
|
|
+ }
|
|
|
+ List<AdmSystem> admSystemList = JSONUtil.toList(result.getData().toString(), AdmSystem.class);
|
|
|
+ service.ensureSpecialValues(AdmContextUtil.toDmpContext(), admSystemList);
|
|
|
+ AdmResponse response = AdmResponse.success(admSystemList);
|
|
|
+ Long total = result.getCount() == null ? null : result.getCount().longValue();
|
|
|
+ if(request.isOnlyCount()){
|
|
|
+ response.setTotal(null);
|
|
|
+ response.setCount(total);
|
|
|
+ }else {
|
|
|
+ response.setTotal(total);
|
|
|
+ }
|
|
|
+ response.setPageNumber(request.getPageNumber());
|
|
|
+ response.setPageSize(request.getPageSize());
|
|
|
+ return response;
|
|
|
+ }else {
|
|
|
+ return service.doQuery(AdmContextUtil.toDmpContext(), request, AdmSystem.class);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -305,9 +333,10 @@ public class AdmSystemController {
|
|
|
|
|
|
}else if("1".equals(floorId)){
|
|
|
//case three 明确建筑 不明确楼层
|
|
|
- admSystemList = queryNotSureObj(buildingId, rwdQueryCriteria);
|
|
|
- //处理通用返回结果
|
|
|
- dealRespose(syses, request);
|
|
|
+ syses = queryNotSureObj(buildingId, rwdQueryCriteria);
|
|
|
+ if(null != syses && CollUtil.isNotEmpty(syses.getContent())){
|
|
|
+ admSystemList = (List<AdmSystem>) syses.getContent();
|
|
|
+ }
|
|
|
}
|
|
|
if(CollUtil.isNotEmpty(admSystemList)){
|
|
|
//处理数据 BuildingFloorInfo
|
|
@@ -324,15 +353,9 @@ public class AdmSystemController {
|
|
|
criteria.putPOJO("relationFrom",relationFrom);
|
|
|
rwdQueryCriteria.setCriteria(criteria);
|
|
|
syses = service.doQuery(AdmContextUtil.toDmpContext(), rwdQueryCriteria, AdmSystem.class);
|
|
|
- if (CollUtil.isNotEmpty(syses.getContent())) {
|
|
|
- admSystemList = (List<AdmSystem>) syses.getContent();
|
|
|
- }
|
|
|
-
|
|
|
}else if("1".equals(buildingId)){
|
|
|
//case three 明确建筑 不明确楼层
|
|
|
- admSystemList = queryNotSureObj(buildingId, rwdQueryCriteria);
|
|
|
- //处理通用返回结果
|
|
|
- dealRespose(syses, request);
|
|
|
+ syses = queryNotSureObj(buildingId, rwdQueryCriteria);
|
|
|
}
|
|
|
if(CollUtil.isNotEmpty(admSystemList)){
|
|
|
//处理数据 BuildingFloorInfo
|
|
@@ -341,14 +364,12 @@ public class AdmSystemController {
|
|
|
}
|
|
|
}else{
|
|
|
//处理通用返回结果
|
|
|
- dealRespose(syses, request);
|
|
|
if(StrUtil.isNotEmpty(buildingId) && buildingId.equals("1")){
|
|
|
//case four 未明确建筑
|
|
|
- admSystemList = queryNotSureObj(null, rwdQueryCriteria);
|
|
|
+ syses = queryNotSureObj(null, rwdQueryCriteria);
|
|
|
if(CollUtil.isNotEmpty(admSystemList)){
|
|
|
//处理数据 BuildingFloorInfo
|
|
|
admSystemList = dealBdFlInfo(null,null, admSystemList);
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -364,19 +385,13 @@ public class AdmSystemController {
|
|
|
return syses;
|
|
|
}
|
|
|
|
|
|
- private void dealRespose(AdmResponse syses, AdmQueryCriteria request){
|
|
|
- syses.setPageSize(request.getPageSize());
|
|
|
- syses.setPageNumber(request.getPageNumber());
|
|
|
- syses.setResult(DmpResult.SUCCESS);
|
|
|
- syses.setTotal(0L);
|
|
|
- }
|
|
|
/**
|
|
|
* 查询不确定建筑/楼层的系统
|
|
|
* @param buildingId
|
|
|
* @param rwdQueryCriteria
|
|
|
* @return
|
|
|
*/
|
|
|
- private List<AdmSystem> queryNotSureObj(String buildingId, QueryCriteria rwdQueryCriteria){
|
|
|
+ private AdmResponse queryNotSureObj(String buildingId, QueryCriteria rwdQueryCriteria){
|
|
|
RequestData requestData = new RequestData();
|
|
|
String classCode = rwdQueryCriteria.getCriteria().get("classCode").textValue();
|
|
|
if(StrUtil.isNotEmpty(classCode)){
|
|
@@ -388,12 +403,17 @@ public class AdmSystemController {
|
|
|
requestData.setObjType(AdmSystem.OBJ_TYPE);
|
|
|
requestData.setPage(rwdQueryCriteria.getPage());
|
|
|
requestData.setSize(rwdQueryCriteria.getSize());
|
|
|
- List result = DigitalObjectSimpleFacade.queryNotSureSystem(AdmContextUtil.toDmpContext().getGroupCode(), AdmContextUtil.toDmpContext().getProjectId(), AdmContextUtil.toDmpContext().getAppId(),null, requestData);
|
|
|
- if(CollUtil.isNotEmpty(result)){
|
|
|
- List<AdmSystem> admSystemList = JSONUtil.toList(result.toString(), AdmSystem.class);
|
|
|
- return admSystemList;
|
|
|
+ Page<Map<String,Object>> result = DigitalObjectSimpleFacade.queryNotSureSystem(AdmContextUtil.toDmpContext().getGroupCode(), AdmContextUtil.toDmpContext().getProjectId(), AdmContextUtil.toDmpContext().getAppId(),null, requestData);
|
|
|
+ if(CollUtil.isNotEmpty(result.getRecords())){
|
|
|
+ AdmResponse response = new AdmResponse();
|
|
|
+ response.setPageSize(Integer.parseInt(String.valueOf(result.getSize())));
|
|
|
+ response.setPageNumber(Integer.parseInt(String.valueOf(result.getCurrent())));
|
|
|
+ response.setResult(DmpResult.SUCCESS);
|
|
|
+ response.setContent(result.getRecords());
|
|
|
+ response.setTotal(result.getTotal());
|
|
|
+ return response;
|
|
|
}else{
|
|
|
- return null;
|
|
|
+ return AdmResponse.success();
|
|
|
}
|
|
|
}
|
|
|
|