Browse Source

建筑查询优化

zhangqiankun 3 years ago
parent
commit
3ea9cd10ae

+ 25 - 2
src/main/java/com/persagy/proxy/adm/controller/ComponentBuildingController.java

@@ -7,12 +7,15 @@ import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.dmp.basic.dto.RequestData;
@@ -44,6 +47,9 @@ import cn.hutool.core.util.StrUtil;
 @RestController
 public class ComponentBuildingController {
 
+	@Value("${middleware.group.code}")
+	private String defaultCode;
+	
 	@Autowired
 	private RelationObjectContext relationObjectContext;
 	
@@ -56,14 +62,31 @@ public class ComponentBuildingController {
 	@RequestMapping("/building/query")
 	public AdmResponse queryBuilding(@RequestBody AdmQueryCriteria queryCriteria, HttpServletRequest request) {
 		String groupCode = request.getHeader(AdmCommonConstant.GROUP_CODE_HEADER);
+		groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
 		String projectId = request.getHeader(AdmCommonConstant.PROJECT_ID_HEADER);
 		
 		// 查询出所有的建筑对象
+		String orders = queryCriteria.getOrders();
 		RequestData requestData = new RequestData();
+		
+		List<OrderItem> orderItems = null;
+		if (StringUtils.isNotBlank(orders)) {
+			orderItems = new ArrayList<OrderItem>();
+			
+			String[] split = orders.split(",");
+			for (String column : split) {
+				if (StringUtils.isNotBlank(column)) {
+					orderItems.add(column.endsWith("asc") ? OrderItem.asc(column.split(" ")[0]) : OrderItem.desc(column.split(" ")[0]));
+				}
+			}
+		}
+		if (CollectionUtil.isNotEmpty(orderItems)) {
+			requestData.setOrders(orderItems);
+		}
 		requestData.setGraphCode(GraphCodeEnum.ArchSubset.name());
 		requestData.setRelCode(RelCodeEnum.Bd2Fl.name());
-		requestData.setPage(1L);
-		requestData.setSize(1000L);
+		requestData.setPage(queryCriteria.getPageNumber() == null ? 1L : queryCriteria.getPageNumber());
+		requestData.setSize(queryCriteria.getPageSize() == null ? 500L : queryCriteria.getPageSize());
 		
 		List<ObjectDigital> masterObjs = this.relationObjectContext.queryPageObjectInfo(requestData, groupCode, projectId, AdmRelationType.ARCHSUBSET_BD2FL);
 		this.handleMasterObjs(masterObjs, groupCode, projectId);

+ 4 - 4
src/main/java/com/persagy/proxy/adm/strategy/RelationObjectContext.java

@@ -135,16 +135,16 @@ public class RelationObjectContext {
 	 * @param requestData 请求参数
 	 * @param groupCode 集团编码
 	 * @param projectId 项目ID
-	 * @param relType 
+	 * @param relType  graphCode_relCode;
 	 */
 	public List<ObjectDigital> queryPageObjectInfo(RequestData requestData, String groupCode, String projectId, String relType) {
 		List<ObjectDigital> masterObjs = new ArrayList<ObjectDigital>();
-		AdmRelationTypeEnum relationTypeEnum = AdmCommonConstant.RELATION_TYPE_MAP.get(relType);
+		/*AdmRelationTypeEnum relationTypeEnum = AdmCommonConstant.RELATION_TYPE_MAP.get(relType);
 		if (relationTypeEnum == null) {
 			return masterObjs;
 		}
-		String className = relationTypeEnum.getGraphCode() + AdmCommonConstant.UNDERLINE + relationTypeEnum.getRelCode();
-		RelationObjectStrategy strategy = this.relationObjectStrategyMap.get(className);
+		String className = relationTypeEnum.getGraphCode() + AdmCommonConstant.UNDERLINE + relationTypeEnum.getRelCode();*/
+		RelationObjectStrategy strategy = this.relationObjectStrategyMap.get(relType);
 		if (strategy == null) {
 			return masterObjs;
 		}