package com.jsh.erp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jsh.erp.datasource.dto.TaskStocktakingDTO;
import com.jsh.erp.datasource.dto.TaskStocktakingItemQueryDTO;
import com.jsh.erp.datasource.dto.TaskStocktakingQueryDTO;
import com.jsh.erp.datasource.entities.TaskStocktaking;
import com.jsh.erp.datasource.pda.dto.PDATaskStocktakingItemDTO;
import com.jsh.erp.datasource.pda.vo.PDATaskStocktakingItemVO;
import com.jsh.erp.datasource.pda.vo.PDATaskStocktakingVO;
import com.jsh.erp.datasource.vo.TaskStocktakingItemVO;
import com.jsh.erp.datasource.vo.TaskStocktakingVO;

import java.util.List;

public interface TaskStocktakingService extends IService<TaskStocktaking> {

    /**
     * PC-盘点任务列表
     * @param taskStocktakingQueryDTO 筛选参数
     * @return
     */
    List<TaskStocktakingVO> listBy(TaskStocktakingQueryDTO taskStocktakingQueryDTO);

    /**
     * 新增任务
     * @param taskStocktakingDTO
     * @return
     */
    boolean add(TaskStocktakingDTO taskStocktakingDTO);

    /**
     * 任务-详情
     * @param id 任务ID
     */
    TaskStocktakingVO detail(Long id) throws Exception;

    /**
     * 任务详情-修改
     * @param taskStocktakingDTO
     * @return
     */
    boolean detailUpdate(TaskStocktakingDTO taskStocktakingDTO);

    /**
     * 任务详情-商品明细
     * @param taskStocktakingItemQueryDTO 筛选参数
     * @return
     */
    List<TaskStocktakingItemVO> listByTaskStocktakingId(TaskStocktakingItemQueryDTO taskStocktakingItemQueryDTO);

    /**
     * PDA-盘点任务列表
     * @param number 盘点单号或者任务名称
     * @param taskStatus 盘点任务状态
     * @return
     */
    List<PDATaskStocktakingVO> pdaList(String number , Integer taskStatus, Long depotId);

    /**
     * PAD-盘点任务详情
     * @param id 盘点任务ID
     * @return
     * @throws Exception
     */
    TaskStocktakingVO pdaDetail(Long id) throws Exception;

    List<PDATaskStocktakingItemVO> pdaItemList(PDATaskStocktakingItemDTO pdaTaskStocktakingItemDTO);


}
