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 strategies; @Autowired public DataPackageService(List 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); } }