From 524afaeceb883dc0a972fb84b12e994e475ebea0 Mon Sep 17 00:00:00 2001 From: lihao Date: Wed, 5 Nov 2025 08:46:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E6=96=99=E8=AE=A1=E5=88=92=E6=8E=A8?= =?UTF-8?q?=E9=80=81ims=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95=E5=A2=9E=E5=8A=A0=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E7=B1=BB=E5=9E=8B=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bp/rule/AfterApproveSyncImsRule.java | 23 ++++++++++++++++--- .../PMOAfterApproveRuleHighpressureIms.java | 5 ++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncImsRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncImsRule.java index be620a08..3c8603f3 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncImsRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncImsRule.java @@ -62,7 +62,7 @@ public class AfterApproveSyncImsRule implements IRule { "vpackbomversion", "crtversionid", "vrtversion", "tplanstarttime", "tplanendtime", "twillendtime", "tactstarttime", "tactendtime", "mocloser", "tmoclosedtime", "vsalebillcode", "cbatchid", "vbatchcode", "vnote", "cproductorid", "cprojectid", "vsrctrantypeid", "vsrctrantype", "vsrctype", "vsrcid", "vsrccode", "vsrcbid", "vsrcrowno", "crequireorg", "crequireorgvid", "trequiredate", "tsupplytime", "vfirsttrantypeid", "vfirsttrantype", "vfirsttype", "vfirstid", "vfirstcode", "vfirstbid", "vfirstrowno", "ninastnum", "ninnum", - "vfirstmotype", "cfirstmoid", "vfirstmocode", "cfirstmobid", "vfirstmorowno", "cinwarehouseid", "vbdef31" + "vfirstmotype", "cfirstmoid", "vfirstmocode", "cfirstmobid", "vfirstmorowno", "cinwarehouseid", "vdef31", "vdef39" }; // 表头-定义数值类型字段列表 @@ -81,7 +81,7 @@ public class AfterApproveSyncImsRule implements IRule { )); // 表体-翻译字段 private Set bodyTransferFields = new HashSet<>(Arrays.asList( - "pk_org", "cmaterialvid", "cunitid", "castunitid", "cdeptid", "mocloser", "cinwarehouseid", "vbdef31" + "pk_org", "cmaterialvid", "cunitid", "castunitid", "cdeptid", "mocloser", "cinwarehouseid", "vdef31" )); @@ -112,6 +112,9 @@ public class AfterApproveSyncImsRule implements IRule { if (checkIfOrg(orgCode, configParams)) { continue; } + if (!checkIfVtrantypecode(pmoHeadVO.getVtrantypecode(), configParams)) { + continue; + } // 获取主键值 String headPrimaryKeyValue = (String) pmoHeadVO.getAttributeValue("cpmohid"); @@ -135,6 +138,20 @@ public class AfterApproveSyncImsRule implements IRule { } } + private boolean checkIfVtrantypecode(String vtrantypecode, Map configParams) throws BusinessException { + String targetCode = configParams.get("vtrantypecode"); + if (targetCode == null || nc.vo.am.common.util.StringUtils.isEmpty(targetCode)) { + throw new BusinessException("未配置生产订单交易类型组织参数"); + } + String[] orgItem = targetCode.split(","); + for (String orgCode : orgItem) { + if (!orgCode.isEmpty() && orgCode.equals(vtrantypecode)) { + return false; + } + } + return true; + } + private boolean checkIfOrg(String code, Map configParams) throws BusinessException { String targetCode = configParams.get("imsOrg"); if (targetCode == null || nc.vo.am.common.util.StringUtils.isEmpty(targetCode)) { @@ -423,7 +440,7 @@ public class AfterApproveSyncImsRule implements IRule { String sql = " select code from org_dept where nvl(dr,0) = 0 and pk_dept = '[value]' "; sql = sql.replace("[value]", value.toString()); result = (String) baseDAO.executeQuery(sql, new ColumnProcessor()); - } else if ("cinwarehouseid".equals(column) || "vbdef31".equals(column)) { + } else if ("cinwarehouseid".equals(column) || "vdef31".equals(column)) { String sql = " select code from bd_stordoc where nvl(dr,0) = 0 and pk_stordoc = '[value]' "; sql = sql.replace("[value]", value.toString()); result = (String) baseDAO.executeQuery(sql, new ColumnProcessor()); diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/PMOAfterApproveRuleHighpressureIms.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/PMOAfterApproveRuleHighpressureIms.java index cdc3ebcd..d448c734 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/PMOAfterApproveRuleHighpressureIms.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/PMOAfterApproveRuleHighpressureIms.java @@ -350,6 +350,7 @@ public class PMOAfterApproveRuleHighpressureIms implements IRule { detailJson.put("nplanoutastnum", itemVO.getNplanoutastnum() != null ? itemVO.getNplanoutastnum().doubleValue() : null); // 计划出库数量 detailJson.put("nplanoutnum", itemVO.getNplanoutnum() != null ? itemVO.getNplanoutnum().doubleValue() : null);// 计划出库主数量 detailJson.put("vbdef22", itemVO.getVbdef20()); // 是否备件 + detailJson.put("nunituseastnum",itemVO.getNunituseastnum() != null ? itemVO.getNunituseastnum().toString() : null); return detailJson; } @@ -413,7 +414,7 @@ public class PMOAfterApproveRuleHighpressureIms implements IRule { String[] detailFields = { "cpickm_bid", "cpickmid", "pk_org", "vbillcode", "vrowno", "fitemtype", "fitemsource", "cbmaterialvid", "cbunitid", "cbastunitid", "vbchangerate", "nquotastnum", - "nplanoutastnum", "nplanoutnum", "vbdef22" + "nplanoutastnum", "nplanoutnum", "vbdef22","nunituseastnum" }; String fieldStr = String.join(", ", detailFields); StringBuilder valuesSb = new StringBuilder(); @@ -494,7 +495,7 @@ public class PMOAfterApproveRuleHighpressureIms implements IRule { String[] detailFields = { "cpickmid", "pk_org", "vbillcode", "vrowno", "fitemtype", "fitemsource", "cbmaterialvid", "cbunitid", "cbastunitid", "vbchangerate", "nquotastnum", - "nplanoutastnum", "nplanoutnum", "vbdef22" + "nplanoutastnum", "nplanoutnum", "vbdef22","nunituseastnum" }; // 循环更新每条子表数据