package com.ruoyi.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.domain.SystemReviewTask;
import com.ruoyi.domain.SystemReviewTaskInbox;
import com.ruoyi.service.SystemReviewTaskInboxService;
import com.ruoyi.mapper.SystemReviewTaskInboxMapper;
import com.ruoyi.service.SystemReviewTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.List;

/**
* @author wangfei
* @description 针对表【t_system_review_task_inbox(体系审查任务收件箱(目前用来获取审查场景变更通知))】的数据库操作Service实现
* @createDate 2023-12-26 09:55:39
*/
@Transactional
@Service
public class SystemReviewTaskInboxServiceImpl extends ServiceImpl<SystemReviewTaskInboxMapper, SystemReviewTaskInbox> implements SystemReviewTaskInboxService {

    @Autowired
    private SystemReviewTaskService systemReviewTaskService;

    @Override
    public void saveNotify(Long reviewSceneChangeTaskId) {
        // 查找所有受变更影响的体系审查任务(所有PENDING状态的任务)
        List<SystemReviewTask> pendingTasks = systemReviewTaskService.findListByStatus(SystemReviewTask.STATUS_PENDING);

        // 构建并保存提醒消息
        List<SystemReviewTaskInbox> inboxes = new ArrayList();
        for(SystemReviewTask task : pendingTasks) {
            SystemReviewTaskInbox inbox = new SystemReviewTaskInbox()
                    .setReviewSceneChangeTaskId(reviewSceneChangeTaskId)
                    .setSystemReviewTaskId(task.getId())
                    .setIsConfirm(0);
            inboxes.add(inbox);
        }

        saveBatch(inboxes);
    }
}