修改模型数据查询

dev_xd
lj7788@126.com 2025-07-03 16:06:17 +08:00
parent 8c25c8d18a
commit 99fa37569b
1 changed files with 69 additions and 2 deletions

View File

@ -23,6 +23,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@RestController @RestController
@RequestMapping("/bim/modelInfo") @RequestMapping("/bim/modelInfo")
@ -115,7 +116,7 @@ public class BimModelController {
for (int i = 0; i < glids.size(); i++) { for (int i = 0; i < glids.size(); i++) {
stringBuilder.append("?,"); stringBuilder.append("?,");
} }
String key="BimModelController.getModelFeatureInfos."+name+"."+stringBuilder.toString(); String key="BimModelController.getModelFeatureInfos.V2"+name+"."+String.join(",",glids.stream().map(d->""+d).collect(Collectors.toList()));
if(redisService.hasKey(key)){ if(redisService.hasKey(key)){
Object list=redisService.getCacheObject(key); Object list=redisService.getCacheObject(key);
return AjaxResult.success(list); return AjaxResult.success(list);
@ -246,6 +247,72 @@ public class BimModelController {
} }
} }
/**
* model_tree
* @param name
* @param pid
* @return
*/
@PostMapping("/modelTreeAllLeafChildByGlids/{name}")
public AjaxResult getModelTreeAllLeafChildByGlids(@PathVariable("name") String name,@RequestBody List<String> glids) {
if(StringUtils.isEmpty(name)){
return AjaxResult.error("name is null");
}
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < glids.size(); i++) {
stringBuilder.append("?,");
}
String key="BimModelController.getModelTreeAllLeafChildByGlids.V2"+name+"."+String.join(",",glids);
if(redisService.hasKey(key)){
Object list=redisService.getCacheObject(key);
return AjaxResult.success(list);
}
String placeHolders = stringBuilder.deleteCharAt(stringBuilder.length() - 1)
.toString();
String sql="";
if(StringUtils.isEmpty(glids)){
sql="select * from model_tree ";
}else{
sql="with recursive\n" +
" cao as (\n" +
" select * from model_tree where glid in ( "+placeHolders+" ) \n" +
" union all\n" +
" select model_tree.* from cao join model_tree on cao.glid = model_tree.pGlid\n" +
" )\n" +
"select * from cao where externalid<>0";
}
String path=bimDataSource.getDbPath(name);
if(!new File(path).exists()){
return AjaxResult.error("file not found!");
}
try {
DataSource ds = bimDataSource.getDataSource(name);
PreparedStatement pss= ds.getConnection().prepareStatement(sql);
for (int i = 1; i <= glids.size(); i++) {
pss.setString(i, glids.get(i - 1));
}
ResultSet rs = pss.executeQuery();
List<ModelTreeVo> list = new ArrayList<>();
while (rs.next()) {
ModelTreeVo modelTreeVo = new ModelTreeVo();
//modelTreeVo.setId(rs.getLong("id"));
modelTreeVo.setGlid(rs.getString("glid"));
modelTreeVo.setName(rs.getString("name"));
//modelTreeVo.setLevel(rs.getInt("level"));
modelTreeVo.setGroupname(rs.getString("groupname"));
modelTreeVo.setExternalId(rs.getString("externalId"));
//modelTreeVo.setPGlid(rs.getString("pGlid"));
list.add(modelTreeVo);
}
redisService.setCacheObject(key,list,60*60*24L, TimeUnit.SECONDS);
return AjaxResult.success(list);
} catch (Exception e) {
return AjaxResult.error(e.getMessage());
}
}
/** /**
* Model_Tree * Model_Tree
* @param name * @param name
@ -463,7 +530,7 @@ public class BimModelController {
for (int i = 0; i < glids.size(); i++) { for (int i = 0; i < glids.size(); i++) {
stringBuilder.append("?,"); stringBuilder.append("?,");
} }
String key="BimModelController.getModelProperty."+name+"."+stringBuilder.toString(); String key="BimModelController.getModelProperty.V2"+name+"."+String.join(",",glids.stream().map(d->""+d).collect(Collectors.toList()));
if(redisService.hasKey(key)){ if(redisService.hasKey(key)){
Object list=redisService.getCacheObject(key); Object list=redisService.getCacheObject(key);
return AjaxResult.success(list); return AjaxResult.success(list);