From 3eb6ea1ce6f381cb9545bb4906863f74236152a3 Mon Sep 17 00:00:00 2001
From: zc <zyzc>
Date: 星期一, 20 十月 2025 17:10:33 +0800
Subject: [PATCH] Default Changelist
---
rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java | 104 ++++++++++++++++++++++++++++++++++++----------------
1 files changed, 72 insertions(+), 32 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..33c3f2a 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,20 @@
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.manager.enums.CommonStatus;
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;
@@ -23,10 +31,10 @@
public class FieldsUtils {
/**
- * @author Ryan
- * @description 閫氳繃瀛楁鍞竴鏍囪瘑鑾峰彇鍔ㄦ�佸瓧娈靛璞ey-value
* @param
* @return 鎵╁睍瀛楁瀵硅薄
+ * @author Ryan
+ * @description 閫氳繃瀛楁鍞竴鏍囪瘑鑾峰彇鍔ㄦ�佸瓧娈靛璞ey-value
* @time 2025/3/12 12:50
*/
public static Map<String, String> getFields(String uuid) {
@@ -38,7 +46,7 @@
}
FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class);
List<FieldsItem> fieldsItems = fieldsItemService.list(new LambdaQueryWrapper<FieldsItem>().eq(FieldsItem::getUuid, uuid));
- for (Fields field : fields ) {
+ for (Fields field : fields) {
if (fieldsItems.isEmpty()) {
fieldsMap.put(field.getFields(), null);
continue;
@@ -50,14 +58,14 @@
});
}
- return fieldsMap;
+ return fieldsMap;
}
/**
+ * @param
+ * @return 鍖呭惈鎵╁睍瀛楁鐨勯泦鍚堝璞�
* @author Ryan
* @description 鑾峰彇闆嗗悎鎵╁睍瀛楁key-value鍊�
- * @param
- * @return 鍖呭惈鎵╁睍瀛楁鐨勯泦鍚堝璞�
* @time 2025/3/15 15:05
*/
public static List<Map<String, Object>> getExtendFields(List<Map<String, Object>> params) {
@@ -97,7 +105,7 @@
* @time 2025/3/18 15:00
*/
@Transactional(rollbackFor = Exception.class)
- public static boolean saveFields(Map<String, ?> template, String uuid) throws Exception{
+ public static boolean saveFields(Map<String, ?> template, String uuid) {
List<Fields> fields = getFieldsSta();
FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class);
List<FieldsItem> fieldsItems = new ArrayList<>();
@@ -107,7 +115,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);
}
@@ -125,53 +133,85 @@
/**
* 鑾峰彇鎵�鏈夊紑鍚姩鎬佹墿灞曞瓧娈�
+ *
* @return
*/
public static List<Fields> getFieldsSta() {
FieldsService fieldsService = SpringUtils.getBean(FieldsService.class);
- return fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getStatus, 1).eq(Fields::getFlagEnable, 1));
+ return fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getStatus, CommonStatus.COMMONSTATUS_YES.val)
+ .eq(Fields::getUnique, CommonStatus.COMMONSTATUS_YES.val)
+ .eq(Fields::getFlagEnable, CommonStatus.COMMONSTATUS_YES.val).orderByAsc(Fields::getId));
}
/**
- * @author Ryan
- * @description 鍔ㄦ�佸瓧娈典慨鏀�
* @param
* @return
+ * @author Ryan
+ * @description 鍔ㄦ�佸瓧娈典慨鏀�
* @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();
- if (fields.isEmpty()) { return; }
+ if (fields.isEmpty()) {
+ return;
+ }
Object fieldsIndex = params.get("fieldsIndex");
if (!Objects.isNull(fieldsIndex) && StringUtils.isNotBlank(fieldsIndex.toString())) {
String index = fieldsIndex.toString();
FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class);
for (Fields field : fields) {
- if (!Objects.isNull(params.get(field.getFields()))) {
- FieldsItem indexItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>()
- .eq(FieldsItem::getUuid, index)
- .eq(FieldsItem::getFieldsId, field.getId()));
- //濡傛灉瀛愯〃涓虹┖锛屾墽琛屾彃鍏ユ搷浣滐紝鍚﹀垯灏辨墽琛屼慨鏀规搷浣�
- if (Objects.isNull(indexItem)) {
- FieldsItem item = new FieldsItem();
- item.setUuid(index)
- .setFieldsId(field.getId())
- .setMatnrId(Long.parseLong(params.get("matnrId").toString()))
- .setValue(params.get(field.getFields()).toString());
- if (!fieldsItemService.save(item)) {
- throw new CoolException("鎵╁睍瀛楁淇敼澶辫触锛侊紒");
- }
- } else {
- indexItem.setValue(params.get(field.getFields()).toString());
- if (!fieldsItemService.updateById(indexItem)) {
- throw new CoolException("鎵╁睍瀛楁淇敼澶辫触锛侊紒");
- }
+ if (!Objects.isNull(params.get(field.getFields()))) {
+ FieldsItem indexItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>()
+ .eq(FieldsItem::getUuid, index)
+ .eq(FieldsItem::getFieldsId, field.getId()));
+ //濡傛灉瀛愯〃涓虹┖锛屾墽琛屾彃鍏ユ搷浣滐紝鍚﹀垯灏辨墽琛屼慨鏀规搷浣�
+ if (Objects.isNull(indexItem)) {
+ FieldsItem item = new FieldsItem();
+ item.setUuid(index)
+ .setFieldsId(field.getId())
+ .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("鎵╁睍瀛楁淇敼澶辫触锛侊紒");
+ }
+ } else {
+ indexItem.setValue(params.get(field.getFields()).toString());
+ if (!fieldsItemService.updateById(indexItem)) {
+ throw new CoolException("鎵╁睍瀛楁淇敼澶辫触锛侊紒");
}
}
+ }
}
} else {
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