package com.wms_main.service.business;

import com.wms_main.model.bo.wms.WmsPickTask;
import com.wms_main.model.po.TAppPickTask;
import com.wms_main.model.vo.wms.InventoryConfirmVo;
import com.wms_main.model.vo.wms.TaskConfirmVo;
import com.wms_main.model.vo.wms.WorkConfirmVo;

import java.util.Map;

/**
 * 输送线任务服务
 */
public interface IConveyTaskService {
    /**
     * 取消拣选任务
     * @param vehicleStandMap 载具-站台map
     * @param successCount 成功count
     * @param failCount 失败count
     * @param exceptionCount 异常count
     */
    void cancelPickTasks(Map<String, WmsPickTask> vehicleStandMap, int successCount, int failCount, int exceptionCount);

    /**
     * 取消后续站台任务
     * @param vehicleId 载具
     * @param standId 当前站台
     */
    void cancelOtherStandPickTasks(String vehicleId, String standId);

    /**
     * 释放站台箱子
     * @param targetPickTask 目标拣选任务
     * @return 处理结果
     */
    boolean releaseStandVehicle(TAppPickTask targetPickTask);

    /**
     * 获得当前站台的工作
     * @param thisPickTask 拣选任务
     * @return 结果
     */
    WorkConfirmVo getCurrentStandWork(TAppPickTask thisPickTask);

    /**
     * 获得当前站台的任务
     * @param thisPickTask 当前站台拣选任务
     * @return 结果
     */
    TaskConfirmVo getCurrentStandTask(TAppPickTask thisPickTask);

    /**
     * 获取这个载具的盘点确认信息
     * @param vehicleId 载具号
     * @return 盘点确认信息
     */
    InventoryConfirmVo getInventoryConfirm(String vehicleId);
}
