package com.starcharge.api.remote;

import com.ihidea.component.api.v2.BaseResponse;
import com.starcharge.wios.auth.vo.LoginInfo;
import com.starcharge.wios.bo.api.ResponseMessage;
import com.starcharge.wios.query.*;
import com.starcharge.wios.result.WorkTaskVO;
import com.starcharge.wios.vo.TaskVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * 手动补偿接口
 */
@FeignClient(url = "${womc.flowUrl}", name = "DataSyncRemote")
public interface DataSyncRemote {
    /**
     * 手动补偿单据
     *
     * @param query
     * @return
     */
    @PostMapping("repair/flow/getArchivedWorkTask")
    ResponseMessage<TaskVo> toWmsSyncBill(@RequestHeader("sso_token") String ssoToken, FlowQuery query);

    /**
     * 模拟登录
     *
     * @return
     */
    @PostMapping("account/login")
    BaseResponse<LoginInfo> accountLogin(@RequestParam String account, @RequestParam String password);

    @PostMapping("camsFlow/closeFlow")
    ResponseMessage<String> closeFlow(@RequestHeader("sso_token") String ssoToken,BaseSubmitFlowBO bo);

    @PostMapping("camsFlow/submitFlow")
    ResponseMessage<String> submitFlow(@RequestHeader("sso_token") String ssoToken,BaseSubmitFlowBO bo);

    @PostMapping("camsFlow/getWorkTask")
    ResponseMessage<WorkTaskVO> getWorkTask(@RequestHeader("sso_token") String ssoToken, CamsOrderQo bo);

    @GetMapping("camsOrder/getOrderInfo")
    ResponseMessage<Map<String, Object>> getOrderInfo(@RequestHeader("sso_token") String ssoToken,@RequestParam String id,@RequestParam Integer type);

    @GetMapping("camsOrder/getConnectInfo")
    ResponseMessage<Map<String, Object>> getConnectInfo(@RequestHeader("sso_token") String ssoToken,@RequestParam String id);
}