From 4304744cfb33afe68934cd63029f4f01a6b34b18 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期一, 19 一月 2026 19:49:22 +0800
Subject: [PATCH] 查询库存功能优化

---
 src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java |  102 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 93 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
index 775fa5f..c75f761 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -15,6 +15,7 @@
 import com.zy.api.entity.StockAdjustParams;
 import com.zy.api.entity.StockUpOrderParams;
 import com.zy.api.entity.SyncMatParmas;
+import com.zy.api.entity.dto.LocDetlDto;
 import com.zy.api.entity.dto.XSR;
 import com.zy.api.enums.MatLocType;
 import com.zy.api.enums.OrderType;
@@ -47,6 +48,7 @@
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service("kopenApiServiceImpl")
@@ -557,18 +559,46 @@
      * @return com.core.common.R
      */
     @Override
-    public XSR getStockInfo(PageRequestParams params) {
+    public XSR getStockInfo(List<PageRequestParams> params) {
+        if (Objects.isNull(params) || params.isEmpty()) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+
+        Set<String> collect = params.stream().map(PageRequestParams::getPro_id).collect(Collectors.toSet());
+
+        Set<String> komccodes = params.stream().map(PageRequestParams::getPro_komcode).collect(Collectors.toSet());
+
         EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
-        if (!Objects.isNull(params.getPro_id())) {
-            wrapper.eq("supp_code", params.getPro_id());
-        }
-        if (!Objects.isNull(params.getPro_komcode())) {
-            wrapper.eq("matnr", params.getPro_komcode());
-        }
+        wrapper.in(collect.isEmpty(), "pro_id", collect);
+        wrapper.in(komccodes.isEmpty(), "komccode", komccodes);
 
-        Page<LocDetl> locDetls = locDetlService.selectPage(new Page<>(params.getCurr(), params.getLimit()), wrapper);
+        List<LocDetl> detls = locDetlService.selectList(wrapper);
 
-        return XSR.ok(locDetls.getRecords());
+        if (detls == null || detls.isEmpty()) {
+            return XSR.ok();
+        }
+        List<LocDetlDto> dtos = new ArrayList<>();
+        detls.forEach(item -> {
+            LocDetlDto locDetlDto = new LocDetlDto();
+            if (item.getDiffQty().compareTo(BigDecimal.ZERO) == 0) {
+                locDetlDto.setLock_qty(0);
+            } else {
+                locDetlDto.setLock_qty(Integer.parseInt(item.getDiffQty().toString()));
+            }
+
+            if (item.getBookQty().compareTo(BigDecimal.ZERO) == 0) {
+                locDetlDto.setStock_qty(0);
+            } else {
+                locDetlDto.setStock_qty(Integer.parseInt(item.getBookQty().toString()));
+            }
+            locDetlDto
+                    .setPro_komcode(item.getMatnr())
+                    .setPro_id(item.getStandby1())
+                    .setLocation_no(item.getZpallet())
+                    .setTarget_location("");
+            dtos.add(locDetlDto);
+        });
+        return XSR.ok(dtos);
     }
 
     /**
@@ -706,6 +736,60 @@
     }
 
     /**
+     * 澶囪揣鎸囩ず娲惧伐鍗曞弽棣�
+     * @author Ryan
+     * @date 2026/1/15 15:20
+     * @param orderParams
+     * @param order
+     * @return com.zy.api.entity.dto.XSR
+     */
+    @Override
+    public XSR reportOutDetailsResult(List<ReportOrderParam> orderParams, Order order) {
+        if (Objects.isNull(orderParams)) {
+            return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        String response = null;
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(url + ":" + port)
+                    .setPath(prefix + "/getOutDetailsResult")
+                    .setJson(JSONObject.toJSONString(orderParams))
+                    .build()
+                    .doPost();
+             if (Objects.isNull(response) || response.trim().isEmpty()) {
+                return XSR.error("澶栫綉鎺ュ彛鏃犲搷搴旓紒锛�");
+            }
+            JSONObject jsonObject = JSONObject.parseObject(response);
+            Integer code = jsonObject.getInteger("code");
+            if (!Objects.isNull(code) && code.equals(200)) {
+                if (!Objects.isNull(order)) {
+                    order.setReportOnce(5);
+                    orderService.updateById(order);
+                }
+                return XSR.ok("鍏ュ簱鍗曚笂鎶ュ畬鎴愶紒锛�");
+            } else {
+                if (!Objects.isNull(order)) {
+                    int reportOnce = order.getReportOnce();
+                    reportOnce++;
+                    order.setReportOnce(reportOnce);
+                    orderService.updateById(order);
+                }
+                String msg = jsonObject.getString("message");
+                return XSR.error(Objects.isNull(msg) ? "涓婃姤澶辫触锛侊紒" : msg);
+            }
+        } catch (Exception e) {
+            if (!Objects.isNull(order)) {
+                int reportOnce = order.getReportOnce();
+                reportOnce++;
+                order.setReportOnce(reportOnce);
+                orderService.updateById(order);
+            }
+            log.error(e.getMessage(), e);
+            return XSR.error(e.getMessage());
+        }
+    }
+
+    /**
      * 鐢熸垚鏂扮殑闆朵欢鎹熸孩鍗�
      *
      * @param userId

--
Gitblit v1.9.1