查询实例总数

develop
guyuliang 2024-08-24 19:29:02 +08:00
parent 1f83038120
commit a816dffe8c
1 changed files with 33 additions and 22 deletions

View File

@ -70,6 +70,7 @@ import com.megatron.framework.lock.AutoCloseLock;
import com.megatron.framework.lock.LockFactory; import com.megatron.framework.lock.LockFactory;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.yaml.snakeyaml.Yaml;
/** /**
* @author * @author
@ -441,11 +442,10 @@ public class ModuleServiceImpl implements ModuleService {
for (ModuleGroup rootGroup : rootGroups) { for (ModuleGroup rootGroup : rootGroups) {
//获取每个模型的所有实例总数 //获取每个模型的所有实例总数
getInstaceCount(rootGroup,resultMap,countDownLatch); getInstaceCount(rootGroup, resultMap, countDownLatch, context.getTarget());
} }
countDownLatch.await(); countDownLatch.await();
//查询云主机总数 //查询云主机总数
Pager pager = new Pager(); Pager pager = new Pager();
pager.setPage(1); pager.setPage(1);
@ -471,10 +471,11 @@ public class ModuleServiceImpl implements ModuleService {
} }
} }
private void getInstaceCount(ModuleGroup rootGroup, Map<String, Object> resultMap, CountDownLatch countDownLatch) { private void getInstaceCount(ModuleGroup rootGroup, Map<String, Object> resultMap, CountDownLatch countDownLatch, Long userId) {
new Thread(new Runnable() { new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
try {
//获取当前ModuleGroup下所有的modle //获取当前ModuleGroup下所有的modle
Pager pager = new Pager(); Pager pager = new Pager();
GeneralResult<GridBean<CiModule>> modelList = getModelList(pager); GeneralResult<GridBean<CiModule>> modelList = getModelList(pager);
@ -483,12 +484,22 @@ public class ModuleServiceImpl implements ModuleService {
countDownLatch.countDown(); countDownLatch.countDown();
return; return;
} }
Integer total = 0;
for (CiModule model : modelList.getData().getRows()) { for (CiModule model : modelList.getData().getRows()) {
//获取每个模型下所有的实例总数 //获取每个模型下所有的实例总数
String table = CmdbUtils.CMDB_INSTANCE + model.getCode().toLowerCase(); String table = CmdbUtils.CMDB_INSTANCE + model.getCode().toLowerCase();
String valueTable = CmdbUtils.CMDB_INSTANCE_VALUE + model.getCode().toLowerCase(); String valueTable = CmdbUtils.CMDB_INSTANCE_VALUE + model.getCode().toLowerCase();
List<Param> paramList = new ArrayList<>();
Param param = new Param();
param.setParam(MapTools.simpleMap("moduleId", model.getId()));
boolean adminRole = instanceService.checkAdminRole(userId);
int count = instanceRepository.count((List<Param>) param, table, valueTable, userId, adminRole);
total+=count;
}
resultMap.put(rootGroup.getCode(), total);
} catch (Exception e) {
log.info("查询失败", e);
} }
resultMap.put("","");
countDownLatch.countDown(); countDownLatch.countDown();
} }
}).start(); }).start();