package com.bonus.material.device.mapper;


import com.bonus.common.biz.domain.*;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.book.domain.BookCarInfoDto;
import com.bonus.material.devchange.domain.MaDevFile;
import com.bonus.material.devchange.domain.MaDevInfo;
import com.bonus.material.devchange.domain.MaDevInfoXlsx;
import com.bonus.material.devchange.domain.MapBean;
import com.bonus.material.device.domain.DevInfo;
import com.bonus.material.device.domain.MaDevQc;
import com.bonus.material.device.domain.SafeBookInfo;
import com.bonus.material.device.domain.dto.InfoMotionDto;
import com.bonus.material.device.domain.vo.DevInfoPropertyVo;
import com.bonus.material.device.domain.vo.DevInfoVo;
import com.bonus.material.device.domain.vo.DevMergeVo;
import com.bonus.material.device.domain.vo.LeaseVo;
import com.bonus.material.largeScreen.entity.LeaseInfo;
import com.bonus.material.largeScreen.entity.RentInfo;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

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

/**
 * 设备信息Mapper接口
 *
 * @author syruan
 */
public interface DevMergeMapper {

    List<DevMergeVo> list(DevMergeVo devInfo);

    List<DevInfoVo> devList(DevInfoVo devInfo);

    Integer addOrder(DevMergeVo o);

    /**
     * 查询今天生成的单号数量
     */
    int selectTodayOrderCount();

    void insertOrderDevReal(@Param("orderId") String orderId, @Param("maId") Long maId);

    Integer submitOrder(DevMergeVo o);

    void updateDeviceStatus(DevMergeVo o);

    int delOrder(DevMergeVo o);

    void updateDeviceStatus(List<DevMergeVo> o);

    int updateDevice(@Param("list")List<MapBean> list,@Param("status")String status);

    int updateChangeStatus(List<MapBean> list);

    int getDevNoCheck(String id);

    @MapKey("value")
    List<Map<String, Object>> findFirstLevelTypes();

    @MapKey("value")
    List<Map<String, Object>> findSecondAndThirdLevelTypes(Long firstLevelId);

    @MapKey("value")
    List<Map<String, Object>> getFourthToSixthLevelTypes(Long thirdLevelId);


    @MapKey("value")
    List<Map<String, Object>> getSecondToFifthLevelTypes(Long firstLevelId);

    Integer interDevice(MaDevInfo maDevInfo);

    Integer interDeviceXlsx(MaDevInfoXlsx maDevInfo);

    List<MaDevInfo> getDevice(MaDevInfo o);


    List<MaDevInfo> getDeviceByOrderId(MaDevInfo o);

    Integer interFile(MaDevFile item);

    Integer updateDeviceByMaId(MaDevInfo maDevInfo);

    void delFile(Integer maId);

    List<String> listAllProfessionNames();

    List<String> listAllManufacturerNames();

    // 批量查询profession对应的typeId
    Integer getTypeId(String professions);


    Integer getManufacturer(String manufacturers);

    List<String> getFileName(String orderId);

    @MapKey("fileName")
    Map<String, Object> getFileId(String orderId);

    Integer selNum(DevMergeVo o);
}

