import request from '@/utils/request'

/**
 * 业务分组分页查询
 * @param params
 * @returns {AxiosPromise}
 */
export function queryWfGroupByPagination(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfgroup/queryWfGroupByPagination',
    method: 'get',
    params
  })
}
/**
 * 业务分组全体查询
 * @param params
 * @returns {AxiosPromise}
 */
export function queryWfGroups(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfgroup/queryWfGroups',
    method: 'get',
    params
  })
}

/**
 * 新增分组
 * @param data
 * @returns {AxiosPromise}
 */
export function addWfGroup(data) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfgroup/add',
    method: 'post',
    data: data
  })
}

/**
 * 修改分组
 * @param params
 * @returns {AxiosPromise}
 */
export function updateWfGroup(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfgroup/update/' + params.businessId,
    method: 'put',
    params: params
  })
}

/**
 * 删除分组
 * @param params
 * @returns {AxiosPromise}
 */
export function delWfGroup(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfgroup/deleteLogical/' + params.businessId,
    method: 'delete',
    params: params
  })
}

/**
 * 分页查询模板表集合
 * @param params
 * @returns {AxiosPromise}
 */
export function queryWfTemplateByPagination(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftemplate/queryWfTemplateByPagination',
    method: 'get',
    params
  })
}
/**
 * 查询模板表集合不分页
 * @param params
 * @returns {AxiosPromise}
 */
export function queryWfTemplates(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftemplate/queryWfTemplates',
    method: 'get',
    params
  })
}

export function addTemplateWf(data) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftemplate/add',
    method: 'post',
    data: data
  })
}
export function addTemplateWfHtml(data) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftemplate/addOrUpdateByhtml',
    method: 'post',
    data: data
  })
}

/**
 * 根据id查询模板详细信息
 * @param params
 * @returns {AxiosPromise}
 */
export function listByTemplateId(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftemplate/listByTemplateId/' + params.templateId,
    method: 'get',
    params
  })
}
/**
 * 发布/取消发布模板
 * @param params
 * @returns {AxiosPromise}
 */
export function publishTemplate(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftemplate/publish/' + params.businessId,
    method: 'get',
    params
  })
}

/**
 * 逻辑删除模板
 * @param params
 * @returns {AxiosPromise}
 */
export function templateDelet(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftemplate/deleteLogical/' + params.businessId,
    method: 'delete',
    params: params
  })
}
/**
 * 修改模板
 * @param params
 * @returns {AxiosPromise}
 */
export function updateWfTemplate(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftemplate/update/' + params.businessId,
    method: 'put',
    params: params
  })
}
/**
 * 克隆模板
 * @param params
 * @returns {AxiosPromise}
 */
export function cloneTemplate(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftemplate/clone/' + params.businessId,
    method: 'get',
    params
  })
}

/**
 * 流程定义分页查询
 * @param params
 * @returns {AxiosPromise}
 */
export function queryWfProcessByPagination(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfprocess/queryWfProcessByPagination',
    method: 'get',
    params
  })
}
/**
 * 流程定义查询历史表
 * @param params
 * @returns {AxiosPromise}
 */
export function queryWfProcessHis() {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfprocesshi/queryWfProcessHis',
    method: 'get'
  })
}

/**
 * 流程定义添加
 * @param data
 * @returns {AxiosPromise}
 */
export function addProcessWf(data) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfprocess/add',
    method: 'post',
    data: data
  })
}
/**
 * 流程定义发布
 * @param data
 * @returns {AxiosPromise}
 */
export function publishProcess(data) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfprocess/publishProcess/' + data.processId,
    method: 'get'
  })
}

/**
 * 逻辑删除流程定义
 * @param params
 * @returns {AxiosPromise}
 */
export function processDelet(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfprocess/deleteLogical/' + params.businessId,
    method: 'put'
  })
}

/**
 * 修改流程
 * @param params
 * @returns {AxiosPromise}
 */
export function updateWfProcess(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfprocess/update/' + params.businessId,
    method: 'put',
    params: params
  })
}
/**
 * 修改模板
 * @param params
 * @returns {AxiosPromise}
 */
export function updateTemplate(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfprocess/updateTemplate',
    method: 'put',
    params: params
  })
}
/**
 * 挂起流程
 * @param params
 * @returns {AxiosPromise}
 */
export function hookWfProcess(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfprocess/guaqi/' + params.businessId,
    method: 'get',
    params: params
  })
}
/** 查询流程图详情
 * @param params
 * @returns {AxiosPromise}
 */
export function queryWfProcessDetail(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfprocess/detail/' + params.businessId,
    method: 'get',
    params: params
  })
}
/**
 * 保存流程图信息
 * @param params
 * @returns {AxiosPromise}
 */
export function saveWfProcess(data) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfprocess/saveWfProcess',
    method: 'post',
    data: data
  })
}
/** 分页查询代办任务
 * @param params
 * @returns {AxiosPromise}
 */
export function toDoTaskBypage(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftaskfieldhi/toDoTaskBypage',
    method: 'get',
    params: params
  })
}
/** 分页查询已办任务
 * @param params
 * @returns {AxiosPromise}
 */
export function doneTaskBypage(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftaskfieldhi/doneTaskBypage',
    method: 'get',
    params: params
  })
}
/** 查询代办任务详情
 * @param params
 * @returns {AxiosPromise}
 */
export function toDoTaskByTaskId(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftaskfieldhi/toDoTaskByTaskId',
    method: 'get',
    params: {
      taskId: params.taskId,
      // instanceId: params.instanceId,
      processId: params.processId
    }
  })
}
/** 查询已办任务详情
 * @param params
 * @returns {AxiosPromise}
 */
export function doneTaskByTaskId(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftaskfieldhi/doneTaskByTaskId',
    method: 'get',
    params: {
      taskId: params.taskId
    }
  })
}
/** 查询流程任务详情
 * @param params
 * @returns {AxiosPromise}
 */
export function getProcessDetail(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wftaskfieldhi/getProcessDetail',
    method: 'get',
    params: {
      instanceId: params.instanceId,
      processId: params.processId
    }
  })
}
/** 查询流程任务详情
 * @param params
 * @returns {AxiosPromise}
 */
export function getProcessByInstanceId(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfinstance/getProcessByInstanceId/' + params.instanceId,
    method: 'get'
  })
}
/** 查询流程实例列表
 * @param params
 * @returns {AxiosPromise}
 */
export function queryWfInstanceByPagination(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfinstance/queryWfInstanceByPagination',
    method: 'get',
    params: params
  })
}
/** 查询流程实例图片
 * @param params
 * @returns {AxiosPromise}
 */
export function getProcessImage(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/cyWf/getImage/' + params.busId,
    method: 'get',
    responseType: 'blob'
  })
}
/**
 * 分页查询角色
 * @param params
 * @returns {AxiosPromise}
 */
export function queryRoleByPage(data) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/SysUser/queryRoleByPage',
    method: 'post',
    data: data
  })
}
/**
 * 分页查询用户
 * @param params
 * @returns {AxiosPromise}
 */
export function queryUserByPage(data) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/SysUser/queryUserByPage',
    method: 'post',
    data: data
  })
}
/** 查询当前流程实例共多少条
 * @param params
 * @returns {AxiosPromise}
 */
export function instanceCount(params) {
  return request({
    baseURL: process.env.VUE_APP_WORKFLOW,
    url: '/wfinstance/instanceCount/' + params.processKey,
    method: 'get'
  })
}