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

import com.jeeplus.core.persistence.BaseMapper;
import com.jeeplus.core.persistence.annotation.MyBatisMapper;
import com.jeeplus.modules.sg.financial.erpcredit.entity.ErpCreditMaterial;
import com.jeeplus.modules.sg.financial.settlement.entity.DonorMaterial;
import com.jeeplus.modules.sg.financial.settlement.entity.ProjectBudget;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author user3
 * @date 2020-11-24
 * 财费用检查表mapper
 * */
@MyBatisMapper
public interface DonorMaterialMapper extends BaseMapper<DonorMaterial> {
    /**
     * 项目甲供材(批量导入插入)
     * @param list 导入参数
     * @return 成功导入的条数
     * */
    int insertList(@Param("list") List<DonorMaterial> list);
    /*

    *//**
     * 费用检查信息(批量导入更新)
     * @param list 导入参数
     * @return 成功导入的条数
     * *//*
    int updateList(@Param("list") List<DonorMaterial> list);*/



    /**
     * 通过项目编号查询所有项目存在的信息返回，判断是否存在
     * @param list 存在查询用projectId
     * @return 存在的项目编号
     * */
    List<DonorMaterial> findByList(@Param("list") List<DonorMaterial> list);

    /**
     * 通过项目编号查询项目是否存在
     * @param projectId 项目编号
     * @return 甲供材信息
     * */
    int findByProjectId(String projectId);

    /**
     * 通过项目编号删除同一项目下的甲供信息
     * @param projectId 项目编号
     * @return 成功删除的条数
     * */
    int delByProjectId(String projectId);

    /**
     * 通过项目甲供材项目id修改该项目的甲供材信息
     * @param donorMaterial id及备注
     * @return 更新成功的条数
     * */
    int updateRemarks(DonorMaterial donorMaterial);

    /**
     * 通过项目甲供材项目编号，物料编码，物料描述
     * @param entity 需要填写备注的信息
     * @return 更新成功的条数
     * */
    void updateImportRemarks(DonorMaterial entity);

    /**
     * 查找甲供物资超欠供说明
     * @param donorMaterial 查询参数
     * @return 甲供超欠供说明
     */
    List<DonorMaterial> findALLRemarks(DonorMaterial donorMaterial);

    /**
     * 通过项目定义号查询项目的甲供材信息
     * @param projectId 项目定义号
     * @return 甲供材信息
     */
    List<DonorMaterial> findById(String projectId);


    /**
     * 更新项目的erp数量
     * @param projectId 项目定义号
     * @param list 物料信息list
     * */
    void updateErp(@Param("list")List<ErpCreditMaterial> list,@Param("projectId")String projectId);

    /**
     * 通过项目定义号和物料描述查询物料信息是否存在
     * @param projectId  项目定义号
     * @param code 物料编号
     * @return 判断项目是否存在
     */
    int findDonor(@Param("projectId") String projectId,@Param("code") String code,@Param("describe")String describe);

    /**
     * 更新项目的erp数量
     * @param projectId 项目定义号
     * @param material 物料信息
     * */
//    void updateErpOne(@Param("material")ErpCreditMaterial material,@Param("projectId")String projectId);
    void updateErpOne(@Param("material")ErpCreditMaterial material,@Param("projectId")String projectId,@Param("code")String code);

    /**
     * 更新项目的erp数量
     * @param material 物料信息
     * */
    void insertErpOne(@Param("material")ErpCreditMaterial material,@Param("projectId")String projectId,@Param("projectName")String projectName);

    /**
     * 更新项目所有的erp数量默认为0
     * @param projectId 项目定义号
     * */
    void updateErpZero(String projectId);


    /**
     * 删除项目id的甲供材信息
     * @param list
     * */
    void delAll(List<String> list);

    /**
     * 更新项目id的状态
     * @param list
     * */
    void updateStatus(List<String> list);
}