Merge pull request #10884 from ulleo/dev
fix(X-Pack): 修复【数据填报】我的填报-已提交编辑数据会显示全部数据的问题
This commit is contained in:
commit
3a943ffb97
@ -109,7 +109,16 @@ public class MysqlExtDDLProvider extends DefaultExtDDLProvider {
|
|||||||
StringBuilder builder = new StringBuilder("WHERE 1 = 1 ");
|
StringBuilder builder = new StringBuilder("WHERE 1 = 1 ");
|
||||||
for (TableField searchField : searchFields) {
|
for (TableField searchField : searchFields) {
|
||||||
//目前只考虑等于
|
//目前只考虑等于
|
||||||
builder.append("AND $Column_Field$ = ? ".replace("$Column_Field$", searchField.getFieldName()));
|
if (searchField.getInCount() > 1) {
|
||||||
|
List<String> pList = new ArrayList<>();
|
||||||
|
for (int i = 0; i < searchField.getInCount(); i++) {
|
||||||
|
pList.add("?");
|
||||||
|
}
|
||||||
|
String str = "AND $Column_Field$ IN (" + String.join(", ", pList) + ")";
|
||||||
|
builder.append(str.replace("$Column_Field$", searchField.getFieldName()));
|
||||||
|
} else {
|
||||||
|
builder.append("AND $Column_Field$ = ? ".replace("$Column_Field$", searchField.getFieldName()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -227,16 +227,29 @@ public class DataFillDataService {
|
|||||||
String whereSql = "";
|
String whereSql = "";
|
||||||
if (StringUtils.isNotBlank(searchRequest.getPrimaryKeyValue())) {
|
if (StringUtils.isNotBlank(searchRequest.getPrimaryKeyValue())) {
|
||||||
whereSql = extDDLProvider.whereSql(dataFillForm.getTableName(), List.of(pk));
|
whereSql = extDDLProvider.whereSql(dataFillForm.getTableName(), List.of(pk));
|
||||||
}
|
|
||||||
|
|
||||||
String countSql = extDDLProvider.countSql(dataFillForm.getTableName(), searchFields, whereSql);
|
|
||||||
if (StringUtils.isNotBlank(searchRequest.getPrimaryKeyValue())) {
|
|
||||||
datasourceRequest.setTableFieldWithValues(List.of(new DatasourceRequest.TableFieldWithValue()
|
datasourceRequest.setTableFieldWithValues(List.of(new DatasourceRequest.TableFieldWithValue()
|
||||||
.setValue(searchRequest.getPrimaryKeyValue())
|
.setValue(searchRequest.getPrimaryKeyValue())
|
||||||
.setFiledName(pk.getFieldName())
|
.setFiledName(pk.getFieldName())
|
||||||
.setTypeName(pk.getFieldType())
|
.setTypeName(pk.getFieldType())
|
||||||
.setType(pk.getType())));
|
.setType(pk.getType())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CollectionUtils.isNotEmpty(searchRequest.getPrimaryKeyValueList())) {
|
||||||
|
pk.setInCount(searchRequest.getPrimaryKeyValueList().size());
|
||||||
|
whereSql = extDDLProvider.whereSql(dataFillForm.getTableName(), List.of(pk));
|
||||||
|
List<DatasourceRequest.TableFieldWithValue> ids = new ArrayList<>();
|
||||||
|
for (String s : searchRequest.getPrimaryKeyValueList()) {
|
||||||
|
ids.add(new DatasourceRequest.TableFieldWithValue()
|
||||||
|
.setValue(s)
|
||||||
|
.setFiledName(pk.getFieldName())
|
||||||
|
.setTypeName(pk.getFieldType())
|
||||||
|
.setType(pk.getType()));
|
||||||
|
}
|
||||||
|
datasourceRequest.setTableFieldWithValues(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
String countSql = extDDLProvider.countSql(dataFillForm.getTableName(), searchFields, whereSql);
|
||||||
|
|
||||||
datasourceRequest.setQuery(countSql);
|
datasourceRequest.setQuery(countSql);
|
||||||
List<String[]> countData = datasourceProvider.getData(datasourceRequest);
|
List<String[]> countData = datasourceProvider.getData(datasourceRequest);
|
||||||
long count = NumberUtils.toLong(countData.get(0)[0]);
|
long count = NumberUtils.toLong(countData.get(0)[0]);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user