1、修改宜安科技同步任务接口
2、二维导出功能修复
This commit is contained in:
@@ -147,8 +147,8 @@ public class SimulationTaskController {
|
||||
*/
|
||||
@PostMapping("/getTaskCompleteStatistics")
|
||||
@Operation(summary = "按工位、学科的仿真任务达成统计", description = "按工位、学科的仿真任务达成统计")
|
||||
public SdmResponse getCommonCompleteStatistics(@RequestBody @Validated TaskCompleteStatisticsReq req) {
|
||||
return taskService.getCommonCompleteStatistics(req);
|
||||
public SdmResponse getTaskCompleteStatistics(@RequestBody @Validated TaskCompleteStatisticsReq req) {
|
||||
return taskService.getTaskCompleteStatistics(req);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -53,9 +53,9 @@ public interface SimulationNodeMapper extends BaseMapper<SimulationNode> {
|
||||
|
||||
void deleteTaskBatch(List<String> deleteNodeIdList);
|
||||
|
||||
void deleteTaskExtraBatch(@Param("taskIdList") List<Long> taskIdList);
|
||||
void deleteTaskExtraBatch(@Param("taskIdList") List<String> taskIdList);
|
||||
|
||||
void deleteTaskMemberBatch(@Param("taskIdList") List<Long> taskIdList);
|
||||
void deleteTaskMemberBatch(@Param("taskIdList") List<String> taskIdList);
|
||||
|
||||
void deletePerformanceBatch(@Param("performanceIdList") List<Long> performanceIdList);
|
||||
|
||||
@@ -65,7 +65,7 @@ public interface SimulationNodeMapper extends BaseMapper<SimulationNode> {
|
||||
|
||||
List<TaskNodeMemberPo> getTaskMemberListByNodeIdList(@Param("nodeIdList") List<String> nodeIdList);
|
||||
|
||||
List<PerformanceNodePo> getPerformanceListByNodeIdList(@Param("taskIdList") List<Long> taskIdList);
|
||||
List<PerformanceNodePo> getPerformanceListByNodeIdList(@Param("taskIdList") List<String> taskIdList);
|
||||
|
||||
SpdmNodeVo getNodeById(@Param("projectNodeId") String projectNodeId);
|
||||
|
||||
|
||||
@@ -50,4 +50,8 @@ public interface SimulationTaskMapper extends BaseMapper<SimulationTask> {
|
||||
|
||||
List<TaskNodeExtraPo> getTaskExtraList(@Param("taskIdList") List<String> taskIdList);
|
||||
|
||||
List<SpdmTaskVo> getTaskListByTag(@Param("req") TaskCompleteStatisticsReq req);
|
||||
|
||||
List<SpdmTaskVo> getTaskListByName(@Param("taskNameList") List<String> taskNameList);
|
||||
|
||||
}
|
||||
|
||||
@@ -47,6 +47,8 @@ public class PerformanceNodePo extends NodeAllBase {
|
||||
*/
|
||||
private String method;
|
||||
|
||||
private String completeStatus;
|
||||
|
||||
/**
|
||||
* 目标值
|
||||
*/
|
||||
|
||||
@@ -159,4 +159,5 @@ public class ProjectNodePo extends NodeAllBase {
|
||||
private String tag10;
|
||||
|
||||
private Long imageFileId;
|
||||
private String englishName;
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ public interface ITaskService {
|
||||
|
||||
BosimSaveProjectTaskRsp syncCidTask(SyncCidTaskReq req);
|
||||
|
||||
SdmResponse getCommonCompleteStatistics(TaskCompleteStatisticsReq req);
|
||||
SdmResponse getTaskCompleteStatistics(TaskCompleteStatisticsReq req);
|
||||
|
||||
SdmResponse getPerformanceCompleteStatistics(PerformanceCompleteStatisticsReq req);
|
||||
|
||||
|
||||
@@ -235,7 +235,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
return true;
|
||||
}
|
||||
nodeMapper.deleteTaskBatch(deleteNodeIdList);
|
||||
List<Long> taskIdList = taskNodePoList.stream().map(TaskNodePo::getId).toList();
|
||||
List<String> taskIdList = taskNodePoList.stream().map(TaskNodePo::getUuid).toList();
|
||||
nodeMapper.deleteTaskExtraBatch(taskIdList);
|
||||
nodeMapper.deleteTaskMemberBatch(taskIdList);
|
||||
// 删除当前节点及子节点下的指标相关信息
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.sdm.common.feign.impl.system.SysUserFeignClientImpl;
|
||||
import com.sdm.common.utils.RandomUtil;
|
||||
import com.sdm.common.utils.excel.ExcelUtil;
|
||||
import com.sdm.project.common.MemberTypeEnum;
|
||||
import com.sdm.project.common.RunPerformanceStatusEnum;
|
||||
import com.sdm.project.common.TaskExeStatusEnum;
|
||||
import com.sdm.project.dao.SimulationDemandMapper;
|
||||
import com.sdm.project.dao.SimulationNodeMapper;
|
||||
@@ -1322,6 +1323,18 @@ public class TaskServiceImpl implements ITaskService {
|
||||
resp.setMessage(ResultCode.FAILED.getMessage());
|
||||
return resp;
|
||||
}
|
||||
List<String> taskNameList = taskInfoList.stream().map(ProjectTaskInfo::getTaskName).distinct().toList();
|
||||
List<SpdmTaskVo> taskVoList = mapper.getTaskListByName(taskNameList);
|
||||
if (CollectionUtils.isNotEmpty(taskVoList)) {
|
||||
List<String> projectIdList = taskVoList.stream().map(SpdmTaskVo::getTag1).toList();
|
||||
if (projectIdList.contains(projectId)) {
|
||||
String existTaskName = taskVoList.stream().map(SpdmTaskVo::getTaskName).collect(Collectors.joining(","));
|
||||
log.error("本次同步任务失败,以下任务:{}已存在",existTaskName);
|
||||
resp.setCode(String.valueOf(ResultCode.FAILED.getCode()));
|
||||
resp.setMessage("本次同步任务失败,以下任务:"+existTaskName+"已存在");
|
||||
return resp;
|
||||
}
|
||||
}
|
||||
List<CidTaskNode> taskNodeList = new ArrayList<>();
|
||||
for (ProjectTaskInfo projectTaskInfo : taskInfoList) {
|
||||
CidTaskNode taskNode = new CidTaskNode();
|
||||
@@ -1366,10 +1379,66 @@ public class TaskServiceImpl implements ITaskService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse getCommonCompleteStatistics(TaskCompleteStatisticsReq req) {
|
||||
public SdmResponse getTaskCompleteStatistics(TaskCompleteStatisticsReq req) {
|
||||
// 所有任务执行状态
|
||||
Set<String> allExeStatus = new HashSet<>();
|
||||
List<CommonGetCompleteFromTaskVo> commonCompleteStatisticsFromTask = mapper.getTaskCompleteStatistics(req);
|
||||
List<SpdmTaskVo> taskList = mapper.getTaskListByTag(req);
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
log.error("根据参数:{},未查询到任务",req);
|
||||
JSONObject resultResponse = new JSONObject();
|
||||
resultResponse.put("allExeStatus", allExeStatus);
|
||||
resultResponse.put("result", new ArrayList<>());
|
||||
return SdmResponse.success(resultResponse);
|
||||
}
|
||||
String resultTagType = req.getResultTagType();
|
||||
List<String> nodeIdList = new ArrayList<>();
|
||||
for (SpdmTaskVo taskVo : taskList) {
|
||||
try {
|
||||
String tagProperty = getTagProperty(taskVo, resultTagType);
|
||||
if (StringUtils.isNotBlank(tagProperty)) {
|
||||
nodeIdList.addAll(Arrays.stream(tagProperty.split(",")).toList());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isEmpty(nodeIdList)) {
|
||||
log.error("根据任务:{},未查询到{}标签中的节点id",taskList,resultTagType);
|
||||
JSONObject resultResponse = new JSONObject();
|
||||
resultResponse.put("allExeStatus", allExeStatus);
|
||||
resultResponse.put("result", new ArrayList<>());
|
||||
return SdmResponse.success(resultResponse);
|
||||
}
|
||||
nodeIdList = nodeIdList.stream().distinct().toList();
|
||||
List<SpdmNodeVo> nodeList = nodeMapper.getNodeListByIds(nodeIdList);
|
||||
if (CollectionUtils.isEmpty(nodeList)) {
|
||||
log.error("根据节点id:{},未查询节点",nodeIdList);
|
||||
JSONObject resultResponse = new JSONObject();
|
||||
resultResponse.put("allExeStatus", allExeStatus);
|
||||
resultResponse.put("result", new ArrayList<>());
|
||||
return SdmResponse.success(resultResponse);
|
||||
}
|
||||
Map<String, String> nodeMap = nodeList.stream().collect(Collectors.toMap(SpdmNodeVo::getUuid, SpdmNodeVo::getNodeName));
|
||||
List<CommonGetCompleteFromTaskVo> commonCompleteStatisticsFromTask = new ArrayList<>();
|
||||
String resultTagId;
|
||||
String[] resultTagIdArr;
|
||||
for (SpdmTaskVo taskVo : taskList) {
|
||||
try {
|
||||
resultTagId = getTagProperty(taskVo,resultTagType);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
if (StringUtils.isBlank(resultTagId)) {
|
||||
log.error("id:{}任务的:{}标签不存在",taskVo.getId(),resultTagType);
|
||||
continue;
|
||||
}
|
||||
resultTagIdArr = resultTagId.split(",");
|
||||
CommonGetCompleteFromTaskVo commonGetCompleteFromTaskVo = new CommonGetCompleteFromTaskVo();
|
||||
commonGetCompleteFromTaskVo.setTag(resultTagId);
|
||||
commonGetCompleteFromTaskVo.setNodeName(nodeMap.get(resultTagIdArr[resultTagIdArr.length - 1]));
|
||||
commonGetCompleteFromTaskVo.setExeStatus(taskVo.getExeStatus());
|
||||
commonCompleteStatisticsFromTask.add(commonGetCompleteFromTaskVo);
|
||||
}
|
||||
// 按tag分组统计任务状态
|
||||
Map<String, CommonStatisticsVo> taskStatisticsMap = new HashMap<>();
|
||||
// 统计每个tag的各种状态任务数量
|
||||
@@ -1401,8 +1470,89 @@ public class TaskServiceImpl implements ITaskService {
|
||||
public SdmResponse getPerformanceCompleteStatistics(PerformanceCompleteStatisticsReq req) {
|
||||
// 所有指标执行状态
|
||||
Set<String> allExeStatus = new HashSet<>();
|
||||
// 处理指标完成情况统计
|
||||
List<CommonGetCompleteFromPerformanceVo> commonCompleteStatisticsFromPerformance = mapper.getPerformanceCompleteStatistics(req);
|
||||
TaskCompleteStatisticsReq taskCompleteStatisticsReq = new TaskCompleteStatisticsReq();
|
||||
BeanUtils.copyProperties(req,taskCompleteStatisticsReq);
|
||||
List<SpdmTaskVo> taskList = mapper.getTaskListByTag(taskCompleteStatisticsReq);
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
log.error("根据参数:{},未查询到任务",req);
|
||||
JSONObject resultResponse = new JSONObject();
|
||||
resultResponse.put("allExeStatus", allExeStatus);
|
||||
resultResponse.put("result", new ArrayList<>());
|
||||
return SdmResponse.success(resultResponse);
|
||||
}
|
||||
// 查询任务下所有指标
|
||||
List<String> taskIdList = taskList.stream().map(SpdmTaskVo::getUuid).distinct().toList();
|
||||
List<PerformanceNodePo> performanceList = nodeMapper.getPerformanceListByNodeIdList(taskIdList);
|
||||
if (CollectionUtils.isEmpty(performanceList)) {
|
||||
log.error("根据任务id:{},未查询到指标",taskIdList);
|
||||
JSONObject resultResponse = new JSONObject();
|
||||
resultResponse.put("allExeStatus", allExeStatus);
|
||||
resultResponse.put("result", new ArrayList<>());
|
||||
return SdmResponse.success(resultResponse);
|
||||
}
|
||||
Map<String, SpdmTaskVo> taskMap = taskList.stream().collect(Collectors.groupingBy(
|
||||
SpdmTaskVo::getUuid,
|
||||
Collectors.collectingAndThen(
|
||||
Collectors.toList(),
|
||||
list -> list.get(0)
|
||||
)
|
||||
));
|
||||
String resultTagType = req.getResultTagType();
|
||||
List<String> nodeIdList = new ArrayList<>();
|
||||
SpdmTaskVo eachTaskVo;
|
||||
for (PerformanceNodePo performanceNodePo : performanceList) {
|
||||
eachTaskVo = taskMap.get(performanceNodePo.getTaskId());
|
||||
if (ObjectUtils.isEmpty(eachTaskVo)) {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
String tagProperty = getTagProperty(eachTaskVo, resultTagType);
|
||||
if (StringUtils.isNotBlank(tagProperty)) {
|
||||
nodeIdList.addAll(Arrays.stream(tagProperty.split(",")).toList());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isEmpty(nodeIdList)) {
|
||||
log.error("根据任务:{},未查询到{}标签中的节点id",taskList,resultTagType);
|
||||
JSONObject resultResponse = new JSONObject();
|
||||
resultResponse.put("allExeStatus", allExeStatus);
|
||||
resultResponse.put("result", new ArrayList<>());
|
||||
return SdmResponse.success(resultResponse);
|
||||
}
|
||||
nodeIdList = nodeIdList.stream().distinct().toList();
|
||||
List<SpdmNodeVo> nodeList = nodeMapper.getNodeListByIds(nodeIdList);
|
||||
if (CollectionUtils.isEmpty(nodeList)) {
|
||||
log.error("根据节点id:{},未查询节点",nodeIdList);
|
||||
JSONObject resultResponse = new JSONObject();
|
||||
resultResponse.put("allExeStatus", allExeStatus);
|
||||
resultResponse.put("result", new ArrayList<>());
|
||||
return SdmResponse.success(resultResponse);
|
||||
}
|
||||
Map<String, String> nodeMap = nodeList.stream().collect(Collectors.toMap(SpdmNodeVo::getUuid, SpdmNodeVo::getNodeName));
|
||||
List<CommonGetCompleteFromPerformanceVo> commonCompleteStatisticsFromPerformance = new ArrayList<>();
|
||||
String resultTagId;
|
||||
String[] resultTagIdArr;
|
||||
for (PerformanceNodePo performanceNodePo : performanceList) {
|
||||
eachTaskVo = taskMap.get(performanceNodePo.getTaskId());
|
||||
try {
|
||||
resultTagId = getTagProperty(eachTaskVo,resultTagType);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
if (StringUtils.isBlank(resultTagId)) {
|
||||
log.error("id:{}任务的:{}标签不存在",eachTaskVo.getId(),resultTagType);
|
||||
continue;
|
||||
}
|
||||
resultTagIdArr = resultTagId.split(",");
|
||||
CommonGetCompleteFromPerformanceVo commonGetCompleteFromPerformanceVo = new CommonGetCompleteFromPerformanceVo();
|
||||
commonGetCompleteFromPerformanceVo.setTag(resultTagId);
|
||||
commonGetCompleteFromPerformanceVo.setNodeName(nodeMap.get(resultTagIdArr[resultTagIdArr.length - 1]));
|
||||
commonGetCompleteFromPerformanceVo.setCompleteStatus(StringUtils.isNotBlank(performanceNodePo.getCompleteStatus()) ?
|
||||
performanceNodePo.getCompleteStatus() : RunPerformanceStatusEnum.UNCOMPLETED.getCode());
|
||||
commonCompleteStatisticsFromPerformance.add(commonGetCompleteFromPerformanceVo);
|
||||
}
|
||||
// 按tag分组统计指标状态
|
||||
Map<String, CommonStatisticsVo> performanceStatisticsMap = new HashMap<>();
|
||||
// 统计每个tag的各种状态指标数量
|
||||
|
||||
@@ -35,11 +35,11 @@
|
||||
|
||||
<insert id="batchAddSimulationCidTask" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into simulation_task (uuid,task_name,task_code,task_pool_name,task_pool_version,node_id,days,standard,fold_id,status,achieve_status,begin_time,end_time,progress,exe_status,confidence,analyse_target,analyse_software,description,difficult,tenant_id
|
||||
,creator,create_time,department,sectionName,groupName,bCapacity,englishName) values
|
||||
,creator,create_time,department,sectionName,groupName,bCapacity,englishName,tag1) values
|
||||
<foreach collection='list' item='it' index='index' separator=','>
|
||||
(#{it.uuid},#{it.taskName},#{it.taskCode},'','',#{it.nodeId},#{it.days},#{it.standard},'',1,0,
|
||||
#{it.beginTime},#{it.endTime},0,1,#{it.confidence},#{it.analyseTarget},#{it.analyseSoftwares},#{it.description},#{it.difficult},#{it.tenantId},
|
||||
#{it.creator},#{it.createTime},#{it.department},#{it.section},#{it.group},#{it.bCapacity},#{it.englishName})
|
||||
#{it.creator},#{it.createTime},#{it.department},#{it.section},#{it.group},#{it.bCapacity},#{it.englishName},#{it.tag1})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
|
||||
@@ -318,5 +318,51 @@
|
||||
)
|
||||
</select>
|
||||
|
||||
<select id="getTaskListByTag" resultType="com.sdm.project.model.vo.SpdmTaskVo">
|
||||
select * from simulation_task task
|
||||
<where>
|
||||
task.exe_status is not null
|
||||
<if test="req.tag1 != null and req.tag1 !='' ">
|
||||
and task.tag1 like CONCAT('%',#{req.tag1},'%')
|
||||
</if>
|
||||
<if test="req.tag2 != null and req.tag2 !='' ">
|
||||
and task.tag2 like CONCAT('%',#{req.tag2},'%')
|
||||
</if>
|
||||
<if test="req.tag3 != null and req.tag3 !='' ">
|
||||
and task.tag3 like CONCAT('%',#{req.tag3},'%')
|
||||
</if>
|
||||
<if test="req.tag4 != null and req.tag4 !='' ">
|
||||
and task.tag4 like CONCAT('%',#{req.tag4},'%')
|
||||
</if>
|
||||
<if test="req.tag5 != null and req.tag5 !='' ">
|
||||
and task.tag5 like CONCAT('%',#{req.tag5},'%')
|
||||
</if>
|
||||
<if test="req.tag6 != null and req.tag6 !='' ">
|
||||
and task.tag6 like CONCAT('%',#{req.tag6},'%')
|
||||
</if>
|
||||
<if test="req.tag7 != null and req.tag7 !='' ">
|
||||
and task.tag7 like CONCAT('%',#{req.tag7},'%')
|
||||
</if>
|
||||
<if test="req.tag8 != null and req.tag8 !='' ">
|
||||
and task.tag8 like CONCAT('%',#{req.tag8},'%')
|
||||
</if>
|
||||
<if test="req.tag9 != null and req.tag9 !='' ">
|
||||
and task.tag9 like CONCAT('%',#{req.tag9},'%')
|
||||
</if>
|
||||
<if test="req.tag10 != null and req.tag10 !='' ">
|
||||
and task.tag10 like CONCAT('%',#{req.tag10},'%')
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getTaskListByName" resultType="com.sdm.project.model.vo.SpdmTaskVo">
|
||||
select * from simulation_task where task_name in
|
||||
(
|
||||
<foreach collection='taskNameList' item='taskName' index='index' separator=','>
|
||||
#{taskName}
|
||||
</foreach>
|
||||
)
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user