优化仿真任务置信度与难度系数统计
This commit is contained in:
@@ -146,23 +146,27 @@ public class SimuluationTaskPoolController implements ISimuluationTaskPoolFeignC
|
||||
}
|
||||
|
||||
@GetMapping(value = "statisticDisciplineConfidence")
|
||||
public SdmResponse statisticDisciplineConfidence(@RequestParam("poolName") String poolName,@RequestParam("nodeType") String nodeType)
|
||||
public SdmResponse statisticDisciplineConfidence(@RequestParam("poolName") String poolName)
|
||||
{
|
||||
return service.statisicDisciplineConfidence(poolName,nodeType);
|
||||
return service.statisicNodeTypeConfidence(poolName,"discipline");
|
||||
}
|
||||
|
||||
@GetMapping(value = "statisticDisciplineConfidenceTrend")
|
||||
public SdmResponse statisticDisciplineConfidenceTrend(@RequestParam("poolName") String poolName,@RequestParam("timeRange")String timeRange,@RequestParam("nodeType")String nodeType)
|
||||
public SdmResponse statisticDisciplineConfidenceTrend(@RequestParam("poolName") String poolName,@RequestParam("timeRange")String timeRange)
|
||||
{
|
||||
return service.staticDisciplineConfidenceTrend(poolName,timeRange,nodeType);
|
||||
return service.staticNodeTypeConfidenceTrend(poolName,timeRange,"discipline");
|
||||
}
|
||||
|
||||
@GetMapping(value = "statisticDisciplineDifficulty")
|
||||
public SdmResponse statisticDisciplineDifficulty(@RequestParam("poolName") String poolName,@RequestParam("nodeType") String nodeType)
|
||||
public SdmResponse statisticDisciplineDifficulty(@RequestParam("poolName") String poolName)
|
||||
{
|
||||
return service.statisicDisciplineDifficulty(poolName,nodeType);
|
||||
return service.statisicNodeTypeDifficulty(poolName,"discipline");
|
||||
}
|
||||
|
||||
|
||||
@GetMapping(value = "statisticWorkspaceConfidence")
|
||||
public SdmResponse statisticWorkspaceConfidence(@RequestParam("poolName") String poolName)
|
||||
{
|
||||
return service.statisicNodeTypeConfidence(poolName,"workspace");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -161,8 +161,8 @@ public interface SimulationPoolMapper {
|
||||
@Delete("DELETE FROM simulation_pool_node WHERE uuid = #{nodeId}")
|
||||
int deleteTaskPoolNode(@Param("nodeId")String nodeId);
|
||||
|
||||
@Select("SELECT DISTINCT(nodeName) FROM simulation_pool_node WHERE nodeType='discipline' AND poolName=#{poolName}")
|
||||
List<String> queryTaskPoolAllDiscipline(@Param("poolName") String poolName);
|
||||
@Select("SELECT DISTINCT(nodeName) FROM simulation_pool_node WHERE nodeType=#{nodeType} AND poolName=#{poolName}")
|
||||
List<String> queryTaskPoolAllNodeNameByNodeType(@Param("poolName") String poolName,@Param("nodeType")String nodeType);
|
||||
|
||||
|
||||
@Delete("DELETE FROM simulation_pool_node_extra WHERE nodeId=#{nodeId}")
|
||||
@@ -260,23 +260,22 @@ public interface SimulationPoolMapper {
|
||||
@Select("SELECT * FROM simulation_taskpool_flowtemplate_relate WHERE poolName=#{poolName} AND version=#{version}")
|
||||
List<SimulatePoolTaskFlowTemplateRelate> queryTaskFlowRelateByPoolVersion(@Param("poolName")String poolName,@Param("version")String version);
|
||||
|
||||
@Select("SELECT discipline,AVG(confidence) confidence FROM simulation_task_confidence_difficulty_month_record WHERE month=#{month} AND confidence > 0 GROUP BY discipline")
|
||||
List<DisciplineConfidenceInfo> statisticDisciplineLastConfidence(@Param("month")String month);
|
||||
@Select("SELECT nodeName,AVG(confidence) confidence FROM simulation_task_confidence_difficulty_month_record WHERE month=#{month} AND confidence > 0 AND nodeType=#{nodeType} GROUP BY nodeName")
|
||||
List<DisciplineConfidenceInfo> statisticNodeLastConfidence(@Param("month")String month,@Param("nodeType") String nodeType);
|
||||
|
||||
@Select("SELECT discipline,AVG(difficulty) difficulty FROM simulation_task_confidence_difficulty_month_record WHERE month=#{month} AND difficulty > 0 GROUP BY discipline")
|
||||
List<DisciplineDifficultyInfo> statisticDisciplineLastDifficulty(@Param("month")String month);
|
||||
@Select("SELECT nodeName,AVG(difficulty) difficulty FROM simulation_task_confidence_difficulty_month_record WHERE month=#{month} AND nodeType=#{nodeType} AND difficulty > 0 GROUP BY nodeName")
|
||||
List<DisciplineDifficultyInfo> statisticDisciplineLastDifficulty(@Param("month")String month,@Param("nodeType")String nodeType);
|
||||
|
||||
@Insert("INSERT INTO simulation_task_confidence_difficulty_month_record(discipline,taskName,taskCode,confidence,difficulty,month) VALUES (#{entity.discipline},#{entity.taskName},#{entity.taskCode},#{entity.confidence},#{entity.difficulty},#{entity.month})")
|
||||
@Insert("INSERT INTO simulation_task_confidence_difficulty_month_record(nodeName,nodeType,taskName,taskCode,confidence,difficulty,month) VALUES (#{entity.nodeName},#{entity.nodeType},#{entity.taskName},#{entity.taskCode},#{entity.confidence},#{entity.difficulty},#{entity.month})")
|
||||
int addDisciplineTaskMonthRecord(@Param("entity")DisciplineTaskConfidenceDifficultyRecord entity);
|
||||
|
||||
@Select("SELECT * FROM simulation_task_confidence_difficulty_month_record WHERE discipline=#{discipline} AND taskCode=#{taskCode} AND month=#{month}")
|
||||
List<DisciplineTaskConfidenceDifficultyRecord> queryDisciplineTaskMonthRecord(@Param("discipline")String discipline,@Param("taskCode")String taskCode,@Param("month")String month);
|
||||
@Select("SELECT * FROM simulation_task_confidence_difficulty_month_record WHERE nodeName=#{nodeName} AND taskCode=#{taskCode} AND month=#{month} AND nodeType=#{nodeType}")
|
||||
List<DisciplineTaskConfidenceDifficultyRecord> queryDisciplineTaskMonthRecord(@Param("nodeName")String nodeName,@Param("taskCode")String taskCode,@Param("month")String month,@Param("nodeType")String nodeType);
|
||||
|
||||
@Update("UPDATE simulation_task_confidence_difficulty_month_record SET confidence=#{entity.confidence},difficulty=#{entity.difficulty} WHERE discipline=#{entity.discipline} AND taskCode=#{entity.taskCode} AND month=#{entity.month}")
|
||||
@Update("UPDATE simulation_task_confidence_difficulty_month_record SET confidence=#{entity.confidence},difficulty=#{entity.difficulty} WHERE nodeName=#{entity.nodeName} AND nodeType=#{entity.nodeType} AND taskCode=#{entity.taskCode} AND month=#{entity.month}")
|
||||
int updateDisciplineTaskMonthRecord(@Param("entity")DisciplineTaskConfidenceDifficultyRecord entity);
|
||||
|
||||
@Select("SELECT month,AVG(confidence) FROM simulation_task_confidence_difficulty_month_record WHERE discipline=#{discipline} AND ${timeCondition} GROUP BY month ORDER BY month")
|
||||
List<DisciplineConfidenceInfo> statisticDisciplineConfidenceTrend(@Param("discipline")String discipline,@Param("timeCondition")String timeCondition);
|
||||
|
||||
@Select("SELECT month,AVG(confidence) FROM simulation_task_confidence_difficulty_month_record WHERE nodeName=#{nodeName} AND nodeType=#{nodeType} AND ${timeCondition} GROUP BY month ORDER BY month")
|
||||
List<DisciplineConfidenceInfo> statisticDisciplineConfidenceTrend(@Param("nodeName")String nodeName,@Param("nodeType")String nodeType,@Param("timeCondition")String timeCondition);
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.sdm.task.model.entity;
|
||||
|
||||
public class DisciplineConfidenceInfo {
|
||||
|
||||
public String discipline;
|
||||
public String nodeName;
|
||||
|
||||
public String month;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.sdm.task.model.entity;
|
||||
|
||||
public class DisciplineDifficultyInfo {
|
||||
|
||||
public String discipline;
|
||||
public String nodeName;
|
||||
|
||||
public float difficulty;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,9 @@ public class DisciplineTaskConfidenceDifficultyRecord {
|
||||
|
||||
public String taskCode;
|
||||
|
||||
public String discipline;
|
||||
public String nodeName;
|
||||
|
||||
public String nodeType;
|
||||
|
||||
public float confidence;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import java.util.List;
|
||||
|
||||
public class DiscplineConfidenceTrendInfo {
|
||||
|
||||
public String discipline;
|
||||
public String nodeName;
|
||||
|
||||
public List<DisciplineConfidenceInfo> disciplineConfidenceInfoList ;
|
||||
}
|
||||
@@ -62,10 +62,10 @@ public interface ISimulationTaskPoolService {
|
||||
|
||||
SdmResponse updateFlowTaskRelate(BindTaskAndFlowTemplateReq req);
|
||||
|
||||
SdmResponse statisicDisciplineConfidence(String poolName,String nodeType);
|
||||
SdmResponse statisicNodeTypeConfidence(String poolName,String nodeType);
|
||||
|
||||
SdmResponse staticDisciplineConfidenceTrend(String poolName,String timeRange,String nodeType);
|
||||
SdmResponse staticNodeTypeConfidenceTrend(String poolName,String timeRange,String nodeType);
|
||||
|
||||
SdmResponse statisicDisciplineDifficulty(String poolName,String nodeType);
|
||||
SdmResponse statisicNodeTypeDifficulty(String poolName,String nodeType);
|
||||
|
||||
}
|
||||
|
||||
@@ -2340,23 +2340,23 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
* @param poolName
|
||||
* @return
|
||||
*/
|
||||
public SdmResponse statisicDisciplineConfidence(String poolName,String nodeType)
|
||||
public SdmResponse statisicNodeTypeConfidence(String poolName,String nodeType)
|
||||
{
|
||||
SdmResponse response = SdmResponse.success();
|
||||
syncProjectTaskConfidence(nodeType);
|
||||
List<String> disciplineNames = mapper.queryTaskPoolAllDiscipline(poolName);
|
||||
List<String> nodeNames = mapper.queryTaskPoolAllNodeNameByNodeType(poolName,nodeType);
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||
String month = sdf.format(new Date());
|
||||
List<DisciplineConfidenceInfo> confidenceInfos = mapper.statisticDisciplineLastConfidence(month);
|
||||
List<DisciplineConfidenceInfo> confidenceInfos = mapper.statisticNodeLastConfidence(month,nodeType);
|
||||
Map<String,DisciplineConfidenceInfo> disciplineConfidenceInfoMap = new HashMap<>();
|
||||
for(DisciplineConfidenceInfo confidenceInfo : confidenceInfos)
|
||||
{
|
||||
disciplineConfidenceInfoMap.put(confidenceInfo.discipline,confidenceInfo);
|
||||
disciplineConfidenceInfoMap.put(confidenceInfo.nodeName,confidenceInfo);
|
||||
}
|
||||
List<DisciplineConfidenceInfo> disciplineConfidenceInfoList = new ArrayList<>();
|
||||
for(String discipline : disciplineNames)
|
||||
for(String nodeName : nodeNames)
|
||||
{
|
||||
DisciplineConfidenceInfo confidenceInfo = disciplineConfidenceInfoMap.get(discipline);
|
||||
DisciplineConfidenceInfo confidenceInfo = disciplineConfidenceInfoMap.get(nodeName);
|
||||
if(confidenceInfo != null)
|
||||
{
|
||||
disciplineConfidenceInfoList.add(confidenceInfo);
|
||||
@@ -2364,7 +2364,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
else
|
||||
{
|
||||
DisciplineConfidenceInfo info = new DisciplineConfidenceInfo();
|
||||
info.discipline = discipline;
|
||||
info.nodeName = nodeName;
|
||||
info.confidence = 0;
|
||||
disciplineConfidenceInfoList.add(info);
|
||||
}
|
||||
@@ -2379,7 +2379,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
* @param timeRange
|
||||
* @return
|
||||
*/
|
||||
public SdmResponse staticDisciplineConfidenceTrend(String poolName,String timeRange,String nodeType)
|
||||
public SdmResponse staticNodeTypeConfidenceTrend(String poolName,String timeRange,String nodeType)
|
||||
{
|
||||
SdmResponse response = SdmResponse.success();
|
||||
syncProjectTaskConfidence(nodeType);
|
||||
@@ -2389,7 +2389,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
}
|
||||
else
|
||||
{
|
||||
List<String> disciplineNames = mapper.queryTaskPoolAllDiscipline(poolName);
|
||||
List<String> nodeNames = mapper.queryTaskPoolAllNodeNameByNodeType(poolName,nodeType);
|
||||
String[] yearMonths = timeRange.split(",");
|
||||
String timeCondition = " 1 ";
|
||||
if(yearMonths.length == 1)
|
||||
@@ -2401,11 +2401,11 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
timeCondition += " AND month BETWEEN '"+yearMonths[0]+"' AND '"+yearMonths[1]+"'";
|
||||
}
|
||||
List<DiscplineConfidenceTrendInfo> discplineConfidenceTrendInfos = new ArrayList<>();
|
||||
for(String discipline : disciplineNames)
|
||||
for(String nodeName : nodeNames)
|
||||
{
|
||||
List<DisciplineConfidenceInfo> disciplineConfidenceInfoList = mapper.statisticDisciplineConfidenceTrend(discipline,timeCondition);
|
||||
List<DisciplineConfidenceInfo> disciplineConfidenceInfoList = mapper.statisticDisciplineConfidenceTrend(nodeName,nodeType,timeCondition);
|
||||
DiscplineConfidenceTrendInfo trendInfo = new DiscplineConfidenceTrendInfo();
|
||||
trendInfo.discipline = discipline;
|
||||
trendInfo.nodeName = nodeName;
|
||||
trendInfo.disciplineConfidenceInfoList = disciplineConfidenceInfoList;
|
||||
discplineConfidenceTrendInfos.add(trendInfo);
|
||||
}
|
||||
@@ -2419,23 +2419,23 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
* @param poolName
|
||||
* @return
|
||||
*/
|
||||
public SdmResponse statisicDisciplineDifficulty(String poolName,String nodeType)
|
||||
public SdmResponse statisicNodeTypeDifficulty(String poolName,String nodeType)
|
||||
{
|
||||
SdmResponse response = SdmResponse.success();
|
||||
syncProjectTaskDifficulty(nodeType);
|
||||
List<String> disciplineNames = mapper.queryTaskPoolAllDiscipline(poolName);
|
||||
List<String> nodeNames = mapper.queryTaskPoolAllNodeNameByNodeType(poolName,nodeType);
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||
String month = sdf.format(new Date());
|
||||
List<DisciplineDifficultyInfo> confidenceInfos = mapper.statisticDisciplineLastDifficulty(month);
|
||||
List<DisciplineDifficultyInfo> confidenceInfos = mapper.statisticDisciplineLastDifficulty(month,nodeType);
|
||||
Map<String,DisciplineDifficultyInfo> disciplineDifficultyInfoMap = new HashMap<>();
|
||||
for(DisciplineDifficultyInfo confidenceInfo : confidenceInfos)
|
||||
{
|
||||
disciplineDifficultyInfoMap.put(confidenceInfo.discipline,confidenceInfo);
|
||||
disciplineDifficultyInfoMap.put(confidenceInfo.nodeName,confidenceInfo);
|
||||
}
|
||||
List<DisciplineDifficultyInfo> disciplineDifficultyInfos = new ArrayList<>();
|
||||
for(String discipline : disciplineNames)
|
||||
for(String nodeName : nodeNames)
|
||||
{
|
||||
DisciplineDifficultyInfo difficultyInfo = disciplineDifficultyInfoMap.get(discipline);
|
||||
DisciplineDifficultyInfo difficultyInfo = disciplineDifficultyInfoMap.get(nodeName);
|
||||
if(difficultyInfo != null)
|
||||
{
|
||||
disciplineDifficultyInfos.add(difficultyInfo);
|
||||
@@ -2443,7 +2443,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
else
|
||||
{
|
||||
DisciplineDifficultyInfo info = new DisciplineDifficultyInfo();
|
||||
info.discipline = discipline;
|
||||
info.nodeName = nodeName;
|
||||
info.difficulty = 0;
|
||||
disciplineDifficultyInfos.add(info);
|
||||
}
|
||||
@@ -2457,7 +2457,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
* @param statisticArray
|
||||
* @param type
|
||||
*/
|
||||
private void handleSyncProjectTaskRecord(List<JSONObject> statisticArray,int type)
|
||||
private void handleSyncProjectTaskRecord(List<JSONObject> statisticArray,int type,String nodeType)
|
||||
{
|
||||
|
||||
Map<String,List<Float>> taskConfidencesMap = new HashMap<>();
|
||||
@@ -2465,7 +2465,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
for(int index=0; index<statisticArray.size(); index++)
|
||||
{
|
||||
JSONObject taskConfidence = (JSONObject)statisticArray.get(index);
|
||||
String discipline = taskConfidence.getString("discipline");
|
||||
String nodeName = taskConfidence.getString("nodeName");
|
||||
String taskCode = taskConfidence.getString("taskCode");
|
||||
String taskName = taskConfidence.getString("taskName");
|
||||
float floatVal = 0;
|
||||
@@ -2473,7 +2473,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
floatVal = taskConfidence.getFloat("confidence");
|
||||
else
|
||||
floatVal = taskConfidence.getFloat("difficult");
|
||||
String key = discipline + "_" + taskCode;
|
||||
String key = nodeName + "_" + taskCode;
|
||||
taskConfidencesMap.computeIfAbsent(key, k -> new ArrayList<>()).add(floatVal);
|
||||
taskCodeAndNameMap.put(taskCode, taskName);
|
||||
}
|
||||
@@ -2482,7 +2482,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
for(String key : taskConfidencesMap.keySet())
|
||||
{
|
||||
String[] keyHeader = key.split("_");
|
||||
String discipline = keyHeader[0];
|
||||
String nodeName = keyHeader[0];
|
||||
String taskCode = keyHeader[1];
|
||||
List<Float> confidenceList = taskConfidencesMap.get(key);
|
||||
float confidence = 0;
|
||||
@@ -2491,11 +2491,12 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
confidence += f;
|
||||
}
|
||||
confidence = confidence / taskConfidencesMap.size();
|
||||
List<DisciplineTaskConfidenceDifficultyRecord> records = mapper.queryDisciplineTaskMonthRecord(discipline,taskCode,month);
|
||||
List<DisciplineTaskConfidenceDifficultyRecord> records = mapper.queryDisciplineTaskMonthRecord(nodeName,taskCode,month,nodeType);
|
||||
if(records == null || records.isEmpty())
|
||||
{
|
||||
DisciplineTaskConfidenceDifficultyRecord record = new DisciplineTaskConfidenceDifficultyRecord();
|
||||
record.discipline = discipline;
|
||||
record.nodeName = nodeName;
|
||||
record.nodeType = nodeType;
|
||||
record.taskCode = taskCode;
|
||||
record.confidence = 0;
|
||||
record.difficulty = 0;
|
||||
@@ -2535,7 +2536,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
if(response.isSuccess())
|
||||
{
|
||||
List<JSONObject> taskConfidences = (List<JSONObject>)response.getData();
|
||||
handleSyncProjectTaskRecord(taskConfidences,0);
|
||||
handleSyncProjectTaskRecord(taskConfidences,0,nodeType);
|
||||
}
|
||||
return response;
|
||||
}
|
||||
@@ -2550,7 +2551,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
||||
if(response.isSuccess())
|
||||
{
|
||||
List<JSONObject> taskDifficulty = (List<JSONObject>)response.getData();
|
||||
handleSyncProjectTaskRecord(taskDifficulty,1);
|
||||
handleSyncProjectTaskRecord(taskDifficulty,1,nodeType);
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user