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);
|
}
|
}
|