rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx
@@ -210,6 +210,16 @@ <PrintButton /> </WrapperField> setColumns([...arr, ...fields, opt]); //filters添加过滤字段 data.map(el => { var i =0; filters.map((item) =>{ if(item.key === el.fields){ i = 1; } }) i===0 && filters.push(<TextInput key={el.fields} source={el.fields} label={el.fieldsAlise} />) }) } else { notify(msg); } rsf-server/src/main/java/com/vincent/rsf/server/common/domain/BaseParam.java
@@ -1,10 +1,16 @@ package com.vincent.rsf.server.common.domain; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.common.utils.Utils; import com.vincent.rsf.framework.common.SpringUtils; import com.vincent.rsf.server.system.entity.Fields; import com.vincent.rsf.server.system.service.FieldsService; import lombok.Data; import java.io.Serializable; import java.util.HashMap; import java.util.List; import java.util.Map; /** @@ -36,6 +42,9 @@ @TableField(exist = false) private Map<String, Object> map; @TableField(exist = false) private Map<String, Object> fields = new HashMap<>(); public void syncMap(Map<String, Object> map) { if (null == map) { @@ -69,6 +78,20 @@ this.setCondition(String.valueOf(map.get("condition"))); map.remove("condition"); } FieldsService fieldsService = SpringUtils.getBean(FieldsService.class); List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getFlagEnable, 1).eq(Fields::getStatus, 1)); if (!fields.isEmpty()) { for (Fields fields1 : fields) { if (null !=map.get(fields1.getFields())){ this.fields.put(fields1.getFields(), map.get(fields1.getFields())); map.entrySet().removeIf(next -> next.getKey().equals(fields1.getFields()) ); } } } this.setMap(map); } rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java
@@ -7,6 +7,7 @@ import com.vincent.rsf.common.utils.Utils; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.DateUtils; import lombok.Getter; import java.lang.reflect.Field; import java.lang.reflect.Modifier; @@ -21,6 +22,7 @@ private static final long serialVersionUID = 1L; public static final String ORDER_DESC_VALUE = "desc"; @Getter private final U where; /** rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java
@@ -1,8 +1,14 @@ package com.vincent.rsf.server.common.utils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.SpringUtils; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.system.entity.Fields; import com.vincent.rsf.server.system.entity.FieldsItem; import com.vincent.rsf.server.system.service.FieldsItemService; @@ -174,4 +180,30 @@ saveFields(params, params.get("index").toString()); } } } public static <T> QueryWrapper<T> setFieldsFilters(QueryWrapper<T> queryWrapper, PageParam<T, BaseParam> pageParam, Class<T> entityClass) { // 动态获取表名 TableInfo tableInfo = TableInfoHelper.getTableInfo(entityClass); String tableName = tableInfo.getTableName(); FieldsService fieldsService = SpringUtils.getBean(FieldsService.class); Map<String, Object> map = pageParam.getWhere().getFields(); for (String key : map.keySet()) { Object val = map.get(key); Fields fields = fieldsService.getOne(new LambdaQueryWrapper<Fields>().eq(Fields::getFields, key)); if (!Cools.isEmpty(fields)) { String applySql = String.format( "EXISTS (SELECT 1 FROM sys_fields_item fie " + "WHERE %s.fields_index IS NOT NULL " + "AND fie.uuid = %s.fields_index " + "AND fie.fields_id = '%s' " + "AND fie.value = '%s')", tableName, tableName, fields.getId(), val ); queryWrapper.apply(applySql); } } return queryWrapper; } } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
@@ -119,6 +119,7 @@ } } } FieldsUtils.setFieldsFilters(queryWrapper,pageParam,Matnr.class); /**拼接扩展字段*/ PageParam<Matnr, BaseParam> page = this.page(pageParam, queryWrapper); List<Matnr> records = page.getRecords();