From c81fc5e2a4f4153be2bb8602ed14a0743e6ecd29 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期四, 05 三月 2026 11:14:50 +0800
Subject: [PATCH] RCS对接优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java |   72 ++++++++++++++++++++++-------------
 1 files changed, 45 insertions(+), 27 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
index 57332f5..8de29f8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
@@ -231,9 +231,10 @@
         if (Objects.isNull(param)) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-        if (Objects.isNull(param.get("fieldsIndex"))) {
-            return R.error("绁ㄥ彿涓嶈兘涓虹┖锛侊紒");
-        }
+        // 绁ㄥ彿鏆備笉浣跨敤锛屾敞閲婃牎楠�
+        // if (Objects.isNull(param.get("fieldsIndex"))) {
+        //     return R.error("绁ㄥ彿涓嶈兘涓虹┖锛侊紒");
+        // }
         if (Objects.isNull(param.get("barcode"))) {
             return R.error("鏂欑鐮佷笉鑳戒负绌猴紒锛�");
         }
@@ -246,28 +247,42 @@
         if (Objects.isNull(task)) {
             throw new CoolException("鏁版嵁閿欒锛屼换鍔℃。宸蹭笉瀛樺湪锛侊紒");
         }
-        FieldsItem fieldsItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>()
-                .eq(FieldsItem::getValue, param.get("fieldsIndex").toString())
-                .last("limit 1"));
-        if (Objects.isNull(fieldsItem)) {
-            return R.error("鏁版嵁閿欒锛岀エ鍙蜂笉瀛樺湪锛侊紒");
-        }
-        TaskItem taskItem = taskItemService.getOne(new LambdaQueryWrapper<TaskItem>()
+        // 绁ㄥ彿鏆備笉浣跨敤锛屾寜浠诲姟鍙栫涓�鏉℃槑缁�
+        // FieldsItem fieldsItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>()
+        //         .eq(FieldsItem::getValue, param.get("fieldsIndex").toString())
+        //         .last("limit 1"));
+        // if (Objects.isNull(fieldsItem)) {
+        //     return R.error("鏁版嵁閿欒锛岀エ鍙蜂笉瀛樺湪锛侊紒");
+        // }
+        TaskItem taskItem = null;
+        FieldsItem fieldsItem = null;
+        if (param.get("fieldsIndex") != null && StringUtils.isNotBlank(param.get("fieldsIndex").toString())) {
+            fieldsItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>()
+                    .eq(FieldsItem::getValue, param.get("fieldsIndex").toString())
+                    .last("limit 1"));
+            if (fieldsItem != null) {
+                taskItem = taskItemService.getOne(new LambdaQueryWrapper<TaskItem>()
                         .eq(TaskItem::getFieldsIndex, fieldsItem.getUuid())
-                .eq(TaskItem::getTaskId, task.getId()));
+                        .eq(TaskItem::getTaskId, task.getId()));
+            }
+        }
+        if (taskItem == null) {
+            taskItem = taskItemService.getOne(new LambdaQueryWrapper<TaskItem>()
+                    .eq(TaskItem::getTaskId, task.getId())
+                    .last("limit 1"));
+        }
         if (Objects.isNull(taskItem)) {
             return R.error("鏁版嵁閿欒锛屼换鍔℃。鏄庣粏涓嶅瓨鍦紒锛�");
         }
-//        Long orderId = Long.valueOf(param.get("orderId").toString());
-//        List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, orderId));
-//        if (orderItems.isEmpty()) {
-//            return R.error("鏁版嵁閿欒锛岃鍗曟暟鎹笉瀛樺湪锛侊紒");
-//        }
-        //鏍规嵁绱㈠紩鑾峰彇鍔ㄦ�佸瓧娈礦alue鍊�
-        Map<String, String> fields = new HashMap<>();
-        Fields fields1 = fieldsService.getById(fieldsItem.getFieldsId());
-        fields.put(fields1.getFields(), fieldsItem.getValue());
-        taskItem.setExtendFields(fields);
+        // 绁ㄥ彿鏆備笉浣跨敤锛氫粎褰撴湁 fieldsItem 鏃惰缃� extendFields
+        if (fieldsItem != null) {
+            Fields fields1 = fieldsService.getById(fieldsItem.getFieldsId());
+            if (fields1 != null) {
+                Map<String, String> fields = new HashMap<>();
+                fields.put(fields1.getFields(), fieldsItem.getValue());
+                taskItem.setExtendFields(fields);
+            }
+        }
 
         return R.ok().add(taskItem);
     }
@@ -373,10 +388,10 @@
                         throw new CoolException("缂撳瓨鏁版嵁涓㈠け锛侊紒");
                     }
                     Double v1 = Math.round((workItem.getAnfme() - serviceOne.getQty()) * 1000000) / 1000000.0;
-                    //涓嶇鏄惁鍏佽瓒呮敹锛岄兘闇�鍒ゆ柇鏄惁瓒呭嚭搴撳瓨鑼冨洿
-                    if (taskItem.getAnfme().compareTo(v1) > 0) {
-                        throw new CoolException("鎷h揣鏁伴噺瓒呭嚭褰撳墠绁ㄥ彿搴撳瓨鏁伴噺锛侊紒");
-                    }
+                    //涓嶇鏄惁鍏佽瓒呮敹锛岄兘闇�鍒ゆ柇鏄惁瓒呭嚭搴撳瓨鑼冨洿锛堢エ鍙锋殏涓嶄娇鐢紝璇ュ垽鏂敞閲婏級
+                    // if (taskItem.getAnfme().compareTo(v1) > 0) {
+                    //     throw new CoolException("鎷h揣鏁伴噺瓒呭嚭褰撳墠绁ㄥ彿搴撳瓨鏁伴噺锛侊紒");
+                    // }
                     if (!Boolean.parseBoolean(config.getVal())) {
                         Double v = Math.round((item.getQty() + taskItem.getAnfme()) * 1000000) / 1000000.0;
                         if (item.getAnfme().compareTo(v) < 0.0) {
@@ -488,6 +503,9 @@
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
         for (TaskItem item : items) {
+            // 绁ㄥ彿鏆備笉浣跨敤锛岃烦杩囦慨鏀瑰嚭搴撲换鍔℃。鏄庣粏绁ㄥ彿閫昏緫
+            continue;
+            /*
             if (Objects.isNull(item.getCrushNo())) {
                 continue;
             }
@@ -496,7 +514,7 @@
                 Map<String, String> fields = FieldsUtils.getFields(byId.getFieldsIndex());
                 byId.setExtendFields(fields);
             }
-            if (byId.getExtendFields().get("crushNo").equals(item.getCrushNo())) {
+            if (byId.getExtendFields() != null && byId.getExtendFields().get("crushNo") != null && byId.getExtendFields().get("crushNo").equals(item.getCrushNo())) {
                 continue;
             }
             FieldsItem fieldsItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>()
@@ -530,7 +548,7 @@
             //鏇存柊搴撲綅淇℃伅
             locItemWorkingService.updateById(oldOne);
             locItemWorkingService.updateById(one);
-
+            */
         }
         return R.ok();
     }

--
Gitblit v1.9.1