package com.ruoyi.safe.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.basic.dto.StorageBlobVO; import com.ruoyi.basic.enums.ApplicationTypeEnum; import com.ruoyi.basic.enums.RecordTypeEnum; import com.ruoyi.basic.utils.FileUtil; import com.ruoyi.safe.mapper.SafeLineInspectionRecordMapper; import com.ruoyi.safe.pojo.SafeLineInspectionRecord; import com.ruoyi.safe.service.SafeLineInspectionRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Collections; import java.util.List; /** *

* 安全生产--线路巡检记录 服务实现类 *

* * @author 芯导软件(江苏)有限公司 * @since 2026-06-29 */ @Service public class SafeLineInspectionRecordServiceImpl extends ServiceImpl implements SafeLineInspectionRecordService { @Autowired private FileUtil fileUtil; @Override public List listByInspectionId(Integer inspectionId) { List records = this.lambdaQuery() .eq(SafeLineInspectionRecord::getInspectionId, inspectionId) .orderByDesc(SafeLineInspectionRecord::getCheckTime) .list(); fillAttachments(records); return records; } @Override public boolean save(SafeLineInspectionRecord entity) { boolean saved = super.save(entity); syncAttachments(saved, entity); return saved; } @Override public boolean updateById(SafeLineInspectionRecord entity) { boolean updated = super.updateById(entity); syncAttachments(updated, entity); return updated; } private void syncAttachments(boolean success, SafeLineInspectionRecord entity) { if (!success || entity == null || entity.getId() == null || entity.getStorageBlobDTOs() == null) { return; } fileUtil.saveStorageAttachment( ApplicationTypeEnum.IMAGE, RecordTypeEnum.SAFE_LINE_INSPECTION_RECORD, entity.getId().longValue(), entity.getStorageBlobDTOs() ); } private void fillAttachments(List records) { if (records == null || records.isEmpty()) { return; } records.forEach(record -> { if (record.getId() == null) { return; } List attachments = fileUtil.getStorageBlobVOsByRecordTypeAndRecordId( RecordTypeEnum.SAFE_LINE_INSPECTION_RECORD, record.getId().longValue() ); record.setStorageBlobVOs(attachments == null ? Collections.emptyList() : attachments); }); } }