package com.ym.mec.biz.dal.dao;

import com.ym.mec.biz.dal.dto.FinancialExpenditureDto;
import com.ym.mec.biz.dal.dto.PWorkOrderInfo;
import com.ym.mec.biz.dal.entity.FinancialExpenditure;
import com.ym.mec.common.dal.BaseDAO;
import org.apache.ibatis.annotations.Param;

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

public interface FinancialExpenditureDao extends BaseDAO<Long, FinancialExpenditure> {

    int batchInsert(@Param("financialExpenditures") List<FinancialExpenditure> financialExpenditures);

    int findFinancialExpenditureCount(Map<String, Object> params);

    List<FinancialExpenditureDto> queryFinancialExpenditurePage(Map<String, Object> params);

    void batchDel(String ids);

    /**
     * 统计合作单位各类型的支出
     *
     * @return
     */
    List<FinancialExpenditure> getCooperationExpenditure(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("tenantId") Integer tenantId);

    /**
     * @param collect:
     * @return java.lang.Integer
     * @describe
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/16
     * @time 11:38
     */
    List<String> countBydingTalk(@Param("collect") List<Object> collect);

    /**
    * @description: 同步oa审批到支出记录
     * @param workOrderId
    * @return java.lang.Boolean
    * @author zx
    * @date 2021/11/25 16:09
    */
    PWorkOrderInfo getWorkOrderInfo(Integer workOrderId);

    /**
    * @description: 获取oa表单模板
     * @param workOrderId
    * @return java.lang.String
    * @author zx
    * @date 2021/11/25 16:55
    */
    String getFormStructure(Integer workOrderId);

    /**
    * @description: 获取oa表单
     * @param workOrderId
    * @return java.lang.String
    * @author zx
    * @date 2021/11/26 10:09
    */
    String getFormData(Integer workOrderId);

    /**
    * @description: 获取模板
     * @param tplInfoId
    * @return java.lang.String
    * @author zx
    * @date 2021/11/29 15:16
    */
    String getTplInfo(String tplInfoId);

    /**
    * @description: 是否同步过数据
     * @param workOrderId
    * @return java.lang.Boolean
    * @author zx
    * @date 2021/11/29 16:48
    */
    Integer findByBatchNoAndProcessNo(Integer workOrderId);

    /**
    * @description: 获取社保分部
     * @param deptId
    * @return java.lang.Integer
    * @author zx
    * @date 2021/11/30 14:40
    */
    Integer getDeptId(Integer deptId);
}
