nayota-show-sdk 1.3.99 → 1.3.100
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/api/appRouter.js +1 -2
- package/api/application.js +1 -2
- package/api/attendanceRecord.js +6 -6
- package/api/inspectionPoints.js +1 -2
- package/api/inspectionTask.js +6 -7
- package/api/line.js +4 -5
- package/api/maintenancePlan.js +6 -6
- package/api/maintenanceRecord.js +2 -2
- package/api/reservation.js +103 -32
- package/api/reservation.test.js +94 -0
- package/api/scadaProject.js +3 -3
- package/api/sensor.js +3 -3
- package/api/sensorStatusConfig.js +2 -2
- package/api/workSchedule.js +23 -11
- package/package.json +1 -1
package/api/appRouter.js
CHANGED
|
@@ -154,7 +154,7 @@ import { requestShow } from '../utils'
|
|
|
154
154
|
]
|
|
155
155
|
}
|
|
156
156
|
],
|
|
157
|
-
"creator": "
|
|
157
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
158
158
|
"createdAt": "2022-12-06T04:24:23.940Z",
|
|
159
159
|
"updatedAt": "2023-12-22T02:51:01.292Z",
|
|
160
160
|
"__v": 84
|
|
@@ -254,4 +254,3 @@ export default {
|
|
|
254
254
|
deleteMany,
|
|
255
255
|
getOne
|
|
256
256
|
}
|
|
257
|
-
|
package/api/application.js
CHANGED
|
@@ -23,7 +23,7 @@ import { requestShow } from '../utils'
|
|
|
23
23
|
"icon": "能耗分析",
|
|
24
24
|
"color": "#213DF3",
|
|
25
25
|
"url": "https://ss.ningbomart.com/analytics",
|
|
26
|
-
"creator": "
|
|
26
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
27
27
|
"createdAt": "2023-11-28T06:11:42.997Z",
|
|
28
28
|
"updatedAt": "2023-11-28T06:11:42.997Z",
|
|
29
29
|
"__v": 0
|
|
@@ -125,4 +125,3 @@ export default {
|
|
|
125
125
|
deleteMany,
|
|
126
126
|
getOne
|
|
127
127
|
}
|
|
128
|
-
|
package/api/attendanceRecord.js
CHANGED
|
@@ -27,7 +27,7 @@ import { requestShow } from '../utils'
|
|
|
27
27
|
* @property {boolean} isOvertime - 是否加班
|
|
28
28
|
* @property {number} [overtimeDuration] - 加班时长,单位分钟
|
|
29
29
|
* @property {string} [remark] - 备注
|
|
30
|
-
* @property {string} [creator] - 创建者
|
|
30
|
+
* @property {string} [creator] - 创建者 UUID
|
|
31
31
|
* @property {Date} createdAt - 创建时间
|
|
32
32
|
* @property {Date} updatedAt - 更新时间
|
|
33
33
|
* @example
|
|
@@ -47,7 +47,7 @@ import { requestShow } from '../utils'
|
|
|
47
47
|
* "isOvertime": false,
|
|
48
48
|
* "overtimeDuration": 0,
|
|
49
49
|
* "remark": "正常出勤",
|
|
50
|
-
* "creator": "
|
|
50
|
+
* "creator": "11111111-1111-4111-8111-111111111111",
|
|
51
51
|
* "createdAt": "2026-03-31T08:05:00.000Z",
|
|
52
52
|
* "updatedAt": "2026-03-31T08:05:00.000Z"
|
|
53
53
|
* }
|
|
@@ -60,7 +60,7 @@ import { requestShow } from '../utils'
|
|
|
60
60
|
* @property {'week'|'month'|'year'} [dimension] - 查询维度,不传时由服务端按时间跨度自动推断
|
|
61
61
|
* @property {string} [user] - 用户id
|
|
62
62
|
* @property {number} [shiftType] - 班次类型,1 早班,2 中班,3 晚班
|
|
63
|
-
* @property {string} [creator] - 创建者
|
|
63
|
+
* @property {string} [creator] - 创建者 UUID
|
|
64
64
|
*/
|
|
65
65
|
|
|
66
66
|
/**
|
|
@@ -147,7 +147,7 @@ export function violationStatistics(query) {
|
|
|
147
147
|
* @param {Object} query - 查询参数
|
|
148
148
|
* @param {number} query.year - 统计年份,例如 2026
|
|
149
149
|
* @param {number} [query.month] - 统计月份,1-12;不传表示查询整年
|
|
150
|
-
* @param {string} [query.creator] - 创建者
|
|
150
|
+
* @param {string} [query.creator] - 创建者 UUID
|
|
151
151
|
* @param {string} [query.user] - 用户id
|
|
152
152
|
* @param {number} [query.shiftType] - 班次类型,1 早班,2 中班,3 晚班
|
|
153
153
|
* @returns {number} code - 返回码,0 表示成功
|
|
@@ -172,7 +172,7 @@ export function attendanceStatistics(query) {
|
|
|
172
172
|
* @param {Object} query - 查询参数
|
|
173
173
|
* @param {number} query.year - 统计年份,例如 2026
|
|
174
174
|
* @param {number} [query.month] - 统计月份,1-12;不传表示查询整年
|
|
175
|
-
* @param {string} [query.creator] - 创建者
|
|
175
|
+
* @param {string} [query.creator] - 创建者 UUID
|
|
176
176
|
* @param {string} [query.user] - 用户id
|
|
177
177
|
* @returns {number} code - 返回码,0 表示成功
|
|
178
178
|
* @returns {Object} data - 分析结果
|
|
@@ -192,7 +192,7 @@ export function arrivalComplianceAnalysis(query) {
|
|
|
192
192
|
* @param {Object} query - 查询参数
|
|
193
193
|
* @param {number} query.year - 统计年份,例如 2026
|
|
194
194
|
* @param {number} [query.month] - 统计月份,1-12;不传表示查询整年
|
|
195
|
-
* @param {string} [query.creator] - 创建者
|
|
195
|
+
* @param {string} [query.creator] - 创建者 UUID
|
|
196
196
|
* @param {string} [query.user] - 用户id
|
|
197
197
|
* @returns {number} code - 返回码,0 表示成功
|
|
198
198
|
* @returns {Object} data - 统计结果
|
package/api/inspectionPoints.js
CHANGED
|
@@ -20,7 +20,7 @@ import { requestShow } from '../utils'
|
|
|
20
20
|
{
|
|
21
21
|
"_id": "67073bfe463d6e00099becdd",
|
|
22
22
|
"name": "1号位置",
|
|
23
|
-
"creator": "
|
|
23
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
24
24
|
"createdAt": "2024-10-10T02:29:18.026Z",
|
|
25
25
|
"updatedAt": "2024-10-10T02:29:18.026Z",
|
|
26
26
|
"__v": 0
|
|
@@ -121,4 +121,3 @@ export default {
|
|
|
121
121
|
deleteMany,
|
|
122
122
|
getOne
|
|
123
123
|
}
|
|
124
|
-
|
package/api/inspectionTask.js
CHANGED
|
@@ -35,12 +35,12 @@ import { requestShow } from '../utils'
|
|
|
35
35
|
"_id": "674e7a4de81aed0009fecddb",
|
|
36
36
|
"name": "测试路线",
|
|
37
37
|
"status": true,
|
|
38
|
-
"creator": "
|
|
38
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
39
39
|
"createdAt": "2024-12-03T03:26:05.382Z",
|
|
40
40
|
"updatedAt": "2024-12-03T03:26:05.382Z",
|
|
41
41
|
"__v": 0
|
|
42
42
|
},
|
|
43
|
-
"creator": "
|
|
43
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
44
44
|
"__v": 0,
|
|
45
45
|
"createdAt": "2024-12-03T03:26:19.597Z",
|
|
46
46
|
"updatedAt": "2024-12-03T03:26:19.597Z"
|
|
@@ -61,12 +61,12 @@ import { requestShow } from '../utils'
|
|
|
61
61
|
"_id": "674e7a4de81aed0009fecddb",
|
|
62
62
|
"name": "测试路线",
|
|
63
63
|
"status": true,
|
|
64
|
-
"creator": "
|
|
64
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
65
65
|
"createdAt": "2024-12-03T03:26:05.382Z",
|
|
66
66
|
"updatedAt": "2024-12-03T03:26:05.382Z",
|
|
67
67
|
"__v": 0
|
|
68
68
|
},
|
|
69
|
-
"creator": "
|
|
69
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
70
70
|
"__v": 0,
|
|
71
71
|
"createdAt": "2024-12-03T03:26:19.622Z",
|
|
72
72
|
"updatedAt": "2024-12-03T03:26:19.622Z"
|
|
@@ -87,12 +87,12 @@ import { requestShow } from '../utils'
|
|
|
87
87
|
"_id": "674e7a4de81aed0009fecddb",
|
|
88
88
|
"name": "测试路线",
|
|
89
89
|
"status": true,
|
|
90
|
-
"creator": "
|
|
90
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
91
91
|
"createdAt": "2024-12-03T03:26:05.382Z",
|
|
92
92
|
"updatedAt": "2024-12-03T03:26:05.382Z",
|
|
93
93
|
"__v": 0
|
|
94
94
|
},
|
|
95
|
-
"creator": "
|
|
95
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
96
96
|
"__v": 0,
|
|
97
97
|
"createdAt": "2024-12-03T03:26:19.633Z",
|
|
98
98
|
"updatedAt": "2024-12-03T03:26:19.633Z"
|
|
@@ -230,4 +230,3 @@ export default {
|
|
|
230
230
|
refreshProcedure,
|
|
231
231
|
delProcedure
|
|
232
232
|
}
|
|
233
|
-
|
package/api/line.js
CHANGED
|
@@ -21,7 +21,7 @@ import { requestShow } from '../utils'
|
|
|
21
21
|
"_id": "674e7a4de81aed0009fecddb",
|
|
22
22
|
"name": "测试路线",
|
|
23
23
|
"status": true,
|
|
24
|
-
"creator": "
|
|
24
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
25
25
|
"createdAt": "2024-12-03T03:26:05.382Z",
|
|
26
26
|
"updatedAt": "2024-12-03T03:26:05.382Z",
|
|
27
27
|
"__v": 0
|
|
@@ -35,7 +35,7 @@ import { requestShow } from '../utils'
|
|
|
35
35
|
"_id": "674e7a4de81aed0009fecddb",
|
|
36
36
|
"name": "测试路线",
|
|
37
37
|
"status": true,
|
|
38
|
-
"creator": "
|
|
38
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
39
39
|
"createdAt": "2024-12-03T03:26:05.382Z",
|
|
40
40
|
"updatedAt": "2024-12-03T03:26:05.382Z",
|
|
41
41
|
"__v": 0
|
|
@@ -56,7 +56,7 @@ import { requestShow } from '../utils'
|
|
|
56
56
|
"_id": "674e7a4de81aed0009fecddb",
|
|
57
57
|
"name": "测试路线",
|
|
58
58
|
"status": true,
|
|
59
|
-
"creator": "
|
|
59
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
60
60
|
"createdAt": "2024-12-03T03:26:05.382Z",
|
|
61
61
|
"updatedAt": "2024-12-03T03:26:05.382Z",
|
|
62
62
|
"__v": 0
|
|
@@ -72,7 +72,7 @@ import { requestShow } from '../utils'
|
|
|
72
72
|
"_id": "674e7a4de81aed0009fecddb",
|
|
73
73
|
"name": "测试路线",
|
|
74
74
|
"status": true,
|
|
75
|
-
"creator": "
|
|
75
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
76
76
|
"createdAt": "2024-12-03T03:26:05.382Z",
|
|
77
77
|
"updatedAt": "2024-12-03T03:26:05.382Z",
|
|
78
78
|
"__v": 0
|
|
@@ -160,4 +160,3 @@ export default {
|
|
|
160
160
|
deleteMany,
|
|
161
161
|
getOne
|
|
162
162
|
}
|
|
163
|
-
|
package/api/maintenancePlan.js
CHANGED
|
@@ -20,7 +20,7 @@ import { requestShow } from '../utils'
|
|
|
20
20
|
* @property {Date} endTime - 结束时间
|
|
21
21
|
* @property {Date} [planFinishTime] - 计划完成时间
|
|
22
22
|
* @property {string} remark - 备注
|
|
23
|
-
* @property {string} creator - 创建者
|
|
23
|
+
* @property {string} creator - 创建者 UUID
|
|
24
24
|
* @property {Date} createdAt - 创建日期
|
|
25
25
|
* @property {Date} updatedAt - 更新日期
|
|
26
26
|
* @example
|
|
@@ -32,7 +32,7 @@ import { requestShow } from '../utils'
|
|
|
32
32
|
* "startTime": "2024-11-29T02:07:02.042Z",
|
|
33
33
|
* "endTime": "2024-11-29T12:07:02.042Z",
|
|
34
34
|
* "remark": "定期维保",
|
|
35
|
-
* "creator": "
|
|
35
|
+
* "creator": "11111111-1111-4111-8111-111111111111",
|
|
36
36
|
* "createdAt": "2024-11-29T02:07:02.042Z",
|
|
37
37
|
* "updatedAt": "2024-11-29T02:07:02.042Z"
|
|
38
38
|
* }
|
|
@@ -145,7 +145,7 @@ export function deleteMany(ids) {
|
|
|
145
145
|
* @param {Object} query - 查询参数
|
|
146
146
|
* @param {number} query.year - 统计年份,例如 2026
|
|
147
147
|
* @param {number} [query.month] - 统计月份,1-12;不传表示查询整年
|
|
148
|
-
* @param {string} [query.creator] - 创建者
|
|
148
|
+
* @param {string} [query.creator] - 创建者 UUID
|
|
149
149
|
* @returns {number} code - 返回码,0表示成功
|
|
150
150
|
* @returns {Object} data - 统计结果
|
|
151
151
|
*/
|
|
@@ -162,7 +162,7 @@ export function analysisStatistics(query) {
|
|
|
162
162
|
* @param {Object} query - 查询参数
|
|
163
163
|
* @param {number} query.year - 统计年份,例如 2026
|
|
164
164
|
* @param {number} [query.month] - 统计月份,1-12;不传表示查询整年
|
|
165
|
-
* @param {string} [query.creator] - 创建者
|
|
165
|
+
* @param {string} [query.creator] - 创建者 UUID
|
|
166
166
|
* @returns {number} code - 返回码,0表示成功
|
|
167
167
|
* @returns {Object} data - 分析结果
|
|
168
168
|
* @returns {Object} data.summary - 汇总覆盖情况
|
|
@@ -181,7 +181,7 @@ export function coverageAnalysis(query) {
|
|
|
181
181
|
* @param {Object} query - 查询参数
|
|
182
182
|
* @param {number} query.year - 统计年份,例如 2026
|
|
183
183
|
* @param {number} [query.month] - 统计月份,1-12;不传表示查询整年
|
|
184
|
-
* @param {string} [query.creator] - 创建者
|
|
184
|
+
* @param {string} [query.creator] - 创建者 UUID
|
|
185
185
|
* @returns {number} code - 返回码,0表示成功
|
|
186
186
|
* @returns {Object} data - 趋势统计结果
|
|
187
187
|
*/
|
|
@@ -198,7 +198,7 @@ export function completionStatistics(query) {
|
|
|
198
198
|
* @param {Object} query - 查询参数
|
|
199
199
|
* @param {number} query.year - 统计年份,例如 2026
|
|
200
200
|
* @param {number} [query.month] - 统计月份,1-12;不传表示查询整年
|
|
201
|
-
* @param {string} [query.creator] - 创建者
|
|
201
|
+
* @param {string} [query.creator] - 创建者 UUID
|
|
202
202
|
* @returns {number} code - 返回码,0表示成功
|
|
203
203
|
* @returns {Object} data - 风险趋势结果
|
|
204
204
|
*/
|
package/api/maintenanceRecord.js
CHANGED
|
@@ -26,7 +26,7 @@ import { requestShow } from '../utils'
|
|
|
26
26
|
* @property {number} processingTime - 处理时间时间戳
|
|
27
27
|
* @property {number} disposalDuration - 处置时长
|
|
28
28
|
* @property {number} noticeWay - 通知方式
|
|
29
|
-
* @property {string} creator - 创建者
|
|
29
|
+
* @property {string} creator - 创建者 UUID
|
|
30
30
|
* @property {string} recall - 唯一码
|
|
31
31
|
* @property {number} type - 类型
|
|
32
32
|
* @property {Date} createdAt - 创建时间
|
|
@@ -45,7 +45,7 @@ import { requestShow } from '../utils'
|
|
|
45
45
|
* "processingResult": 3,
|
|
46
46
|
* "disposalDuration": 0,
|
|
47
47
|
* "noticeWay": 3,
|
|
48
|
-
* "creator": "
|
|
48
|
+
* "creator": "11111111-1111-4111-8111-111111111111",
|
|
49
49
|
* "recall": "maintenance-test-001",
|
|
50
50
|
* "type": 3,
|
|
51
51
|
* "createdAt": "2026-03-11T00:00:00.000Z",
|
package/api/reservation.js
CHANGED
|
@@ -1,4 +1,67 @@
|
|
|
1
|
+
import urlcfg from '../config/urlcfg'
|
|
1
2
|
import { requestShow } from '../utils'
|
|
3
|
+
|
|
4
|
+
function isPlainObject(value) {
|
|
5
|
+
return Object.prototype.toString.call(value) === '[object Object]'
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
function mapReservationRequestFields(value) {
|
|
9
|
+
if (!urlcfg.isV2() || !isPlainObject(value)) {
|
|
10
|
+
return value
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const next = { ...value }
|
|
14
|
+
if (next.space === undefined && Object.prototype.hasOwnProperty.call(next, 'area')) {
|
|
15
|
+
next.space = next.area
|
|
16
|
+
}
|
|
17
|
+
if (next.hierarchy === undefined && Object.prototype.hasOwnProperty.call(next, 'depart')) {
|
|
18
|
+
next.hierarchy = next.depart
|
|
19
|
+
}
|
|
20
|
+
delete next.area
|
|
21
|
+
delete next.depart
|
|
22
|
+
return next
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function mapReservationEntity(entity) {
|
|
26
|
+
if (!urlcfg.isV2() || !isPlainObject(entity)) {
|
|
27
|
+
return entity
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return {
|
|
31
|
+
...entity,
|
|
32
|
+
area: entity.area !== undefined ? entity.area : entity.space,
|
|
33
|
+
depart: entity.depart !== undefined ? entity.depart : entity.hierarchy
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function mapReservationResponse(response) {
|
|
38
|
+
if (!urlcfg.isV2() || !isPlainObject(response)) {
|
|
39
|
+
return response
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (Array.isArray(response.rows)) {
|
|
43
|
+
return {
|
|
44
|
+
...response,
|
|
45
|
+
rows: response.rows.map(mapReservationEntity)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (response.data !== undefined) {
|
|
50
|
+
return {
|
|
51
|
+
...response,
|
|
52
|
+
data: Array.isArray(response.data)
|
|
53
|
+
? response.data.map(mapReservationEntity)
|
|
54
|
+
: mapReservationEntity(response.data)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return mapReservationEntity(response)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async function requestReservation(config) {
|
|
62
|
+
const response = await requestShow(config)
|
|
63
|
+
return mapReservationResponse(response)
|
|
64
|
+
}
|
|
2
65
|
/**
|
|
3
66
|
* @file 预约记录api
|
|
4
67
|
* @module 预约记录接口
|
|
@@ -12,32 +75,34 @@ import { requestShow } from '../utils'
|
|
|
12
75
|
|
|
13
76
|
/**
|
|
14
77
|
* @typedef {Object} Reservation - 预约记录
|
|
15
|
-
* @property {string} _id - 预约记录
|
|
78
|
+
* @property {string} _id - 预约记录 UUID
|
|
16
79
|
* @property {string} reserverName - 预约人名称
|
|
17
80
|
* @property {Date} startTime - 开始时间
|
|
18
81
|
* @property {Date} endTime - 结束时间
|
|
19
|
-
* @property {string}
|
|
20
|
-
* @property {string}
|
|
82
|
+
* @property {string} space - 空间 UUID,引用外部配置服务空间
|
|
83
|
+
* @property {string} hierarchy - 层级 UUID,引用外部配置服务层级
|
|
84
|
+
* @property {string} [area] - v2 SDK 兼容字段,映射自 space
|
|
85
|
+
* @property {string} [depart] - v2 SDK 兼容字段,映射自 hierarchy
|
|
21
86
|
* @property {string} originalRemark - 预约备注
|
|
22
87
|
* @property {string} approverRemark - 审批备注
|
|
23
88
|
* @property {string} approver - 审批人
|
|
24
89
|
* @property {Date} approveTime - 审批时间
|
|
25
90
|
* @property {number} approveStatus - 审批状态(0-待审批,1-已批准,2-已拒绝)
|
|
26
|
-
* @property {string} creator - 创建者
|
|
91
|
+
* @property {string} creator - 创建者 UUID
|
|
27
92
|
* @example
|
|
28
93
|
* {
|
|
29
|
-
"_id": "
|
|
94
|
+
"_id": "11111111-1111-4111-8111-111111111111",
|
|
30
95
|
"reserverName": "张三",
|
|
31
96
|
"startTime": "2025-03-07T08:00:00.000Z",
|
|
32
97
|
"endTime": "2025-03-07T10:00:00.000Z",
|
|
33
|
-
"
|
|
34
|
-
"
|
|
98
|
+
"space": "22222222-2222-4222-8222-222222222222",
|
|
99
|
+
"hierarchy": "55555555-5555-4555-8555-555555555555",
|
|
35
100
|
"originalRemark": "项目讨论会议",
|
|
36
101
|
"approverRemark": "审批备注",
|
|
37
102
|
"approver": "李四",
|
|
38
103
|
"approveTime": "2025-03-06T10:00:00.000Z",
|
|
39
104
|
"approveStatus": 1,
|
|
40
|
-
"creator": "
|
|
105
|
+
"creator": "33333333-3333-4333-8333-333333333333",
|
|
41
106
|
"createdAt": "2025-03-06T09:00:00.000Z",
|
|
42
107
|
"updatedAt": "2025-03-06T10:00:00.000Z"
|
|
43
108
|
}
|
|
@@ -49,8 +114,10 @@ import { requestShow } from '../utils'
|
|
|
49
114
|
* @param {Object} query - 请求对象
|
|
50
115
|
* @param {number} query.page - 页码
|
|
51
116
|
* @param {number} query.limit - 每页数量
|
|
52
|
-
* @param {string} [query.
|
|
53
|
-
* @param {string} [query.
|
|
117
|
+
* @param {string} [query.space] - 按空间 UUID 筛选
|
|
118
|
+
* @param {string} [query.hierarchy] - 按层级 UUID 筛选
|
|
119
|
+
* @param {string} [query.area] - v2 兼容别名,发送时映射为 space
|
|
120
|
+
* @param {string} [query.depart] - v2 兼容别名,发送时映射为 hierarchy
|
|
54
121
|
* @param {number} [query.approveStatus] - 按审批状态筛选
|
|
55
122
|
* @param {string} [query.startDate] - 开始日期筛选
|
|
56
123
|
* @param {string} [query.endDate] - 结束日期筛选
|
|
@@ -58,7 +125,7 @@ import { requestShow } from '../utils'
|
|
|
58
125
|
* {
|
|
59
126
|
* "page": 1,
|
|
60
127
|
* "limit": 10,
|
|
61
|
-
* "
|
|
128
|
+
* "space": "22222222-2222-4222-8222-222222222222",
|
|
62
129
|
* "approveStatus": 1
|
|
63
130
|
* }
|
|
64
131
|
* @returns {number} code - 返回码,0表示成功
|
|
@@ -73,10 +140,10 @@ import { requestShow } from '../utils'
|
|
|
73
140
|
}
|
|
74
141
|
*/
|
|
75
142
|
export function list(query) {
|
|
76
|
-
return
|
|
143
|
+
return requestReservation({
|
|
77
144
|
url: '/reservations',
|
|
78
145
|
method: 'get',
|
|
79
|
-
params: query
|
|
146
|
+
params: mapReservationRequestFields(query)
|
|
80
147
|
})
|
|
81
148
|
}
|
|
82
149
|
|
|
@@ -87,10 +154,10 @@ export function list(query) {
|
|
|
87
154
|
* @returns {string} data - 新增成功的数据 见表结构reservation定义
|
|
88
155
|
*/
|
|
89
156
|
export function create(data) {
|
|
90
|
-
return
|
|
157
|
+
return requestReservation({
|
|
91
158
|
url: '/reservations',
|
|
92
159
|
method: 'post',
|
|
93
|
-
data
|
|
160
|
+
data: mapReservationRequestFields(data)
|
|
94
161
|
})
|
|
95
162
|
}
|
|
96
163
|
|
|
@@ -101,7 +168,7 @@ export function create(data) {
|
|
|
101
168
|
* @returns {Object} data - 预约记录对象 见表结构reservation定义
|
|
102
169
|
*/
|
|
103
170
|
export function getOne(id) {
|
|
104
|
-
return
|
|
171
|
+
return requestReservation({
|
|
105
172
|
url: `/reservations/${id}`,
|
|
106
173
|
method: 'get'
|
|
107
174
|
})
|
|
@@ -114,10 +181,10 @@ export function getOne(id) {
|
|
|
114
181
|
* @returns {string} data - 修改成功的数据 见表结构reservation定义
|
|
115
182
|
*/
|
|
116
183
|
export function updateOne(data) {
|
|
117
|
-
return
|
|
184
|
+
return requestReservation({
|
|
118
185
|
url: `/reservations/${data._id}`,
|
|
119
186
|
method: 'put',
|
|
120
|
-
data
|
|
187
|
+
data: mapReservationRequestFields(data)
|
|
121
188
|
})
|
|
122
189
|
}
|
|
123
190
|
|
|
@@ -128,7 +195,7 @@ export function updateOne(data) {
|
|
|
128
195
|
* @returns {string} data - 删除成功的数据 见表结构reservation定义
|
|
129
196
|
*/
|
|
130
197
|
export function deleteOne(id) {
|
|
131
|
-
return
|
|
198
|
+
return requestReservation({
|
|
132
199
|
url: `/reservations/${id}`,
|
|
133
200
|
method: 'delete'
|
|
134
201
|
})
|
|
@@ -140,7 +207,7 @@ export function deleteOne(id) {
|
|
|
140
207
|
* @returns {number} code - 返回码,0表示成功
|
|
141
208
|
*/
|
|
142
209
|
export function deleteMany(ids) {
|
|
143
|
-
return
|
|
210
|
+
return requestReservation({
|
|
144
211
|
url: '/reservations',
|
|
145
212
|
method: 'delete',
|
|
146
213
|
data: ids // delete传递主体要包含在data里
|
|
@@ -151,14 +218,15 @@ export function deleteMany(ids) {
|
|
|
151
218
|
/**
|
|
152
219
|
* 查询当前时间下特定层级的预约记录及关联设备
|
|
153
220
|
* @param {Object} query - 查询选项
|
|
154
|
-
* @param {string} query.
|
|
221
|
+
* @param {string} query.hierarchy - 层级 UUID
|
|
222
|
+
* @param {string} [query.depart] - v2 兼容别名,发送时映射为 hierarchy
|
|
155
223
|
* @returns {Object} result - 返回结果
|
|
156
224
|
* @returns {number} result.code - 返回码,0表示成功
|
|
157
225
|
* @returns {Array} result.rows - 预约记录数组,每个记录包含关联设备
|
|
158
226
|
* @example
|
|
159
227
|
* // 请求示例
|
|
160
228
|
* {
|
|
161
|
-
* "
|
|
229
|
+
* "hierarchy": "55555555-5555-4555-8555-555555555555"
|
|
162
230
|
* }
|
|
163
231
|
*
|
|
164
232
|
* // 返回示例
|
|
@@ -167,26 +235,26 @@ export function deleteMany(ids) {
|
|
|
167
235
|
* "rows": [
|
|
168
236
|
* {
|
|
169
237
|
* // 预约记录信息,见表结构reservation定义
|
|
170
|
-
* "_id": "
|
|
238
|
+
* "_id": "11111111-1111-4111-8111-111111111111",
|
|
171
239
|
* "reserverName": "张三",
|
|
172
240
|
* "startTime": "2025-03-07T08:00:00.000Z",
|
|
173
241
|
* "endTime": "2025-03-07T10:00:00.000Z",
|
|
174
|
-
* "
|
|
175
|
-
* "
|
|
242
|
+
* "space": "22222222-2222-4222-8222-222222222222",
|
|
243
|
+
* "hierarchy": "55555555-5555-4555-8555-555555555555",
|
|
176
244
|
* "remark": "项目讨论会议",
|
|
177
245
|
* "approveStatus": 1,
|
|
178
|
-
* "creator": "
|
|
246
|
+
* "creator": "33333333-3333-4333-8333-333333333333",
|
|
179
247
|
* // 关联区域列表
|
|
180
248
|
* "areas": [{
|
|
181
|
-
* "_id": "
|
|
249
|
+
* "_id": "22222222-2222-4222-8222-222222222222",
|
|
182
250
|
* "name": "会议室"
|
|
183
251
|
* }],
|
|
184
252
|
* // 关联设备列表
|
|
185
253
|
* "devices": [
|
|
186
254
|
* {
|
|
187
|
-
* "_id": "
|
|
255
|
+
* "_id": "44444444-4444-4444-8444-444444444444",
|
|
188
256
|
* "name": "会议室投影仪",
|
|
189
|
-
* "area": "
|
|
257
|
+
* "area": "22222222-2222-4222-8222-222222222222",
|
|
190
258
|
* "status": 1
|
|
191
259
|
* // 其他设备属性
|
|
192
260
|
* }
|
|
@@ -196,10 +264,13 @@ export function deleteMany(ids) {
|
|
|
196
264
|
* }
|
|
197
265
|
*/
|
|
198
266
|
export function getReservationsByDepart(query) {
|
|
199
|
-
|
|
200
|
-
|
|
267
|
+
const source = query || {}
|
|
268
|
+
const params = mapReservationRequestFields(source)
|
|
269
|
+
const hierarchy = params.hierarchy || params.depart || source.hierarchyId || source.departId
|
|
270
|
+
return requestReservation({
|
|
271
|
+
url: `/reservations/current/${hierarchy}`,
|
|
201
272
|
method: 'get',
|
|
202
|
-
params
|
|
273
|
+
params
|
|
203
274
|
})
|
|
204
275
|
}
|
|
205
276
|
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
jest.mock('../utils', () => ({
|
|
2
|
+
requestShow: jest.fn()
|
|
3
|
+
}))
|
|
4
|
+
|
|
5
|
+
const urlcfg = require('../config/urlcfg').default
|
|
6
|
+
const { requestShow } = require('../utils')
|
|
7
|
+
const reservation = require('./reservation').default
|
|
8
|
+
|
|
9
|
+
describe('reservation api v2 field compatibility', () => {
|
|
10
|
+
const originalVersion = urlcfg.version
|
|
11
|
+
|
|
12
|
+
afterEach(() => {
|
|
13
|
+
urlcfg.version = originalVersion
|
|
14
|
+
jest.clearAllMocks()
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
test('keeps legacy area/depart payload in v1', async () => {
|
|
18
|
+
const query = {
|
|
19
|
+
area: 'space-legacy',
|
|
20
|
+
depart: 'hierarchy-legacy'
|
|
21
|
+
}
|
|
22
|
+
requestShow.mockResolvedValue({ code: 0, rows: [] })
|
|
23
|
+
|
|
24
|
+
await reservation.list(query)
|
|
25
|
+
|
|
26
|
+
expect(requestShow).toHaveBeenCalledWith({
|
|
27
|
+
url: '/reservations',
|
|
28
|
+
method: 'get',
|
|
29
|
+
params: query
|
|
30
|
+
})
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
test('maps legacy area/depart request fields to space/hierarchy in v2', async () => {
|
|
34
|
+
urlcfg.version = 'v2'
|
|
35
|
+
const data = {
|
|
36
|
+
_id: 'reservation-1',
|
|
37
|
+
area: '22222222-2222-4222-8222-222222222222',
|
|
38
|
+
depart: '55555555-5555-4555-8555-555555555555',
|
|
39
|
+
approveStatus: 1
|
|
40
|
+
}
|
|
41
|
+
requestShow.mockResolvedValue({ code: 0, data: {} })
|
|
42
|
+
|
|
43
|
+
await reservation.updateOne(data)
|
|
44
|
+
|
|
45
|
+
expect(requestShow).toHaveBeenCalledWith({
|
|
46
|
+
url: '/reservations/reservation-1',
|
|
47
|
+
method: 'put',
|
|
48
|
+
data: {
|
|
49
|
+
_id: 'reservation-1',
|
|
50
|
+
space: '22222222-2222-4222-8222-222222222222',
|
|
51
|
+
hierarchy: '55555555-5555-4555-8555-555555555555',
|
|
52
|
+
approveStatus: 1
|
|
53
|
+
}
|
|
54
|
+
})
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
test('maps v2 response space/hierarchy back to legacy aliases', async () => {
|
|
58
|
+
urlcfg.version = 'v2'
|
|
59
|
+
requestShow.mockResolvedValue({
|
|
60
|
+
code: 0,
|
|
61
|
+
rows: [{
|
|
62
|
+
id: 'reservation-1',
|
|
63
|
+
space: '22222222-2222-4222-8222-222222222222',
|
|
64
|
+
hierarchy: '55555555-5555-4555-8555-555555555555'
|
|
65
|
+
}]
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
const response = await reservation.list({})
|
|
69
|
+
|
|
70
|
+
expect(response.rows[0]).toEqual(expect.objectContaining({
|
|
71
|
+
space: '22222222-2222-4222-8222-222222222222',
|
|
72
|
+
hierarchy: '55555555-5555-4555-8555-555555555555',
|
|
73
|
+
area: '22222222-2222-4222-8222-222222222222',
|
|
74
|
+
depart: '55555555-5555-4555-8555-555555555555'
|
|
75
|
+
}))
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
test('uses hierarchy for current reservation endpoint in v2', async () => {
|
|
79
|
+
urlcfg.version = 'v2'
|
|
80
|
+
requestShow.mockResolvedValue({ code: 0, rows: [] })
|
|
81
|
+
|
|
82
|
+
await reservation.getReservationsByDepart({
|
|
83
|
+
depart: '55555555-5555-4555-8555-555555555555'
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
expect(requestShow).toHaveBeenCalledWith({
|
|
87
|
+
url: '/reservations/current/55555555-5555-4555-8555-555555555555',
|
|
88
|
+
method: 'get',
|
|
89
|
+
params: {
|
|
90
|
+
hierarchy: '55555555-5555-4555-8555-555555555555'
|
|
91
|
+
}
|
|
92
|
+
})
|
|
93
|
+
})
|
|
94
|
+
})
|
package/api/scadaProject.js
CHANGED
|
@@ -12,7 +12,7 @@ import { requestShow } from '../utils'
|
|
|
12
12
|
* @property {string} description - 项目描述
|
|
13
13
|
* @property {Object} canvas - 画布配置
|
|
14
14
|
* @property {Array} elements - 元素列表
|
|
15
|
-
* @property {string} creator - 创建者
|
|
15
|
+
* @property {string} creator - 创建者 UUID
|
|
16
16
|
* @property {string} createdAt - 创建时间
|
|
17
17
|
* @property {string} updatedAt - 更新时间
|
|
18
18
|
* @example
|
|
@@ -22,7 +22,7 @@ import { requestShow } from '../utils'
|
|
|
22
22
|
"description": "这是一个测试项目",
|
|
23
23
|
"canvas": { "width": 1920, "height": 1080, "backgroundColor": "#ffffff" },
|
|
24
24
|
"elements": [ { "type": "text", "content": "Hello World" } ],
|
|
25
|
-
"creator": "
|
|
25
|
+
"creator": "11111111-1111-4111-8111-111111111111",
|
|
26
26
|
"createdAt": "2024-06-18T04:20:57.811Z",
|
|
27
27
|
"updatedAt": "2024-06-18T04:20:57.811Z"
|
|
28
28
|
* }
|
|
@@ -119,4 +119,4 @@ export default {
|
|
|
119
119
|
deleteOne,
|
|
120
120
|
deleteMany,
|
|
121
121
|
getOne
|
|
122
|
-
}
|
|
122
|
+
}
|
package/api/sensor.js
CHANGED
|
@@ -16,7 +16,7 @@ import { requestShow } from '../utils'
|
|
|
16
16
|
* @property {Object} device - 关联设备信息
|
|
17
17
|
* @property {number} state - 状态
|
|
18
18
|
* @property {string} stateDescription - 状态说明
|
|
19
|
-
* @property {string} creator - 创建者
|
|
19
|
+
* @property {string} creator - 创建者 UUID
|
|
20
20
|
* @property {Array} svgCoordinates - svg坐标
|
|
21
21
|
* @property {string} depart - 层级ID
|
|
22
22
|
* @property {Date} createdAt - 创建时间
|
|
@@ -34,7 +34,7 @@ import { requestShow } from '../utils'
|
|
|
34
34
|
* },
|
|
35
35
|
* "state": 1,
|
|
36
36
|
* "stateDescription": "正常",
|
|
37
|
-
* "creator": "
|
|
37
|
+
* "creator": "11111111-1111-4111-8111-111111111111",
|
|
38
38
|
* "svgCoordinates": [],
|
|
39
39
|
* "depart": "674e7a4de81aed0009fecddb",
|
|
40
40
|
* "createdAt": "2024-12-03T03:26:05.382Z",
|
|
@@ -178,4 +178,4 @@ export default {
|
|
|
178
178
|
deleteOne,
|
|
179
179
|
deleteMany,
|
|
180
180
|
importExcel
|
|
181
|
-
}
|
|
181
|
+
}
|
|
@@ -16,7 +16,7 @@ import { requestShow } from '../utils'
|
|
|
16
16
|
* @property {string} type - 传感器类型
|
|
17
17
|
* @property {Array<string>} range - 维保状态区间
|
|
18
18
|
* @property {string} remark - 备注
|
|
19
|
-
* @property {string} creator - 创建者
|
|
19
|
+
* @property {string} creator - 创建者 UUID
|
|
20
20
|
* @property {Date} createdAt - 创建时间
|
|
21
21
|
* @property {Date} updatedAt - 更新时间
|
|
22
22
|
* @example
|
|
@@ -25,7 +25,7 @@ import { requestShow } from '../utils'
|
|
|
25
25
|
* "type": "温度",
|
|
26
26
|
* "range": ["正常", "预警", "报警"],
|
|
27
27
|
* "remark": "默认区间",
|
|
28
|
-
* "creator": "
|
|
28
|
+
* "creator": "11111111-1111-4111-8111-111111111111",
|
|
29
29
|
* "createdAt": "2026-03-11T00:00:00.000Z",
|
|
30
30
|
* "updatedAt": "2026-03-11T00:00:00.000Z"
|
|
31
31
|
* }
|
package/api/workSchedule.js
CHANGED
|
@@ -20,21 +20,28 @@ import { requestShow } from '../utils'
|
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* @typedef {Object} WorkSchedule - 排班表
|
|
23
|
-
* @property {string} _id - 排班表
|
|
24
|
-
* @property {string|Object} user - 关联用户
|
|
23
|
+
* @property {string} _id - 排班表 UUID
|
|
24
|
+
* @property {string|Object} user - 关联用户 UUID
|
|
25
|
+
* @property {Array<string|Object>} users - 关联用户 UUID 数组
|
|
26
|
+
* @property {string|null} [space] - 关联空间 UUID,引用外部配置服务空间
|
|
25
27
|
* @property {number} year - 年份
|
|
26
28
|
* @property {number} month - 月份,1-12
|
|
27
29
|
* @property {number} shiftType - 默认班次类型,1 早班,2 中班,3 晚班(当天结束后跨到次日 00:00-08:00)
|
|
28
30
|
* @property {Array<WorkScheduleDetail>} scheduleDetails - 每日排班明细
|
|
29
31
|
* @property {number} status - 状态,0 草稿,1 已发布
|
|
30
32
|
* @property {string} [remark] - 备注
|
|
31
|
-
* @property {string} [creator] - 创建者
|
|
33
|
+
* @property {string} [creator] - 创建者 UUID
|
|
32
34
|
* @property {Date} createdAt - 创建时间
|
|
33
35
|
* @property {Date} updatedAt - 更新时间
|
|
34
36
|
* @example
|
|
35
37
|
* {
|
|
36
|
-
* "_id": "
|
|
37
|
-
* "user": "
|
|
38
|
+
* "_id": "11111111-1111-4111-8111-111111111111",
|
|
39
|
+
* "user": "22222222-2222-4222-8222-222222222222",
|
|
40
|
+
* "users": [
|
|
41
|
+
* "22222222-2222-4222-8222-222222222222",
|
|
42
|
+
* "33333333-3333-4333-8333-333333333333"
|
|
43
|
+
* ],
|
|
44
|
+
* "space": "44444444-4444-4444-8444-444444444444",
|
|
38
45
|
* "year": 2026,
|
|
39
46
|
* "month": 3,
|
|
40
47
|
* "shiftType": 1,
|
|
@@ -43,7 +50,7 @@ import { requestShow } from '../utils'
|
|
|
43
50
|
* "day": 8,
|
|
44
51
|
* "shiftType": 2,
|
|
45
52
|
* "isRestDay": false,
|
|
46
|
-
* "attendanceRecord": "
|
|
53
|
+
* "attendanceRecord": "55555555-5555-4555-8555-555555555555"
|
|
47
54
|
* },
|
|
48
55
|
* {
|
|
49
56
|
* "day": 16,
|
|
@@ -52,7 +59,7 @@ import { requestShow } from '../utils'
|
|
|
52
59
|
* ],
|
|
53
60
|
* "status": 1,
|
|
54
61
|
* "remark": "三月排班",
|
|
55
|
-
* "creator": "
|
|
62
|
+
* "creator": "66666666-6666-4666-8666-666666666666",
|
|
56
63
|
* "createdAt": "2026-03-01T00:00:00.000Z",
|
|
57
64
|
* "updatedAt": "2026-03-20T00:00:00.000Z"
|
|
58
65
|
* }
|
|
@@ -65,7 +72,8 @@ import { requestShow } from '../utils'
|
|
|
65
72
|
* @param {number} [query.limit] - 每页数量
|
|
66
73
|
* @param {string} [query.label] - 模糊查询字段
|
|
67
74
|
* @param {string} [query.search] - 模糊查询值
|
|
68
|
-
* @param {string} [query.user] - 用户
|
|
75
|
+
* @param {string} [query.user] - 用户 UUID
|
|
76
|
+
* @param {string} [query.space] - 空间 UUID
|
|
69
77
|
* @param {number} [query.year] - 年份
|
|
70
78
|
* @param {number} [query.month] - 月份
|
|
71
79
|
* @param {number} [query.shiftType] - 默认班次类型
|
|
@@ -86,7 +94,9 @@ export function list(query) {
|
|
|
86
94
|
/**
|
|
87
95
|
* 新增排班表
|
|
88
96
|
* @param {Object} data - 请求体
|
|
89
|
-
* @param {string} data.user - 用户id
|
|
97
|
+
* @param {string|Object} data.user - 用户 UUID,支持传入 UUID 字符串或包含 id/_id 的对象
|
|
98
|
+
* @param {Array<string|Object>} [data.users] - 用户 UUID 数组,支持传入 UUID 字符串或包含 id/_id 的对象数组
|
|
99
|
+
* @param {string|Object|null} [data.space] - 空间 UUID,引用外部配置服务空间,支持传入 UUID 字符串或包含 id/_id 的对象
|
|
90
100
|
* @param {number} data.year - 年份
|
|
91
101
|
* @param {number} data.month - 月份,1-12
|
|
92
102
|
* @param {number} data.shiftType - 默认班次类型,1 早班,2 中班,3 晚班(当天结束后跨到次日 00:00-08:00)
|
|
@@ -120,8 +130,10 @@ export function getOne(id) {
|
|
|
120
130
|
/**
|
|
121
131
|
* 编辑排班表
|
|
122
132
|
* @param {Object} data - 修改数据对象
|
|
123
|
-
* @param {string} data._id - 排班表
|
|
124
|
-
* @param {string} [data.user] - 用户id
|
|
133
|
+
* @param {string} data._id - 排班表 UUID
|
|
134
|
+
* @param {string|Object} [data.user] - 用户 UUID,支持传入 UUID 字符串或包含 id/_id 的对象
|
|
135
|
+
* @param {Array<string|Object>} [data.users] - 用户 UUID 数组,支持传入 UUID 字符串或包含 id/_id 的对象数组
|
|
136
|
+
* @param {string|Object|null} [data.space] - 空间 UUID,引用外部配置服务空间,支持传入 UUID 字符串或包含 id/_id 的对象
|
|
125
137
|
* @param {number} [data.year] - 年份
|
|
126
138
|
* @param {number} [data.month] - 月份,1-12
|
|
127
139
|
* @param {number} [data.shiftType] - 默认班次类型,1 早班,2 中班,3 晚班(当天结束后跨到次日 00:00-08:00)
|