package com.bonus.sgzb.app.mapper;

import com.bonus.sgzb.app.domain.TmTask;
import com.bonus.sgzb.base.api.domain.BackApplyInfo;
import com.bonus.sgzb.base.api.domain.SltAgreementInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

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


/**
 * @author bns_han
 */
@Mapper
public interface BackReceiveMapper {

    /**
     * 退料接收列表
     *
     * @param record 查询条件
     * @return List<BackApplyInfo>
     */
    List<BackApplyInfo> getbackReceiveList(BackApplyInfo record);

    /**
     * 退料接收明细
     *
     * @param record 查询条件
     * @return List<BackApplyInfo>
     */
    List<BackApplyInfo> receiveView(BackApplyInfo record);

    /**
    * 添加接收数据back_check_details
    * @param  record
    * @return int
    */
    int insertCheckDetails(BackApplyInfo record);

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

    /**
    * 添加维修任务
    * @param bean
    * @return int
    */
    int addWxTask(BackApplyInfo bean);

    /**
    * 添加维修协议
    * @param bean
    * @return int
    */
    int addWxTaskAgreement(BackApplyInfo bean);

    /**
    * 更新任务状态
    * @param taskId
     * @param status
    * @return int
    */
    int updateTaskStatus(@Param("taskId") int taskId, @Param("status") int status);

    /**
    *  更新ma_machine
    * @param maId
    * @param maStatus
    * @return int
    */
    int updateMaStatus(@Param("maId") int maId,@Param("maStatus")  String maStatus);


    int getmaChineByCt(BackApplyInfo record);

    /**
    * getHgList
    * @param  record
    * @return List<BackApplyInfo>
    */
    List<BackApplyInfo> getHgList(BackApplyInfo record);

    /**
    * 插入input_apply_details
    * @param  bi
    * @return int
    */
    int insertIad(BackApplyInfo bi);

    /**
     * 修改ma_type库存
     * @param  bi
     * @return int
     */
    int updateMt(BackApplyInfo bi);

    /**
    * 查询
    * @param  record
    * @return List<BackApplyInfo>
    */
    List<BackApplyInfo> getWxList(BackApplyInfo record);

    /**
    * tm_task
    * @param  bean
    * @return int
    */
    int insertTt(BackApplyInfo bean);

    /**
    * repair_apply_details
    * @param wx
    * @return int
    */
    int insertRad(BackApplyInfo wx);

    /**
    * tm_task_agreement
    * @param taskId
    * @param agreementId
    * @return int
    */
    int insertTta(@Param("taskId") int taskId,@Param("agreementId") String agreementId);

    /**
    * 查询
    * @param record
    * @return List<BackApplyInfo>
    */
    List<BackApplyInfo> getBfList(BackApplyInfo record);

    /**
    * 插入scrap_apply_details
    * @param bf
    * @return int
    */
    int insertSad(BackApplyInfo bf);

    /**
    * 编码查询
    * @param record
    * @return List<BackApplyInfo>
    */
    List<BackApplyInfo> codeQuery(BackApplyInfo record);

    /**
     * 二维码查询
     * @param record
     * @return List<BackApplyInfo>
     */
    List<BackApplyInfo> qrcodeQuery(BackApplyInfo record);

    /**
     * 退料接收记录
     * @param record
     * @return List<BackApplyInfo>
     */
    List<BackApplyInfo> backReceiveRecord(BackApplyInfo record);

    /**
     *  查询
     * @param maId
     * @param taskId
     * @return int
     */
    int selectCodeByMaIdAndTaskId(@Param("maId") Integer maId,@Param("taskId") Integer taskId);

    /**
     * 退料接收-rfid编码查询
     * @param record
     * @return List<BackApplyInfo>
     */
    List<BackApplyInfo> rfidCodeQuery(BackApplyInfo record);

    List<SltAgreementInfo> getStlInfo(BackApplyInfo bean);

    int updateStlInfo(@Param("info") SltAgreementInfo info,@Param("record") BackApplyInfo record);

    int updateStlInfoTwo(@Param("info") SltAgreementInfo info,@Param("record") BackApplyInfo record, @Param("backNum") Double backNum);

    int insStlInfoTwo(@Param("info")SltAgreementInfo info, @Param("many")Double many);

    List<BackApplyInfo> getAllList(BackApplyInfo record);

    List<TmTask> getBackMachine(TmTask task);

    List<TmTask> getRecord(TmTask task);

    int deleteCheckDetails(BackApplyInfo backApplyInfo);

    List<Integer> getMaId(BackApplyInfo backApplyInfo);

    int selectNumByTypeId(@Param("parentId")Integer parentId,@Param("typeId") String typeId);

    int selectTaskStatus(int taskId);

    BackApplyInfo backReceiveRecordWeb(BackApplyInfo record);

    List<BackApplyInfo> getCtList(BackApplyInfo record);

    List<BackApplyInfo> backReceiveRecordWebPt(BackApplyInfo record);
}