MetaFieldValueDic fieldValueDic = new MetaFieldValueDic(); fieldValueDic.setTableId(tableId); fieldValueDic.setFieldId(fieldId); fieldValueDic.setFieldName(fieldName); fieldValueDic.setFieldValue(res.getString(1)); fieldValueDic.setDic(res.getString(2)); fieldValueDic.setDicSql(st); fieldValueDic.setIsDisplay(0); fieldValueDic.setFactoryId(factoryId); fieldValueDic.setTenantId(factoryId); metaFieldValueDicRepository.save(fieldValueDic); } metaFieldInfoRepository.update(true, fieldId); JSONObject jsonObject = new JSONObject(true); jsonObject.put("sql", sql); return jsonObject;
时间: 2024-03-29 21:40:20 浏览: 70
在遍历结果集后,会将结果集中的每条记录封装成一个MetaFieldValueDic对象,并设置对应的属性值。然后将该对象保存到数据库中,这样就完成了插入字典值的操作。接着会更新MetaFieldInfo表中该字段的信息,并将插入的SQL语句返回给调用者。最终返回的是一个JSONObject对象,其中包含了插入字典值使用的SQL语句。这样,调用者就可以根据需要进行后续的操作了。
相关问题
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; } }
这段代码是将处理后的表单字段数据封装成表单分析报告的逻辑。对于每个表单字段,通过 `formMap.get(fieldId)` 获取其对应的 `FormReportVO.Analysis` 对象,然后将该对象的字段名称、数据和 Map 分别设置为处理后的数据。最后,将所有的 `FormReportVO.Analysis` 对象放入一个名为 result 的 List 中,并返回该 List。
//判断字段是否存在 MetaFieldInfo metaFieldInfo = metaFieldInfoRepository.findByFieldId(fieldId); if (metaFieldInfo == null) { LOG.error("通过SQL插入字典值错误:该字段不存在"); return null; } //如果有则视为更新,先删除再插入 List<MetaFieldValueDic> metaFieldValueDics = metaFieldValueDicRepository.findAllByFieldId(fieldId); if (metaFieldValueDics.size() > 0) { metaFieldValueDicRepository.deleteAllByFieldId(fieldId); } //插入字典 String st = sql.replaceAll("'", "''"); SqlRowSet res = greenplumJdbcTemplate.queryForRowSet(sql); System.out.println(res); int columnCount = res.getMetaData().getColumnCount(); if (columnCount != 2) { LOG.error("通过SQL插入字典值错误:SQL查询结果列数不为2"); return null; } while (res.next()) { //判断是否已存在该key值 MetaFieldValueDic fieldValueDicOld = metaFieldValueDicRepository.findMetaFieldValueDicByFieldIdAndFieldValue(fieldId, res.getString(1)); if (fieldValueDicOld != null) { throw new Exception("新增字典异常:字典值已存在"); }
这段代码继续对参数进行判断,判断字段是否存在,如果不存在则会抛出异常并返回null。如果字段存在,则会将该字段下的所有字典值全部删除。然后执行SQL插入字典值操作,并对SQL查询结果的列数进行判断,如果不为2则会抛出异常并返回null。接着遍历结果集,判断是否已存在该key值,如果已存在则会抛出异常并返回null。这些操作都是为了保证插入的字典值合法、唯一性,以保证系统正常运行。您还有其他问题吗?
阅读全文