From 8559dc7e9184ce361d30c0c4dcb41abc7bb03a7a Mon Sep 17 00:00:00 2001 From: Rui_Li <877258667@qq.com> Date: Wed, 30 Apr 2025 13:40:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=80=E6=9C=AF=E7=AD=89=E7=BA=A7=20BUG=20?= =?UTF-8?q?=E4=BF=AE=E5=B0=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/spring/ifs/utils/IfsPlsqlUtils.java | 60 +++++++++++++++++-- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/spring/ifs/utils/IfsPlsqlUtils.java b/src/main/java/com/spring/ifs/utils/IfsPlsqlUtils.java index a0f18d8d..88a9d369 100644 --- a/src/main/java/com/spring/ifs/utils/IfsPlsqlUtils.java +++ b/src/main/java/com/spring/ifs/utils/IfsPlsqlUtils.java @@ -3,6 +3,7 @@ package com.spring.ifs.utils; import com.spring.ifs.data.IfsParamBean; import ifs.fnd.ap.*; +import java.math.BigDecimal; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -72,23 +73,72 @@ public class IfsPlsqlUtils { } } + /** + * @description: 执行存储过程 返回需要的数据 + * @author LR + * @date 2024/12/9 16:17 + * @version 1.0 + */ + public static Map execProcedureGetRecord(Server srv, String packageName, String methodName, + PlsqlBaseMethodType methodType, PlsqlBaseMethodAction methodAction, Map inParam) throws APException { + //创建查询体 + Record profile = new Record("PROFILE"); + //填充参数 + //循环设置入参 + for(Map.Entry entry : inParam.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + //设置入参 + profile.add(key, value); + } + //创建执行的框体 + PlsqlBaseMethodCommand methodCommand = new PlsqlBaseMethodCommand( + srv, + methodType, + packageName, + methodName, + profile, + methodAction); + //执行 + methodCommand.execute(); + //转换类型 + Map resultMap = IfsConverterToMap.ConverterIfsToMap(profile); + //返回结果集 + return resultMap; + } + /** * @description: 执行存储过程 返回需要的数据 * @author LR * @date 2024/12/9 16:17 * @version 1.0 */ - public static Map execProcedureGetRecord(Server srv, String packageName, String methodName, - PlsqlBaseMethodType methodType, PlsqlBaseMethodAction methodAction, Map inParam) throws APException { + public static Map execProcedureGetRecordForParamType(Server srv, String packageName, String methodName, + PlsqlBaseMethodType methodType, PlsqlBaseMethodAction methodAction, Map inParam) throws APException { //创建查询体 Record profile = new Record("PROFILE"); //填充参数 //循环设置入参 - for(Map.Entry entry : inParam.entrySet()) { + for(Map.Entry entry : inParam.entrySet()) { String key = entry.getKey(); - String value = entry.getValue(); + Object value = entry.getValue(); //设置入参 - profile.add(key, value); + //区分不同类型 使用不同的添加入参方法 + if (value instanceof String){ + profile.add(key, (String)value, DataType.ALPHA); + }else if (value instanceof BigDecimal){ + profile.add(key, (BigDecimal)value, DataType.DECIMAL); + }else if (value instanceof Integer){ + profile.add(key, (Integer)value, DataType.INTEGER); + }else if (value instanceof Long){ + profile.add(key, (Long)value, DataType.INTEGER); + }else if (value instanceof Double){ + profile.add(key, (Double)value, DataType.FLOAT); + }else if (value instanceof Float){ + profile.add(key, (Float)value, DataType.FLOAT); + }else if (value instanceof Boolean) { + profile.add(key, (Boolean) value, DataType.BOOLEAN); + } } //创建执行的框体 PlsqlBaseMethodCommand methodCommand = new PlsqlBaseMethodCommand(