package com.bonus.sgzb.material.mapper;

import com.bonus.sgzb.material.domain.BackApplyDto;
import com.bonus.sgzb.base.api.domain.BackApplyInfo;
import com.bonus.sgzb.material.domain.TypeTreeNode;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

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

/**
* @author hay
* @date   2023/12/20 14:56
*/
@Mapper
public interface BackApplyMapper {
    /**
     * 获取退料审核列表
     * @param bean
     * @return
     */
    List<BackApplyInfo> getBackApplyList(BackApplyInfo bean);

    List<BackApplyInfo> getBackApplyListByAdmin(BackApplyInfo bean);
    List<BackApplyInfo> getBackApplyListByAdmin1(BackApplyInfo bean);

    /**
     * 获取在用物料列表
     * @param bean
     * @return
     */
    List<BackApplyInfo> getMaterialList(BackApplyInfo bean);

    /**
     * 查询
     * @param date
     * @param taskType
     * @return
     */
    String selectTaskNumByMonth(@Param("date") Date date, @Param("taskType") Integer taskType);

    /**
     * 增加
     * @param bean
     * @return
     */
    int insertTask(BackApplyInfo bean);

    /**
     * 增加
     * @param bean
     * @return
     */
    int insertTaskAgreement(BackApplyInfo bean);

    /**
     * 增加
     * @param bean
     * @return
     */
    int insertBackApply(BackApplyInfo bean);

    /**
     * 上传
     * @param bean
     * @return
     */
    int upload(BackApplyInfo bean);

    int uploadByCq(BackApplyInfo bean);

    /**
     * 查询
     * @param bean
     * @return
     */
    List<BackApplyInfo> getView(BackApplyInfo bean);
    List<BackApplyInfo> getViewByApply(BackApplyInfo bean);

    /**
     * 修改
     * @param detailsId
     * @param num
     * @return
     */
    int setModify(@Param("detailsId") String detailsId, @Param("num") String num);

    /**
     * 删除
     * @param bean
     * @return
     */
    int del(BackApplyInfo bean);


    List<Integer> getTaskIdById(BackApplyInfo bean);
    /**
     * 通过
     * @param bean
     * @return
     */
    int audit(BackApplyInfo bean);

    int updateTmTask(BackApplyInfo bean);



    /**
     * 驳回
     * @param bean
     * @return
     */
    int refuse(BackApplyInfo bean);

    /**
     * 查询类型树
     * @param bean
     * @return
     */
    List<TypeTreeNode> getUseTypeTreeL4(BackApplyInfo bean);

    List<TypeTreeNode> getUseTypeTreeL3(List<Long> list);

    List<TypeTreeNode> getUseTypeTreeL21(List<Long> list);

    /**
     * 退料申请导出
     * @param bean
     * @return
     */
    List<BackApplyInfo> exportList(BackApplyInfo bean);

    int updateTmTaskBytaskId(BackApplyInfo bean);

    int delApply(BackApplyInfo bean);

    List<BackApplyInfo> selectIdByTaskId(Integer taskId);

    int getUseNumByTypeId(String typeId);

    int getManageType(String typeId);

    int getLeaseOutNum(String typeId);

    int getbackCheckNum(String typeId);

    int auditAll(BackApplyDto dto);

    List<Integer> getTaskIdByIdAll(BackApplyDto dto);

    void updateTmTaskAll(BackApplyDto dto);
}
