package com.ruoyi.safe.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.safe.pojo.SafeLineInspectionHazard;
import com.ruoyi.safe.mapper.SafeLineInspectionHazardMapper;
import com.ruoyi.safe.service.SafeLineInspectionHazardService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
/**
*
* 安全生产--线路巡检隐患 服务实现类
*
*
* @author 芯导软件(江苏)有限公司
* @since 2026-06-29
*/
@Service
public class SafeLineInspectionHazardServiceImpl extends ServiceImpl implements SafeLineInspectionHazardService {
@Override
public IPage pageSafeLineInspectionHazard(Page page, SafeLineInspectionHazard safeLineInspectionHazard) {
return this.lambdaQuery()
.eq(safeLineInspectionHazard.getInspectionId() != null, SafeLineInspectionHazard::getInspectionId, safeLineInspectionHazard.getInspectionId())
.like(safeLineInspectionHazard.getHazardCode() != null, SafeLineInspectionHazard::getHazardCode, safeLineInspectionHazard.getHazardCode())
.eq(safeLineInspectionHazard.getStatus() != null, SafeLineInspectionHazard::getStatus, safeLineInspectionHazard.getStatus())
.orderByDesc(SafeLineInspectionHazard::getCreateTime)
.page(page);
}
@Override
public List listByInspectionId(Integer inspectionId) {
return this.lambdaQuery()
.eq(SafeLineInspectionHazard::getInspectionId, inspectionId)
.orderByDesc(SafeLineInspectionHazard::getCreateTime)
.list();
}
@Override
public boolean save(SafeLineInspectionHazard entity) {
if (entity.getHazardCode() == null || entity.getHazardCode().isEmpty()) {
entity.setHazardCode(generateHazardCode());
}
return super.save(entity);
}
@Override
public boolean updateById(SafeLineInspectionHazard entity) {
if ("已整改".equals(entity.getStatus())) {
Long currentUserId = SecurityUtils.getUserId();
entity.setRectifyUserId(currentUserId.intValue());
entity.setRectifyTime(LocalDateTime.now());
}
return super.updateById(entity);
}
private String generateHazardCode() {
long count = this.count() + 1;
return "YH" + String.format("%05d", count);
}
}