From a935fc71d8e52f2ba10e42cfdb9e75ef9cb32bd7 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 26 三月 2025 09:52:15 +0800 Subject: [PATCH] #修复 初始化时库区关系未绑定 --- rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java | 103 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 99 insertions(+), 4 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 2496618..6182be3 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 @@ -2,14 +2,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.framework.common.SpringUtils; +import com.vincent.rsf.framework.exception.CoolException; 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 java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author Ryan @@ -23,7 +22,7 @@ /** * @author Ryan - * @description 閫氳繃瀛楁鍞竴鏍囪瘑鑾峰彇鍔ㄦ�佸瓧娈礛ap + * @description 閫氳繃瀛楁鍞竴鏍囪瘑鑾峰彇鍔ㄦ�佸瓧娈靛璞ey-value * @param * @return * @time 2025/3/12 12:50 @@ -52,4 +51,100 @@ return fieldsMap; } + public static void mergeFields(Map<String, Object> fileds ,String uuid) { + 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()) { + return; + } + FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class); + List<FieldsItem> fieldsItems = fieldsItemService.list(new LambdaQueryWrapper<FieldsItem>().eq(FieldsItem::getUuid, uuid)); + for (Fields field : fields ) { + if (fieldsItems.isEmpty()) { + fileds.put(field.getFields(), null); + continue; + } + fieldsItems.forEach(fieldsItem -> { + if (fieldsItem.getFieldsId().equals(field.getId())) { + fileds.put(field.getFields(), fieldsItem.getValue()); + } + }); + } + + } + + /** + * @param template + * @return + * @author Ryan + * @description 鍔ㄦ�佸瓧娈祐alue淇濆瓨 + * @time 2025/3/18 15:00 + */ + public static void 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<>(); + for (Fields field : fields) { + if (!Objects.isNull(template.get(field.getFields()))) { + FieldsItem item = new FieldsItem(); + item.setFieldsId(field.getId()) + .setUuid(uuid) + .setValue(template.get(field.getFields()).toString()); + fieldsItems.add(item); + } + } + if (!fieldsItemService.saveBatch(fieldsItems)) { + throw new CoolException("鍔ㄦ�佸瓧娈靛�间繚瀛樺け璐ワ紒锛�"); + } + } + + /** + * 鑾峰彇鎵�鏈夊紑鍚姩鎬佹墿灞曞瓧娈� + * @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)); + } + + 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)) { + String index = fieldsIndex.toString(); + FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class); + for (Fields field : fields) { + Map<String, String> extendFields = (Map<String, String>) params.get("extendFields"); + if (!Objects.isNull(extendFields)) { + if (!Objects.isNull(extendFields.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()) + .setValue(extendFields.get(field.getFields()).toString()); + if (!fieldsItemService.save(item)) { + throw new CoolException("鎵╁睍瀛楁淇敼澶辫触锛侊紒"); + } + } else { + indexItem.setValue(extendFields.get(field.getFields()).toString()); + if (!fieldsItemService.updateById(indexItem)) { + throw new CoolException("鎵╁睍瀛楁淇敼澶辫触锛侊紒"); + } + } + } + } + } + } else { + String uuid16 = CommonUtil.randomUUID16(); + saveFields(params, uuid16); + } + } } -- Gitblit v1.9.1