/*
 * Copyright [2022] [https://www.xiaonuo.vip]
 *
 * Snowy采用APACHE LICENSE 2.0开源协议，您在使用过程中，需要注意以下几点：
 *
 * 1.请不要删除和修改根目录下的LICENSE文件。
 * 2.请不要删除和修改Snowy源码头部的版权声明。
 * 3.本项目代码可免费商业使用，商业使用请保留源码和相关描述文件的项目出处，作者声明等。
 * 4.分发源码时候，请注明软件出处 https://www.xiaonuo.vip
 * 5.不可二次分发开源参与同类竞品，如有想法可联系团队xiaonuobase@qq.com商议合作。
 * 6.若您的项目无法满足以上几点，需要更多功能代码，获取Snowy商业授权许可，请在官网购买授权，地址为 https://www.xiaonuo.vip
 */
package com.unis.policy.info.modular.auditRequest.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.unis.basic.info.modular.unitInfo.param.UnitInfoIdParam;
import com.unis.emergencySupport.modular.es.entity.EsNetworkEntry;
import com.unis.emergencySupport.modular.es.entity.vo.EsNetworkEntryVO;
import com.unis.emergencySupport.modular.es.param.EsNetworkEntryIdParam;
import com.unis.emergencySupport.modular.es.param.EsNetworkEntryPageParam;
import com.unis.policy.info.modular.auditRequest.entity.AuditRequest;
import com.unis.policy.info.modular.auditRequest.entity.TFumigationRecord;
import com.unis.policy.info.modular.auditRequest.param.*;
import com.unis.policy.info.modular.auditRequest.vo.AuditRequestVO;
import com.unis.policy.info.modular.auditRequest.vo.PmApplicationVO;
import com.unis.policy.info.modular.auditRequest.vo.SqrEnterpriseVO;
import com.unis.policy.info.modular.auditRequest.vo.UnitInfoVO;
import com.unis.policy.info.modular.sqrEnterprise.param.SqrEnterpriseIdParam;
import com.unis.projectManagement.modular.pmApplication.entity.PmApplication;
import com.unis.projectManagement.modular.pmApplication.param.PmApplicationIdParam;
import com.unis.projectManagement.modular.pmApplication.param.PmApplicationPageParam;
import com.unis.projectManagement.modular.pmStorageConstruction.entity.PmStorageConstruction;
import com.unis.projectManagement.modular.pmStorageConstruction.param.PmStorageConstructionIdParam;
import com.unis.projectManagement.modular.pmStorageConstruction.param.PmStorageConstructionPageParam;

import java.util.List;

/**
 * 审核请求Service接口
 *
 * @author TS
 * @date  2024/04/18 14:51
 **/
public interface AuditRequestService extends IService<AuditRequest> {

    /**
     * 获取审核请求分页
     *
     * @author TS
     * @date  2024/04/18 14:51
     */
    Page<AuditRequest> page(AuditRequestPageParam auditRequestPageParam);

    /**
     * 进行审核操作
     *
     * @author TS
     * @date  2024/04/18 14:51
     */
    void audit(AuditRequestAddParam auditRequestAddParam);

    /**
     * 进行驳回操作
     *
     * @author TS
     * @date  2024/04/18 14:51
     */
    void reject(AuditRequestAddParam auditRequestAddParam);

    /**
     * 删除审核请求
     *
     * @author TS
     * @date  2024/04/18 14:51
     */
    void delete(List<AuditRequestIdParam> auditRequestIdParamList);

    /**
     * 获取审核请求详情
     *
     * @author TS
     * @date  2024/04/18 14:51
     */
    JSONObject detail(AuditRequestDetailParam auditRequestDetailParam);

    /**
     * 获取审核请求详情
     *
     * @author TS
     * @date  2024/04/18 14:51
     **/
    AuditRequest queryEntity(String id);
    /**
     * 承储资格审批 --点击审批的接口
     *
     * @author hjc
     * @date 2024/04/18 14:51
     */
    void eligibilityApproval(AuditRequestStorageAddParam auditRequestStorageAddParam);

    /*    * 承储资格审批 --审批接口 审批时，做回显数据
     *
     * @author hjc
     * @date  2024/04/18 14:51
     */
    SqrEnterpriseVO getAudit(SqrEnterpriseIdParam enterpriseIdParam);
    /**
     * 承储资格审批--获取详情
     *
     * @author hjc
     * @date 2024/04/18 14:51
     */
    JSONObject getDetail(AuditRequestGetDetailParam auditRequestGetDetailParam);

