package com.njcn.csharmonic.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csharmonic.pojo.param.PqGovernPlanParam;
import com.njcn.csharmonic.pojo.po.PqGovernPlan;
import com.njcn.csharmonic.pojo.vo.PqGovernPlanVo;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xy
 * @since 2026-06-16
 */
public interface IPqGovernPlanService extends IService<PqGovernPlan> {

    /**
     * 新增治理方案
     *
     * @param param 治理方案参数
     */
    boolean save(PqGovernPlanParam param);

    /**
     * 修改治理方案
     *
     * @param param 治理方案参数
     */
    boolean update(PqGovernPlanParam.UpdatePqGovernPlanParam param);

    /**
     * 删除治理方案
     *
     * @param ids 治理方案ID集合
     */
    boolean delete(List<String> ids);

    /**
     * 根据pid查询所有治理方案
     * @param pid 用户id
     * @return 治理方案列表
     */
    List<PqGovernPlanVo> getListByPid(String pid);

    /**
     * 查询所有治理方案(剔除governBefore和governAfter为null的数据,按sort升序)
     *
     * @return 治理方案列表
     */
    List<PqGovernPlan> getListExcludeNull();


    /**
     * 根据id清空治理前后监测点数据
     *
     * @param id 治理方案ID
     */
    boolean clearGovernPoints(String id);

    /**
     * 根据监测点id查询所有治理方案(匹配治理前或治理后)
     *
     * @param ids 监测点id集合
     * @return 治理方案列表
     */
    List<PqGovernPlan> getListByMonitorPoint(List<String> ids, String governType);

}
