package org.nl.acs.ext.wms.service;

import org.nl.acs.ext.wms.liKuData.*;
import org.nl.acs.instruction.domain.Instruction;

/**
 * @author: geng by
 * @createDate: 2022/11/24
 */
public interface AcsToLiKuService {


    public Resp sendInst(String type, Instruction inst);

    /**
     * 入库任务下发
     * @param requestParam
     * @return
     */
    public Resp<InStoreResponse> inStore(InStoreRequest requestParam);

    /**
     * 出库任务下发
     * @param requestParam
     * @return
     */
    public Resp<OutStoreResponse> outStore(OutStoreRequest requestParam);

    /**
     * 空托盘出库任务下发
     * @param requestParam
     * @return
     */
    public Resp<EmptyVehicleOutStoreResponse> emptyVehicleOutStore(EmptyVehicleOutStoreRequest requestParam);


    /**
     * 移库任务下发
     * @param requestParam
     * @return
     */
    public Resp<MoveStoreResponse> moveStore(MoveStoreRequest requestParam);


    /**
     * 入库任务调整
     * @param requestParam
     * @return
     */
    public Resp<InStoreResetResponse> inStoreReset(InStoreResetRequest requestParam);


    /**
     * 移库任务调整
     * @param requestParam
     * @return
     */
    public Resp<MoveStoreResetResponse> moveStoreReset(MoveStoreResetRequest requestParam);

    /**
     * 巷道锁定与解锁
     * @return
     */
    public Resp<RoadWayIsLockResponse> roadWayIsLock(RoadWayIsLockRequest requestParam);


    /**
     *取消任务
     * @return
     */
    public Resp<CancelTaskResponse> cancelTask(CancelTaskRequest requestParam);

    /**
     *查询小车设备状态
     * @return
     */
    public Resp<DeviceStatusResponse> queryCarDeviceStatus(DeviceStatusRequest requestParam);

    /**
     *查询tsj设备状态
     * @return
     */
    public Resp<DeviceStatusResponse> queryTsjDeviceStatus(DeviceStatusRequest requestParam);

    /**
     *查询ssx设备状态
     * @return
     */
    public Resp<DeviceStatusResponse> querySsxDeviceStatus(DeviceStatusRequest requestParam);
}


