package org.jeecg.modules.dnc.service.impl;
|
|
import org.jeecg.modules.dnc.dto.TransferPackage;
|
import org.jeecg.modules.dnc.entity.ComponentInfo;
|
import org.jeecg.modules.dnc.entity.DocRelative;
|
import org.jeecg.modules.dnc.mapper.ComponentInfoMapper;
|
import org.jeecg.modules.dnc.mapper.DeviceTypeMapper;
|
import org.jeecg.modules.dnc.mapper.DocRelativeMapper;
|
import org.jeecg.modules.dnc.service.DataPackageStrategy;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
@Service
|
public class ComponentPackageStrategy implements DataPackageStrategy {
|
@Autowired
|
private ComponentInfoMapper componentInfoMapper;
|
@Autowired
|
private DeviceTypeMapper deviceTypeMapper;
|
@Autowired
|
private FullHierarchyTraceService traceService;
|
@Autowired
|
private DocRelativeMapper docRelativeMapper;
|
|
@Override
|
public TransferPackage packageData(String relativeId) {
|
DocRelative docRelative=docRelativeMapper.selectById(relativeId);
|
ComponentInfo componentInfo=componentInfoMapper.selectById(docRelative.getAttributionId());
|
if (componentInfo == null) {
|
throw new IllegalArgumentException("对应的部件不存在: " + docRelative.getAttributionId());
|
}
|
return TransferPackage.builder()
|
.dataType(TransferPackage.DataType.COMPONENT)
|
.docRelative(docRelative)
|
.traceChain(traceService.traceFromComponent(docRelative))
|
.build();
|
}
|
}
|