bim漫游功能开发

dev_xd
lj7788@126.com 2025-06-16 17:30:57 +08:00
parent e4752ef2a6
commit 77333b2137
5 changed files with 153 additions and 3 deletions

View File

@ -89,7 +89,7 @@
<div :class="nav == 6 ? 'head-nav active' : 'head-nav'" @click="doNav(6)">绿</div> <div :class="nav == 6 ? 'head-nav active' : 'head-nav'" @click="doNav(6)">绿</div>
<!-- <div :class="nav == 7 ? 'head-nav active' : 'head-nav'" @click="doNav(7)">BIM</div> --> <!-- <div :class="nav == 7 ? 'head-nav active' : 'head-nav'" @click="doNav(7)">BIM</div> -->
<div :class="(nav >= 700 && nav < 800) || nav == 7 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu"> <div :class="(nav >= 700 && nav < 800) || nav == 7 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu">
<div>BIM应用</div> <div>数字孪生</div>
<div class="header-btn-list"> <div class="header-btn-list">
<div class="header-btn-list-arrow"></div> <div class="header-btn-list-arrow"></div>
<div class="header-btn-list-item" style> <div class="header-btn-list-item" style>

View File

@ -1521,7 +1521,7 @@ export default {
.row-title { .row-title {
height: 48px; height: 48px;
line-height: 48px; line-height: 48px;
font-size: 32px; font-size: 28px;
} }
} }
} }

View File

