Browse Source

Master Part针对多重警告的信息默认全部选择Y

master
rui_li 2 days ago
parent
commit
cbdf63bfa0
  1. 21
      src/main/java/com/spring/ifs/api/MasterPartApi.java
  2. 93
      src/main/java/com/spring/ifs/utils/IfsPlsqlUtils.java

21
src/main/java/com/spring/ifs/api/MasterPartApi.java

@ -104,16 +104,10 @@ public class MasterPartApi {
inParam.put("OBJVERSION", ""); inParam.put("OBJVERSION", "");
//执行存储过程 获取结果集 //执行存储过程 获取结果集
//执行check的操作 //执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API",
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecordWithDecisions(srv, "PART_CATALOG_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam); "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
String warning = checkMap.get("WARNING");
//如果存在警告信息 需要写入入参
if (!(null == warning || "".equals(warning))){
logger.info("警告信息:"+warning);
inParam.put("WARNING", warning);
}
//执行do的操作 //执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API",
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecordWithDecisions(srv, "PART_CATALOG_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam); "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
//返回结果集 //返回结果集
return resultMap; return resultMap;
@ -166,17 +160,10 @@ public class MasterPartApi {
inParam.put("INFO_TEXT", infoText); // 备注 inParam.put("INFO_TEXT", infoText); // 备注
//执行存储过程 获取结果集 //执行存储过程 获取结果集
//执行check的操作 //执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API",
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecordWithDecisions(srv, "PART_CATALOG_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//警告信息
String warning = checkMap.get("WARNING");
//如果存在警告信息 需要写入入参
if (!(null == warning || "".equals(warning))){
logger.info("警告信息:"+warning);
inParam.put("WARNING", warning);
}
//执行do的操作 //执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API",
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecordWithDecisions(srv, "PART_CATALOG_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam); "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
//返回结果集 //返回结果集
return resultMap; return resultMap;

93
src/main/java/com/spring/ifs/utils/IfsPlsqlUtils.java

@ -2,9 +2,12 @@ package com.spring.ifs.utils;
import com.spring.ifs.data.IfsParamBean; import com.spring.ifs.data.IfsParamBean;
import ifs.fnd.ap.*; import ifs.fnd.ap.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -15,6 +18,7 @@ import java.util.Map;
* @version 1.0 * @version 1.0
*/ */
public class IfsPlsqlUtils { public class IfsPlsqlUtils {
private static final Logger logger = LoggerFactory.getLogger(IfsPlsqlUtils.class);
/** /**
* @description: 调用查询的通用方法-- 返回单个Bean * @description: 调用查询的通用方法-- 返回单个Bean
@ -73,6 +77,7 @@ public class IfsPlsqlUtils {
} }
} }
/** /**
* @description: 执行存储过程 返回需要的数据 * @description: 执行存储过程 返回需要的数据
* @author LR * @author LR
@ -108,15 +113,95 @@ public class IfsPlsqlUtils {
}catch(ManualDecisionException e){ }catch(ManualDecisionException e){
//转换类型 //转换类型
resultMap = IfsConverterToMap.ConverterIfsToMap(profile); resultMap = IfsConverterToMap.ConverterIfsToMap(profile);
System.out.print(e.getMessage());
String warningInfo = e.getMessage();
logger.info("执行存储过程返回警告信息:" + warningInfo);
//填充警告信息 //填充警告信息
resultMap.put("WARNING", e.getMessage());
resultMap.put("WARNING", warningInfo);
}
//返回结果集
return resultMap;
} }
/**
* @description: 执行存储过程 返回需要的数据
* @author LR
* @date 2024/12/9 16:17
* @version 1.0
*/
public static Map<String, String> execProcedureGetRecordWithDecisions(Server srv, String packageName, String methodName,
PlsqlBaseMethodType methodType, PlsqlBaseMethodAction methodAction, Map<String, String> inParam) throws APException {
//创建查询体
Record profile = new Record("PROFILE");
//填充参数
//循环设置入参
for(Map.Entry<String, String> 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);
//转换类型
Map<String, String> resultMap = null;
//执行
try{
methodCommand.execute();
srv.setDecisions(null);
resultMap = IfsConverterToMap.ConverterIfsToMap(profile);
}catch(ManualDecisionException e){
//转换类型
//logger.info("执行存储过程返回警告信息:" + e.getMessage());
//填充警告信息
resultMap = new HashMap<>();
resultMap.put("WARNING", "");
ManualDecisionCollection decisions = e.getDecisions();
acceptAllDecisions(decisions);
srv.setDecisions(decisions);
}
//返回结果集 //返回结果集
return resultMap; return resultMap;
} }
/**
* 自动应答 IFS 返回的全部 ManualDecision 警告
* 遍历 {@link ManualDecisionCollection}对未应答的决策调用 {@link ManualDecision#setAnswer}.
*/
private static void acceptAllDecisions(ManualDecisionCollection decisions) {
Iterator<ManualDecision> iterator = decisions.iterator();
while (iterator.hasNext()) {
ManualDecision decision = iterator.next();
if (decision.isAnswered()) {
continue;
}
decision.setAnswer(resolveDecisionAnswer(decision));
logger.info("应答IFS警告: {}", decision.getMessage());
}
}
/**
* 根据决策类型选择应答值CONTINUE 类型用 CONTINUE其余默认 YES
*/
private static ManualDecisionAnswer resolveDecisionAnswer(ManualDecision decision) {
ManualDecisionAnswer defaultAnswer = decision.getDefaultAnswer();
if (defaultAnswer != null
&& defaultAnswer != ManualDecisionAnswer.NO_ANSWER
&& defaultAnswer != ManualDecisionAnswer.CANCEL) {
return defaultAnswer;
}
if (decision.getQuestionType() == ManualDecisionQuestionType.CONTINUE) {
return ManualDecisionAnswer.CONTINUE;
}
return ManualDecisionAnswer.YES;
}
/** /**
* @description: 执行存储过程 返回需要的数据 * @description: 执行存储过程 返回需要的数据
* @author LR * @author LR
@ -233,8 +318,4 @@ public class IfsPlsqlUtils {
return resultMap; return resultMap;
} }
} }
Loading…
Cancel
Save