diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java index 8bda5275..11cc1010 100644 --- a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java @@ -72,4 +72,5 @@ public interface ErrorCodeConstants { // ========== 主数据同步 ========== ErrorCode MASTER_DATA_SYNC_DISABLED = new ErrorCode(1_027_900_001, "主数据同步功能已禁用"); + ErrorCode MASTER_DATA_SYNC_BATCH_SIZE_TOO_LARGE = new ErrorCode(1_027_900_002, "最大批次不得超过 1000"); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/masterdatasync/MasterDataSyncServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/masterdatasync/MasterDataSyncServiceImpl.java index 3fd3f984..3d2e0c2a 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/masterdatasync/MasterDataSyncServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/masterdatasync/MasterDataSyncServiceImpl.java @@ -75,6 +75,9 @@ public class MasterDataSyncServiceImpl implements MasterDataSyncService { if (!properties.isEnabled()) { throw ServiceExceptionUtil.exception(ErrorCodeConstants.MASTER_DATA_SYNC_DISABLED); } + if (command.getBatchSize() > 1000) { + throw ServiceExceptionUtil.exception(ErrorCodeConstants.MASTER_DATA_SYNC_BATCH_SIZE_TOO_LARGE, command.getBatchSize()); + } MasterDataSyncReport report = MasterDataSyncReport.start(command); List materialCodes = sanitizeCodes(command.getMaterialCodes()); report.setMaterialCodes(materialCodes); @@ -306,7 +309,11 @@ public class MasterDataSyncServiceImpl implements MasterDataSyncService { continue; } MaterialInfomationDO current = existingById.get(codeId); - String name = normalizeValue(item.getMaterialName()); + // 名称优先取 MDM 的长描述(desclong),若为空再回退到 desc1 + String name = normalizeValue(item.getLongDescription()); + if (name == null) { + name = normalizeValue(item.getMaterialName()); + } if (current == null) { MaterialInfomationDO created = MaterialInfomationDO.builder() .id(codeId)