parent
							
								
									e5d1e6e68b
								
							
						
					
					
						commit
						09798b8d51
					
				| 
						 | 
				
			
			@ -911,6 +911,24 @@ public class AtuPlanTaskApiServiceImpl extends AbstractExcelService<AtuPlanTask>
 | 
			
		|||
                                                             TaskCaseStepDetailDto detailDto) {
 | 
			
		||||
        // 获取脚本执行结果信息
 | 
			
		||||
        Map<String, StepExecuteResult> stepResultMap = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        JSONArray commands = scriptJson.getJSONArray(MsgConstant.COMMANDS);
 | 
			
		||||
        Map<String, String> groupMap = new HashMap<>();
 | 
			
		||||
        for (Object command : commands) {
 | 
			
		||||
            cn.hutool.json.JSONObject commandJson = JSONUtil.parseObj(command);
 | 
			
		||||
            String commandName = commandJson.getStr(MsgConstant.COMMAND);
 | 
			
		||||
            if ("group".equalsIgnoreCase(commandName)) {
 | 
			
		||||
                String groupStepId = commandJson.getStr(MsgConstant.ID);
 | 
			
		||||
                Object children = commandJson.get(MsgConstant.CHILDREN);
 | 
			
		||||
                cn.hutool.json.JSONArray childrenArray = JSONUtil.parseArray(children);
 | 
			
		||||
                for (Object child : childrenArray) {
 | 
			
		||||
                    cn.hutool.json.JSONObject childJson = JSONUtil.parseObj(child);
 | 
			
		||||
                    String childId = childJson.getStr(MsgConstant.ID);
 | 
			
		||||
                    groupMap.put(childId, groupStepId);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        String stepId = "";
 | 
			
		||||
        if (StrUtil.isNotEmpty(execResultFile)) {
 | 
			
		||||
            // 读取结果文件信息
 | 
			
		||||
| 
						 | 
				
			
			@ -928,7 +946,8 @@ public class AtuPlanTaskApiServiceImpl extends AbstractExcelService<AtuPlanTask>
 | 
			
		|||
                        continue;
 | 
			
		||||
                    }
 | 
			
		||||
                    StepExecuteResult stepExecuteResult = JSONUtil.toBean(line, StepExecuteResult.class);
 | 
			
		||||
                    processStepResult(stepExecuteResult, stepResultMap, "");
 | 
			
		||||
                    String groupId = groupMap.get(stepExecuteResult.getStepId());
 | 
			
		||||
                    processStepResult(stepExecuteResult, stepResultMap, groupId);
 | 
			
		||||
                    if (stepExecuteResult.getStepId() != null && stepExecuteResult.getStepId().startsWith("3e9da7b7c")) {   // 用于只输出对应异常数据的详情,可以删除判断,每一个查询进行输出,日志增多而已
 | 
			
		||||
                        stepId = stepExecuteResult.getStepId();
 | 
			
		||||
                        stepResultMap.forEach((key, value) -> {
 | 
			
		||||
| 
						 | 
				
			
			@ -948,7 +967,7 @@ public class AtuPlanTaskApiServiceImpl extends AbstractExcelService<AtuPlanTask>
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        JSONArray commands = JSONUtil.parseArray(scriptJson.get(MsgConstant.COMMANDS));
 | 
			
		||||
        commands.forEach(one -> checkGroup(stepResultMap, one));
 | 
			
		||||
        List<TaskCaseStepDetailDto> resultList = processStepData(commands, stepResultMap, scriptJson, detailDto, 0, false, false, "");
 | 
			
		||||
        if (StringUtils.isNotBlank(stepId)) {
 | 
			
		||||
            for (TaskCaseStepDetailDto dto : resultList) { // 用于只输出对应异常数据的详情,可以删除判断,每一个查询进行输出,日志增多而已
 | 
			
		||||
| 
						 | 
				
			
			@ -958,6 +977,30 @@ public class AtuPlanTaskApiServiceImpl extends AbstractExcelService<AtuPlanTask>
 | 
			
		|||
        return resultList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void checkGroup(Map<String, StepExecuteResult> stepResultMap, Object command) {
 | 
			
		||||
        cn.hutool.json.JSONObject commandJson = JSONUtil.parseObj(command);
 | 
			
		||||
        String commandStr = commandJson.getStr(MsgConstant.COMMAND);
 | 
			
		||||
        String groupStepId = commandJson.getStr(MsgConstant.ID);
 | 
			
		||||
        if ("group".equalsIgnoreCase(commandStr)) {
 | 
			
		||||
            Object children = commandJson.get(MsgConstant.CHILDREN);
 | 
			
		||||
            if (null != children) {
 | 
			
		||||
                cn.hutool.json.JSONArray childrenArray = JSONUtil.parseArray(children);
 | 
			
		||||
                childrenArray.forEach(child -> {
 | 
			
		||||
                    cn.hutool.json.JSONObject childJson = JSONUtil.parseObj(child);
 | 
			
		||||
                    String childId = childJson.getStr(MsgConstant.ID);
 | 
			
		||||
                    StepExecuteResult stepExecuteResult = stepResultMap.get(String.format("%s.%s", groupStepId, childId));
 | 
			
		||||
                    if (null != stepExecuteResult && stepExecuteResult.isExecuted()) {
 | 
			
		||||
                        StepExecuteResult groupResult = new StepExecuteResult();
 | 
			
		||||
                        groupResult.setExecuted(true);
 | 
			
		||||
                        groupResult.setStepId(groupStepId);
 | 
			
		||||
                        stepResultMap.put(groupStepId, groupResult);
 | 
			
		||||
                    }
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 步骤执行结果处理
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -1092,14 +1135,16 @@ public class AtuPlanTaskApiServiceImpl extends AbstractExcelService<AtuPlanTask>
 | 
			
		|||
            stepDetailDto.setExecResult(childSuccess);
 | 
			
		||||
            stepDetailDto.setExecuted(childExecuted);
 | 
			
		||||
            // 处理子步骤
 | 
			
		||||
            if (PlanConstant.GROUP_COMMAND.equals(commandStr)) {
 | 
			
		||||
                // 分区步骤结果特殊处理,分区下的步骤执行结果不在分区步骤的childResult中
 | 
			
		||||
                stepDetailDto.setStepList(processStepData(commandJson.getJSONArray(MsgConstant.CHILDREN), stepResultMap,
 | 
			
		||||
                        scriptJson, stepDetailDto, num, childSuccess, childExecuted, ""));
 | 
			
		||||
            } else {
 | 
			
		||||
                stepDetailDto.setStepList(processStepData(commandJson.getJSONArray(MsgConstant.CHILDREN), stepResultMap,
 | 
			
		||||
                        scriptJson, stepDetailDto, num, childSuccess, childExecuted, stepId));
 | 
			
		||||
            }
 | 
			
		||||
//            if (PlanConstant.GROUP_COMMAND.equals(commandStr)) {
 | 
			
		||||
//                // 分区步骤结果特殊处理,分区下的步骤执行结果不在分区步骤的childResult中
 | 
			
		||||
//                stepDetailDto.setStepList(processStepData(commandJson.getJSONArray(MsgConstant.CHILDREN), stepResultMap,
 | 
			
		||||
//                        scriptJson, stepDetailDto, num, childSuccess, childExecuted, ""));
 | 
			
		||||
//            } else {
 | 
			
		||||
//                stepDetailDto.setStepList(processStepData(commandJson.getJSONArray(MsgConstant.CHILDREN), stepResultMap,
 | 
			
		||||
//                        scriptJson, stepDetailDto, num, childSuccess, childExecuted, stepId));
 | 
			
		||||
//            }
 | 
			
		||||
            stepDetailDto.setStepList(processStepData(commandJson.getJSONArray(MsgConstant.CHILDREN), stepResultMap,
 | 
			
		||||
                    scriptJson, stepDetailDto, num, childSuccess,  childExecuted, stepId));
 | 
			
		||||
            // 判断是否内部组件
 | 
			
		||||
            if (ObjectUtil.equal(PlanConstant.INTERNAL_COMPONENT_LIB, componentLib)) {
 | 
			
		||||
                if (ObjectUtil.equal(PlanConstant.INTERFACE_STEP_TYPE, stepType) ||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue