From 4d6cf92e30c2c7f81f8cc31dfb7559a745782ec1 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期一, 23 六月 2025 13:24:07 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DataPackageService.java | 36 ++++++++++++++++++++++++++++++++++++ 1 files changed, 36 insertions(+), 0 deletions(-) diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DataPackageService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DataPackageService.java new file mode 100644 index 0000000..46cfe99 --- /dev/null +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DataPackageService.java @@ -0,0 +1,36 @@ +package org.jeecg.modules.dnc.service.impl; + +import org.jeecg.modules.dnc.dto.TransferPackage; +import org.jeecg.modules.dnc.service.DataPackageStrategy; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.EnumMap; +import java.util.List; +import java.util.Map; + +@Service +public class DataPackageService { + + private final Map<TransferPackage.DataType, DataPackageStrategy> strategies; + + @Autowired + public DataPackageService(List<DataPackageStrategy> strategyList) { + strategies = new EnumMap<>(TransferPackage.DataType.class); + strategyList.forEach(strategy -> { + if (strategy instanceof ProcessPackageStrategy) { + strategies.put(TransferPackage.DataType.PROCESS, strategy); + } else if (strategy instanceof WorkStepPackageStrategy) { + strategies.put(TransferPackage.DataType.WORKSTEP, strategy); + } + }); + } + + public TransferPackage packageData(TransferPackage.DataType type, String id) { + DataPackageStrategy strategy = strategies.get(type); + if (strategy == null) { + throw new IllegalArgumentException("涓嶆敮鎸佺殑鏁版嵁绫诲瀷: " + type); + } + return strategy.packageData(id); + } +} -- Gitblit v1.9.3