package org.jeecg.modules.dnc.service.impl; import org.jeecg.modules.dnc.dto.TransferPackage; import org.jeecg.modules.dnc.entity.DocRelative; import org.jeecg.modules.dnc.entity.ProductInfo; import org.jeecg.modules.dnc.mapper.DeviceTypeMapper; import org.jeecg.modules.dnc.mapper.DocRelativeMapper; import org.jeecg.modules.dnc.mapper.ProductInfoMapper; import org.jeecg.modules.dnc.service.DataPackageStrategy; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class ProductPackageStrategy implements DataPackageStrategy { @Autowired private ProductInfoMapper productInfoMapper; @Autowired private DeviceTypeMapper deviceTypeMapper; @Autowired private FullHierarchyTraceService traceService; @Autowired private DocRelativeMapper docRelativeMapper; @Override public TransferPackage packageData(String relativeId) { DocRelative docRelative=docRelativeMapper.selectById(relativeId); ProductInfo productInfo=productInfoMapper.selectById(docRelative.getAttributionId()); if (productInfo == null) { throw new IllegalArgumentException("对应的产品不存在: " + docRelative.getAttributionId()); } return TransferPackage.builder() .dataType(TransferPackage.DataType.PRODUCT) .docRelative(docRelative) .traceChain(traceService.traceFromProduct(docRelative)) .build(); } }