From 72ca54b5a36818de16acf81c9c395e9f35a39a67 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 11 六月 2025 09:53:27 +0800
Subject: [PATCH] 下发执行页,添加默认请求方法
---
rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java | 157 ++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 139 insertions(+), 18 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 d71068e..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,21 @@
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;
import java.util.*;
@@ -24,7 +33,7 @@
* @author Ryan
* @description 閫氳繃瀛楁鍞竴鏍囪瘑鑾峰彇鍔ㄦ�佸瓧娈靛璞ey-value
* @param
- * @return
+ * @return 鎵╁睍瀛楁瀵硅薄
* @time 2025/3/12 12:50
*/
public static Map<String, String> getFields(String uuid) {
@@ -50,7 +59,43 @@
return fieldsMap;
}
-
+
+ /**
+ * @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) {
+ FieldsService fieldsService = SpringUtils.getBean(FieldsService.class);
+ List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>()
+ .eq(Fields::getStatus, 1)
+ .eq(Fields::getFlagEnable, 1));
+ FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (Map<String, Object> param : params) {
+ result.add(param);
+ if (Objects.isNull(param.get("fieldsIndex"))) {
+ continue;
+ }
+ List<FieldsItem> itemList = fieldsItemService
+ .list(new LambdaQueryWrapper<FieldsItem>()
+ .eq(FieldsItem::getUuid, param.get("fieldsIndex")));
+ if (itemList.isEmpty()) {
+ continue;
+ }
+ fields.forEach(fds -> {
+ for (FieldsItem fieldsItem : itemList) {
+ if (!Objects.isNull(fieldsItem.getFieldsId()) && fieldsItem.getFieldsId().equals(fds.getId())) {
+ param.put(fds.getFields(), fieldsItem.getValue());
+ }
+ }
+ });
+ }
+ return result;
+ }
+
/**
* @param template
* @return
@@ -58,25 +103,31 @@
* @description 鍔ㄦ�佸瓧娈祐alue淇濆瓨
* @time 2025/3/18 15:00
*/
- public static void saveFields(Map<String, String> template, String uuid) {
+ @Transactional(rollbackFor = Exception.class)
+ public static boolean saveFields(Map<String, ?> template, String uuid) throws Exception{
List<Fields> fields = getFieldsSta();
FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class);
- if (fields.isEmpty()) {
- throw new CoolException("鎵╁睍瀛楁涓嶅瓨鍦紒锛�");
- }
List<FieldsItem> fieldsItems = new ArrayList<>();
- fields.forEach(fields1 -> {
- if (!Objects.isNull(template.get(fields1.getFields()))) {
- FieldsItem item = new FieldsItem();
- item.setFieldsId(fields1.getId())
- .setUuid(uuid)
- .setValue(template.get(fields1.getFields()));
- fieldsItems.add(item);
+ if (!fields.isEmpty()) {
+ for (Fields obj : fields) {
+ if (!Objects.isNull(template.get(obj.getFields())) && StringUtils.isNotBlank(template.get(obj.getFields()).toString())) {
+ FieldsItem item = new FieldsItem();
+ item.setUuid(uuid)
+ .setValue(template.get(obj.getFields()).toString())
+ .setMatnrId(!Objects.isNull(template.get("matnrId")) ? Long.parseLong(template.get("matnrId").toString()) : null)
+ .setFieldsId(obj.getId());
+ fieldsItems.add(item);
+ }
}
- });
- if (!fieldsItemService.saveBatch(fieldsItems)) {
- throw new CoolException("鍔ㄦ�佸瓧娈靛�间繚瀛樺け璐ワ紒锛�");
- }
+ if (fieldsItems.isEmpty()) {
+ return false;
+ }
+ if (!fieldsItemService.saveBatch(fieldsItems)) {
+ throw new CoolException("鎵╁睍瀛楁淇濆瓨澶辫触锛侊紒");
+ }
+ return true;
+ }
+ return false;
}
/**
@@ -87,4 +138,74 @@
FieldsService fieldsService = SpringUtils.getBean(FieldsService.class);
return fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getStatus, 1).eq(Fields::getFlagEnable, 1));
}
-}
+
+ /**
+ * @author Ryan
+ * @description 鍔ㄦ�佸瓧娈典慨鏀�
+ * @param
+ * @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();
+ 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(!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