package com.unis.flowable.client;

import com.unis.common.utils.ResponseWrapper;
import com.unis.flowable.common.vo.NoticeVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * @ClassName OaClient
 * @Description OA平台接口服务调用
 * @Author XuYixuan
 * @Date 2019/6/11 14:09
 * @Version 1.0
*/
@FeignClient(name = "oa")
public interface OaClient {

    /**
     * 待办事项数量查询
     *
     * @param userId
     *            用户登录ID
     * @return ResponseWrapper
     * @author liyb
     * @date 2018年10月20日 上午10:50:23
     * @version v1.0
     */
    @RequestMapping(method = RequestMethod.POST, value = "/webservices/findById/{userId}")
    ResponseWrapper queryWaitCount(@PathVariable("userId") String userId, @RequestBody String[] conditions);

    /**
     * 待办事项数量查询
     *
     * @param userId
     *            用户登录ID
     * @return ResponseWrapper
     * @author liyb
     * @date 2018年10月20日 上午10:50:23
     * @version v1.0
     */
    @RequestMapping(method = RequestMethod.POST, value = "/webservices/findByPage/{pageNo}/{pageSize}/{recordCount}/{userId}")
    ResponseWrapper queryWaitItems(@PathVariable("pageNo") int pageNo, @PathVariable("pageSize") int pageSize,
                                   @PathVariable("recordCount") int recordCount, @PathVariable("userId") String userId,
                                   @RequestBody String[] conditions);

    /**
     *
     * @Description: 通知公告
     *
     * @date 2018年12月26日,下午5:30:10
     * @author xmpu
     * @version v1.0
     *
     * @param noticeType
     * @return
     */
    @RequestMapping(method = RequestMethod.POST, value = "/notice/getNotice/{noticeType}/{page}/{size}")
    ResponseWrapper getNotice(@PathVariable("noticeType") Integer noticeType, @RequestBody NoticeVO noticeVO,
                              @PathVariable("page") Integer page, @PathVariable("size") Integer size);

    /**
     *
     * @Description: 通知公告数量
     *
     * @date 2018年12月28日,下午2:30:39
     * @author xmpu
     * @version v1.0
     *
     * @param noticeType
     * @return
     */
    @PostMapping(value = "/notice/getNoticeNum/{noticeType}")
    ResponseWrapper getNoticeNum(@PathVariable("noticeType") Integer noticeType, @RequestBody NoticeVO noticeVO);

}