package com.bonus.sgzb.app.service;

import com.bonus.sgzb.app.domain.BmAgreementInfo;
import com.bonus.sgzb.app.domain.TmTask;
import com.bonus.sgzb.base.api.domain.BackApplyInfo;

import java.util.List;

/**
 * @author bns_han
 */
public interface AppBackApplyService {

    /**
    * 查询退料单位列表
    * @param record
    * @return List<BmAgreementInfo>
    */
    List<BmAgreementInfo> getbackUnit(BmAgreementInfo record);

    /**
    * 查询退料工程列表
    * @param record
    * @return List<BmAgreementInfo>
    */
    List<BmAgreementInfo> getbackPro(BmAgreementInfo record);

    /**
    * 创建任务单
    * @param task
    * @return int
    */
    int insertTask(TmTask task);

    /**
    * 退料申请列表
    * @param record
    * @return List<BackApplyInfo>
    */
    List<BackApplyInfo> getbackList(BackApplyInfo record);

    /**
    * 任务协议表(tm_task_agreement)
    * @param task
    * @return int
    */
    int insertTaskAgreement(TmTask task);

    /**
    * 退料任务表(back_apply_info)
    * @param task
    * @return int
    */
    int insertBackApply(TmTask task);

    /**
     * 获取物料列表
     *
     * @param record 查询条件
     * @return List<BackApplyInfo>
     */
    List<BackApplyInfo> materialList(BackApplyInfo record);

    /**
     * 提交物料型号及数量
     *
     * @param record 查询条件
     * @return int
     */
    int upload(BackApplyInfo record);

    /**
    * 详情查看
    * @param record
    * @return List<BackApplyInfo>
    */
    List<BackApplyInfo> view(BackApplyInfo record);

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

    /**
     * 退料审核列表
     *
     * @param record 查询条件
     * @return List<BackApplyInfo>
     */
    List<BackApplyInfo> examineList(BackApplyInfo record);

    /**
     * 退料审核明细
     *
     * @param record 查询条件
     * @return List<BackApplyInfo>
     */
    List<BackApplyInfo> examineView(BackApplyInfo record);

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

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

    void updateBackInfo(Integer parentId, String companyId);
}
