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

import com.jeeplus.core.persistence.BaseMapper;
import com.jeeplus.core.persistence.annotation.MyBatisMapper;
import com.jeeplus.modules.sg.audit.information.entity.Information;
import com.jeeplus.modules.sg.audit.information.entity.append;
import com.jeeplus.modules.sg.audit.information.entity.constant;
import com.jeeplus.modules.sg.audit.material.entity.Material;
import com.jeeplus.modules.sg.financial.expense.entity.Expense;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 项目管理MAPPER接口
 * @author
 * @version
 */
@MyBatisMapper
public interface InformationMapper extends BaseMapper<Information> {

    List<Information> findAllInformationList();

    int insertInfor(Information information);

    //根据项目定义号，查询
    Information findListById(@Param("projectId") String projectId);

    //插入\更新项目信息（不包含送审信息），使用replace into根据数据库主键（project_id）判断插入或更新
    //更新流程，删除该条数据，重新插入
    int saveInfo(@Param("information") List<Information> list);

    //根据项目定义号，项目名称，更新审定日期---暂未使用
    int updateInformationDate(Information information);

    //将所有符合项目定义号、第一次完成时间是null的值，第一次完成时间为当前时间，是否完成修改为是---暂未使用
    int updateDate(List<Material> material);

    //根据项目定义号与项目名称查询---暂未使用
    Information findInformationByID(Information information);

    //导入送审更新
    int updateAppend(List<append> list);

    //根据导入查询文件导出物料清单
    List<Material> allNoBack(List<Information> list);

    //根据页面查询导出物料清单
    List<Material> allNo(List<Information> list);

    //根据导入查询文件导出项目清单
    List<Information> exportInfor(List<Information> list);

    //根据页面查询导出项目清单
    List<Information> export(List<Information> list);

    //根据页面得到项目定义号
    List<Information> findIdByList(List<Information> list);

    //获取超期时间节点
    String findOverTime(String overType);

    int updateConstant(constant constant);

    List<Information> findListWord(Information entity);

    //通过查询条件，查询所有未完成领退料的信息
    List<Information> findNoFinishList(List<String> strings);
    //根据id列表 查询甲供材项目信息
    List<Information> findListMain(List<String> ids);

}