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.
 
 
 
 
 
 

1382 lines
68 KiB

package com.spring.ifs.api;
import com.spring.ifs.utils.IfsConverterToMap;
import com.spring.ifs.utils.IfsPlsqlUtils;
import com.spring.modules.base.utils.DateUtils;
import com.spring.modules.part.entity.APIEntity.*;
import ifs.fnd.ap.*;
import java.math.BigDecimal;
import java.util.*;
/**
* @description: Routing的api
* @author LR
* @date 2024/12/9 10:56
* @version 1.0
*/
public class RoutingApi {
/**
* @description: 查询Routing Header
* @author LR
* @date 2024/12/11 14:45
* @version 1.0
*/
public static Map<String, String> getRoutingHeader(Server srv, String contract, String partNo, String routingRevision, String routingType) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, BOM_TYPE routingType, ROUTING_REVISION,");
searchSql.append(" PHASE_IN_DATE, PHASE_OUT_DATE, NOTE_TEXT");
searchSql.append(" FROM IFSAPP.ROUTING_HEAD");
searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("contract", contract);
inParam.put("partNo", partNo);
inParam.put("routingRevision", routingRevision);
inParam.put("routingType", routingType);
//调用查询的通用方法
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: 查询Routing的主表数据
* @author LR
* @date 2024/12/12 17:48
* @version 1.0
*/
public static List<RoutingIfsHeader> getRoutingHeadersByPartNo(Server srv, String contract, String partNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, BOM_TYPE, ROUTING_REVISION,");
searchSql.append(" PHASE_IN_DATE, PHASE_OUT_DATE, NOTE_TEXT");
searchSql.append(" FROM IFSAPP.ROUTING_HEAD");
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 new ArrayList<>();
} else {
List<RoutingIfsHeader> resultItems = new ArrayList<>();
//调用通用的处理方法 返回Map
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);
RoutingIfsHeader tempItem = new RoutingIfsHeader();
//设置参数
tempItem.setIfsRowId(tempMap.get("IFSROWID"));
tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
tempItem.setContract(tempMap.get("CONTRACT"));
tempItem.setPartNo(tempMap.get("PART_NO"));
tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
tempItem.setPhaseInDate(tempMap.get("PHASE_IN_DATE")); // 如果 PHASE_IN_DATE 是日期类型,请确保进行适当的类型转换
tempItem.setPhaseOutDate(tempMap.get("PHASE_OUT_DATE")); //
tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
//添加对象
resultItems.add(tempItem);
}
return resultItems;
}
}
/**
* @description: 插入Bom Header的主表
* @author LR
* @date 2024/12/11 15:08
* @version 1.0
*/
public static Map<String, String> insertRoutingHeader(Server srv, RoutingIfsHeader inData) throws APException {
//公共参数
//公共参数
String contract = inData.getContract();// 域
String partNo = inData.getPartNo();// 物料编码
String routingRevision = inData.getRoutingRevision();// 版本
String routingType = inData.getRoutingType();
String phaseInDate = inData.getPhaseInDate().substring(0, 10)+"-00.00.00";// 启用时间-年月日
String phaseOutDate = inData.getPhaseOutDate();// 结束时间-年月日
if(phaseOutDate == null || phaseOutDate.equals("")) {
phaseOutDate = "";
}else {
phaseOutDate = phaseOutDate+"-00.00.00";
}
String noteText = inData.getNoteText();// 备注
//入参
Map<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", "");
inParam.put("OBJVERSION", "");
inParam.put("PART_NO", partNo); // 物料编码
inParam.put("CONTRACT", contract); // 域
inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
inParam.put("BOM_TYPE", routingType); // routing类型
inParam.put("PHASE_IN_DATE", phaseInDate); // 启用日期
inParam.put("PHASE_OUT_DATE", phaseOutDate); // 到期时间
inParam.put("NOTE_TEXT", noteText); // 备注
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 修改Bom Header的主表信息
* @author LR
* @date 2024/12/11 15:32
* @version 1.0
*/
public static Map<String, String> modifyRoutingHeader(Server srv, RoutingIfsHeader inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();//
String ifsRowVersion = inData.getIfsRowVersion();//
//判断是否存在问题
String phaseInDate = inData.getPhaseInDate().substring(0, 10)+"-00.00.00";// 启用时间-年月日
String phaseOutDate = inData.getPhaseOutDate();// 结束时间-年月日
if(phaseOutDate == null || phaseOutDate.equals("")) {
phaseOutDate = "";
}else {
phaseOutDate = phaseOutDate+"-00.00.00";
}
String noteText = inData.getNoteText();// 备注
//入参
Map<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", ifsRowId);
inParam.put("OBJVERSION", ifsRowVersion);
inParam.put("PHASE_IN_DATE", phaseInDate); // 启用日期
inParam.put("PHASE_OUT_DATE", phaseOutDate); // 到期时间
inParam.put("NOTE_TEXT", noteText); // 备注
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 删除Bom的主表信息
* @author LR
* @date 2024/12/11 15:33
* @version 1.0
*/
public static Map<String, String> removeRoutingHeader(Server srv, RoutingIfsHeader 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, "ROUTING_HEAD_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 查询Bom的替代
* @author LR
* @date 2024/12/11 14:48
* @version 1.0
*/
public static Map<String, String> getRoutingAlternative(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, BOM_TYPE routingType, ROUTING_REVISION, STATE,");
searchSql.append(" ALTERNATIVE_NO, NOTE_TEXT");
searchSql.append(" FROM IFSAPP.ROUTING_ALTERNATE");
searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType AND ALTERNATIVE_NO = :alternativeNo");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("contract", contract);
inParam.put("partNo", partNo);
inParam.put("routingRevision", routingRevision);
inParam.put("routingType", routingType);
inParam.put("alternativeNo", alternativeNo);
//调用查询的通用方法
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: 插入Bom Alternative
* @author LR
* @date 2024/12/11 15:45
* @version 1.0
*/
public static Map<String, String> insertRoutingAlternative(Server srv, RoutingIfsAlternative inData) throws APException {
//公共参数
//公共参数
String contract = inData.getContract();// 域
String partNo = inData.getPartNo();// 物料编码
String routingRevision = inData.getRoutingRevision();// 版本
String routingType = inData.getRoutingType();// 分类
String alternativeNo = inData.getAlternativeNo();
String alternativeDesc = inData.getAlternativeDesc();
String noteText = inData.getNoteText();// 备注
//入参
Map<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", "");
inParam.put("OBJVERSION", "");
inParam.put("PART_NO", partNo); // 物料编码
inParam.put("CONTRACT", contract); // 域
inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
inParam.put("BOM_TYPE", routingType); // BOM类型
inParam.put("ALTERNATIVE_NO", alternativeNo); // 替代编码
inParam.put("ALTERNATIVE_DESCRIPTION", alternativeDesc); // 替代编码描述
inParam.put("FIXED_LEADTIME_DAY", "0"); // 固定值
inParam.put("VARIABLE_LEADTIME_DAY", "0"); // 固定值
inParam.put("FIXED_LEADTIME_HOUR", "0"); // 固定值
inParam.put("VARIABLE_LEADTIME_HOUR", "0"); // 固定值
inParam.put("NOTE_TEXT", noteText); // 备注
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 修改Routing Alternative
* @author LR
* @date 2024/12/11 15:47
* @version 1.0
*/
public static Map<String, String> modifyRoutingAlternative(Server srv, RoutingIfsAlternative inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();//
String ifsRowVersion = inData.getIfsRowVersion();//
String alternativeDesc = inData.getAlternativeDesc();
String noteText = inData.getNoteText();// 备注
//入参
Map<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", ifsRowId);
inParam.put("OBJVERSION", ifsRowVersion);
inParam.put("ALTERNATIVE_DESCRIPTION", alternativeDesc); // 替代编码描述
inParam.put("NOTE_TEXT", noteText); // 备注
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 删除Routing Alternative
* @author LR
* @date 2024/12/11 15:51
* @version 1.0
*/
public static void removeRoutingAlternative(Server srv, RoutingIfsAlternative 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, "ROUTING_ALTERNATE_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
}
/**
* @description: Build Routing Alternative
* @author LR
* @date 2024/12/11 15:53
* @version 1.0
*/
public static Map<String, String> buildRoutingAlternative(Server srv, RoutingIfsAlternative 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, "ROUTING_ALTERNATE_API",
"BUILD__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
"BUILD__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: retire Routing Alternative
* @author LR
* @date 2024/12/11 15:55
* @version 1.0
*/
public static Map<String, String> retireRoutingAlternative(Server srv, RoutingIfsAlternative 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, "ROUTING_ALTERNATE_API",
"RETIRE__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
"RETIRE__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 获取Routing Item
* @author LR
* @date 2024/12/11 16:12
* @version 1.0
*/
public static Map<String, String> getRoutingItem(Server srv, String ifsRowId, String ifsRowVersion) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE routingType,");
searchSql.append(" ALTERNATIVE_NO, OPERATION_NO, OPERATION_ID");
searchSql.append(" FROM IFSAPP.ROUTING_OPERATION");
searchSql.append(" WHERE OBJID = :ifsRowId");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("ifsRowId", ifsRowId);
inParam.put("ifsRowVersion", ifsRowVersion);
//调用查询的通用方法
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: 获取Routing Items
* @author LR
* @date 2024/12/11 16:16
* @version 1.0
*/
public static List<Map<String, String>> getRoutingItemMaps(Server srv, String contract, String partNo, String routingRevision, String routingType,
String alternativeNo, String operationNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE, ALTERNATIVE_NO,");
searchSql.append(" OPERATION_NO, OPERATION_DESCRIPTION operationDesc, WORK_CENTER_NO, EFFICIENCY_FACTOR, MACH_SETUP_TIME,");
searchSql.append(" MACH_RUN_FACTOR, RUN_TIME_CODE, LABOR_RUN_FACTOR, LABOR_SETUP_TIME, CREW_SIZE, SETUP_CREW_SIZE,");
searchSql.append(" OPERATION_ID, MACHINE_NO, OUTSIDE_OP_ITEM, LABOR_CLASS_NO, SETUP_LABOR_CLASS_NO,");
searchSql.append(" OVERLAP, NOTE_TEXT, objid ifsRowId, objversion ifsRowVersion");
searchSql.append(" FROM ifsapp.ROUTING_OPERATION");
searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType");
searchSql.append(" AND ALTERNATIVE_NO = :alternativeNo");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("contract", contract);
inParam.put("partNo", partNo);
inParam.put("routingRevision", routingRevision);
inParam.put("routingType", routingType);
inParam.put("alternativeNo", alternativeNo);
//添加判断的查询条件
if(!(null == operationNo || "".equals(operationNo))) {
searchSql.append(" AND OPERATION_NO = :operationNo");
inParam.put("operationNo", operationNo);
}
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return new ArrayList<>();
} else {
List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
return resultList;
}
}
/**
* @description: 查询Routing Item
* @author LR
* @date 2024/12/13 13:35
* @version 1.0
*/
public static List<RoutingIfsItem> getRoutingItems(Server srv, String contract, String partNo, String routingRevision, String routingType,
String alternativeNo, String operationNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE, ALTERNATIVE_NO,");
searchSql.append(" OPERATION_NO, OPERATION_DESCRIPTION, WORK_CENTER_NO, EFFICIENCY_FACTOR, MACH_SETUP_TIME,");
searchSql.append(" MACH_RUN_FACTOR, RUN_TIME_CODE, LABOR_RUN_FACTOR, LABOR_SETUP_TIME, CREW_SIZE, SETUP_CREW_SIZE,");
searchSql.append(" OPERATION_ID, MACHINE_NO, OUTSIDE_OP_ITEM, LABOR_CLASS_NO, SETUP_LABOR_CLASS_NO,");
searchSql.append(" OVERLAP, NOTE_TEXT, objid ifsRowId, objversion ifsRowVersion");
searchSql.append(" FROM ifsapp.ROUTING_OPERATION");
searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType");
searchSql.append(" AND ALTERNATIVE_NO = :alternativeNo");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("contract", contract);
inParam.put("partNo", partNo);
inParam.put("routingRevision", routingRevision);
inParam.put("routingType", routingType);
inParam.put("alternativeNo", alternativeNo);
//添加判断的查询条件
if(!(null == operationNo || "".equals(operationNo))) {
searchSql.append(" AND OPERATION_NO = :operationNo");
inParam.put("operationNo", operationNo);
}
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return new ArrayList<>();
} else {
List<RoutingIfsItem> 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);
RoutingIfsItem tempItem = new RoutingIfsItem();
//设置参数
tempItem.setIfsRowId(tempMap.get("IFSROWID"));
tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
tempItem.setContract(tempMap.get("CONTRACT"));
tempItem.setPartNo(tempMap.get("PART_NO"));
tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO"));
tempItem.setOperationNo(tempMap.get("OPERATION_NO"));
tempItem.setOperationDesc(tempMap.get("OPERATION_DESCRIPTION"));
tempItem.setWorkCenterNo(tempMap.get("WORK_CENTER_NO"));
tempItem.setEfficiencyFactor(tempMap.get("EFFICIENCY_FACTOR"));
tempItem.setMachSetupTime(tempMap.get("MACH_SETUP_TIME"));
tempItem.setMachRunFactor(tempMap.get("MACH_RUN_FACTOR"));
tempItem.setRunTimeCode(tempMap.get("RUN_TIME_CODE"));
tempItem.setLaborRunFactor(tempMap.get("LABOR_RUN_FACTOR"));
tempItem.setLaborSetupTime(tempMap.get("LABOR_SETUP_TIME"));
tempItem.setCrewSize(tempMap.get("CREW_SIZE"));
tempItem.setSetupCrewSize(tempMap.get("SETUP_CREW_SIZE"));
tempItem.setOperationId(tempMap.get("OPERATION_ID"));
tempItem.setMachineNo(tempMap.get("MACHINE_NO"));
tempItem.setOutsideOpItem(tempMap.get("OUTSIDE_OP_ITEM"));
tempItem.setLaborClassNo(tempMap.get("LABOR_CLASS_NO"));
tempItem.setSetupLaborClassNo(tempMap.get("SETUP_LABOR_CLASS_NO"));
tempItem.setOverlap(tempMap.get("OVERLAP"));
tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
//添加对象
resultItems.add(tempItem);
}
return resultItems;
}
}
/**
* @description: 仅仅copy part 赋值使用
* @author LR
* @date 2025/5/21 15:56
* @version 1.0
*/
public static List<RoutingIfsItem> getRoutingItemsWithCopyPart(Server srv, String contract, String partNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE, ALTERNATIVE_NO,");
searchSql.append(" OPERATION_NO, OPERATION_DESCRIPTION, WORK_CENTER_NO, EFFICIENCY_FACTOR, MACH_SETUP_TIME,");
searchSql.append(" MACH_RUN_FACTOR, RUN_TIME_CODE, LABOR_RUN_FACTOR, LABOR_SETUP_TIME, CREW_SIZE, SETUP_CREW_SIZE,");
searchSql.append(" OPERATION_ID, MACHINE_NO, OUTSIDE_OP_ITEM, LABOR_CLASS_NO, SETUP_LABOR_CLASS_NO,");
searchSql.append(" OVERLAP, NOTE_TEXT, objid ifsRowId, objversion ifsRowVersion");
searchSql.append(" FROM ifsapp.ROUTING_OPERATION");
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 new ArrayList<>();
} else {
List<RoutingIfsItem> 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);
RoutingIfsItem tempItem = new RoutingIfsItem();
//设置参数
tempItem.setIfsRowId(tempMap.get("IFSROWID"));
tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO"));
tempItem.setOperationNo(tempMap.get("OPERATION_NO"));
tempItem.setOperationDesc(tempMap.get("OPERATION_DESCRIPTION"));
tempItem.setWorkCenterNo(tempMap.get("WORK_CENTER_NO"));
tempItem.setEfficiencyFactor(tempMap.get("EFFICIENCY_FACTOR"));
tempItem.setMachSetupTime(tempMap.get("MACH_SETUP_TIME"));
tempItem.setMachRunFactor(tempMap.get("MACH_RUN_FACTOR"));
tempItem.setRunTimeCode(tempMap.get("RUN_TIME_CODE"));
tempItem.setLaborRunFactor(tempMap.get("LABOR_RUN_FACTOR"));
tempItem.setLaborSetupTime(tempMap.get("LABOR_SETUP_TIME"));
tempItem.setCrewSize(tempMap.get("CREW_SIZE"));
tempItem.setSetupCrewSize(tempMap.get("SETUP_CREW_SIZE"));
tempItem.setOperationId(tempMap.get("OPERATION_ID"));
tempItem.setMachineNo(tempMap.get("MACHINE_NO"));
tempItem.setOutsideOpItem(tempMap.get("OUTSIDE_OP_ITEM"));
tempItem.setLaborClassNo(tempMap.get("LABOR_CLASS_NO"));
tempItem.setSetupLaborClassNo(tempMap.get("SETUP_LABOR_CLASS_NO"));
tempItem.setOverlap(tempMap.get("OVERLAP"));
tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
tempItem.setContract(tempMap.get("CONTRACT"));
tempItem.setPartNo(tempMap.get("PART_NO"));
//添加对象
resultItems.add(tempItem);
}
return resultItems;
}
}
/**
* @description: 插入Routing Item
* @author LR
* @date 2024/12/11 16:17
* @version 1.0
*/
public static Map<String, String> insertRoutingItem(Server srv, RoutingIfsItem inData) throws APException {
//公共参数
String contract = inData.getContract();// 域
String partNo = inData.getPartNo();// 物料编码
String routingRevision = inData.getRoutingRevision();// 版本
String routingType = inData.getRoutingType();// 分类
String alternativeNo = inData.getAlternativeNo();
String operationNo = inData.getOperationNo();
String operationDesc = inData.getOperationDesc();
String workCenterNo = inData.getWorkCenterNo();//
String efficiencyFactor = inData.getEfficiencyFactor();
String machSetupTime = inData.getMachSetupTime();
String machRunFactor = inData.getMachRunFactor();
String runTimeCode = inData.getRunTimeCode();
String laborRunFactor = inData.getLaborRunFactor();
String laborSetupTime = inData.getLaborSetupTime();
String crewSize = inData.getCrewSize();
String setupCrewSize = inData.getSetupCrewSize();
String machineNo = inData.getMachineNo();
String noteText = inData.getNoteText();
String outsideOpItem = inData.getOutsideOpItem();
String laborClassNo = inData.getLaborClassNo();
String setupLaborClassNo = inData.getSetupLaborClassNo();
String overlap = "0";
String createDate = DateUtils.getStringDate(new Date(), "yyyy-MM-dd")+"-00.00.00";
//入参
Map<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", "");
inParam.put("OBJVERSION", "");
inParam.put("PART_NO", partNo); // 物料编码
inParam.put("CONTRACT", contract); // 域
inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
inParam.put("BOM_TYPE", routingType); // BOM类型
inParam.put("ALTERNATIVE_NO", alternativeNo); // 替代编码
inParam.put("OPERATION_NO", operationNo); // 工序
inParam.put("OPERATION_DESCRIPTION", operationDesc); // 工序描述
inParam.put("LOT_QTY", "1"); // 默认值
inParam.put("WORK_CENTER_NO", workCenterNo); // 加工中心
inParam.put("MACHINE_NO", machineNo); // 机台
inParam.put("EFFICIENCY_FACTOR", efficiencyFactor); // 效率
inParam.put("MACH_SETUP_TIME", machSetupTime); // 机器调机时间
inParam.put("MACH_RUN_FACTOR", machRunFactor); // 机器效率
inParam.put("RUN_TIME_CODE", runTimeCode); // 运行编码
inParam.put("MOVE_TIME", "0"); // 固定值
inParam.put("LABOR_RUN_FACTOR", laborRunFactor); // 人员运行效率
inParam.put("LABOR_SETUP_TIME", laborSetupTime); // 人员调机时间
inParam.put("CREW_SIZE", crewSize); // 生产过程所需人数
inParam.put("SETUP_CREW_SIZE", setupCrewSize); // 调机过程所需人数
inParam.put("NOTE_TEXT", noteText); // 备注
inParam.put("OUTSIDE_OP_ITEM", outsideOpItem); // 外协料号
inParam.put("LABOR_CLASS_NO", laborClassNo); // 人员等级
inParam.put("SETUP_LABOR_CLASS_NO", setupLaborClassNo); // 调机人员等级
inParam.put("OVERLAP", overlap); // OVERLAP
// 固定的数值
inParam.put("FIXED_RESOURCE_SHARE", "1"); // 固定值
inParam.put("PARALLEL_OPERATION", "Not parallel"); // 固定值
inParam.put("MILESTONE_OPERATION_DB", "FALSE"); // 固定值
inParam.put("INCREASE_LOTSIZE_ON_SCRAP_DB", "FALSE"); // 固定值
inParam.put("OVERLAP_UNIT", "Units"); // 固定值
inParam.put("INCLUDE_SETUP_FOR_OVERLAP_DB", "N"); // 固定值
inParam.put("OUTSIDE_OP_SUPPLY_TYPE", "Purchase Requisition"); // 固定值
inParam.put("OUTSIDE_OP_BACKFLUSH", "Disallowed"); // 固定值
inParam.put("SEND_TO_NEXT_SUPPLIER_DB", "FALSE"); // 固定值
inParam.put("OPERATION_USAGE_FACTOR", "1"); // 固定值
inParam.put("PHASE_IN_DATE", createDate); // 固定值
inParam.put("PHASE_OUT_DATE", ""); // 固定值
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 修改 Routing Item
* @author LR
* @date 2024/12/11 16:22
* @version 1.0
*/
public static Map<String, String> modifyRoutingItem(Server srv, RoutingIfsItem inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();// 域
String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
String operationNo = inData.getOperationNo();
String operationDesc = inData.getOperationDesc();
String workCenterNo = inData.getWorkCenterNo();//
String efficiencyFactor = inData.getEfficiencyFactor();
String machSetupTime = inData.getMachSetupTime();
String machRunFactor = inData.getMachRunFactor();
String runTimeCode = inData.getRunTimeCode();
String laborRunFactor = inData.getLaborRunFactor();
String laborSetupTime = inData.getLaborSetupTime();
String crewSize = inData.getCrewSize();
String setupCrewSize = inData.getSetupCrewSize();
String machineNo = inData.getMachineNo();
String noteText = inData.getNoteText();
String outsideOpItem = inData.getOutsideOpItem();
String laborClassNo = inData.getLaborClassNo();
String setupLaborClassNo = inData.getSetupLaborClassNo();
String overlap = "0";
//入参
Map<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", ifsRowId);
inParam.put("OBJVERSION", ifsRowVersion);
inParam.put("OPERATION_NO", operationNo); // 工序
inParam.put("OPERATION_DESCRIPTION", operationDesc); // 工序描述
inParam.put("WORK_CENTER_NO", workCenterNo); // 加工中心
inParam.put("MACHINE_NO", machineNo); // 机台
inParam.put("EFFICIENCY_FACTOR", efficiencyFactor); // 效率
inParam.put("MACH_SETUP_TIME", machSetupTime); // 机器调机时间
inParam.put("MACH_RUN_FACTOR", machRunFactor); // 机器效率
inParam.put("RUN_TIME_CODE", runTimeCode); // 运行编码
inParam.put("MOVE_TIME", "0"); // 固定值
inParam.put("LABOR_RUN_FACTOR", laborRunFactor); // 人员运行效率
inParam.put("LABOR_SETUP_TIME", laborSetupTime); // 人员调机时间
inParam.put("CREW_SIZE", crewSize); // 生产过程所需人数
inParam.put("SETUP_CREW_SIZE", setupCrewSize); // 调机过程所需人数
inParam.put("NOTE_TEXT", noteText); // 备注
inParam.put("OUTSIDE_OP_ITEM", outsideOpItem); // 外协料号
inParam.put("LABOR_CLASS_NO", laborClassNo); // 人员等级
inParam.put("SETUP_LABOR_CLASS_NO", setupLaborClassNo); // 调机人员等级
inParam.put("OVERLAP", overlap); // OVERLAP
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 删除 Routing Item
* @author LR
* @date 2024/12/11 16:24
* @version 1.0
*/
public static Map<String, String> removeRoutingItem(Server srv, RoutingIfsItem 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, "ROUTING_OPERATION_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 查询Routing Tool
* @author LR
* @date 2024/12/11 16:27
* @version 1.0
*/
public static Map<String, String> getRoutingTool(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo,
String toolId) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE routingType,");
searchSql.append(" ALTERNATIVE_NO, OPERATION_NO, TOOL_ID, TOOL_QUANTITY, NOTE_TEXT");
searchSql.append(" FROM IFSAPP.ROUTING_OPERATION_TOOL");
searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType AND ALTERNATIVE_NO = :alternativeNo");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("contract", contract);
inParam.put("partNo", partNo);
inParam.put("routingRevision", routingRevision);
inParam.put("routingType", routingType);
inParam.put("alternativeNo", alternativeNo);
//添加判断的查询条件
if(!(null == toolId || "".equals(toolId))) {
searchSql.append(" AND TOOL_ID = :toolId");
inParam.put("toolId", toolId);
}
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return null;
} else {
Record record = recordCollection.get(0);
Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(record);
return resultMap;
}
}
/**
* @description: copy part 使用的查询方法
* @author LR
* @date 2025/5/21 16:02
* @version 1.0
*/
public static List<RoutingIfsTool> getRoutingToolsWithCopyPart(Server srv, String contract, String partNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE, ALTERNATIVE_NO, OPERATION_NO,");
searchSql.append(" TOOL_ID, TOOL_QUANTITY, OBJID ifsRowId, OBJVERSION ifsRowVersion, NOTE_TEXT");
searchSql.append(" FROM IFSAPP.ROUTING_OPERATION_TOOL");
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 new ArrayList<>();
} else {
List<RoutingIfsTool> resultItems = new ArrayList<>();
//调用通用的处理方法 返回Map
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);
RoutingIfsTool tempItem = new RoutingIfsTool();
//设置参数
tempItem.setIfsRowId(tempMap.get("IFSROWID"));
tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
tempItem.setContract(tempMap.get("CONTRACT"));
tempItem.setPartNo(tempMap.get("PART_NO"));
tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO"));
BigDecimal itemValue = new BigDecimal(tempMap.get("TOOL_QUANTITY"));
itemValue = itemValue.setScale(0, BigDecimal.ROUND_HALF_UP);
itemValue = itemValue.stripTrailingZeros();
String formatterValue = itemValue.toPlainString();
tempItem.setToolQuantity(formatterValue);
tempItem.setOperationNo(tempMap.get("OPERATION_NO")); //
tempItem.setToolId(tempMap.get("TOOL_ID")); //
tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
//添加对象
resultItems.add(tempItem);
}
return resultItems;
}
}
/**
* @description: 同步数据查询routing 工具
* @author LR
* @date 2025/7/4 16:34
* @version 1.0
*/
public static List<RoutingIfsTool> getRoutingToolsForSync(Server srv, String contract, String partNo, String routingRevision,
String routingType, String alternativeNo, String operationNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE, ALTERNATIVE_NO, OPERATION_NO,");
searchSql.append(" TOOL_ID, TOOL_QUANTITY, OBJID ifsRowId, OBJVERSION ifsRowVersion, NOTE_TEXT");
searchSql.append(" FROM IFSAPP.ROUTING_OPERATION_TOOL");
searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision");
searchSql.append(" AND BOM_TYPE = :routingType AND ALTERNATIVE_NO = :alternativeNo");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("contract", contract);
inParam.put("partNo", partNo);
inParam.put("routingRevision", routingRevision);
inParam.put("routingType", routingType);
inParam.put("alternativeNo", alternativeNo);
//添加判断的查询条件
if(!(null == operationNo || "".equals(operationNo))) {
searchSql.append(" AND OPERATION_NO = :operationNo");
inParam.put("operationNo", operationNo);
}
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return new ArrayList<>();
} else {
List<RoutingIfsTool> resultItems = new ArrayList<>();
//调用通用的处理方法 返回Map
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);
RoutingIfsTool tempItem = new RoutingIfsTool();
//设置参数
tempItem.setIfsRowId(tempMap.get("IFSROWID"));
tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
tempItem.setContract(tempMap.get("CONTRACT"));
tempItem.setPartNo(tempMap.get("PART_NO"));
tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO"));
tempItem.setOperationNo(tempMap.get("OPERATION_NO")); //
tempItem.setToolId(tempMap.get("TOOL_ID")); //
tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
BigDecimal itemValue = new BigDecimal(tempMap.get("TOOL_QUANTITY"));
itemValue = itemValue.setScale(0, BigDecimal.ROUND_HALF_UP);
itemValue = itemValue.stripTrailingZeros();
String formatterValue = itemValue.toPlainString();
tempItem.setToolQuantity(formatterValue);
//添加对象
resultItems.add(tempItem);
}
return resultItems;
}
}
/**
* @description: 查询Routing Tool的所有信息
* @author LR
* @date 2024/12/11 16:30
* @version 1.0
*/
public static List<Map<String, String>> getRoutingTools(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE routingType,");
searchSql.append(" ALTERNATIVE_NO, OPERATION_NO, TOOL_ID, TOOL_QUANTITY, NOTE_TEXT");
searchSql.append(" FROM IFSAPP.ROUTING_OPERATION_TOOL");
searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType AND ALTERNATIVE_NO = :alternativeNo");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("contract", contract);
inParam.put("partNo", partNo);
inParam.put("routingRevision", routingRevision);
inParam.put("routingType", routingType);
inParam.put("alternativeNo", alternativeNo);
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return new ArrayList<>();
} else {
List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
return resultList;
}
}
/**
* @description: 新增 Routing Tool信息
* @author LR
* @date 2024/12/11 16:47
* @version 1.0
*/
public static Map<String, String> insertRoutingTool(Server srv, RoutingIfsTool inData) throws APException {
//公共参数
String contract = inData.getContract();// 域
String partNo = inData.getPartNo();// 物料编码
String routingRevision = inData.getRoutingRevision();// 版本
String routingType = inData.getRoutingType();// 分类
String alternativeNo = inData.getAlternativeNo();
String operationNo = inData.getOperationNo();
String operationId = inData.getOperationId();
String toolId = inData.getToolId();
String toolQuantity = inData.getToolQuantity();
String noteText = inData.getNoteText();
//入参
Map<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", "");
inParam.put("OBJVERSION", "");
inParam.put("CONTRACT", contract); // 域
inParam.put("PART_NO", partNo); // 物料编码
inParam.put("BOM_TYPE", routingType); // BOM类型
inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
inParam.put("ALTERNATIVE_NO", alternativeNo); // 替代编码
inParam.put("OPERATION_NO", operationNo); // 工序
inParam.put("OPERATION_ID", operationId); // 工序ID
inParam.put("TOOL_ID", toolId); // 工具编码
inParam.put("TOOL_QUANTITY", toolQuantity); // 工具数量
inParam.put("NOTE_TEXT", noteText); // 备注
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 修改 Routing Tool
* @author LR
* @date 2024/12/11 17:47
* @version 1.0
*/
public static Map<String, String> modifyRoutingTool(Server srv, RoutingIfsTool inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();// 域
String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
String toolId = inData.getToolId();
String toolQuantity = inData.getToolQuantity();
String noteText = inData.getNoteText();
//入参
Map<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", ifsRowId);
inParam.put("OBJVERSION", ifsRowVersion);
inParam.put("TOOL_ID", toolId); // 工具编码
inParam.put("TOOL_QUANTITY", toolQuantity); // 工具数量
inParam.put("NOTE_TEXT", noteText); // 备注
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 删除 Routing Tool
* @author LR
* @date 2024/12/11 17:50
* @version 1.0
*/
public static Map<String, String> removeRoutingTool(Server srv, RoutingIfsTool 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, "ROUTING_OPERATION_TOOL_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 查询Routing Tool
* @author LR
* @date 2024/12/11 16:27
* @version 1.0
*/
public static Map<String, String> getRoutingGuideLine(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo,
String operationId, String guidelineSeq) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, GUIDELINE_SEQ guidelineSeq,");
searchSql.append(" GUIDELINE_DESC guidelineDesc, GUIDELINE_TEXT guidelineText");
searchSql.append(" FROM IFSAPP.ROUTING_OPER_WORK_GUIDE");
searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType");
searchSql.append(" AND ALTERNATIVE_NO = :alternativeNo AND OPERATION_ID = :operationId");
searchSql.append(" AND GUIDELINE_SEQ = :guidelineSeq");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("contract", contract);
inParam.put("partNo", partNo);
inParam.put("routingRevision", routingRevision);
inParam.put("routingType", routingType);
inParam.put("alternativeNo", alternativeNo);
inParam.put("operationId", operationId);
inParam.put("guidelineSeq", guidelineSeq);
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return null;
} else {
Record record = recordCollection.get(0);
Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(record);
return resultMap;
}
}
/**
* @description: 查询Routing Tool的所有信息
* @author LR
* @date 2024/12/11 16:30
* @version 1.0
*/
public static List<Map<String, String>> getRoutingGuideLines(Server srv, String contract, String partNo, String routingRevision, String routingType,
String alternativeNo, String operationId) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, GUIDELINE_SEQ guidelineSeq,");
searchSql.append(" GUIDELINE_DESC guidelineDesc, GUIDELINE_TEXT guidelineText");
searchSql.append(" FROM IFSAPP.ROUTING_OPER_WORK_GUIDE");
searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType");
searchSql.append(" AND ALTERNATIVE_NO = :alternativeNo AND OPERATION_ID = :operationId");
searchSql.append(" AND GUIDELINE_SEQ = :guidelineSeq");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("contract", contract);
inParam.put("partNo", partNo);
inParam.put("routingRevision", routingRevision);
inParam.put("routingType", routingType);
inParam.put("alternativeNo", alternativeNo);
inParam.put("operationId", operationId);
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return new ArrayList<>();
} else {
List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
return resultList;
}
}
/**
* @description: 查询RoutingIfsGuideLine 集合
* @author LR
* @date 2025/5/21 15:42
* @version 1.0
*/
public static List<RoutingIfsGuideLine> getRoutingGuideLinesWithCopyPart(Server srv, String contract, String partNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT rog.CONTRACT, rog.PART_NO, rog.ROUTING_REVISION, rog.BOM_TYPE, rog.ALTERNATIVE_NO, rot.OPERATION_NO, rog.GUIDELINE_NO,");
searchSql.append(" rog.GUIDELINE_SEQ, rog.OBJID ifsRowId, rog.OBJVERSION ifsRowVersion");
searchSql.append(" FROM IFSAPP.ROUTING_OPER_WORK_GUIDE rog");
searchSql.append(" LEFT JOIN IFSAPP.ROUTING_OPERATION rot");
searchSql.append(" ON rot.CONTRACT = rog.CONTRACT AND rot.PART_NO = rog.PART_NO AND rot.ROUTING_REVISION = rog.ROUTING_REVISION ");
searchSql.append(" AND rot.BOM_TYPE = rog.BOM_TYPE AND rot.ALTERNATIVE_NO = rog.ALTERNATIVE_NO AND rot.OPERATION_ID = rog.OPERATION_ID");
searchSql.append(" WHERE rog.CONTRACT = :contract AND rog.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 new ArrayList<>();
} else {
List<RoutingIfsGuideLine> resultItems = new ArrayList<>();
//调用通用的处理方法 返回Map
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);
RoutingIfsGuideLine tempItem = new RoutingIfsGuideLine();
//设置参数
tempItem.setIfsRowId(tempMap.get("IFSROWID"));
tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
tempItem.setContract(tempMap.get("CONTRACT"));
tempItem.setPartNo(tempMap.get("PART_NO"));
tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO"));
tempItem.setOperationNo(tempMap.get("OPERATION_NO")); //
tempItem.setGuidelineSeq(tempMap.get("GUIDELINE_SEQ"));
tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
//添加对象
resultItems.add(tempItem);
}
return resultItems;
}
}
public static List<RoutingIfsGuideLine> getRoutingGuideLinesForSync(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo, String operationNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT rog.CONTRACT, rog.PART_NO, rog.ROUTING_REVISION, rog.BOM_TYPE, rog.ALTERNATIVE_NO, rot.OPERATION_NO, rog.GUIDELINE_NO,");
//添加字段 2025-07-03 新增字段
searchSql.append(" rog.GUIDELINE_DESC, rog.GUIDELINE_TEXT, rog.OPER_WORK_GUIDE_TYPE, rog.SIGN_OFF_REQ, rog.INSPECT_SIGN_OFF_REQ,");
searchSql.append(" rog.GUIDELINE_SEQ, rog.OBJID ifsRowId, rog.OBJVERSION ifsRowVersion");
searchSql.append(" FROM IFSAPP.ROUTING_OPER_WORK_GUIDE rog");
searchSql.append(" LEFT JOIN IFSAPP.ROUTING_OPERATION rot");
searchSql.append(" ON rot.CONTRACT = rog.CONTRACT AND rot.PART_NO = rog.PART_NO AND rot.ROUTING_REVISION = rog.ROUTING_REVISION ");
searchSql.append(" AND rot.BOM_TYPE = rog.BOM_TYPE AND rot.ALTERNATIVE_NO = rog.ALTERNATIVE_NO AND rot.OPERATION_ID = rog.OPERATION_ID");
searchSql.append(" WHERE rog.CONTRACT = :contract AND rog.PART_NO = :partNo AND rog.ROUTING_REVISION = :routingRevision");
searchSql.append(" AND rog.BOM_TYPE = :routingType AND rog.ALTERNATIVE_NO = :alternativeNo");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("contract", contract);
inParam.put("partNo", partNo);
inParam.put("routingRevision", routingRevision);
inParam.put("routingType", routingType);
inParam.put("alternativeNo", alternativeNo);
//添加判断的查询条件
if(!(null == operationNo || "".equals(operationNo))) {
searchSql.append(" AND rot.OPERATION_NO = :operationNo");
inParam.put("operationNo", operationNo);
}
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return new ArrayList<>();
} else {
List<RoutingIfsGuideLine> resultItems = new ArrayList<>();
//调用通用的处理方法 返回Map
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);
RoutingIfsGuideLine tempItem = new RoutingIfsGuideLine();
//设置参数
tempItem.setIfsRowId(tempMap.get("IFSROWID"));
tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
tempItem.setContract(tempMap.get("CONTRACT"));
tempItem.setPartNo(tempMap.get("PART_NO"));
tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO"));
tempItem.setOperationNo(tempMap.get("OPERATION_NO")); //
tempItem.setGuidelineSeq(tempMap.get("GUIDELINE_SEQ"));
tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
//后加字段
tempItem.setGuidelineDesc(tempMap.get("GUIDELINE_DESC")); //
tempItem.setGuidelineText(tempMap.get("GUIDELINE_TEXT"));
tempItem.setOperWorkGuideType(tempMap.get("OPER_WORK_GUIDE_TYPE"));
tempItem.setSignOffReq(tempMap.get("SIGN_OFF_REQ"));
tempItem.setInspectSignOffReq(tempMap.get("INSPECT_SIGN_OFF_REQ"));
//添加对象
resultItems.add(tempItem);
}
return resultItems;
}
}
/**
* @description: 新增 Routing Guide Line
* @author LR
* @date 2024/12/11 16:47
* @version 1.0
*/
public static Map<String, String> insertRoutingGuideLine(Server srv, RoutingIfsGuideLine inData) throws APException {
//公共参数
String contract = inData.getContract();// 域
String partNo = inData.getPartNo();// 物料编码
String routingRevision = inData.getRoutingRevision();// 版本
String routingType = inData.getRoutingType();// 分类
String alternativeNo = inData.getAlternativeNo();
String operationId = inData.getOperationId();
String guidelineSeq = inData.getGuidelineSeq(); //
String guidelineDesc = inData.getGuidelineDesc(); //
String guidelineText = inData.getGuidelineText(); //
String operWorkGuideType = inData.getOperWorkGuideType(); //
String signOffReq = inData.getSignOffReq(); //
String inspectSignOffReq = inData.getInspectSignOffReq();//
//入参
Map<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", "");
inParam.put("OBJVERSION", "");
inParam.put("CONTRACT", contract); // 域
inParam.put("PART_NO", partNo); // 物料编码
inParam.put("BOM_TYPE", routingType); // BOM类型
inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
inParam.put("ALTERNATIVE_NO", alternativeNo); // 替代编码
inParam.put("OPERATION_ID", operationId); // 工序ID
inParam.put("REFERENCE_NUMBER", ""); // 空值
inParam.put("GUIDELINE_SEQ", guidelineSeq); // 序号
inParam.put("GUIDELINE_DESC", guidelineDesc); // 描述
inParam.put("GUIDELINE_TEXT", guidelineText); // 备注
inParam.put("OPER_WORK_GUIDE_TYPE", operWorkGuideType); // 分类
inParam.put("SIGN_OFF_REQ", signOffReq); // 签字要求
inParam.put("EMP_QUALIF_PROF_ID", ""); // 空值
inParam.put("SIGN_OFF_NOTE", ""); // 空值
inParam.put("INSPECT_SIGN_OFF_REQ", inspectSignOffReq); // 检验签字要求
inParam.put("INSP_EMP_QUALIF_PROF_ID", ""); // 空值
inParam.put("INSPECT_SIGN_OFF_NOTE", ""); // 空值
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
"NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 修改 Routing Guide Line
* @author LR
* @date 2024/12/11 17:47
* @version 1.0
*/
public static Map<String, String> modifyRoutingGuideLine(Server srv, RoutingIfsGuideLine inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();// 域
String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
String guidelineSeq = inData.getGuidelineSeq(); //
String guidelineDesc = inData.getGuidelineDesc(); //
String guidelineText = inData.getGuidelineText(); //
String operWorkGuideType = inData.getOperWorkGuideType(); //
String signOffReq = inData.getSignOffReq(); //
String inspectSignOffReq = inData.getInspectSignOffReq();//
//入参
Map<String, String> inParam = new HashMap<>();
//填充参数
inParam.put("OBJID", ifsRowId);
inParam.put("OBJVERSION", ifsRowVersion);
inParam.put("GUIDELINE_SEQ", guidelineSeq); // 序号
inParam.put("GUIDELINE_DESC", guidelineDesc); // 描述
inParam.put("GUIDELINE_TEXT", guidelineText); // 备注
inParam.put("OPER_WORK_GUIDE_TYPE", operWorkGuideType); // 分类
inParam.put("SIGN_OFF_REQ", signOffReq); // 签字要求
inParam.put("INSPECT_SIGN_OFF_REQ", inspectSignOffReq); // 检验签字
//执行check的操作
Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
"MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
/**
* @description: 删除 Routing Guide Line
* @author LR
* @date 2024/12/11 17:50
* @version 1.0
*/
public static Map<String, String> removeRoutingGuideLine(Server srv, RoutingIfsGuideLine 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, "ROUTING_OPER_WORK_GUIDE_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
//执行do的操作
Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
"REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
//返回结果集
return resultMap;
}
}