index.ts 35 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354
  1. import qs from 'qs';
  2. import { request } from '@/utils';
  3. import type {
  4. AccountParams,
  5. AddInterface,
  6. AgreementUpdate,
  7. AIAdvancedParamItem,
  8. AIOptimizeDetail,
  9. AIOptimizeDevData,
  10. AIStartStopDeviceItem,
  11. AIStartStopDeviceParams,
  12. AIStartStopOptimizeInfo,
  13. AlarmEvent,
  14. AlarmEventHistoryItemData,
  15. AlarmHistory,
  16. AlarmHistoryItem,
  17. AlarmPageParams,
  18. AlgorithmConfigInfo,
  19. AllDevicesList,
  20. AutomaticMatching,
  21. BatchUpdate,
  22. ChangeState,
  23. CharacterPageItem,
  24. CharacterPageItemData,
  25. CharacterParams,
  26. CoolingHistoryDataQuery,
  27. CoolingHistoryDataResult,
  28. CoolingRealTimeDataQuery,
  29. CoolingRealTimeDataResult,
  30. CoolingStatisticsQuery,
  31. CoolingStatisticsResult,
  32. CustomParameters,
  33. DeviceBindQuery,
  34. DeviceCop,
  35. DeviceGroup,
  36. DeviceGroupItem,
  37. DeviceGroupListQuery,
  38. DeviceParamGroup,
  39. DeviceParams,
  40. DeviceParamType,
  41. DevicePermissionsParams,
  42. DevicesList,
  43. DevicesListItemData,
  44. DeviceTypeCount,
  45. DevWorkHisDataQuery,
  46. DevWorkHistoryData,
  47. DevWorkRealTimeData,
  48. DevWorkRTDQuery,
  49. DictTypeData,
  50. DictTypeDataParams,
  51. ElectricityStatisticsQuery,
  52. ElectricityStatisticsResult,
  53. EquipmentDetailsForm,
  54. EquipmentDetailsItem,
  55. EquipmentTypeItem,
  56. EquipmentUpdateForm,
  57. EventTriggerData,
  58. GatewayBody,
  59. GatewayInformation,
  60. GatewayInterface,
  61. GatewayLinkProtocolQuery,
  62. GatewayListItemData,
  63. GatewayModelInfo,
  64. GatewayParameterBody,
  65. GatewayParameterItemData,
  66. GetListItem,
  67. GroupingList,
  68. GroupingListData,
  69. GroupModuleBatchItem,
  70. GroupModuleDevData,
  71. GroupModuleInfo,
  72. GroupModuleQuery,
  73. GroupRegions,
  74. InfoListByOrg,
  75. InterfaceData,
  76. InterfaceLsit,
  77. LimitForm,
  78. ListEquipmentParametersItemData,
  79. ListInfo,
  80. ListInterfaces,
  81. ListPhysicalInterfaces,
  82. loginForm,
  83. LoginUser,
  84. MonitoringForm,
  85. MonitorPointInfo,
  86. MonitorPointItem,
  87. NoticePageItemData,
  88. OperateLogData,
  89. OperateLogQuery,
  90. Organization,
  91. OrganizationInfo,
  92. OrganizationItem,
  93. OrganizationListItem,
  94. OrganizationListItemData,
  95. OrganizationListParams,
  96. OutdooForm,
  97. PageParams,
  98. ParameterVerification,
  99. ParamValueListAutomaticQuery,
  100. PermissionGroupItem,
  101. PermissionList,
  102. PointTimeSeriesQuery,
  103. PostProtocolPage,
  104. PostProtocolPageItem,
  105. PostProtocolPageItemData,
  106. ProtocolBaseInfo,
  107. ProtocolGatewayListListItem,
  108. ProtocolItemData,
  109. ProtocolList,
  110. ProtocolListData,
  111. ProtocolListItem,
  112. ProtocolListQuery,
  113. ProtocolParamData,
  114. ProtocolParamInfo,
  115. ProtocolParamSearchParams,
  116. ProtocolReset,
  117. ProtocolStandardParam,
  118. ProtocolStandardParamData,
  119. ProtocolStandardParamQuery,
  120. RegionQuery,
  121. RegionsPointsItem,
  122. RolePermissions,
  123. RolePermissionsItem,
  124. RolePermissionsParams,
  125. SerialNumberItem,
  126. SerialNumberItemData,
  127. SmartCtrlLogData,
  128. SmartCtrlLogQuery,
  129. SubmitDeviceGroup,
  130. SubmitSorting,
  131. TempHumidityControlSettings,
  132. TreeStructure,
  133. UploadLogo,
  134. UserPageItemData,
  135. UserPageParams,
  136. VerificationAgreement,
  137. VerificationEquipment,
  138. WarningItem,
  139. } from '@/types';
  140. /**
  141. * 获取认证授权服务 url
  142. */
  143. const apiUaa = (path: string, params?: unknown) => {
  144. const apiUrl = params ? `${path}?${qs.stringify(params)}` : path;
  145. return `/api-uaa${apiUrl}`;
  146. };
  147. /**
  148. * 获取系统服务 url
  149. */
  150. const apiSys = (path: string, params?: unknown) => {
  151. const apiUrl = params ? `${path}?${qs.stringify(params)}` : path;
  152. return `/api-sys${apiUrl}`;
  153. };
  154. /**
  155. * 获取业务服务 url
  156. */
  157. const apiBiz = (path: string, params?: unknown) => {
  158. const apiUrl = params ? `${path}?${qs.stringify(params, { arrayFormat: 'repeat' })}` : path;
  159. return `/api-biz${apiUrl}`;
  160. };
  161. // ----- 认证授权服务 -----
  162. // 登录和注销
  163. export const loginUser = async (params: LoginUser) => {
  164. const data = await request<loginForm>(apiUaa('/oauth/token', params), {
  165. method: 'POST',
  166. headers: {
  167. Authorization: 'Basic ' + btoa('unimat:unimat'),
  168. },
  169. });
  170. return data;
  171. };
  172. export const logoutUser = async () => {
  173. await request(apiUaa('/oauth/remove/token'));
  174. };
  175. export const refreshUser = async () => {
  176. await request(apiUaa('/oauth/token'));
  177. };
  178. // ----- 系统服务 -----
  179. // 字典类型表
  180. export const getDictTypeData = async (params: DictTypeDataParams) => {
  181. const data = await request<DictTypeData[]>(apiSys('/sysDictType/typeAndData', params));
  182. return data;
  183. };
  184. // 菜单权限表
  185. export const getSubPermList = async (id: number) => {
  186. const data = await request<TreeStructure[]>(apiSys(`/sysPermission/subPermList/${id}`));
  187. return data;
  188. };
  189. export const getPermissionCheckTree = async (roleId: number) => {
  190. const data = await request<TreeStructure[]>(apiSys(`/sysPermission/permissionCheckTree/${roleId}`));
  191. return data;
  192. };
  193. // 角色和菜单关联表
  194. export const addGrantRolePermissions = async (params: RolePermissionsParams) => {
  195. await request(apiSys('/sysRolePermission/grantRolePermissions'), {
  196. method: 'POST',
  197. body: JSON.stringify(params),
  198. });
  199. };
  200. // 角色和组织关联表
  201. export const getFindRolesByOrgIds = async (params: number[]) => {
  202. const data = await request<CharacterPageItem[]>(apiSys('/sysRoleOrg/findRolesByOrgIds'), {
  203. method: 'POST',
  204. body: JSON.stringify(params),
  205. });
  206. return data;
  207. };
  208. // 角色信息表
  209. export const addRolePermissions = async (params: RolePermissions) => {
  210. await request(apiSys('/sysRole/addRolePermissions'), {
  211. method: 'POST',
  212. body: JSON.stringify(params),
  213. });
  214. };
  215. export const getRolePermissions = async (id: number) => {
  216. const data = await request<RolePermissionsItem>(apiSys(`/sysRole/getRolePermissions/${id}`), {
  217. method: 'POST',
  218. });
  219. return data;
  220. };
  221. // 角色信息表
  222. export const addCharacter = async (params: CharacterParams) => {
  223. await request(apiSys('/sysRole/add'), {
  224. method: 'POST',
  225. body: JSON.stringify(params),
  226. });
  227. };
  228. export const updateCharacter = async (params: CharacterParams) => {
  229. await request(apiSys('/sysRole/update'), {
  230. method: 'POST',
  231. body: JSON.stringify(params),
  232. });
  233. };
  234. export const getCharacterPageList = async (params: PageParams) => {
  235. const data = await request<CharacterPageItemData>(apiSys('/sysRole/getPageList'), {
  236. method: 'POST',
  237. body: JSON.stringify(params),
  238. });
  239. return data;
  240. };
  241. export const deleteCharacter = async (id: number) => {
  242. await request(apiSys(`/sysRole/delete/${id}`), {
  243. method: 'POST',
  244. });
  245. };
  246. export const addUpdateRolePermissions = async (params: RolePermissions) => {
  247. await request(apiSys('/sysRole/updateRolePermissions'), {
  248. method: 'POST',
  249. body: JSON.stringify(params),
  250. });
  251. };
  252. // 组织表
  253. export const addOrganization = async (params: OrganizationItem) => {
  254. const data = await request<number>(apiSys('/sysOrg/add'), {
  255. method: 'POST',
  256. body: JSON.stringify(params),
  257. });
  258. return data;
  259. };
  260. export const updateOrganization = async (params: OrganizationItem) => {
  261. await request<number>(apiSys('/sysOrg/update'), {
  262. method: 'POST',
  263. body: JSON.stringify(params),
  264. });
  265. };
  266. export const addUploadLogo = async (file: Blob) => {
  267. const formData = new FormData();
  268. formData.append('file', file);
  269. const data = await request<UploadLogo>(apiSys('/sysOrg/uploadLogo'), {
  270. method: 'POST',
  271. body: formData,
  272. });
  273. return data;
  274. };
  275. export const getSubOrgsByToken = async () => {
  276. const data = await request<Organization[]>(apiSys('/sysOrg/subOrgsByToken'));
  277. return data;
  278. };
  279. export const getOrganizationList = async (params: OrganizationListParams) => {
  280. const data = await request<OrganizationListItemData>(apiSys('/sysOrg/getPageList'), {
  281. method: 'POST',
  282. body: JSON.stringify(params),
  283. });
  284. return data;
  285. };
  286. export const getOrganizationAllList = async (params?: string) => {
  287. const data = await request<OrganizationListItem[]>(apiSys('/sysOrg/getList'), {
  288. method: 'POST',
  289. body: JSON.stringify({ orgName: params }),
  290. });
  291. return data;
  292. };
  293. export const getDownloadLogo = async (fileName: string) => {
  294. const data = await request(apiSys(`/sysOrg/downloadLogo/${fileName}`), {
  295. method: 'POST',
  296. });
  297. return data;
  298. };
  299. // 菜单权限表
  300. export const getOrgInfo = async (id: number) => {
  301. const data = await request<OrganizationInfo>(apiSys(`/sysOrg/info/${id}`));
  302. return data;
  303. };
  304. // 用户信息表
  305. export const addAccount = async (params: AccountParams) => {
  306. await request(apiSys('/sysUser/add'), {
  307. method: 'POST',
  308. body: JSON.stringify(params),
  309. });
  310. };
  311. export const updateAccount = async (params: AccountParams) => {
  312. await request(apiSys('/sysUser/update'), {
  313. method: 'POST',
  314. body: JSON.stringify(params),
  315. });
  316. };
  317. export const batchDeleteAccount = async (params: number[]) => {
  318. await request(apiSys('/sysUser/batchDelete/'), {
  319. method: 'POST',
  320. body: JSON.stringify(params),
  321. });
  322. };
  323. export const getUserPageList = async (params: UserPageParams) => {
  324. const data = await request<UserPageItemData>(apiSys('/sysUser/getPageList'), {
  325. method: 'POST',
  326. body: JSON.stringify(params),
  327. });
  328. return data;
  329. };
  330. // ----- 业务服务 -----
  331. // 报警事件
  332. export const addAlarmEvent = async (params: AlarmEvent) => {
  333. await request(apiBiz('/alarmEvent/add'), {
  334. method: 'POST',
  335. body: JSON.stringify(params),
  336. });
  337. };
  338. export const alarmEventChangeState = async (params: ChangeState) => {
  339. await request(apiBiz('/alarmEvent/changeState'), {
  340. method: 'POST',
  341. body: JSON.stringify(params),
  342. });
  343. };
  344. export const deleteAlarmEvent = async (id: number) => {
  345. await request(apiBiz(`/alarmEvent/delete/${id}`), {
  346. method: 'POST',
  347. });
  348. };
  349. export const getAlarmEventGetPageList = async (params: AlarmPageParams) => {
  350. const data = await request<EventTriggerData>(apiBiz('/alarmEvent/getPageList'), {
  351. method: 'POST',
  352. body: JSON.stringify(params),
  353. });
  354. return data;
  355. };
  356. export const getAlarmEventInfo = async (id: number) => {
  357. const data = await request<AlarmEvent>(apiBiz(`/alarmEvent/info/${id}`));
  358. return data;
  359. };
  360. export const updateAlarmEvent = async (params: AlarmEvent) => {
  361. await request(apiBiz('/alarmEvent/update'), {
  362. method: 'POST',
  363. body: JSON.stringify(params),
  364. });
  365. };
  366. // 报警历史表
  367. export const getAlarmHistoryList = async (params: AlarmHistory) => {
  368. const data = await request<AlarmEventHistoryItemData>(apiBiz('/alarmHistory/getPageList'), {
  369. method: 'POST',
  370. body: JSON.stringify(params),
  371. });
  372. return data;
  373. };
  374. // 算法配置
  375. export const getAlgorithmConfigInfo = async (devGroupId: number) => {
  376. const data = await request<AlgorithmConfigInfo>(apiBiz(`/algorithmConfig/info/byGroup/${devGroupId}`));
  377. return data;
  378. };
  379. export const addAlgorithmConfigUpdate = async (params: Partial<AlgorithmConfigInfo>) => {
  380. await request(apiBiz('/algorithmConfig/update'), {
  381. method: 'POST',
  382. body: JSON.stringify(params),
  383. });
  384. };
  385. // 环境监控-监测点预警配置
  386. export const addBatchMonitorPointAlarm = async (params: WarningItem[]) => {
  387. await request(apiBiz('/monitorPointAlarm/addBatch'), {
  388. method: 'POST',
  389. body: JSON.stringify({ monitorPointAlarms: params }),
  390. });
  391. };
  392. export const getMonitorPointAlarm = async (pointId: number) => {
  393. const data = await request<MonitorPointItem[]>(apiBiz(`/monitorPointAlarm/point/${pointId}`));
  394. return data;
  395. };
  396. export const updateBatchMonitorPointAlarm = async (params: WarningItem[]) => {
  397. await request(apiBiz('/monitorPointAlarm/updateBatch'), {
  398. method: 'POST',
  399. body: JSON.stringify({ monitorPointAlarms: params }),
  400. });
  401. };
  402. export const getMonitorPointAlarmHistory = async (devGroupId: number) => {
  403. const data = await request<AlarmHistoryItem[]>(apiBiz(`/monitorPointAlarm/history/${devGroupId}`));
  404. return data;
  405. };
  406. // 环境监控-区域
  407. export const addRegion = async (params: RegionQuery) => {
  408. await request(apiBiz('/region/add'), {
  409. method: 'POST',
  410. body: JSON.stringify(params),
  411. });
  412. };
  413. export const regionUpdate = async (params: RegionQuery) => {
  414. await request(apiBiz('/region/update'), {
  415. method: 'POST',
  416. body: JSON.stringify(params),
  417. });
  418. };
  419. export const regionDelete = async (id: number) => {
  420. await request(apiBiz(`/region/delete/${id}`), {
  421. method: 'POST',
  422. });
  423. };
  424. export const getGroupRegions = async (devGroupId: number) => {
  425. const data = await request<GroupRegions[]>(apiBiz(`/region/groupRegions/${devGroupId}`), {
  426. method: 'POST',
  427. });
  428. return data;
  429. };
  430. export const getRegionsPointsData = async (devGroupId: number) => {
  431. const data = await request<RegionsPointsItem[]>(apiBiz(`/region/pointsData/${devGroupId}`), {
  432. method: 'POST',
  433. });
  434. return data;
  435. };
  436. export const getRegionsPointsValue = async (devGroupId: number, params: { endTime: string }) => {
  437. const data = await request<RegionsPointsItem[]>(apiBiz(`/region/pointsValue/${devGroupId}`), {
  438. method: 'POST',
  439. body: JSON.stringify(params),
  440. });
  441. return data;
  442. };
  443. // 环境监控-监测点
  444. export const addMonitorPoint = async (params: MonitoringForm) => {
  445. await request(apiBiz('/monitorPoint/add'), {
  446. method: 'POST',
  447. body: JSON.stringify(params),
  448. });
  449. };
  450. export const deleteMonitorPoint = async (id: number) => {
  451. await request(apiBiz(`/monitorPoint/delete/${id}`), {
  452. method: 'POST',
  453. });
  454. };
  455. export const updateMonitorPoint = async (params: MonitoringForm) => {
  456. await request(apiBiz('/monitorPoint/update'), {
  457. method: 'POST',
  458. body: JSON.stringify(params),
  459. });
  460. };
  461. export const updateRegionMonitorPoint = async (params: OutdooForm) => {
  462. await request(apiBiz('/region/monitorPoint/update'), {
  463. method: 'POST',
  464. body: JSON.stringify(params),
  465. });
  466. };
  467. export const getMonitorPointInfo = async (id: number) => {
  468. const data = await request<MonitorPointInfo>(apiBiz(`/monitorPoint/info/${id}`));
  469. return data;
  470. };
  471. export const updateLimits = async (params: LimitForm) => {
  472. await request(apiBiz('/monitorPoint/updateLimits'), {
  473. method: 'POST',
  474. body: JSON.stringify(params),
  475. });
  476. };
  477. export const getPointTimeSeries = async (params: PointTimeSeriesQuery, pointId: number) => {
  478. const data = await request<TempHumidityControlSettings>(apiBiz(`/monitorPoint/pointTimeSeries/${pointId}`), {
  479. method: 'POST',
  480. body: JSON.stringify(params),
  481. });
  482. return data;
  483. };
  484. // 设备组列表
  485. export const getPageList = async () => {
  486. const data = await request<DeviceGroupItem[]>(apiBiz('/deviceGroup/getList'), {
  487. method: 'POST',
  488. });
  489. return data;
  490. };
  491. export const addDeviceGroup = async (params: SubmitDeviceGroup) => {
  492. await request(apiBiz('/deviceGroup/add'), {
  493. method: 'POST',
  494. body: JSON.stringify(params),
  495. });
  496. };
  497. export const addDeviceGroupUpdate = async (params: SubmitDeviceGroup) => {
  498. await request(apiBiz('/deviceGroup/update'), {
  499. method: 'POST',
  500. body: JSON.stringify(params),
  501. });
  502. };
  503. export const deleteDeviceGroup = async (id: number) => {
  504. await request(apiBiz(`/deviceGroup/delete/${id}`), {
  505. method: 'POST',
  506. });
  507. };
  508. export const addDevicePermissions = async (params: DevicePermissionsParams) => {
  509. await request(apiBiz('/deviceGroup/update/role'), {
  510. method: 'POST',
  511. body: JSON.stringify(params),
  512. });
  513. };
  514. export const getAllGroupList = async (params: PermissionList) => {
  515. const data = await request<PermissionGroupItem[]>(apiBiz('/deviceGroup/getAllList'), {
  516. method: 'POST',
  517. body: JSON.stringify(params),
  518. });
  519. return data;
  520. };
  521. // 设备列表
  522. export const deviceAdd = async (equipmentInformationForm: EquipmentDetailsForm) => {
  523. const data = await request<number>(apiBiz('/device/add'), {
  524. method: 'POST',
  525. body: JSON.stringify(equipmentInformationForm),
  526. });
  527. return data;
  528. };
  529. export const getDeviceGroupList = async (params: DeviceGroupListQuery) => {
  530. const data = await request<DeviceGroup[]>(apiBiz('/deviceGroup/getDeviceGroupList'), {
  531. method: 'POST',
  532. body: JSON.stringify(params),
  533. });
  534. return data;
  535. };
  536. export const addDeviceBind = async (params: DeviceBindQuery) => {
  537. await request(apiBiz('/device/bind'), {
  538. method: 'POST',
  539. body: JSON.stringify(params),
  540. });
  541. };
  542. export const deviceDeletion = async (ids: number[]) => {
  543. await request(apiBiz('/device/delete/batch'), {
  544. method: 'POST',
  545. body: JSON.stringify(ids),
  546. });
  547. };
  548. export const equipmentDetails = async (id: number) => {
  549. const data = await request<EquipmentDetailsItem>(apiBiz(`/device/getBasicInfo/${id}`), {
  550. method: 'POST',
  551. });
  552. return data;
  553. };
  554. export const queryDevicesList = async (devicesList: DevicesList) => {
  555. const data = await request<DevicesListItemData>(apiBiz('/device/getPageList'), {
  556. method: 'POST',
  557. body: JSON.stringify(devicesList),
  558. });
  559. return data;
  560. };
  561. export const noPaginationDevicesList = async () => {
  562. const data = await request<AllDevicesList[]>(apiBiz('/device/getList'), {
  563. method: 'POST',
  564. });
  565. return data;
  566. };
  567. export const getDeviceListSimple = async (deviceId: number) => {
  568. const data = await request<DeviceParams[]>(apiBiz(`/device/listSimple/${deviceId}`));
  569. return data;
  570. };
  571. export const getDeviceParams = async (deviceId: number, isProcessData?: boolean) => {
  572. const data = await request<DeviceParamGroup[]>(apiBiz('/device/protocolParamVerify'), {
  573. method: 'POST',
  574. body: JSON.stringify({
  575. deviceId,
  576. isProcessData,
  577. }),
  578. });
  579. return data;
  580. };
  581. export const getDeviceListOptions = async (deviceId: number) => {
  582. const data = await request<DeviceParamType[]>(apiBiz(`/device/listOptions/${deviceId}`));
  583. return data;
  584. };
  585. export const updateDeviceCop = async (params: DeviceCop[]) => {
  586. await request(apiBiz('/device/update'), {
  587. method: 'POST',
  588. body: JSON.stringify(params),
  589. });
  590. };
  591. // 设备工况
  592. export const getDevWorkTypeCount = async (deviceGroupId: number, deviceTypes: number[]) => {
  593. const data = await request<DeviceTypeCount[]>(apiBiz('/deviceCondition/getTypeCount'), {
  594. method: 'POST',
  595. body: JSON.stringify({
  596. deviceGroupId,
  597. deviceTypes,
  598. }),
  599. });
  600. return data;
  601. };
  602. export const getDevWorkRealTimeData = async (params: DevWorkRTDQuery) => {
  603. const data = await request<DevWorkRealTimeData[]>(apiBiz('/deviceCondition/getRTDList'), {
  604. method: 'POST',
  605. body: JSON.stringify(params),
  606. });
  607. return data;
  608. };
  609. export const getDevWorkHistoryData = async (params: DevWorkHisDataQuery) => {
  610. const data = await request<DevWorkHistoryData[]>(apiBiz('/deviceCondition/getHisList'), {
  611. method: 'POST',
  612. body: JSON.stringify(params),
  613. });
  614. return data;
  615. };
  616. // 设备网关
  617. export const deviceGatewayUpdate = async (equipmentUpdateForm: EquipmentUpdateForm[]) => {
  618. await request(apiBiz('/deviceGateway/update'), {
  619. method: 'POST',
  620. body: JSON.stringify(equipmentUpdateForm),
  621. });
  622. };
  623. // 设备协议参数验证
  624. export const postParameterVerification = async (deviceId: number) => {
  625. const data = await request<ParameterVerification[]>(apiBiz('/protocolParamVerify/list'), {
  626. method: 'POST',
  627. body: JSON.stringify({
  628. deviceId,
  629. }),
  630. });
  631. return data;
  632. };
  633. // 设备参数分组
  634. export const equipmentParametersList = async (groupingList: GroupingList[]) => {
  635. await request(apiBiz('/deviceParamGroup/update/batch'), {
  636. method: 'POST',
  637. body: JSON.stringify(groupingList),
  638. });
  639. };
  640. export const queryEquipmentParametersList = async (deviceId: number) => {
  641. const data = await request<GroupingListData[]>(apiBiz('/deviceParamGroup/getList'), {
  642. method: 'POST',
  643. body: JSON.stringify({ deviceId }),
  644. });
  645. return data;
  646. };
  647. // 设备参数关系表
  648. export const submitSortingList = async (submitSorting: SubmitSorting[]) => {
  649. await request(apiBiz('/deviceParamGroupRel/update/batch'), {
  650. method: 'POST',
  651. body: JSON.stringify(submitSorting),
  652. });
  653. };
  654. // 设备自定义参数表
  655. export const submitCustomParameters = async (customParameters: CustomParameters[]) => {
  656. await request(apiBiz('/protocolParamCustomDev/update/batch'), {
  657. method: 'POST',
  658. body: JSON.stringify(customParameters),
  659. });
  660. };
  661. // 网关基本信息
  662. export const addGateway = async () => {
  663. await request(apiBiz('/gateway/add'));
  664. };
  665. export const gatewayDelete = async (id: number) => {
  666. await request(apiBiz(`/gateway/delete/${id}`), {
  667. method: 'POST',
  668. });
  669. };
  670. export const getAllGatewayList = async () => {
  671. const data = await request<SerialNumberItem[]>(apiBiz('/gateway/getGtwLinkList'), {
  672. method: 'POST',
  673. });
  674. return data;
  675. };
  676. export const validateGatewayInfo = async (registerGatewayForm: VerificationEquipment) => {
  677. const data = await request<GatewayInformation>(apiBiz('/gateway/validate', registerGatewayForm), {
  678. method: 'POST',
  679. });
  680. return data;
  681. };
  682. export const gatewayList = async (gatewayBody: GatewayBody) => {
  683. const data = await request<GatewayListItemData>(apiBiz('/gateway/getPageList'), {
  684. method: 'POST',
  685. body: JSON.stringify(gatewayBody),
  686. });
  687. return data;
  688. };
  689. // 网关通讯
  690. export const gatewayLinkAdd = async (addInterface: AddInterface) => {
  691. await request(apiBiz('/gatewayLink/add'), {
  692. method: 'POST',
  693. body: JSON.stringify(addInterface),
  694. });
  695. };
  696. export const addGatewayLinkBatchUpdate = async (params: BatchUpdate[]) => {
  697. await request(apiBiz('/gatewayLink/batchUpdate'), {
  698. method: 'POST',
  699. body: JSON.stringify({ gatewayLinks: params }),
  700. });
  701. };
  702. export const gatewayLinkDelete = async (id: number) => {
  703. await request(apiBiz(`/gatewayLink/delete/${id}`), {
  704. method: 'POST',
  705. });
  706. };
  707. export const gatewayLinkGetList = async (gatewayId: number) => {
  708. const data = await request<InterfaceData[]>(apiBiz(`/gatewayLink/getList/${gatewayId}`), {
  709. method: 'POST',
  710. });
  711. return data;
  712. };
  713. export const gatewayLinkUpdate = async (agreementUpdate: AgreementUpdate) => {
  714. await request(apiBiz('/gatewayLink/update'), {
  715. method: 'POST',
  716. body: JSON.stringify(agreementUpdate),
  717. });
  718. };
  719. export const getGatewayLinks = async (gatewayId: number) => {
  720. const data = await request<InterfaceLsit[]>(apiBiz(`/gatewayLink/getGatewayLinks/${gatewayId}`));
  721. return data;
  722. };
  723. // 网关型号
  724. export const getGatewayModelInfo = async (id: number) => {
  725. const data = await request<GatewayModelInfo>(apiBiz(`/gatewayModel/info/${id}`));
  726. return data;
  727. };
  728. export const getGatewayModelInterfaces = async (id: number) => {
  729. const data = await request<GatewayInterface[]>(apiBiz(`/gatewayModel/interfaces/${id}`), {
  730. method: 'POST',
  731. });
  732. return data;
  733. };
  734. // 网关物理接口协议
  735. export const obtainListPhysicalInterfaces = async (id: number) => {
  736. const data = await request<ListPhysicalInterfaces[]>(apiBiz(`/gatewayInterfaceProtocol/getProtocols/${id}`));
  737. return data;
  738. };
  739. // 网关型号物理接口
  740. export const obtainListInterfaces = async (id: number) => {
  741. const data = await request<ListInterfaces[]>(apiBiz(`/gatewayPhysicalInterface/getInterfaces/${id}`));
  742. return data;
  743. };
  744. // 网关接口协议
  745. export const getParamValueListAutomatic = async (params: ParamValueListAutomaticQuery) => {
  746. const data = await request<AutomaticMatching>(apiBiz('/gatewayLinkProtocol/getParamValueListAutomatic'), {
  747. method: 'POST',
  748. body: JSON.stringify(params),
  749. });
  750. return data;
  751. };
  752. export const getAllGatewayLinkProtocol = async <T>(params: GatewayLinkProtocolQuery) => {
  753. const data = await request<T>(apiBiz('/gatewayLinkProtocol/getLinkParams'), {
  754. method: 'POST',
  755. body: JSON.stringify(params),
  756. });
  757. return data;
  758. };
  759. export const gatewayLinkProtocolList = async <T>(protocolListItem: ProtocolListItem) => {
  760. const data = await request<T>(apiBiz('/gatewayLinkProtocol/getParamPageList'), {
  761. method: 'POST',
  762. body: JSON.stringify(protocolListItem),
  763. });
  764. return data;
  765. };
  766. export const gatewayLinkProtocolGatewayList = async (protocolGatewayListListItem: ProtocolGatewayListListItem) => {
  767. const data = await request<ListEquipmentParametersItemData>(
  768. apiBiz('/gatewayLinkProtocol/getParamPageListByGateway'),
  769. {
  770. method: 'POST',
  771. body: JSON.stringify(protocolGatewayListListItem),
  772. },
  773. );
  774. return data;
  775. };
  776. export const gatewayLinkList = async (id: number) => {
  777. const data = await request<VerificationAgreement[]>(apiBiz(`/gatewayLinkProtocol/getProtocolInfoList/${id}`), {
  778. method: 'POST',
  779. });
  780. return data;
  781. };
  782. export const gatewayLinkProtocolReset = async (protocolReset: ProtocolReset) => {
  783. await request(apiBiz('/gatewayLinkProtocol/reset'), {
  784. method: 'POST',
  785. body: JSON.stringify(protocolReset),
  786. });
  787. };
  788. export const postProtocolCandidatesList = async (protocolList: ProtocolList, gatewayId: number) => {
  789. const data = await request<ProtocolItemData>(apiBiz(`/gatewayLinkProtocol/getProtocolCandidates/${gatewayId}`), {
  790. method: 'POST',
  791. body: JSON.stringify(protocolList),
  792. });
  793. return data;
  794. };
  795. export const gatewayParameterList = async (gatewayParameterBody: GatewayParameterBody) => {
  796. const data = await request<GatewayParameterItemData>(apiBiz('/gatewayLinkProtocol/getParamValuePageList'), {
  797. method: 'POST',
  798. body: JSON.stringify(gatewayParameterBody),
  799. });
  800. return data;
  801. };
  802. // 组织网关
  803. export const orgGatewayRegister = async (gatewayId: number) => {
  804. await request(apiBiz('/orgGateway/register'), {
  805. method: 'POST',
  806. body: JSON.stringify({ gatewayId }),
  807. });
  808. };
  809. export const orgGatewayUnregister = async (gatewayId: number) => {
  810. await request(apiBiz(`/orgGateway/unregister/${gatewayId}`), {
  811. method: 'POST',
  812. });
  813. };
  814. export const orgGatewaySerialNumber = async (protocolList: ProtocolList) => {
  815. const data = await request<SerialNumberItemData>(apiBiz('/orgGateway/getGatewayPageList'), {
  816. method: 'POST',
  817. body: JSON.stringify(protocolList),
  818. });
  819. return data;
  820. };
  821. // 能耗分析
  822. export const getElectricityDataStatistics = async (params: ElectricityStatisticsQuery) => {
  823. const data = await request<ElectricityStatisticsResult>(
  824. apiBiz('/deviceElectricityDataChange/getElectricityDataStatistics'),
  825. {
  826. method: 'POST',
  827. body: JSON.stringify(params),
  828. },
  829. );
  830. return data;
  831. };
  832. export const downloadElectricityHisData = async (params: ElectricityStatisticsQuery) => {
  833. const blob = await request<Blob>(apiBiz('/deviceElectricityDataChange/download', params));
  834. return blob;
  835. };
  836. // 能效分析
  837. export const getCoolingRealTimeData = async (params: CoolingRealTimeDataQuery) => {
  838. const data = await request<CoolingRealTimeDataResult>(apiBiz('/deviceCoolingData/rtd'), {
  839. method: 'POST',
  840. body: JSON.stringify(params),
  841. });
  842. return data;
  843. };
  844. export const getCoolingHistoryData = async (params: CoolingHistoryDataQuery) => {
  845. const data = await request<CoolingHistoryDataResult>(apiBiz('/deviceCoolingData/his'), {
  846. method: 'POST',
  847. body: JSON.stringify(params),
  848. });
  849. return data;
  850. };
  851. export const getCoolingDataStatistics = async (params: CoolingStatisticsQuery) => {
  852. const data = await request<CoolingStatisticsResult>(apiBiz('/deviceCoolingDataChange/getCoolingDataStatistics'), {
  853. method: 'POST',
  854. body: JSON.stringify(params),
  855. });
  856. return data;
  857. };
  858. export const downloadCoolingHisData = async (params: CoolingStatisticsQuery) => {
  859. const blob = await request<Blob>(apiBiz('/deviceCoolingDataChange/download', params));
  860. return blob;
  861. };
  862. // 平台标准协议参数
  863. export const getProtocolStandardParam = async (paramId: number) => {
  864. const data = await request<ProtocolStandardParam>(apiBiz(`/platformProtocolInfo/info/${paramId}`));
  865. return data;
  866. };
  867. export const getProtocolStandardParamList = async (params: ProtocolStandardParamQuery) => {
  868. const data = await request<ProtocolStandardParamData>(apiBiz('/platformProtocolInfo/getPageList'), {
  869. method: 'POST',
  870. body: JSON.stringify(params),
  871. });
  872. return data;
  873. };
  874. // 协议参数
  875. export const addProtocolParam = async (params: Partial<ProtocolParamInfo>) => {
  876. await request(apiBiz('/protocolParamInfo/add'), {
  877. method: 'POST',
  878. body: JSON.stringify(params),
  879. });
  880. };
  881. export const updateProtocolParam = async (params: Partial<ProtocolParamInfo>) => {
  882. await request(apiBiz('/protocolParamInfo/update'), {
  883. method: 'POST',
  884. body: JSON.stringify(params),
  885. });
  886. };
  887. export const getProtocolParamList = async (params: ProtocolParamSearchParams) => {
  888. const data = await request<ProtocolParamData>(apiBiz('/protocolParamInfo/getPageList'), {
  889. method: 'POST',
  890. body: JSON.stringify(params),
  891. });
  892. return data;
  893. };
  894. export const batchDeleleProtocolParam = async (params: number[]) => {
  895. await request(apiBiz('/protocolParamInfo/batchDeleleByIds'), {
  896. method: 'POST',
  897. body: JSON.stringify(params),
  898. });
  899. };
  900. // 协议基本信息
  901. export const addProtocolBaseInfo = async (params: Partial<ProtocolBaseInfo>) => {
  902. const data = await request<number>(apiBiz('/protocolBaseInfo/add'), {
  903. method: 'POST',
  904. body: JSON.stringify(params),
  905. });
  906. return data;
  907. };
  908. export const addTempProtocol = async (params: Partial<ProtocolBaseInfo>) => {
  909. const data = await request<number>(apiBiz('/protocolBaseInfo/addTemp'), {
  910. method: 'POST',
  911. body: JSON.stringify(params),
  912. });
  913. return data;
  914. };
  915. export const downloadProtocolTemplate = async (fileName: string) => {
  916. const blob = await request<Blob>(apiBiz(`/protocolBaseInfo/downloadTemplate/${fileName}`));
  917. return blob;
  918. };
  919. export const uploadUserProtocol = async (protocolType: string, file: Blob) => {
  920. const formData = new FormData();
  921. formData.append('file', file);
  922. const data = await request<Pick<ProtocolBaseInfo, 'id' | 'protocolName' | 'protocolType'>>(
  923. apiBiz('/protocolBaseInfo/uploadUserTemplate', { protocolType }),
  924. {
  925. method: 'POST',
  926. body: formData,
  927. },
  928. );
  929. return data;
  930. };
  931. export const reUploadUserProtocol = async (protocolType: string, id: number, file: Blob) => {
  932. const formData = new FormData();
  933. formData.append('file', file);
  934. const data = await request<Pick<ProtocolBaseInfo, 'id' | 'protocolName' | 'protocolType'>>(
  935. apiBiz('/protocolBaseInfo/resetConfiguration', { protocolType, id }),
  936. {
  937. method: 'POST',
  938. body: formData,
  939. },
  940. );
  941. return data;
  942. };
  943. export const downloadUserProtocol = async (id: number) => {
  944. const blob = await request<Blob>(apiBiz('/protocolBaseInfo/downloadUserProtocol', { id }));
  945. return blob;
  946. };
  947. /**
  948. * @deprecated
  949. */
  950. export const getUploadProtocol = async (protocolType: string, protocolName: string) => {
  951. const data = await request<ProtocolBaseInfo>(
  952. apiBiz('/protocolBaseInfo/findUploadProtocolBaseInfo', {
  953. protocolType,
  954. protocolName,
  955. }),
  956. );
  957. return data;
  958. };
  959. export const getProtocolBaseInfo = async (id: number) => {
  960. const data = await request<ProtocolBaseInfo>(apiBiz(`/protocolBaseInfo/info/${id}`));
  961. return data;
  962. };
  963. export const updateProtocolBaseInfo = async (params: Partial<ProtocolBaseInfo>) => {
  964. await request(apiBiz('/protocolBaseInfo/update'), {
  965. method: 'POST',
  966. body: JSON.stringify(params),
  967. });
  968. };
  969. export const deleteProtocolBaseInfo = async (id: number) => {
  970. await request(apiBiz(`/protocolBaseInfo/delete/${id}`), {
  971. method: 'POST',
  972. });
  973. };
  974. export const completeProtocolConfig = async (id: number) => {
  975. await request(apiBiz(`/protocolBaseInfo/completeConfiguration/${id}`), {
  976. method: 'POST',
  977. });
  978. };
  979. export const getProtocolList = async (params: ProtocolListQuery) => {
  980. const data = await request<ProtocolListData>(apiBiz('/protocolBaseInfo/getPageList'), {
  981. method: 'POST',
  982. body: JSON.stringify(params),
  983. });
  984. return data;
  985. };
  986. // 协议参数表
  987. export const postProtocolPageList = async (postProtocolPage: PostProtocolPage) => {
  988. const data = await request<PostProtocolPageItemData>(apiBiz('/protocolParamInfo/page/list'), {
  989. method: 'POST',
  990. body: JSON.stringify(postProtocolPage),
  991. });
  992. return data;
  993. };
  994. export const postProtocolGetList = async (getListItem: GetListItem) => {
  995. const data = await request<PostProtocolPageItem[]>(apiBiz('/protocolParamInfo/getList'), {
  996. method: 'POST',
  997. body: JSON.stringify(getListItem),
  998. });
  999. return data;
  1000. };
  1001. // 全局参数
  1002. export const groupList = async (listInfo: ListInfo) => {
  1003. const data = await request<EquipmentTypeItem[]>(apiBiz('/deviceGlobalData/getList'), {
  1004. method: 'POST',
  1005. body: JSON.stringify(listInfo),
  1006. });
  1007. return data;
  1008. };
  1009. // 站内通知
  1010. export const getUnreadNotifications = async () => {
  1011. const data = await request<number>(apiBiz('/stationNotify/leftSize'), {
  1012. method: 'POST',
  1013. });
  1014. return data;
  1015. };
  1016. export const getNoticePageList = async (params: PageParams) => {
  1017. const data = await request<NoticePageItemData>(apiBiz('/stationNotify/getPageList'), {
  1018. method: 'POST',
  1019. body: JSON.stringify(params),
  1020. });
  1021. return data;
  1022. };
  1023. // 组态
  1024. export const getGroupModuleInfo = async (params: GroupModuleQuery) => {
  1025. const data = await request<GroupModuleInfo>(apiBiz('/moduleInfo/info'), {
  1026. method: 'POST',
  1027. body: JSON.stringify(params),
  1028. });
  1029. return data;
  1030. };
  1031. // 组织与设备限制
  1032. export const getInfoListByOrgId = async (orgId: number) => {
  1033. const data = await request<InfoListByOrg[]>(apiBiz(`/orgDeviceLimit/infoListByOrgId/${orgId}`));
  1034. return data;
  1035. };
  1036. export const updateGroupModuleInfo = async (params: Partial<GroupModuleInfo>) => {
  1037. await request(apiBiz('/moduleInfo/update'), {
  1038. method: 'POST',
  1039. body: JSON.stringify(params),
  1040. });
  1041. };
  1042. export const getGroupModuleDevData = async (deviceId: number, deviceType: number) => {
  1043. const data = await request<GroupModuleDevData>(apiBiz('/moduleInfo/info/device/detail'), {
  1044. method: 'POST',
  1045. body: JSON.stringify({
  1046. deviceId,
  1047. deviceType,
  1048. }),
  1049. });
  1050. return data;
  1051. };
  1052. export const updateGroupModuleDevData = async (deviceId: number, deviceParamCode: string, value: number | string) => {
  1053. await request(apiBiz('/moduleInfo/update/status'), {
  1054. method: 'POST',
  1055. body: JSON.stringify({
  1056. deviceId,
  1057. deviceParamCode,
  1058. value,
  1059. }),
  1060. });
  1061. };
  1062. export const getGroupModuleDevStatus = async (groupId: number) => {
  1063. const data = await request<GroupModuleBatchItem[]>(apiBiz('/moduleInfo/info/batch/status'), {
  1064. method: 'POST',
  1065. body: JSON.stringify({
  1066. groupId,
  1067. }),
  1068. });
  1069. return data;
  1070. };
  1071. // AI智能启停和寻优,高级设置
  1072. export const getAIStartStopData = async (groupId: number, startType: number) => {
  1073. const data = await request<AIStartStopDeviceItem[]>(apiBiz('/moduleInfoAi/info/startType'), {
  1074. method: 'POST',
  1075. body: JSON.stringify({
  1076. groupId,
  1077. startType,
  1078. }),
  1079. });
  1080. return data;
  1081. };
  1082. export const updateAIStartStopData = async (params: AIStartStopDeviceParams) => {
  1083. await request(apiBiz('/moduleInfoAi/update/startType'), {
  1084. method: 'POST',
  1085. body: JSON.stringify(params),
  1086. });
  1087. };
  1088. export const getAIOptimizeDevData = async (groupId: number) => {
  1089. const data = await request<AIOptimizeDevData>(apiBiz(`/moduleInfoAi/get/info/${groupId}`));
  1090. return data;
  1091. };
  1092. export const getAIOptimizeDetail = async (groupId: number, deviceType: number) => {
  1093. const data = await request<AIOptimizeDetail>(apiBiz('/moduleInfoAi/infoDetail'), {
  1094. method: 'POST',
  1095. body: JSON.stringify({
  1096. groupId,
  1097. deviceType,
  1098. }),
  1099. });
  1100. return data;
  1101. };
  1102. export const updateAIStartStopOptimize = async (params: AIStartStopOptimizeInfo) => {
  1103. await request(apiBiz('/moduleInfoAi/update'), {
  1104. method: 'POST',
  1105. body: JSON.stringify(params),
  1106. });
  1107. };
  1108. export const updateAIOptimizeSetting = async (params: AIOptimizeDetail) => {
  1109. await request(apiBiz('/moduleInfoAi/update/infoDetail'), {
  1110. method: 'POST',
  1111. body: JSON.stringify(params),
  1112. });
  1113. };
  1114. export const getAIAdvancedSetting = async (groupId: number) => {
  1115. const data = await request<AIAdvancedParamItem[]>(apiBiz('/moduleInfoAi/info/advancedSetting'), {
  1116. method: 'POST',
  1117. body: JSON.stringify({
  1118. groupId,
  1119. }),
  1120. });
  1121. return data;
  1122. };
  1123. // 智控日志
  1124. export const getSmartCtrlLog = async (params: SmartCtrlLogQuery) => {
  1125. const data = await request<SmartCtrlLogData>(apiBiz('/algLogInfo/getPageList'), {
  1126. method: 'POST',
  1127. body: JSON.stringify(params),
  1128. });
  1129. return data;
  1130. };
  1131. // 操作日志
  1132. export const getOperateLog = async (params: OperateLogQuery) => {
  1133. const data = await request<OperateLogData>(apiBiz('/controlLogInfo/getPageList'), {
  1134. method: 'POST',
  1135. body: JSON.stringify(params),
  1136. });
  1137. return data;
  1138. };