zhangherong
2025-06-25 2fb6c67b2c0c72195eef6fe5f7904d739b46e2c0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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);
    }
}