|
@@ -33,6 +33,7 @@ import com.css.simulation.resource.project.feign.KafkaService;
|
|
import com.css.simulation.resource.project.mapper.*;
|
|
import com.css.simulation.resource.project.mapper.*;
|
|
import com.css.simulation.resource.project.service.SimulationProjectService;
|
|
import com.css.simulation.resource.project.service.SimulationProjectService;
|
|
import com.css.simulation.resource.system.service.DictService;
|
|
import com.css.simulation.resource.system.service.DictService;
|
|
|
|
+import com.css.simulation.resource.util.ProjectUtil;
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.google.common.collect.ImmutableMap;
|
|
import com.google.common.collect.ImmutableMap;
|
|
@@ -103,10 +104,14 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
AlgorithmService algorithmService;
|
|
AlgorithmService algorithmService;
|
|
-
|
|
|
|
@Resource
|
|
@Resource
|
|
MonitorService monitorService;
|
|
MonitorService monitorService;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ ProjectUtil projectUtil;
|
|
|
|
+
|
|
|
|
+ //* -------------------------------- Comment --------------------------------
|
|
|
|
+
|
|
private String[] dateFmtArr = new String[]{"yyyyMMdd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd"};
|
|
private String[] dateFmtArr = new String[]{"yyyyMMdd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd"};
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -2229,19 +2234,6 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- private String getEvaluationLevelReport(Double algorithmScore) {
|
|
|
|
- String evaluationLevelReport = "";
|
|
|
|
- if (algorithmScore >= 90) {
|
|
|
|
- evaluationLevelReport = DictConstants.REPORT_LEVEL_G;
|
|
|
|
- } else if (algorithmScore >= 80 && algorithmScore < 90) {
|
|
|
|
- evaluationLevelReport = DictConstants.REPORT_LEVEL_A;
|
|
|
|
- } else if (algorithmScore >= 70 && algorithmScore < 80) {
|
|
|
|
- evaluationLevelReport = DictConstants.REPORT_LEVEL_M;
|
|
|
|
- } else if (algorithmScore < 70) {
|
|
|
|
- evaluationLevelReport = DictConstants.REPORT_LEVEL_P;
|
|
|
|
- }
|
|
|
|
- return evaluationLevelReport;
|
|
|
|
- }
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* 获取二级场景下所有得分不为 0 的场景数量
|
|
* 获取二级场景下所有得分不为 0 的场景数量
|
|
@@ -2327,24 +2319,22 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
String evaluationLevelReport = "";
|
|
String evaluationLevelReport = "";
|
|
if (!isEmpty(scenePackageSubListVOS)) {
|
|
if (!isEmpty(scenePackageSubListVOS)) {
|
|
//汇总数据初始化
|
|
//汇总数据初始化
|
|
- Double totalScore = 0D;
|
|
|
|
-
|
|
|
|
- for (ScenePackageSubListVO v : scenePackageSubListVOS) {
|
|
|
|
- String weight = v.getWeight();
|
|
|
|
- Double weightDouble = Double.valueOf(weight);
|
|
|
|
|
|
+ double totalScore = 0.0;
|
|
|
|
+ for (ScenePackageSubListVO scenePackageSubListVO : scenePackageSubListVOS) {
|
|
|
|
+ double weightDouble = Double.parseDouble(scenePackageSubListVO.getWeight());
|
|
SimulationMptFirstTargetScorePo simulationMptFirstTargetScorePo = new SimulationMptFirstTargetScorePo();
|
|
SimulationMptFirstTargetScorePo simulationMptFirstTargetScorePo = new SimulationMptFirstTargetScorePo();
|
|
simulationMptFirstTargetScorePo.setPId(po.getId());
|
|
simulationMptFirstTargetScorePo.setPId(po.getId());
|
|
- simulationMptFirstTargetScorePo.setTarget(v.getSublistId());
|
|
|
|
|
|
+ simulationMptFirstTargetScorePo.setTarget(scenePackageSubListVO.getSublistId());
|
|
//单个二级指标得分
|
|
//单个二级指标得分
|
|
SimulationMptFirstTargetScorePo simulationMptFirstTargetScorePo1 = simulationMptFirstTargetScoreMapper.selectFirstTargetScore(simulationMptFirstTargetScorePo);
|
|
SimulationMptFirstTargetScorePo simulationMptFirstTargetScorePo1 = simulationMptFirstTargetScoreMapper.selectFirstTargetScore(simulationMptFirstTargetScorePo);
|
|
if (simulationMptFirstTargetScorePo1 == null) {
|
|
if (simulationMptFirstTargetScorePo1 == null) {
|
|
return evaluationLevelReport;
|
|
return evaluationLevelReport;
|
|
}
|
|
}
|
|
- Double score = simulationMptFirstTargetScorePo1.getScore();
|
|
|
|
|
|
+ double score = simulationMptFirstTargetScorePo1.getScore();
|
|
totalScore += score * (weightDouble / 100);
|
|
totalScore += score * (weightDouble / 100);
|
|
}
|
|
}
|
|
|
|
|
|
- evaluationLevelReport = getEvaluationLevelReport(saveTwoDecimalPlaces(totalScore));
|
|
|
|
|
|
+ evaluationLevelReport = ProjectUtil.getEvaluationLevelReport(saveTwoDecimalPlaces(totalScore));
|
|
return evaluationLevelReport;
|
|
return evaluationLevelReport;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3107,50 +3097,36 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public ResponseBodyVO<String> saveEvaluationLevel(SimulationManualProjectParam param) {
|
|
|
|
-
|
|
|
|
- String projectId = param.getId();
|
|
|
|
|
|
+ public ResponseBodyVO<String> saveEvaluationLevel(String projectId) {
|
|
|
|
|
|
//1 根据 projectId 获取类型 projectType
|
|
//1 根据 projectId 获取类型 projectType
|
|
- String projectType = null;
|
|
|
|
- SchedulerProjectPO manualProjectPO = manualProjectMapper.selectById(projectId);
|
|
|
|
- SchedulerProjectPO autoSubProjectPO = autoSubProjectMapper.selectById(projectId);
|
|
|
|
- if (manualProjectPO != null) {
|
|
|
|
- projectType = DictConstants.PROJECT_TYPE_MANUAL;
|
|
|
|
- } else if (autoSubProjectPO != null) {
|
|
|
|
- projectType = DictConstants.PROJECT_TYPE_AUTO_SUB;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ String projectType = projectUtil.getProjectTypeByProjectId(projectId);
|
|
|
|
+ log.info("SimulationProjectServiceImpl--saveEvaluationLevel 项目 " + projectId + " 类型为 " + projectType);
|
|
|
|
|
|
|
|
+ //2 查询场景包 id
|
|
String scene = null;
|
|
String scene = null;
|
|
- // 手动运行
|
|
|
|
- if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
|
|
|
|
- SimulationManualProjectPo simulationManualProjectPo = simulationProjectMapper.selectProjectBaseById(param);
|
|
|
|
- if (simulationManualProjectPo == null) {
|
|
|
|
- return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "没有查到工作信息");
|
|
|
|
- }
|
|
|
|
- scene = simulationManualProjectPo.getScene();
|
|
|
|
|
|
+ if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) { // 手动运行
|
|
|
|
+ scene = simulationProjectMapper.selectSceneById(projectId);
|
|
|
|
+ } else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {// 自动运行
|
|
|
|
+ scene = simulationAutomaticSubProjectMapper.selectSceneById(projectId);
|
|
}
|
|
}
|
|
- // 自动运行
|
|
|
|
- else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
|
|
|
|
- SimulationManualProjectVo simulationManualProjectVo = simulationAutomaticSubProjectMapper.selectProjectInfo(param);
|
|
|
|
- if (simulationManualProjectVo == null) {
|
|
|
|
- return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "没有查到工作信息");
|
|
|
|
- }
|
|
|
|
- scene = simulationManualProjectVo.getScene();
|
|
|
|
|
|
+ if (StringUtil.isEmpty(scene)) {
|
|
|
|
+ return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "未查询到项目使用的场景测试包。");
|
|
}
|
|
}
|
|
|
|
+ log.info("SimulationProjectServiceImpl--saveEvaluationLevel 项目 " + projectId + " 使用的场景包为 " + scene);
|
|
|
|
|
|
// -------------------------------- 计算评价等级 --------------------------------
|
|
// -------------------------------- 计算评价等级 --------------------------------
|
|
//TODO 该段代码可优化,有时间再优化
|
|
//TODO 该段代码可优化,有时间再优化
|
|
|
|
+ //1 查询场景报告关联的指标
|
|
List<ScenePackageSubListVO> scenePackageSubListVOS = simulationProjectMapper.selectSubSceneByPid(scene);
|
|
List<ScenePackageSubListVO> scenePackageSubListVOS = simulationProjectMapper.selectSubSceneByPid(scene);
|
|
String evaluationLevelReport = "";
|
|
String evaluationLevelReport = "";
|
|
if (!isEmpty(scenePackageSubListVOS)) {
|
|
if (!isEmpty(scenePackageSubListVOS)) {
|
|
- double totalScore = 0D;
|
|
|
|
|
|
+ double totalScore = 0.0;
|
|
for (ScenePackageSubListVO v : scenePackageSubListVOS) {
|
|
for (ScenePackageSubListVO v : scenePackageSubListVOS) {
|
|
double weightDouble = Double.parseDouble(v.getWeight());
|
|
double weightDouble = Double.parseDouble(v.getWeight());
|
|
- //单个二级指标得分
|
|
|
|
|
|
+ // 根据一级指标计算总得分
|
|
SimulationMptFirstTargetScorePo simulationMptFirstTargetScorePo = new SimulationMptFirstTargetScorePo();
|
|
SimulationMptFirstTargetScorePo simulationMptFirstTargetScorePo = new SimulationMptFirstTargetScorePo();
|
|
- simulationMptFirstTargetScorePo.setPId(param.getId()); //直接(子)任务表id
|
|
|
|
|
|
+ simulationMptFirstTargetScorePo.setPId(projectId); //直接(子)任务表id
|
|
simulationMptFirstTargetScorePo.setTarget(v.getSublistId());
|
|
simulationMptFirstTargetScorePo.setTarget(v.getSublistId());
|
|
SimulationMptFirstTargetScorePo simulationMptFirstTargetScorePo1 = simulationMptFirstTargetScoreMapper.selectFirstTargetScore(simulationMptFirstTargetScorePo);
|
|
SimulationMptFirstTargetScorePo simulationMptFirstTargetScorePo1 = simulationMptFirstTargetScoreMapper.selectFirstTargetScore(simulationMptFirstTargetScorePo);
|
|
if (simulationMptFirstTargetScorePo1 == null) {
|
|
if (simulationMptFirstTargetScorePo1 == null) {
|
|
@@ -3159,13 +3135,16 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
Double score = simulationMptFirstTargetScorePo1.getScore();
|
|
Double score = simulationMptFirstTargetScorePo1.getScore();
|
|
totalScore += score * (weightDouble / 100);
|
|
totalScore += score * (weightDouble / 100);
|
|
}
|
|
}
|
|
- evaluationLevelReport = getEvaluationLevelReport(saveTwoDecimalPlaces(totalScore));
|
|
|
|
|
|
+ evaluationLevelReport = ProjectUtil.getEvaluationLevelReport(totalScore);
|
|
|
|
+ log.info("SimulationProjectServiceImpl--saveEvaluationLevel 项目 " + projectId + " 的总分为: " + totalScore + ",评价等级为:" + evaluationLevelReport);
|
|
}
|
|
}
|
|
// -------------------------------- 保存结果 --------------------------------
|
|
// -------------------------------- 保存结果 --------------------------------
|
|
if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
|
|
if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
|
|
manualProjectMapper.updateEvaluationLevel(projectId, evaluationLevelReport);
|
|
manualProjectMapper.updateEvaluationLevel(projectId, evaluationLevelReport);
|
|
} else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
|
|
} else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
|
|
autoSubProjectMapper.updateEvaluationLevel(projectId, evaluationLevelReport);
|
|
autoSubProjectMapper.updateEvaluationLevel(projectId, evaluationLevelReport);
|
|
|
|
+ } else {
|
|
|
|
+ ;
|
|
}
|
|
}
|
|
|
|
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
|