From cbfbbc6ab15b0eac96b47e7a6214bc436e58dce2 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 21 五月 2025 20:35:01 +0800 Subject: [PATCH] no message --- rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java | 40 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 37 insertions(+), 3 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java index 6469f3d..c65ac30 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java @@ -1,12 +1,19 @@ 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; import com.vincent.rsf.server.system.service.FieldsService; +import lombok.Synchronized; import org.apache.commons.lang3.StringUtils; import org.springframework.transaction.annotation.Transactional; @@ -107,7 +114,7 @@ FieldsItem item = new FieldsItem(); item.setUuid(uuid) .setValue(template.get(obj.getFields()).toString()) - .setMatnrId(Long.parseLong(template.get("matnrId").toString())) + .setMatnrId(!Objects.isNull(template.get("matnrId")) ? Long.parseLong(template.get("matnrId").toString()) : null) .setFieldsId(obj.getId()); fieldsItems.add(item); } @@ -139,6 +146,7 @@ * @return * @time 2025/4/7 15:28 */ + @Synchronized @Transactional(rollbackFor = Exception.class) public static void updateFieldsValue(Map<String, Object> params) throws Exception { List<Fields> fields = getFieldsSta(); @@ -157,7 +165,7 @@ FieldsItem item = new FieldsItem(); item.setUuid(index) .setFieldsId(field.getId()) - .setMatnrId(Long.parseLong(params.get("matnrId").toString())) + .setMatnrId(!Objects.isNull(params.get("matnrId")) ? Long.parseLong(params.get("matnrId").toString()) : null) .setValue(params.get(field.getFields()).toString()); if (!fieldsItemService.save(item)) { throw new CoolException("鎵╁睍瀛楁淇敼澶辫触锛侊紒"); @@ -174,4 +182,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; + } +} \ No newline at end of file -- Gitblit v1.9.1