xiaoyi
6 天以前 27c8277d717b34b55f3ea967027b53b067f77df3
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
import type { PageParam, PageResult } from '@vben/request';
 
import { requestClient } from '#/api/request';
 
export namespace HrmPerformanceAppraiseApi {
  /** 考核指标 */
  export interface AppraiseItem {
    id?: number;
    appraiseId?: number;
    itemName?: string; // 指标名称
    weight?: number; // 权重
    scoringStandard?: string; // 评分标准
    scorerType?: number; // 评分人类型:1自评 2上级评
    sort?: number; // 排序
    /** 评分时回填用 */
    selfScore?: number;
    superiorScore?: number;
  }
 
  /** 考核结果指标明细 */
  export interface ResultItem {
    id?: number;
    resultId?: number;
    itemId?: number;
    itemName?: string;
    weight?: number;
    selfScore?: number;
    superiorScore?: number;
  }
 
  /** 绩效考核方案 */
  export interface Appraise {
    id?: number;
    name?: string; // 方案名称
    periodType?: number; // 考核周期类型:1月度 2季度 3年度
    period?: string; // 考核周期描述
    scopeType?: number; // 考核范围类型:1全部员工 2指定班组
    status?: number; // 方案状态:0草稿 10已发布 20进行中 30已完成
    statusName?: string;
    auditStatus?: number; // 审批状态:0未提交 10审批中 20通过 30驳回 40已取消
    auditStatusName?: string;
    processInstanceId?: string;
    auditUserId?: number;
    auditTime?: string;
    auditRemark?: string;
    remark?: string;
    itemCount?: number; // 考核指标数
    resultCount?: number; // 已评分人数
    createTime?: string;
  }
 
  /** 考核结果(按员工聚合) */
  export interface AppraiseResult {
    id?: number;
    appraiseId?: number;
    employeeId?: number;
    employeeName?: string;
    selfScore?: number; // 自评总分
    superiorScore?: number; // 上级评总分
    finalScore?: number; // 综合得分
    grade?: number; // 档级:1优秀 2良好 3合格 4待改进
    comment?: string; // 评语
    items?: ResultItem[]; // 指标评分明细
  }
}
 
/** 创建绩效考核方案 */
export function createAppraise(data: HrmPerformanceAppraiseApi.Appraise) {
  return requestClient.post<number>('/hrm/performance-appraise/create', data);
}
 
/** 更新绩效考核方案 */
export function updateAppraise(data: HrmPerformanceAppraiseApi.Appraise) {
  return requestClient.put<boolean>('/hrm/performance-appraise/update', data);
}
 
/** 删除绩效考核方案 */
export function deleteAppraise(ids: number[]) {
  return requestClient.delete<boolean>('/hrm/performance-appraise/delete', {
    params: { ids: ids.join(',') },
  });
}
 
/** 获取绩效考核方案 */
export function getAppraise(id: number) {
  return requestClient.get<HrmPerformanceAppraiseApi.Appraise>(
    `/hrm/performance-appraise/get?id=${id}`,
  );
}
 
/** 获取绩效考核方案分页 */
export function getAppraisePage(params: PageParam) {
  return requestClient.get<PageResult<HrmPerformanceAppraiseApi.Appraise>>(
    '/hrm/performance-appraise/page',
    { params },
  );
}
 
/** 获取考核指标列表 */
export function getAppraiseItemList(appraiseId: number) {
  return requestClient.get<HrmPerformanceAppraiseApi.AppraiseItem[]>(
    `/hrm/performance-appraise/item-list?appraiseId=${appraiseId}`,
  );
}
 
/** 保存考核指标(整表替换) */
export function saveAppraiseItems(data: {
  appraiseId: number;
  items: HrmPerformanceAppraiseApi.AppraiseItem[];
}) {
  return requestClient.post<boolean>('/hrm/performance-appraise/item-save', data);
}
 
/** 提交绩效考核方案审批 */
export function submitAppraise(id: number, processDefinitionKey: string) {
  return requestClient.post<boolean>('/hrm/performance-appraise/submit', null, {
    params: { id, processDefinitionKey },
  });
}
 
/** 审批绩效考核方案 */
export function auditAppraise(data: { id: number; auditStatus: number; remark?: string }) {
  return requestClient.put<boolean>('/hrm/performance-appraise/audit', data);
}
 
/** 获取绩效考核方案审批流程定义列表 */
export function getAppraiseProcessList() {
  return requestClient.get<{ id: string; name: string; version: number; key: string }[]>(
    '/hrm/performance-appraise/approve-process-list',
  );
}
 
/** 获取考核结果分页 */
export function getAppraiseResultPage(params: PageParam) {
  return requestClient.get<PageResult<HrmPerformanceAppraiseApi.AppraiseResult>>(
    '/hrm/performance-appraise/result-page',
    { params },
  );
}
 
/** 保存员工考核结果(自动计算综合得分与档级) */
export function saveAppraiseResult(data: {
  appraiseId: number;
  employeeId: number;
  comment?: string;
  items: { itemId: number; selfScore?: number; superiorScore?: number }[];
}) {
  return requestClient.post<boolean>('/hrm/performance-appraise/result-save', data);
}
 
/** 获取员工考核结果(含指标明细) */
export function getAppraiseResult(appraiseId: number, employeeId: number) {
  return requestClient.get<HrmPerformanceAppraiseApi.AppraiseResult>(
    `/hrm/performance-appraise/result?appraiseId=${appraiseId}&employeeId=${employeeId}`,
  );
}