|
@@ -1485,6 +1485,7 @@ public class InformationWriteQueryController extends BladeController {
|
|
|
|
|
|
//获取实体表对应字段
|
|
|
List<QueryProcessDataVO> nodeTabCols = informationQueryService.getNodeChildTabColsAllByTabName(tableName);
|
|
|
+
|
|
|
//转化为map
|
|
|
Map<String, String> nodeTabColsMap = nodeTabCols.stream().collect(Collectors.toMap(QueryProcessDataVO::getQueryType, QueryProcessDataVO::getAncestors, (key1, key2) -> key2));
|
|
|
|
|
@@ -1499,8 +1500,9 @@ public class InformationWriteQueryController extends BladeController {
|
|
|
String keys = StringUtils.join(filteredList, ",");
|
|
|
|
|
|
/*重置*/
|
|
|
- Map<String, String> eMap = reviseValue(nodeOld, null, ekvMap);
|
|
|
- //构造入参
|
|
|
+ //Map<String, String> eMap = reviseValue(nodeOld, null, ekvMap);
|
|
|
+
|
|
|
+ //构造入参(获取列名、列值)
|
|
|
String dataSql = "SELECT " + keys + " FROM " + tableName + " WHERE p_key_id= " + nodeOld.getPKeyId() + " LIMIT 1;";
|
|
|
List<LinkedHashMap<String, Object>> resultList = jdbcTemplate.query(dataSql, new RowMapper<LinkedHashMap<String, Object>>() {
|
|
|
@Override
|
|
@@ -1511,51 +1513,61 @@ public class InformationWriteQueryController extends BladeController {
|
|
|
for (int i = 1; i <= columnCount; i++) {
|
|
|
String columnName = metaData.getColumnName(i);
|
|
|
Object columnValue = rs.getObject(i);
|
|
|
- resultMap.put(columnName, columnValue);
|
|
|
+ //判断列值不为null或者不为空串
|
|
|
+ if (columnValue != null && !columnValue.toString().isEmpty()) {
|
|
|
+ resultMap.put(columnName, columnValue);
|
|
|
+ }
|
|
|
}
|
|
|
return resultMap;
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
StringBuilder newString = new StringBuilder();
|
|
|
+ List<String> keySet = new LinkedList<>();
|
|
|
if (!resultList.isEmpty()) {
|
|
|
LinkedHashMap<String, Object> resultMap = resultList.get(0);
|
|
|
for (Map.Entry<String, Object> entry : resultMap.entrySet()) {
|
|
|
- Object value = reviseValue(eMap, entry.getKey(), entry.getValue());
|
|
|
+ keySet.add(entry.getKey());
|
|
|
+ /*Object value = reviseValue(eMap, entry.getKey(), entry.getValue());*/
|
|
|
+ Object value = entry.getValue();
|
|
|
if (value != null) {
|
|
|
if (value.toString().contains("\n")) {
|
|
|
//如果值中包含换行符,则将换行符替换
|
|
|
value = value.toString().replace("\n", "\\n");
|
|
|
}
|
|
|
newString.append("'").append(value).append("',");
|
|
|
- } else {
|
|
|
- newString.append("null,");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (newString.length() <= 0) {
|
|
|
- //如果没值,那么根据keys构造keys数位的null值字符串
|
|
|
- int size = filteredList.size();
|
|
|
- for (int i = 0; i < size; i++) {
|
|
|
- newString.append("null,");
|
|
|
+ if (newString.length() > 0) {
|
|
|
+ //首位添加逗号分隔符
|
|
|
+ newString.insert(0, ',');
|
|
|
+ //移除最后逗号分隔符
|
|
|
+ if (newString.charAt(newString.length() - 1) == ',') {
|
|
|
+ newString.deleteCharAt(newString.length() - 1);
|
|
|
}
|
|
|
}
|
|
|
- //去除末尾的逗号
|
|
|
- newString.deleteCharAt(newString.length() - 1);
|
|
|
- //首位拼接逗号
|
|
|
- newString.insert(0, ",");
|
|
|
+
|
|
|
+ //所有有值的key
|
|
|
+ String keysHaveValue = StringUtils.join(keySet, ",");
|
|
|
+ if (keysHaveValue.length() > 0) {
|
|
|
+ //首位添加逗号分隔符
|
|
|
+ keysHaveValue = "," + keysHaveValue;
|
|
|
+ }
|
|
|
|
|
|
//delete SQL (先删除旧数据,再新增)
|
|
|
String delSql = "DELETE FROM " + tableName + " WHERE p_key_id = " + newData.getPKeyId() + " ; ";
|
|
|
|
|
|
//insert into SQL
|
|
|
copySql.append(delSql).append("INSERT INTO ").append(tableName)
|
|
|
- .append(" (id,p_key_id,group_id,")
|
|
|
- .append(keys)
|
|
|
+ .append(" (id,p_key_id,group_id")
|
|
|
+ .append(keysHaveValue)
|
|
|
.append(") VALUES (")
|
|
|
.append(SnowFlakeUtil.getId()).append(",")
|
|
|
.append(newData.getPKeyId()).append(",null")
|
|
|
- .append(newString).append(") ; ");
|
|
|
+ .append(newString)
|
|
|
+ .append(");");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1792,7 +1804,7 @@ public class InformationWriteQueryController extends BladeController {
|
|
|
addNames.setLength(addNames.length() - 1);
|
|
|
addNames.append("}");
|
|
|
needCopyNodeRoot.setNodeName(addNames.toString());
|
|
|
- //return R.success("操作成功");
|
|
|
+
|
|
|
return this.saveOrCopyNodeTree2(addNodeList, null, 32, needCopyNodeRoot);
|
|
|
} else {
|
|
|
throw new ServiceException("没有找到需要复制的节点信息,请联系管理员");
|