Browse Source

优化

master
DouDou 4 months ago
parent
commit
846b40d720
  1. 136
      src/main/java/com/spring/ifs/api/BomApi.java

136
src/main/java/com/spring/ifs/api/BomApi.java

@ -399,17 +399,12 @@ public class BomApi {
//警告信息 //警告信息
logger.info("retireBomAlternative 返回信息: "+ JSONArray.toJSONString(checkMap)); logger.info("retireBomAlternative 返回信息: "+ JSONArray.toJSONString(checkMap));
String warning = checkMap.get("WARNING"); String warning = checkMap.get("WARNING");
String info = checkMap.get("INFO");
//如果存在警告信息 需要写入入参 //如果存在警告信息 需要写入入参
if (!(null == warning || "".equals(warning))){ if (!(null == warning || "".equals(warning))){
logger.info("警告信息:"+warning); logger.info("警告信息:"+warning);
inParam.put("WARNING", warning); inParam.put("WARNING", warning);
} }
//如果存在信息 需要写入入参
if (!(null == info || "".equals(info))){
logger.info("信息:"+info);
inParam.put("INFO", info);
}
//执行do的操作 //执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PROD_STRUCT_ALTERNATE_API", Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PROD_STRUCT_ALTERNATE_API",
"RETIRE__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam); "RETIRE__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
@ -913,135 +908,6 @@ public class BomApi {
return resultMap; return resultMap;
} }
/**
* 使用原生PlsqlBaseMethodCommand模式的RETIRE CHECK示例
* 重点抓取CHECK返回的警告信息
* @description: 基于IFS原生demo的retire Bom Alternative CHECK
* @author Demo
* @date 2024/12/20
* @version 1.0
*/
public static Map<String, String> retireBomAlternativeNativeCheck(Server srv, BomIfsAlternative inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();
String ifsRowVersion = inData.getIfsRowVersion();
logger.info("=== 使用原生模式执行RETIRE CHECK ===");
logger.info("输入参数 - OBJID: {}, OBJVERSION: {}", ifsRowId, ifsRowVersion);
// 创建Profile按照原生demo的模式
Record profile = new Record("PROFILE");
profile.add("OBJID", ifsRowId);
profile.add("OBJVERSION", ifsRowVersion);
// 添加可能的返回信息字段用于接收CHECK返回的值
profile.add("WARNING", ""); // 用于接收警告信息
profile.add("INFO", ""); // 用于接收信息
profile.add("ERROR_SYS", ""); // 用于接收系统错误
profile.add("ATTR", ""); // 用于接收属性信息
// 创建CHECK命令
PlsqlBaseMethodCommand checkCmd = new PlsqlBaseMethodCommand(
srv,
PlsqlBaseMethodType.MODIFY, // 方法类型
"PROD_STRUCT_ALTERNATE_API", // API包名
"RETIRE__", // 方法名
profile, // 参数Profile
PlsqlBaseMethodAction.CHECK // CHECK操作
);
Map<String, String> resultMap = new HashMap<>();
try {
// 执行CHECK
checkCmd.execute();
logger.info("CHECK执行成功,开始抓取返回信息...");
// 检查并抓取返回的信息按照原生demo的模式
// 检查WARNING信息
RecordAttribute warning = profile.find("WARNING");
if(warning != null && warning.hasValue()) {
String warningValue = (String)warning.getValue();
logger.info("WARNING returned by CHECK: {}", warningValue);
resultMap.put("WARNING", warningValue);
} else {
logger.info("WARNING returned by CHECK: null");
resultMap.put("WARNING", "");
}
// 检查INFO信息
RecordAttribute info = profile.find("INFO");
if(info != null && info.hasValue()) {
String infoValue = (String)info.getValue();
logger.info("INFO returned by CHECK: {}", infoValue);
resultMap.put("INFO", infoValue);
} else {
logger.info("INFO returned by CHECK: null");
resultMap.put("INFO", "");
}
// 检查ERROR_SYS信息
RecordAttribute errorSys = profile.find("ERROR_SYS");
if(errorSys != null && errorSys.hasValue()) {
String errorValue = (String)errorSys.getValue();
logger.info("ERROR_SYS returned by CHECK: {}", errorValue);
resultMap.put("ERROR_SYS", errorValue);
} else {
logger.info("ERROR_SYS returned by CHECK: null");
resultMap.put("ERROR_SYS", "");
}
// 检查ATTR信息
RecordAttribute attr = profile.find("ATTR");
if(attr != null && attr.hasValue()) {
String attrValue = (String)attr.getValue();
logger.info("ATTR returned by CHECK: {}", attrValue);
resultMap.put("ATTR", attrValue);
} else {
logger.info("ATTR returned by CHECK: null");
resultMap.put("ATTR", "");
}
// 检查OBJID和OBJVERSION是否有变化
RecordAttribute objIdAttr = profile.find("OBJID");
if(objIdAttr != null && objIdAttr.hasValue()) {
String objIdValue = (String)objIdAttr.getValue();
logger.info("OBJID after CHECK: {}", objIdValue);
resultMap.put("OBJID", objIdValue);
}
RecordAttribute objVersionAttr = profile.find("OBJVERSION");
if(objVersionAttr != null && objVersionAttr.hasValue()) {
String objVersionValue = (String)objVersionAttr.getValue();
logger.info("OBJVERSION after CHECK: {}", objVersionValue);
resultMap.put("OBJVERSION", objVersionValue);
}
logger.info("CHECK操作完成,返回信息: {}", resultMap);
} catch (APException e) {
// 按照您的需求CHECK阶段可能会抛出需要用户确认的异常
logger.warn("CHECK操作抛出异常(可能需要用户确认): {}", e.getMessage());
// 异常情况下也要返回信息将异常信息作为WARNING处理
resultMap.put("EXCEPTION", e.getMessage());
resultMap.put("WARNING", e.getMessage());
resultMap.put("OBJID", ifsRowId);
resultMap.put("OBJVERSION", ifsRowVersion);
resultMap.put("INFO", "");
resultMap.put("ERROR_SYS", "");
resultMap.put("ATTR", "");
}
return resultMap;
}
} }
Loading…
Cancel
Save