package com.bonus.sgzb.material.service;

import com.bonus.sgzb.common.core.web.domain.AjaxResult;
import com.bonus.sgzb.material.domain.BackApplyDto;
import com.bonus.sgzb.base.api.domain.BackApplyInfo;

import java.util.List;

/**
* @author hay
* @date   2023/12/20 14:55
*/
public interface BackApplyService {
    /**
     * 获取退料申请列表
     * @param bean
     * @return
     */
    List<BackApplyInfo> getBackApplyList(BackApplyInfo bean);
    /**
     * 获取退料审核列表
     * @param bean
     * @return
     */
    List<BackApplyInfo> getBackAuditList(BackApplyInfo bean);
    /**
     * 获取在用物料列表
     * @param bean
     * @return
     */
    List<BackApplyInfo> getMaterialList(BackApplyInfo bean);

    /**
     * 生成后台退料编号
     * @return
     */
    String genderBackCode();

    /**
     * 创建任务
     * @param bean
     * @return
     */
    int insertSelective(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 bean
     * @return
     */
    AjaxResult setModify(List<BackApplyInfo> bean);

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

    /**
     * 退料审核-通过
     * @param record
     * @return
     */
    AjaxResult audit(BackApplyInfo record);

    /**
     * 退料审核-驳回
     * @param record
     * @return
     */
    AjaxResult refuse(BackApplyInfo record);

    /**
     * 在用设备类型树
     * @param bean
     * @return
     */
    AjaxResult getUseTypeTree(BackApplyInfo bean);

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

    int delApply(BackApplyInfo bean);

    List<BackApplyInfo> selectIdByTaskId(Integer taskId);

    int getUseNumByTypeId(String typeId);

    /**
     * 退料批量审核-审核(web)
     * @param dto
     * @return
     */
    AjaxResult auditAll(BackApplyDto dto);
}
