package io.renren.modules.business.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import io.renren.modules.business.entity.BusinessOutlayEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 支出明细表
 * 
 * @author jiaqiao
 * @email jiaqiao@163.com
 * @date 2022-10-13 10:00:10
 */
@Mapper
public interface BusinessOutlayDao extends BaseMapper<BusinessOutlayEntity> {

    /**
     * 列表 状态为 0 并且不含有翻页
     * @param params
     * @return
     */
    List<BusinessOutlayEntity> listNoPage(Map<String, Object> params);

    List<BusinessOutlayEntity> pcListNoPage(Map<String, Object> params);

    List<Map<String, Object>> queryTotal(Map<String, Object> params);

    /**
     * 获取执行人
     */
    List<Map<String, Object>> queryZxr(Map<String, Object> params);

    /**
     *根据条件获取类别统计信息
     * @param params
     * @return
     */
    List<Map<String, Object>> getLbTotal(Map<String, Object> params);

    List<Map<String, Object>> getLbList(Map<String, Object> params);


    /**
     *根据对应人获取类别统计信息
     * @param writeUserId
     * @return
     */
    List<Map<String,Object>> getLbTotalByWriteUserId(Map<String,Object> writeUserId);

    List<Map<String,Object>> selectOutMoneys(Map<String,Object> params);

    List<Map<String,Object>> getGlf(Map<String,Object> params);

    List<Map<String,Object>>  getGzTj(Map<String,Object> params);

    List<Map<String,Object>>  getGzTj2(Map<String,Object> params);

    /**.
     * 根据用户id获取信息
     * @return
     */
    Double getTotalByHJGId(Map<String, Object> params);

    /**
     * 获取支出最大时间列表
     */
    List<BusinessOutlayEntity> biggerTimeList();

    /**
     * 获取食堂标准信息
     * @param params
     * @return
     */
    List<Map<String,Object>> stbzList(Map<String, Object> params);

    /**
     * 立项跟踪-查询支出成本总汇
     */
    List<Map<String,Object>> totalCbzh(@Param("projectId") Integer projectId);
    /**
     * 立项跟踪-人员明细
     */
    List<Map<String,Object>> rymx(@Param("projectId") Integer projectId);
    /**
     * 立项跟踪-材料、机械、其他
     */
    List<Map<String,Object>> threeCl(@Param("projectId") Integer projectId);

    /**
     * 合同跟踪 获取成本数据
     * @param projectId
     * @return
     */
    List<Map<String, Object>> cbByContractIds(@Param("projectId") String projectId);

    /**
     * 审批不通过
     * @param approvalId
     */
    void updateNoPassByIds(String approvalId);
    /**
     * 锁住
     */
    void updateLocked(String userId);

    /***
     *获取数据最新的提交信息
     * @return
     */
    Date getLatestTime();

    /**
     * 根据年份 更新年度信息
     * @param startTime
     * @param annualHsId
     */
    void updateND(@Param("startTime") String startTime, @Param("endTime") String endTime,@Param("annualHsId") String annualHsId);

    /**
     * 获取当前年度数据
     * @return
     */
    List<BusinessOutlayEntity> listNowTime(Map<String, Object> params);

    /**
     * 获取转账验证数据
     * @return
     */
    List<Map<String,Object>> yzList(Map<String, Object> params);


    /**
     * 列表-支出查询合计
     */
    Map<String,Object> getZccxhj(Map<String, Object> params);

}
