package com.ruoyi.device.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.device.dto.HazardReportDto; import com.ruoyi.device.mapper.HazardReportMapper; import com.ruoyi.device.pojo.HazardReport; import com.ruoyi.device.service.IHazardReportService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import jakarta.servlet.http.HttpServletResponse; import java.time.LocalDateTime; import java.util.List; /** * 隐患上报Service实现类 */ @Service @RequiredArgsConstructor public class HazardReportServiceImpl extends ServiceImpl implements IHazardReportService { private final HazardReportMapper hazardReportMapper; /** * 分页查询隐患上报列表 */ @Override public IPage queryPage(Page page, HazardReportDto dto) { List list = hazardReportMapper.selectHazardReportList(dto); Page resultPage = new Page<>(page.getCurrent(), page.getSize(), list.size()); resultPage.setRecords(list); return resultPage; } /** * 新增隐患上报 */ @Override public int add(HazardReportDto dto) { // 设置初始状态为待整改 dto.setRectificationStatus("待整改"); dto.setReportTime(LocalDateTime.now()); return hazardReportMapper.insert(dto) ? 1 : 0; } /** * 记录整改结果 */ @Override public int rectify(HazardReportDto dto) { // 查询原记录 HazardReport existing = hazardReportMapper.selectById(dto.getId()); if (existing == null) { return 0; } // 更新整改信息 existing.setRectificationStatus("已完成"); existing.setRectificationPerson(dto.getRectificationPerson()); existing.setRectificationTime(LocalDateTime.now()); existing.setRectificationDescription(dto.getRectificationDescription()); return hazardReportMapper.updateById(existing) ? 1 : 0; } /** * 记录验收结果 */ @Override public int accept(HazardReportDto dto) { // 查询原记录 HazardReport existing = hazardReportMapper.selectById(dto.getId()); if (existing == null) { return 0; } // 更新验收信息 existing.setAcceptancePerson(dto.getAcceptancePerson()); existing.setAcceptanceTime(LocalDateTime.now()); existing.setAcceptanceResult(dto.getAcceptanceResult()); return hazardReportMapper.updateById(existing) ? 1 : 0; } /** * 导出隐患上报记录 */ @Override public void export(HttpServletResponse response, HazardReportDto dto) { List list = hazardReportMapper.selectHazardReportList(dto); ExcelUtil util = new ExcelUtil<>(HazardReportDto.class); util.exportExcel(response, list, "隐患上报记录"); } }