@hubex/mcp 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +54 -0
- package/CONNECTING.md +260 -0
- package/README.md +266 -0
- package/dist/auth.js +226 -0
- package/dist/config.js +120 -0
- package/dist/generated/manifest.js +3643 -0
- package/dist/guides/field-notes.json +27 -0
- package/dist/guides/loader.js +32 -0
- package/dist/guides/service-map.js +6 -0
- package/dist/http.js +93 -0
- package/dist/index/store.js +134 -0
- package/dist/index/types.js +1 -0
- package/dist/index.js +20 -0
- package/dist/paths.js +20 -0
- package/dist/pii/fields.js +100 -0
- package/dist/pii/mask.js +50 -0
- package/dist/pii/strategies.js +88 -0
- package/dist/schema/build-index.js +67 -0
- package/dist/schema/deref.js +87 -0
- package/dist/schema/describe.js +65 -0
- package/dist/server.js +62 -0
- package/dist/token-prompt.js +41 -0
- package/dist/tools/curated.js +151 -0
- package/dist/tools/discovery.js +187 -0
- package/dist/tools/guides.js +126 -0
- package/dist/tools/registry.js +37 -0
- package/dist/tools/request.js +170 -0
- package/dist/tools/types.js +1 -0
- package/docs/guides/assets.md +334 -0
- package/docs/guides/attributes.md +125 -0
- package/docs/guides/checklisttemplates.md +154 -0
- package/docs/guides/companies.md +57 -0
- package/docs/guides/dictionaries.md +64 -0
- package/docs/guides/lifecycle.md +263 -0
- package/docs/guides/materials.md +135 -0
- package/docs/guides/notifications.md +184 -0
- package/docs/guides/roles.md +125 -0
- package/docs/guides/sla.md +130 -0
- package/docs/guides/start.md +67 -0
- package/docs/guides/taskchecklists.md +149 -0
- package/docs/guides/taskcreate.md +260 -0
- package/docs/guides/taskedit.md +277 -0
- package/docs/guides/tasktypes.md +156 -0
- package/docs/guides/users.md +71 -0
- package/generated/index.dev.json +18776 -0
- package/generated/index.prod.json +18858 -0
- package/package.json +48 -0
- package/swagger/dev/ADM.json +27777 -0
- package/swagger/dev/AUTH.json +1739 -0
- package/swagger/dev/AUTHN.json +1250 -0
- package/swagger/dev/AUTHZ.json +1404 -0
- package/swagger/dev/CM.json +309 -0
- package/swagger/dev/COMMON.json +6543 -0
- package/swagger/dev/ES.json +28029 -0
- package/swagger/dev/EXPORT.json +4575 -0
- package/swagger/dev/IMPORT.json +1479 -0
- package/swagger/dev/LIC.json +224 -0
- package/swagger/dev/MSG.json +7883 -0
- package/swagger/dev/NEWS.json +348 -0
- package/swagger/dev/PA.json +5981 -0
- package/swagger/dev/PMP.json +3196 -0
- package/swagger/dev/PROXY.json +416 -0
- package/swagger/dev/REPORT.json +3921 -0
- package/swagger/dev/SC.json +3771 -0
- package/swagger/dev/SLA.json +2837 -0
- package/swagger/dev/TSTG.json +4981 -0
- package/swagger/dev/UI.json +4720 -0
- package/swagger/dev/WH.json +16796 -0
- package/swagger/dev/WORK.json +36024 -0
- package/swagger/dev/WSP.json +1612 -0
- package/swagger/prod/ADM.json +27777 -0
- package/swagger/prod/AUTH.json +1308 -0
- package/swagger/prod/AUTHN.json +2710 -0
- package/swagger/prod/AUTHZ.json +896 -0
- package/swagger/prod/CM.json +162 -0
- package/swagger/prod/COMMON.json +4910 -0
- package/swagger/prod/ES.json +28029 -0
- package/swagger/prod/EXPORT.json +3091 -0
- package/swagger/prod/LIC.json +123 -0
- package/swagger/prod/MSG.json +6239 -0
- package/swagger/prod/NEWS.json +295 -0
- package/swagger/prod/PA.json +5123 -0
- package/swagger/prod/PMP.json +2978 -0
- package/swagger/prod/PROXY.json +250 -0
- package/swagger/prod/REPORT.json +3729 -0
- package/swagger/prod/SC.json +3771 -0
- package/swagger/prod/SLA.json +2201 -0
- package/swagger/prod/TSTG.json +4220 -0
- package/swagger/prod/UI.json +3879 -0
- package/swagger/prod/WH.json +16730 -0
- package/swagger/prod/WORK.json +35994 -0
- package/swagger/prod/WSP.json +1468 -0
|
@@ -0,0 +1,3921 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.0.1",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "API for REPORT in HubEx",
|
|
5
|
+
"description": "Service offers application programming interface for ....",
|
|
6
|
+
"contact": {
|
|
7
|
+
"name": "SmartService Backend Team",
|
|
8
|
+
"email": "fmbackend@melston.ru"
|
|
9
|
+
},
|
|
10
|
+
"version": "v1.0.0.0"
|
|
11
|
+
},
|
|
12
|
+
"servers": [
|
|
13
|
+
{
|
|
14
|
+
"url": "/REPORT"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"paths": {
|
|
18
|
+
"/AssetMaintenance/planned": {
|
|
19
|
+
"get": {
|
|
20
|
+
"tags": [
|
|
21
|
+
"AssetMaintenance"
|
|
22
|
+
],
|
|
23
|
+
"summary": "Получение запланированных заявок на обслуживание объектов",
|
|
24
|
+
"description": "## Пример запроса:\r\n`GET /AssetMaintenance/planned?validityFrom=2026-01-01&validityTill=2026-12-31`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"taskTemplateID\": 10,\r\n \"appointment\": \"2026-03-15T09:00:00Z\",\r\n \"normalWorkingHours\": 2,\r\n \"normalWorkingMinutes\": 120,\r\n \"workType\": { \"id\": 5, \"name\": \"ТО оборудования\" },\r\n \"asset\": { \"id\": 100, \"name\": \"Насосная станция №1\" }\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные не найдены.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `PreventiveAssetMaintenanceList`.",
|
|
25
|
+
"parameters": [
|
|
26
|
+
{
|
|
27
|
+
"name": "validFrom",
|
|
28
|
+
"in": "query",
|
|
29
|
+
"description": "Начало периода выбора данных (если не указано, то начало текущего года)",
|
|
30
|
+
"schema": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"format": "date-time"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "validTill",
|
|
37
|
+
"in": "query",
|
|
38
|
+
"description": "Окончание периода выбора данных (если не указано, то конец текущего года)",
|
|
39
|
+
"schema": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"format": "date-time"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "X-Application-ID",
|
|
46
|
+
"in": "header",
|
|
47
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
48
|
+
"schema": {
|
|
49
|
+
"enum": [
|
|
50
|
+
1,
|
|
51
|
+
2,
|
|
52
|
+
3,
|
|
53
|
+
4,
|
|
54
|
+
5,
|
|
55
|
+
6
|
|
56
|
+
],
|
|
57
|
+
"type": "integer",
|
|
58
|
+
"format": "int32",
|
|
59
|
+
"default": 3,
|
|
60
|
+
"x-enumNames": [
|
|
61
|
+
"EngineerMobile",
|
|
62
|
+
"CustomerMobile",
|
|
63
|
+
"MainWeb",
|
|
64
|
+
"AdminWeb",
|
|
65
|
+
"Api",
|
|
66
|
+
"PlateWeb"
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"responses": {
|
|
72
|
+
"200": {
|
|
73
|
+
"description": "Список запланированного обслуживания.",
|
|
74
|
+
"content": {
|
|
75
|
+
"text/plain": {
|
|
76
|
+
"schema": {
|
|
77
|
+
"type": "array",
|
|
78
|
+
"items": {
|
|
79
|
+
"$ref": "#/components/schemas/ResultsAssetMaintenancePlannedMaintenanceResult"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"application/json": {
|
|
84
|
+
"schema": {
|
|
85
|
+
"type": "array",
|
|
86
|
+
"items": {
|
|
87
|
+
"$ref": "#/components/schemas/ResultsAssetMaintenancePlannedMaintenanceResult"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"text/json": {
|
|
92
|
+
"schema": {
|
|
93
|
+
"type": "array",
|
|
94
|
+
"items": {
|
|
95
|
+
"$ref": "#/components/schemas/ResultsAssetMaintenancePlannedMaintenanceResult"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"204": {
|
|
102
|
+
"description": "Данные не найдены."
|
|
103
|
+
},
|
|
104
|
+
"401": {
|
|
105
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
106
|
+
},
|
|
107
|
+
"403": {
|
|
108
|
+
"description": "Недостаточно прав для просмотра отчета."
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"security": [
|
|
112
|
+
{
|
|
113
|
+
"Bearer": [ ]
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"/CompletionTime": {
|
|
119
|
+
"get": {
|
|
120
|
+
"tags": [
|
|
121
|
+
"CompletionTime"
|
|
122
|
+
],
|
|
123
|
+
"summary": "Получение отчета по времени выполнения заявок",
|
|
124
|
+
"description": "## Пример запроса:\r\n`GET /CompletionTime?groupByPeriod=Month&creationFrom=2026-01-01&creationTill=2026-12-31`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"period\": { \"from\": \"2026-01-01T00:00:00Z\", \"till\": \"2026-01-31T23:59:59Z\" },\r\n \"completionTime\": { \"totalMinutes\": 4800, \"averageMinutes\": 120 }\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 400 BadRequest: не указан или некорректен параметр groupByPeriod.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListCompletionTime.",
|
|
125
|
+
"parameters": [
|
|
126
|
+
{
|
|
127
|
+
"name": "groupByPeriod",
|
|
128
|
+
"in": "query",
|
|
129
|
+
"description": "Период группировки: Day, Week или Month.",
|
|
130
|
+
"schema": {
|
|
131
|
+
"$ref": "#/components/schemas/ApiEnumsDatePart"
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"name": "Range",
|
|
136
|
+
"in": "header",
|
|
137
|
+
"description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
|
|
138
|
+
"schema": {
|
|
139
|
+
"type": "string"
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"name": "offset",
|
|
144
|
+
"in": "query",
|
|
145
|
+
"description": "количество элементов, которое нобходимо пропустить",
|
|
146
|
+
"schema": {
|
|
147
|
+
"type": "string"
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"name": "fetch",
|
|
152
|
+
"in": "query",
|
|
153
|
+
"description": "количество элементов, которое необходимо вернуть",
|
|
154
|
+
"schema": {
|
|
155
|
+
"type": "string"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"name": "groupByPeriod",
|
|
160
|
+
"in": "query",
|
|
161
|
+
"description": "Период группировки (Day, Week, Month)",
|
|
162
|
+
"required": true,
|
|
163
|
+
"schema": {
|
|
164
|
+
"enum": [
|
|
165
|
+
"Year",
|
|
166
|
+
"Quarter",
|
|
167
|
+
"Month",
|
|
168
|
+
"Day",
|
|
169
|
+
"Week",
|
|
170
|
+
"Second",
|
|
171
|
+
"Minute",
|
|
172
|
+
"Hour"
|
|
173
|
+
],
|
|
174
|
+
"type": "string"
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"name": "requestedBy",
|
|
179
|
+
"in": "query",
|
|
180
|
+
"description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
|
|
181
|
+
"schema": {
|
|
182
|
+
"type": "integer",
|
|
183
|
+
"format": "int32"
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"name": "assignedTo",
|
|
188
|
+
"in": "query",
|
|
189
|
+
"description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
|
|
190
|
+
"schema": {
|
|
191
|
+
"type": "integer",
|
|
192
|
+
"format": "int32"
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"name": "approvalWith",
|
|
197
|
+
"in": "query",
|
|
198
|
+
"description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
|
|
199
|
+
"schema": {
|
|
200
|
+
"type": "integer",
|
|
201
|
+
"format": "int32"
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"name": "escalatedTo",
|
|
206
|
+
"in": "query",
|
|
207
|
+
"description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
|
|
208
|
+
"schema": {
|
|
209
|
+
"type": "integer",
|
|
210
|
+
"format": "int32"
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"name": "assetID",
|
|
215
|
+
"in": "query",
|
|
216
|
+
"description": "Идентификаторы объектов, по которым будет отфильтрован результат",
|
|
217
|
+
"schema": {
|
|
218
|
+
"type": "integer",
|
|
219
|
+
"format": "int32"
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"name": "startWithAssetID",
|
|
224
|
+
"in": "query",
|
|
225
|
+
"description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
|
|
226
|
+
"schema": {
|
|
227
|
+
"type": "integer",
|
|
228
|
+
"format": "int32"
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"name": "taskID",
|
|
233
|
+
"in": "query",
|
|
234
|
+
"description": "Идентификаторы заявок, по которым будет отфильтрован результат",
|
|
235
|
+
"schema": {
|
|
236
|
+
"type": "integer",
|
|
237
|
+
"format": "int32"
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"name": "taskNumber",
|
|
242
|
+
"in": "query",
|
|
243
|
+
"description": "Номера заявок, по которым будет отфильтрован результат",
|
|
244
|
+
"schema": {
|
|
245
|
+
"type": "string"
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"name": "taskTypeID",
|
|
250
|
+
"in": "query",
|
|
251
|
+
"description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
|
|
252
|
+
"schema": {
|
|
253
|
+
"type": "integer",
|
|
254
|
+
"format": "int32"
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"name": "workTypeID",
|
|
259
|
+
"in": "query",
|
|
260
|
+
"description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
|
|
261
|
+
"schema": {
|
|
262
|
+
"type": "integer",
|
|
263
|
+
"format": "int32"
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"name": "taskStageID",
|
|
268
|
+
"in": "query",
|
|
269
|
+
"description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
|
|
270
|
+
"schema": {
|
|
271
|
+
"type": "integer",
|
|
272
|
+
"format": "int32"
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"name": "taskStatusID",
|
|
277
|
+
"in": "query",
|
|
278
|
+
"description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
|
|
279
|
+
"schema": {
|
|
280
|
+
"type": "integer",
|
|
281
|
+
"format": "int32"
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"name": "creationFrom",
|
|
286
|
+
"in": "query",
|
|
287
|
+
"description": "Начальный период фильтрации по дате создания заявки",
|
|
288
|
+
"schema": {
|
|
289
|
+
"type": "string",
|
|
290
|
+
"format": "date-time"
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"name": "creationTill",
|
|
295
|
+
"in": "query",
|
|
296
|
+
"description": "Конечный период фильтрации по дате создания заявки",
|
|
297
|
+
"schema": {
|
|
298
|
+
"type": "string",
|
|
299
|
+
"format": "date-time"
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"name": "assignationFrom",
|
|
304
|
+
"in": "query",
|
|
305
|
+
"description": "Начальный период фильтрации по дате назначения заявки",
|
|
306
|
+
"schema": {
|
|
307
|
+
"type": "string",
|
|
308
|
+
"format": "date-time"
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"name": "assignationTill",
|
|
313
|
+
"in": "query",
|
|
314
|
+
"description": "Конечный период фильтрации по дате назначения заявки",
|
|
315
|
+
"schema": {
|
|
316
|
+
"type": "string",
|
|
317
|
+
"format": "date-time"
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"name": "completionFrom",
|
|
322
|
+
"in": "query",
|
|
323
|
+
"description": "Начальный период фильтрации по дате выполнения заявки",
|
|
324
|
+
"schema": {
|
|
325
|
+
"type": "string",
|
|
326
|
+
"format": "date-time"
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"name": "completionTill",
|
|
331
|
+
"in": "query",
|
|
332
|
+
"description": "Конечный период фильтрации по дате выполнения заявки",
|
|
333
|
+
"schema": {
|
|
334
|
+
"type": "string",
|
|
335
|
+
"format": "date-time"
|
|
336
|
+
}
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"name": "closingFrom",
|
|
340
|
+
"in": "query",
|
|
341
|
+
"description": "Начальный период фильтрации по дате закрытия заявки",
|
|
342
|
+
"schema": {
|
|
343
|
+
"type": "string",
|
|
344
|
+
"format": "date-time"
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"name": "closingTill",
|
|
349
|
+
"in": "query",
|
|
350
|
+
"description": "Конечный период фильтрации по дате закрытия заявки",
|
|
351
|
+
"schema": {
|
|
352
|
+
"type": "string",
|
|
353
|
+
"format": "date-time"
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"name": "deadlineFrom",
|
|
358
|
+
"in": "query",
|
|
359
|
+
"description": "Начальный период фильтрации по сроку выполнения заявки",
|
|
360
|
+
"schema": {
|
|
361
|
+
"type": "string",
|
|
362
|
+
"format": "date-time"
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"name": "deadlineTill",
|
|
367
|
+
"in": "query",
|
|
368
|
+
"description": "Конечный период фильтрации по сроку выполнения заявки",
|
|
369
|
+
"schema": {
|
|
370
|
+
"type": "string",
|
|
371
|
+
"format": "date-time"
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"name": "isClosed",
|
|
376
|
+
"in": "query",
|
|
377
|
+
"description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
|
|
378
|
+
"schema": {
|
|
379
|
+
"type": "boolean"
|
|
380
|
+
}
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"name": "isFavourite",
|
|
384
|
+
"in": "query",
|
|
385
|
+
"description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
|
|
386
|
+
"schema": {
|
|
387
|
+
"type": "boolean"
|
|
388
|
+
}
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
"name": "isCompleted",
|
|
392
|
+
"in": "query",
|
|
393
|
+
"description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
|
|
394
|
+
"schema": {
|
|
395
|
+
"type": "boolean"
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"name": "isAssigned",
|
|
400
|
+
"in": "query",
|
|
401
|
+
"description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
|
|
402
|
+
"schema": {
|
|
403
|
+
"type": "boolean"
|
|
404
|
+
}
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"name": "isDeleted",
|
|
408
|
+
"in": "query",
|
|
409
|
+
"description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
|
|
410
|
+
"schema": {
|
|
411
|
+
"type": "boolean"
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"name": "companyID",
|
|
416
|
+
"in": "query",
|
|
417
|
+
"description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
|
|
418
|
+
"schema": {
|
|
419
|
+
"type": "integer",
|
|
420
|
+
"format": "int32"
|
|
421
|
+
}
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
"name": "contractID",
|
|
425
|
+
"in": "query",
|
|
426
|
+
"description": "Идентификаторы контракта, в рамках которого выполняется заявка",
|
|
427
|
+
"schema": {
|
|
428
|
+
"type": "integer",
|
|
429
|
+
"format": "int32"
|
|
430
|
+
}
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
"name": "criticalityID",
|
|
434
|
+
"in": "query",
|
|
435
|
+
"description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
|
|
436
|
+
"schema": {
|
|
437
|
+
"type": "integer",
|
|
438
|
+
"format": "int32"
|
|
439
|
+
}
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
"name": "X-Application-ID",
|
|
443
|
+
"in": "header",
|
|
444
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
445
|
+
"schema": {
|
|
446
|
+
"enum": [
|
|
447
|
+
1,
|
|
448
|
+
2,
|
|
449
|
+
3,
|
|
450
|
+
4,
|
|
451
|
+
5,
|
|
452
|
+
6
|
|
453
|
+
],
|
|
454
|
+
"type": "integer",
|
|
455
|
+
"format": "int32",
|
|
456
|
+
"default": 3,
|
|
457
|
+
"x-enumNames": [
|
|
458
|
+
"EngineerMobile",
|
|
459
|
+
"CustomerMobile",
|
|
460
|
+
"MainWeb",
|
|
461
|
+
"AdminWeb",
|
|
462
|
+
"Api",
|
|
463
|
+
"PlateWeb"
|
|
464
|
+
]
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
],
|
|
468
|
+
"responses": {
|
|
469
|
+
"200": {
|
|
470
|
+
"description": "Отчет по времени выполнения.",
|
|
471
|
+
"content": {
|
|
472
|
+
"text/plain": {
|
|
473
|
+
"schema": {
|
|
474
|
+
"type": "array",
|
|
475
|
+
"items": {
|
|
476
|
+
"$ref": "#/components/schemas/ResultsCompletionTimeCompletionTimeResult"
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
"application/json": {
|
|
481
|
+
"schema": {
|
|
482
|
+
"type": "array",
|
|
483
|
+
"items": {
|
|
484
|
+
"$ref": "#/components/schemas/ResultsCompletionTimeCompletionTimeResult"
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
},
|
|
488
|
+
"text/json": {
|
|
489
|
+
"schema": {
|
|
490
|
+
"type": "array",
|
|
491
|
+
"items": {
|
|
492
|
+
"$ref": "#/components/schemas/ResultsCompletionTimeCompletionTimeResult"
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
},
|
|
498
|
+
"204": {
|
|
499
|
+
"description": "Данные не найдены."
|
|
500
|
+
},
|
|
501
|
+
"206": {
|
|
502
|
+
"description": "Частичный ответ при использовании Range-заголовка."
|
|
503
|
+
},
|
|
504
|
+
"401": {
|
|
505
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
506
|
+
},
|
|
507
|
+
"400": {
|
|
508
|
+
"description": "Некорректный параметр groupByPeriod."
|
|
509
|
+
},
|
|
510
|
+
"403": {
|
|
511
|
+
"description": "Недостаточно прав для просмотра отчета."
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
"security": [
|
|
515
|
+
{
|
|
516
|
+
"Bearer": [ ]
|
|
517
|
+
}
|
|
518
|
+
]
|
|
519
|
+
}
|
|
520
|
+
},
|
|
521
|
+
"/PowerBICustomReports": {
|
|
522
|
+
"get": {
|
|
523
|
+
"tags": [
|
|
524
|
+
"PowerBICustomReports"
|
|
525
|
+
],
|
|
526
|
+
"summary": "Получение списка кастомных отчетов PowerBI",
|
|
527
|
+
"description": "## Пример запроса:\r\n`GET /PowerBICustomReports`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"1\": {\r\n \"name\": \"Отчет по заявкам\",\r\n \"reportID\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\r\n \"reportType\": \"PowerBI\"\r\n }\r\n}\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: отчеты не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `PowerBICustomReportList`.",
|
|
528
|
+
"parameters": [
|
|
529
|
+
{
|
|
530
|
+
"name": "Range",
|
|
531
|
+
"in": "header",
|
|
532
|
+
"description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
|
|
533
|
+
"schema": {
|
|
534
|
+
"type": "string"
|
|
535
|
+
}
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"name": "offset",
|
|
539
|
+
"in": "query",
|
|
540
|
+
"description": "количество элементов, которое нобходимо пропустить",
|
|
541
|
+
"schema": {
|
|
542
|
+
"type": "string"
|
|
543
|
+
}
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"name": "fetch",
|
|
547
|
+
"in": "query",
|
|
548
|
+
"description": "количество элементов, которое необходимо вернуть",
|
|
549
|
+
"schema": {
|
|
550
|
+
"type": "string"
|
|
551
|
+
}
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"name": "X-Application-ID",
|
|
555
|
+
"in": "header",
|
|
556
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
557
|
+
"schema": {
|
|
558
|
+
"enum": [
|
|
559
|
+
1,
|
|
560
|
+
2,
|
|
561
|
+
3,
|
|
562
|
+
4,
|
|
563
|
+
5,
|
|
564
|
+
6
|
|
565
|
+
],
|
|
566
|
+
"type": "integer",
|
|
567
|
+
"format": "int32",
|
|
568
|
+
"default": 3,
|
|
569
|
+
"x-enumNames": [
|
|
570
|
+
"EngineerMobile",
|
|
571
|
+
"CustomerMobile",
|
|
572
|
+
"MainWeb",
|
|
573
|
+
"AdminWeb",
|
|
574
|
+
"Api",
|
|
575
|
+
"PlateWeb"
|
|
576
|
+
]
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
],
|
|
580
|
+
"responses": {
|
|
581
|
+
"200": {
|
|
582
|
+
"description": "Полный список отчетов.",
|
|
583
|
+
"content": {
|
|
584
|
+
"text/plain": {
|
|
585
|
+
"schema": {
|
|
586
|
+
"type": "object",
|
|
587
|
+
"additionalProperties": {
|
|
588
|
+
"$ref": "#/components/schemas/ResultsPowerBICustomReportsCustomReportList"
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
},
|
|
592
|
+
"application/json": {
|
|
593
|
+
"schema": {
|
|
594
|
+
"type": "object",
|
|
595
|
+
"additionalProperties": {
|
|
596
|
+
"$ref": "#/components/schemas/ResultsPowerBICustomReportsCustomReportList"
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
},
|
|
600
|
+
"text/json": {
|
|
601
|
+
"schema": {
|
|
602
|
+
"type": "object",
|
|
603
|
+
"additionalProperties": {
|
|
604
|
+
"$ref": "#/components/schemas/ResultsPowerBICustomReportsCustomReportList"
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
},
|
|
610
|
+
"206": {
|
|
611
|
+
"description": "Частичный список отчетов при использовании Range-заголовка."
|
|
612
|
+
},
|
|
613
|
+
"204": {
|
|
614
|
+
"description": "Отчеты не найдены."
|
|
615
|
+
},
|
|
616
|
+
"401": {
|
|
617
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
618
|
+
},
|
|
619
|
+
"403": {
|
|
620
|
+
"description": "Недостаточно прав для просмотра отчетов."
|
|
621
|
+
}
|
|
622
|
+
},
|
|
623
|
+
"security": [
|
|
624
|
+
{
|
|
625
|
+
"Bearer": [ ]
|
|
626
|
+
}
|
|
627
|
+
]
|
|
628
|
+
}
|
|
629
|
+
},
|
|
630
|
+
"/ReactionTime": {
|
|
631
|
+
"get": {
|
|
632
|
+
"tags": [
|
|
633
|
+
"ReactionTime"
|
|
634
|
+
],
|
|
635
|
+
"summary": "Получение отчета по времени реакции на заявки",
|
|
636
|
+
"description": "## Пример запроса:\r\n`GET /ReactionTime?groupByPeriod=Week&creationFrom=2026-01-01&creationTill=2026-03-31`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"period\": { \"from\": \"2026-01-01T00:00:00Z\", \"till\": \"2026-01-07T23:59:59Z\" },\r\n \"reactionTime\": { \"totalMinutes\": 360, \"averageMinutes\": 45 }\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 400 BadRequest: не указан или некорректен параметр groupByPeriod.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListReactionTime.",
|
|
637
|
+
"parameters": [
|
|
638
|
+
{
|
|
639
|
+
"name": "groupByPeriod",
|
|
640
|
+
"in": "query",
|
|
641
|
+
"description": "Период группировки: Day, Week или Month.",
|
|
642
|
+
"schema": {
|
|
643
|
+
"$ref": "#/components/schemas/ApiEnumsDatePart"
|
|
644
|
+
}
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
"name": "Range",
|
|
648
|
+
"in": "header",
|
|
649
|
+
"description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
|
|
650
|
+
"schema": {
|
|
651
|
+
"type": "string"
|
|
652
|
+
}
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
"name": "offset",
|
|
656
|
+
"in": "query",
|
|
657
|
+
"description": "количество элементов, которое нобходимо пропустить",
|
|
658
|
+
"schema": {
|
|
659
|
+
"type": "string"
|
|
660
|
+
}
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
"name": "fetch",
|
|
664
|
+
"in": "query",
|
|
665
|
+
"description": "количество элементов, которое необходимо вернуть",
|
|
666
|
+
"schema": {
|
|
667
|
+
"type": "string"
|
|
668
|
+
}
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
"name": "groupByPeriod",
|
|
672
|
+
"in": "query",
|
|
673
|
+
"description": "Период группировки (Day, Week, Month)",
|
|
674
|
+
"required": true,
|
|
675
|
+
"schema": {
|
|
676
|
+
"enum": [
|
|
677
|
+
"Year",
|
|
678
|
+
"Quarter",
|
|
679
|
+
"Month",
|
|
680
|
+
"Day",
|
|
681
|
+
"Week",
|
|
682
|
+
"Second",
|
|
683
|
+
"Minute",
|
|
684
|
+
"Hour"
|
|
685
|
+
],
|
|
686
|
+
"type": "string"
|
|
687
|
+
}
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"name": "requestedBy",
|
|
691
|
+
"in": "query",
|
|
692
|
+
"description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
|
|
693
|
+
"schema": {
|
|
694
|
+
"type": "integer",
|
|
695
|
+
"format": "int32"
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
"name": "assignedTo",
|
|
700
|
+
"in": "query",
|
|
701
|
+
"description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
|
|
702
|
+
"schema": {
|
|
703
|
+
"type": "integer",
|
|
704
|
+
"format": "int32"
|
|
705
|
+
}
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
"name": "approvalWith",
|
|
709
|
+
"in": "query",
|
|
710
|
+
"description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
|
|
711
|
+
"schema": {
|
|
712
|
+
"type": "integer",
|
|
713
|
+
"format": "int32"
|
|
714
|
+
}
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
"name": "escalatedTo",
|
|
718
|
+
"in": "query",
|
|
719
|
+
"description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
|
|
720
|
+
"schema": {
|
|
721
|
+
"type": "integer",
|
|
722
|
+
"format": "int32"
|
|
723
|
+
}
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
"name": "assetID",
|
|
727
|
+
"in": "query",
|
|
728
|
+
"description": "Идентификаторы объектов, по которым будет отфильтрован результат",
|
|
729
|
+
"schema": {
|
|
730
|
+
"type": "integer",
|
|
731
|
+
"format": "int32"
|
|
732
|
+
}
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
"name": "startWithAssetID",
|
|
736
|
+
"in": "query",
|
|
737
|
+
"description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
|
|
738
|
+
"schema": {
|
|
739
|
+
"type": "integer",
|
|
740
|
+
"format": "int32"
|
|
741
|
+
}
|
|
742
|
+
},
|
|
743
|
+
{
|
|
744
|
+
"name": "taskID",
|
|
745
|
+
"in": "query",
|
|
746
|
+
"description": "Идентификаторы заявок, по которым будет отфильтрован результат",
|
|
747
|
+
"schema": {
|
|
748
|
+
"type": "integer",
|
|
749
|
+
"format": "int32"
|
|
750
|
+
}
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
"name": "taskNumber",
|
|
754
|
+
"in": "query",
|
|
755
|
+
"description": "Номера заявок, по которым будет отфильтрован результат",
|
|
756
|
+
"schema": {
|
|
757
|
+
"type": "string"
|
|
758
|
+
}
|
|
759
|
+
},
|
|
760
|
+
{
|
|
761
|
+
"name": "taskTypeID",
|
|
762
|
+
"in": "query",
|
|
763
|
+
"description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
|
|
764
|
+
"schema": {
|
|
765
|
+
"type": "integer",
|
|
766
|
+
"format": "int32"
|
|
767
|
+
}
|
|
768
|
+
},
|
|
769
|
+
{
|
|
770
|
+
"name": "workTypeID",
|
|
771
|
+
"in": "query",
|
|
772
|
+
"description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
|
|
773
|
+
"schema": {
|
|
774
|
+
"type": "integer",
|
|
775
|
+
"format": "int32"
|
|
776
|
+
}
|
|
777
|
+
},
|
|
778
|
+
{
|
|
779
|
+
"name": "taskStageID",
|
|
780
|
+
"in": "query",
|
|
781
|
+
"description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
|
|
782
|
+
"schema": {
|
|
783
|
+
"type": "integer",
|
|
784
|
+
"format": "int32"
|
|
785
|
+
}
|
|
786
|
+
},
|
|
787
|
+
{
|
|
788
|
+
"name": "taskStatusID",
|
|
789
|
+
"in": "query",
|
|
790
|
+
"description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
|
|
791
|
+
"schema": {
|
|
792
|
+
"type": "integer",
|
|
793
|
+
"format": "int32"
|
|
794
|
+
}
|
|
795
|
+
},
|
|
796
|
+
{
|
|
797
|
+
"name": "creationFrom",
|
|
798
|
+
"in": "query",
|
|
799
|
+
"description": "Начальный период фильтрации по дате создания заявки",
|
|
800
|
+
"schema": {
|
|
801
|
+
"type": "string",
|
|
802
|
+
"format": "date-time"
|
|
803
|
+
}
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
"name": "creationTill",
|
|
807
|
+
"in": "query",
|
|
808
|
+
"description": "Конечный период фильтрации по дате создания заявки",
|
|
809
|
+
"schema": {
|
|
810
|
+
"type": "string",
|
|
811
|
+
"format": "date-time"
|
|
812
|
+
}
|
|
813
|
+
},
|
|
814
|
+
{
|
|
815
|
+
"name": "assignationFrom",
|
|
816
|
+
"in": "query",
|
|
817
|
+
"description": "Начальный период фильтрации по дате назначения заявки",
|
|
818
|
+
"schema": {
|
|
819
|
+
"type": "string",
|
|
820
|
+
"format": "date-time"
|
|
821
|
+
}
|
|
822
|
+
},
|
|
823
|
+
{
|
|
824
|
+
"name": "assignationTill",
|
|
825
|
+
"in": "query",
|
|
826
|
+
"description": "Конечный период фильтрации по дате назначения заявки",
|
|
827
|
+
"schema": {
|
|
828
|
+
"type": "string",
|
|
829
|
+
"format": "date-time"
|
|
830
|
+
}
|
|
831
|
+
},
|
|
832
|
+
{
|
|
833
|
+
"name": "completionFrom",
|
|
834
|
+
"in": "query",
|
|
835
|
+
"description": "Начальный период фильтрации по дате выполнения заявки",
|
|
836
|
+
"schema": {
|
|
837
|
+
"type": "string",
|
|
838
|
+
"format": "date-time"
|
|
839
|
+
}
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"name": "completionTill",
|
|
843
|
+
"in": "query",
|
|
844
|
+
"description": "Конечный период фильтрации по дате выполнения заявки",
|
|
845
|
+
"schema": {
|
|
846
|
+
"type": "string",
|
|
847
|
+
"format": "date-time"
|
|
848
|
+
}
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
"name": "closingFrom",
|
|
852
|
+
"in": "query",
|
|
853
|
+
"description": "Начальный период фильтрации по дате закрытия заявки",
|
|
854
|
+
"schema": {
|
|
855
|
+
"type": "string",
|
|
856
|
+
"format": "date-time"
|
|
857
|
+
}
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
"name": "closingTill",
|
|
861
|
+
"in": "query",
|
|
862
|
+
"description": "Конечный период фильтрации по дате закрытия заявки",
|
|
863
|
+
"schema": {
|
|
864
|
+
"type": "string",
|
|
865
|
+
"format": "date-time"
|
|
866
|
+
}
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
"name": "deadlineFrom",
|
|
870
|
+
"in": "query",
|
|
871
|
+
"description": "Начальный период фильтрации по сроку выполнения заявки",
|
|
872
|
+
"schema": {
|
|
873
|
+
"type": "string",
|
|
874
|
+
"format": "date-time"
|
|
875
|
+
}
|
|
876
|
+
},
|
|
877
|
+
{
|
|
878
|
+
"name": "deadlineTill",
|
|
879
|
+
"in": "query",
|
|
880
|
+
"description": "Конечный период фильтрации по сроку выполнения заявки",
|
|
881
|
+
"schema": {
|
|
882
|
+
"type": "string",
|
|
883
|
+
"format": "date-time"
|
|
884
|
+
}
|
|
885
|
+
},
|
|
886
|
+
{
|
|
887
|
+
"name": "isClosed",
|
|
888
|
+
"in": "query",
|
|
889
|
+
"description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
|
|
890
|
+
"schema": {
|
|
891
|
+
"type": "boolean"
|
|
892
|
+
}
|
|
893
|
+
},
|
|
894
|
+
{
|
|
895
|
+
"name": "isFavourite",
|
|
896
|
+
"in": "query",
|
|
897
|
+
"description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
|
|
898
|
+
"schema": {
|
|
899
|
+
"type": "boolean"
|
|
900
|
+
}
|
|
901
|
+
},
|
|
902
|
+
{
|
|
903
|
+
"name": "isCompleted",
|
|
904
|
+
"in": "query",
|
|
905
|
+
"description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
|
|
906
|
+
"schema": {
|
|
907
|
+
"type": "boolean"
|
|
908
|
+
}
|
|
909
|
+
},
|
|
910
|
+
{
|
|
911
|
+
"name": "isAssigned",
|
|
912
|
+
"in": "query",
|
|
913
|
+
"description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
|
|
914
|
+
"schema": {
|
|
915
|
+
"type": "boolean"
|
|
916
|
+
}
|
|
917
|
+
},
|
|
918
|
+
{
|
|
919
|
+
"name": "isDeleted",
|
|
920
|
+
"in": "query",
|
|
921
|
+
"description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
|
|
922
|
+
"schema": {
|
|
923
|
+
"type": "boolean"
|
|
924
|
+
}
|
|
925
|
+
},
|
|
926
|
+
{
|
|
927
|
+
"name": "companyID",
|
|
928
|
+
"in": "query",
|
|
929
|
+
"description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
|
|
930
|
+
"schema": {
|
|
931
|
+
"type": "integer",
|
|
932
|
+
"format": "int32"
|
|
933
|
+
}
|
|
934
|
+
},
|
|
935
|
+
{
|
|
936
|
+
"name": "contractID",
|
|
937
|
+
"in": "query",
|
|
938
|
+
"description": "Идентификаторы контракта, в рамках которого выполняется заявка",
|
|
939
|
+
"schema": {
|
|
940
|
+
"type": "integer",
|
|
941
|
+
"format": "int32"
|
|
942
|
+
}
|
|
943
|
+
},
|
|
944
|
+
{
|
|
945
|
+
"name": "criticalityID",
|
|
946
|
+
"in": "query",
|
|
947
|
+
"description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
|
|
948
|
+
"schema": {
|
|
949
|
+
"type": "integer",
|
|
950
|
+
"format": "int32"
|
|
951
|
+
}
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
"name": "X-Application-ID",
|
|
955
|
+
"in": "header",
|
|
956
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
957
|
+
"schema": {
|
|
958
|
+
"enum": [
|
|
959
|
+
1,
|
|
960
|
+
2,
|
|
961
|
+
3,
|
|
962
|
+
4,
|
|
963
|
+
5,
|
|
964
|
+
6
|
|
965
|
+
],
|
|
966
|
+
"type": "integer",
|
|
967
|
+
"format": "int32",
|
|
968
|
+
"default": 3,
|
|
969
|
+
"x-enumNames": [
|
|
970
|
+
"EngineerMobile",
|
|
971
|
+
"CustomerMobile",
|
|
972
|
+
"MainWeb",
|
|
973
|
+
"AdminWeb",
|
|
974
|
+
"Api",
|
|
975
|
+
"PlateWeb"
|
|
976
|
+
]
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
],
|
|
980
|
+
"responses": {
|
|
981
|
+
"200": {
|
|
982
|
+
"description": "Отчет по времени реакции.",
|
|
983
|
+
"content": {
|
|
984
|
+
"text/plain": {
|
|
985
|
+
"schema": {
|
|
986
|
+
"type": "array",
|
|
987
|
+
"items": {
|
|
988
|
+
"$ref": "#/components/schemas/ResultsReactionTimeReactionTimeResult"
|
|
989
|
+
}
|
|
990
|
+
}
|
|
991
|
+
},
|
|
992
|
+
"application/json": {
|
|
993
|
+
"schema": {
|
|
994
|
+
"type": "array",
|
|
995
|
+
"items": {
|
|
996
|
+
"$ref": "#/components/schemas/ResultsReactionTimeReactionTimeResult"
|
|
997
|
+
}
|
|
998
|
+
}
|
|
999
|
+
},
|
|
1000
|
+
"text/json": {
|
|
1001
|
+
"schema": {
|
|
1002
|
+
"type": "array",
|
|
1003
|
+
"items": {
|
|
1004
|
+
"$ref": "#/components/schemas/ResultsReactionTimeReactionTimeResult"
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
},
|
|
1010
|
+
"204": {
|
|
1011
|
+
"description": "Данные не найдены."
|
|
1012
|
+
},
|
|
1013
|
+
"206": {
|
|
1014
|
+
"description": "Частичный ответ при использовании Range-заголовка."
|
|
1015
|
+
},
|
|
1016
|
+
"401": {
|
|
1017
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
1018
|
+
},
|
|
1019
|
+
"400": {
|
|
1020
|
+
"description": "Некорректный параметр groupByPeriod."
|
|
1021
|
+
},
|
|
1022
|
+
"403": {
|
|
1023
|
+
"description": "Недостаточно прав для просмотра отчета."
|
|
1024
|
+
}
|
|
1025
|
+
},
|
|
1026
|
+
"security": [
|
|
1027
|
+
{
|
|
1028
|
+
"Bearer": [ ]
|
|
1029
|
+
}
|
|
1030
|
+
]
|
|
1031
|
+
}
|
|
1032
|
+
},
|
|
1033
|
+
"/TasksByAssets": {
|
|
1034
|
+
"get": {
|
|
1035
|
+
"tags": [
|
|
1036
|
+
"TasksByAssets"
|
|
1037
|
+
],
|
|
1038
|
+
"summary": "Получение отчета по заявкам, сгруппированным по оборудованию",
|
|
1039
|
+
"description": "## Пример запроса:\r\n`GET /TasksByAssets?searchText=ремонт&assetID=10&isClosed=false`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"asset\": { \"id\": 10, \"name\": \"Насосная станция\" },\r\n \"activeTasksCount\": 5,\r\n \"outdatedTasksCount\": 1,\r\n \"undefinedTasksCount\": 0,\r\n \"total\": 6\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListGroupByAssets.",
|
|
1040
|
+
"parameters": [
|
|
1041
|
+
{
|
|
1042
|
+
"name": "searchText",
|
|
1043
|
+
"in": "query",
|
|
1044
|
+
"description": "Текстовый поиск по вхождению строки от одного символа. Поиск осуществляется в описании и номере заявки, названии и описании объекта, названии вида работ. Доступен sql like-синтаксис.",
|
|
1045
|
+
"schema": {
|
|
1046
|
+
"type": "string"
|
|
1047
|
+
}
|
|
1048
|
+
},
|
|
1049
|
+
{
|
|
1050
|
+
"name": "Range",
|
|
1051
|
+
"in": "header",
|
|
1052
|
+
"description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
|
|
1053
|
+
"schema": {
|
|
1054
|
+
"type": "string"
|
|
1055
|
+
}
|
|
1056
|
+
},
|
|
1057
|
+
{
|
|
1058
|
+
"name": "offset",
|
|
1059
|
+
"in": "query",
|
|
1060
|
+
"description": "количество элементов, которое нобходимо пропустить",
|
|
1061
|
+
"schema": {
|
|
1062
|
+
"type": "string"
|
|
1063
|
+
}
|
|
1064
|
+
},
|
|
1065
|
+
{
|
|
1066
|
+
"name": "fetch",
|
|
1067
|
+
"in": "query",
|
|
1068
|
+
"description": "количество элементов, которое необходимо вернуть",
|
|
1069
|
+
"schema": {
|
|
1070
|
+
"type": "string"
|
|
1071
|
+
}
|
|
1072
|
+
},
|
|
1073
|
+
{
|
|
1074
|
+
"name": "searchText",
|
|
1075
|
+
"in": "query",
|
|
1076
|
+
"description": "Текстовый поиск по вхождению строки от одного символа",
|
|
1077
|
+
"schema": {
|
|
1078
|
+
"type": "string"
|
|
1079
|
+
}
|
|
1080
|
+
},
|
|
1081
|
+
{
|
|
1082
|
+
"name": "requestedBy",
|
|
1083
|
+
"in": "query",
|
|
1084
|
+
"description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
|
|
1085
|
+
"schema": {
|
|
1086
|
+
"type": "integer",
|
|
1087
|
+
"format": "int32"
|
|
1088
|
+
}
|
|
1089
|
+
},
|
|
1090
|
+
{
|
|
1091
|
+
"name": "assignedTo",
|
|
1092
|
+
"in": "query",
|
|
1093
|
+
"description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
|
|
1094
|
+
"schema": {
|
|
1095
|
+
"type": "integer",
|
|
1096
|
+
"format": "int32"
|
|
1097
|
+
}
|
|
1098
|
+
},
|
|
1099
|
+
{
|
|
1100
|
+
"name": "approvalWith",
|
|
1101
|
+
"in": "query",
|
|
1102
|
+
"description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
|
|
1103
|
+
"schema": {
|
|
1104
|
+
"type": "integer",
|
|
1105
|
+
"format": "int32"
|
|
1106
|
+
}
|
|
1107
|
+
},
|
|
1108
|
+
{
|
|
1109
|
+
"name": "escalatedTo",
|
|
1110
|
+
"in": "query",
|
|
1111
|
+
"description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
|
|
1112
|
+
"schema": {
|
|
1113
|
+
"type": "integer",
|
|
1114
|
+
"format": "int32"
|
|
1115
|
+
}
|
|
1116
|
+
},
|
|
1117
|
+
{
|
|
1118
|
+
"name": "assetID",
|
|
1119
|
+
"in": "query",
|
|
1120
|
+
"description": "Идентификаторы объектов, по которым будет отфильтрован результат",
|
|
1121
|
+
"schema": {
|
|
1122
|
+
"type": "integer",
|
|
1123
|
+
"format": "int32"
|
|
1124
|
+
}
|
|
1125
|
+
},
|
|
1126
|
+
{
|
|
1127
|
+
"name": "startWithAssetID",
|
|
1128
|
+
"in": "query",
|
|
1129
|
+
"description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
|
|
1130
|
+
"schema": {
|
|
1131
|
+
"type": "integer",
|
|
1132
|
+
"format": "int32"
|
|
1133
|
+
}
|
|
1134
|
+
},
|
|
1135
|
+
{
|
|
1136
|
+
"name": "taskID",
|
|
1137
|
+
"in": "query",
|
|
1138
|
+
"description": "Идентификаторы заявок, по которым будет отфильтрован результат",
|
|
1139
|
+
"schema": {
|
|
1140
|
+
"type": "integer",
|
|
1141
|
+
"format": "int32"
|
|
1142
|
+
}
|
|
1143
|
+
},
|
|
1144
|
+
{
|
|
1145
|
+
"name": "taskNumber",
|
|
1146
|
+
"in": "query",
|
|
1147
|
+
"description": "Номера заявок, по которым будет отфильтрован результат",
|
|
1148
|
+
"schema": {
|
|
1149
|
+
"type": "string"
|
|
1150
|
+
}
|
|
1151
|
+
},
|
|
1152
|
+
{
|
|
1153
|
+
"name": "taskTypeID",
|
|
1154
|
+
"in": "query",
|
|
1155
|
+
"description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
|
|
1156
|
+
"schema": {
|
|
1157
|
+
"type": "integer",
|
|
1158
|
+
"format": "int32"
|
|
1159
|
+
}
|
|
1160
|
+
},
|
|
1161
|
+
{
|
|
1162
|
+
"name": "workTypeID",
|
|
1163
|
+
"in": "query",
|
|
1164
|
+
"description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
|
|
1165
|
+
"schema": {
|
|
1166
|
+
"type": "integer",
|
|
1167
|
+
"format": "int32"
|
|
1168
|
+
}
|
|
1169
|
+
},
|
|
1170
|
+
{
|
|
1171
|
+
"name": "taskStageID",
|
|
1172
|
+
"in": "query",
|
|
1173
|
+
"description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
|
|
1174
|
+
"schema": {
|
|
1175
|
+
"type": "integer",
|
|
1176
|
+
"format": "int32"
|
|
1177
|
+
}
|
|
1178
|
+
},
|
|
1179
|
+
{
|
|
1180
|
+
"name": "taskStatusID",
|
|
1181
|
+
"in": "query",
|
|
1182
|
+
"description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
|
|
1183
|
+
"schema": {
|
|
1184
|
+
"type": "integer",
|
|
1185
|
+
"format": "int32"
|
|
1186
|
+
}
|
|
1187
|
+
},
|
|
1188
|
+
{
|
|
1189
|
+
"name": "creationFrom",
|
|
1190
|
+
"in": "query",
|
|
1191
|
+
"description": "Начальный период фильтрации по дате создания заявки",
|
|
1192
|
+
"schema": {
|
|
1193
|
+
"type": "string",
|
|
1194
|
+
"format": "date-time"
|
|
1195
|
+
}
|
|
1196
|
+
},
|
|
1197
|
+
{
|
|
1198
|
+
"name": "creationTill",
|
|
1199
|
+
"in": "query",
|
|
1200
|
+
"description": "Конечный период фильтрации по дате создания заявки",
|
|
1201
|
+
"schema": {
|
|
1202
|
+
"type": "string",
|
|
1203
|
+
"format": "date-time"
|
|
1204
|
+
}
|
|
1205
|
+
},
|
|
1206
|
+
{
|
|
1207
|
+
"name": "assignationFrom",
|
|
1208
|
+
"in": "query",
|
|
1209
|
+
"description": "Начальный период фильтрации по дате назначения заявки",
|
|
1210
|
+
"schema": {
|
|
1211
|
+
"type": "string",
|
|
1212
|
+
"format": "date-time"
|
|
1213
|
+
}
|
|
1214
|
+
},
|
|
1215
|
+
{
|
|
1216
|
+
"name": "assignationTill",
|
|
1217
|
+
"in": "query",
|
|
1218
|
+
"description": "Конечный период фильтрации по дате назначения заявки",
|
|
1219
|
+
"schema": {
|
|
1220
|
+
"type": "string",
|
|
1221
|
+
"format": "date-time"
|
|
1222
|
+
}
|
|
1223
|
+
},
|
|
1224
|
+
{
|
|
1225
|
+
"name": "completionFrom",
|
|
1226
|
+
"in": "query",
|
|
1227
|
+
"description": "Начальный период фильтрации по дате выполнения заявки",
|
|
1228
|
+
"schema": {
|
|
1229
|
+
"type": "string",
|
|
1230
|
+
"format": "date-time"
|
|
1231
|
+
}
|
|
1232
|
+
},
|
|
1233
|
+
{
|
|
1234
|
+
"name": "completionTill",
|
|
1235
|
+
"in": "query",
|
|
1236
|
+
"description": "Конечный период фильтрации по дате выполнения заявки",
|
|
1237
|
+
"schema": {
|
|
1238
|
+
"type": "string",
|
|
1239
|
+
"format": "date-time"
|
|
1240
|
+
}
|
|
1241
|
+
},
|
|
1242
|
+
{
|
|
1243
|
+
"name": "closingFrom",
|
|
1244
|
+
"in": "query",
|
|
1245
|
+
"description": "Начальный период фильтрации по дате закрытия заявки",
|
|
1246
|
+
"schema": {
|
|
1247
|
+
"type": "string",
|
|
1248
|
+
"format": "date-time"
|
|
1249
|
+
}
|
|
1250
|
+
},
|
|
1251
|
+
{
|
|
1252
|
+
"name": "closingTill",
|
|
1253
|
+
"in": "query",
|
|
1254
|
+
"description": "Конечный период фильтрации по дате закрытия заявки",
|
|
1255
|
+
"schema": {
|
|
1256
|
+
"type": "string",
|
|
1257
|
+
"format": "date-time"
|
|
1258
|
+
}
|
|
1259
|
+
},
|
|
1260
|
+
{
|
|
1261
|
+
"name": "deadlineFrom",
|
|
1262
|
+
"in": "query",
|
|
1263
|
+
"description": "Начальный период фильтрации по сроку выполнения заявки",
|
|
1264
|
+
"schema": {
|
|
1265
|
+
"type": "string",
|
|
1266
|
+
"format": "date-time"
|
|
1267
|
+
}
|
|
1268
|
+
},
|
|
1269
|
+
{
|
|
1270
|
+
"name": "deadlineTill",
|
|
1271
|
+
"in": "query",
|
|
1272
|
+
"description": "Конечный период фильтрации по сроку выполнения заявки",
|
|
1273
|
+
"schema": {
|
|
1274
|
+
"type": "string",
|
|
1275
|
+
"format": "date-time"
|
|
1276
|
+
}
|
|
1277
|
+
},
|
|
1278
|
+
{
|
|
1279
|
+
"name": "isClosed",
|
|
1280
|
+
"in": "query",
|
|
1281
|
+
"description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
|
|
1282
|
+
"schema": {
|
|
1283
|
+
"type": "boolean"
|
|
1284
|
+
}
|
|
1285
|
+
},
|
|
1286
|
+
{
|
|
1287
|
+
"name": "isFavourite",
|
|
1288
|
+
"in": "query",
|
|
1289
|
+
"description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
|
|
1290
|
+
"schema": {
|
|
1291
|
+
"type": "boolean"
|
|
1292
|
+
}
|
|
1293
|
+
},
|
|
1294
|
+
{
|
|
1295
|
+
"name": "isCompleted",
|
|
1296
|
+
"in": "query",
|
|
1297
|
+
"description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
|
|
1298
|
+
"schema": {
|
|
1299
|
+
"type": "boolean"
|
|
1300
|
+
}
|
|
1301
|
+
},
|
|
1302
|
+
{
|
|
1303
|
+
"name": "isAssigned",
|
|
1304
|
+
"in": "query",
|
|
1305
|
+
"description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
|
|
1306
|
+
"schema": {
|
|
1307
|
+
"type": "boolean"
|
|
1308
|
+
}
|
|
1309
|
+
},
|
|
1310
|
+
{
|
|
1311
|
+
"name": "isDeleted",
|
|
1312
|
+
"in": "query",
|
|
1313
|
+
"description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
|
|
1314
|
+
"schema": {
|
|
1315
|
+
"type": "boolean"
|
|
1316
|
+
}
|
|
1317
|
+
},
|
|
1318
|
+
{
|
|
1319
|
+
"name": "companyID",
|
|
1320
|
+
"in": "query",
|
|
1321
|
+
"description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
|
|
1322
|
+
"schema": {
|
|
1323
|
+
"type": "integer",
|
|
1324
|
+
"format": "int32"
|
|
1325
|
+
}
|
|
1326
|
+
},
|
|
1327
|
+
{
|
|
1328
|
+
"name": "contractID",
|
|
1329
|
+
"in": "query",
|
|
1330
|
+
"description": "Идентификаторы контракта, в рамках которого выполняется заявка",
|
|
1331
|
+
"schema": {
|
|
1332
|
+
"type": "integer",
|
|
1333
|
+
"format": "int32"
|
|
1334
|
+
}
|
|
1335
|
+
},
|
|
1336
|
+
{
|
|
1337
|
+
"name": "criticalityID",
|
|
1338
|
+
"in": "query",
|
|
1339
|
+
"description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
|
|
1340
|
+
"schema": {
|
|
1341
|
+
"type": "integer",
|
|
1342
|
+
"format": "int32"
|
|
1343
|
+
}
|
|
1344
|
+
},
|
|
1345
|
+
{
|
|
1346
|
+
"name": "X-Application-ID",
|
|
1347
|
+
"in": "header",
|
|
1348
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
1349
|
+
"schema": {
|
|
1350
|
+
"enum": [
|
|
1351
|
+
1,
|
|
1352
|
+
2,
|
|
1353
|
+
3,
|
|
1354
|
+
4,
|
|
1355
|
+
5,
|
|
1356
|
+
6
|
|
1357
|
+
],
|
|
1358
|
+
"type": "integer",
|
|
1359
|
+
"format": "int32",
|
|
1360
|
+
"default": 3,
|
|
1361
|
+
"x-enumNames": [
|
|
1362
|
+
"EngineerMobile",
|
|
1363
|
+
"CustomerMobile",
|
|
1364
|
+
"MainWeb",
|
|
1365
|
+
"AdminWeb",
|
|
1366
|
+
"Api",
|
|
1367
|
+
"PlateWeb"
|
|
1368
|
+
]
|
|
1369
|
+
}
|
|
1370
|
+
}
|
|
1371
|
+
],
|
|
1372
|
+
"responses": {
|
|
1373
|
+
"200": {
|
|
1374
|
+
"description": "Отчет по заявкам.",
|
|
1375
|
+
"content": {
|
|
1376
|
+
"text/plain": {
|
|
1377
|
+
"schema": {
|
|
1378
|
+
"type": "array",
|
|
1379
|
+
"items": {
|
|
1380
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByAssetsTasksListGroupByAssetsResult"
|
|
1381
|
+
}
|
|
1382
|
+
}
|
|
1383
|
+
},
|
|
1384
|
+
"application/json": {
|
|
1385
|
+
"schema": {
|
|
1386
|
+
"type": "array",
|
|
1387
|
+
"items": {
|
|
1388
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByAssetsTasksListGroupByAssetsResult"
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1391
|
+
},
|
|
1392
|
+
"text/json": {
|
|
1393
|
+
"schema": {
|
|
1394
|
+
"type": "array",
|
|
1395
|
+
"items": {
|
|
1396
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByAssetsTasksListGroupByAssetsResult"
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
}
|
|
1400
|
+
}
|
|
1401
|
+
},
|
|
1402
|
+
"204": {
|
|
1403
|
+
"description": "Данные не найдены."
|
|
1404
|
+
},
|
|
1405
|
+
"206": {
|
|
1406
|
+
"description": "Частичный ответ при использовании Range-заголовка."
|
|
1407
|
+
},
|
|
1408
|
+
"401": {
|
|
1409
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
1410
|
+
},
|
|
1411
|
+
"403": {
|
|
1412
|
+
"description": "Недостаточно прав для просмотра отчета."
|
|
1413
|
+
}
|
|
1414
|
+
},
|
|
1415
|
+
"security": [
|
|
1416
|
+
{
|
|
1417
|
+
"Bearer": [ ]
|
|
1418
|
+
}
|
|
1419
|
+
]
|
|
1420
|
+
}
|
|
1421
|
+
},
|
|
1422
|
+
"/TasksByAssignees": {
|
|
1423
|
+
"get": {
|
|
1424
|
+
"tags": [
|
|
1425
|
+
"TasksByAssignees"
|
|
1426
|
+
],
|
|
1427
|
+
"summary": "Получение отчета по заявкам, сгруппированным по исполнителям",
|
|
1428
|
+
"description": "## Пример запроса:\r\n`GET /TasksByAssignees?searchText=12345&assignedTo=15`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"assignee\": { \"id\": 15, \"lastName\": \"Иванов\", \"firstName\": \"Иван\" },\r\n \"activeTasksCount\": 3,\r\n \"outdatedTasksCount\": 0,\r\n \"undefinedTasksCount\": 0,\r\n \"total\": 3\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListGroupByAssignees.",
|
|
1429
|
+
"parameters": [
|
|
1430
|
+
{
|
|
1431
|
+
"name": "searchText",
|
|
1432
|
+
"in": "query",
|
|
1433
|
+
"description": "Текстовый поиск по вхождению строки от одного символа. Поиск осуществляется в описании и номере заявки, названии и описании объекта, названии вида работ. Доступен sql like-синтаксис.",
|
|
1434
|
+
"schema": {
|
|
1435
|
+
"type": "string"
|
|
1436
|
+
}
|
|
1437
|
+
},
|
|
1438
|
+
{
|
|
1439
|
+
"name": "Range",
|
|
1440
|
+
"in": "header",
|
|
1441
|
+
"description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
|
|
1442
|
+
"schema": {
|
|
1443
|
+
"type": "string"
|
|
1444
|
+
}
|
|
1445
|
+
},
|
|
1446
|
+
{
|
|
1447
|
+
"name": "offset",
|
|
1448
|
+
"in": "query",
|
|
1449
|
+
"description": "количество элементов, которое нобходимо пропустить",
|
|
1450
|
+
"schema": {
|
|
1451
|
+
"type": "string"
|
|
1452
|
+
}
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
"name": "fetch",
|
|
1456
|
+
"in": "query",
|
|
1457
|
+
"description": "количество элементов, которое необходимо вернуть",
|
|
1458
|
+
"schema": {
|
|
1459
|
+
"type": "string"
|
|
1460
|
+
}
|
|
1461
|
+
},
|
|
1462
|
+
{
|
|
1463
|
+
"name": "searchText",
|
|
1464
|
+
"in": "query",
|
|
1465
|
+
"description": "Текстовый поиск по вхождению строки от одного символа",
|
|
1466
|
+
"schema": {
|
|
1467
|
+
"type": "string"
|
|
1468
|
+
}
|
|
1469
|
+
},
|
|
1470
|
+
{
|
|
1471
|
+
"name": "requestedBy",
|
|
1472
|
+
"in": "query",
|
|
1473
|
+
"description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
|
|
1474
|
+
"schema": {
|
|
1475
|
+
"type": "integer",
|
|
1476
|
+
"format": "int32"
|
|
1477
|
+
}
|
|
1478
|
+
},
|
|
1479
|
+
{
|
|
1480
|
+
"name": "assignedTo",
|
|
1481
|
+
"in": "query",
|
|
1482
|
+
"description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
|
|
1483
|
+
"schema": {
|
|
1484
|
+
"type": "integer",
|
|
1485
|
+
"format": "int32"
|
|
1486
|
+
}
|
|
1487
|
+
},
|
|
1488
|
+
{
|
|
1489
|
+
"name": "approvalWith",
|
|
1490
|
+
"in": "query",
|
|
1491
|
+
"description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
|
|
1492
|
+
"schema": {
|
|
1493
|
+
"type": "integer",
|
|
1494
|
+
"format": "int32"
|
|
1495
|
+
}
|
|
1496
|
+
},
|
|
1497
|
+
{
|
|
1498
|
+
"name": "escalatedTo",
|
|
1499
|
+
"in": "query",
|
|
1500
|
+
"description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
|
|
1501
|
+
"schema": {
|
|
1502
|
+
"type": "integer",
|
|
1503
|
+
"format": "int32"
|
|
1504
|
+
}
|
|
1505
|
+
},
|
|
1506
|
+
{
|
|
1507
|
+
"name": "assetID",
|
|
1508
|
+
"in": "query",
|
|
1509
|
+
"description": "Идентификаторы объектов, по которым будет отфильтрован результат",
|
|
1510
|
+
"schema": {
|
|
1511
|
+
"type": "integer",
|
|
1512
|
+
"format": "int32"
|
|
1513
|
+
}
|
|
1514
|
+
},
|
|
1515
|
+
{
|
|
1516
|
+
"name": "startWithAssetID",
|
|
1517
|
+
"in": "query",
|
|
1518
|
+
"description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
|
|
1519
|
+
"schema": {
|
|
1520
|
+
"type": "integer",
|
|
1521
|
+
"format": "int32"
|
|
1522
|
+
}
|
|
1523
|
+
},
|
|
1524
|
+
{
|
|
1525
|
+
"name": "taskID",
|
|
1526
|
+
"in": "query",
|
|
1527
|
+
"description": "Идентификаторы заявок, по которым будет отфильтрован результат",
|
|
1528
|
+
"schema": {
|
|
1529
|
+
"type": "integer",
|
|
1530
|
+
"format": "int32"
|
|
1531
|
+
}
|
|
1532
|
+
},
|
|
1533
|
+
{
|
|
1534
|
+
"name": "taskNumber",
|
|
1535
|
+
"in": "query",
|
|
1536
|
+
"description": "Номера заявок, по которым будет отфильтрован результат",
|
|
1537
|
+
"schema": {
|
|
1538
|
+
"type": "string"
|
|
1539
|
+
}
|
|
1540
|
+
},
|
|
1541
|
+
{
|
|
1542
|
+
"name": "taskTypeID",
|
|
1543
|
+
"in": "query",
|
|
1544
|
+
"description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
|
|
1545
|
+
"schema": {
|
|
1546
|
+
"type": "integer",
|
|
1547
|
+
"format": "int32"
|
|
1548
|
+
}
|
|
1549
|
+
},
|
|
1550
|
+
{
|
|
1551
|
+
"name": "workTypeID",
|
|
1552
|
+
"in": "query",
|
|
1553
|
+
"description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
|
|
1554
|
+
"schema": {
|
|
1555
|
+
"type": "integer",
|
|
1556
|
+
"format": "int32"
|
|
1557
|
+
}
|
|
1558
|
+
},
|
|
1559
|
+
{
|
|
1560
|
+
"name": "taskStageID",
|
|
1561
|
+
"in": "query",
|
|
1562
|
+
"description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
|
|
1563
|
+
"schema": {
|
|
1564
|
+
"type": "integer",
|
|
1565
|
+
"format": "int32"
|
|
1566
|
+
}
|
|
1567
|
+
},
|
|
1568
|
+
{
|
|
1569
|
+
"name": "taskStatusID",
|
|
1570
|
+
"in": "query",
|
|
1571
|
+
"description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
|
|
1572
|
+
"schema": {
|
|
1573
|
+
"type": "integer",
|
|
1574
|
+
"format": "int32"
|
|
1575
|
+
}
|
|
1576
|
+
},
|
|
1577
|
+
{
|
|
1578
|
+
"name": "creationFrom",
|
|
1579
|
+
"in": "query",
|
|
1580
|
+
"description": "Начальный период фильтрации по дате создания заявки",
|
|
1581
|
+
"schema": {
|
|
1582
|
+
"type": "string",
|
|
1583
|
+
"format": "date-time"
|
|
1584
|
+
}
|
|
1585
|
+
},
|
|
1586
|
+
{
|
|
1587
|
+
"name": "creationTill",
|
|
1588
|
+
"in": "query",
|
|
1589
|
+
"description": "Конечный период фильтрации по дате создания заявки",
|
|
1590
|
+
"schema": {
|
|
1591
|
+
"type": "string",
|
|
1592
|
+
"format": "date-time"
|
|
1593
|
+
}
|
|
1594
|
+
},
|
|
1595
|
+
{
|
|
1596
|
+
"name": "assignationFrom",
|
|
1597
|
+
"in": "query",
|
|
1598
|
+
"description": "Начальный период фильтрации по дате назначения заявки",
|
|
1599
|
+
"schema": {
|
|
1600
|
+
"type": "string",
|
|
1601
|
+
"format": "date-time"
|
|
1602
|
+
}
|
|
1603
|
+
},
|
|
1604
|
+
{
|
|
1605
|
+
"name": "assignationTill",
|
|
1606
|
+
"in": "query",
|
|
1607
|
+
"description": "Конечный период фильтрации по дате назначения заявки",
|
|
1608
|
+
"schema": {
|
|
1609
|
+
"type": "string",
|
|
1610
|
+
"format": "date-time"
|
|
1611
|
+
}
|
|
1612
|
+
},
|
|
1613
|
+
{
|
|
1614
|
+
"name": "completionFrom",
|
|
1615
|
+
"in": "query",
|
|
1616
|
+
"description": "Начальный период фильтрации по дате выполнения заявки",
|
|
1617
|
+
"schema": {
|
|
1618
|
+
"type": "string",
|
|
1619
|
+
"format": "date-time"
|
|
1620
|
+
}
|
|
1621
|
+
},
|
|
1622
|
+
{
|
|
1623
|
+
"name": "completionTill",
|
|
1624
|
+
"in": "query",
|
|
1625
|
+
"description": "Конечный период фильтрации по дате выполнения заявки",
|
|
1626
|
+
"schema": {
|
|
1627
|
+
"type": "string",
|
|
1628
|
+
"format": "date-time"
|
|
1629
|
+
}
|
|
1630
|
+
},
|
|
1631
|
+
{
|
|
1632
|
+
"name": "closingFrom",
|
|
1633
|
+
"in": "query",
|
|
1634
|
+
"description": "Начальный период фильтрации по дате закрытия заявки",
|
|
1635
|
+
"schema": {
|
|
1636
|
+
"type": "string",
|
|
1637
|
+
"format": "date-time"
|
|
1638
|
+
}
|
|
1639
|
+
},
|
|
1640
|
+
{
|
|
1641
|
+
"name": "closingTill",
|
|
1642
|
+
"in": "query",
|
|
1643
|
+
"description": "Конечный период фильтрации по дате закрытия заявки",
|
|
1644
|
+
"schema": {
|
|
1645
|
+
"type": "string",
|
|
1646
|
+
"format": "date-time"
|
|
1647
|
+
}
|
|
1648
|
+
},
|
|
1649
|
+
{
|
|
1650
|
+
"name": "deadlineFrom",
|
|
1651
|
+
"in": "query",
|
|
1652
|
+
"description": "Начальный период фильтрации по сроку выполнения заявки",
|
|
1653
|
+
"schema": {
|
|
1654
|
+
"type": "string",
|
|
1655
|
+
"format": "date-time"
|
|
1656
|
+
}
|
|
1657
|
+
},
|
|
1658
|
+
{
|
|
1659
|
+
"name": "deadlineTill",
|
|
1660
|
+
"in": "query",
|
|
1661
|
+
"description": "Конечный период фильтрации по сроку выполнения заявки",
|
|
1662
|
+
"schema": {
|
|
1663
|
+
"type": "string",
|
|
1664
|
+
"format": "date-time"
|
|
1665
|
+
}
|
|
1666
|
+
},
|
|
1667
|
+
{
|
|
1668
|
+
"name": "isClosed",
|
|
1669
|
+
"in": "query",
|
|
1670
|
+
"description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
|
|
1671
|
+
"schema": {
|
|
1672
|
+
"type": "boolean"
|
|
1673
|
+
}
|
|
1674
|
+
},
|
|
1675
|
+
{
|
|
1676
|
+
"name": "isFavourite",
|
|
1677
|
+
"in": "query",
|
|
1678
|
+
"description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
|
|
1679
|
+
"schema": {
|
|
1680
|
+
"type": "boolean"
|
|
1681
|
+
}
|
|
1682
|
+
},
|
|
1683
|
+
{
|
|
1684
|
+
"name": "isCompleted",
|
|
1685
|
+
"in": "query",
|
|
1686
|
+
"description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
|
|
1687
|
+
"schema": {
|
|
1688
|
+
"type": "boolean"
|
|
1689
|
+
}
|
|
1690
|
+
},
|
|
1691
|
+
{
|
|
1692
|
+
"name": "isAssigned",
|
|
1693
|
+
"in": "query",
|
|
1694
|
+
"description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
|
|
1695
|
+
"schema": {
|
|
1696
|
+
"type": "boolean"
|
|
1697
|
+
}
|
|
1698
|
+
},
|
|
1699
|
+
{
|
|
1700
|
+
"name": "isDeleted",
|
|
1701
|
+
"in": "query",
|
|
1702
|
+
"description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
|
|
1703
|
+
"schema": {
|
|
1704
|
+
"type": "boolean"
|
|
1705
|
+
}
|
|
1706
|
+
},
|
|
1707
|
+
{
|
|
1708
|
+
"name": "companyID",
|
|
1709
|
+
"in": "query",
|
|
1710
|
+
"description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
|
|
1711
|
+
"schema": {
|
|
1712
|
+
"type": "integer",
|
|
1713
|
+
"format": "int32"
|
|
1714
|
+
}
|
|
1715
|
+
},
|
|
1716
|
+
{
|
|
1717
|
+
"name": "contractID",
|
|
1718
|
+
"in": "query",
|
|
1719
|
+
"description": "Идентификаторы контракта, в рамках которого выполняется заявка",
|
|
1720
|
+
"schema": {
|
|
1721
|
+
"type": "integer",
|
|
1722
|
+
"format": "int32"
|
|
1723
|
+
}
|
|
1724
|
+
},
|
|
1725
|
+
{
|
|
1726
|
+
"name": "criticalityID",
|
|
1727
|
+
"in": "query",
|
|
1728
|
+
"description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
|
|
1729
|
+
"schema": {
|
|
1730
|
+
"type": "integer",
|
|
1731
|
+
"format": "int32"
|
|
1732
|
+
}
|
|
1733
|
+
},
|
|
1734
|
+
{
|
|
1735
|
+
"name": "X-Application-ID",
|
|
1736
|
+
"in": "header",
|
|
1737
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
1738
|
+
"schema": {
|
|
1739
|
+
"enum": [
|
|
1740
|
+
1,
|
|
1741
|
+
2,
|
|
1742
|
+
3,
|
|
1743
|
+
4,
|
|
1744
|
+
5,
|
|
1745
|
+
6
|
|
1746
|
+
],
|
|
1747
|
+
"type": "integer",
|
|
1748
|
+
"format": "int32",
|
|
1749
|
+
"default": 3,
|
|
1750
|
+
"x-enumNames": [
|
|
1751
|
+
"EngineerMobile",
|
|
1752
|
+
"CustomerMobile",
|
|
1753
|
+
"MainWeb",
|
|
1754
|
+
"AdminWeb",
|
|
1755
|
+
"Api",
|
|
1756
|
+
"PlateWeb"
|
|
1757
|
+
]
|
|
1758
|
+
}
|
|
1759
|
+
}
|
|
1760
|
+
],
|
|
1761
|
+
"responses": {
|
|
1762
|
+
"200": {
|
|
1763
|
+
"description": "Отчет по заявкам.",
|
|
1764
|
+
"content": {
|
|
1765
|
+
"text/plain": {
|
|
1766
|
+
"schema": {
|
|
1767
|
+
"type": "array",
|
|
1768
|
+
"items": {
|
|
1769
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByAssigneesTaskListGroupByAssigneesResult"
|
|
1770
|
+
}
|
|
1771
|
+
}
|
|
1772
|
+
},
|
|
1773
|
+
"application/json": {
|
|
1774
|
+
"schema": {
|
|
1775
|
+
"type": "array",
|
|
1776
|
+
"items": {
|
|
1777
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByAssigneesTaskListGroupByAssigneesResult"
|
|
1778
|
+
}
|
|
1779
|
+
}
|
|
1780
|
+
},
|
|
1781
|
+
"text/json": {
|
|
1782
|
+
"schema": {
|
|
1783
|
+
"type": "array",
|
|
1784
|
+
"items": {
|
|
1785
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByAssigneesTaskListGroupByAssigneesResult"
|
|
1786
|
+
}
|
|
1787
|
+
}
|
|
1788
|
+
}
|
|
1789
|
+
}
|
|
1790
|
+
},
|
|
1791
|
+
"204": {
|
|
1792
|
+
"description": "Данные не найдены."
|
|
1793
|
+
},
|
|
1794
|
+
"206": {
|
|
1795
|
+
"description": "Частичный ответ при использовании Range-заголовка."
|
|
1796
|
+
},
|
|
1797
|
+
"401": {
|
|
1798
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
1799
|
+
},
|
|
1800
|
+
"403": {
|
|
1801
|
+
"description": "Недостаточно прав для просмотра отчета."
|
|
1802
|
+
}
|
|
1803
|
+
},
|
|
1804
|
+
"security": [
|
|
1805
|
+
{
|
|
1806
|
+
"Bearer": [ ]
|
|
1807
|
+
}
|
|
1808
|
+
]
|
|
1809
|
+
}
|
|
1810
|
+
},
|
|
1811
|
+
"/TasksByCompanies": {
|
|
1812
|
+
"get": {
|
|
1813
|
+
"tags": [
|
|
1814
|
+
"TasksByCompanies"
|
|
1815
|
+
],
|
|
1816
|
+
"summary": "Получение отчета по заявкам, сгруппированным по компаниям",
|
|
1817
|
+
"description": "## Пример запроса:\r\n`GET /TasksByCompanies?searchText=обслуживание&companyID=3`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"company\": { \"id\": 3, \"name\": \"ООО Ремонт\" },\r\n \"activeTasksCount\": 8,\r\n \"outdatedTasksCount\": 2,\r\n \"undefinedTasksCount\": 0,\r\n \"total\": 10\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListGroupByCompanies.",
|
|
1818
|
+
"parameters": [
|
|
1819
|
+
{
|
|
1820
|
+
"name": "searchText",
|
|
1821
|
+
"in": "query",
|
|
1822
|
+
"description": "Текстовый поиск по вхождению строки от одного символа. Поиск осуществляется в описании и номере заявки, названии и описании объекта, названии вида работ. Доступен sql like-синтаксис.",
|
|
1823
|
+
"schema": {
|
|
1824
|
+
"type": "string"
|
|
1825
|
+
}
|
|
1826
|
+
},
|
|
1827
|
+
{
|
|
1828
|
+
"name": "Range",
|
|
1829
|
+
"in": "header",
|
|
1830
|
+
"description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
|
|
1831
|
+
"schema": {
|
|
1832
|
+
"type": "string"
|
|
1833
|
+
}
|
|
1834
|
+
},
|
|
1835
|
+
{
|
|
1836
|
+
"name": "offset",
|
|
1837
|
+
"in": "query",
|
|
1838
|
+
"description": "количество элементов, которое нобходимо пропустить",
|
|
1839
|
+
"schema": {
|
|
1840
|
+
"type": "string"
|
|
1841
|
+
}
|
|
1842
|
+
},
|
|
1843
|
+
{
|
|
1844
|
+
"name": "fetch",
|
|
1845
|
+
"in": "query",
|
|
1846
|
+
"description": "количество элементов, которое необходимо вернуть",
|
|
1847
|
+
"schema": {
|
|
1848
|
+
"type": "string"
|
|
1849
|
+
}
|
|
1850
|
+
},
|
|
1851
|
+
{
|
|
1852
|
+
"name": "searchText",
|
|
1853
|
+
"in": "query",
|
|
1854
|
+
"description": "Текстовый поиск по вхождению строки от одного символа",
|
|
1855
|
+
"schema": {
|
|
1856
|
+
"type": "string"
|
|
1857
|
+
}
|
|
1858
|
+
},
|
|
1859
|
+
{
|
|
1860
|
+
"name": "requestedBy",
|
|
1861
|
+
"in": "query",
|
|
1862
|
+
"description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
|
|
1863
|
+
"schema": {
|
|
1864
|
+
"type": "integer",
|
|
1865
|
+
"format": "int32"
|
|
1866
|
+
}
|
|
1867
|
+
},
|
|
1868
|
+
{
|
|
1869
|
+
"name": "assignedTo",
|
|
1870
|
+
"in": "query",
|
|
1871
|
+
"description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
|
|
1872
|
+
"schema": {
|
|
1873
|
+
"type": "integer",
|
|
1874
|
+
"format": "int32"
|
|
1875
|
+
}
|
|
1876
|
+
},
|
|
1877
|
+
{
|
|
1878
|
+
"name": "approvalWith",
|
|
1879
|
+
"in": "query",
|
|
1880
|
+
"description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
|
|
1881
|
+
"schema": {
|
|
1882
|
+
"type": "integer",
|
|
1883
|
+
"format": "int32"
|
|
1884
|
+
}
|
|
1885
|
+
},
|
|
1886
|
+
{
|
|
1887
|
+
"name": "escalatedTo",
|
|
1888
|
+
"in": "query",
|
|
1889
|
+
"description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
|
|
1890
|
+
"schema": {
|
|
1891
|
+
"type": "integer",
|
|
1892
|
+
"format": "int32"
|
|
1893
|
+
}
|
|
1894
|
+
},
|
|
1895
|
+
{
|
|
1896
|
+
"name": "assetID",
|
|
1897
|
+
"in": "query",
|
|
1898
|
+
"description": "Идентификаторы объектов, по которым будет отфильтрован результат",
|
|
1899
|
+
"schema": {
|
|
1900
|
+
"type": "integer",
|
|
1901
|
+
"format": "int32"
|
|
1902
|
+
}
|
|
1903
|
+
},
|
|
1904
|
+
{
|
|
1905
|
+
"name": "startWithAssetID",
|
|
1906
|
+
"in": "query",
|
|
1907
|
+
"description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
|
|
1908
|
+
"schema": {
|
|
1909
|
+
"type": "integer",
|
|
1910
|
+
"format": "int32"
|
|
1911
|
+
}
|
|
1912
|
+
},
|
|
1913
|
+
{
|
|
1914
|
+
"name": "taskID",
|
|
1915
|
+
"in": "query",
|
|
1916
|
+
"description": "Идентификаторы заявок, по которым будет отфильтрован результат",
|
|
1917
|
+
"schema": {
|
|
1918
|
+
"type": "integer",
|
|
1919
|
+
"format": "int32"
|
|
1920
|
+
}
|
|
1921
|
+
},
|
|
1922
|
+
{
|
|
1923
|
+
"name": "taskNumber",
|
|
1924
|
+
"in": "query",
|
|
1925
|
+
"description": "Номера заявок, по которым будет отфильтрован результат",
|
|
1926
|
+
"schema": {
|
|
1927
|
+
"type": "string"
|
|
1928
|
+
}
|
|
1929
|
+
},
|
|
1930
|
+
{
|
|
1931
|
+
"name": "taskTypeID",
|
|
1932
|
+
"in": "query",
|
|
1933
|
+
"description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
|
|
1934
|
+
"schema": {
|
|
1935
|
+
"type": "integer",
|
|
1936
|
+
"format": "int32"
|
|
1937
|
+
}
|
|
1938
|
+
},
|
|
1939
|
+
{
|
|
1940
|
+
"name": "workTypeID",
|
|
1941
|
+
"in": "query",
|
|
1942
|
+
"description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
|
|
1943
|
+
"schema": {
|
|
1944
|
+
"type": "integer",
|
|
1945
|
+
"format": "int32"
|
|
1946
|
+
}
|
|
1947
|
+
},
|
|
1948
|
+
{
|
|
1949
|
+
"name": "taskStageID",
|
|
1950
|
+
"in": "query",
|
|
1951
|
+
"description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
|
|
1952
|
+
"schema": {
|
|
1953
|
+
"type": "integer",
|
|
1954
|
+
"format": "int32"
|
|
1955
|
+
}
|
|
1956
|
+
},
|
|
1957
|
+
{
|
|
1958
|
+
"name": "taskStatusID",
|
|
1959
|
+
"in": "query",
|
|
1960
|
+
"description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
|
|
1961
|
+
"schema": {
|
|
1962
|
+
"type": "integer",
|
|
1963
|
+
"format": "int32"
|
|
1964
|
+
}
|
|
1965
|
+
},
|
|
1966
|
+
{
|
|
1967
|
+
"name": "creationFrom",
|
|
1968
|
+
"in": "query",
|
|
1969
|
+
"description": "Начальный период фильтрации по дате создания заявки",
|
|
1970
|
+
"schema": {
|
|
1971
|
+
"type": "string",
|
|
1972
|
+
"format": "date-time"
|
|
1973
|
+
}
|
|
1974
|
+
},
|
|
1975
|
+
{
|
|
1976
|
+
"name": "creationTill",
|
|
1977
|
+
"in": "query",
|
|
1978
|
+
"description": "Конечный период фильтрации по дате создания заявки",
|
|
1979
|
+
"schema": {
|
|
1980
|
+
"type": "string",
|
|
1981
|
+
"format": "date-time"
|
|
1982
|
+
}
|
|
1983
|
+
},
|
|
1984
|
+
{
|
|
1985
|
+
"name": "assignationFrom",
|
|
1986
|
+
"in": "query",
|
|
1987
|
+
"description": "Начальный период фильтрации по дате назначения заявки",
|
|
1988
|
+
"schema": {
|
|
1989
|
+
"type": "string",
|
|
1990
|
+
"format": "date-time"
|
|
1991
|
+
}
|
|
1992
|
+
},
|
|
1993
|
+
{
|
|
1994
|
+
"name": "assignationTill",
|
|
1995
|
+
"in": "query",
|
|
1996
|
+
"description": "Конечный период фильтрации по дате назначения заявки",
|
|
1997
|
+
"schema": {
|
|
1998
|
+
"type": "string",
|
|
1999
|
+
"format": "date-time"
|
|
2000
|
+
}
|
|
2001
|
+
},
|
|
2002
|
+
{
|
|
2003
|
+
"name": "completionFrom",
|
|
2004
|
+
"in": "query",
|
|
2005
|
+
"description": "Начальный период фильтрации по дате выполнения заявки",
|
|
2006
|
+
"schema": {
|
|
2007
|
+
"type": "string",
|
|
2008
|
+
"format": "date-time"
|
|
2009
|
+
}
|
|
2010
|
+
},
|
|
2011
|
+
{
|
|
2012
|
+
"name": "completionTill",
|
|
2013
|
+
"in": "query",
|
|
2014
|
+
"description": "Конечный период фильтрации по дате выполнения заявки",
|
|
2015
|
+
"schema": {
|
|
2016
|
+
"type": "string",
|
|
2017
|
+
"format": "date-time"
|
|
2018
|
+
}
|
|
2019
|
+
},
|
|
2020
|
+
{
|
|
2021
|
+
"name": "closingFrom",
|
|
2022
|
+
"in": "query",
|
|
2023
|
+
"description": "Начальный период фильтрации по дате закрытия заявки",
|
|
2024
|
+
"schema": {
|
|
2025
|
+
"type": "string",
|
|
2026
|
+
"format": "date-time"
|
|
2027
|
+
}
|
|
2028
|
+
},
|
|
2029
|
+
{
|
|
2030
|
+
"name": "closingTill",
|
|
2031
|
+
"in": "query",
|
|
2032
|
+
"description": "Конечный период фильтрации по дате закрытия заявки",
|
|
2033
|
+
"schema": {
|
|
2034
|
+
"type": "string",
|
|
2035
|
+
"format": "date-time"
|
|
2036
|
+
}
|
|
2037
|
+
},
|
|
2038
|
+
{
|
|
2039
|
+
"name": "deadlineFrom",
|
|
2040
|
+
"in": "query",
|
|
2041
|
+
"description": "Начальный период фильтрации по сроку выполнения заявки",
|
|
2042
|
+
"schema": {
|
|
2043
|
+
"type": "string",
|
|
2044
|
+
"format": "date-time"
|
|
2045
|
+
}
|
|
2046
|
+
},
|
|
2047
|
+
{
|
|
2048
|
+
"name": "deadlineTill",
|
|
2049
|
+
"in": "query",
|
|
2050
|
+
"description": "Конечный период фильтрации по сроку выполнения заявки",
|
|
2051
|
+
"schema": {
|
|
2052
|
+
"type": "string",
|
|
2053
|
+
"format": "date-time"
|
|
2054
|
+
}
|
|
2055
|
+
},
|
|
2056
|
+
{
|
|
2057
|
+
"name": "isClosed",
|
|
2058
|
+
"in": "query",
|
|
2059
|
+
"description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
|
|
2060
|
+
"schema": {
|
|
2061
|
+
"type": "boolean"
|
|
2062
|
+
}
|
|
2063
|
+
},
|
|
2064
|
+
{
|
|
2065
|
+
"name": "isFavourite",
|
|
2066
|
+
"in": "query",
|
|
2067
|
+
"description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
|
|
2068
|
+
"schema": {
|
|
2069
|
+
"type": "boolean"
|
|
2070
|
+
}
|
|
2071
|
+
},
|
|
2072
|
+
{
|
|
2073
|
+
"name": "isCompleted",
|
|
2074
|
+
"in": "query",
|
|
2075
|
+
"description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
|
|
2076
|
+
"schema": {
|
|
2077
|
+
"type": "boolean"
|
|
2078
|
+
}
|
|
2079
|
+
},
|
|
2080
|
+
{
|
|
2081
|
+
"name": "isAssigned",
|
|
2082
|
+
"in": "query",
|
|
2083
|
+
"description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
|
|
2084
|
+
"schema": {
|
|
2085
|
+
"type": "boolean"
|
|
2086
|
+
}
|
|
2087
|
+
},
|
|
2088
|
+
{
|
|
2089
|
+
"name": "isDeleted",
|
|
2090
|
+
"in": "query",
|
|
2091
|
+
"description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
|
|
2092
|
+
"schema": {
|
|
2093
|
+
"type": "boolean"
|
|
2094
|
+
}
|
|
2095
|
+
},
|
|
2096
|
+
{
|
|
2097
|
+
"name": "companyID",
|
|
2098
|
+
"in": "query",
|
|
2099
|
+
"description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
|
|
2100
|
+
"schema": {
|
|
2101
|
+
"type": "integer",
|
|
2102
|
+
"format": "int32"
|
|
2103
|
+
}
|
|
2104
|
+
},
|
|
2105
|
+
{
|
|
2106
|
+
"name": "contractID",
|
|
2107
|
+
"in": "query",
|
|
2108
|
+
"description": "Идентификаторы контракта, в рамках которого выполняется заявка",
|
|
2109
|
+
"schema": {
|
|
2110
|
+
"type": "integer",
|
|
2111
|
+
"format": "int32"
|
|
2112
|
+
}
|
|
2113
|
+
},
|
|
2114
|
+
{
|
|
2115
|
+
"name": "criticalityID",
|
|
2116
|
+
"in": "query",
|
|
2117
|
+
"description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
|
|
2118
|
+
"schema": {
|
|
2119
|
+
"type": "integer",
|
|
2120
|
+
"format": "int32"
|
|
2121
|
+
}
|
|
2122
|
+
},
|
|
2123
|
+
{
|
|
2124
|
+
"name": "X-Application-ID",
|
|
2125
|
+
"in": "header",
|
|
2126
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
2127
|
+
"schema": {
|
|
2128
|
+
"enum": [
|
|
2129
|
+
1,
|
|
2130
|
+
2,
|
|
2131
|
+
3,
|
|
2132
|
+
4,
|
|
2133
|
+
5,
|
|
2134
|
+
6
|
|
2135
|
+
],
|
|
2136
|
+
"type": "integer",
|
|
2137
|
+
"format": "int32",
|
|
2138
|
+
"default": 3,
|
|
2139
|
+
"x-enumNames": [
|
|
2140
|
+
"EngineerMobile",
|
|
2141
|
+
"CustomerMobile",
|
|
2142
|
+
"MainWeb",
|
|
2143
|
+
"AdminWeb",
|
|
2144
|
+
"Api",
|
|
2145
|
+
"PlateWeb"
|
|
2146
|
+
]
|
|
2147
|
+
}
|
|
2148
|
+
}
|
|
2149
|
+
],
|
|
2150
|
+
"responses": {
|
|
2151
|
+
"200": {
|
|
2152
|
+
"description": "Отчет по заявкам.",
|
|
2153
|
+
"content": {
|
|
2154
|
+
"text/plain": {
|
|
2155
|
+
"schema": {
|
|
2156
|
+
"type": "array",
|
|
2157
|
+
"items": {
|
|
2158
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByCompaniesTaskListGroupByCompaniesResult"
|
|
2159
|
+
}
|
|
2160
|
+
}
|
|
2161
|
+
},
|
|
2162
|
+
"application/json": {
|
|
2163
|
+
"schema": {
|
|
2164
|
+
"type": "array",
|
|
2165
|
+
"items": {
|
|
2166
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByCompaniesTaskListGroupByCompaniesResult"
|
|
2167
|
+
}
|
|
2168
|
+
}
|
|
2169
|
+
},
|
|
2170
|
+
"text/json": {
|
|
2171
|
+
"schema": {
|
|
2172
|
+
"type": "array",
|
|
2173
|
+
"items": {
|
|
2174
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByCompaniesTaskListGroupByCompaniesResult"
|
|
2175
|
+
}
|
|
2176
|
+
}
|
|
2177
|
+
}
|
|
2178
|
+
}
|
|
2179
|
+
},
|
|
2180
|
+
"204": {
|
|
2181
|
+
"description": "Данные не найдены."
|
|
2182
|
+
},
|
|
2183
|
+
"206": {
|
|
2184
|
+
"description": "Частичный ответ при использовании Range-заголовка."
|
|
2185
|
+
},
|
|
2186
|
+
"401": {
|
|
2187
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
2188
|
+
},
|
|
2189
|
+
"403": {
|
|
2190
|
+
"description": "Недостаточно прав для просмотра отчета."
|
|
2191
|
+
}
|
|
2192
|
+
},
|
|
2193
|
+
"security": [
|
|
2194
|
+
{
|
|
2195
|
+
"Bearer": [ ]
|
|
2196
|
+
}
|
|
2197
|
+
]
|
|
2198
|
+
}
|
|
2199
|
+
},
|
|
2200
|
+
"/TasksByStages": {
|
|
2201
|
+
"get": {
|
|
2202
|
+
"tags": [
|
|
2203
|
+
"TasksByStages"
|
|
2204
|
+
],
|
|
2205
|
+
"summary": "Получение отчета по заявкам, сгруппированным по стадиям",
|
|
2206
|
+
"description": "## Пример запроса:\r\n`GET /TasksByStages?taskStageID=2&isCompleted=false`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"taskStage\": { \"id\": 2, \"name\": \"В работе\", \"color\": \"#FFA500\" },\r\n \"activeTasksCount\": 12,\r\n \"outdatedTasksCount\": 1,\r\n \"undefinedTasksCount\": 0,\r\n \"total\": 13\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListGroupByStages.",
|
|
2207
|
+
"parameters": [
|
|
2208
|
+
{
|
|
2209
|
+
"name": "searchText",
|
|
2210
|
+
"in": "query",
|
|
2211
|
+
"description": "Текстовый поиск по вхождению строки от одного символа. Поиск осуществляется в описании и номере заявки, названии и описании объекта, названии вида работ. Доступен sql like-синтаксис.",
|
|
2212
|
+
"schema": {
|
|
2213
|
+
"type": "string"
|
|
2214
|
+
}
|
|
2215
|
+
},
|
|
2216
|
+
{
|
|
2217
|
+
"name": "Range",
|
|
2218
|
+
"in": "header",
|
|
2219
|
+
"description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
|
|
2220
|
+
"schema": {
|
|
2221
|
+
"type": "string"
|
|
2222
|
+
}
|
|
2223
|
+
},
|
|
2224
|
+
{
|
|
2225
|
+
"name": "offset",
|
|
2226
|
+
"in": "query",
|
|
2227
|
+
"description": "количество элементов, которое нобходимо пропустить",
|
|
2228
|
+
"schema": {
|
|
2229
|
+
"type": "string"
|
|
2230
|
+
}
|
|
2231
|
+
},
|
|
2232
|
+
{
|
|
2233
|
+
"name": "fetch",
|
|
2234
|
+
"in": "query",
|
|
2235
|
+
"description": "количество элементов, которое необходимо вернуть",
|
|
2236
|
+
"schema": {
|
|
2237
|
+
"type": "string"
|
|
2238
|
+
}
|
|
2239
|
+
},
|
|
2240
|
+
{
|
|
2241
|
+
"name": "searchText",
|
|
2242
|
+
"in": "query",
|
|
2243
|
+
"description": "Текстовый поиск по вхождению строки от одного символа",
|
|
2244
|
+
"schema": {
|
|
2245
|
+
"type": "string"
|
|
2246
|
+
}
|
|
2247
|
+
},
|
|
2248
|
+
{
|
|
2249
|
+
"name": "requestedBy",
|
|
2250
|
+
"in": "query",
|
|
2251
|
+
"description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
|
|
2252
|
+
"schema": {
|
|
2253
|
+
"type": "integer",
|
|
2254
|
+
"format": "int32"
|
|
2255
|
+
}
|
|
2256
|
+
},
|
|
2257
|
+
{
|
|
2258
|
+
"name": "assignedTo",
|
|
2259
|
+
"in": "query",
|
|
2260
|
+
"description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
|
|
2261
|
+
"schema": {
|
|
2262
|
+
"type": "integer",
|
|
2263
|
+
"format": "int32"
|
|
2264
|
+
}
|
|
2265
|
+
},
|
|
2266
|
+
{
|
|
2267
|
+
"name": "approvalWith",
|
|
2268
|
+
"in": "query",
|
|
2269
|
+
"description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
|
|
2270
|
+
"schema": {
|
|
2271
|
+
"type": "integer",
|
|
2272
|
+
"format": "int32"
|
|
2273
|
+
}
|
|
2274
|
+
},
|
|
2275
|
+
{
|
|
2276
|
+
"name": "escalatedTo",
|
|
2277
|
+
"in": "query",
|
|
2278
|
+
"description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
|
|
2279
|
+
"schema": {
|
|
2280
|
+
"type": "integer",
|
|
2281
|
+
"format": "int32"
|
|
2282
|
+
}
|
|
2283
|
+
},
|
|
2284
|
+
{
|
|
2285
|
+
"name": "assetID",
|
|
2286
|
+
"in": "query",
|
|
2287
|
+
"description": "Идентификаторы объектов, по которым будет отфильтрован результат",
|
|
2288
|
+
"schema": {
|
|
2289
|
+
"type": "integer",
|
|
2290
|
+
"format": "int32"
|
|
2291
|
+
}
|
|
2292
|
+
},
|
|
2293
|
+
{
|
|
2294
|
+
"name": "startWithAssetID",
|
|
2295
|
+
"in": "query",
|
|
2296
|
+
"description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
|
|
2297
|
+
"schema": {
|
|
2298
|
+
"type": "integer",
|
|
2299
|
+
"format": "int32"
|
|
2300
|
+
}
|
|
2301
|
+
},
|
|
2302
|
+
{
|
|
2303
|
+
"name": "taskID",
|
|
2304
|
+
"in": "query",
|
|
2305
|
+
"description": "Идентификаторы заявок, по которым будет отфильтрован результат",
|
|
2306
|
+
"schema": {
|
|
2307
|
+
"type": "integer",
|
|
2308
|
+
"format": "int32"
|
|
2309
|
+
}
|
|
2310
|
+
},
|
|
2311
|
+
{
|
|
2312
|
+
"name": "taskNumber",
|
|
2313
|
+
"in": "query",
|
|
2314
|
+
"description": "Номера заявок, по которым будет отфильтрован результат",
|
|
2315
|
+
"schema": {
|
|
2316
|
+
"type": "string"
|
|
2317
|
+
}
|
|
2318
|
+
},
|
|
2319
|
+
{
|
|
2320
|
+
"name": "taskTypeID",
|
|
2321
|
+
"in": "query",
|
|
2322
|
+
"description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
|
|
2323
|
+
"schema": {
|
|
2324
|
+
"type": "integer",
|
|
2325
|
+
"format": "int32"
|
|
2326
|
+
}
|
|
2327
|
+
},
|
|
2328
|
+
{
|
|
2329
|
+
"name": "workTypeID",
|
|
2330
|
+
"in": "query",
|
|
2331
|
+
"description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
|
|
2332
|
+
"schema": {
|
|
2333
|
+
"type": "integer",
|
|
2334
|
+
"format": "int32"
|
|
2335
|
+
}
|
|
2336
|
+
},
|
|
2337
|
+
{
|
|
2338
|
+
"name": "taskStageID",
|
|
2339
|
+
"in": "query",
|
|
2340
|
+
"description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
|
|
2341
|
+
"schema": {
|
|
2342
|
+
"type": "integer",
|
|
2343
|
+
"format": "int32"
|
|
2344
|
+
}
|
|
2345
|
+
},
|
|
2346
|
+
{
|
|
2347
|
+
"name": "taskStatusID",
|
|
2348
|
+
"in": "query",
|
|
2349
|
+
"description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
|
|
2350
|
+
"schema": {
|
|
2351
|
+
"type": "integer",
|
|
2352
|
+
"format": "int32"
|
|
2353
|
+
}
|
|
2354
|
+
},
|
|
2355
|
+
{
|
|
2356
|
+
"name": "creationFrom",
|
|
2357
|
+
"in": "query",
|
|
2358
|
+
"description": "Начальный период фильтрации по дате создания заявки",
|
|
2359
|
+
"schema": {
|
|
2360
|
+
"type": "string",
|
|
2361
|
+
"format": "date-time"
|
|
2362
|
+
}
|
|
2363
|
+
},
|
|
2364
|
+
{
|
|
2365
|
+
"name": "creationTill",
|
|
2366
|
+
"in": "query",
|
|
2367
|
+
"description": "Конечный период фильтрации по дате создания заявки",
|
|
2368
|
+
"schema": {
|
|
2369
|
+
"type": "string",
|
|
2370
|
+
"format": "date-time"
|
|
2371
|
+
}
|
|
2372
|
+
},
|
|
2373
|
+
{
|
|
2374
|
+
"name": "assignationFrom",
|
|
2375
|
+
"in": "query",
|
|
2376
|
+
"description": "Начальный период фильтрации по дате назначения заявки",
|
|
2377
|
+
"schema": {
|
|
2378
|
+
"type": "string",
|
|
2379
|
+
"format": "date-time"
|
|
2380
|
+
}
|
|
2381
|
+
},
|
|
2382
|
+
{
|
|
2383
|
+
"name": "assignationTill",
|
|
2384
|
+
"in": "query",
|
|
2385
|
+
"description": "Конечный период фильтрации по дате назначения заявки",
|
|
2386
|
+
"schema": {
|
|
2387
|
+
"type": "string",
|
|
2388
|
+
"format": "date-time"
|
|
2389
|
+
}
|
|
2390
|
+
},
|
|
2391
|
+
{
|
|
2392
|
+
"name": "completionFrom",
|
|
2393
|
+
"in": "query",
|
|
2394
|
+
"description": "Начальный период фильтрации по дате выполнения заявки",
|
|
2395
|
+
"schema": {
|
|
2396
|
+
"type": "string",
|
|
2397
|
+
"format": "date-time"
|
|
2398
|
+
}
|
|
2399
|
+
},
|
|
2400
|
+
{
|
|
2401
|
+
"name": "completionTill",
|
|
2402
|
+
"in": "query",
|
|
2403
|
+
"description": "Конечный период фильтрации по дате выполнения заявки",
|
|
2404
|
+
"schema": {
|
|
2405
|
+
"type": "string",
|
|
2406
|
+
"format": "date-time"
|
|
2407
|
+
}
|
|
2408
|
+
},
|
|
2409
|
+
{
|
|
2410
|
+
"name": "closingFrom",
|
|
2411
|
+
"in": "query",
|
|
2412
|
+
"description": "Начальный период фильтрации по дате закрытия заявки",
|
|
2413
|
+
"schema": {
|
|
2414
|
+
"type": "string",
|
|
2415
|
+
"format": "date-time"
|
|
2416
|
+
}
|
|
2417
|
+
},
|
|
2418
|
+
{
|
|
2419
|
+
"name": "closingTill",
|
|
2420
|
+
"in": "query",
|
|
2421
|
+
"description": "Конечный период фильтрации по дате закрытия заявки",
|
|
2422
|
+
"schema": {
|
|
2423
|
+
"type": "string",
|
|
2424
|
+
"format": "date-time"
|
|
2425
|
+
}
|
|
2426
|
+
},
|
|
2427
|
+
{
|
|
2428
|
+
"name": "deadlineFrom",
|
|
2429
|
+
"in": "query",
|
|
2430
|
+
"description": "Начальный период фильтрации по сроку выполнения заявки",
|
|
2431
|
+
"schema": {
|
|
2432
|
+
"type": "string",
|
|
2433
|
+
"format": "date-time"
|
|
2434
|
+
}
|
|
2435
|
+
},
|
|
2436
|
+
{
|
|
2437
|
+
"name": "deadlineTill",
|
|
2438
|
+
"in": "query",
|
|
2439
|
+
"description": "Конечный период фильтрации по сроку выполнения заявки",
|
|
2440
|
+
"schema": {
|
|
2441
|
+
"type": "string",
|
|
2442
|
+
"format": "date-time"
|
|
2443
|
+
}
|
|
2444
|
+
},
|
|
2445
|
+
{
|
|
2446
|
+
"name": "isClosed",
|
|
2447
|
+
"in": "query",
|
|
2448
|
+
"description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
|
|
2449
|
+
"schema": {
|
|
2450
|
+
"type": "boolean"
|
|
2451
|
+
}
|
|
2452
|
+
},
|
|
2453
|
+
{
|
|
2454
|
+
"name": "isFavourite",
|
|
2455
|
+
"in": "query",
|
|
2456
|
+
"description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
|
|
2457
|
+
"schema": {
|
|
2458
|
+
"type": "boolean"
|
|
2459
|
+
}
|
|
2460
|
+
},
|
|
2461
|
+
{
|
|
2462
|
+
"name": "isCompleted",
|
|
2463
|
+
"in": "query",
|
|
2464
|
+
"description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
|
|
2465
|
+
"schema": {
|
|
2466
|
+
"type": "boolean"
|
|
2467
|
+
}
|
|
2468
|
+
},
|
|
2469
|
+
{
|
|
2470
|
+
"name": "isAssigned",
|
|
2471
|
+
"in": "query",
|
|
2472
|
+
"description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
|
|
2473
|
+
"schema": {
|
|
2474
|
+
"type": "boolean"
|
|
2475
|
+
}
|
|
2476
|
+
},
|
|
2477
|
+
{
|
|
2478
|
+
"name": "isDeleted",
|
|
2479
|
+
"in": "query",
|
|
2480
|
+
"description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
|
|
2481
|
+
"schema": {
|
|
2482
|
+
"type": "boolean"
|
|
2483
|
+
}
|
|
2484
|
+
},
|
|
2485
|
+
{
|
|
2486
|
+
"name": "companyID",
|
|
2487
|
+
"in": "query",
|
|
2488
|
+
"description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
|
|
2489
|
+
"schema": {
|
|
2490
|
+
"type": "integer",
|
|
2491
|
+
"format": "int32"
|
|
2492
|
+
}
|
|
2493
|
+
},
|
|
2494
|
+
{
|
|
2495
|
+
"name": "contractID",
|
|
2496
|
+
"in": "query",
|
|
2497
|
+
"description": "Идентификаторы контракта, в рамках которого выполняется заявка",
|
|
2498
|
+
"schema": {
|
|
2499
|
+
"type": "integer",
|
|
2500
|
+
"format": "int32"
|
|
2501
|
+
}
|
|
2502
|
+
},
|
|
2503
|
+
{
|
|
2504
|
+
"name": "criticalityID",
|
|
2505
|
+
"in": "query",
|
|
2506
|
+
"description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
|
|
2507
|
+
"schema": {
|
|
2508
|
+
"type": "integer",
|
|
2509
|
+
"format": "int32"
|
|
2510
|
+
}
|
|
2511
|
+
},
|
|
2512
|
+
{
|
|
2513
|
+
"name": "X-Application-ID",
|
|
2514
|
+
"in": "header",
|
|
2515
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
2516
|
+
"schema": {
|
|
2517
|
+
"enum": [
|
|
2518
|
+
1,
|
|
2519
|
+
2,
|
|
2520
|
+
3,
|
|
2521
|
+
4,
|
|
2522
|
+
5,
|
|
2523
|
+
6
|
|
2524
|
+
],
|
|
2525
|
+
"type": "integer",
|
|
2526
|
+
"format": "int32",
|
|
2527
|
+
"default": 3,
|
|
2528
|
+
"x-enumNames": [
|
|
2529
|
+
"EngineerMobile",
|
|
2530
|
+
"CustomerMobile",
|
|
2531
|
+
"MainWeb",
|
|
2532
|
+
"AdminWeb",
|
|
2533
|
+
"Api",
|
|
2534
|
+
"PlateWeb"
|
|
2535
|
+
]
|
|
2536
|
+
}
|
|
2537
|
+
}
|
|
2538
|
+
],
|
|
2539
|
+
"responses": {
|
|
2540
|
+
"200": {
|
|
2541
|
+
"description": "Отчет по заявкам.",
|
|
2542
|
+
"content": {
|
|
2543
|
+
"text/plain": {
|
|
2544
|
+
"schema": {
|
|
2545
|
+
"type": "array",
|
|
2546
|
+
"items": {
|
|
2547
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByStagesTaskListGroupByStagesResult"
|
|
2548
|
+
}
|
|
2549
|
+
}
|
|
2550
|
+
},
|
|
2551
|
+
"application/json": {
|
|
2552
|
+
"schema": {
|
|
2553
|
+
"type": "array",
|
|
2554
|
+
"items": {
|
|
2555
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByStagesTaskListGroupByStagesResult"
|
|
2556
|
+
}
|
|
2557
|
+
}
|
|
2558
|
+
},
|
|
2559
|
+
"text/json": {
|
|
2560
|
+
"schema": {
|
|
2561
|
+
"type": "array",
|
|
2562
|
+
"items": {
|
|
2563
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByStagesTaskListGroupByStagesResult"
|
|
2564
|
+
}
|
|
2565
|
+
}
|
|
2566
|
+
}
|
|
2567
|
+
}
|
|
2568
|
+
},
|
|
2569
|
+
"204": {
|
|
2570
|
+
"description": "Данные не найдены."
|
|
2571
|
+
},
|
|
2572
|
+
"206": {
|
|
2573
|
+
"description": "Частичный ответ при использовании Range-заголовка."
|
|
2574
|
+
},
|
|
2575
|
+
"401": {
|
|
2576
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
2577
|
+
},
|
|
2578
|
+
"403": {
|
|
2579
|
+
"description": "Недостаточно прав для просмотра отчета."
|
|
2580
|
+
}
|
|
2581
|
+
},
|
|
2582
|
+
"security": [
|
|
2583
|
+
{
|
|
2584
|
+
"Bearer": [ ]
|
|
2585
|
+
}
|
|
2586
|
+
]
|
|
2587
|
+
}
|
|
2588
|
+
},
|
|
2589
|
+
"/TasksByWorkTypes": {
|
|
2590
|
+
"get": {
|
|
2591
|
+
"tags": [
|
|
2592
|
+
"TasksByWorkTypes"
|
|
2593
|
+
],
|
|
2594
|
+
"summary": "Получение отчета по заявкам, сгруппированным по видам работ",
|
|
2595
|
+
"description": "## Пример запроса:\r\n`GET /TasksByWorkTypes?searchText=ТО&workTypeID=5`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"workType\": { \"id\": 5, \"name\": \"Техническое обслуживание\" },\r\n \"activeTasksCount\": 7,\r\n \"outdatedTasksCount\": 0,\r\n \"undefinedTasksCount\": 0,\r\n \"total\": 7\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListGroupByWorkTypes.",
|
|
2596
|
+
"parameters": [
|
|
2597
|
+
{
|
|
2598
|
+
"name": "searchText",
|
|
2599
|
+
"in": "query",
|
|
2600
|
+
"description": "Текстовый поиск по вхождению строки от одного символа. Поиск осуществляется в описании и номере заявки, названии и описании объекта, названии вида работ. Доступен sql like-синтаксис.",
|
|
2601
|
+
"schema": {
|
|
2602
|
+
"type": "string"
|
|
2603
|
+
}
|
|
2604
|
+
},
|
|
2605
|
+
{
|
|
2606
|
+
"name": "Range",
|
|
2607
|
+
"in": "header",
|
|
2608
|
+
"description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
|
|
2609
|
+
"schema": {
|
|
2610
|
+
"type": "string"
|
|
2611
|
+
}
|
|
2612
|
+
},
|
|
2613
|
+
{
|
|
2614
|
+
"name": "offset",
|
|
2615
|
+
"in": "query",
|
|
2616
|
+
"description": "количество элементов, которое нобходимо пропустить",
|
|
2617
|
+
"schema": {
|
|
2618
|
+
"type": "string"
|
|
2619
|
+
}
|
|
2620
|
+
},
|
|
2621
|
+
{
|
|
2622
|
+
"name": "fetch",
|
|
2623
|
+
"in": "query",
|
|
2624
|
+
"description": "количество элементов, которое необходимо вернуть",
|
|
2625
|
+
"schema": {
|
|
2626
|
+
"type": "string"
|
|
2627
|
+
}
|
|
2628
|
+
},
|
|
2629
|
+
{
|
|
2630
|
+
"name": "searchText",
|
|
2631
|
+
"in": "query",
|
|
2632
|
+
"description": "Текстовый поиск по вхождению строки от одного символа",
|
|
2633
|
+
"schema": {
|
|
2634
|
+
"type": "string"
|
|
2635
|
+
}
|
|
2636
|
+
},
|
|
2637
|
+
{
|
|
2638
|
+
"name": "requestedBy",
|
|
2639
|
+
"in": "query",
|
|
2640
|
+
"description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
|
|
2641
|
+
"schema": {
|
|
2642
|
+
"type": "integer",
|
|
2643
|
+
"format": "int32"
|
|
2644
|
+
}
|
|
2645
|
+
},
|
|
2646
|
+
{
|
|
2647
|
+
"name": "assignedTo",
|
|
2648
|
+
"in": "query",
|
|
2649
|
+
"description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
|
|
2650
|
+
"schema": {
|
|
2651
|
+
"type": "integer",
|
|
2652
|
+
"format": "int32"
|
|
2653
|
+
}
|
|
2654
|
+
},
|
|
2655
|
+
{
|
|
2656
|
+
"name": "approvalWith",
|
|
2657
|
+
"in": "query",
|
|
2658
|
+
"description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
|
|
2659
|
+
"schema": {
|
|
2660
|
+
"type": "integer",
|
|
2661
|
+
"format": "int32"
|
|
2662
|
+
}
|
|
2663
|
+
},
|
|
2664
|
+
{
|
|
2665
|
+
"name": "escalatedTo",
|
|
2666
|
+
"in": "query",
|
|
2667
|
+
"description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
|
|
2668
|
+
"schema": {
|
|
2669
|
+
"type": "integer",
|
|
2670
|
+
"format": "int32"
|
|
2671
|
+
}
|
|
2672
|
+
},
|
|
2673
|
+
{
|
|
2674
|
+
"name": "assetID",
|
|
2675
|
+
"in": "query",
|
|
2676
|
+
"description": "Идентификаторы объектов, по которым будет отфильтрован результат",
|
|
2677
|
+
"schema": {
|
|
2678
|
+
"type": "integer",
|
|
2679
|
+
"format": "int32"
|
|
2680
|
+
}
|
|
2681
|
+
},
|
|
2682
|
+
{
|
|
2683
|
+
"name": "startWithAssetID",
|
|
2684
|
+
"in": "query",
|
|
2685
|
+
"description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
|
|
2686
|
+
"schema": {
|
|
2687
|
+
"type": "integer",
|
|
2688
|
+
"format": "int32"
|
|
2689
|
+
}
|
|
2690
|
+
},
|
|
2691
|
+
{
|
|
2692
|
+
"name": "taskID",
|
|
2693
|
+
"in": "query",
|
|
2694
|
+
"description": "Идентификаторы заявок, по которым будет отфильтрован результат",
|
|
2695
|
+
"schema": {
|
|
2696
|
+
"type": "integer",
|
|
2697
|
+
"format": "int32"
|
|
2698
|
+
}
|
|
2699
|
+
},
|
|
2700
|
+
{
|
|
2701
|
+
"name": "taskNumber",
|
|
2702
|
+
"in": "query",
|
|
2703
|
+
"description": "Номера заявок, по которым будет отфильтрован результат",
|
|
2704
|
+
"schema": {
|
|
2705
|
+
"type": "string"
|
|
2706
|
+
}
|
|
2707
|
+
},
|
|
2708
|
+
{
|
|
2709
|
+
"name": "taskTypeID",
|
|
2710
|
+
"in": "query",
|
|
2711
|
+
"description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
|
|
2712
|
+
"schema": {
|
|
2713
|
+
"type": "integer",
|
|
2714
|
+
"format": "int32"
|
|
2715
|
+
}
|
|
2716
|
+
},
|
|
2717
|
+
{
|
|
2718
|
+
"name": "workTypeID",
|
|
2719
|
+
"in": "query",
|
|
2720
|
+
"description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
|
|
2721
|
+
"schema": {
|
|
2722
|
+
"type": "integer",
|
|
2723
|
+
"format": "int32"
|
|
2724
|
+
}
|
|
2725
|
+
},
|
|
2726
|
+
{
|
|
2727
|
+
"name": "taskStageID",
|
|
2728
|
+
"in": "query",
|
|
2729
|
+
"description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
|
|
2730
|
+
"schema": {
|
|
2731
|
+
"type": "integer",
|
|
2732
|
+
"format": "int32"
|
|
2733
|
+
}
|
|
2734
|
+
},
|
|
2735
|
+
{
|
|
2736
|
+
"name": "taskStatusID",
|
|
2737
|
+
"in": "query",
|
|
2738
|
+
"description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
|
|
2739
|
+
"schema": {
|
|
2740
|
+
"type": "integer",
|
|
2741
|
+
"format": "int32"
|
|
2742
|
+
}
|
|
2743
|
+
},
|
|
2744
|
+
{
|
|
2745
|
+
"name": "creationFrom",
|
|
2746
|
+
"in": "query",
|
|
2747
|
+
"description": "Начальный период фильтрации по дате создания заявки",
|
|
2748
|
+
"schema": {
|
|
2749
|
+
"type": "string",
|
|
2750
|
+
"format": "date-time"
|
|
2751
|
+
}
|
|
2752
|
+
},
|
|
2753
|
+
{
|
|
2754
|
+
"name": "creationTill",
|
|
2755
|
+
"in": "query",
|
|
2756
|
+
"description": "Конечный период фильтрации по дате создания заявки",
|
|
2757
|
+
"schema": {
|
|
2758
|
+
"type": "string",
|
|
2759
|
+
"format": "date-time"
|
|
2760
|
+
}
|
|
2761
|
+
},
|
|
2762
|
+
{
|
|
2763
|
+
"name": "assignationFrom",
|
|
2764
|
+
"in": "query",
|
|
2765
|
+
"description": "Начальный период фильтрации по дате назначения заявки",
|
|
2766
|
+
"schema": {
|
|
2767
|
+
"type": "string",
|
|
2768
|
+
"format": "date-time"
|
|
2769
|
+
}
|
|
2770
|
+
},
|
|
2771
|
+
{
|
|
2772
|
+
"name": "assignationTill",
|
|
2773
|
+
"in": "query",
|
|
2774
|
+
"description": "Конечный период фильтрации по дате назначения заявки",
|
|
2775
|
+
"schema": {
|
|
2776
|
+
"type": "string",
|
|
2777
|
+
"format": "date-time"
|
|
2778
|
+
}
|
|
2779
|
+
},
|
|
2780
|
+
{
|
|
2781
|
+
"name": "completionFrom",
|
|
2782
|
+
"in": "query",
|
|
2783
|
+
"description": "Начальный период фильтрации по дате выполнения заявки",
|
|
2784
|
+
"schema": {
|
|
2785
|
+
"type": "string",
|
|
2786
|
+
"format": "date-time"
|
|
2787
|
+
}
|
|
2788
|
+
},
|
|
2789
|
+
{
|
|
2790
|
+
"name": "completionTill",
|
|
2791
|
+
"in": "query",
|
|
2792
|
+
"description": "Конечный период фильтрации по дате выполнения заявки",
|
|
2793
|
+
"schema": {
|
|
2794
|
+
"type": "string",
|
|
2795
|
+
"format": "date-time"
|
|
2796
|
+
}
|
|
2797
|
+
},
|
|
2798
|
+
{
|
|
2799
|
+
"name": "closingFrom",
|
|
2800
|
+
"in": "query",
|
|
2801
|
+
"description": "Начальный период фильтрации по дате закрытия заявки",
|
|
2802
|
+
"schema": {
|
|
2803
|
+
"type": "string",
|
|
2804
|
+
"format": "date-time"
|
|
2805
|
+
}
|
|
2806
|
+
},
|
|
2807
|
+
{
|
|
2808
|
+
"name": "closingTill",
|
|
2809
|
+
"in": "query",
|
|
2810
|
+
"description": "Конечный период фильтрации по дате закрытия заявки",
|
|
2811
|
+
"schema": {
|
|
2812
|
+
"type": "string",
|
|
2813
|
+
"format": "date-time"
|
|
2814
|
+
}
|
|
2815
|
+
},
|
|
2816
|
+
{
|
|
2817
|
+
"name": "deadlineFrom",
|
|
2818
|
+
"in": "query",
|
|
2819
|
+
"description": "Начальный период фильтрации по сроку выполнения заявки",
|
|
2820
|
+
"schema": {
|
|
2821
|
+
"type": "string",
|
|
2822
|
+
"format": "date-time"
|
|
2823
|
+
}
|
|
2824
|
+
},
|
|
2825
|
+
{
|
|
2826
|
+
"name": "deadlineTill",
|
|
2827
|
+
"in": "query",
|
|
2828
|
+
"description": "Конечный период фильтрации по сроку выполнения заявки",
|
|
2829
|
+
"schema": {
|
|
2830
|
+
"type": "string",
|
|
2831
|
+
"format": "date-time"
|
|
2832
|
+
}
|
|
2833
|
+
},
|
|
2834
|
+
{
|
|
2835
|
+
"name": "isClosed",
|
|
2836
|
+
"in": "query",
|
|
2837
|
+
"description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
|
|
2838
|
+
"schema": {
|
|
2839
|
+
"type": "boolean"
|
|
2840
|
+
}
|
|
2841
|
+
},
|
|
2842
|
+
{
|
|
2843
|
+
"name": "isFavourite",
|
|
2844
|
+
"in": "query",
|
|
2845
|
+
"description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
|
|
2846
|
+
"schema": {
|
|
2847
|
+
"type": "boolean"
|
|
2848
|
+
}
|
|
2849
|
+
},
|
|
2850
|
+
{
|
|
2851
|
+
"name": "isCompleted",
|
|
2852
|
+
"in": "query",
|
|
2853
|
+
"description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
|
|
2854
|
+
"schema": {
|
|
2855
|
+
"type": "boolean"
|
|
2856
|
+
}
|
|
2857
|
+
},
|
|
2858
|
+
{
|
|
2859
|
+
"name": "isAssigned",
|
|
2860
|
+
"in": "query",
|
|
2861
|
+
"description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
|
|
2862
|
+
"schema": {
|
|
2863
|
+
"type": "boolean"
|
|
2864
|
+
}
|
|
2865
|
+
},
|
|
2866
|
+
{
|
|
2867
|
+
"name": "isDeleted",
|
|
2868
|
+
"in": "query",
|
|
2869
|
+
"description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
|
|
2870
|
+
"schema": {
|
|
2871
|
+
"type": "boolean"
|
|
2872
|
+
}
|
|
2873
|
+
},
|
|
2874
|
+
{
|
|
2875
|
+
"name": "companyID",
|
|
2876
|
+
"in": "query",
|
|
2877
|
+
"description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
|
|
2878
|
+
"schema": {
|
|
2879
|
+
"type": "integer",
|
|
2880
|
+
"format": "int32"
|
|
2881
|
+
}
|
|
2882
|
+
},
|
|
2883
|
+
{
|
|
2884
|
+
"name": "contractID",
|
|
2885
|
+
"in": "query",
|
|
2886
|
+
"description": "Идентификаторы контракта, в рамках которого выполняется заявка",
|
|
2887
|
+
"schema": {
|
|
2888
|
+
"type": "integer",
|
|
2889
|
+
"format": "int32"
|
|
2890
|
+
}
|
|
2891
|
+
},
|
|
2892
|
+
{
|
|
2893
|
+
"name": "criticalityID",
|
|
2894
|
+
"in": "query",
|
|
2895
|
+
"description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
|
|
2896
|
+
"schema": {
|
|
2897
|
+
"type": "integer",
|
|
2898
|
+
"format": "int32"
|
|
2899
|
+
}
|
|
2900
|
+
},
|
|
2901
|
+
{
|
|
2902
|
+
"name": "X-Application-ID",
|
|
2903
|
+
"in": "header",
|
|
2904
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
2905
|
+
"schema": {
|
|
2906
|
+
"enum": [
|
|
2907
|
+
1,
|
|
2908
|
+
2,
|
|
2909
|
+
3,
|
|
2910
|
+
4,
|
|
2911
|
+
5,
|
|
2912
|
+
6
|
|
2913
|
+
],
|
|
2914
|
+
"type": "integer",
|
|
2915
|
+
"format": "int32",
|
|
2916
|
+
"default": 3,
|
|
2917
|
+
"x-enumNames": [
|
|
2918
|
+
"EngineerMobile",
|
|
2919
|
+
"CustomerMobile",
|
|
2920
|
+
"MainWeb",
|
|
2921
|
+
"AdminWeb",
|
|
2922
|
+
"Api",
|
|
2923
|
+
"PlateWeb"
|
|
2924
|
+
]
|
|
2925
|
+
}
|
|
2926
|
+
}
|
|
2927
|
+
],
|
|
2928
|
+
"responses": {
|
|
2929
|
+
"200": {
|
|
2930
|
+
"description": "Отчет по заявкам.",
|
|
2931
|
+
"content": {
|
|
2932
|
+
"text/plain": {
|
|
2933
|
+
"schema": {
|
|
2934
|
+
"type": "array",
|
|
2935
|
+
"items": {
|
|
2936
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByWorkTypesTaskListGroupByWorkTypesResult"
|
|
2937
|
+
}
|
|
2938
|
+
}
|
|
2939
|
+
},
|
|
2940
|
+
"application/json": {
|
|
2941
|
+
"schema": {
|
|
2942
|
+
"type": "array",
|
|
2943
|
+
"items": {
|
|
2944
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByWorkTypesTaskListGroupByWorkTypesResult"
|
|
2945
|
+
}
|
|
2946
|
+
}
|
|
2947
|
+
},
|
|
2948
|
+
"text/json": {
|
|
2949
|
+
"schema": {
|
|
2950
|
+
"type": "array",
|
|
2951
|
+
"items": {
|
|
2952
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByWorkTypesTaskListGroupByWorkTypesResult"
|
|
2953
|
+
}
|
|
2954
|
+
}
|
|
2955
|
+
}
|
|
2956
|
+
}
|
|
2957
|
+
},
|
|
2958
|
+
"204": {
|
|
2959
|
+
"description": "Данные не найдены."
|
|
2960
|
+
},
|
|
2961
|
+
"206": {
|
|
2962
|
+
"description": "Частичный ответ при использовании Range-заголовка."
|
|
2963
|
+
},
|
|
2964
|
+
"401": {
|
|
2965
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
2966
|
+
},
|
|
2967
|
+
"403": {
|
|
2968
|
+
"description": "Недостаточно прав для просмотра отчета."
|
|
2969
|
+
}
|
|
2970
|
+
},
|
|
2971
|
+
"security": [
|
|
2972
|
+
{
|
|
2973
|
+
"Bearer": [ ]
|
|
2974
|
+
}
|
|
2975
|
+
]
|
|
2976
|
+
}
|
|
2977
|
+
},
|
|
2978
|
+
"/WorkingTime": {
|
|
2979
|
+
"get": {
|
|
2980
|
+
"tags": [
|
|
2981
|
+
"WorkingTime"
|
|
2982
|
+
],
|
|
2983
|
+
"summary": "Получение отчета по отработанному времени по заявкам",
|
|
2984
|
+
"description": "## Пример запроса:\r\n`GET /WorkingTime?groupByPeriod=Day&assignedTo=15&creationFrom=2026-08-01`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"period\": { \"from\": \"2026-08-01T00:00:00Z\", \"till\": \"2026-08-01T23:59:59Z\" },\r\n \"workingTime\": { \"totalMinutes\": 960, \"averageMinutes\": 80 }\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 400 BadRequest: не указан или некорректен параметр groupByPeriod.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListWorkingTime.",
|
|
2985
|
+
"parameters": [
|
|
2986
|
+
{
|
|
2987
|
+
"name": "groupByPeriod",
|
|
2988
|
+
"in": "query",
|
|
2989
|
+
"description": "Период группировки: Day, Week или Month.",
|
|
2990
|
+
"schema": {
|
|
2991
|
+
"$ref": "#/components/schemas/ApiEnumsDatePart"
|
|
2992
|
+
}
|
|
2993
|
+
},
|
|
2994
|
+
{
|
|
2995
|
+
"name": "Range",
|
|
2996
|
+
"in": "header",
|
|
2997
|
+
"description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
|
|
2998
|
+
"schema": {
|
|
2999
|
+
"type": "string"
|
|
3000
|
+
}
|
|
3001
|
+
},
|
|
3002
|
+
{
|
|
3003
|
+
"name": "offset",
|
|
3004
|
+
"in": "query",
|
|
3005
|
+
"description": "количество элементов, которое нобходимо пропустить",
|
|
3006
|
+
"schema": {
|
|
3007
|
+
"type": "string"
|
|
3008
|
+
}
|
|
3009
|
+
},
|
|
3010
|
+
{
|
|
3011
|
+
"name": "fetch",
|
|
3012
|
+
"in": "query",
|
|
3013
|
+
"description": "количество элементов, которое необходимо вернуть",
|
|
3014
|
+
"schema": {
|
|
3015
|
+
"type": "string"
|
|
3016
|
+
}
|
|
3017
|
+
},
|
|
3018
|
+
{
|
|
3019
|
+
"name": "groupByPeriod",
|
|
3020
|
+
"in": "query",
|
|
3021
|
+
"description": "Период группировки (Day, Week, Month)",
|
|
3022
|
+
"required": true,
|
|
3023
|
+
"schema": {
|
|
3024
|
+
"enum": [
|
|
3025
|
+
"Year",
|
|
3026
|
+
"Quarter",
|
|
3027
|
+
"Month",
|
|
3028
|
+
"Day",
|
|
3029
|
+
"Week",
|
|
3030
|
+
"Second",
|
|
3031
|
+
"Minute",
|
|
3032
|
+
"Hour"
|
|
3033
|
+
],
|
|
3034
|
+
"type": "string"
|
|
3035
|
+
}
|
|
3036
|
+
},
|
|
3037
|
+
{
|
|
3038
|
+
"name": "requestedBy",
|
|
3039
|
+
"in": "query",
|
|
3040
|
+
"description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
|
|
3041
|
+
"schema": {
|
|
3042
|
+
"type": "integer",
|
|
3043
|
+
"format": "int32"
|
|
3044
|
+
}
|
|
3045
|
+
},
|
|
3046
|
+
{
|
|
3047
|
+
"name": "assignedTo",
|
|
3048
|
+
"in": "query",
|
|
3049
|
+
"description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
|
|
3050
|
+
"schema": {
|
|
3051
|
+
"type": "integer",
|
|
3052
|
+
"format": "int32"
|
|
3053
|
+
}
|
|
3054
|
+
},
|
|
3055
|
+
{
|
|
3056
|
+
"name": "approvalWith",
|
|
3057
|
+
"in": "query",
|
|
3058
|
+
"description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
|
|
3059
|
+
"schema": {
|
|
3060
|
+
"type": "integer",
|
|
3061
|
+
"format": "int32"
|
|
3062
|
+
}
|
|
3063
|
+
},
|
|
3064
|
+
{
|
|
3065
|
+
"name": "escalatedTo",
|
|
3066
|
+
"in": "query",
|
|
3067
|
+
"description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
|
|
3068
|
+
"schema": {
|
|
3069
|
+
"type": "integer",
|
|
3070
|
+
"format": "int32"
|
|
3071
|
+
}
|
|
3072
|
+
},
|
|
3073
|
+
{
|
|
3074
|
+
"name": "assetID",
|
|
3075
|
+
"in": "query",
|
|
3076
|
+
"description": "Идентификаторы объектов, по которым будет отфильтрован результат",
|
|
3077
|
+
"schema": {
|
|
3078
|
+
"type": "integer",
|
|
3079
|
+
"format": "int32"
|
|
3080
|
+
}
|
|
3081
|
+
},
|
|
3082
|
+
{
|
|
3083
|
+
"name": "startWithAssetID",
|
|
3084
|
+
"in": "query",
|
|
3085
|
+
"description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
|
|
3086
|
+
"schema": {
|
|
3087
|
+
"type": "integer",
|
|
3088
|
+
"format": "int32"
|
|
3089
|
+
}
|
|
3090
|
+
},
|
|
3091
|
+
{
|
|
3092
|
+
"name": "taskID",
|
|
3093
|
+
"in": "query",
|
|
3094
|
+
"description": "Идентификаторы заявок, по которым будет отфильтрован результат",
|
|
3095
|
+
"schema": {
|
|
3096
|
+
"type": "integer",
|
|
3097
|
+
"format": "int32"
|
|
3098
|
+
}
|
|
3099
|
+
},
|
|
3100
|
+
{
|
|
3101
|
+
"name": "taskNumber",
|
|
3102
|
+
"in": "query",
|
|
3103
|
+
"description": "Номера заявок, по которым будет отфильтрован результат",
|
|
3104
|
+
"schema": {
|
|
3105
|
+
"type": "string"
|
|
3106
|
+
}
|
|
3107
|
+
},
|
|
3108
|
+
{
|
|
3109
|
+
"name": "taskTypeID",
|
|
3110
|
+
"in": "query",
|
|
3111
|
+
"description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
|
|
3112
|
+
"schema": {
|
|
3113
|
+
"type": "integer",
|
|
3114
|
+
"format": "int32"
|
|
3115
|
+
}
|
|
3116
|
+
},
|
|
3117
|
+
{
|
|
3118
|
+
"name": "workTypeID",
|
|
3119
|
+
"in": "query",
|
|
3120
|
+
"description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
|
|
3121
|
+
"schema": {
|
|
3122
|
+
"type": "integer",
|
|
3123
|
+
"format": "int32"
|
|
3124
|
+
}
|
|
3125
|
+
},
|
|
3126
|
+
{
|
|
3127
|
+
"name": "taskStageID",
|
|
3128
|
+
"in": "query",
|
|
3129
|
+
"description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
|
|
3130
|
+
"schema": {
|
|
3131
|
+
"type": "integer",
|
|
3132
|
+
"format": "int32"
|
|
3133
|
+
}
|
|
3134
|
+
},
|
|
3135
|
+
{
|
|
3136
|
+
"name": "taskStatusID",
|
|
3137
|
+
"in": "query",
|
|
3138
|
+
"description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
|
|
3139
|
+
"schema": {
|
|
3140
|
+
"type": "integer",
|
|
3141
|
+
"format": "int32"
|
|
3142
|
+
}
|
|
3143
|
+
},
|
|
3144
|
+
{
|
|
3145
|
+
"name": "creationFrom",
|
|
3146
|
+
"in": "query",
|
|
3147
|
+
"description": "Начальный период фильтрации по дате создания заявки",
|
|
3148
|
+
"schema": {
|
|
3149
|
+
"type": "string",
|
|
3150
|
+
"format": "date-time"
|
|
3151
|
+
}
|
|
3152
|
+
},
|
|
3153
|
+
{
|
|
3154
|
+
"name": "creationTill",
|
|
3155
|
+
"in": "query",
|
|
3156
|
+
"description": "Конечный период фильтрации по дате создания заявки",
|
|
3157
|
+
"schema": {
|
|
3158
|
+
"type": "string",
|
|
3159
|
+
"format": "date-time"
|
|
3160
|
+
}
|
|
3161
|
+
},
|
|
3162
|
+
{
|
|
3163
|
+
"name": "assignationFrom",
|
|
3164
|
+
"in": "query",
|
|
3165
|
+
"description": "Начальный период фильтрации по дате назначения заявки",
|
|
3166
|
+
"schema": {
|
|
3167
|
+
"type": "string",
|
|
3168
|
+
"format": "date-time"
|
|
3169
|
+
}
|
|
3170
|
+
},
|
|
3171
|
+
{
|
|
3172
|
+
"name": "assignationTill",
|
|
3173
|
+
"in": "query",
|
|
3174
|
+
"description": "Конечный период фильтрации по дате назначения заявки",
|
|
3175
|
+
"schema": {
|
|
3176
|
+
"type": "string",
|
|
3177
|
+
"format": "date-time"
|
|
3178
|
+
}
|
|
3179
|
+
},
|
|
3180
|
+
{
|
|
3181
|
+
"name": "completionFrom",
|
|
3182
|
+
"in": "query",
|
|
3183
|
+
"description": "Начальный период фильтрации по дате выполнения заявки",
|
|
3184
|
+
"schema": {
|
|
3185
|
+
"type": "string",
|
|
3186
|
+
"format": "date-time"
|
|
3187
|
+
}
|
|
3188
|
+
},
|
|
3189
|
+
{
|
|
3190
|
+
"name": "completionTill",
|
|
3191
|
+
"in": "query",
|
|
3192
|
+
"description": "Конечный период фильтрации по дате выполнения заявки",
|
|
3193
|
+
"schema": {
|
|
3194
|
+
"type": "string",
|
|
3195
|
+
"format": "date-time"
|
|
3196
|
+
}
|
|
3197
|
+
},
|
|
3198
|
+
{
|
|
3199
|
+
"name": "closingFrom",
|
|
3200
|
+
"in": "query",
|
|
3201
|
+
"description": "Начальный период фильтрации по дате закрытия заявки",
|
|
3202
|
+
"schema": {
|
|
3203
|
+
"type": "string",
|
|
3204
|
+
"format": "date-time"
|
|
3205
|
+
}
|
|
3206
|
+
},
|
|
3207
|
+
{
|
|
3208
|
+
"name": "closingTill",
|
|
3209
|
+
"in": "query",
|
|
3210
|
+
"description": "Конечный период фильтрации по дате закрытия заявки",
|
|
3211
|
+
"schema": {
|
|
3212
|
+
"type": "string",
|
|
3213
|
+
"format": "date-time"
|
|
3214
|
+
}
|
|
3215
|
+
},
|
|
3216
|
+
{
|
|
3217
|
+
"name": "deadlineFrom",
|
|
3218
|
+
"in": "query",
|
|
3219
|
+
"description": "Начальный период фильтрации по сроку выполнения заявки",
|
|
3220
|
+
"schema": {
|
|
3221
|
+
"type": "string",
|
|
3222
|
+
"format": "date-time"
|
|
3223
|
+
}
|
|
3224
|
+
},
|
|
3225
|
+
{
|
|
3226
|
+
"name": "deadlineTill",
|
|
3227
|
+
"in": "query",
|
|
3228
|
+
"description": "Конечный период фильтрации по сроку выполнения заявки",
|
|
3229
|
+
"schema": {
|
|
3230
|
+
"type": "string",
|
|
3231
|
+
"format": "date-time"
|
|
3232
|
+
}
|
|
3233
|
+
},
|
|
3234
|
+
{
|
|
3235
|
+
"name": "isClosed",
|
|
3236
|
+
"in": "query",
|
|
3237
|
+
"description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
|
|
3238
|
+
"schema": {
|
|
3239
|
+
"type": "boolean"
|
|
3240
|
+
}
|
|
3241
|
+
},
|
|
3242
|
+
{
|
|
3243
|
+
"name": "isFavourite",
|
|
3244
|
+
"in": "query",
|
|
3245
|
+
"description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
|
|
3246
|
+
"schema": {
|
|
3247
|
+
"type": "boolean"
|
|
3248
|
+
}
|
|
3249
|
+
},
|
|
3250
|
+
{
|
|
3251
|
+
"name": "isCompleted",
|
|
3252
|
+
"in": "query",
|
|
3253
|
+
"description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
|
|
3254
|
+
"schema": {
|
|
3255
|
+
"type": "boolean"
|
|
3256
|
+
}
|
|
3257
|
+
},
|
|
3258
|
+
{
|
|
3259
|
+
"name": "isAssigned",
|
|
3260
|
+
"in": "query",
|
|
3261
|
+
"description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
|
|
3262
|
+
"schema": {
|
|
3263
|
+
"type": "boolean"
|
|
3264
|
+
}
|
|
3265
|
+
},
|
|
3266
|
+
{
|
|
3267
|
+
"name": "isDeleted",
|
|
3268
|
+
"in": "query",
|
|
3269
|
+
"description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
|
|
3270
|
+
"schema": {
|
|
3271
|
+
"type": "boolean"
|
|
3272
|
+
}
|
|
3273
|
+
},
|
|
3274
|
+
{
|
|
3275
|
+
"name": "companyID",
|
|
3276
|
+
"in": "query",
|
|
3277
|
+
"description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
|
|
3278
|
+
"schema": {
|
|
3279
|
+
"type": "integer",
|
|
3280
|
+
"format": "int32"
|
|
3281
|
+
}
|
|
3282
|
+
},
|
|
3283
|
+
{
|
|
3284
|
+
"name": "contractID",
|
|
3285
|
+
"in": "query",
|
|
3286
|
+
"description": "Идентификаторы контракта, в рамках которого выполняется заявка",
|
|
3287
|
+
"schema": {
|
|
3288
|
+
"type": "integer",
|
|
3289
|
+
"format": "int32"
|
|
3290
|
+
}
|
|
3291
|
+
},
|
|
3292
|
+
{
|
|
3293
|
+
"name": "criticalityID",
|
|
3294
|
+
"in": "query",
|
|
3295
|
+
"description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
|
|
3296
|
+
"schema": {
|
|
3297
|
+
"type": "integer",
|
|
3298
|
+
"format": "int32"
|
|
3299
|
+
}
|
|
3300
|
+
},
|
|
3301
|
+
{
|
|
3302
|
+
"name": "X-Application-ID",
|
|
3303
|
+
"in": "header",
|
|
3304
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
3305
|
+
"schema": {
|
|
3306
|
+
"enum": [
|
|
3307
|
+
1,
|
|
3308
|
+
2,
|
|
3309
|
+
3,
|
|
3310
|
+
4,
|
|
3311
|
+
5,
|
|
3312
|
+
6
|
|
3313
|
+
],
|
|
3314
|
+
"type": "integer",
|
|
3315
|
+
"format": "int32",
|
|
3316
|
+
"default": 3,
|
|
3317
|
+
"x-enumNames": [
|
|
3318
|
+
"EngineerMobile",
|
|
3319
|
+
"CustomerMobile",
|
|
3320
|
+
"MainWeb",
|
|
3321
|
+
"AdminWeb",
|
|
3322
|
+
"Api",
|
|
3323
|
+
"PlateWeb"
|
|
3324
|
+
]
|
|
3325
|
+
}
|
|
3326
|
+
}
|
|
3327
|
+
],
|
|
3328
|
+
"responses": {
|
|
3329
|
+
"200": {
|
|
3330
|
+
"description": "Отчет по отработанному времени.",
|
|
3331
|
+
"content": {
|
|
3332
|
+
"text/plain": {
|
|
3333
|
+
"schema": {
|
|
3334
|
+
"type": "array",
|
|
3335
|
+
"items": {
|
|
3336
|
+
"$ref": "#/components/schemas/ResultsWorkingTimeWorkingTimeResult"
|
|
3337
|
+
}
|
|
3338
|
+
}
|
|
3339
|
+
},
|
|
3340
|
+
"application/json": {
|
|
3341
|
+
"schema": {
|
|
3342
|
+
"type": "array",
|
|
3343
|
+
"items": {
|
|
3344
|
+
"$ref": "#/components/schemas/ResultsWorkingTimeWorkingTimeResult"
|
|
3345
|
+
}
|
|
3346
|
+
}
|
|
3347
|
+
},
|
|
3348
|
+
"text/json": {
|
|
3349
|
+
"schema": {
|
|
3350
|
+
"type": "array",
|
|
3351
|
+
"items": {
|
|
3352
|
+
"$ref": "#/components/schemas/ResultsWorkingTimeWorkingTimeResult"
|
|
3353
|
+
}
|
|
3354
|
+
}
|
|
3355
|
+
}
|
|
3356
|
+
}
|
|
3357
|
+
},
|
|
3358
|
+
"204": {
|
|
3359
|
+
"description": "Данные не найдены."
|
|
3360
|
+
},
|
|
3361
|
+
"206": {
|
|
3362
|
+
"description": "Частичный ответ при использовании Range-заголовка."
|
|
3363
|
+
},
|
|
3364
|
+
"401": {
|
|
3365
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
3366
|
+
},
|
|
3367
|
+
"400": {
|
|
3368
|
+
"description": "Некорректный параметр groupByPeriod."
|
|
3369
|
+
},
|
|
3370
|
+
"403": {
|
|
3371
|
+
"description": "Недостаточно прав для просмотра отчета."
|
|
3372
|
+
}
|
|
3373
|
+
},
|
|
3374
|
+
"security": [
|
|
3375
|
+
{
|
|
3376
|
+
"Bearer": [ ]
|
|
3377
|
+
}
|
|
3378
|
+
]
|
|
3379
|
+
}
|
|
3380
|
+
}
|
|
3381
|
+
},
|
|
3382
|
+
"components": {
|
|
3383
|
+
"schemas": {
|
|
3384
|
+
"ApiEnumsDatePart": {
|
|
3385
|
+
"enum": [
|
|
3386
|
+
"Year",
|
|
3387
|
+
"Quarter",
|
|
3388
|
+
"Month",
|
|
3389
|
+
"Day",
|
|
3390
|
+
"Week",
|
|
3391
|
+
"Second",
|
|
3392
|
+
"Minute",
|
|
3393
|
+
"Hour"
|
|
3394
|
+
],
|
|
3395
|
+
"type": "string"
|
|
3396
|
+
},
|
|
3397
|
+
"AspNetCoreResultsAssetResult": {
|
|
3398
|
+
"type": "object",
|
|
3399
|
+
"properties": {
|
|
3400
|
+
"id": {
|
|
3401
|
+
"type": "integer",
|
|
3402
|
+
"format": "int32"
|
|
3403
|
+
},
|
|
3404
|
+
"name": {
|
|
3405
|
+
"type": "string",
|
|
3406
|
+
"nullable": true
|
|
3407
|
+
},
|
|
3408
|
+
"host": {
|
|
3409
|
+
"$ref": "#/components/schemas/IdNameDeletedResultOfInt"
|
|
3410
|
+
},
|
|
3411
|
+
"deleted": {
|
|
3412
|
+
"type": "string",
|
|
3413
|
+
"format": "date-time",
|
|
3414
|
+
"nullable": true
|
|
3415
|
+
},
|
|
3416
|
+
"parentID": {
|
|
3417
|
+
"type": "integer",
|
|
3418
|
+
"format": "int32",
|
|
3419
|
+
"nullable": true
|
|
3420
|
+
}
|
|
3421
|
+
},
|
|
3422
|
+
"additionalProperties": false
|
|
3423
|
+
},
|
|
3424
|
+
"AspNetCoreResultsUserResult": {
|
|
3425
|
+
"type": "object",
|
|
3426
|
+
"properties": {
|
|
3427
|
+
"id": {
|
|
3428
|
+
"type": "integer",
|
|
3429
|
+
"format": "int32",
|
|
3430
|
+
"nullable": true
|
|
3431
|
+
},
|
|
3432
|
+
"firstName": {
|
|
3433
|
+
"type": "string",
|
|
3434
|
+
"nullable": true
|
|
3435
|
+
},
|
|
3436
|
+
"lastName": {
|
|
3437
|
+
"type": "string",
|
|
3438
|
+
"nullable": true
|
|
3439
|
+
},
|
|
3440
|
+
"middleName": {
|
|
3441
|
+
"type": "string",
|
|
3442
|
+
"nullable": true
|
|
3443
|
+
},
|
|
3444
|
+
"avatarUrl": {
|
|
3445
|
+
"type": "string",
|
|
3446
|
+
"nullable": true
|
|
3447
|
+
},
|
|
3448
|
+
"deleted": {
|
|
3449
|
+
"type": "string",
|
|
3450
|
+
"format": "date-time",
|
|
3451
|
+
"nullable": true
|
|
3452
|
+
}
|
|
3453
|
+
},
|
|
3454
|
+
"additionalProperties": false
|
|
3455
|
+
},
|
|
3456
|
+
"CommonResultsPeriodResult": {
|
|
3457
|
+
"type": "object",
|
|
3458
|
+
"properties": {
|
|
3459
|
+
"from": {
|
|
3460
|
+
"type": "string",
|
|
3461
|
+
"format": "date-time",
|
|
3462
|
+
"nullable": true
|
|
3463
|
+
},
|
|
3464
|
+
"till": {
|
|
3465
|
+
"type": "string",
|
|
3466
|
+
"format": "date-time",
|
|
3467
|
+
"nullable": true
|
|
3468
|
+
}
|
|
3469
|
+
},
|
|
3470
|
+
"additionalProperties": false
|
|
3471
|
+
},
|
|
3472
|
+
"IdNameDeletedResultOfInt": {
|
|
3473
|
+
"type": "object",
|
|
3474
|
+
"properties": {
|
|
3475
|
+
"id": {
|
|
3476
|
+
"type": "integer",
|
|
3477
|
+
"format": "int32"
|
|
3478
|
+
},
|
|
3479
|
+
"name": {
|
|
3480
|
+
"type": "string",
|
|
3481
|
+
"nullable": true
|
|
3482
|
+
},
|
|
3483
|
+
"deleted": {
|
|
3484
|
+
"type": "string",
|
|
3485
|
+
"format": "date-time",
|
|
3486
|
+
"nullable": true
|
|
3487
|
+
}
|
|
3488
|
+
},
|
|
3489
|
+
"additionalProperties": false
|
|
3490
|
+
},
|
|
3491
|
+
"IdNameResultOfByte": {
|
|
3492
|
+
"type": "object",
|
|
3493
|
+
"properties": {
|
|
3494
|
+
"id": {
|
|
3495
|
+
"type": "integer",
|
|
3496
|
+
"format": "int32"
|
|
3497
|
+
},
|
|
3498
|
+
"name": {
|
|
3499
|
+
"type": "string",
|
|
3500
|
+
"nullable": true
|
|
3501
|
+
}
|
|
3502
|
+
},
|
|
3503
|
+
"additionalProperties": false
|
|
3504
|
+
},
|
|
3505
|
+
"IdNameResultOfInt": {
|
|
3506
|
+
"type": "object",
|
|
3507
|
+
"properties": {
|
|
3508
|
+
"id": {
|
|
3509
|
+
"type": "integer",
|
|
3510
|
+
"format": "int32"
|
|
3511
|
+
},
|
|
3512
|
+
"name": {
|
|
3513
|
+
"type": "string",
|
|
3514
|
+
"nullable": true
|
|
3515
|
+
}
|
|
3516
|
+
},
|
|
3517
|
+
"additionalProperties": false
|
|
3518
|
+
},
|
|
3519
|
+
"IdNameResultOfShort": {
|
|
3520
|
+
"type": "object",
|
|
3521
|
+
"properties": {
|
|
3522
|
+
"id": {
|
|
3523
|
+
"type": "integer",
|
|
3524
|
+
"format": "int32"
|
|
3525
|
+
},
|
|
3526
|
+
"name": {
|
|
3527
|
+
"type": "string",
|
|
3528
|
+
"nullable": true
|
|
3529
|
+
}
|
|
3530
|
+
},
|
|
3531
|
+
"additionalProperties": false
|
|
3532
|
+
},
|
|
3533
|
+
"ResultsAssetMaintenancePlannedMaintenanceResult": {
|
|
3534
|
+
"type": "object",
|
|
3535
|
+
"properties": {
|
|
3536
|
+
"taskTemplateID": {
|
|
3537
|
+
"type": "string",
|
|
3538
|
+
"description": "Идентификатор шаблона заявки",
|
|
3539
|
+
"nullable": true
|
|
3540
|
+
},
|
|
3541
|
+
"appointment": {
|
|
3542
|
+
"type": "string",
|
|
3543
|
+
"description": "Метка времени (UTC) события",
|
|
3544
|
+
"format": "date-time"
|
|
3545
|
+
},
|
|
3546
|
+
"normalWorkingHours": {
|
|
3547
|
+
"type": "integer",
|
|
3548
|
+
"description": "Трудозатраты в нормочасах",
|
|
3549
|
+
"format": "int32"
|
|
3550
|
+
},
|
|
3551
|
+
"normalWorkingMinutes": {
|
|
3552
|
+
"type": "integer",
|
|
3553
|
+
"description": "Трудозатраты в нормоминутах",
|
|
3554
|
+
"format": "int32"
|
|
3555
|
+
},
|
|
3556
|
+
"workType": {
|
|
3557
|
+
"$ref": "#/components/schemas/IdNameResultOfShort"
|
|
3558
|
+
},
|
|
3559
|
+
"taskType": {
|
|
3560
|
+
"$ref": "#/components/schemas/IdNameResultOfByte"
|
|
3561
|
+
},
|
|
3562
|
+
"frequencyType": {
|
|
3563
|
+
"$ref": "#/components/schemas/IdNameResultOfByte"
|
|
3564
|
+
},
|
|
3565
|
+
"assetClass": {
|
|
3566
|
+
"$ref": "#/components/schemas/IdNameResultOfByte"
|
|
3567
|
+
},
|
|
3568
|
+
"assetType": {
|
|
3569
|
+
"$ref": "#/components/schemas/IdNameResultOfByte"
|
|
3570
|
+
},
|
|
3571
|
+
"asset": {
|
|
3572
|
+
"$ref": "#/components/schemas/AspNetCoreResultsAssetResult"
|
|
3573
|
+
}
|
|
3574
|
+
},
|
|
3575
|
+
"additionalProperties": false,
|
|
3576
|
+
"description": "Запланированное обслуживание"
|
|
3577
|
+
},
|
|
3578
|
+
"ResultsBaseBaseListTimeResult": {
|
|
3579
|
+
"type": "object",
|
|
3580
|
+
"properties": {
|
|
3581
|
+
"totalMinutes": {
|
|
3582
|
+
"type": "integer",
|
|
3583
|
+
"description": "общее количество минут",
|
|
3584
|
+
"format": "int32"
|
|
3585
|
+
},
|
|
3586
|
+
"averageMinutes": {
|
|
3587
|
+
"type": "number",
|
|
3588
|
+
"description": "Среднее количество минут",
|
|
3589
|
+
"format": "double"
|
|
3590
|
+
}
|
|
3591
|
+
},
|
|
3592
|
+
"additionalProperties": false,
|
|
3593
|
+
"description": "Модель по кол-ву минут"
|
|
3594
|
+
},
|
|
3595
|
+
"ResultsCompletionTimeCompletionTimeResult": {
|
|
3596
|
+
"type": "object",
|
|
3597
|
+
"properties": {
|
|
3598
|
+
"period": {
|
|
3599
|
+
"$ref": "#/components/schemas/CommonResultsPeriodResult"
|
|
3600
|
+
},
|
|
3601
|
+
"completionTime": {
|
|
3602
|
+
"$ref": "#/components/schemas/ResultsBaseBaseListTimeResult"
|
|
3603
|
+
}
|
|
3604
|
+
},
|
|
3605
|
+
"additionalProperties": false,
|
|
3606
|
+
"description": "Модель для отчетов по времени закрытию заявки"
|
|
3607
|
+
},
|
|
3608
|
+
"ResultsPowerBICustomReportsCustomReportList": {
|
|
3609
|
+
"type": "object",
|
|
3610
|
+
"properties": {
|
|
3611
|
+
"name": {
|
|
3612
|
+
"type": "string",
|
|
3613
|
+
"description": "Название отчета",
|
|
3614
|
+
"nullable": true
|
|
3615
|
+
},
|
|
3616
|
+
"reportID": {
|
|
3617
|
+
"type": "string",
|
|
3618
|
+
"description": "Идентификатор отчета",
|
|
3619
|
+
"nullable": true
|
|
3620
|
+
},
|
|
3621
|
+
"reportType": {
|
|
3622
|
+
"$ref": "#/components/schemas/IdNameResultOfByte"
|
|
3623
|
+
}
|
|
3624
|
+
},
|
|
3625
|
+
"additionalProperties": false,
|
|
3626
|
+
"description": "Результат получения списка кастомных отчетов powerbi"
|
|
3627
|
+
},
|
|
3628
|
+
"ResultsReactionTimeReactionTimeResult": {
|
|
3629
|
+
"type": "object",
|
|
3630
|
+
"properties": {
|
|
3631
|
+
"period": {
|
|
3632
|
+
"$ref": "#/components/schemas/CommonResultsPeriodResult"
|
|
3633
|
+
},
|
|
3634
|
+
"reactionTime": {
|
|
3635
|
+
"$ref": "#/components/schemas/ResultsBaseBaseListTimeResult"
|
|
3636
|
+
}
|
|
3637
|
+
},
|
|
3638
|
+
"additionalProperties": false,
|
|
3639
|
+
"description": "Модель для отчета по времени реакции на заявку"
|
|
3640
|
+
},
|
|
3641
|
+
"ResultsTaskListGroupByAssetsTasksListGroupByAssetsResult": {
|
|
3642
|
+
"type": "object",
|
|
3643
|
+
"properties": {
|
|
3644
|
+
"activeTasksCount": {
|
|
3645
|
+
"type": "integer",
|
|
3646
|
+
"description": "Количество активных заявок",
|
|
3647
|
+
"format": "int32"
|
|
3648
|
+
},
|
|
3649
|
+
"outdatedTasksCount": {
|
|
3650
|
+
"type": "integer",
|
|
3651
|
+
"description": "Количество просроченных заявок",
|
|
3652
|
+
"format": "int32"
|
|
3653
|
+
},
|
|
3654
|
+
"undefinedTasksCount": {
|
|
3655
|
+
"type": "integer",
|
|
3656
|
+
"description": "Количество неопределенных заявок",
|
|
3657
|
+
"format": "int32"
|
|
3658
|
+
},
|
|
3659
|
+
"total": {
|
|
3660
|
+
"type": "integer",
|
|
3661
|
+
"description": "Общее количество заявок",
|
|
3662
|
+
"format": "int32",
|
|
3663
|
+
"readOnly": true
|
|
3664
|
+
},
|
|
3665
|
+
"asset": {
|
|
3666
|
+
"$ref": "#/components/schemas/IdNameResultOfInt"
|
|
3667
|
+
}
|
|
3668
|
+
},
|
|
3669
|
+
"additionalProperties": false,
|
|
3670
|
+
"description": "Модель списка отчета по заявкам, сгруппированного по оборудованию"
|
|
3671
|
+
},
|
|
3672
|
+
"ResultsTaskListGroupByAssigneesTaskListGroupByAssigneesResult": {
|
|
3673
|
+
"type": "object",
|
|
3674
|
+
"properties": {
|
|
3675
|
+
"activeTasksCount": {
|
|
3676
|
+
"type": "integer",
|
|
3677
|
+
"description": "Количество активных заявок",
|
|
3678
|
+
"format": "int32"
|
|
3679
|
+
},
|
|
3680
|
+
"outdatedTasksCount": {
|
|
3681
|
+
"type": "integer",
|
|
3682
|
+
"description": "Количество просроченных заявок",
|
|
3683
|
+
"format": "int32"
|
|
3684
|
+
},
|
|
3685
|
+
"undefinedTasksCount": {
|
|
3686
|
+
"type": "integer",
|
|
3687
|
+
"description": "Количество неопределенных заявок",
|
|
3688
|
+
"format": "int32"
|
|
3689
|
+
},
|
|
3690
|
+
"total": {
|
|
3691
|
+
"type": "integer",
|
|
3692
|
+
"description": "Общее количество заявок",
|
|
3693
|
+
"format": "int32",
|
|
3694
|
+
"readOnly": true
|
|
3695
|
+
},
|
|
3696
|
+
"assignee": {
|
|
3697
|
+
"$ref": "#/components/schemas/AspNetCoreResultsUserResult"
|
|
3698
|
+
}
|
|
3699
|
+
},
|
|
3700
|
+
"additionalProperties": false,
|
|
3701
|
+
"description": "Модель списка отчета по заявкам, сгруппированного по исполнителям"
|
|
3702
|
+
},
|
|
3703
|
+
"ResultsTaskListGroupByCompaniesTaskListGroupByCompaniesResult": {
|
|
3704
|
+
"type": "object",
|
|
3705
|
+
"properties": {
|
|
3706
|
+
"activeTasksCount": {
|
|
3707
|
+
"type": "integer",
|
|
3708
|
+
"description": "Количество активных заявок",
|
|
3709
|
+
"format": "int32"
|
|
3710
|
+
},
|
|
3711
|
+
"outdatedTasksCount": {
|
|
3712
|
+
"type": "integer",
|
|
3713
|
+
"description": "Количество просроченных заявок",
|
|
3714
|
+
"format": "int32"
|
|
3715
|
+
},
|
|
3716
|
+
"undefinedTasksCount": {
|
|
3717
|
+
"type": "integer",
|
|
3718
|
+
"description": "Количество неопределенных заявок",
|
|
3719
|
+
"format": "int32"
|
|
3720
|
+
},
|
|
3721
|
+
"total": {
|
|
3722
|
+
"type": "integer",
|
|
3723
|
+
"description": "Общее количество заявок",
|
|
3724
|
+
"format": "int32",
|
|
3725
|
+
"readOnly": true
|
|
3726
|
+
},
|
|
3727
|
+
"company": {
|
|
3728
|
+
"$ref": "#/components/schemas/IdNameResultOfInt"
|
|
3729
|
+
}
|
|
3730
|
+
},
|
|
3731
|
+
"additionalProperties": false,
|
|
3732
|
+
"description": "Модель списка отчета по заявкам, сгруппированным по компаниям"
|
|
3733
|
+
},
|
|
3734
|
+
"ResultsTaskListGroupByStagesTaskListGroupByStagesResult": {
|
|
3735
|
+
"type": "object",
|
|
3736
|
+
"properties": {
|
|
3737
|
+
"activeTasksCount": {
|
|
3738
|
+
"type": "integer",
|
|
3739
|
+
"description": "Количество активных заявок",
|
|
3740
|
+
"format": "int32"
|
|
3741
|
+
},
|
|
3742
|
+
"outdatedTasksCount": {
|
|
3743
|
+
"type": "integer",
|
|
3744
|
+
"description": "Количество просроченных заявок",
|
|
3745
|
+
"format": "int32"
|
|
3746
|
+
},
|
|
3747
|
+
"undefinedTasksCount": {
|
|
3748
|
+
"type": "integer",
|
|
3749
|
+
"description": "Количество неопределенных заявок",
|
|
3750
|
+
"format": "int32"
|
|
3751
|
+
},
|
|
3752
|
+
"total": {
|
|
3753
|
+
"type": "integer",
|
|
3754
|
+
"description": "Общее количество заявок",
|
|
3755
|
+
"format": "int32",
|
|
3756
|
+
"readOnly": true
|
|
3757
|
+
},
|
|
3758
|
+
"taskStage": {
|
|
3759
|
+
"$ref": "#/components/schemas/ResultsTaskListGroupByStagesTaskStageResult"
|
|
3760
|
+
}
|
|
3761
|
+
},
|
|
3762
|
+
"additionalProperties": false,
|
|
3763
|
+
"description": "Модель списка отчета по заявкам , сгруппированным по стадиям"
|
|
3764
|
+
},
|
|
3765
|
+
"ResultsTaskListGroupByStagesTaskStageResult": {
|
|
3766
|
+
"type": "object",
|
|
3767
|
+
"properties": {
|
|
3768
|
+
"id": {
|
|
3769
|
+
"type": "integer",
|
|
3770
|
+
"format": "int32"
|
|
3771
|
+
},
|
|
3772
|
+
"name": {
|
|
3773
|
+
"type": "string",
|
|
3774
|
+
"nullable": true
|
|
3775
|
+
},
|
|
3776
|
+
"color": {
|
|
3777
|
+
"type": "string",
|
|
3778
|
+
"description": "Цвет",
|
|
3779
|
+
"nullable": true
|
|
3780
|
+
}
|
|
3781
|
+
},
|
|
3782
|
+
"additionalProperties": false,
|
|
3783
|
+
"description": "Модель данных стадиям заявки"
|
|
3784
|
+
},
|
|
3785
|
+
"ResultsTaskListGroupByWorkTypesTaskListGroupByWorkTypesResult": {
|
|
3786
|
+
"type": "object",
|
|
3787
|
+
"properties": {
|
|
3788
|
+
"activeTasksCount": {
|
|
3789
|
+
"type": "integer",
|
|
3790
|
+
"description": "Количество активных заявок",
|
|
3791
|
+
"format": "int32"
|
|
3792
|
+
},
|
|
3793
|
+
"outdatedTasksCount": {
|
|
3794
|
+
"type": "integer",
|
|
3795
|
+
"description": "Количество просроченных заявок",
|
|
3796
|
+
"format": "int32"
|
|
3797
|
+
},
|
|
3798
|
+
"undefinedTasksCount": {
|
|
3799
|
+
"type": "integer",
|
|
3800
|
+
"description": "Количество неопределенных заявок",
|
|
3801
|
+
"format": "int32"
|
|
3802
|
+
},
|
|
3803
|
+
"total": {
|
|
3804
|
+
"type": "integer",
|
|
3805
|
+
"description": "Общее количество заявок",
|
|
3806
|
+
"format": "int32",
|
|
3807
|
+
"readOnly": true
|
|
3808
|
+
},
|
|
3809
|
+
"workType": {
|
|
3810
|
+
"$ref": "#/components/schemas/IdNameResultOfInt"
|
|
3811
|
+
}
|
|
3812
|
+
},
|
|
3813
|
+
"additionalProperties": false,
|
|
3814
|
+
"description": "Модель списка отчета по заявкам, сгруппированного по видам работ"
|
|
3815
|
+
},
|
|
3816
|
+
"ResultsWorkingTimeWorkingTimeResult": {
|
|
3817
|
+
"type": "object",
|
|
3818
|
+
"properties": {
|
|
3819
|
+
"period": {
|
|
3820
|
+
"$ref": "#/components/schemas/CommonResultsPeriodResult"
|
|
3821
|
+
},
|
|
3822
|
+
"workingTime": {
|
|
3823
|
+
"$ref": "#/components/schemas/ResultsBaseBaseListTimeResult"
|
|
3824
|
+
}
|
|
3825
|
+
},
|
|
3826
|
+
"additionalProperties": false,
|
|
3827
|
+
"description": "Модель для отчетов по суммарному и среднему рабочему времени по заявкам"
|
|
3828
|
+
}
|
|
3829
|
+
},
|
|
3830
|
+
"securitySchemes": {
|
|
3831
|
+
"Bearer": {
|
|
3832
|
+
"type": "http",
|
|
3833
|
+
"description": "Введите токен для авторизации",
|
|
3834
|
+
"scheme": "Bearer",
|
|
3835
|
+
"bearerFormat": "JWT"
|
|
3836
|
+
}
|
|
3837
|
+
}
|
|
3838
|
+
},
|
|
3839
|
+
"tags": [
|
|
3840
|
+
{
|
|
3841
|
+
"name": "AssetMaintenance",
|
|
3842
|
+
"description": "Выгрузка по обслуживанию объъектов"
|
|
3843
|
+
},
|
|
3844
|
+
{
|
|
3845
|
+
"name": "CompletionTime",
|
|
3846
|
+
"description": "Контроллер управления отчетом по суммарному и среднему времени отработки заявок, сгруппированным по периоду"
|
|
3847
|
+
},
|
|
3848
|
+
{
|
|
3849
|
+
"name": "PowerBICustomReports",
|
|
3850
|
+
"description": "Контроллер управления кастомными отчетами PowerBI"
|
|
3851
|
+
},
|
|
3852
|
+
{
|
|
3853
|
+
"name": "ReactionTime",
|
|
3854
|
+
"description": "Контроллер управления отчетом по суммарному и среднему времени реакции по заявкам, сгруппированным по периоду"
|
|
3855
|
+
},
|
|
3856
|
+
{
|
|
3857
|
+
"name": "TasksByAssets",
|
|
3858
|
+
"description": "Контроллер управления отчетом по заявкам, сгруппированным по оборудованию"
|
|
3859
|
+
},
|
|
3860
|
+
{
|
|
3861
|
+
"name": "TasksByAssignees",
|
|
3862
|
+
"description": "Контроллер управления отчетом по заявкам, сгруппированным по исполнителям"
|
|
3863
|
+
},
|
|
3864
|
+
{
|
|
3865
|
+
"name": "TasksByCompanies",
|
|
3866
|
+
"description": "Контроллер управления отчетом по заявкам, сгруппированным по компаниям"
|
|
3867
|
+
},
|
|
3868
|
+
{
|
|
3869
|
+
"name": "TasksByStages",
|
|
3870
|
+
"description": "Контроллер управления отчетом по заявкам сгруппированным по стадиям"
|
|
3871
|
+
},
|
|
3872
|
+
{
|
|
3873
|
+
"name": "TasksByWorkTypes",
|
|
3874
|
+
"description": "Заявки по видам работ"
|
|
3875
|
+
},
|
|
3876
|
+
{
|
|
3877
|
+
"name": "WorkingTime",
|
|
3878
|
+
"description": "Контроллер управления отчетом по суммарному и среднему отработанному времени по заявокам, сгруппированным по периоду"
|
|
3879
|
+
},
|
|
3880
|
+
{
|
|
3881
|
+
"name": "AssetMaintenance",
|
|
3882
|
+
"description": "Выгрузка по обслуживанию объъектов"
|
|
3883
|
+
},
|
|
3884
|
+
{
|
|
3885
|
+
"name": "CompletionTime",
|
|
3886
|
+
"description": "Контроллер управления отчетом по суммарному и среднему времени отработки заявок, сгруппированным по периоду"
|
|
3887
|
+
},
|
|
3888
|
+
{
|
|
3889
|
+
"name": "PowerBICustomReports",
|
|
3890
|
+
"description": "Контроллер управления кастомными отчетами PowerBI"
|
|
3891
|
+
},
|
|
3892
|
+
{
|
|
3893
|
+
"name": "ReactionTime",
|
|
3894
|
+
"description": "Контроллер управления отчетом по суммарному и среднему времени реакции по заявкам, сгруппированным по периоду"
|
|
3895
|
+
},
|
|
3896
|
+
{
|
|
3897
|
+
"name": "TasksByAssets",
|
|
3898
|
+
"description": "Контроллер управления отчетом по заявкам, сгруппированным по оборудованию"
|
|
3899
|
+
},
|
|
3900
|
+
{
|
|
3901
|
+
"name": "TasksByAssignees",
|
|
3902
|
+
"description": "Контроллер управления отчетом по заявкам, сгруппированным по исполнителям"
|
|
3903
|
+
},
|
|
3904
|
+
{
|
|
3905
|
+
"name": "TasksByCompanies",
|
|
3906
|
+
"description": "Контроллер управления отчетом по заявкам, сгруппированным по компаниям"
|
|
3907
|
+
},
|
|
3908
|
+
{
|
|
3909
|
+
"name": "TasksByStages",
|
|
3910
|
+
"description": "Контроллер управления отчетом по заявкам сгруппированным по стадиям"
|
|
3911
|
+
},
|
|
3912
|
+
{
|
|
3913
|
+
"name": "TasksByWorkTypes",
|
|
3914
|
+
"description": "Заявки по видам работ"
|
|
3915
|
+
},
|
|
3916
|
+
{
|
|
3917
|
+
"name": "WorkingTime",
|
|
3918
|
+
"description": "Контроллер управления отчетом по суммарному и среднему отработанному времени по заявокам, сгруппированным по периоду"
|
|
3919
|
+
}
|
|
3920
|
+
]
|
|
3921
|
+
}
|