/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.filing.summary.mapper;

import com.jeeplus.core.persistence.BaseMapper;
import com.jeeplus.core.persistence.annotation.MyBatisMapper;
import com.jeeplus.modules.filing.approvalStage.entity.EarlyStage;
import com.jeeplus.modules.filing.constructionStage.entity.ConstructionStage;
import com.jeeplus.modules.filing.earlyEngineering.entity.EarlyEngineering;
import com.jeeplus.modules.filing.summary.entity.Summary;

import java.util.List;

/**
 * 基础信息管理
 * @author qy
 * @version 2021-03-23
 */
@MyBatisMapper
public interface SummaryMapper extends BaseMapper<Summary> {
    /**
     * 根据父级id查找所有的字类id
     * */
    List<Summary> findChildList(Summary entity);

    List<Summary> findChildListBy(Summary entity);

    /**
     * 通过项目id查询出所有的项目信息
     * */
    List<Summary> findAll(List<String> idList);

    /**
     * 查早所有的父级数据
     * */
    Summary findOne(String id);

    /**
     * 插入子级信息
     * */
    void insertChild(Summary entity);

    /**
     * 修改子级信息
     * */
    void updateChild(Summary entity);

    /**
     * 删除子级信息
     * */
    void deleteChild(Summary entity);

    /**
     * 通过projectCode查询项目是否已经存在
     */
    Summary findByProjectCode(String projectCode);

    /**
     * 父类修改项目编码后字类自动更新对应父级id
     * */
    void updateChildParent(Summary entity);

    List<Summary> findChildByCode(String projectCode);

    /**
     * 查询所有父级集合的id
     * */
    List<String> findALlId();


    List<Summary> findAllChildList(Summary entity);


    /**
     * 项目前前期阶段
     * */
    Integer findByCode(Summary entity);

    /**
     * 判断初设阶段
     * */
    Integer findDesignStage(Summary entity);

    /**
     * 判断批概阶段
     * */
    Integer findReviewStage(Summary entity);

    /**
     * 判断招标与合同管理
     * */
    Integer findBiddingContract(Summary entity);

    /**
     * 判断报建审批
     * */
    Integer findApplicationFor(Summary entity);

    /**
     * 判断依法合规
     * */
    Integer findLegalCompliance(Summary entity);

    /**
     * 工程建设阶段
     * */
    Integer findConstructionStage(Summary entity);

    void insertEarlyStage(Summary entity);

    void updateEarlyStage(Summary entity);

    void insertDesign(Summary entity);
    void updateDesign(Summary entity);
    void insertReviewStage(Summary entity);
    void updateReviewStage(Summary entity);
    void insertBiddingContract(Summary entity);
    void updateBiddingContract(Summary entity);
    void insertApplicationFor(Summary entity);
    void updateApplicationFor(Summary entity);
    void insertLegalCompliance(Summary entity);
    void updateLegalCompliance(Summary entity);

    void insertConstructionStage(Summary entity);

    void updateConstructionStage(Summary entity);

}