package cn.ey.biz.module.weaver.api;

import cn.ey.biz.module.weaver.common.Constants;
import cn.ey.biz.module.weaver.common.RSP;
import cn.ey.biz.module.weaver.autoconfigure.FeignConfiguration;
import lombok.Data;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * 流程数据：所有流程数量 (对外)
 *
 */
@FeignClient(name= Constants.WEAVER_NAME, url="${weaver.service.url}", configuration = FeignConfiguration.class)
public interface GetAllWorkflowRequestCountService {

    @RequestMapping(method= RequestMethod.POST, value="/api/workflow/paService/getAllWorkflowRequestCount",
            consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
            produces = MediaType.TEXT_PLAIN_VALUE)
    RSP<AllWorkflowRequestCountResponse> getAllWorkflowRequestCount(@RequestBody AllWorkflowRequestCountRequest request);

    @Data
    class AllWorkflowRequestCountRequest{
        AllWorkflowRequestCountconditions conditions;     //非必填	高级搜索条件  - requestname : 请求名称 如 出差流程 - requestlevel : 紧急程度 0 正常 1 重要 2 紧急 - ownerdepartmentid : 创建人部门id - creatersubcompanyid : 创建人分部id - createdateselect: 创建时间 - 0 全部 - 1 今天 - 2 本周 - 3 本月 - 4 本季 - 5 本年 - 6 指定时间区间 需要添加 另外两个参数 - createdatefrom 开始时间 如 2019-12-08 - createdateto 结束时间 如 2019-12-09 - 7 上一月 - 8 上一年 - operatedateselect : 操作时间 - 0 全部 - 1 今天 - 2 本周 - 3 本月 - 4 本季 - 5 本年 - 6 指定时间区间， 需要添加另外两个参数 - operatedatefrom 开始时间 如 2019-12-08 - operatedateto 结束时间 如 2019-12-09 - 7 上一月 - 8 上一年 - recievedateselect: 接受时间 - 0 全部 - 1 今天 - 2 本周 - 3 本月 - 4 本季 - 5 本年 - 6 指定时间区间，需要添加另外两个参数 - recievedatefrom 开始时间 如 2019-12-08 - recievedateto 结束时间 如 2019-12-09 - 7 上一月 - 8 上一年 - archivestatus ： 流程是否归档。 1 已归档 2 未归档 - nodetype : 当前节点类型。 0：创建，1：批准，2：提交，3：归档 - docids : 相关文档。 可传入 流程相关文档id - hrmcreaterid : 相关人力资源。 可 传入流程相关人员id - crmids : 相关客户。 可 传入相关客户id - proids : 相关项目 。 可传入相关项目id - workcode : 创建人编号。 可传入创建人的编号，对应hrmresource表中的workcode - wfcode : 流程编号。 - creatertype , craterid , createrid2 - cratertype : 0 创建人为员工 1 创建人为客户 - createrid : 员工id - createrid2 : 客户id - unophrmid : 未操作人id , 只支持 传入一个人员id -workflowIds: 流程路径id,以','分隔 -workflowTypes：流程类型id,以','分隔
        boolean isMergeShow;		//非必填	是否主次账号统一显示	"true"
        boolean isNeedOs;		//非必填	是否显示异构系统数据 ， 为true时还需 设置开启异构系统显示才会显	"true"
        String userId;  		//非必填	要查询的用户id ，不传取当前登录用户	"11"
    }

    @Data
    class AllWorkflowRequestCountconditions{
        String  wfcode;
        String  ownerdepartmentid;
        String  requestname;
        String  nodetype;
        String  workcode;
        String  archivestatus;
        String  operatedateselect;
        String  recievedateselect;
        String  creatersubcompanyid;
        String  requestlevel;
        String  unophrmid;
        String  docids;
        String  creatertype;
        String  proids;
        String  crmids;
        String  craterid;
        String  hrmcreaterid;
        String  createdateselect;
    }

    @Data
    class AllWorkflowRequestCountResponse{

    }

}
