diff --git a/src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java b/src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java index 694efc6e..7ee330c6 100644 --- a/src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java +++ b/src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java @@ -108,6 +108,7 @@ import static com.spring.modules.part.task.PartRelatedTask.convertToSQLString; public class PartInformationServiceImpl extends ServiceImpl implements PartInformationService { private static final int DRAWING_NO_SYNC_PART_PREFIX_LENGTH = 8; + private static final int DRAWING_NO_SYNC_BATCH_SIZE = 1000; private static final List PROJECT_PART_PRODUCT_CATEGORIES = Arrays.asList("Label", "Diecut", "Decoration", "Material"); @Autowired @@ -1337,13 +1338,18 @@ public class PartInformationServiceImpl extends ServiceImpl syncWrapper = new UpdateWrapper<>(); - syncWrapper.eq("site", site); - syncWrapper.in("part_no", pendingSyncPartNos); - int syncRows = partInformationMapper.update(syncData, syncWrapper); + int syncRows = 0; + for (int i = 0; i < pendingSyncPartNos.size(); i += DRAWING_NO_SYNC_BATCH_SIZE) { + List batchPartNos = pendingSyncPartNos.subList( + i, Math.min(i + DRAWING_NO_SYNC_BATCH_SIZE, pendingSyncPartNos.size())); + PartInformationEntity syncData = new PartInformationEntity(); + syncData.setDrawingNo(drawingNo); + syncData.setUpdateBy(data.getUpdateBy()); + UpdateWrapper syncWrapper = new UpdateWrapper<>(); + syncWrapper.eq("site", site); + syncWrapper.in("part_no", batchPartNos); + syncRows += partInformationMapper.update(syncData, syncWrapper); + } if (syncRows > 0) { log.info("同前8位编码联动成功,site={}, sourcePartNo={}, prefix={}, drawingNo={}, syncRows={}", site, partNo, partNoPrefix, drawingNo, syncRows);