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);
});
}
}