You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1061 lines
51 KiB

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<String, String> 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<String, String> 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<String, String> 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<String, String> 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<String, String> 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<String, String> 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<String, String> 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<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> 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<String, String> 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<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", ifsRowId);
inParam.put("OBJVERSION", ifsRowVersion);
//执行存储过程 获取结果集
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> 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<String, String> 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<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordData);
return resultMap;
}
}
/**
* @description: 修改库存件的cost的信息
* @author LR
* @date 2024/12/11 10:23
* @version 1.0
*/
public static Map<String, String> modifyInventoryPartCost(Server srv, InventoryPartConfig inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();
String ifsRowVersion = inData.getIfsRowVersion();
String estimatedMaterialCost = inData.getEstimatedMaterialCost();
//入参
Map<String, String> inParam = new HashMap<>();
inParam.put("OBJID", ifsRowId);
inParam.put("OBJVERSION", ifsRowVersion);
inParam.put("ESTIMATED_MATERIAL_COST", estimatedMaterialCost); // ESTIMATED_MATERIAL_COST
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_CONFIG_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> 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<String, String> 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<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordData);
return resultMap;
}
}
/**
* @description: 修改库存件的计划
* @author LR
* @date 2024/12/11 10:44
* @version 1.0
*/
public static Map<String, String> 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<String, String> 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<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_PLANNING_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> 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<String, String> 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<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordData);
return resultMap;
}
}
/**
* @description: 插入库存件的库位信息
* @author LR
* @date 2024/12/11 10:52
* @version 1.0
*/
public static Map<String, String> 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<String, String> 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<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_DEF_LOC_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> inParam = new HashMap<>();
inParam.put("OBJID", ifsRowId);
inParam.put("OBJVERSION", ifsRowVersion);
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_DEF_LOC_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> 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<String, String> 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<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordData);
return resultMap;
}
}
/**
* @description: 修改库存件的制造商信息
* @author LR
* @date 2024/12/11 11:11
* @version 1.0
*/
public static Map<String, String> 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<String, String> 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<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "MANUF_PART_ATTRIBUTE_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> 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<String, String> 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<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordData);
return resultMap;
}
}
/**
* @description: 插入库存件的版本
* @author LR
* @date 2024/12/11 11:21
* @version 1.0
*/
public static Map<String, String> 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<String, String> 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<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_REVISION_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> 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<String, String> 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<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_REVISION_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", ifsRowId);
inParam.put("OBJVERSION", ifsRowVersion);
//执行存储过程 获取结果集
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_REVISION_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> 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<String, String> 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<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordData);
return resultMap;
}
}
/**
* @description: 修改库存件的属性模版
* @author LR
* @date 2024/12/11 11:42
* @version 1.0
*/
public static Map<String, String> modifyInventoryPartCharacteristicTemplate(Server srv, CharacteristicTemplate inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();
String ifsRowVersion = inData.getIfsRowVersion();
String engAttribute = inData.getEngAttribute();
//入参
Map<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", ifsRowId);
inParam.put("OBJVERSION", ifsRowVersion);
inParam.put("ENG_ATTRIBUTE", engAttribute);
//执行存储过程 获取结果集
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> 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<String, String> 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<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordData);
return resultMap;
}
}
/**
* @description: 查询库存件的属性集合
* @author LR
* @date 2024/12/11 14:27
* @version 1.0
*/
public static List<CharacteristicCode> 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<String, String> 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<CharacteristicCode > resultItems = new ArrayList<>();
List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
//判断是否存在数据
if(resultList == null) {
return resultItems;
}
//获取数据转bean
for (int i = 0; i < resultList.size(); i++) {
Map<String, String> 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<String, String> 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<String, String> 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<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_CHAR_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> 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<String, String> 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<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_CHAR_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> removeInventoryPartCharacteristic(Server srv, CharacteristicCode inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();
String ifsRowVersion = inData.getIfsRowVersion();
//入参
Map<String, String> inParam = new HashMap<>();
inParam.put("OBJID", ifsRowId);
inParam.put("OBJVERSION", ifsRowVersion);
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "INVENTORY_PART_CHAR_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> 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<String, String> getCopyPartEventNo(Server srv) throws APException {
//填充参数
List<IfsParamBean> inParams = new ArrayList<>();
List<IfsParamBean> outParams = new ArrayList<>();
//设置入参和出参
inParams.add(new IfsParamBean("DEFAULT", "TEXT", "FALSE"));
outParams.add(new IfsParamBean("EVENT_NO", "NUMBER", ""));
//调用特殊的存储过程
Map<String, String> 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<CopyPartItem> 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<String, String> inParam = new HashMap<>();
inParam.put("eventNo", eventNo);
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return null;
} else {
List<CopyPartItem> resultItems = new ArrayList<>();
//调用通用的处理方法 返回Map
List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
//获取数据转bean
for (int i = 0; i < resultList.size(); i++) {
Map<String, String> 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<String, String> 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<String, String> 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<IfsParamBean> inParams = new ArrayList<>();
List<IfsParamBean> 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<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv,
"Part_Copy_Manager_Partca_API", "Copy", inParams, outParams);
}
}