index.ts 32 KB

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