From 4f9024fe8bac1550ee0e6222a15673c8c08feee4 Mon Sep 17 00:00:00 2001 From: lihao Date: Thu, 13 Nov 2025 10:10:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=B1=E5=8F=98=E7=89=A9=E6=96=99=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E5=A2=9E=E5=8A=A0=E7=89=A9=E6=96=99=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../action/MaterialPushToQmsAction.java | 25 ++++++++++++++++- .../task/mes/qy/MaterialToQmsPlugin.java | 24 +++++++++++++++- .../listener/MaterialToQmsListener.java | 28 +++++++++++++++++++ 3 files changed, 75 insertions(+), 2 deletions(-) diff --git a/uapbd/src/client/nccloud/web/uapbd/material/action/MaterialPushToQmsAction.java b/uapbd/src/client/nccloud/web/uapbd/material/action/MaterialPushToQmsAction.java index 35856a1a..4dacff28 100644 --- a/uapbd/src/client/nccloud/web/uapbd/material/action/MaterialPushToQmsAction.java +++ b/uapbd/src/client/nccloud/web/uapbd/material/action/MaterialPushToQmsAction.java @@ -39,6 +39,7 @@ public class MaterialPushToQmsAction implements ICommonAction { private Map configParams; private BaseDAO dao; + public BaseDAO getDao() { if (dao == null) { dao = new BaseDAO(); @@ -93,7 +94,10 @@ public class MaterialPushToQmsAction implements ICommonAction { String mrlTypeName = MyHelper.getStrValByCondition(MarBasClassVO.getDefaultTableName(), MarBasClassVO.CODE, "pk_marbasclass = '" + pk_marbasclass + "'"); // 计量单位 - + // 过滤物料分类 + if(checkMrlType(mrlTypeName,configParams)){ + continue; + } Map unitMap = getGoodsInfo(pkMaterial); // 1=未启用;2=已启用;3=已停用; @@ -157,6 +161,25 @@ public class MaterialPushToQmsAction implements ICommonAction { Object map = (Object) getDao().executeQuery(sql, new ColumnProcessor()); return map; } + private boolean checkMrlType(String mrlTypeName, Map configParams) throws BusinessException { + // 从配置中获取目标类型字符串 + String targetCode = configParams.get("mrlType"); + // 配置为空则直接返回false + if (targetCode == null || nc.vo.am.common.util.StringUtils.isEmpty(targetCode)) { + return false; + } + // 按逗号拆分多个类型 + String[] typeItems = targetCode.split(","); + // 遍历每个类型,检查是否以mrlTypeName为前缀 + for (String typeCode : typeItems) { + // 跳过空字符串,且判断当前类型是否以目标名称为前缀 + if (!typeCode.isEmpty() && typeCode.startsWith(mrlTypeName)) { + return true; + } + } + // 无匹配则返回false + return false; + } /** diff --git a/uapbd/src/private/nc/bs/uapbd/task/mes/qy/MaterialToQmsPlugin.java b/uapbd/src/private/nc/bs/uapbd/task/mes/qy/MaterialToQmsPlugin.java index 0e6ab142..873cb078 100644 --- a/uapbd/src/private/nc/bs/uapbd/task/mes/qy/MaterialToQmsPlugin.java +++ b/uapbd/src/private/nc/bs/uapbd/task/mes/qy/MaterialToQmsPlugin.java @@ -118,7 +118,10 @@ public class MaterialToQmsPlugin implements IBackgroundWorkPlugin { String mrlTypeName = MyHelper.getStrValByCondition(MarBasClassVO.getDefaultTableName(), MarBasClassVO.CODE, "pk_marbasclass = '" + pk_marbasclass + "'"); // 计量单位 - + // 过滤物料分类 + if(checkMrlType(mrlTypeName,configParams)){ + continue; + } Map unitMap = getGoodsInfo(pkMaterial); // 1=未启用;2=已启用;3=已停用; @@ -181,6 +184,25 @@ public class MaterialToQmsPlugin implements IBackgroundWorkPlugin { Object map = (Object) new BaseDAO().executeQuery(sql, new ColumnProcessor()); return map; } + private boolean checkMrlType(String mrlTypeName, Map configParams) throws BusinessException { + // 从配置中获取目标类型字符串 + String targetCode = configParams.get("mrlType"); + // 配置为空则直接返回false + if (targetCode == null || nc.vo.am.common.util.StringUtils.isEmpty(targetCode)) { + return false; + } + // 按逗号拆分多个类型 + String[] typeItems = targetCode.split(","); + // 遍历每个类型,检查是否以mrlTypeName为前缀 + for (String typeCode : typeItems) { + // 跳过空字符串,且判断当前类型是否以目标名称为前缀 + if (!typeCode.isEmpty() && typeCode.startsWith(mrlTypeName)) { + return true; + } + } + // 无匹配则返回false + return false; + } /** * 推送同步数据 diff --git a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToQmsListener.java b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToQmsListener.java index bc8783b3..505c2472 100644 --- a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToQmsListener.java +++ b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToQmsListener.java @@ -98,6 +98,13 @@ public class MaterialToQmsListener implements IBusinessListener { String pk_marbasclass = vo.getPk_marbasclass(); String mrlTypeName = MyHelper.getStrValByCondition(MarBasClassVO.getDefaultTableName(), MarBasClassVO.CODE, "pk_marbasclass = '" + pk_marbasclass + "'"); + + // 过滤物料分类 + if(checkMrlType(mrlTypeName,configParams)){ + continue; + } + + // 计量单位 Map unitMap = getGoodsInfo(pkMaterial); @@ -149,6 +156,27 @@ public class MaterialToQmsListener implements IBusinessListener { updateBs(pkMaterial); } } + + private boolean checkMrlType(String mrlTypeName, Map configParams) throws BusinessException { + // 从配置中获取目标类型字符串 + String targetCode = configParams.get("mrlType"); + // 配置为空则直接返回false + if (targetCode == null || nc.vo.am.common.util.StringUtils.isEmpty(targetCode)) { + return false; + } + // 按逗号拆分多个类型 + String[] typeItems = targetCode.split(","); + // 遍历每个类型,检查是否以mrlTypeName为前缀 + for (String typeCode : typeItems) { + // 跳过空字符串,且判断当前类型是否以目标名称为前缀 + if (!typeCode.isEmpty() && typeCode.startsWith(mrlTypeName)) { + return true; + } + } + // 无匹配则返回false + return false; + } + private void updateBs(String pkMaterial) throws DAOException { BaseDAO dao = new BaseDAO(); String sql = "update BD_MATERIAL set def36='Y' where pk_material='"