diff --git a/src/main/java/com/spring/ifs/api/BomApi.java b/src/main/java/com/spring/ifs/api/BomApi.java index 9eb3abb2..04aa7772 100644 --- a/src/main/java/com/spring/ifs/api/BomApi.java +++ b/src/main/java/com/spring/ifs/api/BomApi.java @@ -909,5 +909,58 @@ public class BomApi { } - + /** + * @description: 执行Bom 结构的赋值操作 + * @author LR + * @date 2026/3/30 17:01 + * @version 1.0 + */ + public static Map copyBomStructure(Server srv, CopyBomStructureData inData) throws APException { + //公共参数 + String fromContract = inData.getFromContract(); + String fromPartNo = inData.getFromPartNo(); + String fromEngChgLevel = inData.getFromEngChgLevel(); + String fromBomType = inData.getFromBomType(); + String fromAlternativeNo = inData.getFromAlternativeNo(); + String toContract = inData.getToContract(); + String toPartNo = inData.getToPartNo(); + String toEngChgLevel = inData.getToEngChgLevel(); + String toBomType = inData.getToBomType(); + String toAlternativeNo = inData.getToAlternativeNo(); + String toEffPhaseInDate= inData.getToEffPhaseInDate(); + String toEffPhaseOutDate = inData.getToEffPhaseOutDate(); + String copyAttachDocuments = inData.getCopyAttachDocuments(); + String copyMro = inData.getCopyMro(); + String copyAltStatus = inData.getCopyAltStatus(); + String copyForReplace = inData.getCopyForReplace(); + //入参 + List inParams = new ArrayList<>(); + List outParams = new ArrayList<>(); + //设置入参和出参 + inParams.add(new IfsParamBean("FROM_PART_NO", "TEXT", fromPartNo)); + inParams.add(new IfsParamBean("FROM_CONTRACT", "TEXT", fromContract)); + inParams.add(new IfsParamBean("FROM_ENG_CHG_LEVEL", "TEXT", fromEngChgLevel)); + inParams.add(new IfsParamBean("FROM_BOM_TYPE", "TEXT", fromBomType)); + inParams.add(new IfsParamBean("FROM_ALTERNATIVE_NO", "TEXT", fromAlternativeNo)); + //To 入参 + inParams.add(new IfsParamBean("TO_PART_NO", "TEXT", toPartNo)); + inParams.add(new IfsParamBean("TO_CONTRACT", "TEXT", toContract)); + inParams.add(new IfsParamBean("TO_ENG_CHG_LEVEL", "TEXT", toEngChgLevel)); + inParams.add(new IfsParamBean("TO_BOM_TYPE", "TEXT", toBomType)); + inParams.add(new IfsParamBean("TO_ALTERNATIVE_NO", "TEXT", toAlternativeNo)); + inParams.add(new IfsParamBean("TO_EFF_PHASE_IN_DATE", "TEXT", toEffPhaseInDate)); + inParams.add(new IfsParamBean("TO_EFF_PHASE_OUT_DATE", "TEXT", toEffPhaseOutDate)); + inParams.add(new IfsParamBean("COPY_ATTACH_DOCUMENTS", "TEXT", copyAttachDocuments)); + inParams.add(new IfsParamBean("COPY_MRO", "TEXT", copyMro)); + inParams.add(new IfsParamBean("COPY_ALT_STATUS", "TEXT", "0")); + inParams.add(new IfsParamBean("COPY_FOR_REPLACE", "TEXT", "FALSE")); + //out canshu + outParams.add(new IfsParamBean("INFO", "TEXT", "")); + + //执行Do的操作 + Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "Manuf_Structure_Util_API", + "Copy_Manuf_Alternate", inParams, outParams); + //返回结果集 + return resultMap; + } } diff --git a/src/main/java/com/spring/ifs/api/RecipeApi.java b/src/main/java/com/spring/ifs/api/RecipeApi.java index 0cf05e63..651a80f0 100644 --- a/src/main/java/com/spring/ifs/api/RecipeApi.java +++ b/src/main/java/com/spring/ifs/api/RecipeApi.java @@ -1,5 +1,7 @@ package com.spring.ifs.api; +import com.spring.ifs.data.CopyBomStructureData; +import com.spring.ifs.data.IfsParamBean; import com.spring.ifs.utils.IfsConverterToMap; import com.spring.ifs.utils.IfsPlsqlUtils; import com.spring.modules.base.utils.DateUtils; @@ -697,4 +699,56 @@ public class RecipeApi { "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam); } + /** + * @description: 拷贝配方的结构 + * @author LR + * @date 2026/3/30 17:31 + * @version 1.0 + */ + public static Map copyRecipeStructure(Server srv, CopyBomStructureData inData) throws APException { + //公共参数 + String fromContract = inData.getFromContract(); + String fromPartNo = inData.getFromPartNo(); + String fromEngChgLevel = inData.getFromEngChgLevel(); + String fromBomType = inData.getFromBomType(); + String fromAlternativeNo = inData.getFromAlternativeNo(); + String toContract = inData.getToContract(); + String toPartNo = inData.getToPartNo(); + String toEngChgLevel = inData.getToEngChgLevel(); + String toBomType = inData.getToBomType(); + String toAlternativeNo = inData.getToAlternativeNo(); + String toEffPhaseInDate= inData.getToEffPhaseInDate(); + String toEffPhaseOutDate = inData.getToEffPhaseOutDate(); + String copyAttachDocuments = inData.getCopyAttachDocuments(); + //入参 + //填充参数 + List inParams = new ArrayList<>(); + List outParams = new ArrayList<>(); + //设置入参和出参 + inParams.add(new IfsParamBean("FROM_PART_NO", "TEXT", fromPartNo)); + inParams.add(new IfsParamBean("FROM_CONTRACT", "TEXT", fromContract)); + inParams.add(new IfsParamBean("FROM_ENG_CHG_LEVEL", "TEXT", fromEngChgLevel)); + inParams.add(new IfsParamBean("FROM_BOM_TYPE", "TEXT", fromBomType)); + inParams.add(new IfsParamBean("FROM_ALTERNATIVE_NO", "TEXT", fromAlternativeNo)); + //To 入参 + inParams.add(new IfsParamBean("TO_PART_NO", "TEXT", toPartNo)); + inParams.add(new IfsParamBean("TO_CONTRACT", "TEXT", toContract)); + inParams.add(new IfsParamBean("TO_ENG_CHG_LEVEL", "TEXT", toEngChgLevel)); + inParams.add(new IfsParamBean("TO_BOM_TYPE", "TEXT", toBomType)); + inParams.add(new IfsParamBean("TO_ALTERNATIVE_NO", "TEXT", toAlternativeNo)); + inParams.add(new IfsParamBean("TO_EFF_PHASE_IN_DATE", "TEXT", toEffPhaseInDate)); + inParams.add(new IfsParamBean("TO_EFF_PHASE_OUT_DATE", "TEXT", toEffPhaseOutDate)); + inParams.add(new IfsParamBean("COPY_ATTACH_DOCUMENTS", "TEXT", copyAttachDocuments)); + inParams.add(new IfsParamBean("COPY_MRO", "TEXT", "0")); + inParams.add(new IfsParamBean("COPY_ALT_STATUS", "TEXT", "0")); + inParams.add(new IfsParamBean("COPY_FOR_REPLACE", "TEXT", "FALSE")); + //out canshu + outParams.add(new IfsParamBean("INFO", "TEXT", "")); + + //执行Do的操作 + Map resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "Manuf_Structure_Util_API", + "Copy_Manuf_Alternate", inParams, outParams); + //返回结果集 + return resultMap; + } } diff --git a/src/main/java/com/spring/ifs/bean/BomServiceBean.java b/src/main/java/com/spring/ifs/bean/BomServiceBean.java index 6e48b734..0e5a3ee5 100644 --- a/src/main/java/com/spring/ifs/bean/BomServiceBean.java +++ b/src/main/java/com/spring/ifs/bean/BomServiceBean.java @@ -3,6 +3,7 @@ package com.spring.ifs.bean; import com.alibaba.fastjson.JSON; import com.spring.ifs.api.BomApi; import com.spring.ifs.api.IfsServer; +import com.spring.ifs.data.CopyBomStructureData; import com.spring.modules.part.entity.APIEntity.BomIfsAlternative; import com.spring.modules.part.entity.APIEntity.BomIfsHeader; import com.spring.modules.part.entity.APIEntity.BomIfsItem; @@ -829,6 +830,33 @@ public class BomServiceBean { return returnMap; } + /** + * @description: 拷贝Bom的层级结构 + * @author LR + * @date 2026/3/31 09:04 + * @version 1.0 + */ + public Map copyBomStructure(Server srv, CopyBomStructureData inData) { + logger.info("Bom Copy:"+JSON.toJSONString(inData)); + //查询的参数 + Map returnMap = new HashMap<>(); + try{ + //调用api + Map resultMap = BomApi.copyBomStructure(srv, inData); + //设置版本的信息 + returnMap.put("resultCode", "200"); + returnMap.put("obj", JSON.toJSONString(inData)); + } catch(APException e){ + returnMap.put("resultCode", "400"); + returnMap.put("resultMsg", e.getMessage()); + logger.info("异常信息:"+e.getMessage()); + } + //打印日志 + logger.info("Bom Copy结束:"+JSON.toJSONString(inData)); + //返回结果集 + return returnMap; + } + } \ No newline at end of file diff --git a/src/main/java/com/spring/ifs/bean/RecipeServiceBean.java b/src/main/java/com/spring/ifs/bean/RecipeServiceBean.java index 4cb55a01..cb01b354 100644 --- a/src/main/java/com/spring/ifs/bean/RecipeServiceBean.java +++ b/src/main/java/com/spring/ifs/bean/RecipeServiceBean.java @@ -3,6 +3,7 @@ package com.spring.ifs.bean; import com.alibaba.fastjson.JSON; import com.spring.ifs.api.IfsServer; import com.spring.ifs.api.RecipeApi; +import com.spring.ifs.data.CopyBomStructureData; import com.spring.modules.part.entity.APIEntity.RecipeIfsAlternative; import com.spring.modules.part.entity.APIEntity.RecipeIfsHeader; import com.spring.modules.part.entity.APIEntity.RecipeIfsItem; @@ -765,4 +766,35 @@ public class RecipeServiceBean { return returnMap; } + /** + * @description: 拷贝 配方的结构信息 + * @author LR + * @date 2026/3/30 17:30 + * @version 1.0 + */ + public Map copyRecipeStructure(Server srv, CopyBomStructureData inData) { + // 记录日志,开始删除过程 + logger.info("Recipe Copy开始:" + JSON.toJSONString(inData)); + // 公共参数 + Map returnMap = new HashMap<>(); + try { + // 调用API删除项目 + RecipeApi.copyRecipeStructure(srv, inData); + + // 设置返回值 + returnMap.put("resultCode", "200"); + returnMap.put("obj", JSON.toJSONString(inData)); + } catch (APException e) { + // 异常处理,设置错误代码和消息 + returnMap.put("resultCode", "400"); + returnMap.put("resultMsg", e.getMessage()); + logger.info("异常信息:"+e.getMessage()); + } + + // 打印日志,结束删除过程 + logger.info("Recipe Copy结束:" + JSON.toJSONString(inData)); + // 返回结果集 + return returnMap; + } + } diff --git a/src/main/java/com/spring/ifs/data/CopyBomStructureData.java b/src/main/java/com/spring/ifs/data/CopyBomStructureData.java new file mode 100644 index 00000000..b29e739a --- /dev/null +++ b/src/main/java/com/spring/ifs/data/CopyBomStructureData.java @@ -0,0 +1,175 @@ +package com.spring.ifs.data; + +/** + * @author LR + * @version 1.0 + * @description: copy Bom recipe 使用 + * @date 2026/3/30 16:30 + */ +public class CopyBomStructureData { + private String fromContract; + private String fromPartNo; + private String fromEngChgLevel; + private String fromBomType; + private String fromAlternativeNo; + private String toContract; + private String toPartNo; + private String toEngChgLevel; + private String toBomType; + private String toAlternativeNo; + private String toEffPhaseInDate; + private String toEffPhaseOutDate; + private String copyAttachDocuments; + private String copyMro; + private String copyAltStatus; + private String copyForReplace; + private String ifsUsername; + private String ifsPassword; + + public CopyBomStructureData() { + } + + public String getFromContract() { + return fromContract; + } + + public void setFromContract(String fromContract) { + this.fromContract = fromContract; + } + + public String getFromPartNo() { + return fromPartNo; + } + + public void setFromPartNo(String fromPartNo) { + this.fromPartNo = fromPartNo; + } + + public String getFromEngChgLevel() { + return fromEngChgLevel; + } + + public void setFromEngChgLevel(String fromEngChgLevel) { + this.fromEngChgLevel = fromEngChgLevel; + } + + public String getFromBomType() { + return fromBomType; + } + + public void setFromBomType(String fromBomType) { + this.fromBomType = fromBomType; + } + + public String getFromAlternativeNo() { + return fromAlternativeNo; + } + + public void setFromAlternativeNo(String fromAlternativeNo) { + this.fromAlternativeNo = fromAlternativeNo; + } + + public String getToContract() { + return toContract; + } + + public void setToContract(String toContract) { + this.toContract = toContract; + } + + public String getToPartNo() { + return toPartNo; + } + + public void setToPartNo(String toPartNo) { + this.toPartNo = toPartNo; + } + + public String getToEngChgLevel() { + return toEngChgLevel; + } + + public void setToEngChgLevel(String toEngChgLevel) { + this.toEngChgLevel = toEngChgLevel; + } + + public String getToBomType() { + return toBomType; + } + + public void setToBomType(String toBomType) { + this.toBomType = toBomType; + } + + public String getToAlternativeNo() { + return toAlternativeNo; + } + + public void setToAlternativeNo(String toAlternativeNo) { + this.toAlternativeNo = toAlternativeNo; + } + + public String getToEffPhaseInDate() { + return toEffPhaseInDate; + } + + public void setToEffPhaseInDate(String toEffPhaseInDate) { + this.toEffPhaseInDate = toEffPhaseInDate; + } + + public String getToEffPhaseOutDate() { + return toEffPhaseOutDate; + } + + public void setToEffPhaseOutDate(String toEffPhaseOutDate) { + this.toEffPhaseOutDate = toEffPhaseOutDate; + } + + public String getCopyAttachDocuments() { + return copyAttachDocuments; + } + + public void setCopyAttachDocuments(String copyAttachDocuments) { + this.copyAttachDocuments = copyAttachDocuments; + } + + public String getCopyMro() { + return copyMro; + } + + public void setCopyMro(String copyMro) { + this.copyMro = copyMro; + } + + public String getCopyAltStatus() { + return copyAltStatus; + } + + public void setCopyAltStatus(String copyAltStatus) { + this.copyAltStatus = copyAltStatus; + } + + public String getCopyForReplace() { + return copyForReplace; + } + + public void setCopyForReplace(String copyForReplace) { + this.copyForReplace = copyForReplace; + } + + public String getIfsUsername() { + return ifsUsername; + } + + public void setIfsUsername(String ifsUsername) { + this.ifsUsername = ifsUsername; + } + + public String getIfsPassword() { + return ifsPassword; + } + + public void setIfsPassword(String ifsPassword) { + this.ifsPassword = ifsPassword; + } +}