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

import com.jeeplus.core.persistence.BaseMapper;
import com.jeeplus.core.persistence.annotation.MyBatisMapper;
import com.jeeplus.modules.sg.managementcenter.materialproject.entity.MaterialProject;
import org.apache.ibatis.annotations.Param;

import java.util.List;


@MyBatisMapper
public interface MaterialProjectMapper extends BaseMapper<MaterialProject> {
    /**
     *获取所有的批次
     * */
    List<MaterialProject> findBatch();


    List<MaterialProject> findByList(@Param("list") List<MaterialProject> list);

    Integer insertList(@Param("list") List<MaterialProject> list);

    Integer replaceList(List<MaterialProject> list);

    List<String> findAllReserveName();

    void updateList(List<MaterialProject> materialProjectList);

    List<MaterialProject> findJugdeReserve(MaterialProject materialProject);

    MaterialProject findByReserveName(String reserveName);

    /**
     * 删除施工交底流程信息(xm_construction_clarificaiton)
     * @param reserveProjectName 储备项目名称
     * */
    void deleteConstruction(String reserveProjectName);

    /**
     * 删除拆旧表信息(xm_tear_down)
     * @param reserveProjectName 储备项目名称
     */
    void deleteXmTearDown(String reserveProjectName);

    /**
     * 删除土建工程量信息（xm_engineering_amount）
     * @param reserveProjectName 储备项目名称
     */
    void deleteEngineeringAmount(String reserveProjectName);

    /**
     * 删除其它工程量信息（xm_other_amount）
     * @param reserveProjectName 储备项目名称
     */
    void deleteOtherAmount(String reserveProjectName);

    /**
     * 删除物资领料流程信息(md_acquisition_process)
     * @param reserveProjectName 储备项目名称
     */
    void deleteAcqProcess(String reserveProjectName);

    /**
     * 删除土建流程信息(xm_nonpower_process)
     * @param reserveProjectName 储备项目名称
     */
    void deleteNonProcess(String reserveProjectName);

    /**
     * 删除施工验收（电气）流程信息(sg_construction_process)
     * @param reserveProjectName 储备项目名称
     */
    void deleteConProcess(String reserveProjectName);

    /**
     * 删除转资流程信息(xm_fund_process)
     * @param reserveProjectName 储备项目名称
     */
    void deleteFundProcess(String reserveProjectName);

    /**
     * 结算验收流程信息(xm_settlement_process)
     * @param reserveProjectName 储备项目名称
     */
    void deleteSettProcess(String reserveProjectName);

    /**
     * 删除施工验收流程-上传签字版政策处理清单/缴费单(xm_construction_upload)
     * @param reserveProjectName 储备项目名称
     */
    void deleteConUpload(String reserveProjectName);

    /**
     * 删除项目上传信息（xm_upload_images）
     * @param reserveProjectName 储备项目名称
     */
    void deleteUploadImages(String reserveProjectName);

    /**
     * 删除施工任务分配信息（xm_project_assignment）
     * @param reserveProjectName 储备项目名称
     * */
    void deleteProjectAss(String reserveProjectName);

    /**
     * 删除交底计划安排信息（xm_project_disclosureplan）
     * @param reserveProjectName 储备项目名称
     * */
    void deleteProjectDis(String reserveProjectName);

    /**
     * 删除项目前期基础信息（xm_project_basicinformation）
     * @param reserveProjectName 储备项目名称
     */
    void deleteProjectBas(String reserveProjectName);

    /**
     * 重置项目信息
     * @param materialProject
     * */
    void resetProject(MaterialProject materialProject);
}