formMap.get(fieldId).setFieldName(labelCountMap.keySet()); formMap.get(fieldId).setData(labelCountMap.values()); formMap.get(fieldId).setMap(labelCountMap); } } List<FormReportVO.Analysis> result = new ArrayList(formMap.values()); return result; } }
时间: 2024-04-06 17:30:46 浏览: 75
这段代码是将处理后的表单字段数据封装成表单分析报告的逻辑。对于每个表单字段,通过 `formMap.get(fieldId)` 获取其对应的 `FormReportVO.Analysis` 对象,然后将该对象的字段名称、数据和 Map 分别设置为处理后的数据。最后,将所有的 `FormReportVO.Analysis` 对象放入一个名为 result 的 List 中,并返回该 List。
相关问题
if (originalData.containsKey(fieldId)) { // 结果中字段值 处理多选 if (originalData.get(fieldId) instanceof Collection) { List<Object> fieldValues = MapUtil.get(originalData, fieldId, List.class); List<String> fieldLabelValues = MapUtil.get(originalData, fieldId + "label", List.class); for (int i = 0; i < fieldValues.size(); i++) { // 是否是其他输入 Object value = fieldValues.get(i); String label = value.equals(0) ? "其他" : fieldLabelValues.get(i); Integer count = labelCountMap.get(label); labelCountMap.put(label.trim(), ObjectUtil.isNotNull(count) ? count + 1 : 1); } } else { String label = MapUtil.getStr(originalData, fieldId + "label"); Integer count = labelCountMap.get(label); labelCountMap.put(label, ObjectUtil.isNotNull(count) ? count + 1 : 1); } } formMap.get(fieldId).setFieldName(labelCountMap.keySet()); formMap.get(fieldId).setData(labelCountMap.values()); formMap.get(fieldId).setMap(labelCountMap); }
这是一段 Java 代码,其中包含了对多选题结果进行处理的逻辑。如果原始数据中包含了指定的字段(fieldId),就会根据数据类型进行不同的处理。如果是一个集合类型,则遍历集合中的每个元素,将其对应的标签(label)以及出现次数记录在一个 Map 中;否则,直接将标签和出现次数记录在 Map 中。最后,将 Map 中的键值对分别设置为表单字段的名称和数据,同时将整个 Map 也设置为表单字段的数据。
for (FormData userFormResultEntity : formResultList) { Map<String, Object> originalData = userFormResultEntity.getOriginalData(); for (String fieldId : idList) { Map<String, Integer> labelCountMap = formMap.get(fieldId).getMap(); if (ObjectUtil.isNull(labelCountMap)) { labelCountMap = Maps.newHashMap(); }
这段代码主要是对表单数据列表 `formResultList` 进行遍历,并从中提取出表单项的原始数据 `originalData`。然后,对于每一个需要分析的表单项 id(存储在 `idList` 中),检查该表单项的分析结果对象中是否已经包含了该表单项的标题(label)以及各个可选项的统计数量。
具体来说,外层 `for` 循环遍历 `formResultList` 中的每一个表单数据实体对象 `userFormResultEntity`,并将其原始数据 `originalData` 提取出来。
内层 `for` 循环遍历 `idList` 中的每一个表单项 id(即需要进行分析的表单项),从 `formMap` 中获取该表单项的分析结果对象 `analysis`,并从该对象中获取统计数量的映射 `labelCountMap`。由于每个表单项的分析结果对象 `analysis` 中都会包含一个 `Map` 类型的 `labelCountMap`,用于存储该表单项的各个可选项的统计数量,因此需要先从 `formMap` 中获取该表单项的分析结果对象 `analysis`,再从该对象中获取 `labelCountMap`。
如果 `labelCountMap` 为空(即该表单项的分析结果对象中还没有任何统计数据),则新建一个空的 `labelCountMap` 对象。
最终,可以得到一个 `labelCountMap` 对象,用于存储该表单项的各个可选项的统计数量。
阅读全文
相关推荐
















