package cn.cslg.pas.service.upLoadPatent;


import cn.cslg.pas.common.core.base.Constants;
import cn.cslg.pas.common.model.dto.TaskWebSocketDTO;
import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
import cn.cslg.pas.common.utils.Response;
import cn.cslg.pas.common.utils.ResponseEnum;
import cn.cslg.pas.common.utils.WebSocketServer;
import cn.cslg.pas.domain.Task;
import org.springframework.stereotype.Service;

/**
 * 处理消息通知
 *
 * @Author 李仁杰
 */
@Service
public class MessageService {

    /**
     * 通过WebSocket 在每一次循环结束后 向前端发送完成进度
     *
     * @param task       任务Task（这里主要为了拿任务taskId和文件原始名称oldName）
     * @param total      专利总数量
     * @param i          当前专利下标
     * @param percentage 进度（需要计算）
     */
    public void sendWebsocketMessage(Task task, Integer total, Integer i, Long percentage) {
        //通过WebSocket 在每一次循环结束后 向前端发送完成进度
        //percentage：total == 0 ? 0 : Math.round((total.equals(i) ? (i * 1D) : (i + 1D)) / total * 100D)
        //当任务状态为完成时，flag为true
        boolean flag = task.getStatus().equals(2);
        WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
                .setTaskId(task.getId())
                .setTaskStatus(task.getStatus())
                .setProjectId(task.getProjectId())
                .setReportId(task.getReportId())
                .setComplete(flag)
                .setIndex(i)
                .setTaskType(task.getType())
                .setPercentage(percentage)
                .setFileName("")
                .setOldName(task.getOldName())
                .setUrl("")
                .setTotal(total), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), task.getCreateBy() + "");
    }

}
