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