From 220e5bf1475f655d25be204052bd9f1ada4e875b Mon Sep 17 00:00:00 2001 From: mzr Date: Wed, 1 Oct 2025 10:12:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=B0=E5=AD=98=E9=87=8F=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ic/onhand/APIOnhandQueryIpml.java | 43 ++++++++++++++++++- .../api/ic/onhand/IAPIOnhandQuery.java | 9 ++++ .../openapi/ic/onhand/OnhandResource.java | 2 +- 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/ic/src/private/nccloud/api/impl/ic/onhand/APIOnhandQueryIpml.java b/ic/src/private/nccloud/api/impl/ic/onhand/APIOnhandQueryIpml.java index 462f2876..48e26bec 100644 --- a/ic/src/private/nccloud/api/impl/ic/onhand/APIOnhandQueryIpml.java +++ b/ic/src/private/nccloud/api/impl/ic/onhand/APIOnhandQueryIpml.java @@ -14,6 +14,7 @@ import nccloud.openapi.scmpub.pub.TransferCodeToPKTool; import nccloud.openapi.scmpub.pubitf.IJsonParamMapping; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -59,7 +60,7 @@ public class APIOnhandQueryIpml implements IAPIOnhandQuery { public OnhandVO[] queryOnhandVOByDimsNoTrans(List> paramMapList) throws BusinessException { - //必输项检查 + // 必输项检查 try { List onhandDimVOS = new ArrayList<>(); for (Map paramMap : paramMapList) { @@ -79,6 +80,7 @@ public class APIOnhandQueryIpml implements IAPIOnhandQuery { return null; } } + @Override public OnhandVO[] queryOnhandVOByDims(List> paramMapList) throws Exception { // 必输项检查 @@ -120,6 +122,45 @@ public class APIOnhandQueryIpml implements IAPIOnhandQuery { return onhandVOs; } + @Override + public OnhandVO[] onhandQueryBatch(Map paramMap) throws Exception { + try { + List onhandDimVOS = new ArrayList<>(); + String pk_org = paramMap.get("pk_org").toString(); + if (paramMap.get("cmaterialoid") != null && paramMap.get("cmaterialoid") instanceof List) { + List cmaterialoids = (List) paramMap.get("cmaterialoid"); + for (String cmaterialoid : cmaterialoids) { + Map selMap = new HashMap<>(); + selMap.put("pk_org", pk_org); + selMap.put("cmaterialoid", cmaterialoid); + // 翻译 + selMap = TransferCodeToPKTool.doTranslateFields(jsonParamMapping, selMap); + OnhandDataSupplement dataSupplement = new OnhandDataSupplement(); + OnhandDimVO onhandDimVO = new OnhandDimVO(); + onhandDimVO = dataSupplement.process(selMap); + onhandDimVOS.add(onhandDimVO); + } + + } else { + Map selMap = new HashMap<>(); + selMap.put("pk_org", pk_org); + // 翻译 + selMap = TransferCodeToPKTool.doTranslateFields(jsonParamMapping, selMap); + OnhandDataSupplement dataSupplement = new OnhandDataSupplement(); + OnhandDimVO onhandDimVO = new OnhandDimVO(); + onhandDimVO = dataSupplement.process(selMap); + onhandDimVOS.add(onhandDimVO); + } + + OnhandVO[] onhandVOs = NCLocator.getInstance().lookup(OnhandResService.class) + .queryOnhandVOByDims(onhandDimVOS.toArray(new OnhandDimVO[0])); + return onhandVOs; + } catch (Exception e) { + ExceptionUtils.marsh(e); + return null; + } + } + // 必输项校验 private void requiredFieldCheck(String[] requiredField, Map paramMap) { diff --git a/ic/src/public/nccloud/api/ic/onhand/IAPIOnhandQuery.java b/ic/src/public/nccloud/api/ic/onhand/IAPIOnhandQuery.java index e94d4a22..03708dc6 100644 --- a/ic/src/public/nccloud/api/ic/onhand/IAPIOnhandQuery.java +++ b/ic/src/public/nccloud/api/ic/onhand/IAPIOnhandQuery.java @@ -46,4 +46,13 @@ public interface IAPIOnhandQuery { * @throws Exception 当查询操作失败时抛出的异常 */ OnhandVO[] queryOnhandVOByCondition(Map paramMap) throws Exception; + + /** + * 根据查询条件查询多个物料的现存量信息 + * + * @param paramMap 参数映射列表,每个映射包含一组查询条件 + * @return OnhandVO[] 查询到的现存量信息数组 + * @throws Exception 当查询操作失败时抛出的异常 + */ + OnhandVO[] onhandQueryBatch(Map paramMap) throws Exception; } diff --git a/ic/src/public/nccloud/openapi/ic/onhand/OnhandResource.java b/ic/src/public/nccloud/openapi/ic/onhand/OnhandResource.java index bf349736..2e367616 100644 --- a/ic/src/public/nccloud/openapi/ic/onhand/OnhandResource.java +++ b/ic/src/public/nccloud/openapi/ic/onhand/OnhandResource.java @@ -773,7 +773,7 @@ public class OnhandResource { } try { OnhandVO[] onhandVOs = NCLocator.getInstance().lookup(IAPIOnhandQuery.class) - .queryOnhandVOByDims(paramMap); + .onhandQueryBatch(paramMap); // 对数据进行整合组装,返回物料+仓库+数量 if (null != onhandVOs && onhandVOs.length > 0) { // 收集所有物料和仓库ID