tony.cheng
2026-02-04 a6be73d4391080bf012825bcdd95645e0a89bdcb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/**
 * 流程管理API Service
 * 处理调解流程、时间线、节点等相关接口
 * 接口前缀: /api/v1/process/* 和 /apie/v1/mediation-timelin/*
 */
 
import { request } from './request';
 
class ProcessAPIService {
  /**
   * 查询调解记录列表(实时看板专用)
   * GET /api/v1/process/record
   * @param {Object} params - 查询参数
   * @param {string} params.mediation_id - AI调解反馈ID
   * @returns {Promise} 调解记录列表
   */
  static getProcessRecords(params = {}) {
    return request.get('/api/v1/process/record', params);
  }
 
  /**
   * 获取流程任务进行时长
   * GET /api/v1/process/record/task-time
   * @param {Object} params - 查询参数
   * @param {string} params.mediation_id - AI调解反馈ID
   * @param {string} params.node_id - 节点ID
   * @returns {Promise} 任务进行时长
   */
  static getTaskTime(params = {}) {
    return request.get('/api/v1/process/record/task-time', params);
  }
 
  /**
   * 调解时间线查询
   * GET /api/v1/mediation-timeline/v2/case/{caseId}
   * @param {string} caseId - 案件ID
   * @param {Object} params - 查询参数
   * @param {string} params.caseTypeFirst - 案件一级分类
   * @param {string} params.platform_code - 外部平台编号
   * @returns {Promise} 调解时间线数据
   */
  static getMediationTimeline(caseId, params = {}) {
    return request.get(`/api/v1/mediation-timeline/v2/case/${caseId}`, params);
  }
 
  /**
   * 流程节点查询
   * GET /api/v1/process/node
   * @param {Object} params - 查询参数
   * @param {string} params.caseTypeFirst - 案件一级分类
   * @param {string} params.platformCode - 外部平台编号
   * @param {string} params.caseId - 案件ID
   * @returns {Promise} 流程节点列表
   */
  static getProcessNodes(params = {}) {
    return request.get('/api/v1/process/node', params);
  } 
 
 
  /**
   * 获取案件完整流程信息(整合多个接口)
   * @param {string} caseId - 案件ID
   * @param {Object} params - 查询参数
   * @param {string} params.caseTypeFirst - 案件一级分类
   * @param {string} params.platform_code - 外部平台编号
   * @returns {Promise} 完整流程信息
   */
  static async getCaseProcessInfo(caseId, params = {}) {
    try {
      // 参数名转换:platform_code -> platformCode
      const nodeParams = {
        caseTypeFirst: params.caseTypeFirst,
        platformCode: params.platform_code,
        caseId
      };
      
      // 并行获取时间线和流程节点
      const promises = [
        this.getMediationTimeline(caseId, params),
        this.getProcessNodes(nodeParams)
      ];
 
      const results = await Promise.all(promises);
 
      return {
        timeline: results[0].data || {},
        nodes: results[1].data || {}
      };
    } catch (error) {
      return Promise.reject(error);
    }
  }
 
  /**
   * 根据案件ID获取调解时间线中的mediation_id
   * @param {string} caseId - 案件ID
   * @param {Object} params - 查询参数
   * @param {string} params.caseTypeFirst - 案件一级分类
   * @param {string} params.platform_code - 外部平台编号
   * @returns {Promise} mediation_id
   */
  static async getMediationIdByCaseId(caseId, params = {}) {
    try {
      const timeline = await this.getMediationTimeline(caseId, params);
      return timeline.data?.mediation?.id || timeline.data?.id || null;
    } catch (error) {
      return Promise.reject(error);
    }
  }
 
}
 
export default ProcessAPIService;