|
|
@ -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; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |