dcs 7 months ago
parent
commit
07c4d063a5

+ 15 - 3
virgo.api/src/main/java/com/bosshand/virgo/api/service/ProjectService.java

@@ -169,6 +169,8 @@ public class ProjectService {
 	}
 
 	public JSONArray bimList(long id) {
+		JSONArray jsonArray = new JSONArray();
+
 		Project p = projectDao.get(id);
 		List<ProjectItem> projectItemList = p.getProjectItemList();
 		Map<Long, ProjectItem> itemMap = new HashMap<>();
@@ -178,14 +180,20 @@ public class ProjectService {
 			itemMap.put(projectItem.getId(), projectItem);
 		}
 
-		List<ProjectItemTarget> projectItemTargetList = projectItemTargetDao.getProjectItemIds(itemIds);
-		Map<Long, ProjectItemTarget> itemTargetMap = new HashMap<>();
+		if (itemIds.size() == 0) {
+			return jsonArray;
+		}
 		List<Long> targetIds = new ArrayList<>();
+		Map<Long, ProjectItemTarget> itemTargetMap = new HashMap<>();
+		List<ProjectItemTarget> projectItemTargetList = projectItemTargetDao.getProjectItemIds(itemIds);
 		for (ProjectItemTarget projectItemTarget : projectItemTargetList) {
 			targetIds.add(projectItemTarget.getId());
 			itemTargetMap.put(projectItemTarget.getId(), projectItemTarget);
 		}
 
+		if (targetIds.size() == 0) {
+			return jsonArray;
+		}
 		Map<String, Long> bimModelMap = new HashMap<>();
 		List<String> bimIds = new ArrayList<>();
 		List<BimModelTarget> bimList = bimModelTargetDao.getProjectItemTargetIds(targetIds);
@@ -196,8 +204,12 @@ public class ProjectService {
 				bimModelMap.put(split[i], bim.getProjectItemTargetId());
 			}
 		}
+
+		if (bimIds.size() == 0) {
+			return jsonArray;
+		}
 		String join = String.join(",", bimIds);
-		JSONArray jsonArray = JSONObject.parseArray(bimClient.getBimIds(join));
+		jsonArray = JSONObject.parseArray(bimClient.getBimIds(join));
 		for (int i = 0; i < jsonArray.size(); i++) {
 			JSONObject jo = jsonArray.getJSONObject(i);
 			long targetId = bimModelMap.get(jo.getString("id"));