package com.bonus.sgzb.material.mapper;

import com.bonus.sgzb.base.api.domain.RepairTestInputDto;
import com.bonus.sgzb.material.domain.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

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

/**
 * @author 10488
 * 修试入库
 */
@Repository("RepairTestInputMapper")
public interface RepairTestInputMapper {

    /**
     * 获取修试后入库列表
     * @param dto
     * @return List<RepairTestInputVo>
     * @author cwchen
     * @date 2023/12/16 16:05
     */
    List<RepairTestInputVo> getRepairedList(RepairTestInputDto dto);

    /**
     * 获取修试后入库-详情列表
     * @param dto
     * @return List<RepairTestInputVo>
     * @author cwchen
     * @date 2023/12/16 17:34
     */
    List<RepairTestInputDetailVo> getRepairedDetailList(RepairTestInputDto dto);

    /**
     * 更新修试后入库-数据
     * @param dto
     * @author cwchen
     * @date 2023/12/16 19:17
     */
    void updateRepairInputDetails(RepairTestWarehousingDto dto);

    /**
     *  新增入库任务详细表-数据
     * @param dto
     * @author cwchen
     * @date 2023/12/16 19:33
     */
    void addInputApplyDetails(RepairTestWarehousingDto dto);

    /**
     * 查询机具类型-库存数量
     * @param typeId
     * @return Map<Object>
     * @author cwchen
     * @date 2023/12/16 20:24
     */
    Map<String, Object> getMaTypeByNum(String typeId);

    /**
     * 更新机具类型-库存数量
     * @param typeId
     * @param num
     * @author cwchen
     * @date 2023/12/16 20:45
     */
    void updateMaTypeNum(@Param("typeId") String typeId, @Param("num") double num);

    /**
     * 查询机具状态-在库的id
     * @param maStatus
     * @param status
     * @return int
     * @author cwchen
     * @date 2023/12/16 20:52
     */
    int getDicByMaStatusId(@Param("maStatus") String maStatus, @Param("status") String status);

    /**
     * 管理方式为编号的需更新机具设备的机具状态
     * @param dicId
     * @param maId
     * @author cwchen
     * @date 2023/12/16 20:59
     */
    void updateMaMachineStatus(@Param("dicId") int dicId, @Param("maId") String maId);

    /**
     * 查询修试后入库的状态是否全部更新
     * @param dto
     * @return List<Integer>
     * @author cwchen
     * @date 2023/12/16 21:03
     */
    Map<String, Object> getIsAllUpdate(RepairTestWarehousingDto dto);

    /**
     *  更新任务表状态
     * @param dto
     * @param dicId
     * @author cwchen
     * @date 2023/12/16 21:19
     */
    void updateTmTaskStatus(@Param("params") RepairTestWarehousingDto dto, @Param("dictId") int dicId);

    /**
     * 插入
     * @param repairTestWarehousingDto
     * @return
     */
    int insertRepairInputDetails(RepairInputDetails repairTestWarehousingDto);

    /**
     * 修试入库--导出
     *
    * @param bean
    * @return List<RepairTestInputDetailVo>
    * @author hay
    * @date 2024/1/9 15:14
    */
    List<RepairTestInputDetailVo> exportList(RepairTestInputDto bean);

    int addRepaieAudit(RepairAuditDetails bean);

    int getCountOfMachineByTypeId(String typeId);
}
