package com.ruoyi.safe.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.project.system.domain.SysNotice;
import com.ruoyi.project.system.mapper.SysNoticeMapper;
import com.ruoyi.project.system.service.ISysNoticeService;
import com.ruoyi.project.system.service.impl.SysNoticeServiceImpl;
import com.ruoyi.safe.dto.SafeHiddenDto;
import com.ruoyi.safe.pojo.SafeHidden;
import com.ruoyi.safe.mapper.SafeHiddenMapper;
import com.ruoyi.safe.service.SafeHiddenService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List;
/**
*
* 安全生产--隐患排查上报 服务实现类
*
*
* @author 芯导软件(江苏)有限公司
* @since 2026-01-28 11:10:54
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class SafeHiddenServiceImpl extends ServiceImpl implements SafeHiddenService {
@Autowired
private SafeHiddenMapper safeHiddenMapper;
@Autowired
private ISysNoticeService sysNoticeService;
@Override
public IPage pageSafeHidden(Page page, SafeHiddenDto safeHiddenDto) {
return safeHiddenMapper.pageSafeHidden(page, safeHiddenDto);
}
@Override
public int add(SafeHidden safeHidden) {
safeHiddenMapper.insert(safeHidden);
String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
String no = "YH" + String.format("%s%03d", datePrefix, safeHidden.getId());
safeHidden.setHiddenCode(no);
safeHiddenMapper.updateById(safeHidden);
//消息通知
sysNoticeService.simpleNoticeByUser("隐患排查上报整改",
"隐患类型:"+safeHidden.getType()+"\n"+
"隐患风险等级:"+safeHidden.getRiskLevel()+"\n"+
"隐患具体位置:"+safeHidden.getLocation()+"\n"+
"隐患描述:"+safeHidden.getHiddenDesc()+"\n"+
"整改完成期限(日期):"+safeHidden.getRectifyTime(),
Arrays.asList(Long.valueOf(safeHidden.getRectifyUserId())),
"/collaborativeApproval/approvalProcess?id=" + safeHidden.getId());
return 0;
}
@Override
public int delSafeHidden(List ids) {
List safeHiddens = safeHiddenMapper.selectBatchIds(ids);
for (SafeHidden safeHidden : safeHiddens) {
// 删除对应的消息通知
sysNoticeService.remove(new LambdaQueryWrapper()
.eq(SysNotice::getNoticeTitle, "隐患排查上报整改")
.eq(SysNotice::getSenderId, safeHidden.getCreateUser())
.apply("CAST(notice_content AS CHAR) LIKE CONCAT('%', {0}, '%')", safeHidden.getId()));
}
safeHiddenMapper.deleteBatchIds(ids);
return 0;
}
}