package com.boman.jflow.api;

import com.alibaba.fastjson.JSONObject;
import com.boman.domain.constant.ServiceNameConstants;
import com.boman.domain.dto.AjaxResult;
import com.boman.domain.dto.TaskDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * @author zhong.hui
 * @date 2021年05月26日 15:09
 **/
@FeignClient(contextId = "remoteJflowTaskService", name = ServiceNameConstants.JFLOW_SERVICE)
public interface RemoteJflowTaskService {

    /**
     * 历史审批接口调用
     *
     * @param taskDto
     * @return
     */
    @PostMapping("/jflow/p/cs/task/history/list")
    AjaxResult historySearchInPage(@RequestBody(required = false) TaskDto taskDto);

    /**
     * 代办审批接口调用
     *
     * @param taskDto
     * @return
     */
    @PostMapping("/jflow/p/cs/task/backlog/list")
    AjaxResult pendingTaskSearch(@RequestBody TaskDto taskDto);

    /**
     * 同意申请
     * @param taskDto
     * @return
     */
    @PostMapping("/jflow/p/c/task/page/pass")
    AjaxResult pagePass(@RequestBody TaskDto taskDto);

    /**
     * 驳回
     * @param taskDto
     * @return
     */
    @PostMapping("/jflow/p/c/task/page/deny")
    AjaxResult pageDeny(@RequestBody TaskDto taskDto);

    @GetMapping("/jflow/p/cs/task/count")
    JSONObject approvalStatistics(@RequestBody TaskDto taskDto);

    @PostMapping("/jflow/p/c/task/backlog/detail")
    AjaxResult pageDetail(@RequestBody TaskDto taskDto);
}
