package org.jeecg.modules.dnc.service.impl; import org.jeecg.modules.dnc.constant.DocAttributionTypeEnum; import org.jeecg.modules.dnc.dto.TransferPackage; import org.jeecg.modules.dnc.entity.DeviceType; import org.jeecg.modules.dnc.entity.DocRelative; import org.jeecg.modules.dnc.entity.WorkStep; import org.jeecg.modules.dnc.mapper.DeviceTypeMapper; import org.jeecg.modules.dnc.mapper.DocRelativeMapper; import org.jeecg.modules.dnc.mapper.WorkStepMapper; import org.jeecg.modules.dnc.service.DataPackageStrategy; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class WorkStepPackageStrategy implements DataPackageStrategy { @Autowired private WorkStepMapper workStepMapper; @Autowired private FullHierarchyTraceService traceService; @Autowired private DeviceTypeMapper deviceTypeMapper; @Autowired private DocRelativeMapper docRelativeMapper; @Override public TransferPackage packageData(String relativeId) { DocRelative docRelative=docRelativeMapper.selectById(relativeId); DeviceType deviceType=deviceTypeMapper.selectById(docRelative.getAttributionId()); if (deviceType!=null&&deviceType.getAttributionType().equals(DocAttributionTypeEnum.WORKSITE.getCode())) { WorkStep workStep = workStepMapper.selectById(deviceType.getAttributionId()); if (workStep == null) { throw new IllegalArgumentException("设备类对应的工步不存在: " + deviceType.getDeviceManagementId()); } } return TransferPackage.builder() .dataType(TransferPackage.DataType.WORKSTEP) .docRelative(docRelative) .traceChain(traceService.traceFromWorkStep(docRelative)) .build(); } }