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