import { stringify } from 'qs';
import { request } from 'umi';

const baseURL = '/api';

/**
 * 获取任务列表
 * @param data.project_id
 * @returns {Promise<*>}
 */
export async function getMandateList(data) {
  if (data.responsible_people === '') {
    delete data.responsible_people;
  }
  return request(`${baseURL}/v1/mandate/list?${stringify(data)}`);
}

/**
 * 获取子任务列表
 * @param params.project_id
 * @param params.mandate_id
 * @returns {Promise<*>}
 */
export async function getMandateChildList(params) {
  return request(`${baseURL}/v1/mandate-child/list?${stringify(params)}`);
}

/**
 * 获取任务详情
 * @param params.mandate_id
 * @param params.project_id
 * @returns {Promise<*>}
 */
export async function getMandateDetail(params) {
  return request(`${baseURL}/v1/mandate/info?${stringify(params)}`);
}

/**
 * 设置任务为自动
 * @param params.mandate_id 任务id
 * @param params.pw MD5加密的口令
 * @returns {Promise<*>}
 */
export async function setTaskAutomation(params, mandate) {
  let res = await request(`${baseURL}/v1/mandate/automation`, {
    method: 'POST',
    data: params,
  });

  if (mandate.MandateClass === 2) {
    // res = await SetVarValues(mandate.MandateChild[0].Payload);
    const query = {
      mandate_id: item.Id,
      mandate_type: 1
    }
    res = await request(`${baseURL}/v1/mandate/do?${stringify(query)}`)
    if (res) {
      return res;
    } else {
      return false;
    }
  }
}

/**
 * 忽略任务
 * @param params.Id 任务id
 * @param params.Status 状态
 * @param params.note 备注
 * @returns {Promise<*>}
 */
export async function ignoreTaskRequest(params) {
  const encodeParams = new URLSearchParams(params).toString();
  return request(`${baseURL}/v1/mandate/edit`, {
    method: 'POST',
    headers: { ContentType: 'application/x-www-form-urlencoded' },
    data: encodeParams,
  });
}

/**
 * 派单
 * @param params.m_id *主任务id
 * @param params.mc_id *子任务id,多个以逗号分隔
 * @param params.operator_id *操作员id
 * @param params.plan_end_time *计划完成时间 YYYY:MM:DD HH:mm:ss
 * @param params.type *工单类型:1:工艺工单,2:维修工单,3:保养工单
 * @param params.note 备注
 * @returns {Promise<*>}
 */
export async function dispatchOrder(params) {
  return request(`${baseURL}/v1/work_order/save`, {
    method: 'POST',
    data: params,
  });
}

/**
 * 获取保养工单列表
 * @param data.project_id
 * @param data.id 工单id
 * @returns {Promise<*>}
 */
export async function getMaintainRecordList(data) {
  return request(
    `${baseURL}/v1/maintain-record/list/${data.project_id}?${stringify(data)}`,
    'GET',
  );
}

/**
 * 获取维修工单列表
 * @param data.project_id
 * @param data.id 工单id
 * @returns {Promise<*>}
 */
export async function getRepairRecordList(data) {
  return request(
    `${baseURL}/v1/repair-record/list/${data.project_id}?${stringify(data)}`,
    'GET',
  );
}

/**
 * 获取工艺工单列表
 * @param {object} data
 * @param data.project_id
 * @param data.work_id 工单id
 * @returns {Promise<*>}
 */
export async function getCraftRecordList(data) {
  return request(
    `${baseURL}/v1/work_order/section/list?${stringify(data)}`,
    'GET',
  );
}

export async function getDiagnosticDetail(detailId) {
  const res = await request(`/api/v1/dumu/detail/${detailId}`);
  return res.data;
}

/**
 * 获取加药工单详情
 * @param {object} data
 * @param {number} data.id
 * @returns {Promise<*>}
 */
export async function queryReagentDetail(data) {
  const res = await request(`/api/v1/reagent/detail?${stringify(data)}`);
  return res.data;
}

/**
 * 获取工单审批流程
 * @param {object} params
 * @param {number} params.work_type 工单类型:1-工艺工单,2-维修工单,3-保养工单,4-巡检,5-加药,6-备品备件,7-盘点
 * @param {number} params.work_id 工单id
 * @returns {Promise<*>}
 */
export async function getWorkOrderFlow(params) {
  const res = await request(`/api/v1/work_order/flow?${stringify(params)}`);
  return res.data;
}

export async function SetVarValues(params) {
  const res = await request(
    `/api/v1/scada/set-var-values-batch`,
    'POST',
    params,
  );
  if (res) {
    console.log('上报成功');
  }
  return res;
}

/**
 * 获取用户相关的工单列表
 * @param {Object} params
 * @param {number} params.project_id 项目id
 * @param {number} params.work_type 0-全部 1-工艺 2-维修 3-保养
 * @param {number} params.status -1-全部状态 0-未处理
 * @param {string} params.stime 开始时间
 * @param {string} params.etime 结束时间
 * @param {number} params.user_id 用户id
 * @returns {Promise<*>}
 */
export async function getUserWorkOrderList(params) {
  const res = await request(`/api/v1/user-mandate/list?${stringify(params)}`);
  return res.data;
}

/**
 *
 * @param {Object} params
 * @param {number} params.project_id
 * @param {string} params.start_time
 * @param {string} params.end_time
 * @param {string} params.name
 * @param {number} params.status
 * @returns {Promise<*>}
 */
export async function getReagentOrderList(params) {
  const res = await request(`/api/v1/reagent/list?${stringify(params)}`);
  return res;
}

/**
 * 获取加药工单详情
 * @param {number} id
 * @returns {Promise<*>}
 */
export async function getReagentOrderDetail(id) {
  const res = await request(`/api/v1/reagent/detail?id=${id}`);
  return res.data;
}

/**
 * 获取巡检工单列表
 * @param {object} params
 * @param {number | string} params.id
 * @param {number | string} params.project_id
 * @param {number | string} [params.status]
 * @returns {Promise<*>}
 */
export async function getPatrolMandateRecord(params) {
  const res = await request(
    `/api/v1/patrol_mandate_record/list?${stringify(params)}`,
  );
  return res;
}
