From 2868c94965af5fd0874a529749e0a03e62bd9936 Mon Sep 17 00:00:00 2001 From: DouDou <877258667@qq.com> Date: Mon, 16 Dec 2024 09:36:14 +0800 Subject: [PATCH] =?UTF-8?q?IFS=20jar=20=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/spring/ifs/api/MasterPartApi.java | 200 ++++ .../java/com/spring/ifs/api/RoutingApi.java | 1062 +++++++++++++++++ .../spring/ifs/bean/MasterServiceBean.java | 140 +++ .../spring/ifs/bean/RoutingServiceBean.java | 737 ++++++++++++ .../java/com/spring/ifs/data/LaborClass.java | 108 ++ .../java/com/spring/ifs/data/PartCatalog.java | 188 +++ .../spring/ifs/data/RoutingAlternative.java | 43 + .../com/spring/ifs/data/RoutingGuideLine.java | 72 ++ .../com/spring/ifs/data/RoutingHeader.java | 74 ++ .../java/com/spring/ifs/data/RoutingItem.java | 188 +++ .../java/com/spring/ifs/data/RoutingTool.java | 35 + 11 files changed, 2847 insertions(+) create mode 100644 src/main/java/com/spring/ifs/api/MasterPartApi.java create mode 100644 src/main/java/com/spring/ifs/api/RoutingApi.java create mode 100644 src/main/java/com/spring/ifs/bean/MasterServiceBean.java create mode 100644 src/main/java/com/spring/ifs/bean/RoutingServiceBean.java create mode 100644 src/main/java/com/spring/ifs/data/LaborClass.java create mode 100644 src/main/java/com/spring/ifs/data/PartCatalog.java create mode 100644 src/main/java/com/spring/ifs/data/RoutingAlternative.java create mode 100644 src/main/java/com/spring/ifs/data/RoutingGuideLine.java create mode 100644 src/main/java/com/spring/ifs/data/RoutingHeader.java create mode 100644 src/main/java/com/spring/ifs/data/RoutingItem.java create mode 100644 src/main/java/com/spring/ifs/data/RoutingTool.java diff --git a/src/main/java/com/spring/ifs/api/MasterPartApi.java b/src/main/java/com/spring/ifs/api/MasterPartApi.java new file mode 100644 index 00000000..b674ce3a --- /dev/null +++ b/src/main/java/com/spring/ifs/api/MasterPartApi.java @@ -0,0 +1,200 @@ +package com.spring.ifs.api; + +import com.spring.ifs.data.PartCatalog; +import com.spring.ifs.utils.IfsConverterToMap; +import com.spring.ifs.utils.IfsPlsqlUtils; +import ifs.fnd.ap.*; + +import java.util.HashMap; +import java.util.Map; + +/** +* @description: 处理Master业务的底层相关函数 +* @author LR +* @date 2024/12/9 10:56 +* @version 1.0 +*/ +public class MasterPartApi { + + /** + * @description: 获取Master part的相关信息 + * @author LR + * @date 2024/12/9 11:13 + * @version 1.0 + */ + public static Map getMasterPart(Server srv, String partNo) throws APException { + StringBuilder searchSql = new StringBuilder(); + searchSql.append("SELECT PART_NO, DESCRIPTION partDesc, objid ifsRowId, objversion ifsRowVersion"); + searchSql.append(" FROM IFSAPP.PART_CATALOG"); + searchSql.append(" WHERE PART_NO = :partNo"); + //设置查询的入参 + Map inParam = new HashMap<>(); + inParam.put("partNo", partNo); + //调用查询的通用方法 + Record resultRecord = IfsPlsqlUtils.execSqlSearchGetRecord(srv, searchSql, inParam); + //判断能否返回 + if (resultRecord == null) { + return null; + } else { + //调用通用的处理方法 返回Map + Map resultMap = IfsConverterToMap.ConverterIfsToMap(resultRecord); + return resultMap; + } + } + + /** + * @description: 执行库存件的新增操作 + * @author LR + * @date 2024/12/10 17:59 + * @version 1.0 + */ + public static Map insertMasterPart(Server srv, PartCatalog inData) throws APException { + //公共参数 + String partNo = inData.getPartNo().toUpperCase(); + String partDesc = inData.getPartDesc(); + String unitCode = inData.getUnitCode(); + String partMainGroup = inData.getPartMainGroup(); + String weightNet = inData.getWeightNet(); + String uomForWeightNet = inData.getUomForWeightNet(); + String volumeNet = inData.getVolumeNet(); + String uomForVolumeNet = inData.getUomForVolumeNet(); + String conditionCodeUsageDb = inData.getConditionCodeUsageDb(); + String multilevelTrackingDb = inData.getMultilevelTrackingDb(); + String allowAsNotConsumedDb = inData.getAllowAsNotConsumedDb(); + String lotTrackingCode = inData.getLotTrackingCode(); + String lotQuantityRule = inData.getLotQuantityRule(); + String subLotRule = inData.getSubLotRule(); + String componentLotRule = inData.getComponentLotRule(); + String infoText = inData.getInfoText(); + //入参 + Map inParam = new HashMap<>(); + //填充参数 + inParam.put("PART_NO", partNo); + inParam.put("DESCRIPTION", partDesc); + inParam.put("UNIT_CODE", unitCode); + inParam.put("STD_NAME_ID", "0"); + inParam.put("PART_MAIN_GROUP", partMainGroup); + inParam.put("WEIGHT_NET", weightNet); + inParam.put("UOM_FOR_WEIGHT_NET", uomForWeightNet); + inParam.put("VOLUME_NET", volumeNet); + inParam.put("UOM_FOR_VOLUME_NET", uomForVolumeNet); + inParam.put("FREIGHT_FACTOR", "1"); + inParam.put("POSITION_PART_DB", "NOT POSITION PART"); + inParam.put("CONDITION_CODE_USAGE_DB", conditionCodeUsageDb); + inParam.put("CONFIGURABLE_DB", "NOT CONFIGURED"); + inParam.put("CATCH_UNIT_ENABLED_DB", "FALSE"); + inParam.put("MULTILEVEL_TRACKING_DB", multilevelTrackingDb); + inParam.put("ALLOW_AS_NOT_CONSUMED_DB", allowAsNotConsumedDb); + inParam.put("RECEIPT_ISSUE_SERIAL_TRACK_DB", "FALSE"); + inParam.put("SERIAL_TRACKING_CODE_DB", "NOT SERIAL TRACKING"); + inParam.put("ENG_SERIAL_TRACKING_CODE_DB", "NOT SERIAL TRACKING"); + inParam.put("STOP_ARRIVAL_ISSUED_SERIAL_DB", "FALSE"); + inParam.put("STOP_NEW_SERIAL_IN_RMA_DB", "TRUE"); + inParam.put("SERIAL_RULE", "Manual"); + inParam.put("LOT_TRACKING_CODE", lotTrackingCode); + inParam.put("LOT_QUANTITY_RULE", lotQuantityRule); + inParam.put("SUB_LOT_RULE", subLotRule); + inParam.put("COMPONENT_LOT_RULE", componentLotRule); + inParam.put("INFO_TEXT", infoText); + inParam.put("OBJID", ""); + inParam.put("OBJVERSION", ""); + //执行存储过程 获取结果集 + //执行check的操作 + Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API", + "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam); + //执行do的操作 + Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API", + "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam); + //返回结果集 + return resultMap; + } + + /** + * @description: 修改物料件的数据 + * @author LR + * @date 2024/12/11 9:24 + * @version 1.0 + */ + public static Map modifyMasterPart(Server srv, PartCatalog inData) throws APException { + //公共参数 + String ifsRowId = inData.getIfsRowId(); + String ifsRowVersion = inData.getIfsRowVersion(); + String partDesc = inData.getPartDesc(); + String unitCode = inData.getUnitCode(); + String partMainGroup = inData.getPartMainGroup(); + String weightNet = inData.getWeightNet(); + String uomForWeightNet = inData.getUomForWeightNet(); + String volumeNet = inData.getVolumeNet(); + String uomForVolumeNet = inData.getUomForVolumeNet(); + String conditionCodeUsageDb = inData.getConditionCodeUsageDb(); + String multilevelTrackingDb = inData.getMultilevelTrackingDb(); + String allowAsNotConsumedDb = inData.getAllowAsNotConsumedDb(); + String lotTrackingCode = inData.getLotTrackingCode(); + String lotQuantityRule = inData.getLotQuantityRule(); + String subLotRule = inData.getSubLotRule(); + String componentLotRule = inData.getComponentLotRule(); + String infoText = inData.getInfoText(); + //入参 + Map inParam = new HashMap<>(); + //填充参数 + inParam.put("OBJID", ifsRowId); + inParam.put("OBJVERSION", ifsRowVersion); + inParam.put("DESCRIPTION", partDesc); // 物料描述 + inParam.put("UNIT_CODE", unitCode); // 单位 + inParam.put("PART_MAIN_GROUP", partMainGroup); // PART_MAIN_GROUP + inParam.put("WEIGHT_NET", weightNet); // 净重 + inParam.put("UOM_FOR_WEIGHT_NET", uomForWeightNet); // 净重单位 + inParam.put("VOLUME_NET", volumeNet); // 体积 + inParam.put("UOM_FOR_VOLUME_NET", uomForVolumeNet); // 体积单位 + inParam.put("CONDITION_CODE_USAGE_DB", conditionCodeUsageDb); // CONDITION_CODE_USAGE_DB + inParam.put("MULTILEVEL_TRACKING_DB", multilevelTrackingDb); // MULTILEVEL_TRACKING_DB + inParam.put("ALLOW_AS_NOT_CONSUMED_DB", allowAsNotConsumedDb); // ALLOW_AS_NOT_CONSUMED_DB + inParam.put("LOT_TRACKING_CODE", lotTrackingCode); // 批次跟踪代码 + inParam.put("LOT_QUANTITY_RULE", lotQuantityRule); // LOT_QUANTITY_RULE + inParam.put("SUB_LOT_RULE", subLotRule); // SUB_LOT_RULE + inParam.put("COMPONENT_LOT_RULE", componentLotRule); // COMPONENT_LOT_RULE + inParam.put("INFO_TEXT", infoText); // 备注 + //执行存储过程 获取结果集 + //执行check的操作 + Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API", + "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); + //执行do的操作 + Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API", + "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam); + //返回结果集 + return resultMap; + } + + /** + * @description: 删除物料件 + * @author LR + * @date 2024/12/11 10:01 + * @version 1.0 + */ + public static void removeMasterPart(Server srv, PartCatalog inData) throws APException { + //公共参数 + String ifsRowId = inData.getIfsRowId(); + String ifsRowVersion = inData.getIfsRowVersion(); + //入参 + Map inParam = new HashMap<>(); + //填充参数 + inParam.put("OBJID", ifsRowId); + inParam.put("OBJVERSION", ifsRowVersion); + //执行存储过程 获取结果集 + //执行check的操作 + Map checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API", + "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam); + //执行do的操作 + Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API", + "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam); + } + + + + + + + + + +} diff --git a/src/main/java/com/spring/ifs/api/RoutingApi.java b/src/main/java/com/spring/ifs/api/RoutingApi.java new file mode 100644 index 00000000..f71755ab --- /dev/null +++ b/src/main/java/com/spring/ifs/api/RoutingApi.java @@ -0,0 +1,1062 @@ +package com.spring.ifs.api; + +import com.spring.ifs.data.*; +import com.spring.ifs.utils.IfsConverterToMap; +import com.spring.ifs.utils.IfsPlsqlUtils; +import com.spring.modules.base.utils.DateUtils; +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 null; + } 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); + RoutingHeader tempItem = new RoutingHeader(); + //设置参数 + 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, RoutingHeader 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, RoutingHeader 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, RoutingHeader 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, RoutingAlternative 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, RoutingAlternative 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, RoutingAlternative 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, RoutingAlternative 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", + "PLAN__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam); + //执行do的操作 + Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API", + "PLAN__", 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, RoutingAlternative 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 AND OBJVERSION = :ifsRowVersion"); + + //设置查询的入参 + 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 null; + } 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 null; + } else { + List resultItems = new ArrayList<>(); + //调用通用的处理方法 返回Map + List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); + //获取数据转bean + for (int i = 0; i < resultList.size(); i++) { + Map tempMap = resultList.get(i); + RoutingItem tempItem = new RoutingItem(); + //设置参数 + 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, RoutingItem 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, RoutingItem 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, RoutingItem 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 OPERATION_NO = :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: 查询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 null; + } 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, RoutingTool 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, RoutingTool 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, RoutingTool 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 null; + } else { + List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); + return resultList; + } + } + + /** + * @description: 新增 Routing Guide Line + * @author LR + * @date 2024/12/11 16:47 + * @version 1.0 + */ + public static Map insertRoutingGuideLine(Server srv, RoutingGuideLine 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, RoutingGuideLine 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, RoutingGuideLine 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; + } + + +} diff --git a/src/main/java/com/spring/ifs/bean/MasterServiceBean.java b/src/main/java/com/spring/ifs/bean/MasterServiceBean.java new file mode 100644 index 00000000..caedb97f --- /dev/null +++ b/src/main/java/com/spring/ifs/bean/MasterServiceBean.java @@ -0,0 +1,140 @@ +package com.spring.ifs.bean; + +import com.alibaba.fastjson.JSON; +import com.spring.ifs.api.IfsServer; +import com.spring.ifs.api.MasterPartApi; +import com.spring.ifs.data.PartCatalog; +import ifs.fnd.ap.APException; +import ifs.fnd.ap.Server; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** +* @description: 物料件的实现类 +* @author LR +* @date 2024/12/9 11:49 +* @version 1.0 +*/ +@Component +public class MasterServiceBean { + + @Autowired + private IfsServer ifsServer; + private static final Logger logger = LoggerFactory.getLogger(MasterServiceBean.class); + + /** + * @description: 查询物料件的信息 + * @author LR + * @date 2024/12/9 13:28 + * @version 1.0 + */ + public Map getMasterPart(PartCatalog inData) throws APException { + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String partNo = inData.getPartNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //获取参数 + Map resultMap = MasterPartApi.getMasterPart(srv, partNo); + //判断是否存在 + if(null == resultMap) { + throw new RuntimeException("当前物料件不存在!"); + } + return resultMap; + } + + /** + * @description: master part 新增 + * @author LR + * @date 2024/12/12 15:33 + * @version 1.0 + */ + public PartCatalog syncPartCatalog(PartCatalog inData) throws APException { + logger.info("Part Catalog 新增开始:"+ JSON.toJSONString(inData)); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String partNo = inData.getPartNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + Map partMap = MasterPartApi.getMasterPart(srv, partNo); + //判断是否需要插入到ifs + if(partMap == null || partMap.size() == 0) { + Map resultMap = MasterPartApi.insertMasterPart(srv, inData); + //设置ifs 信息 + inData.setIfsRowId(resultMap.get("OBJID")); + inData.setIfsRowVersion(resultMap.get("OBJVERSION")); + }else { + throw new RuntimeException("物料件已存在!"); + } + //打印日志 + logger.info("Part Catalog 新增结束:"+JSON.toJSONString(inData)); + //返回结果集 + return inData; + } + + /** + * @description: 调用修改的方法 + * @author LR + * @date 2024/12/12 15:40 + * @version 1.0 + */ + public PartCatalog modifyPartCatalog(PartCatalog inData) throws APException { + logger.info("Part Catalog 修改开始:"+JSON.toJSONString(inData)); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String partNo = inData.getPartNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + Map partMap = MasterPartApi.getMasterPart(srv, partNo); + //判断是否需要插入到ifs + if(partMap == null && partMap.size() == 0) { + throw new RuntimeException("物料件不存在!"); + }else { + //设置ifs 信息 + inData.setIfsRowId(partMap.get("IFSROWID")); + inData.setIfsRowVersion(partMap.get("IFSROWVERSION")); + Map resultMap = MasterPartApi.modifyMasterPart(srv, inData); + //设置ifs 信息 + inData.setIfsRowVersion(resultMap.get("OBJVERSION")); + } + logger.info("Part Catalog 修改结束:"+JSON.toJSONString(inData)); + //返回结果集 + return inData; + } + + /** + * @description: 调用删除的方法 + * @author LR + * @date 2024/12/12 15:40 + * @version 1.0 + */ + public void removePartCatalog(PartCatalog inData) throws APException { + logger.info("Part Catalog 删除开始:"+JSON.toJSONString(inData)); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String partNo = inData.getPartNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + Map partMap = MasterPartApi.getMasterPart(srv, partNo); + //判断是否需要插入到ifs + if(partMap == null && partMap.size() == 0) { + throw new RuntimeException("物料件不存在!"); + }else { + //设置ifs 信息 + inData.setIfsRowId(partMap.get("IFSROWID")); + inData.setIfsRowVersion(partMap.get("IFSROWVERSION")); + MasterPartApi.removeMasterPart(srv, inData); + } + logger.info("Part Catalog 删除结束:"+JSON.toJSONString(inData)); + } + + +} diff --git a/src/main/java/com/spring/ifs/bean/RoutingServiceBean.java b/src/main/java/com/spring/ifs/bean/RoutingServiceBean.java new file mode 100644 index 00000000..dafecbd3 --- /dev/null +++ b/src/main/java/com/spring/ifs/bean/RoutingServiceBean.java @@ -0,0 +1,737 @@ +package com.spring.ifs.bean; + +import com.alibaba.fastjson.JSON; +import com.spring.ifs.api.RoutingApi; +import com.spring.ifs.api.IfsServer; +import com.spring.ifs.data.*; +import ifs.fnd.ap.APException; +import ifs.fnd.ap.Server; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** +* @description: 处理 Routing的 +* @author LR +* @date 2024/12/9 15:44 +* @version 1.0 +*/ +@Component +public class RoutingServiceBean { + + @Autowired + private IfsServer ifsServer; + + private static final Logger logger = LoggerFactory.getLogger(RoutingServiceBean.class); + + /** + * @description: 查询Routing Header + * @author LR + * @date 2024/12/12 15:49 + * @version 1.0 + */ + public RoutingHeader getRoutingHeader(RoutingHeader inData) throws APException { + logger.info("Routing Header查询参数:"+JSON.toJSONString(inData)); + //查询的参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询相关 + Map routingMap = RoutingApi.getRoutingHeader(srv, contract, partNo, routingRevision, routingType); + //判断是否需要插入到ifs + if(routingMap == null || routingMap.size() == 0) { + throw new RuntimeException("Routing Header不存在!"); + } + //设置ifs 信息 + inData.setIfsRowId(routingMap.get("IFSROWID")); + inData.setIfsRowVersion(routingMap.get("IFSROWVERSION")); + //打印日志 + logger.info("Routing Header查询:"+JSON.toJSONString(inData)); + return inData; + } + + /** + * @description: Routing Header新增 + * @author LR + * @date 2024/12/12 15:52 + * @version 1.0 + */ + public RoutingHeader syncRoutingHeader(RoutingHeader inData) throws APException { + logger.info("Routing新增开始:"+JSON.toJSONString(inData)); + //查询的参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询相关 + Map routingMap = RoutingApi.getRoutingHeader(srv, contract, partNo, routingRevision, routingType); + //判断是否需要插入到ifs + if(routingMap != null && routingMap.size() > 0) { + throw new RuntimeException("Routing已存在!"); + } + + //调用api + Map resultMap = RoutingApi.insertRoutingHeader(srv, inData); + //设置ifs 信息 + inData.setIfsRowId(resultMap.get("IFSROWID")); + inData.setIfsRowVersion(resultMap.get("IFSROWVERSION")); + //打印日志 + logger.info("Routing新增结束:"+JSON.toJSONString(inData)); + //返回结果集 + return inData; + } + + /** + * @description: Routing Header修改 + * @author LR + * @date 2024/12/12 15:55 + * @version 1.0 + */ + public RoutingHeader modifyRoutingHeader(RoutingHeader inData) throws APException { + logger.info("Routing修改开始:"+JSON.toJSONString(inData)); + //查询的参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询相关 + Map routingMap = RoutingApi.getRoutingHeader(srv, contract, partNo, routingRevision, routingType); + //判断是否需要插入到ifs + if(routingMap == null || routingMap.size() == 0) { + throw new RuntimeException("Routing不存在!"); + } + //设置ifs 信息 + inData.setIfsRowId(routingMap.get("IFSROWID")); + inData.setIfsRowVersion(routingMap.get("IFSROWVERSION")); + Map resultMap = RoutingApi.modifyRoutingHeader(srv, inData); + //设置ifs 信息 + inData.setIfsRowVersion(resultMap.get("IFSROWVERSION")); + //打印日志 + logger.info("Routing修改结束:"+JSON.toJSONString(inData)); + //返回结果 + return inData; + } + + /** + * @description: Routing Header删除 + * @author LR + * @date 2024/12/12 15:58 + * @version 1.0 + */ + public void removeRoutingHeader(RoutingHeader inData) throws APException { + logger.info("Routing Header删除开始:"+JSON.toJSONString(inData)); + //查询的参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询相关 + Map routingMap = RoutingApi.getRoutingHeader(srv, contract, partNo, routingRevision, routingType); + //判断是否需要插入到ifs + if(routingMap == null || routingMap.size() == 0) { + throw new RuntimeException("Routing不存在!"); + } + //设置ifs 信息 + inData.setIfsRowId(routingMap.get("IFSROWID")); + inData.setIfsRowVersion(routingMap.get("IFSROWVERSION")); + RoutingApi.removeRoutingHeader(srv, inData); + //打印日志 + logger.info("Routing Header 删除结束:"+JSON.toJSONString(inData)); + } + + /** + * @description: 查询Routing Alternative + * @author LR + * @date 2024/12/12 16:59 + * @version 1.0 + */ + public RoutingAlternative getRoutingAlternative(RoutingAlternative inData) throws APException { + logger.info("Routing Alternative 查询开始:"+JSON.toJSONString(inData)); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + String alternativeNo = inData.getAlternativeNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询Alternative信息 + Map alternativeMap = RoutingApi.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Routing Alternative 不存在!"); + } + //设置ifs 信息 + inData.setIfsRowId(alternativeMap.get("IFSROWID")); + inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION")); + //打印日志 + logger.info("Routing Alternative 查询结束:"+JSON.toJSONString(inData)); + return inData; + } + + /** + * @description: 插入Routing Alternative + * @author LR + * @date 2024/12/12 17:03 + * @version 1.0 + */ + public RoutingAlternative syncRoutingAlternative(RoutingAlternative inData) throws APException { + logger.info("Routing Alternative 新增开始:"+JSON.toJSONString(inData)); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + String alternativeNo = inData.getAlternativeNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询Alternative信息 + Map alternativeMap = RoutingApi.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap != null && alternativeMap.size() > 0) { + throw new RuntimeException("Routing Alternative 已存在!"); + } + //调用新增api + Map resultMap = RoutingApi.insertRoutingAlternative(srv, inData); + //设置ifs 信息 + inData.setIfsRowId(resultMap.get("IFSROWID")); + inData.setIfsRowVersion(resultMap.get("IFSROWVERSION")); + //打印日志 + logger.info("Routing Alternative 新增结束:"+JSON.toJSONString(inData)); + //返回结果 + return inData; + } + + /** + * @description: 修改Routing Alternative + * @author LR + * @date 2024/12/12 17:06 + * @version 1.0 + */ + public RoutingAlternative modifyRoutingAlternative(RoutingAlternative inData) throws APException { + logger.info("Routing Alternative 修改开始:"+JSON.toJSONString(inData)); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + String alternativeNo = inData.getAlternativeNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询Alternative信息 + Map alternativeMap = RoutingApi.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Routing Alternative不存在!"); + } + //设置ifs 信息 + inData.setIfsRowId(alternativeMap.get("IFSROWID")); + inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION")); + //调用api + Map resultMap = RoutingApi.modifyRoutingAlternative(srv, inData); + //设置ifs 信息 + inData.setIfsRowVersion(resultMap.get("IFSROWVERSION")); + //打印日志 + logger.info("Routing Alternative 修改结束:"+JSON.toJSONString(inData)); + //返回结果 + return inData; + } + + /** + * @description: 删除Routing Alternative + * @author LR + * @date 2024/12/12 17:07 + * @version 1.0 + */ + public void removeRoutingAlternative(RoutingAlternative inData) throws APException { + logger.info("Routing Alternative 删除开始:"+JSON.toJSONString(inData)); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + String alternativeNo = inData.getAlternativeNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询Alternative信息 + Map alternativeMap = RoutingApi.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Routing Alternative不存在!"); + } + //设置ifs 信息 + inData.setIfsRowId(alternativeMap.get("IFSROWID")); + inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION")); + //调用api + RoutingApi.removeRoutingAlternative(srv, inData); + //打印日志 + logger.info("Routing Alternative 删除结束:"+JSON.toJSONString(inData)); + } + + /** + * @description: Build Routing Alternative + * @author LR + * @date 2024/12/13 9:37 + * @version 1.0 + */ + public RoutingAlternative buildRoutingAlternative(RoutingAlternative inData) throws APException { + logger.info("Routing替代Build开始:"+JSON.toJSONString(inData)); + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + String alternativeNo = inData.getAlternativeNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询Alternative信息 + Map alternativeMap = RoutingApi.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Routing Alternative不存在!"); + } + //设置ifs 信息 + inData.setIfsRowId(alternativeMap.get("IFSROWID")); + inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION")); + //调用删除方法 + Map resultMap = RoutingApi.buildRoutingAlternative(srv, inData); + //设置ifs 信息 + inData.setIfsRowVersion(resultMap.get("IFSROWVERSION")); + //打印日志 + logger.info("Routing替代Build结束:"+JSON.toJSONString(inData)); + //返回结果集 + return inData; + } + + /** + * @description: Retire Routing Alternative + * @author LR + * @date 2024/12/13 9:40 + * @version 1.0 + */ + public RoutingAlternative retireRoutingAlternative(RoutingAlternative inData) throws APException { + logger.info("Routing替代Build开始:"+JSON.toJSONString(inData)); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + String alternativeNo = inData.getAlternativeNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询Alternative信息 + Map alternativeMap = RoutingApi.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Routing Alternative不存在!"); + } + //设置ifs 信息 + inData.setIfsRowId(alternativeMap.get("IFSROWID")); + inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION")); + //调用删除方法 + Map resultMap = RoutingApi.retireRoutingAlternative(srv, inData); + //设置ifs 信息 + inData.setIfsRowVersion(resultMap.get("IFSROWVERSION")); + //打印日志 + logger.info("Routing替代Retire结束:"+JSON.toJSONString(inData)); + //返回结果集 + return inData; + } + + /** + * @description: 获取Routing 的明细 + * @author LR + * @date 2024/12/13 9:53 + * @version 1.0 + */ + public List getRoutingItems(RoutingItem inData) throws APException { + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + String alternativeNo = inData.getAlternativeNo(); + String operationNo = inData.getOperationNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询Alternative信息 + Map alternativeMap = RoutingApi.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Routing Alternative不存在!"); + } + //查询结果集 + List resultList = RoutingApi.getRoutingItems(srv, contract, partNo, routingRevision, routingType, alternativeNo, operationNo); + //判断是否查询数据 + if(resultList.size() == 0 || resultList.isEmpty()) { + throw new RuntimeException("不存在此Routing组件信息!"); + } + //打印日志 + logger.info("Routing替代明细集合结束:"+JSON.toJSONString(inData)); + //返回结果集 + return resultList; + } + + /** + * @description: 批量新增Routing Item + * @author LR + * @date 2024/12/12 17:23 + * @version 1.0 + */ + public List syncRoutingItems(List inDatas) throws APException { + logger.info("Routing替代明细集合新增开始:"+JSON.toJSONString(inDatas)); + RoutingItem inData = inDatas.get(0); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + String alternativeNo = inData.getAlternativeNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询制造商信息 + Map alternativeMap = RoutingApi.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Routing Alternative不存在!"); + } + //查询结果集 + List itemList = RoutingApi.getRoutingItems(srv, contract, partNo, routingRevision, routingType, alternativeNo, null); + //转Map + Map itemMap = itemList.stream().collect(Collectors.toMap(RoutingItem::getOperationNo, RoutingItem::getOperationNo)); + //打印日志 + logger.info("Routing替代明细集合 批量新增结束:"+JSON.toJSONString(inDatas)); + //循环判断的方法 + for(RoutingItem RoutingItem : inDatas) { + //判断是否已经存在 + String tempOperationNo = RoutingItem.getOperationNo(); + if(itemMap.containsKey(tempOperationNo)) { + throw new RuntimeException("已存在此Routing组件信息!OperationNo:"+tempOperationNo); + } + } + // 校验通过 循环调用新增的方法 + for(RoutingItem routingItem : inDatas) { + //调用api + Map tempMap = RoutingApi.insertRoutingItem(srv, routingItem); + //设置ifs 信息 + routingItem.setIfsRowId(tempMap.get("IFSROWID")); + routingItem.setIfsRowVersion(tempMap.get("IFSROWVERSION")); + } + //打印日志 + logger.info("Routing替代明细集合新增开始:"+JSON.toJSONString(inDatas)); + //返回结果集 + return inDatas; + } + + /** + * @description: 修改Routing的明细 + * @author LR + * @date 2024/12/13 10:24 + * @version 1.0 + */ + public RoutingItem modifyRoutingItem(RoutingItem inData) throws APException { + logger.info("Routing替代明细新增开始:"+JSON.toJSONString(inData)); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + String alternativeNo = inData.getAlternativeNo(); + String operationNo = inData.getOperationNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //查询制造商信息 + Map alternativeMap = RoutingApi.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Routing Alternative不存在!"); + } + //查询结果集 + List resultList = RoutingApi.getRoutingItems(srv, contract, partNo, routingRevision, routingType, alternativeNo, operationNo); + //判断是否查询数据 + if(resultList.size() == 0 || resultList.isEmpty()) { + throw new RuntimeException("不存在此Routing组件信息!"); + } + + RoutingItem RoutingItem = resultList.get(0); + //设置版本信息 + inData.setIfsRowId(RoutingItem.getIfsRowId()); + inData.setIfsRowVersion(RoutingItem.getIfsRowVersion()); + //调用修改的方法 + Map resultMap = RoutingApi.modifyRoutingItem(srv, inData); + //设置ifs 信息 + RoutingItem.setIfsRowId(resultMap.get("IFSROWID")); + RoutingItem.setIfsRowVersion(resultMap.get("IFSROWVERSION")); + //打印日志 + logger.info("Routing替代明细新增结束:"+JSON.toJSONString(inData)); + //返回结果集 + return RoutingItem; + } + + /** + * @description: 批量删除 + * @author LR + * @date 2024/12/13 10:26 + * @version 1.0 + */ + public void removeRoutingItems(List inDatas) throws APException { + logger.info("Routing 明细集合删除开始:"+JSON.toJSONString(inDatas)); + RoutingItem inData = inDatas.get(0); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + String alternativeNo = inData.getAlternativeNo(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + + //查询结果集 + List itemList = RoutingApi.getRoutingItems(srv, contract, partNo, routingRevision, routingType, alternativeNo, null); + //转Map + Map itemMap = itemList.stream().collect(Collectors.toMap(RoutingItem::getOperationNo, Function.identity())); + //打印日志 + logger.info("Routing替代明细集合 批量新增结束:"+JSON.toJSONString(inDatas)); + //循环判断的方法 + for(RoutingItem RoutingItem : inDatas) { + //判断是否已经存在 + String tempOperationNo = RoutingItem.getOperationNo(); + if(!itemMap.containsKey(tempOperationNo)) { + throw new RuntimeException("不存在此Routing组件信息!OperationNo:"+tempOperationNo); + } + } + // 校验通过 循环调用新增的方法 + for(RoutingItem routingItem : inDatas) { + //设置版本的信息 + String key = routingItem.getOperationNo(); + RoutingItem oriItem = itemMap.get(key); + routingItem.setIfsRowId(oriItem.getIfsRowId()); + routingItem.setIfsRowVersion(oriItem.getIfsRowVersion()); + //调用api + RoutingApi.removeRoutingItem(srv, routingItem); + } + //打印日志 + logger.info("Routing 明细集合删除开始:"+JSON.toJSONString(inDatas)); + } + + /** + * @description: 批量新增 Routing Tool + * @author LR + * @date 2024/12/13 10:57 + * @version 1.0 + */ + public List syncRoutingTools(List inDatas) throws APException { + logger.info("Routing Tool批量修改开始:"+JSON.toJSONString(inDatas)); + RoutingTool inData = inDatas.get(0); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + + for(RoutingTool routingTool : inDatas) { + String itemIfsRowId = routingTool.getIfsRowId(); + String itemIfsRowVersion = routingTool.getIfsRowVersion(); + //查询工序的相关信息 + Map itemMap = RoutingApi.getRoutingItem(srv, itemIfsRowId, itemIfsRowVersion); + //获取operationId = + String operationId = itemMap.get("operationId"); + routingTool.setOperationId(operationId); + //调用新增的方法 新增数据 + Map resultMap = RoutingApi.insertRoutingTool(srv, routingTool); + //设置参数 + routingTool.setIfsRowId(resultMap.get("ifsRowId")); + routingTool.setIfsRowVersion(resultMap.get("ifsRowVersion")); + //打印日志 + logger.info("RoutingIfsTool_add:"+JSON.toJSONString(routingTool)); + } + //打印日志 + logger.info("Routing Tool批量修改结束:"+JSON.toJSONString(inDatas)); + //返回结果 + return inDatas; + } + + /** + * @description: 修改 Routing Tool + * @author LR + * @date 2024/12/13 10:57 + * @version 1.0 + */ + public RoutingTool modifyRoutingTool(RoutingTool inData) throws APException { + logger.info("Routing Tool 修改:"+JSON.toJSONString(inData)); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //调用修改的方法 新增数据 + Map resultMap = RoutingApi.modifyRoutingTool(srv, inData); + //设置参数 + inData.setIfsRowVersion(resultMap.get("ifsRowVersion")); + //打印日志 + logger.info("Routing Tool修改结束:"+JSON.toJSONString(inData)); + //返回结果 + return inData; + } + + /** + * @description: 批量删除 Routing Tool + * @author LR + * @date 2024/12/13 10:57 + * @version 1.0 + */ + public List removeRoutingTools(List inDatas) throws APException { + logger.info("Routing Tool批量修改开始:"+JSON.toJSONString(inDatas)); + RoutingTool inData = inDatas.get(0); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //循环删除 + for(RoutingTool routingTool : inDatas) { + //调用新增的方法 新增数据 + RoutingApi.removeRoutingTool(srv, routingTool); + //打印日志 + logger.info("RoutingIfsTool_remove:"+JSON.toJSONString(routingTool)); + } + //打印日志 + logger.info("Routing Tool批量删除结束:"+JSON.toJSONString(inDatas)); + //返回结果 + return inDatas; + } + + /** + * @description: 批量新增 Routing Guide Line + * @author LR + * @date 2024/12/13 14:16 + * @version 1.0 + */ + public List syncRoutingGuideLines(List inDatas) throws APException { + logger.info("Routing GuideLine批量新增开始:"+JSON.toJSONString(inDatas)); + RoutingGuideLine inData = inDatas.get(0); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + + //循环调用 + for(RoutingGuideLine guideLine : inDatas) { + String itemIfsRowId = guideLine.getIfsRowId(); + String itemIfsRowVersion = guideLine.getIfsRowVersion(); + //查询工序的相关信息 + Map itemMap = RoutingApi.getRoutingItem(srv, itemIfsRowId, itemIfsRowVersion); + //获取operationId = + String operationId = itemMap.get("operationId"); + guideLine.setOperationId(operationId); + //调用新增的方法 新增数据 + Map resultMap = RoutingApi.insertRoutingGuideLine(srv, guideLine); + //设置参数 + guideLine.setIfsRowId(resultMap.get("ifsRowId")); + guideLine.setIfsRowVersion(resultMap.get("ifsRowVersion")); + //打印日志 + logger.info("RoutingIfsTool_add:"+JSON.toJSONString(guideLine)); + } + //打印日志 + logger.info("Routing Tool批量修改结束:"+JSON.toJSONString(inDatas)); + //返回结果 + return inDatas; + } + + /** + * @description: 修改Routing Guide Line + * @author LR + * @date 2024/12/13 14:22 + * @version 1.0 + */ + public RoutingGuideLine modifyRoutingGuideLine(RoutingGuideLine inData) throws APException { + logger.info("Routing GuideLine 修改:"+JSON.toJSONString(inData)); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //调用新增的方法 新增数据 + Map resultMap = RoutingApi.modifyRoutingGuideLine(srv, inData); + //设置参数 + inData.setIfsRowVersion(resultMap.get("ifsRowVersion")); + //打印日志 + logger.info("Routing GuideLine修改结束:"+JSON.toJSONString(inData)); + //返回结果 + return inData; + } + + /** + * @description: 批量删除 Routing Guide Line + * @author LR + * @date 2024/12/13 14:24 + * @version 1.0 + */ + public List removeRoutingGuideLines(List inDatas) throws APException { + logger.info("Routing GuideLine批量修改开始:"+JSON.toJSONString(inDatas)); + RoutingGuideLine inData = inDatas.get(0); + //公共参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //循环删除 + for(RoutingGuideLine guideLine : inDatas) { + //调用新增的方法 新增数据 + RoutingApi.removeRoutingGuideLine(srv, guideLine); + //打印日志 + logger.info("RoutingGuideLine remove:"+JSON.toJSONString(guideLine)); + } + //打印日志 + logger.info("Routing GuideLine批量删除结束:"+JSON.toJSONString(inDatas)); + //返回结果 + return inDatas; + } + + + + +} diff --git a/src/main/java/com/spring/ifs/data/LaborClass.java b/src/main/java/com/spring/ifs/data/LaborClass.java new file mode 100644 index 00000000..e5d8c9ad --- /dev/null +++ b/src/main/java/com/spring/ifs/data/LaborClass.java @@ -0,0 +1,108 @@ +package com.spring.ifs.data; + +public class LaborClass { + private String site; + private String levelId; + private String levelDesc; + private String active; + private String createDate; + private String createBy; + private String updateDate; + private String updateBy; + private String levelCost; + private String ifsRowId; + private String ifsRowVersion; + + public LaborClass() { + super(); + } + + public String getSite() { + return site; + } + + public void setSite(String site) { + this.site = site; + } + + public String getLevelId() { + return levelId; + } + + public void setLevelId(String levelId) { + this.levelId = levelId; + } + + public String getLevelDesc() { + return levelDesc; + } + + public void setLevelDesc(String levelDesc) { + this.levelDesc = levelDesc; + } + + public String getActive() { + return active; + } + + public void setActive(String active) { + this.active = active; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public String getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + public String getLevelCost() { + return levelCost; + } + + public void setLevelCost(String levelCost) { + this.levelCost = levelCost; + } + + public String getIfsRowId() { + return ifsRowId; + } + + public void setIfsRowId(String ifsRowId) { + this.ifsRowId = ifsRowId; + } + + public String getIfsRowVersion() { + return ifsRowVersion; + } + + public void setIfsRowVersion(String ifsRowVersion) { + this.ifsRowVersion = ifsRowVersion; + } + +} diff --git a/src/main/java/com/spring/ifs/data/PartCatalog.java b/src/main/java/com/spring/ifs/data/PartCatalog.java new file mode 100644 index 00000000..9f915264 --- /dev/null +++ b/src/main/java/com/spring/ifs/data/PartCatalog.java @@ -0,0 +1,188 @@ +package com.spring.ifs.data; + +import java.util.Date; + +/** + * @ClassName: PartIfsCatalog + * @Description:物料目录 + * @author: LR + * @date: 2023年12月22日 上午10:14:06 + * @Copyright: + */ +public class PartCatalog extends BaseIfsData { + private String unitCode;// 单位 + private String partMainGroup;// + private String weightNet; + private String uomForWeightNet; + private String volumeNet; + private String uomForVolumeNet; + private String conditionCodeUsageDb;// + private String multilevelTrackingDb;// + private String allowAsNotConsumedDb;// + private String lotTrackingCode; + private String lotQuantityRule;// + private String subLotRule;// + private String componentLotRule;// + private String infoText;// 备注 + private String createdBy;// 创建人 + private Date createdDate;// 创建时间 + private String ifsRowKey; + private String histType;// 类型 + private String stdNameId;// + + public PartCatalog() { + super(); + } + + public String getUnitCode() { + return unitCode; + } + + public void setUnitCode(String unitCode) { + this.unitCode = unitCode; + } + + public String getPartMainGroup() { + return partMainGroup; + } + + public void setPartMainGroup(String partMainGroup) { + this.partMainGroup = partMainGroup; + } + + public String getWeightNet() { + return weightNet; + } + + public void setWeightNet(String weightNet) { + this.weightNet = weightNet; + } + + public String getUomForWeightNet() { + return uomForWeightNet; + } + + public void setUomForWeightNet(String uomForWeightNet) { + this.uomForWeightNet = uomForWeightNet; + } + + public String getVolumeNet() { + return volumeNet; + } + + public void setVolumeNet(String volumeNet) { + this.volumeNet = volumeNet; + } + + public String getUomForVolumeNet() { + return uomForVolumeNet; + } + + public void setUomForVolumeNet(String uomForVolumeNet) { + this.uomForVolumeNet = uomForVolumeNet; + } + + public String getConditionCodeUsageDb() { + return conditionCodeUsageDb; + } + + public void setConditionCodeUsageDb(String conditionCodeUsageDb) { + this.conditionCodeUsageDb = conditionCodeUsageDb; + } + + public String getMultilevelTrackingDb() { + return multilevelTrackingDb; + } + + public void setMultilevelTrackingDb(String multilevelTrackingDb) { + this.multilevelTrackingDb = multilevelTrackingDb; + } + + public String getAllowAsNotConsumedDb() { + return allowAsNotConsumedDb; + } + + public void setAllowAsNotConsumedDb(String allowAsNotConsumedDb) { + this.allowAsNotConsumedDb = allowAsNotConsumedDb; + } + + public String getLotTrackingCode() { + return lotTrackingCode; + } + + public void setLotTrackingCode(String lotTrackingCode) { + this.lotTrackingCode = lotTrackingCode; + } + + public String getLotQuantityRule() { + return lotQuantityRule; + } + + public void setLotQuantityRule(String lotQuantityRule) { + this.lotQuantityRule = lotQuantityRule; + } + + public String getSubLotRule() { + return subLotRule; + } + + public void setSubLotRule(String subLotRule) { + this.subLotRule = subLotRule; + } + + public String getComponentLotRule() { + return componentLotRule; + } + + public void setComponentLotRule(String componentLotRule) { + this.componentLotRule = componentLotRule; + } + + public String getInfoText() { + return infoText; + } + + public void setInfoText(String infoText) { + this.infoText = infoText; + } + + public String getCreatedBy() { + return createdBy; + } + + public void setCreatedBy(String createdBy) { + this.createdBy = createdBy; + } + + public Date getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(Date createdDate) { + this.createdDate = createdDate; + } + + public String getIfsRowKey() { + return ifsRowKey; + } + + public void setIfsRowKey(String ifsRowKey) { + this.ifsRowKey = ifsRowKey; + } + + public String getHistType() { + return histType; + } + + public void setHistType(String histType) { + this.histType = histType; + } + + public String getStdNameId() { + return stdNameId; + } + + public void setStdNameId(String stdNameId) { + this.stdNameId = stdNameId; + } +} diff --git a/src/main/java/com/spring/ifs/data/RoutingAlternative.java b/src/main/java/com/spring/ifs/data/RoutingAlternative.java new file mode 100644 index 00000000..c6a6dc43 --- /dev/null +++ b/src/main/java/com/spring/ifs/data/RoutingAlternative.java @@ -0,0 +1,43 @@ +package com.spring.ifs.data; + +/** + * @ClassName: CustomerOrderData + * @Description:客户订单的信息 + * @author: LR + * @date: 2022年12月9日 下午1:59:55 + * @Copyright: + */ +public class RoutingAlternative extends RoutingHeader { + private String alternativeNo;// 替代编码 + private String alternativeDesc;// 替代描述 + private String state; + + public RoutingAlternative() { + super(); + // TODO Auto-generated constructor stub + } + + public String getAlternativeNo() { + return alternativeNo; + } + + public void setAlternativeNo(String alternativeNo) { + this.alternativeNo = alternativeNo; + } + + public String getAlternativeDesc() { + return alternativeDesc; + } + + public void setAlternativeDesc(String alternativeDesc) { + this.alternativeDesc = alternativeDesc; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } +} diff --git a/src/main/java/com/spring/ifs/data/RoutingGuideLine.java b/src/main/java/com/spring/ifs/data/RoutingGuideLine.java new file mode 100644 index 00000000..f38e78a8 --- /dev/null +++ b/src/main/java/com/spring/ifs/data/RoutingGuideLine.java @@ -0,0 +1,72 @@ +package com.spring.ifs.data; + +/** + * + * @ClassName: + * @Description:工艺路线的明细数据 + * @author: LR + * @date: 2022年12月9日 下午1:59:55 + * @Copyright: + */ +public class RoutingGuideLine extends RoutingItem { + private String guidelineSeq; // + private String guidelineDesc; // + private String guidelineText; // + private String operWorkGuideType; // + private String signOffReq; // + private String inspectSignOffReq;// + + public RoutingGuideLine() { + super(); + // TODO Auto-generated constructor stub + } + + public String getGuidelineSeq() { + return guidelineSeq; + } + + public void setGuidelineSeq(String guidelineSeq) { + this.guidelineSeq = guidelineSeq; + } + + public String getGuidelineDesc() { + return guidelineDesc; + } + + public void setGuidelineDesc(String guidelineDesc) { + this.guidelineDesc = guidelineDesc; + } + + public String getGuidelineText() { + return guidelineText; + } + + public void setGuidelineText(String guidelineText) { + this.guidelineText = guidelineText; + } + + public String getOperWorkGuideType() { + return operWorkGuideType; + } + + public void setOperWorkGuideType(String operWorkGuideType) { + this.operWorkGuideType = operWorkGuideType; + } + + public String getSignOffReq() { + return signOffReq; + } + + public void setSignOffReq(String signOffReq) { + this.signOffReq = signOffReq; + } + + public String getInspectSignOffReq() { + return inspectSignOffReq; + } + + public void setInspectSignOffReq(String inspectSignOffReq) { + this.inspectSignOffReq = inspectSignOffReq; + } + +} diff --git a/src/main/java/com/spring/ifs/data/RoutingHeader.java b/src/main/java/com/spring/ifs/data/RoutingHeader.java new file mode 100644 index 00000000..42c16b92 --- /dev/null +++ b/src/main/java/com/spring/ifs/data/RoutingHeader.java @@ -0,0 +1,74 @@ +package com.spring.ifs.data; + +import java.util.Date; + +/** + * + * @ClassName: RoutingIfsHeader + * @Description:工艺路线的信息 + * @author: LR + * @date: 2022年12月9日 下午1:59:55 + * @Copyright: + */ +public class RoutingHeader extends PartCatalog { + private String routingRevision;// 版本 + private String routingType;// + private String phaseInDate;// 启用时间-年月日 + private String phaseOutDate;// 结束时间-年月日 + private String noteText;// 备注 + private Date createdDate;// ifs的对象id + + public RoutingHeader() { + super(); + // TODO Auto-generated constructor stub + } + + public String getRoutingRevision() { + return routingRevision; + } + + public void setRoutingRevision(String routingRevision) { + this.routingRevision = routingRevision; + } + + public String getRoutingType() { + return routingType; + } + + public void setRoutingType(String routingType) { + this.routingType = routingType; + } + + public String getPhaseInDate() { + return phaseInDate; + } + + public void setPhaseInDate(String phaseInDate) { + this.phaseInDate = phaseInDate; + } + + public String getPhaseOutDate() { + return phaseOutDate; + } + + public void setPhaseOutDate(String phaseOutDate) { + this.phaseOutDate = phaseOutDate; + } + + public String getNoteText() { + return noteText; + } + + public void setNoteText(String noteText) { + this.noteText = noteText; + } + + public Date getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(Date createdDate) { + this.createdDate = createdDate; + } + +} diff --git a/src/main/java/com/spring/ifs/data/RoutingItem.java b/src/main/java/com/spring/ifs/data/RoutingItem.java new file mode 100644 index 00000000..2c01f027 --- /dev/null +++ b/src/main/java/com/spring/ifs/data/RoutingItem.java @@ -0,0 +1,188 @@ +package com.spring.ifs.data; + +/** + * + * @ClassName: + * @Description:工艺路线的明细数据 + * @author: LR + * @date: 2022年12月9日 下午1:59:55 + * @Copyright: + */ +public class RoutingItem extends RoutingAlternative { + private String operationNo;// 工序号 + private String operationId;// 编码 + private String operationDesc;// 工序描述 + private String workCenterNo;// 加工中心 + private String efficiencyFactor;// 效率 + private String machSetupTime;// 调机时间(时长/小时) + private String machRunFactor;// 机器运行速度 + private String runTimeCode;// 单位/小时 小时/单位 小时 + private String laborRunFactor;// 人工效率 + private String laborSetupTime;// 人员调机时间 + private String crewSize;// 生产过程中人数 + private String setupCrewSize;// 调机过程中人数 + private String machineNo;// 机器编码 + private String alternateWorkCenter;// 替代加工中心 + private String noteText;// 备注 + private String outsideOpItem;// 外协时的采购料号 + private String laborClassNo;// 人员等级 + private String setupLaborClassNo;// 调机时的人员等级 + private String overlap;// 前道工序生产X个时,下道工序可开工生产 + + public RoutingItem() { + super(); + } + + public String getOperationNo() { + return operationNo; + } + + public void setOperationNo(String operationNo) { + this.operationNo = operationNo; + } + + public String getOperationId() { + return operationId; + } + + public void setOperationId(String operationId) { + this.operationId = operationId; + } + + public String getOperationDesc() { + return operationDesc; + } + + public void setOperationDesc(String operationDesc) { + this.operationDesc = operationDesc; + } + + public String getWorkCenterNo() { + return workCenterNo; + } + + public void setWorkCenterNo(String workCenterNo) { + this.workCenterNo = workCenterNo; + } + + public String getEfficiencyFactor() { + return efficiencyFactor; + } + + public void setEfficiencyFactor(String efficiencyFactor) { + this.efficiencyFactor = efficiencyFactor; + } + + public String getMachSetupTime() { + return machSetupTime; + } + + public void setMachSetupTime(String machSetupTime) { + this.machSetupTime = machSetupTime; + } + + public String getMachRunFactor() { + return machRunFactor; + } + + public void setMachRunFactor(String machRunFactor) { + this.machRunFactor = machRunFactor; + } + + public String getRunTimeCode() { + return runTimeCode; + } + + public void setRunTimeCode(String runTimeCode) { + this.runTimeCode = runTimeCode; + } + + public String getLaborRunFactor() { + return laborRunFactor; + } + + public void setLaborRunFactor(String laborRunFactor) { + this.laborRunFactor = laborRunFactor; + } + + public String getLaborSetupTime() { + return laborSetupTime; + } + + public void setLaborSetupTime(String laborSetupTime) { + this.laborSetupTime = laborSetupTime; + } + + public String getCrewSize() { + return crewSize; + } + + public void setCrewSize(String crewSize) { + this.crewSize = crewSize; + } + + public String getSetupCrewSize() { + return setupCrewSize; + } + + public void setSetupCrewSize(String setupCrewSize) { + this.setupCrewSize = setupCrewSize; + } + + public String getMachineNo() { + return machineNo; + } + + public void setMachineNo(String machineNo) { + this.machineNo = machineNo; + } + + public String getAlternateWorkCenter() { + return alternateWorkCenter; + } + + public void setAlternateWorkCenter(String alternateWorkCenter) { + this.alternateWorkCenter = alternateWorkCenter; + } + + public String getNoteText() { + return noteText; + } + + public void setNoteText(String noteText) { + this.noteText = noteText; + } + + public String getOutsideOpItem() { + return outsideOpItem; + } + + public void setOutsideOpItem(String outsideOpItem) { + this.outsideOpItem = outsideOpItem; + } + + public String getLaborClassNo() { + return laborClassNo; + } + + public void setLaborClassNo(String laborClassNo) { + this.laborClassNo = laborClassNo; + } + + public String getSetupLaborClassNo() { + return setupLaborClassNo; + } + + public void setSetupLaborClassNo(String setupLaborClassNo) { + this.setupLaborClassNo = setupLaborClassNo; + } + + public String getOverlap() { + return overlap; + } + + public void setOverlap(String overlap) { + this.overlap = overlap; + } + +} diff --git a/src/main/java/com/spring/ifs/data/RoutingTool.java b/src/main/java/com/spring/ifs/data/RoutingTool.java new file mode 100644 index 00000000..28bb320d --- /dev/null +++ b/src/main/java/com/spring/ifs/data/RoutingTool.java @@ -0,0 +1,35 @@ +package com.spring.ifs.data; + +/** + * + * @ClassName: + * @Description:工艺路线的明细数据 + * @author: LR + * @date: 2022年12月9日 下午1:59:55 + * @Copyright: + */ +public class RoutingTool extends RoutingItem { + private String toolId; // + private String toolQuantity; // + + public RoutingTool() { + super(); + } + + public String getToolId() { + return toolId; + } + + public void setToolId(String toolId) { + this.toolId = toolId; + } + + public String getToolQuantity() { + return toolQuantity; + } + + public void setToolQuantity(String toolQuantity) { + this.toolQuantity = toolQuantity; + } + +}