    /**
     * 承储资格审批--分页展示列表数据
     *
     * @author hjc
     * @date 2024/04/18 14:51
     */
    Page<AuditRequestVO> pageSqrEnterprise(AuditRequestPageParam auditRequestPageParam);
    /**
     * 承储资格企业--分页展示列表数据
     *
     * @author hjc
     * @date 2024/04/18 14:51
     */
    Page<AuditRequestVO> pageEnterprise(AuditRequestPageParam auditRequestPageParam);
    /**
     * 承储资格企业--查看详情
     *
     * @author hjc
     * @date 2024/04/18 14:51
     */
    SqrEnterpriseVO enterpriseInfo(String id);

    /**
     * 承储资格延续申请--分页查询
     * @author hjc
     * @date 2024/04/18 14:51
     */
    Page<AuditRequestVO> continuationPage(AuditRequestPageParam auditRequestPageParam);

    /**
     * 补发证书--分页查询
     * @author hjc
     * @date 2024/04/18 14:51
     */
    Page<AuditRequestVO> reissuePage(AuditRequestPageParam auditRequestPageParam);
    /**
     * 补发证书--查看详情
     * @author hjc
     * @date 2024/04/18 14:51
     */
    UnitInfoVO reissueInfo(String id);
    /**
     * 补发证书--审核
     * @author hjc
     * @date 2024/04/18 14:51
     */
    void reissueAudit(AuditRequestStorageAddParam auditRequestStorageAddParam);

    /**
     * 信息变更审批--分页
     *
     * @author hjc
     * @date 2024/04/18 14:51
     */
    Page<AuditRequestVO> infoChangesPage(AuditRequestPageParam auditRequestPageParam);


    /**
     * 信息变更审批--审核
     *
     * @author hjc
     * @date 2024/04/18 14:51
     */
    void infoChangesAudit(AuditRequestStorageAddParam auditRequestGetDetailParam);



	    /**
     *行人才规则审核/驳回操作
     * @param auditRequestAddParam
     * @return
     */
	 String auditPersonPlan(AuditRequestAddParam auditRequestAddParam);
    /**
     * 获取熏蒸备案分页
     *
     * @author hjc
     * @date  2024/05/18 15:59
     */
    Page<TFumigationRecord> tFumigationRecordPage(TFumigationRecordPageParam tFumigationRecordPageParam);
    /**
     * 获取熏蒸备案详情
     *
     * @author hjc
     * @date  2024/05/18 15:59
     */
    TFumigationRecord gettFumigationRecordDetail(TFumigationRecordIdParam tFumigationRecordIdParam);
    /**
     * 审核熏蒸备案
     *
     * @author hjc
     * @date  2024/05/18 15:59
     */
    void auditTFumigationRecordById(TFumigationRecordAuditParam param);

    /**
     * 应急保障-应急网点审批列表
     * @param esNetworkEntryPageParam
     * @return
     */
    Page<EsNetworkEntry> esNetworkEntryPage(EsNetworkEntryPageParam esNetworkEntryPageParam);

    /**
     * 应急保障-应急网点审批详情
     * @param esNetworkEntryIdParam
     * @return
     */
    EsNetworkEntryVO selectesNetworkEntryDetail(EsNetworkEntryIdParam esNetworkEntryIdParam);

    /**
     * 审批
     * @param auditRequestEditParam
     */
    void esNetworkEntryRequest(AuditRequestEditParam auditRequestEditParam);
    /**
     * 获取项目审批分页
     *
     * @author hjc
     * @date 2024/05/27 17:26
     */
    Page<PmApplicationVO> approvalPage(PmApplicationByStatusPageParam pmApplicationPageParam);

    /**
     * 项目管理-详情
     *
     * @author hjc
     * @date  2024/05/18 15:59
     */
    PmApplicationVO getPmApplicationDetail(PmApplicationIdParam pmApplicationIdParam);
    /**
     * 项目管理-审核
     *
     * @author hjc
     * @date  2024/05/18 15:59
     */
    void auditPmApplicationById(PmApplicationParam param);
    /**
     * 获取仓储设施投资-仓储设施建设审批分页
     *
     * @author hjc
     * @date  2024/05/30 15:58
     */
    Page<PmStorageConstruction> pmStorageConstructionPage(PmStorageConstructionPageParam pmStorageConstructionPageParam);

    /**
     * 获取仓储设施投资-仓储设施建设审批详情
     *
     * @author hjc
     * @date  2024/05/30 15:58
     */
    JSONObject getPmStorageConstruction(PmStorageConstructionIdParam param);

    /**
     * 仓储设施建设审批-审核
     *
     * @author hjc
     * @date  2024/05/18 15:59
     */
    void auditPmStorageConstructionById(PmStorageConstructionAuditParam param);
}
