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.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 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 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 resultMap = IfsConverterToMap.ConverterIfsToMap(recordData); return resultMap; } } /** * @description: 查询Routing的主表数据 * @author LR * @date 2024/12/12 17:48 * @version 1.0 */ public static List 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 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 resultItems = new ArrayList<>(); //调用通用的处理方法 返回Map List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); //判断是否存在数据 if(resultList == null) { return resultItems; } //获取数据转bean for (int i = 0; i < resultList.size(); i++) { Map 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 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 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 checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 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 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 checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 removeRoutingHeader(Server srv, RoutingIfsHeader inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId(); String ifsRowVersion = inData.getIfsRowVersion(); //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 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,"); 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 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 resultMap = IfsConverterToMap.ConverterIfsToMap(recordData); return resultMap; } } /** * @description: 插入Bom Alternative * @author LR * @date 2024/12/11 15:45 * @version 1.0 */ public static Map 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 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 checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 modifyRoutingAlternative(Server srv, RoutingIfsAlternative inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId();// String ifsRowVersion = inData.getIfsRowVersion();// String alternativeDesc = inData.getAlternativeDesc(); String noteText = inData.getNoteText();// 备注 //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); inParam.put("ALTERNATIVE_DESCRIPTION", alternativeDesc); // 替代编码描述 inParam.put("NOTE_TEXT", noteText); // 备注 //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 buildRoutingAlternative(Server srv, RoutingIfsAlternative inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId();// 域 String ifsRowVersion = inData.getIfsRowVersion();// 物料编码 //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API", "BUILD__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 retireRoutingAlternative(Server srv, RoutingIfsAlternative inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId();// 域 String ifsRowVersion = inData.getIfsRowVersion();// 物料编码 //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API", "RETIRE__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 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 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 resultMap = IfsConverterToMap.ConverterIfsToMap(recordData); return resultMap; } } /** * @description: 获取Routing Items * @author LR * @date 2024/12/11 16:16 * @version 1.0 */ public static List> 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 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> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); return resultList; } } /** * @description: 查询Routing Item * @author LR * @date 2024/12/13 13:35 * @version 1.0 */ public static List 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 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 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 resultItems = new ArrayList<>(); //调用通用的处理方法 返回Map List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); //获取数据转bean for (int i = 0; i < resultList.size(); i++) { Map 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")); //添加对象 resultItems.add(tempItem); } return resultItems; } } /** * @description: 仅仅copy part 赋值使用 * @author LR * @date 2025/5/21 15:56 * @version 1.0 */ public static List 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 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"); //设置查询的入参 Map 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 resultItems = new ArrayList<>(); //调用通用的处理方法 返回Map List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); //获取数据转bean for (int i = 0; i < resultList.size(); i++) { Map 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")); //添加对象 resultItems.add(tempItem); } return resultItems; } } /** * @description: 插入Routing Item * @author LR * @date 2024/12/11 16:17 * @version 1.0 */ public static Map 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 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 checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 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 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 checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 removeRoutingItem(Server srv, RoutingIfsItem inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId();// String ifsRowVersion = inData.getIfsRowVersion();// //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 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 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 resultMap = IfsConverterToMap.ConverterIfsToMap(record); return resultMap; } } /** * @description: copy part 使用的查询方法 * @author LR * @date 2025/5/21 16:02 * @version 1.0 */ public static List 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 AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType AND ALTERNATIVE_NO = :alternativeNo"); //设置查询的入参 Map 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 resultItems = new ArrayList<>(); //调用通用的处理方法 返回Map List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); //判断是否存在数据 if(resultList == null) { return resultItems; } //获取数据转bean for (int i = 0; i < resultList.size(); i++) { Map 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.setNoteText(tempMap.get("NOTE_TEXT")); //添加对象 resultItems.add(tempItem); } return resultItems; } } /** * @description: 查询Routing Tool的所有信息 * @author LR * @date 2024/12/11 16:30 * @version 1.0 */ public static List> 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 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> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); return resultList; } } /** * @description: 新增 Routing Tool信息 * @author LR * @date 2024/12/11 16:47 * @version 1.0 */ public static Map 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 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 checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 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 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 checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 removeRoutingTool(Server srv, RoutingIfsTool inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId();// 域 String ifsRowVersion = inData.getIfsRowVersion();// 物料编码 //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 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 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 resultMap = IfsConverterToMap.ConverterIfsToMap(record); return resultMap; } } /** * @description: 查询Routing Tool的所有信息 * @author LR * @date 2024/12/11 16:30 * @version 1.0 */ public static List> 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 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> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); return resultList; } } /** * @description: 查询RoutingIfsGuideLine 集合 * @author LR * @date 2025/5/21 15:42 * @version 1.0 */ public static List 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_TOOL 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 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 resultItems = new ArrayList<>(); //调用通用的处理方法 返回Map List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); //判断是否存在数据 if(resultList == null) { return resultItems; } //获取数据转bean for (int i = 0; i < resultList.size(); i++) { Map 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.setNoteText(tempMap.get("NOTE_TEXT")); //添加对象 resultItems.add(tempItem); } return resultItems; } } /** * @description: 新增 Routing Guide Line * @author LR * @date 2024/12/11 16:47 * @version 1.0 */ public static Map 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 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 checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API", "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 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 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 checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API", "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map 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 removeRoutingGuideLine(Server srv, RoutingIfsGuideLine inData) throws APException { //公共参数 String ifsRowId = inData.getIfsRowId();// 域 String ifsRowVersion = inData.getIfsRowVersion();// 物料编码 //入参 Map inParam = new HashMap<>(); //填充参数 inParam.put("OBJID", ifsRowId); inParam.put("OBJVERSION", ifsRowVersion); //执行check的操作 Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam); //执行do的操作 Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API", "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam); //返回结果集 return resultMap; } }