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 | 48 +++++++++++++++++++++++++++++++++++++++---------
1 files changed, 39 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 a23d53e..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);
}
/**
--
Gitblit v1.9.1