package com.spring.ifs.api; import com.spring.ifs.data.*; import com.spring.ifs.utils.IfsConverterToMap; import com.spring.ifs.utils.IfsPlsqlUtils; import ifs.fnd.ap.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @description: 处理Master业务的底层相关函数 * @author LR * @date 2024/12/9 10:56 * @version 1.0 */ public class InventoryPartApiTest { /** * @description: 查询库存件的信息 * @author LR * @date 2024/12/11 9:35 * @version 1.0 */ public static Map getInventoryPartByPartNo(Server srv, String contract, String partNo) throws APException { StringBuilder searchSql = new StringBuilder(); searchSql.append("SELECT CONTRACT, PART_NO partNo, OBJID ifsRowId, OBJVERSION ifsRowVersion"); searchSql.append(" FROM IFSAPP.INVENTORY_PART"); searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo"); //设置查询的入参 Map inParam = new HashMap<>(); inParam.put("contract", contract); inParam.put("partNo", partNo); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 if (recordCollection == null) { return null; } else { Record recordData = recordCollection.get(0); Map resultMap = IfsConverterToMap.ConverterIfsToMap(recordData); return resultMap; } } public static InventoryPart getInventoryPart(Server srv, String contract, String partNo) throws APException { StringBuilder searchSql = new StringBuilder(); searchSql.append("SELECT CONTRACT, PART_NO, OBJID ifsRowId, OBJVERSION ifsRowVersion"); searchSql.append(" FROM IFSAPP.INVENTORY_PART"); searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo"); //设置查询的入参 Map inParam = new HashMap<>(); inParam.put("contract", contract); inParam.put("partNo", partNo); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 if (recordCollection == null) { return null; } else { Record recordData = recordCollection.get(0); Map resultMap = IfsConverterToMap.ConverterIfsToMap(recordData); //判断是否存在 if(null == resultMap || resultMap.size() == 0){ return null; }else { //解析数据 InventoryPart tempPart = new InventoryPart(); tempPart.setContract(resultMap.get("CONTRACT")); tempPart.setPartNo(resultMap.get("PART_NO")); // tempPart.setIfsRowId(resultMap.get("IFSROWID")); tempPart.setIfsRowVersion(resultMap.get("IFSROWVERSION")); return tempPart; } } } /** * @description: 新增库存件 * @author LR * @date 2024/12/11 9:51 * @version 1.0 */ public static Map insertInventoryPart(Server srv, InventoryPart inData) throws APException { //公共参数 String contract = inData.getContract(); String partNo = inData.getPartNo().toUpperCase(); String partDesc = inData.getPartDesc(); String typeCode = inData.getTypeCode(); String plannerBuyer = inData.getPlannerBuyer(); String unitMeas = inData.getUnitMeas(); String primeCommodity = inData.getPrimeCommodity();//主分组 String secondCommodity = inData.getSecondCommodity();//第二分组 String assetClass = inData.getAssetClass(); String partStatus = inData.getPartStatus(); String hazardCode = inData.getHazardCode(); String accountingGroup = inData.getAccountingGroup(); String partProductCode = inData.getPartProductCode(); String partProductFamily = inData.getPartProductFamily(); String typeDesignation = inData.getTypeDesignation(); String dimQuality = inData.getDimQuality(); String noteText = inData.getNoteText(); String leadTimeCode = inData.getLeadTimeCode(); String manufLeadtime = inData.getManufLeadtime(); String expectedLeadtime = inData.getExpectedLeadtime(); String durabilityDay = inData.getDurabilityDay(); String countryOfOrigin = inData.getCountryOfOrigin(); String regionOfOrigin = inData.getRegionOfOrigin(); String customsStatNo = inData.getCustomsStatNo(); String intrastatConvFactor = inData.getIntrastatConvFactor(); String inventoryValuationMethod = inData.getInventoryValuationMethod();// String inventoryPartCostLevel = inData.getInventoryPartCostLevel();// String invoiceConsideration = inData.getInvoiceConsideration();// String zeroCostFlag = inData.getZeroCostFlag();// String partCostGroupId = inData.getPartCostGroupId();// String engAttribute = inData.getEngAttribute(); //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ""); inParam.put("OBJVERSION", ""); inParam.put("CONTRACT", contract); // ifs域 inParam.put("PART_NO", partNo); // 物料编码 inParam.put("DESCRIPTION", partDesc); // 物料描述 inParam.put("TYPE_CODE", typeCode); // 物料大类 inParam.put("PLANNER_BUYER", plannerBuyer); // 计划购买者 inParam.put("UNIT_MEAS", unitMeas); // 单位 inParam.put("PRIME_COMMODITY", primeCommodity); // 主分组 inParam.put("SECOND_COMMODITY", secondCommodity); // 副分组 inParam.put("ASSET_CLASS", assetClass); // ASSET_CLASS inParam.put("PART_STATUS", partStatus); // ASSET_CLASS inParam.put("HAZARD_CODE", hazardCode); // HAZARD_CODE inParam.put("ACCOUNTING_GROUP", accountingGroup); // 商品属性 半成品 成品 原材料 inParam.put("PART_PRODUCT_CODE", partProductCode); // 产品代码 inParam.put("PART_PRODUCT_FAMILY", partProductFamily); // 零部件标识 inParam.put("TYPE_DESIGNATION", typeDesignation); // 类型标识 inParam.put("DIM_QUALITY", dimQuality); // DIM_QUALITY inParam.put("NOTE_TEXT", noteText); // 备注 inParam.put("LEAD_TIME_CODE", leadTimeCode); // LEAD_TIME_CODE inParam.put("MANUF_LEADTIME", manufLeadtime); // MANUF_LEADTIME inParam.put("EXPECTED_LEADTIME", expectedLeadtime); // inParam.put("DURABILITY_DAY", durabilityDay); // DURABILITY_DAY inParam.put("COUNTRY_OF_ORIGIN", countryOfOrigin); // 国家 inParam.put("REGION_OF_ORIGIN", regionOfOrigin); // 区域 inParam.put("CUSTOMS_STAT_NO", customsStatNo); // CUSTOMS_STAT_NO inParam.put("INTRASTAT_CONV_FACTOR", intrastatConvFactor); // INTRASTAT_CONV_FACTOR inParam.put("INVENTORY_VALUATION_METHOD", inventoryValuationMethod); // INVENTORY_VALUATION_METHOD inParam.put("INVENTORY_PART_COST_LEVEL", inventoryPartCostLevel); // INVENTORY_PART_COST_LEVEL inParam.put("INVOICE_CONSIDERATION", invoiceConsideration); // INVOICE_CONSIDERATION inParam.put("ZERO_COST_FLAG", zeroCostFlag); // ZERO_COST_FLAG inParam.put("PART_COST_GROUP_ID", partCostGroupId); // PART_COST_GROUP_ID inParam.put("ENG_ATTRIBUTE", engAttribute); // 库存件模版 // 固定参数 inParam.put("CATCH_UNIT_MEAS", ""); // 拼接固定值CATCH_UNIT_MEAS inParam.put("PURCH_LEADTIME", "0"); // 拼接固定值PURCH_LEADTIME inParam.put("MIN_DURAB_DAYS_CO_DELIV", "0"); // 拼接固定参数 inParam.put("MIN_DURAB_DAYS_PLANNING", "0"); // 拼接固定参数 inParam.put("MANDATORY_EXPIRATION_DATE_DB", "FALSE"); // 拼接固定参数 inParam.put("SUPPLY_CODE", "Inventory Order"); // 拼接固定参数 inParam.put("DOP_CONNECTION", "Automatic DOP"); // 拼接固定参数 inParam.put("DOP_NETTING", "No Netting"); // 拼接固定参数 inParam.put("QTY_CALC_ROUNDING", "16"); // 拼接固定参数 inParam.put("CYCLE_PERIOD", "0"); // 拼接固定参数 inParam.put("CYCLE_CODE_DB", "N"); // 拼接固定参数 inParam.put("STOCK_MANAGEMENT_DB", "SYSTEM MANAGED INVENTORY"); // 固定参数 inParam.put("SPECIAL_CONSUMPTION_TAX_DB", "FALSE"); // SPECIAL_CONSUMPTION_TAX_DB inParam.put("CUSTOMS_DECL_NO_LEVEL", "Not Used"); // CUSTOMS_DECL_NO_LEVEL //执行存储过程 获取结果集 //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } /** * @description: 修改库存件的信息 * @author LR * @date 2024/12/11 9:59 * @version 1.0 */ public static Map modifyInventoryPart(Server srv, InventoryPart inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId(); String ifsRowVersion = inData.getIfsRowVersion(); String partDesc = inData.getPartDesc(); String typeCode = inData.getTypeCode(); String plannerBuyer = inData.getPlannerBuyer(); String primeCommodity = inData.getPrimeCommodity();//主分组 String secondCommodity = inData.getSecondCommodity();//第二分组 String assetClass = inData.getAssetClass(); String partStatus = inData.getPartStatus(); String abcClass = inData.getAbcClass(); String hazardCode = inData.getHazardCode(); String accountingGroup = inData.getAccountingGroup(); String partProductCode = inData.getPartProductCode(); String partProductFamily = inData.getPartProductFamily(); String typeDesignation = inData.getTypeDesignation(); String dimQuality = inData.getDimQuality(); String noteText = inData.getNoteText(); String manufLeadtime = inData.getManufLeadtime(); String expectedLeadtime = inData.getExpectedLeadtime(); String durabilityDay = inData.getDurabilityDay(); String countryOfOrigin = inData.getCountryOfOrigin(); String regionOfOrigin = inData.getRegionOfOrigin(); String customsStatNo = inData.getCustomsStatNo(); String intrastatConvFactor = inData.getIntrastatConvFactor(); String inventoryValuationMethod = inData.getInventoryValuationMethod();// String inventoryPartCostLevel = inData.getInventoryPartCostLevel();// String invoiceConsideration = inData.getInvoiceConsideration();// String zeroCostFlag = inData.getZeroCostFlag();// String partCostGroupId = inData.getPartCostGroupId();// String engAttribute = inData.getEngAttribute(); //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); inParam.put("DESCRIPTION", partDesc); // 物料描述 inParam.put("TYPE_CODE", typeCode); // 物料大类 inParam.put("PLANNER_BUYER", plannerBuyer); // 计划购买者 inParam.put("PRIME_COMMODITY", primeCommodity); // 主分组 inParam.put("SECOND_COMMODITY", secondCommodity); // 副分组 inParam.put("ASSET_CLASS", assetClass); // ASSET_CLASS inParam.put("PART_STATUS", partStatus); // ASSET_CLASS inParam.put("ABC_CLASS", abcClass); // ASSET_CLASS inParam.put("HAZARD_CODE", hazardCode); // HAZARD_CODE inParam.put("ACCOUNTING_GROUP", accountingGroup); // 商品属性 半成品 成品 原材料 inParam.put("PART_PRODUCT_CODE", partProductCode); // 产品代码 inParam.put("PART_PRODUCT_FAMILY", partProductFamily); // 零部件标识 inParam.put("TYPE_DESIGNATION", typeDesignation); // 类型标识 inParam.put("DIM_QUALITY", dimQuality); // DIM_QUALITY inParam.put("NOTE_TEXT", noteText); // 备注 inParam.put("MANUF_LEADTIME", manufLeadtime); // MANUF_LEADTIME inParam.put("EXPECTED_LEADTIME", expectedLeadtime); // inParam.put("DURABILITY_DAY", durabilityDay); // DURABILITY_DAY inParam.put("COUNTRY_OF_ORIGIN", countryOfOrigin); // 国家 inParam.put("REGION_OF_ORIGIN", regionOfOrigin); // 区域 inParam.put("CUSTOMS_STAT_NO", customsStatNo); // CUSTOMS_STAT_NO inParam.put("INTRASTAT_CONV_FACTOR", intrastatConvFactor); // 备注 inParam.put("INVENTORY_VALUATION_METHOD", inventoryValuationMethod); // INVENTORY_VALUATION_METHOD inParam.put("INVENTORY_PART_COST_LEVEL", inventoryPartCostLevel); // INVENTORY_PART_COST_LEVEL inParam.put("INVOICE_CONSIDERATION", invoiceConsideration); // INVOICE_CONSIDERATION inParam.put("ZERO_COST_FLAG", zeroCostFlag); // ZERO_COST_FLAG inParam.put("PART_COST_GROUP_ID", partCostGroupId); // PART_COST_GROUP_ID inParam.put("ENG_ATTRIBUTE", engAttribute); // 库存件模版 //执行存储过程 获取结果集 //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } /** * @description: 删除库存件 * @author LR * @date 2024/12/11 10:04 * @version 1.0 */ public static void removeInventoryPart(Server srv, PartCatalog inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId(); String ifsRowVersion = inData.getIfsRowVersion(); //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); //执行存储过程 获取结果集 //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam); } /** * @description: 查询库存件的cost配置信息 * @author LR * @date 2024/12/11 10:13 * @version 1.0 */ public static Map getInventoryPartConfig(Server srv, String contract, String partNo) throws APException { StringBuilder searchSql = new StringBuilder(); searchSql.append("SELECT CONTRACT, PART_NO partNo, configuration_id, estimated_material_cost, OBJID ifsRowId, OBJVERSION ifsRowVersion"); searchSql.append(" FROM IFSAPP.INVENTORY_PART_CONFIG"); searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo"); //设置查询的入参 Map inParam = new HashMap<>(); inParam.put("contract", contract); inParam.put("partNo", partNo); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 if (recordCollection == null) { return null; } else { Record recordData = recordCollection.get(0); Map resultMap = IfsConverterToMap.ConverterIfsToMap(recordData); return resultMap; } } /** * @description: 修改库存件的cost的信息 * @author LR * @date 2024/12/11 10:23 * @version 1.0 */ public static Map modifyInventoryPartCost(Server srv, InventoryPartConfig inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId(); String ifsRowVersion = inData.getIfsRowVersion(); String estimatedMaterialCost = inData.getEstimatedMaterialCost(); //入参 Map inParam = new HashMap<>(); inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); inParam.put("ESTIMATED_MATERIAL_COST", estimatedMaterialCost); // ESTIMATED_MATERIAL_COST //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_CONFIG_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_CONFIG_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } /** * @description: 获取库存件的计划 * @author LR * @date 2024/12/11 10:31 * @version 1.0 */ public static Map getInventoryPartPlan(Server srv, String contract, String partNo) throws APException { StringBuilder searchSql = new StringBuilder(); searchSql.append("SELECT CONTRACT, PART_NO partNo, planning_method, safety_stock, OBJID ifsRowId, OBJVERSION ifsRowVersion"); searchSql.append(" FROM IFSAPP.INVENTORY_PART_PLANNING"); searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo"); //设置查询的入参 Map inParam = new HashMap<>(); inParam.put("contract", contract); inParam.put("partNo", partNo); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 if (recordCollection == null) { return null; } else { Record recordData = recordCollection.get(0); Map resultMap = IfsConverterToMap.ConverterIfsToMap(recordData); return resultMap; } } /** * @description: 修改库存件的计划 * @author LR * @date 2024/12/11 10:44 * @version 1.0 */ public static Map modifyInventoryPartPlan(Server srv, InventoryPartPlan inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId(); String ifsRowVersion = inData.getIfsRowVersion(); String planningMethod = inData.getPlanningMethod(); // String safetyStock = inData.getSafetyStock(); String safetyLeadTime = inData.getSafetyLeadTime(); String minOrderQty = inData.getMinOrderQty(); String maxOrderQty = inData.getMaxOrderQty(); String mulOrderQty = inData.getMulOrderQty(); String shrinkageFac = inData.getShrinkageFac(); String stdOrderSize = inData.getStdOrderSize(); //入参 Map inParam = new HashMap<>(); inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); inParam.put("PLANNING_METHOD", planningMethod); // PLANNING_METHOD inParam.put("SAFETY_STOCK", safetyStock); // SAFETY_STOCK inParam.put("SAFETY_LEAD_TIME", safetyLeadTime); // SAFETY_LEAD_TIME inParam.put("MIN_ORDER_QTY", minOrderQty); // MIN_ORDER_QTY inParam.put("MAX_ORDER_QTY", maxOrderQty); // MAX_ORDER_QTY inParam.put("MUL_ORDER_QTY", mulOrderQty); // MUL_ORDER_QTY inParam.put("SHRINKAGE_FAC", shrinkageFac); // SHRINKAGE_FAC inParam.put("STD_ORDER_SIZE", stdOrderSize); // STD_ORDER_SIZE //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_PLANNING_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_PLANNING_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } /** * @description: 查询库存件的库位信息 * @author LR * @date 2024/12/11 10:51 * @version 1.0 */ public static Map getInventoryPartLocation(Server srv, String contract, String partNo, String locationNo) throws APException { StringBuilder searchSql = new StringBuilder(); searchSql.append("SELECT CONTRACT, PART_NO partNo, location_no, location_type, OBJID ifsRowId, OBJVERSION ifsRowVersion"); searchSql.append(" FROM IFSAPP.INVENTORY_PART_DEF_LOC"); searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND LOCATION_NO = :locationNo"); //设置查询的入参 Map inParam = new HashMap<>(); inParam.put("contract", contract); inParam.put("partNo", partNo); inParam.put("locationNo", locationNo); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 if (recordCollection == null) { return null; } else { Record recordData = recordCollection.get(0); Map resultMap = IfsConverterToMap.ConverterIfsToMap(recordData); return resultMap; } } /** * @description: 插入库存件的库位信息 * @author LR * @date 2024/12/11 10:52 * @version 1.0 */ public static Map insertInventoryPartLocation(Server srv, InventoryPartLocation inData) throws APException { //公共参数 String contract = inData.getContract(); String partNo = inData.getPartNo().toUpperCase(); String locationNo = inData.getLocationNo(); String locationType = inData.getLocationType(); //入参 Map inParam = new HashMap<>(); inParam.put("OBJID", ""); inParam.put("OBJVERSION", ""); inParam.put("CONTRACT", contract); // CONTRACT inParam.put("PART_NO", partNo); // PART_NO inParam.put("LOCATION_NO", locationNo); // LOCATION_NO inParam.put("LOCATION_TYPE", locationType); // LOCATION_TYPE //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_DEF_LOC_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_DEF_LOC_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } /** * @description: 删除库存件的库位信息 * @author LR * @date 2024/12/11 10:59 * @version 1.0 */ public static void removeInventoryPartLocation(Server srv, InventoryPartLocation inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId(); String ifsRowVersion = inData.getIfsRowVersion(); //入参 Map inParam = new HashMap<>(); inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_DEF_LOC_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_DEF_LOC_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam); } /** * @description: 查询库存件的制造商信息 * @author LR * @date 2024/12/11 11:02 * @version 1.0 */ public static Map getInventoryManufacture(Server srv, String contract, String partNo) throws APException { StringBuilder searchSql = new StringBuilder(); searchSql.append("SELECT CONTRACT, PART_NO partNo, cum_leadtime, density, OBJID ifsRowId, OBJVERSION ifsRowVersion"); searchSql.append(" FROM IFSAPP.MANUF_PART_ATTRIBUTE"); searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo"); //设置查询的入参 Map inParam = new HashMap<>(); inParam.put("contract", contract); inParam.put("partNo", partNo); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 if (recordCollection == null) { return null; } else { Record recordData = recordCollection.get(0); Map resultMap = IfsConverterToMap.ConverterIfsToMap(recordData); return resultMap; } } /** * @description: 修改库存件的制造商信息 * @author LR * @date 2024/12/11 11:11 * @version 1.0 */ public static Map modifyInventoryPartManufacture(Server srv, InventoryPartManufacture inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId(); String ifsRowVersion = inData.getIfsRowVersion(); String cumLeadtime = inData.getCumLeadtime(); String unprotectedLeadTime = inData.getUnprotectedLeadTime(); String fixedLeadtimeDay = inData.getFixedLeadtimeDay(); String variableLeadtimeDay = inData.getVariableLeadtimeDay(); String fixedLeadtimeHour = inData.getFixedLeadtimeHour(); String variableLeadtimeHour = inData.getVariableLeadtimeHour(); String backflushPart = inData.getBackflushPart(); String issueType = inData.getIssueType(); String overReporting = inData.getOverReporting(); String overReportTolerance = inData.getOverReportTolerance(); String byProdAsSupplyInMrpDb = inData.getByProdAsSupplyInMrpDb(); String mrpControlFlagDb = inData.getMrpControlFlagDb(); String useTheoriticalDensityDb = inData.getUseTheoriticalDensityDb(); String density = inData.getDensity(); //入参 Map inParam = new HashMap<>(); inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); inParam.put("CUM_LEADTIME", cumLeadtime); // CUM_LEADTIME inParam.put("UNPROTECTED_LEAD_TIME", unprotectedLeadTime); // UNPROTECTED_LEAD_TIME inParam.put("FIXED_LEADTIME_DAY", fixedLeadtimeDay); // FIXED_LEADTIME_DAY inParam.put("VARIABLE_LEADTIME_DAY", variableLeadtimeDay); // VARIABLE_LEADTIME_DAY inParam.put("FIXED_LEADTIME_HOUR", fixedLeadtimeHour); // FIXED_LEADTIME_HOUR inParam.put("VARIABLE_LEADTIME_HOUR", variableLeadtimeHour); // VARIABLE_LEADTIME_HOUR inParam.put("BACKFLUSH_PART", backflushPart); // BACKFLUSH_PART inParam.put("ISSUE_TYPE", issueType); // ISSUE_TYPE inParam.put("OVER_REPORTING", overReporting); // OVER_REPORTING inParam.put("OVER_REPORT_TOLERANCE", overReportTolerance); // OVER_REPORT_TOLERANCE inParam.put("BY_PROD_AS_SUPPLY_IN_MRP_DB", byProdAsSupplyInMrpDb); // BY_PROD_AS_SUPPLY_IN_MRP_DB inParam.put("MRP_CONTROL_FLAG_DB", mrpControlFlagDb); // MRP_CONTROL_FLAG_DB inParam.put("USE_THEORITICAL_DENSITY_DB", useTheoriticalDensityDb); // USE_THEORITICAL_DENSITY_DB if(!density.equals("")) { inParam.put("DENSITY", density); } //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "MANUF_PART_ATTRIBUTE_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "MANUF_PART_ATTRIBUTE_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } /** * @description: 查询库存件的版本信息 * @author LR * @date 2024/12/11 11:19 * @version 1.0 */ public static Map getInventoryPartRevision(Server srv, String contract, String partNo, String engChgLevel) throws APException { StringBuilder searchSql = new StringBuilder(); searchSql.append("SELECT CONTRACT, PART_NO partNo, eng_chg_level, revision_text, OBJID ifsRowId, OBJVERSION ifsRowVersion"); searchSql.append(" FROM IFSAPP.PART_REVISION"); searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ENG_CHG_LEVEL = :engChgLevel"); //设置查询的入参 Map inParam = new HashMap<>(); inParam.put("contract", contract); inParam.put("partNo", partNo); inParam.put("engChgLevel", engChgLevel); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 if (recordCollection == null) { return null; } else { Record recordData = recordCollection.get(0); Map resultMap = IfsConverterToMap.ConverterIfsToMap(recordData); return resultMap; } } /** * @description: 插入库存件的版本 * @author LR * @date 2024/12/11 11:21 * @version 1.0 */ public static Map insertInventoryPartRevision(Server srv, InventoryPartRevision inData) throws APException { //公共参数 String contract = inData.getContract(); String partNo = inData.getPartNo().toUpperCase(); String engChgLevel = inData.getEngChgLevel(); String revisionText = inData.getRevisionText(); String effPhaseInDate = inData.getEffPhaseInDate().substring(0, 10)+"-00.00.00"; String effPhaseOutDate = inData.getEffPhaseOutDate(); //是否存在有效值 if(effPhaseOutDate == null || effPhaseOutDate.equals("")) { effPhaseOutDate = ""; }else { effPhaseOutDate = effPhaseOutDate.substring(0, 10)+"-00.00.00"; } String engRevision = inData.getEngRevision(); String engRevisionDesc = inData.getEngRevisionDesc(); //入参 Map inParam = new HashMap<>(); inParam.put("OBJID", ""); inParam.put("OBJVERSION", ""); inParam.put("CONTRACT", contract); // ifs域 inParam.put("PART_NO", partNo); // 物料编码 inParam.put("ENG_CHG_LEVEL", engChgLevel); // 版本信息 inParam.put("REVISION_TEXT", revisionText); // 版本备注 inParam.put("EFF_PHASE_IN_DATE", effPhaseInDate); // 启用日期 inParam.put("EFF_PHASE_OUT_DATE", effPhaseOutDate); // 过期日期 inParam.put("ENG_REVISION", engRevision); // ENG_REVISION inParam.put("ENG_REVISION_DESC", engRevisionDesc); // 版本描述 inParam.put("EFFECTIVE_STATUS", "Not In Effect"); // 有效状态 inParam.put("EFFECTIVE_REPAIR_STATUS", "Not In Effect"); // 有效维修状态 inParam.put("PART_REVISION_LOCK", "Not locked"); // 版本锁 inParam.put("PART_REVISION_REPORT", "No Report"); // 版本报告 inParam.put("PART_REVISION_STATUS", "Not decided"); // 版本状态 inParam.put("PART_REVISION_USAGE", "Unlimited"); // 版本使用 //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_REVISION_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_REVISION_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } /** * @description: 修改库存件的版本 * @author LR * @date 2024/12/11 11:23 * @version 1.0 */ public static Map modifyInventoryPartRevision(Server srv, InventoryPartRevision inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId(); String ifsRowVersion = inData.getIfsRowVersion(); String revisionText = inData.getRevisionText(); String effPhaseInDate = inData.getEffPhaseInDate().substring(0, 10)+"-00.00.00"; String effPhaseOutDate = inData.getEffPhaseOutDate(); //是否存在有效值 if(effPhaseOutDate == null || effPhaseOutDate.equals("")) { effPhaseOutDate = ""; }else { effPhaseOutDate = effPhaseOutDate.substring(0, 10)+"-00.00.00"; } String engRevision = inData.getEngRevision(); String engRevisionDesc = inData.getEngRevisionDesc(); //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); inParam.put("REVISION_TEXT", revisionText); // 版本备注 inParam.put("EFF_PHASE_IN_DATE", effPhaseInDate); // 启用日期 inParam.put("EFF_PHASE_OUT_DATE", effPhaseOutDate); // 过期日期 inParam.put("ENG_REVISION", engRevision); // ENG_REVISION inParam.put("ENG_REVISION_DESC", engRevisionDesc); // 版本描述 //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_REVISION_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_REVISION_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } /** * @description: 删除库存件的版本信息 * @author LR * @date 2024/12/11 11:25 * @version 1.0 */ public static void removeInventoryPartRevision(Server srv, InventoryPartRevision inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId(); String ifsRowVersion = inData.getIfsRowVersion(); //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); //执行存储过程 获取结果集 //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_REVISION_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_REVISION_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam); } /** * @description: 查询库存件属性模版 * @author LR * @date 2024/12/11 11:35 * @version 1.0 */ public static Map getInventoryPartCharacteristicTemplate(Server srv, String contract, String partNo) throws APException { StringBuilder searchSql = new StringBuilder(); searchSql.append("SELECT CONTRACT, PART_NO partNo, eng_attribute, OBJID ifsRowId, OBJVERSION ifsRowVersion"); searchSql.append(" FROM IFSAPP.INVENTORY_PART"); searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo"); //设置查询的入参 Map inParam = new HashMap<>(); inParam.put("contract", contract); inParam.put("partNo", partNo); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 if (recordCollection == null) { return null; } else { Record recordData = recordCollection.get(0); Map resultMap = IfsConverterToMap.ConverterIfsToMap(recordData); return resultMap; } } /** * @description: 修改库存件的属性模版 * @author LR * @date 2024/12/11 11:42 * @version 1.0 */ public static Map modifyInventoryPartCharacteristicTemplate(Server srv, CharacteristicTemplate inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId(); String ifsRowVersion = inData.getIfsRowVersion(); String engAttribute = inData.getEngAttribute(); //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); inParam.put("ENG_ATTRIBUTE", engAttribute); //执行存储过程 获取结果集 //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } /** * @description: 获取库存件的属性 * @author LR * @date 2024/12/11 14:24 * @version 1.0 */ public static Map getInventoryPartCharacteristicCode(Server srv, String contract, String partNo, String characteristicCode) throws APException { StringBuilder searchSql = new StringBuilder(); searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, CHARACTERISTIC_CODE,"); searchSql.append(" ifsapp.CHARACTERISTIC_API.Get_Description(CHARACTERISTIC_CODE) characteristicDesc,"); searchSql.append(" ATTR_VALUE_NUMERIC, ATTR_VALUE_ALPHA, UNIT_MEAS"); searchSql.append(" FROM ifsapp.INVENTORY_PART_CHAR_ALL"); searchSql.append(" WHERE CONTRACT = :contract and PART_NO = :partNo AND CHARACTERISTIC_CODE = :characteristicCode"); //设置查询的入参 Map inParam = new HashMap<>(); inParam.put("contract", contract); inParam.put("partNo", partNo); inParam.put("characteristicCode", characteristicCode); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 if (recordCollection == null) { return null; } else { Record recordData = recordCollection.get(0); Map resultMap = IfsConverterToMap.ConverterIfsToMap(recordData); return resultMap; } } /** * @description: 查询库存件的属性集合 * @author LR * @date 2024/12/11 14:27 * @version 1.0 */ public static List getInventoryPartCharacteristicCodes(Server srv, String contract, String partNo) throws APException { StringBuilder searchSql = new StringBuilder(); searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, CHARACTERISTIC_CODE,"); searchSql.append(" ifsapp.CHARACTERISTIC_API.Get_Description(CHARACTERISTIC_CODE) characteristicDesc,"); searchSql.append(" ATTR_VALUE_NUMERIC, ATTR_VALUE_ALPHA, UNIT_MEAS"); searchSql.append(" FROM ifsapp.INVENTORY_PART_CHAR_ALL"); searchSql.append(" WHERE CONTRACT = :contract and PART_NO = :partNo"); //设置查询的入参 Map inParam = new HashMap<>(); inParam.put("contract", contract); inParam.put("partNo", partNo); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 if (recordCollection == null) { return null; } else { List resultItems = new ArrayList<>(); List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); //判断是否存在数据 if(resultList == null) { return resultItems; } //获取数据转bean for (int i = 0; i < resultList.size(); i++) { Map tempMap = resultList.get(i); CharacteristicCode tempItem = new CharacteristicCode(); //设置参数 tempItem.setIfsRowId(tempMap.get("IFSROWID")); tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION")); tempItem.setContract(tempMap.get("CONTRACT")); tempItem.setPartNo(tempMap.get("PART_NO")); tempItem.setCharacteristicCode(tempMap.get("CHARACTERISTIC_CODE")); tempItem.setCharacteristicDesc(tempMap.get("CHARACTERISTICDESC")); // 这个是通过函数获取的描述 tempItem.setAttrValueNumeric(tempMap.get("ATTR_VALUE_NUMERIC")); tempItem.setAttrValueAlpha(tempMap.get("ATTR_VALUE_ALPHA")); tempItem.setUnitMeas(tempMap.get("UNIT_MEAS")); //添加对象 resultItems.add(tempItem); } return resultItems; } } /** * @description: 插入库存件的属性 * @author LR * @date 2024/12/11 14:31 * @version 1.0 */ public static Map insertInventoryPartCharacteristicCode(Server srv, CharacteristicCode inData) throws APException { //公共参数 String contract = inData.getContract(); String partNo = inData.getPartNo().toUpperCase(); String characteristicCode = inData.getCharacteristicCode(); String unitMeas = inData.getUnitMeas(); String attrValueNumeric = inData.getAttrValueNumeric(); String attrValueAlpha = inData.getAttrValueAlpha(); String characteristicType = inData.getCharacteristicType(); //入参 Map inParam = new HashMap<>(); inParam.put("OBJID", ""); inParam.put("OBJVERSION", ""); inParam.put("CONTRACT", contract); inParam.put("PART_NO", partNo); inParam.put("CHARACTERISTIC_CODE", characteristicCode); inParam.put("UNIT_MEAS", unitMeas); //区分类型 if ("Alpha".equals(characteristicType)) { inParam.put("ATTR_VALUE_ALPHA", attrValueAlpha); } else if ("Numeric".equals(characteristicType)) { inParam.put("ATTR_VALUE_NUMERIC", attrValueNumeric); } //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_CHAR_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_CHAR_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } /** * @description: 修改库存件的属性 * @author LR * @date 2024/12/11 14:37 * @version 1.0 */ public static Map modifyInventoryPartCharacteristicCode(Server srv, CharacteristicCode inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId(); String ifsRowVersion = inData.getIfsRowVersion(); String attrValueNumeric = inData.getAttrValueNumeric(); String attrValueAlpha = inData.getAttrValueAlpha(); String characteristicType = inData.getCharacteristicType(); //入参 Map inParam = new HashMap<>(); inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); //区分类型 if ("Alpha".equals(characteristicType)) { inParam.put("ATTR_VALUE_ALPHA", attrValueAlpha); } else if ("Numeric".equals(characteristicType)) { inParam.put("ATTR_VALUE_NUMERIC", attrValueNumeric); } //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_CHAR_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_CHAR_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } /** * @description: 删除库存件的属性 * @author LR * @date 2024/12/11 14:38 * @version 1.0 */ public static Map removeInventoryPartCharacteristic(Server srv, CharacteristicCode inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId(); String ifsRowVersion = inData.getIfsRowVersion(); //入参 Map inParam = new HashMap<>(); inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_CHAR_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_CHAR_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } /** * @description: 获取copy part的事件编码 * @author LR * @date 2024/12/9 15:56 * @version 1.0 */ public static Map getCopyPartEventNo(Server srv) throws APException { //填充参数 List inParams = new ArrayList<>(); List outParams = new ArrayList<>(); //设置入参和出参 inParams.add(new IfsParamBean("DEFAULT", "TEXT", "FALSE")); outParams.add(new IfsParamBean("EVENT_NO", "NUMBER", "")); //调用特殊的存储过程 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "Part_Copy_Manager_Partca_API", "Generate_Copy_Event_Parameters", inParams, outParams); //返回结果集 return resultMap; } /** * @description: 执行查询的sql语句 获取明细的数据 * @author LR * @date 2024/12/9 16:35 * @version 1.0 */ public static List getCopyPartItemsByEventNo(Server srv, String eventNo) throws APException { StringBuilder searchSql = new StringBuilder(); searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, ENABLED_DB, CANCEL_WHEN_NO_SOURCE_DB, CANCEL_WHEN_EXISTING_COPY_DB,"); searchSql.append(" ifsapp.Part_Copy_Module_Dataset_API.Get_Dataset_Description(MODULE, DATASET_ID) copyDesc, DATASET_ID, MODULE"); searchSql.append(" FROM ifsapp.PART_COPY_EVENT_PARAMETER_EXT"); searchSql.append(" WHERE EVENT_NO = :eventNo"); searchSql.append(" ORDER BY EXECUTION_ORDER, PRESENTATION_ORDER"); //设置查询的入参 Map inParam = new HashMap<>(); inParam.put("eventNo", eventNo); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 if (recordCollection == null) { return null; } else { List resultItems = new ArrayList<>(); //调用通用的处理方法 返回Map List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); //获取数据转bean for (int i = 0; i < resultList.size(); i++) { Map tempMap = resultList.get(i); CopyPartItem tempItem = new CopyPartItem(); //设置参数 tempItem.setIfsRowId(tempMap.get("IFSROWID")); tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION")); tempItem.setCopyDesc(tempMap.get("COPYDESC")); //添加对象 resultItems.add(tempItem); } return resultItems; } } /** * @description: 修改Copy Part的选项 * @author LR * @date 2024/12/9 17:13 * @version 1.0 */ public static void modifyIfsCopyPartItem(Server srv, String ifsRowId, String ifsRowVersion, String enabledDb, String cancelWhenExistingCopyDb) throws APException { Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); inParam.put("ENABLED_DB", enabledDb); inParam.put("CANCEL_WHEN_NO_SOURCE_DB", "FALSE"); inParam.put("CANCEL_WHEN_EXISTING_COPY_DB", cancelWhenExistingCopyDb); //执行存储过程 获取结果集 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_COPY_EVENT_PARAMETER_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam); } /** * @description: 处理库存件的 Copy Part功能 * @author LR * @date 2024/12/10 17:53 * @version 1.0 */ public static void processIfsCopyPart(Server srv, String oriContract, String oriPartNo, String contract, String partNo, String partDesc, String jobFalse, String eventNo) throws APException { //填充参数 List inParams = new ArrayList<>(); List outParams = new ArrayList<>(); //设置入参和出参 inParams.add(new IfsParamBean("FROM_CONTRACT", "TEXT", oriContract)); inParams.add(new IfsParamBean("FROM_PART_NO", "TEXT", oriPartNo)); inParams.add(new IfsParamBean("TO_CONTRACT", "TEXT", contract)); inParams.add(new IfsParamBean("TO_PART_NO", "TEXT", partNo)); inParams.add(new IfsParamBean("TO_PART_DESC", "TEXT", partDesc)); inParams.add(new IfsParamBean("IS_BACKGROUND_JOB", "TEXT", jobFalse)); inParams.add(new IfsParamBean("EVENT_NO", "TEXT", eventNo)); //调用特殊的存储过程 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "Part_Copy_Manager_Partca_API", "Copy", inParams, outParams); } }