package com.ruoyi.tc.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.tc.entity.AssetTask;
import com.ruoyi.tc.entity.po.*;
import com.ruoyi.tc.entity.request.AssestTaskXqRequest;
import com.ruoyi.tc.entity.request.AssetCurrentShRequest;
import com.ruoyi.tc.entity.request.AssetTaskPageRequest;
import com.ruoyi.tc.entity.request.AssetdwHcRequest;
import com.ruoyi.tc.entity.response.AssestTaskXqresponse;
import com.ruoyi.tc.entity.response.AssetTaskResponse;
import com.ruoyi.tc.entity.response.AssetdwHcResponse;
import io.swagger.models.auth.In;

import java.util.List;

/**
 * 任务主表(AssetTask)表服务接口
 *
 * @author makejava
 * @since 2024-11-18 13:23:09
 */
public interface AssetTaskService extends IService<AssetTask> {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    AssetTaskResponse queryById(Integer id);

    /**
     * 分页查询
     *
     * @param assetTask   筛选条件
     * @param pageRequest 分页对象
     * @return 查询结果
     */
    Page<AssetTask> queryByPage(Page<AssetTask> assetTask, AssetTaskPageRequest pageRequest);

    /**
     * 新增数据
     *
     * @param assetTask 实例对象
     * @return 实例对象
     */
    void insert(AssetTask assetTask);

    /**
     * 修改数据
     *
     * @param assetTask 实例对象
     * @return 实例对象
     */
    int update(AssetTask assetTask);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);


    /**
     * web资产任务审核详情信息
     *
     * @param taskId  任务id
     * @param assetId 资产id
     * @return
     */
    AssetCurrentCpPo taskSh(int taskId, int assetId);


    /**
     * 小程序资产任务审核详情信息
     *
     * @param taskId  任务id
     * @param assetId 资产id
     * @return
     */
    AssetMiniProgramsCpPo minitaskSh(int taskId, int assetId);


    /**
     * 公众号资产任务审核详情信息
     *
     * @param taskId  任务id
     * @param assetId 资产id
     * @return
     */
    AssetOfficialAccountCpPo officetaskSh(int taskId, int assetId);


    /**
     * 电子邮件资产任务审核详情信息
     *
     * @param taskId  任务id
     * @param assetId 资产id
     * @return
     */
    AssetEmailCpPo emailtaskSh(int taskId, int assetId);

    /**
     * 电子邮件资产任务审核详情信息
     *
     * @param taskId  任务id
     * @param assetId 资产id
     * @return
     */
    AssetAppCpPo apptaskSh(int taskId, int assetId);

    /**
     * 资产核查信息
     *
     * @param page        分页参数
     * @param pageRequest 查询条件
     * @return
     */
    Page<AssestTaskXqresponse> zcHc(Page<AssestTaskXqresponse> page, AssestTaskXqRequest pageRequest);


    /**
     * 管理端审核
     *
     * @param req 请求类
     * @return
     */
    int sh(AssetCurrentShRequest req);


    /**
     * 管理端-单位核查情况
     *
     * @return
     */
    Page<AssetdwHcResponse> dwHc(Page<AssetdwHcResponse> assetdwHcResponsePage, AssetdwHcRequest req);


    /**
     * 根据单位名称查询是否有进行中的任务
     *
     * @param dwmc 单位名称
     * @return
     */
    List<AssetTask> taskList(String dwmc);

    /**
     * 修改已关停
     *
     * @param taskId 任务id
     */

    void updateYgtByTaskId(Integer taskId,Integer count);
}
