From f8c64c4e54cec545eb613d8450932096f15937ef Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 26 三月 2025 09:20:35 +0800
Subject: [PATCH] #修改 物料新增动态字段不能保存问题修复

---
 rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java              |    4 ++--
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java |   16 +++++++++++++---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java    |    2 +-
 3 files changed, 16 insertions(+), 6 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 0f7f8ae..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
@@ -80,7 +80,7 @@
      * @description 鍔ㄦ�佸瓧娈祐alue淇濆瓨
      * @time 2025/3/18 15:00
      */
-    public static void saveFields(Map<String, ?> template, String uuid) {
+    public static void saveFields(Map<String, ?> template, String uuid) throws Exception{
         List<Fields> fields = getFieldsSta();
         FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class);
         if (fields.isEmpty()) {
@@ -110,7 +110,7 @@
         return fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getStatus, 1).eq(Fields::getFlagEnable, 1));
     }
 
-    public static void updateFieldsValue(Map<String, Object> params) {
+    public static void updateFieldsValue(Map<String, Object> params) throws Exception{
         List<Fields> fields = getFieldsSta();
         if (fields.isEmpty()) { return; }
         Object fieldsIndex = params.get("fieldsIndex");
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java
index 234ca81..19837d8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java
@@ -85,7 +85,7 @@
     @OperationLog("Update 鐗╂枡淇℃伅琛�")
     @PostMapping("/matnr/update")
     @Transactional(rollbackFor = Exception.class)
-    public R update(@RequestBody Map<String, Object> params) {
+    public R update(@RequestBody Map<String, Object> params) throws Exception {
         Matnr matnr = JSONObject.parseObject(JSONObject.toJSONString(params), Matnr.class);
         if (Objects.isNull(matnr.getCode())) {
             throw new CoolException("缂栫爜涓嶈兘涓虹┖锛侊紒");
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
index f8d44ba..373d76a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
@@ -87,7 +87,11 @@
                 String uuid = CommonUtil.randomUUID16();
                 matnr.setFieldsIndex(uuid);
                 //淇濆瓨鐗╂枡鎵╁睍灞炴�у��
-                FieldsUtils.saveFields(template, uuid);
+                try {
+                    FieldsUtils.saveFields(template, uuid);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
             }
             matnrs.add(matnr);
         });
@@ -212,8 +216,14 @@
          */
         String uuid16 = CommonUtil.randomUUID16();
         if (!FieldsUtils.getFieldsSta().isEmpty()) {
-            FieldsUtils.saveFields(matnr, uuid16);
-            matnr1.setFieldsIndex(uuid16);
+            Map<String, ?> extendFields = (Map<String, ?>) matnr.get("extendFields");
+            try {
+                FieldsUtils.saveFields(extendFields, uuid16);
+                matnr1.setFieldsIndex(uuid16);
+            } catch (Exception ex) {
+                log.error(ex.toString());
+                throw new CoolException("鍔ㄦ�佸瓧娈典繚瀛樺け璐�");
+            }
         }
         if (!this.saveOrUpdate(matnr1)) {
             return R.error("Save Fail");

--
Gitblit v1.9.1