@ -732,6 +732,8 @@ export default {
} }
.roam-tool { .roam-tool {
margin-left: 10px; margin-left: 10px;
display: flex;
align-items: center;
.svg-icon { .svg-icon {
margin-right: 5px; margin-right: 5px;
fill: #75fbfd; fill: #75fbfd;
@ -744,7 +746,112 @@ export default {
margin: 10px; margin: 10px;
line-height: 50px; line-height: 50px;
text-align: center; text-align: center;
color: #00000030; color: #909399;
}
@media (max-width: 1920px) {
}
@media (min-width: 2561px) {
.data-content {
.div-row {
min-height: 420px;
.row-title {
height: 48px;
line-height: 48px;
font-size: 28px;
}
}
}
.div-tools {
bottom: 25vh;
margin-left: -68px;
border-radius: 10px;
.tool-item {
padding: 10px 20px;
.icon {
width: 60px;
height: 60px;
border-radius: 30px;
.svg-icon {
width: 40px;
height: 40px;
}
}
.sp-text {
margin-top: 10px;
font-size: 24px;
}
}
}
.model-tree {
.el-tree {
font-size: 24px;
.el-tree-node__content {
height: 36px;
}
.el-tree-node__expand-icon {
font-size: 24px;
}
.el-checkbox {
font-size: 24px;
}
.el-tree-node__label {
font-size: 24px;
}
.el-tree__empty-text {
font-size: 24px;
}
}
}
.view-point-list {
height: calc(100% - 48px);
.viewpoint-item {
margin: 10px 10px 0px;
.viewpoint-content {
border-radius: 4px;
.el-image {
height: 160px;
width: 100%;
}
.viewpoint-title {
width: calc(100% - 10px);
line-height: 30px;
font-size: 24px;
height: 30px;
padding: 0px 10px;
border-radius: 0px 0px 4px 4px;
}
}
}
}
.roaming-list {
height: calc(100% - 48px);
.roaming-item {
margin: 10px;
line-height: 48px;
border-radius: 10px;
padding: 0px 10px;
font-size: 14px;
.roam-text {
max-width: calc(100% - 40px);
font-size: 24px;
}
.roam-tool {
margin-left: 10px;
.svg-icon {
margin-right: 5px;
width: 24px;
height: 24px;
}
}
}
}
.loading {
font-size: 24px;
}
} }
} }
</style> </style>

View File

@ -30,6 +30,7 @@ public class BimDataSource {
HikariConfig config = new HikariConfig(); HikariConfig config = new HikariConfig();
config.setDriverClassName(driverName); config.setDriverClassName(driverName);
config.setJdbcUrl(url); config.setJdbcUrl(url);
config.setConnectionTimeout(120*1000L);
config.setMaximumPoolSize(100); config.setMaximumPoolSize(100);
config.setConnectionTestQuery("SELECT 1"); config.setConnectionTestQuery("SELECT 1");
DataSource ds= new HikariDataSource(config); DataSource ds= new HikariDataSource(config);

View File

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.yanzhu.common.core.utils.StringUtils; import com.yanzhu.common.core.utils.StringUtils;
import com.yanzhu.common.core.web.domain.AjaxResult; import com.yanzhu.common.core.web.domain.AjaxResult;
import com.yanzhu.common.redis.service.RedisService;
import com.yanzhu.manage.bim.BimDataSource; import com.yanzhu.manage.bim.BimDataSource;
import com.yanzhu.manage.bim.BimDataSourceConfig; import com.yanzhu.manage.bim.BimDataSourceConfig;
import com.yanzhu.manage.domain.bim.ModelPropertyVo; import com.yanzhu.manage.domain.bim.ModelPropertyVo;
@ -19,6 +20,7 @@ import java.sql.ResultSet;
import java.sql.Statement; import java.sql.Statement;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
@RestController @RestController
@RequestMapping("/bim/modelInfo") @RequestMapping("/bim/modelInfo")
@ -27,6 +29,9 @@ public class BimModelController {
@Autowired @Autowired
private BimDataSource bimDataSource; private BimDataSource bimDataSource;
@Autowired
private RedisService redisService;
/** /**
* model_tree * model_tree
* @param name * @param name
@ -38,6 +43,11 @@ public class BimModelController {
if(StringUtils.isEmpty(name)){ if(StringUtils.isEmpty(name)){
return AjaxResult.error("name is null"); return AjaxResult.error("name is null");
} }
String key="BimModelController.getModelTreeAllChild."+name+"."+pid;
if(redisService.hasKey(key)){
Object list=redisService.getCacheObject(key);
return AjaxResult.success(list);
}
String sql=""; String sql="";
if(StringUtils.isEmpty(pid)){ if(StringUtils.isEmpty(pid)){
sql="select * from model_tree "; sql="select * from model_tree ";
@ -73,6 +83,7 @@ public class BimModelController {
modelTreeVo.setPGlid(rs.getString("pGlid")); modelTreeVo.setPGlid(rs.getString("pGlid"));
list.add(modelTreeVo); list.add(modelTreeVo);
} }
redisService.setCacheObject(key,list,60*60*24L, TimeUnit.SECONDS);
return AjaxResult.success(list); return AjaxResult.success(list);
} catch (Exception e) { } catch (Exception e) {
return AjaxResult.error(e.getMessage()); return AjaxResult.error(e.getMessage());
@ -91,6 +102,11 @@ public class BimModelController {
if(StringUtils.isEmpty(name)){ if(StringUtils.isEmpty(name)){
return AjaxResult.error("name is null"); return AjaxResult.error("name is null");
} }
String key="BimModelController.getModelTreeAllLeafChild."+name+"."+pid;
if(redisService.hasKey(key)){
Object list=redisService.getCacheObject(key);
return AjaxResult.success(list);
}
String sql=""; String sql="";
if(StringUtils.isEmpty(pid)){ if(StringUtils.isEmpty(pid)){
sql="select * from model_tree "; sql="select * from model_tree ";
@ -118,6 +134,7 @@ public class BimModelController {
while (rs.next()) { while (rs.next()) {
list.add(rs.getString("glid")); list.add(rs.getString("glid"));
} }
redisService.setCacheObject(key,list,60*60*24L, TimeUnit.SECONDS);
return AjaxResult.success(list); return AjaxResult.success(list);
} catch (Exception e) { } catch (Exception e) {
return AjaxResult.error(e.getMessage()); return AjaxResult.error(e.getMessage());
@ -135,6 +152,11 @@ public class BimModelController {
if(StringUtils.isEmpty(name)){ if(StringUtils.isEmpty(name)){
return AjaxResult.error("name is null"); return AjaxResult.error("name is null");
} }
String key="BimModelController.getModelTree."+name+"."+pid;
if(redisService.hasKey(key)){
Object list=redisService.getCacheObject(key);
return AjaxResult.success(list);
}
String sql=""; String sql="";
if(StringUtils.isEmpty(pid)){ if(StringUtils.isEmpty(pid)){
sql="select * from model_tree where level=0"; sql="select * from model_tree where level=0";
@ -164,6 +186,7 @@ public class BimModelController {
modelTreeVo.setPGlid(rs.getString("pGlid")); modelTreeVo.setPGlid(rs.getString("pGlid"));
list.add(modelTreeVo); list.add(modelTreeVo);
} }
redisService.setCacheObject(key,list,60*60*24L, TimeUnit.SECONDS);
return AjaxResult.success(list); return AjaxResult.success(list);
} catch (Exception e) { } catch (Exception e) {
return AjaxResult.error(e.getMessage()); return AjaxResult.error(e.getMessage());
@ -181,6 +204,11 @@ public class BimModelController {
if(StringUtils.isEmpty(name)){ if(StringUtils.isEmpty(name)){
return AjaxResult.error("name is null"); return AjaxResult.error("name is null");
} }
String key="BimModelController.getModelTypeAllChild."+name+"."+pid;
if(redisService.hasKey(key)){
Object list=redisService.getCacheObject(key);
return AjaxResult.success(list);
}
String sql=""; String sql="";
if(StringUtils.isEmpty(pid)){ if(StringUtils.isEmpty(pid)){
sql="select * from model_type "; sql="select * from model_type ";
@ -216,6 +244,7 @@ public class BimModelController {
vo.setId(rs.getLong("id")); vo.setId(rs.getLong("id"));
list.add(vo); list.add(vo);
} }
redisService.setCacheObject(key,list,60*60*24L, TimeUnit.SECONDS);
return AjaxResult.success(list); return AjaxResult.success(list);
} catch (Exception e) { } catch (Exception e) {
return AjaxResult.error(e.getMessage()); return AjaxResult.error(e.getMessage());
@ -233,6 +262,11 @@ public class BimModelController {
if(StringUtils.isEmpty(name)){ if(StringUtils.isEmpty(name)){
return AjaxResult.error("name is null"); return AjaxResult.error("name is null");
} }
String key="BimModelController.getModelType."+name+"."+pid;
if(redisService.hasKey(key)){
Object list=redisService.getCacheObject(key);
return AjaxResult.success(list);
}
String sql=""; String sql="";
if(StringUtils.isEmpty(pid)){ if(StringUtils.isEmpty(pid)){
sql="select * from model_type where level=0"; sql="select * from model_type where level=0";
@ -262,6 +296,7 @@ public class BimModelController {
vo.setId(rs.getLong("id")); vo.setId(rs.getLong("id"));
list.add(vo); list.add(vo);
} }
redisService.setCacheObject(key,list,60*60*24L, TimeUnit.SECONDS);
return AjaxResult.success(list); return AjaxResult.success(list);
} catch (Exception e) { } catch (Exception e) {
return AjaxResult.error(e.getMessage()); return AjaxResult.error(e.getMessage());
@ -273,11 +308,17 @@ public class BimModelController {
if(CollectionUtil.isEmpty(glids)){ if(CollectionUtil.isEmpty(glids)){
return AjaxResult.error("glids is null"); return AjaxResult.error("glids is null");
} }
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
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();
if(redisService.hasKey(key)){
Object list=redisService.getCacheObject(key);
return AjaxResult.success(list);
}
String placeHolders = stringBuilder.deleteCharAt(stringBuilder.length() - 1) String placeHolders = stringBuilder.deleteCharAt(stringBuilder.length() - 1)
.toString(); .toString();
String sql="select * from model_property where glid in ("+placeHolders+")"; String sql="select * from model_property where glid in ("+placeHolders+")";
@ -308,6 +349,7 @@ public class BimModelController {
vo.setPropertyTypeName(rs.getString("propertyTypeName")); vo.setPropertyTypeName(rs.getString("propertyTypeName"));
list.add(vo); list.add(vo);
} }
redisService.setCacheObject(key,list,60*60*24L, TimeUnit.SECONDS);
return AjaxResult.success(list); return AjaxResult.success(list);
} catch (Exception e) { } catch (Exception e) {
return AjaxResult.error(e.getMessage()); return AjaxResult.error(e.getMessage());