解释这段代码 String docDatumId = docDatumDTO.getDocDatumId(); // 所有的ai结果都为通过 List<TAiStdAuditResult> tAiStdAuditResults = aiStdAuditResultDao.listByDocDatumIds(Lists.newArrayList(docDatumId)); log.info("tAiStdAuditResults查询结果:{}",JSONObject.toJSONString(tAiStdAuditResults)); //不通过的 if (CollectionUtils.isEmpty(tAiStdAuditResults)) { return false; } List<TAiStdAuditResult> finalNoPassAiStdAuditResultList = new ArrayList<>(); Set<String> notThisFileSet = new HashSet<>(); Set<String> finalNoPassAiStdAuditResultSet=new HashSet<>(); tAiStdAuditResults.stream().forEach(item -> { String auditResultStr = item.getAuditResult(); Map auditResultMap = null; try { auditResultMap = JsonUtils.toObject(auditResultStr, Map.class); } catch (Exception e) { log.error(e.getMessage(), e); } if (!MapUtils.isEmpty(auditResultMap) && auditResultMap.get(AiStdCommonCons.AUDIT_RESULT) != null && AIAuditResultValueEnum.SPLIT_PASS.getCode().equals(auditResultMap.get(AiStdCommonCons.AUDIT_RESULT))) { otherPassDocFileIdList.add(item.getDocFileId()); }else if(!MapUtils.isEmpty(auditResultMap) && auditResultMap.get(AiStdCommonCons.AUDIT_RESULT) != null && AIAuditResultValueEnum.NOT_THIS_FILE.getCode().equals(auditResultMap.get(AiStdCommonCons.AUDIT_RESULT))){ finalNoPassAiStdAuditResultList.add(item); notThisFileSet.add(item.getDocFileId()); } else if (MapUtils.isEmpty(auditResultMap) || !AIAuditResultValueEnum.PASS.getCode().equals(auditResultMap.get(AiStdCommonCons.AUDIT_RESULT))) { finalNoPassAiStdAuditResultList.add(item); finalNoPassAiStdAuditResultSet.add(item.getDocFileId()); } });
时间: 2024-02-14 08:28:53 浏览: 141
这段代码是在处理文档数据的审核结果。首先,获取`docDatumDTO`对象的`docDatumId`属性值。然后,通过`aiStdAuditResultDao`查询所有与`docDatumId`相关的审核结果,并将结果存储在`tAiStdAuditResults`列表中。接下来,判断如果`tAiStdAuditResults`列表为空,即没有通过的审核结果,则返回false。
然后,创建一个空的`finalNoPassAiStdAuditResultList`列表,用于存储最终未通过审核的结果。同时,创建两个空的集合`notThisFileSet`和`finalNoPassAiStdAuditResultSet`,用于存储未通过审核的文档文件ID。
接下来,使用流式操作遍历`tAiStdAuditResults`列表中的每个元素。对于每个元素,首先获取其`auditResult`属性值,并尝试将其解析为Map类型。如果解析失败,则记录错误日志。
然后,根据解析后的`auditResultMap`进行条件判断:
- 如果`auditResultMap`不为空,并且其中的`AUDIT_RESULT`属性值等于`SPLIT_PASS`,则将该元素的`docFileId`添加到`otherPassDocFileIdList`列表中。
- 如果`auditResultMap`不为空,并且其中的`AUDIT_RESULT`属性值等于`NOT_THIS_FILE`,则将该元素添加到`finalNoPassAiStdAuditResultList`列表中,并将其`docFileId`添加到`notThisFileSet`集合中。
- 如果`auditResultMap`为空,或者其中的`AUDIT_RESULT`属性值不等于`PASS`,则将该元素添加到`finalNoPassAiStdAuditResultList`列表中,并将其`docFileId`添加到`finalNoPassAiStdAuditResultSet`集合中。
这段代码的作用是根据审核结果对文档数据进行分类处理,将通过审核的文档文件ID添加到`otherPassDocFileIdList`列表中,将未通过审核的文档文件ID添加到`notThisFileSet`和`finalNoPassAiStdAuditResultSet`集合中,并将未通过审核的结果添加到`finalNoPassAiStdAuditResultList`列表中。最终,通过条件判断来确定是否存在未通过审核的结果。
阅读全文