/**
 * 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.ErpCredit;
import com.jeeplus.modules.sg.financial.settlement.entity.CostCheck;
import com.jeeplus.modules.sg.financial.settlement.entity.ProjectBudget;
import org.apache.ibatis.annotations.Param;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author user3
 * @date 2020-11-24
 * 财费用检查表mapper
 * */
@MyBatisMapper
public interface CostCheckMapper extends BaseMapper<CostCheck> {
    /**
     * 费用检查信息(批量导入插入)
     * @param list 导入参数
     * @return 成功导入的条数
     * */
    int insertList(@Param("list") List<ProjectBudget> list);


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

    /**
     * 查询库中所有的项目编号，用于比对插入时是否修改
     * @return 所有项目编号
     * */
    List<CostCheck> findAllProjectId();

    /**
     * 费用检查单挑更新
     * @param projectBudget 修改页面提交的值
     * */
    void updateDesignSup(ProjectBudget projectBudget);

    /**
     * 导入送审单获取施工费应付金额
     * @param list 导入list数据集合
     * @return 成功修改的行数
     * */
    int updateConstructionList(@Param("list") List<CostCheck> list);

    /**
     * 修改设计费允许少付
     * @param costCheck 修改数据实体
     * @return 成功修改的行数
     * */
    int updateDes(CostCheck costCheck);

    /**
     * 修改施工费允许少付
     * @param costCheck 修改数据实体
     * @return 成功修改的行数
     * */
    int updateCon(CostCheck costCheck);

    /**
     * 修改监理费允许少付
     * @param costCheck 修改数据实体
     * @return 成功修改的行数
     * */
    int updateSup(CostCheck costCheck);

    /**
     * 修改应付金额
     * @param erpCredits 导入修改数据
     * */
    void updatePaid(@Param("list") List<ErpCredit> erpCredits);

    /**
     * 通过项目定义号查找对应的费用检查信息
     * @return 填写过后的费用检查信息
     * @param projectId 项目定义号
     * */
    CostCheck findALlPaid(String projectId);
}