package com.ruoyi.zdsz.service;

import com.ruoyi.zdsz.domain.ZEngineeringCivil;
import com.ruoyi.zdsz.domain.ZEngineeringReview;
import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
import com.ruoyi.zdsz.domain.bo.ZEngineeringInfoBo;
import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
import com.ruoyi.zdsz.domain.vo.ZEngineeringNodeVo;
import com.ruoyi.zdsz.domain.vo.ZEngineeringReviewVo;
import com.ruoyi.zdsz.domain.bo.ZEngineeringReviewBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;

/**
 * 工程审核Service接口
 *
 * @author ruoyi
 * @date 2023-12-27
 */
public interface IZEngineeringReviewService {

    /**
     * 查询工程审核
     */
    ZEngineeringReviewVo queryById(String id);

    /**
     * 查询工程审核(节点使用)
     */
    ZEngineeringReviewBo query(ZEngineeringNodeBo bo);

    /**
     * 查询工程审核列表
     */
    TableDataInfo<ZEngineeringReviewVo> queryPageList(ZEngineeringReviewBo bo, PageQuery pageQuery);

    /**
     * 查询工程审核列表
     */
    List<ZEngineeringReviewVo> queryList(ZEngineeringReviewBo bo);

    /**
     * 新增工程审核
     */
    Boolean insertByBo(ZEngineeringReviewBo bo);

    Boolean insert(ZEngineeringReviewBo bo);

    Boolean Civilinsert(ZEngineeringCivil zEngineeringCivil, ZEngineeringReviewBo bo);

    /**
     * 批量插入
     *
     * @param bo
     * @return
     */
    Boolean Bacthinsert(ZEngineeringReview bo);

    /**
     * 批量审核
     *
     * @param bo
     * @return
     */
    Boolean insertBacth(List<ZEngineeringReviewBo> bo);


    /**
     * 修改工程审核
     */
    Boolean updateByBo(ZEngineeringReviewBo bo);

    /**
     * 校验并批量删除工程审核信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    Boolean updateCivilStatus(ZEngineeringCivil zEngineeringCivil);
    Boolean deleteByNodeId(ZEngineeringInfoBo bo);
    Boolean deleteByInfoId(ZEngineeringNodeBo bo);
    Boolean deleteByNodeBoId(ZEngineeringNodeBo bo);
}
