package com.njcn.process.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.vo.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 电能质量问题接口类
 * @author xiaoyao
 * @version 1.0.0
 * @createTime 2022/11/14 10:59
 */
public interface IssuesService {

    /**
     * 填报在线监测超标问题
     */
    void addExcessiveIssues(ExcessiveParam excessiveParam);

    /**
     * 填报普测超标问题
     */
    void addGeneralSurveyIssues(GeneralSurveyParam generalSurveyParam);

    /**
     * 填报用户投诉问题
     */
    void addComplaintIssues(ComplaintParam complaintParam);

    /**
     * 填报运维监控异常问题
     */
    void addAbnormalIssues(AbnormalParam abnormalParam);

    /**
     * 查询问题列表
     */
    Page<IssuesVO> getIssues(QueryIssuesParam queryIssuesParam);

    /**
     * 查询在线监测超标问题详情
     */
    ExcessiveDetailVO getExcessiveDetail(String powerQualityProblemNo);

    /**
     * 查询普测超标问题详情
     */
    GeneralSurveyVO getGeneralSurveyDetail(String powerQualityProblemNo);

    /**
     * 查询用户投诉问题详情
     */
    ComplaintVO getComplaintDetail(String powerQualityProblemNo);

    /**
     * 查询运维异常问题详情
     */
    AbnormalVO getAbnormalDetail(String powerQualityProblemNo);

    /**
     * 原因分析
     */
    void reasonAnalysis(ProcessParam processParam);

    /**
     * 计划整改措施、实际采取措施、成效分析
     */
    void process(ProcessParam processParam, String code);

    /**
     * 问题归档
     */
    void archive(String powerQualityProblemNo);

    /**
     * 上传文件
     */
    String uploadFile(MultipartFile issuesFile);

    /**
     * 下载文件
     */
    String downloadFile(String powerQualityProblemNo, String reportProcess);

    /**
     * 删除问题
     */
    void deleteIssues(String powerQualityProblemNo);
    /** 
    * @Description: 查询问题及工单（当前部门下） 
    * @Param: [orgNo] 
    * @return: com.njcn.process.pojo.vo.IssueesAndOrderVO 
    * @Author: clam
    * @Date: 2023/1/5 
    */ 
    IssueesAndOrderVO queryIssuesAndOrder(String orgNo);
    /** 
    * @Description: 电能质量问题审核
    * @Param: [electricityQualityCheckParam] 
    * @return: java.lang.Boolean 
    * @Author: clam
    * @Date: 2023/2/22 
    */ 
    Boolean checkPowerQuality(ElectricityQualityCheckParam electricityQualityCheckParam);
    /** 
    * @Description: 历史审核记录查询
    * @Param: [powerQualityProblemNo] 
    * @return: java.util.List<com.njcn.process.pojo.vo.RStatElectricQualityProblemLogVO> 
    * @Author: clam
    * @Date: 2023/2/23 
    */ 
    List<RStatElectricQualityProblemLogVO> queryCheckTrack(String powerQualityProblemNo);
}
