From 5150a55404db0382b2d0e6fc464985d28c0606dd Mon Sep 17 00:00:00 2001 From: mzr Date: Fri, 10 Oct 2025 14:22:21 +0800 Subject: [PATCH] =?UTF-8?q?refactor(mes):=E4=BC=98=E5=8C=96BOM=E5=92=8C?= =?UTF-8?q?=E7=89=A9=E6=96=99=E5=90=8C=E6=AD=A5=E5=A4=B1=E8=B4=A5=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/mes/epic/BomToEpicMesPlugin.java | 22 ++++++++++++------- .../mes/epic/MaterialToEpicMesPlugin.java | 19 ++++++++++++---- .../baseinfo/MaterialToGyMesListener.java | 2 +- 3 files changed, 30 insertions(+), 13 deletions(-) diff --git a/uapbd/src/private/nc/bs/uapbd/task/mes/epic/BomToEpicMesPlugin.java b/uapbd/src/private/nc/bs/uapbd/task/mes/epic/BomToEpicMesPlugin.java index d371d299..2ac8bed7 100644 --- a/uapbd/src/private/nc/bs/uapbd/task/mes/epic/BomToEpicMesPlugin.java +++ b/uapbd/src/private/nc/bs/uapbd/task/mes/epic/BomToEpicMesPlugin.java @@ -23,10 +23,7 @@ import nc.vo.fi.pub.SqlUtils; import nc.vo.org.OrgVO; import nc.vo.pub.BusinessException; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; /** * BOM-艾普MES-定时重推失败的数据 @@ -181,11 +178,20 @@ public class BomToEpicMesPlugin implements IBackgroundWorkPlugin { String cbomid = hvo.getCbomid(); ids.add(cbomid); } + // 定义每批次处理的最大数量 + int batchSize = 500; try { - String inSql = SqlUtils.getInStr("cbomid", ids.toArray(new String[0]), Boolean.TRUE); - String updateSql = "update bd_bom set hvdef19 = '[errorCode]' where " + inSql; - updateSql = updateSql.replace("[errorCode]", errorCode); - int updatedRows = getDao().executeUpdate(updateSql); + List idList = new ArrayList<>(ids); + for (int i = 0; i < idList.size(); i += batchSize) { + // 取出当前批次的ID + List batchIds = idList.subList(i, Math.min(i + batchSize, idList.size())); + String inSql = SqlUtils.getInStr("cbomid", batchIds.toArray(new String[0]), Boolean.TRUE); + String updateSql = "update bd_bom set hvdef19 = '[errorCode]' where " + inSql; + updateSql = updateSql.replace("[errorCode]", errorCode); + // NCCForUAPLogger.debug("EpicMes-handleSyncBomExp-updateSql = " + updateSql); + int updatedRows = getDao().executeUpdate(updateSql); + // NCCForUAPLogger.debug("EpicMes-BOM-handleSyncBomExp-updateRows = " + updatedRows); + } } catch (BusinessException e) { logDl.error("EpicMes-BOM-updateErrorInfo = " + e.getMessage(), e); } diff --git a/uapbd/src/private/nc/bs/uapbd/task/mes/epic/MaterialToEpicMesPlugin.java b/uapbd/src/private/nc/bs/uapbd/task/mes/epic/MaterialToEpicMesPlugin.java index 0e83a4cc..9549604a 100644 --- a/uapbd/src/private/nc/bs/uapbd/task/mes/epic/MaterialToEpicMesPlugin.java +++ b/uapbd/src/private/nc/bs/uapbd/task/mes/epic/MaterialToEpicMesPlugin.java @@ -198,11 +198,22 @@ public class MaterialToEpicMesPlugin implements IBackgroundWorkPlugin { String pkMaterial = vo.getPk_material(); ids.add(pkMaterial); } + // 定义每批次处理的最大数量 + int batchSize = 500; try { - String inSql = SqlUtils.getInStr("pk_material", ids.toArray(new String[0]), Boolean.TRUE); - String updateSql = "update bd_material set def30 = '[errorCode]' where " + inSql; - updateSql = updateSql.replace("[errorCode]", errorCode); - int updatedRows = getDao().executeUpdate(updateSql); + List idList = new ArrayList<>(ids); + for (int i = 0; i < idList.size(); i += batchSize) { + // 取出当前批次的ID + List batchIds = idList.subList(i, Math.min(i + batchSize, idList.size())); + + // 构造并执行SQL + String inSql = SqlUtils.getInStr("pk_material", batchIds.toArray(new String[0]), Boolean.TRUE); + String updateSql = "update bd_material set def30 = '[errorCode]' where " + inSql; + updateSql = updateSql.replace("[errorCode]", errorCode); + // NCCForUAPLogger.debug("EpicMes-handleSyncMaterialExp-updateSql = " + updateSql); + int updatedRows = getDao().executeUpdate(updateSql); + // NCCForUAPLogger.debug("EpicMes-Material-handleSyncMaterialExp-updateRows = " + updatedRows); + } } catch (BusinessException e) { logDl.error("EpicMes-Material-handleSyncMaterialExp = " + e.getMessage(), e); } diff --git a/uapbd/src/private/nc/impl/bd/material/baseinfo/MaterialToGyMesListener.java b/uapbd/src/private/nc/impl/bd/material/baseinfo/MaterialToGyMesListener.java index 778bff1b..011adb29 100644 --- a/uapbd/src/private/nc/impl/bd/material/baseinfo/MaterialToGyMesListener.java +++ b/uapbd/src/private/nc/impl/bd/material/baseinfo/MaterialToGyMesListener.java @@ -38,7 +38,7 @@ import java.util.stream.Stream; * @date 2025/09/11 */ public class MaterialToGyMesListener implements IBusinessListener { - private static final String LOG_INFO_NAME = "gyMesLog"; + private static final String LOG_INFO_NAME = "gymeslog"; private static final Log logger = Log.getInstance(LOG_INFO_NAME); private static final String addUrl = "/bip/order/materialAdd"; private static final String updateUrl = "/bip/order/materialUpdate";