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



import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.nl.acs.ext.wms.data.*;

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

public interface WmsToAcsService {

    /**
     * 创建任务
     * @param reqs
     * @return
     */
    CreateTaskResponse crateTask(List<CreateTaskRequest> reqs);



    JSONObject allDeviceStatus();


    /**
     * 取消任务
     *
     * @param reqs 条件
     */
    CancelTaskResponse cancelFromWms(List<CancelTaskRequest> reqs) throws Exception;

    /**
     * 修改设置有无货属性
     *
     * @param jsonObject 条件
     * @return Map<String, Object>
     */
    Map<String, Object> updateDeviceGoodsFromWms(String jsonObject);

    /**
     * 区域控制
     *
     * @param jsonObject 条件
     * @return Map<String, Object>
     */
    Map<String, Object> areaControl(JSONObject jsonObject);

    /**
     * 下发动作
     *
     * @param jsonObject 条件
     * @return Map<String, Object>
     */
    PutActionResponse putAction(String jsonObject) throws Exception;

    /**
     * 查询设备状态
     *
     * @param jsonObject 条件
     * @return Map<String, Object>
     */
    JSONArray  queryDevice(String jsonObject) throws Exception;

    /**
     * 查询设备DB值
     * @param whereJson
     * @return
     */
    Map<String, Object> queryDeviceDBValue(String whereJson);



    /**
     * ACS系统在获取空的托盘号
     * @param whereJson
     * @return
     */
    Map<String, Object> querydevice(String whereJson);


    /**
     * 下发插拔轴动作
     *
     * @param whereJson 条件
     * @return Map<String, Object>
     */
    Map<String, Object> putPlusPullAction(String whereJson);


    /**
     * 下发wms任务动作
     *
     * @param param 条件
     * @return Map<String, Object>
     */
    JSONObject notifyAcs(JSONObject param);


}
