From bcd9cb83cbbb36217cb99ced7bf1fa3cb26bd53c Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 28 四月 2025 16:59:51 +0800
Subject: [PATCH] #wms端生成任务优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java |  128 ++++++++++++++++++++++++++++++------------
 1 files changed, 90 insertions(+), 38 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 8a6897f..ad98507 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
@@ -7,6 +7,8 @@
 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 org.apache.commons.lang3.StringUtils;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 
@@ -24,7 +26,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 +52,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 +96,31 @@
      * @description 鍔ㄦ�佸瓧娈祐alue淇濆瓨
      * @time 2025/3/18 15:00
      */
-    public static void saveFields(Map<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<>();
-        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 (!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 (fieldsItems.isEmpty()) {
+                return false;
+            }
+            if (!fieldsItemService.saveBatch(fieldsItems)) {
+                throw new CoolException("鎵╁睍瀛楁淇濆瓨澶辫触锛侊紒");
+            }
+            return true;
         }
-       if (!fieldsItemService.saveBatch(fieldsItems)) {
-           throw new CoolException("鍔ㄦ�佸瓧娈靛�间繚瀛樺け璐ワ紒锛�");
-       }
+        return false;
     }
 
     /**
@@ -88,38 +132,46 @@
         return fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getStatus, 1).eq(Fields::getFlagEnable, 1));
     }
 
-    public static void updateFieldsValue(Map<String, Object> params) {
+    /**
+     * @author Ryan
+     * @description 鍔ㄦ�佸瓧娈典慨鏀�
+     * @param
+     * @return
+     * @time 2025/4/7 15:28
+     */
+    @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)) {
+        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())
-                                .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 {
-            String uuid16 = CommonUtil.randomUUID16();
-            saveFields(params, uuid16);
+            saveFields(params, params.get("index").toString());
         }
     }
 }

--
Gitblit v1.9.1