package com.njcn.csdevice.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.pojo.param.CsEngineeringAddParm;
import com.njcn.csdevice.pojo.param.CsEngineeringAuditParm;
import com.njcn.csdevice.pojo.param.CsEngineeringQueryPageParm;
import com.njcn.csdevice.pojo.param.CsEngineeringQueryParm;
import com.njcn.csdevice.pojo.po.CsEngineeringPO;
import com.njcn.csdevice.pojo.vo.CsEngineeringVO;

import java.util.List;

/**
 * 
 * Description:
 * 接口文档访问地址：http://serverIP:port/swagger-ui.html
 * Date: 2023/4/7  11:04【需求编号】
 *
 * @author clam
 * @version V1.0.0
 */
public interface CsEngineeringService extends IService<CsEngineeringPO>{

        /** 
        * @Description: 新增工程
        * @Param: [csEngineeringAddParm] 
        * @return: java.lang.Boolean 
        * @Author: clam
        * @Date: 2023/4/10 
        */
        CsEngineeringPO addEngineering(CsEngineeringAddParm csEngineeringAddParm);

        Boolean auditEngineering(CsEngineeringAuditParm csEngineeringAuditParm);
        /** 
        * @Description: 查询工程
        * @Param: [csEngineeringQueryParm] 
        * @return: java.util.List<com.njcn.algorithm.pojo.vo.CsEngineeringVO> 
        * @Author: clam
        * @Date: 2023/4/10 
        */ 
        List<CsEngineeringVO> queryEngineering(CsEngineeringQueryParm csEngineeringQueryParm);
    /** 
    * @Description: 分页查询
    * @Param: [csEngineeringQueryPageParm] 
    * @return: com.baomidou.mybatisplus.core.metadata.IPage<com.njcn.algorithm.pojo.vo.CsEngineeringVO> 
    * @Author: clam
    * @Date: 2023/4/12 
    */ 
    IPage<CsEngineeringVO> queryEngineeringPage(CsEngineeringQueryPageParm csEngineeringQueryPageParm);

    /**
     * 根据工程id获取工程信息
     * @param list
     * @return
     */
    List<CsEngineeringPO> getEngineerings(List<String> list);

    CsEngineeringPO queryEngineeringById(String id);

    List<CsEngineeringPO> getUnlinkedEngineering(String userId);

    CsEngineeringPO add(CsEngineeringAddParm csEngineeringAddParm);

    CsEngineeringPO updateData(CsEngineeringAuditParm csEngineeringAuditParm);

    boolean deleteData(String id);

    CsEngineeringPO getEngineeringByName(String name);

}
