package com.ruoyi.zdsz.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.zdsz.domain.ZEngineeringCivil;
import com.ruoyi.zdsz.domain.ZEngineeringNode;
import com.ruoyi.zdsz.domain.ZEngineeringReview;
import com.ruoyi.zdsz.domain.ZHouse;
import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
import com.ruoyi.zdsz.domain.bo.ZEngineeringReviewBo;
import com.ruoyi.zdsz.domain.bo.switchBo;
import com.ruoyi.zdsz.domain.vo.*;

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

/**
 * 工程节点Service接口
 *
 * @author ruoyi
 * @date 2023-12-27
 */
public interface IZEngineeringNodeService {

    /**
     * 查询工程节点
     */
    ZEngineeringNodeVo queryById(String id);

    /**
     * 获取工程节点
     * @param id
     * @param createTime
     * @return
     */
    ZEngineeringNodeBo query(ZEngineeringNodeBo bo) ;
    ZEngineeringNodeBo queryInsert(ZEngineeringNodeBo bo) ;
    ZEngineeringNodeBo Userquery(ZEngineeringNodeBo bo,String username);
    /**
     * 获取工程节点列表
     * @param id
     * @param createTime
     * @return
     */
    List<ZEngineeringNodeBo> queryListDetails(ZEngineeringNodeBo bo);

    /**
     * 查询工程节点列表
     */
    TableDataInfo<ZEngineeringNodeVo> queryPageList(ZEngineeringNodeBo bo, PageQuery pageQuery);

    /**
     * 查询工程节点列表
     */
    List<ZEngineeringNodeVo> queryList(ZEngineeringNodeBo bo);
    List<ZEngineeringNodeBo> queryNodeList(ZEngineeringCivil bo);

    /**
     * 新增工程节点
     */
    Boolean insertByBo(ZEngineeringNodeBo bo);

    /**
     * 新增工程节点
     * @param bo
     * @return ZEngineeringNode
     */
    ZEngineeringNode insert(ZEngineeringNodeBo bo);


    /**
     * 修改工程节点
     */
    Boolean updateByBo(ZEngineeringNodeBo bo);

    /**
     * 修改
     * @param bo
     * @return
     */
    Boolean update(ZEngineeringNodeBo bo);
    Boolean updateMuch(ZEngineeringNodeBo bo);
    Boolean delete(ZEngineeringNodeBo bo);
    List<String> nodeTypeList(List<ZEngineeringCivil> zEngineeringCivilList,String type,String state,ZEngineeringCivilBo bo);
    Map<String,Object> ReViewList(List<ZEngineeringCivilVo> zEngineeringCivilList);
    Map<String,Object> ReViewPipeJackingList(List<ZEngineeringPipeJackingVo> list);
    Map<String,Object> ReViewInfrastructureList(List<ZEngineeringInfrastructureVo> list);
    Map<String,Object> ReViewSZList(List<ZEngineeringIndustryVo> list);
    Map<String,Object> ReViewGYList(List<ZEngineeringGYVo> list);
    Map<Long,Object> ReViewPKList(List<ZTouchOperationEngineeringVo> list);
    /**
     * 校验并批量删除工程节点信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    String ZEngineeringReview(ZEngineeringNodeBo bo);

    /**
     * 批量审核
     * @param zEngineeringCivilList
     * @return
     */
     int batchReview(List<ZEngineeringCivil> zEngineeringCivilList,ZEngineeringNodeBo zEngineeringNodeBo,String userId);

    /**
     * 审核下载图片
     * @param
     * @return
     */
    int Civilinsert(List<ZEngineeringCivil> zEngineeringCivilList,ZEngineeringNodeBo bo,String UserId);

    Integer  batchNode(List<ZHouse> zHouseList,ZEngineeringCivilBo zEngineeringCivilBo,String userId);
    Integer  batchNodes(switchBo bo);

    Map<String, Object> ReViewAirList(List<ZEngineeringAirWallVo> records);

}
