index.ts 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994
  1. import qs from 'qs';
  2. import { request } from '@/utils';
  3. import type {
  4. AddInterface,
  5. AgreementUpdate,
  6. AlarmEvent,
  7. AlarmEventHistoryItemData,
  8. AlarmHistory,
  9. AlarmHistoryItem,
  10. AlarmPageParams,
  11. AlgorithmConfigInfo,
  12. AllDevicesList,
  13. AutomaticMatching,
  14. BatchUpdate,
  15. ChangeState,
  16. CoolingHistoryDataQuery,
  17. CoolingHistoryDataResult,
  18. CoolingRealTimeDataQuery,
  19. CoolingRealTimeDataResult,
  20. CoolingStatisticsQuery,
  21. CoolingStatisticsResult,
  22. CustomParameters,
  23. DeviceBindQuery,
  24. DeviceGroup,
  25. DeviceGroupItem,
  26. DeviceGroupListQuery,
  27. DeviceParamGroup,
  28. DeviceParams,
  29. DeviceParamType,
  30. DevicesList,
  31. DevicesListItemData,
  32. DeviceTypeCount,
  33. DevWorkHisDataQuery,
  34. DevWorkHistoryData,
  35. DevWorkRealTimeData,
  36. DictTypeData,
  37. DictTypeDataParams,
  38. ElectricityStatisticsQuery,
  39. ElectricityStatisticsResult,
  40. EquipmentDetailsForm,
  41. EquipmentDetailsItem,
  42. EquipmentTypeItem,
  43. EquipmentUpdateForm,
  44. EventTriggerData,
  45. GatewayBody,
  46. GatewayInformation,
  47. GatewayInterface,
  48. GatewayLinkProtocolQuery,
  49. GatewayListItemData,
  50. GatewayModelInfo,
  51. GatewayParameterBody,
  52. GatewayParameterItemData,
  53. GetListItem,
  54. GroupingList,
  55. GroupingListData,
  56. GroupModuleInfo,
  57. GroupModuleQuery,
  58. GroupRegions,
  59. InterfaceData,
  60. InterfaceLsit,
  61. LimitForm,
  62. ListEquipmentParametersItemData,
  63. ListInfo,
  64. ListInterfaces,
  65. ListPhysicalInterfaces,
  66. MonitoringForm,
  67. MonitorPointInfo,
  68. MonitorPointItem,
  69. OrganizationItem,
  70. OutdooForm,
  71. ParameterVerification,
  72. ParamValueListAutomaticQuery,
  73. PointTimeSeriesQuery,
  74. PostProtocolPage,
  75. PostProtocolPageItem,
  76. PostProtocolPageItemData,
  77. ProtocolBaseInfo,
  78. ProtocolGatewayListListItem,
  79. ProtocolItemData,
  80. ProtocolList,
  81. ProtocolListData,
  82. ProtocolListItem,
  83. ProtocolListQuery,
  84. ProtocolParamData,
  85. ProtocolParamInfo,
  86. ProtocolParamSearchParams,
  87. ProtocolReset,
  88. ProtocolStandardParam,
  89. ProtocolStandardParamData,
  90. ProtocolStandardParamQuery,
  91. RegionQuery,
  92. RegionsPointsItem,
  93. SerialNumberItem,
  94. SerialNumberItemData,
  95. SubmitDeviceGroup,
  96. SubmitSorting,
  97. TempHumidityControlSettings,
  98. VerificationAgreement,
  99. VerificationEquipment,
  100. WarningItem,
  101. } from '@/types';
  102. /**
  103. * 获取认证授权服务 url
  104. */
  105. const apiUaa = (path: string, params?: unknown) => {
  106. const apiUrl = params ? `${path}?${qs.stringify(params)}` : path;
  107. return `/api-uaa${apiUrl}`;
  108. };
  109. /**
  110. * 获取系统服务 url
  111. */
  112. const apiSys = (path: string, params?: unknown) => {
  113. const apiUrl = params ? `${path}?${qs.stringify(params)}` : path;
  114. return `/api-sys${apiUrl}`;
  115. };
  116. /**
  117. * 获取业务服务 url
  118. */
  119. const apiBiz = (path: string, params?: unknown) => {
  120. const apiUrl = params ? `${path}?${qs.stringify(params, { arrayFormat: 'repeat' })}` : path;
  121. return `/api-biz${apiUrl}`;
  122. };
  123. // ----- 认证授权服务 -----
  124. // 登录和注销
  125. export const loginUser = async () => {
  126. const params = {
  127. grant_type: 'password',
  128. username: 'admin1',
  129. password: 'admin',
  130. };
  131. await request(apiUaa('/oauth/token', params), {
  132. method: 'POST',
  133. headers: {
  134. Authorization: 'Basic ' + btoa('unimat:unimat'),
  135. },
  136. });
  137. };
  138. export const logoutUser = async () => {
  139. await request(apiUaa('/oauth/remove/token'));
  140. };
  141. export const refreshUser = async () => {
  142. await request(apiUaa('/oauth/token'));
  143. };
  144. // ----- 系统服务 -----
  145. // 字典类型表
  146. export const getDictTypeData = async (params: DictTypeDataParams) => {
  147. const data = await request<DictTypeData[]>(apiSys('/sysDictType/typeAndData', params));
  148. return data;
  149. };
  150. // 组织表
  151. export const addOrganization = async (params: OrganizationItem) => {
  152. await request(apiSys('/sysOrg/add'), {
  153. method: 'POST',
  154. body: JSON.stringify(params),
  155. });
  156. };
  157. export const addUploadLogo = async (file: Blob) => {
  158. const formData = new FormData();
  159. formData.append('file', file);
  160. await request(apiSys('/sysOrg/uploadLogo'), {
  161. method: 'POST',
  162. body: formData,
  163. });
  164. };
  165. // ----- 业务服务 -----
  166. // 报警事件
  167. export const addAlarmEvent = async (params: AlarmEvent) => {
  168. await request(apiBiz('/alarmEvent/add'), {
  169. method: 'POST',
  170. body: JSON.stringify(params),
  171. });
  172. };
  173. export const alarmEventChangeState = async (params: ChangeState) => {
  174. await request(apiBiz('/alarmEvent/changeState'), {
  175. method: 'POST',
  176. body: JSON.stringify(params),
  177. });
  178. };
  179. export const deleteAlarmEvent = async (id: number) => {
  180. await request(apiBiz(`/alarmEvent/delete/${id}`), {
  181. method: 'POST',
  182. });
  183. };
  184. export const getAlarmEventGetPageList = async (params: AlarmPageParams) => {
  185. const data = await request<EventTriggerData>(apiBiz('/alarmEvent/getPageList'), {
  186. method: 'POST',
  187. body: JSON.stringify(params),
  188. });
  189. return data;
  190. };
  191. export const getAlarmEventInfo = async (id: number) => {
  192. const data = await request<AlarmEvent>(apiBiz(`/alarmEvent/info/${id}`));
  193. return data;
  194. };
  195. export const updateAlarmEvent = async (params: AlarmEvent) => {
  196. await request(apiBiz('/alarmEvent/update'), {
  197. method: 'POST',
  198. body: JSON.stringify(params),
  199. });
  200. };
  201. // 报警历史表
  202. export const getAlarmHistoryList = async (params: AlarmHistory) => {
  203. const data = await request<AlarmEventHistoryItemData>(apiBiz('/alarmHistory/getPageList'), {
  204. method: 'POST',
  205. body: JSON.stringify(params),
  206. });
  207. return data;
  208. };
  209. // 算法配置
  210. export const getAlgorithmConfigInfo = async (devGroupId: number) => {
  211. const data = await request<AlgorithmConfigInfo>(apiBiz(`/algorithmConfig/info/byGroup/${devGroupId}`));
  212. return data;
  213. };
  214. export const addAlgorithmConfigUpdate = async (params: AlgorithmConfigInfo) => {
  215. await request(apiBiz('/algorithmConfig/update'), {
  216. method: 'POST',
  217. body: JSON.stringify(params),
  218. });
  219. };
  220. // 环境监控-监测点预警配置
  221. export const addBatchMonitorPointAlarm = async (params: WarningItem[]) => {
  222. await request(apiBiz('/monitorPointAlarm/addBatch'), {
  223. method: 'POST',
  224. body: JSON.stringify({ monitorPointAlarms: params }),
  225. });
  226. };
  227. export const getMonitorPointAlarm = async (pointId: number) => {
  228. const data = await request<MonitorPointItem[]>(apiBiz(`/monitorPointAlarm/point/${pointId}`));
  229. return data;
  230. };
  231. export const updateBatchMonitorPointAlarm = async (params: WarningItem[]) => {
  232. await request(apiBiz('/monitorPointAlarm/updateBatch'), {
  233. method: 'POST',
  234. body: JSON.stringify({ monitorPointAlarms: params }),
  235. });
  236. };
  237. export const getMonitorPointAlarmHistory = async (devGroupId: number) => {
  238. const data = await request<AlarmHistoryItem[]>(apiBiz(`/monitorPointAlarm/history/${devGroupId}`));
  239. return data;
  240. };
  241. // 环境监控-区域
  242. export const addRegion = async (params: RegionQuery) => {
  243. await request(apiBiz('/region/add'), {
  244. method: 'POST',
  245. body: JSON.stringify(params),
  246. });
  247. };
  248. export const regionUpdate = async (params: RegionQuery) => {
  249. await request(apiBiz('/region/update'), {
  250. method: 'POST',
  251. body: JSON.stringify(params),
  252. });
  253. };
  254. export const regionDelete = async (id: number) => {
  255. await request(apiBiz(`/region/delete/${id}`), {
  256. method: 'POST',
  257. });
  258. };
  259. export const getGroupRegions = async (devGroupId: number) => {
  260. const data = await request<GroupRegions[]>(apiBiz(`/region/groupRegions/${devGroupId}`), {
  261. method: 'POST',
  262. });
  263. return data;
  264. };
  265. export const getRegionsPointsData = async (devGroupId: number) => {
  266. const data = await request<RegionsPointsItem[]>(apiBiz(`/region/pointsData/${devGroupId}`), {
  267. method: 'POST',
  268. });
  269. return data;
  270. };
  271. export const getRegionsPointsValue = async (devGroupId: number, params: { endTime: string }) => {
  272. const data = await request<RegionsPointsItem[]>(apiBiz(`/region/pointsValue/${devGroupId}`), {
  273. method: 'POST',
  274. body: JSON.stringify(params),
  275. });
  276. return data;
  277. };
  278. // 环境监控-监测点
  279. export const addMonitorPoint = async (params: MonitoringForm) => {
  280. await request(apiBiz('/monitorPoint/add'), {
  281. method: 'POST',
  282. body: JSON.stringify(params),
  283. });
  284. };
  285. export const deleteMonitorPoint = async (id: number) => {
  286. await request(apiBiz(`/monitorPoint/delete/${id}`), {
  287. method: 'POST',
  288. });
  289. };
  290. export const updateMonitorPoint = async (params: MonitoringForm) => {
  291. await request(apiBiz('/monitorPoint/update'), {
  292. method: 'POST',
  293. body: JSON.stringify(params),
  294. });
  295. };
  296. export const updateRegionMonitorPoint = async (params: OutdooForm) => {
  297. await request(apiBiz('/region/monitorPoint/update'), {
  298. method: 'POST',
  299. body: JSON.stringify(params),
  300. });
  301. };
  302. export const getMonitorPointInfo = async (id: number) => {
  303. const data = await request<MonitorPointInfo>(apiBiz(`/monitorPoint/info/${id}`));
  304. return data;
  305. };
  306. export const updateLimits = async (params: LimitForm) => {
  307. await request(apiBiz('/monitorPoint/updateLimits'), {
  308. method: 'POST',
  309. body: JSON.stringify(params),
  310. });
  311. };
  312. export const getPointTimeSeries = async (params: PointTimeSeriesQuery, pointId: number) => {
  313. const data = await request<TempHumidityControlSettings>(apiBiz(`/monitorPoint/pointTimeSeries/${pointId}`), {
  314. method: 'POST',
  315. body: JSON.stringify(params),
  316. });
  317. return data;
  318. };
  319. // 设备组列表
  320. export const getPageList = async () => {
  321. const data = await request<DeviceGroupItem[]>(apiBiz('/deviceGroup/getList'), {
  322. method: 'POST',
  323. });
  324. return data;
  325. };
  326. export const addDeviceGroup = async (params: SubmitDeviceGroup) => {
  327. await request(apiBiz('/deviceGroup/add'), {
  328. method: 'POST',
  329. body: JSON.stringify(params),
  330. });
  331. };
  332. export const addDeviceGroupUpdate = async (params: SubmitDeviceGroup) => {
  333. await request(apiBiz('/deviceGroup/update'), {
  334. method: 'POST',
  335. body: JSON.stringify(params),
  336. });
  337. };
  338. export const deleteDeviceGroup = async (id: number) => {
  339. await request(apiBiz(`/deviceGroup/delete/${id}`), {
  340. method: 'POST',
  341. });
  342. };
  343. // 设备列表
  344. export const deviceAdd = async (equipmentInformationForm: EquipmentDetailsForm) => {
  345. const data = await request<number>(apiBiz('/device/add'), {
  346. method: 'POST',
  347. body: JSON.stringify(equipmentInformationForm),
  348. });
  349. return data;
  350. };
  351. export const getDeviceGroupList = async (params: DeviceGroupListQuery) => {
  352. const data = await request<DeviceGroup[]>(apiBiz('/deviceGroup/getDeviceGroupList'), {
  353. method: 'POST',
  354. body: JSON.stringify(params),
  355. });
  356. return data;
  357. };
  358. export const addDeviceBind = async (params: DeviceBindQuery) => {
  359. await request(apiBiz('/device/bind'), {
  360. method: 'POST',
  361. body: JSON.stringify(params),
  362. });
  363. };
  364. export const deviceDeletion = async (ids: number[]) => {
  365. await request(apiBiz('/device/delete/batch'), {
  366. method: 'POST',
  367. body: JSON.stringify(ids),
  368. });
  369. };
  370. export const equipmentDetails = async (id: number) => {
  371. const data = await request<EquipmentDetailsItem>(apiBiz(`/device/getBasicInfo/${id}`), {
  372. method: 'POST',
  373. });
  374. return data;
  375. };
  376. export const queryDevicesList = async (devicesList: DevicesList) => {
  377. const data = await request<DevicesListItemData>(apiBiz('/device/getPageList'), {
  378. method: 'POST',
  379. body: JSON.stringify(devicesList),
  380. });
  381. return data;
  382. };
  383. export const noPaginationDevicesList = async () => {
  384. const data = await request<AllDevicesList[]>(apiBiz('/device/getList'), {
  385. method: 'POST',
  386. });
  387. return data;
  388. };
  389. export const getDeviceListSimple = async (deviceId: number) => {
  390. const data = await request<DeviceParams[]>(apiBiz(`/device/listSimple/${deviceId}`));
  391. return data;
  392. };
  393. export const getDeviceParams = async (deviceId: number, isProcessData: boolean) => {
  394. const data = await request<DeviceParamGroup[]>(apiBiz('/device/protocolParamVerify'), {
  395. method: 'POST',
  396. body: JSON.stringify({
  397. deviceId,
  398. isProcessData,
  399. }),
  400. });
  401. return data;
  402. };
  403. export const getDeviceListOptions = async (deviceId: number) => {
  404. const data = await request<DeviceParamType[]>(apiBiz(`/device/listOptions/${deviceId}`));
  405. return data;
  406. };
  407. // 设备工况
  408. export const getDevWorkTypeCount = async (deviceGroupId: number, deviceTypes: number[]) => {
  409. const data = await request<DeviceTypeCount[]>(apiBiz('/deviceCondition/getTypeCount'), {
  410. method: 'POST',
  411. body: JSON.stringify({
  412. deviceGroupId,
  413. deviceTypes,
  414. }),
  415. });
  416. return data;
  417. };
  418. export const getDevWorkRealTimeData = async (deviceType: number, deviceIds: number[], deviceParamCode: string[]) => {
  419. const data = await request<DevWorkRealTimeData[]>(apiBiz('/deviceCondition/getRTDList'), {
  420. method: 'POST',
  421. body: JSON.stringify({
  422. deviceType,
  423. deviceIds,
  424. deviceParamCode,
  425. }),
  426. });
  427. return data;
  428. };
  429. export const getDevWorkHistoryData = async (params: DevWorkHisDataQuery) => {
  430. const data = await request<DevWorkHistoryData[]>(apiBiz('/deviceCondition/getHisList'), {
  431. method: 'POST',
  432. body: JSON.stringify(params),
  433. });
  434. return data;
  435. };
  436. // 设备网关
  437. export const deviceGatewayUpdate = async (equipmentUpdateForm: EquipmentUpdateForm[]) => {
  438. await request(apiBiz('/deviceGateway/update'), {
  439. method: 'POST',
  440. body: JSON.stringify(equipmentUpdateForm),
  441. });
  442. };
  443. // 设备协议参数验证
  444. export const postParameterVerification = async (deviceId: number) => {
  445. const data = await request<ParameterVerification[]>(apiBiz('/protocolParamVerify/list'), {
  446. method: 'POST',
  447. body: JSON.stringify({
  448. deviceId,
  449. }),
  450. });
  451. return data;
  452. };
  453. // 设备参数分组
  454. export const equipmentParametersList = async (groupingList: GroupingList[]) => {
  455. await request(apiBiz('/deviceParamGroup/update/batch'), {
  456. method: 'POST',
  457. body: JSON.stringify(groupingList),
  458. });
  459. };
  460. export const queryEquipmentParametersList = async (deviceId: number) => {
  461. const data = await request<GroupingListData[]>(apiBiz('/deviceParamGroup/getList'), {
  462. method: 'POST',
  463. body: JSON.stringify({ deviceId }),
  464. });
  465. return data;
  466. };
  467. // 设备参数关系表
  468. export const submitSortingList = async (submitSorting: SubmitSorting[]) => {
  469. await request(apiBiz('/deviceParamGroupRel/update/batch'), {
  470. method: 'POST',
  471. body: JSON.stringify(submitSorting),
  472. });
  473. };
  474. // 设备自定义参数表
  475. export const submitCustomParameters = async (customParameters: CustomParameters[]) => {
  476. await request(apiBiz('/protocolParamCustomDev/update/batch'), {
  477. method: 'POST',
  478. body: JSON.stringify(customParameters),
  479. });
  480. };
  481. // 网关基本信息
  482. export const addGateway = async () => {
  483. await request(apiBiz('/gateway/add'));
  484. };
  485. export const gatewayDelete = async (id: number) => {
  486. await request(apiBiz(`/gateway/delete/${id}`), {
  487. method: 'POST',
  488. });
  489. };
  490. export const getAllGatewayList = async () => {
  491. const data = await request<SerialNumberItem[]>(apiBiz('/gateway/getGtwLinkList'), {
  492. method: 'POST',
  493. });
  494. return data;
  495. };
  496. export const validateGatewayInfo = async (registerGatewayForm: VerificationEquipment) => {
  497. const data = await request<GatewayInformation>(apiBiz('/gateway/validate', registerGatewayForm), {
  498. method: 'POST',
  499. });
  500. return data;
  501. };
  502. export const gatewayList = async (gatewayBody: GatewayBody) => {
  503. const data = await request<GatewayListItemData>(apiBiz('/gateway/getPageList'), {
  504. method: 'POST',
  505. body: JSON.stringify(gatewayBody),
  506. });
  507. return data;
  508. };
  509. // 网关通讯
  510. export const gatewayLinkAdd = async (addInterface: AddInterface) => {
  511. await request(apiBiz('/gatewayLink/add'), {
  512. method: 'POST',
  513. body: JSON.stringify(addInterface),
  514. });
  515. };
  516. export const addGatewayLinkBatchUpdate = async (params: BatchUpdate[]) => {
  517. await request(apiBiz('/gatewayLink/batchUpdate'), {
  518. method: 'POST',
  519. body: JSON.stringify({ gatewayLinks: params }),
  520. });
  521. };
  522. export const gatewayLinkDelete = async (id: number) => {
  523. await request(apiBiz(`/gatewayLink/delete/${id}`), {
  524. method: 'POST',
  525. });
  526. };
  527. export const gatewayLinkGetList = async (gatewayId: number) => {
  528. const data = await request<InterfaceData[]>(apiBiz(`/gatewayLink/getList/${gatewayId}`), {
  529. method: 'POST',
  530. });
  531. return data;
  532. };
  533. export const gatewayLinkUpdate = async (agreementUpdate: AgreementUpdate) => {
  534. await request(apiBiz('/gatewayLink/update'), {
  535. method: 'POST',
  536. body: JSON.stringify(agreementUpdate),
  537. });
  538. };
  539. export const getGatewayLinks = async (gatewayId: number) => {
  540. const data = await request<InterfaceLsit[]>(apiBiz(`/gatewayLink/getGatewayLinks/${gatewayId}`));
  541. return data;
  542. };
  543. // 网关型号
  544. export const getGatewayModelInfo = async (id: number) => {
  545. const data = await request<GatewayModelInfo>(apiBiz(`/gatewayModel/info/${id}`));
  546. return data;
  547. };
  548. export const getGatewayModelInterfaces = async (id: number) => {
  549. const data = await request<GatewayInterface[]>(apiBiz(`/gatewayModel/interfaces/${id}`), {
  550. method: 'POST',
  551. });
  552. return data;
  553. };
  554. // 网关物理接口协议
  555. export const obtainListPhysicalInterfaces = async (id: number) => {
  556. const data = await request<ListPhysicalInterfaces[]>(apiBiz(`/gatewayInterfaceProtocol/getProtocols/${id}`));
  557. return data;
  558. };
  559. // 网关型号物理接口
  560. export const obtainListInterfaces = async (id: number) => {
  561. const data = await request<ListInterfaces[]>(apiBiz(`/gatewayPhysicalInterface/getInterfaces/${id}`));
  562. return data;
  563. };
  564. // 网关接口协议
  565. export const getParamValueListAutomatic = async (params: ParamValueListAutomaticQuery) => {
  566. const data = await request<AutomaticMatching>(apiBiz('/gatewayLinkProtocol/getParamValueListAutomatic'), {
  567. method: 'POST',
  568. body: JSON.stringify(params),
  569. });
  570. return data;
  571. };
  572. export const getAllGatewayLinkProtocol = async <T>(params: GatewayLinkProtocolQuery) => {
  573. const data = await request<T>(apiBiz('/gatewayLinkProtocol/getLinkParams'), {
  574. method: 'POST',
  575. body: JSON.stringify(params),
  576. });
  577. return data;
  578. };
  579. export const gatewayLinkProtocolList = async <T>(protocolListItem: ProtocolListItem) => {
  580. const data = await request<T>(apiBiz('/gatewayLinkProtocol/getParamPageList'), {
  581. method: 'POST',
  582. body: JSON.stringify(protocolListItem),
  583. });
  584. return data;
  585. };
  586. export const gatewayLinkProtocolGatewayList = async (protocolGatewayListListItem: ProtocolGatewayListListItem) => {
  587. const data = await request<ListEquipmentParametersItemData>(
  588. apiBiz('/gatewayLinkProtocol/getParamPageListByGateway'),
  589. {
  590. method: 'POST',
  591. body: JSON.stringify(protocolGatewayListListItem),
  592. },
  593. );
  594. return data;
  595. };
  596. export const gatewayLinkList = async (id: number) => {
  597. const data = await request<VerificationAgreement[]>(apiBiz(`/gatewayLinkProtocol/getProtocolInfoList/${id}`), {
  598. method: 'POST',
  599. });
  600. return data;
  601. };
  602. export const gatewayLinkProtocolReset = async (protocolReset: ProtocolReset) => {
  603. await request(apiBiz('/gatewayLinkProtocol/reset'), {
  604. method: 'POST',
  605. body: JSON.stringify(protocolReset),
  606. });
  607. };
  608. export const postProtocolCandidatesList = async (protocolList: ProtocolList, gatewayId: number) => {
  609. const data = await request<ProtocolItemData>(apiBiz(`/gatewayLinkProtocol/getProtocolCandidates/${gatewayId}`), {
  610. method: 'POST',
  611. body: JSON.stringify(protocolList),
  612. });
  613. return data;
  614. };
  615. export const gatewayParameterList = async (gatewayParameterBody: GatewayParameterBody) => {
  616. const data = await request<GatewayParameterItemData>(apiBiz('/gatewayLinkProtocol/getParamValuePageList'), {
  617. method: 'POST',
  618. body: JSON.stringify(gatewayParameterBody),
  619. });
  620. return data;
  621. };
  622. // 组织网关
  623. export const orgGatewayRegister = async (gatewayId: number) => {
  624. await request(apiBiz('/orgGateway/register'), {
  625. method: 'POST',
  626. body: JSON.stringify({ gatewayId }),
  627. });
  628. };
  629. export const orgGatewayUnregister = async (gatewayId: number) => {
  630. await request(apiBiz(`/orgGateway/unregister/${gatewayId}`), {
  631. method: 'POST',
  632. });
  633. };
  634. export const orgGatewaySerialNumber = async (protocolList: ProtocolList) => {
  635. const data = await request<SerialNumberItemData>(apiBiz('/orgGateway/getGatewayPageList'), {
  636. method: 'POST',
  637. body: JSON.stringify(protocolList),
  638. });
  639. return data;
  640. };
  641. // 能耗分析
  642. export const getElectricityDataStatistics = async (params: ElectricityStatisticsQuery) => {
  643. const data = await request<ElectricityStatisticsResult>(
  644. apiBiz('/deviceElectricityDataChange/getElectricityDataStatistics'),
  645. {
  646. method: 'POST',
  647. body: JSON.stringify(params),
  648. },
  649. );
  650. return data;
  651. };
  652. export const downloadElectricityHisData = async (params: ElectricityStatisticsQuery) => {
  653. const blob = await request<Blob>(apiBiz('/deviceElectricityDataChange/download', params));
  654. return blob;
  655. };
  656. // 能效分析
  657. export const getCoolingRealTimeData = async (params: CoolingRealTimeDataQuery) => {
  658. const data = await request<CoolingRealTimeDataResult>(apiBiz('/deviceCoolingData/rtd'), {
  659. method: 'POST',
  660. body: JSON.stringify(params),
  661. });
  662. return data;
  663. };
  664. export const getCoolingHistoryData = async (params: CoolingHistoryDataQuery) => {
  665. const data = await request<CoolingHistoryDataResult>(apiBiz('/deviceCoolingData/his'), {
  666. method: 'POST',
  667. body: JSON.stringify(params),
  668. });
  669. return data;
  670. };
  671. export const getCoolingDataStatistics = async (params: CoolingStatisticsQuery) => {
  672. const data = await request<CoolingStatisticsResult>(apiBiz('/deviceCoolingDataChange/getCoolingDataStatistics'), {
  673. method: 'POST',
  674. body: JSON.stringify(params),
  675. });
  676. return data;
  677. };
  678. export const downloadCoolingHisData = async (params: CoolingStatisticsQuery) => {
  679. const blob = await request<Blob>(apiBiz('/deviceCoolingDataChange/download', params));
  680. return blob;
  681. };
  682. // 平台标准协议参数
  683. export const getProtocolStandardParam = async (paramId: number) => {
  684. const data = await request<ProtocolStandardParam>(apiBiz(`/platformProtocolInfo/info/${paramId}`));
  685. return data;
  686. };
  687. export const getProtocolStandardParamList = async (params: ProtocolStandardParamQuery) => {
  688. const data = await request<ProtocolStandardParamData>(apiBiz('/platformProtocolInfo/getPageList'), {
  689. method: 'POST',
  690. body: JSON.stringify(params),
  691. });
  692. return data;
  693. };
  694. // 协议参数
  695. export const addProtocolParam = async (params: Partial<ProtocolParamInfo>) => {
  696. await request(apiBiz('/protocolParamInfo/add'), {
  697. method: 'POST',
  698. body: JSON.stringify(params),
  699. });
  700. };
  701. export const updateProtocolParam = async (params: Partial<ProtocolParamInfo>) => {
  702. await request(apiBiz('/protocolParamInfo/update'), {
  703. method: 'POST',
  704. body: JSON.stringify(params),
  705. });
  706. };
  707. export const getProtocolParamList = async (params: ProtocolParamSearchParams) => {
  708. const data = await request<ProtocolParamData>(apiBiz('/protocolParamInfo/getPageList'), {
  709. method: 'POST',
  710. body: JSON.stringify(params),
  711. });
  712. return data;
  713. };
  714. export const batchDeleleProtocolParam = async (params: number[]) => {
  715. await request(apiBiz('/protocolParamInfo/batchDeleleByIds'), {
  716. method: 'POST',
  717. body: JSON.stringify(params),
  718. });
  719. };
  720. // 协议基本信息
  721. export const addProtocolBaseInfo = async (params: Partial<ProtocolBaseInfo>) => {
  722. const data = await request<number>(apiBiz('/protocolBaseInfo/add'), {
  723. method: 'POST',
  724. body: JSON.stringify(params),
  725. });
  726. return data;
  727. };
  728. export const downloadProtocolTemplate = async (fileName: string) => {
  729. const blob = await request<Blob>(apiBiz(`/protocolBaseInfo/downloadTemplate/${fileName}`));
  730. return blob;
  731. };
  732. export const uploadUserProtocol = async (protocolType: string, file: Blob) => {
  733. const formData = new FormData();
  734. formData.append('file', file);
  735. const data = await request<Pick<ProtocolBaseInfo, 'id' | 'protocolName' | 'protocolType'>>(
  736. apiBiz('/protocolBaseInfo/uploadUserTemplate', { protocolType }),
  737. {
  738. method: 'POST',
  739. body: formData,
  740. },
  741. );
  742. return data;
  743. };
  744. export const reUploadUserProtocol = async (protocolType: string, id: number, file: Blob) => {
  745. const formData = new FormData();
  746. formData.append('file', file);
  747. const data = await request<Pick<ProtocolBaseInfo, 'id' | 'protocolName' | 'protocolType'>>(
  748. apiBiz('/protocolBaseInfo/resetConfiguration', { protocolType, id }),
  749. {
  750. method: 'POST',
  751. body: formData,
  752. },
  753. );
  754. return data;
  755. };
  756. export const downloadUserProtocol = async (id: number) => {
  757. const blob = await request<Blob>(apiBiz('/protocolBaseInfo/downloadUserProtocol', { id }));
  758. return blob;
  759. };
  760. /**
  761. * @deprecated
  762. */
  763. export const getUploadProtocol = async (protocolType: string, protocolName: string) => {
  764. const data = await request<ProtocolBaseInfo>(
  765. apiBiz('/protocolBaseInfo/findUploadProtocolBaseInfo', {
  766. protocolType,
  767. protocolName,
  768. }),
  769. );
  770. return data;
  771. };
  772. export const getProtocolBaseInfo = async (id: number) => {
  773. const data = await request<ProtocolBaseInfo>(apiBiz(`/protocolBaseInfo/info/${id}`));
  774. return data;
  775. };
  776. export const updateProtocolBaseInfo = async (params: Partial<ProtocolBaseInfo>) => {
  777. await request(apiBiz('/protocolBaseInfo/update'), {
  778. method: 'POST',
  779. body: JSON.stringify(params),
  780. });
  781. };
  782. export const deleteProtocolBaseInfo = async (id: number) => {
  783. await request(apiBiz(`/protocolBaseInfo/delete/${id}`), {
  784. method: 'POST',
  785. });
  786. };
  787. export const completeProtocolConfig = async (id: number) => {
  788. await request(apiBiz(`/protocolBaseInfo/completeConfiguration/${id}`), {
  789. method: 'POST',
  790. });
  791. };
  792. export const getProtocolList = async (params: ProtocolListQuery) => {
  793. const data = await request<ProtocolListData>(apiBiz('/protocolBaseInfo/getPageList'), {
  794. method: 'POST',
  795. body: JSON.stringify(params),
  796. });
  797. return data;
  798. };
  799. // 协议参数表
  800. export const postProtocolPageList = async (postProtocolPage: PostProtocolPage) => {
  801. const data = await request<PostProtocolPageItemData>(apiBiz('/protocolParamInfo/page/list'), {
  802. method: 'POST',
  803. body: JSON.stringify(postProtocolPage),
  804. });
  805. return data;
  806. };
  807. export const postProtocolGetList = async (getListItem: GetListItem) => {
  808. const data = await request<PostProtocolPageItem[]>(apiBiz('/protocolParamInfo/getList'), {
  809. method: 'POST',
  810. body: JSON.stringify(getListItem),
  811. });
  812. return data;
  813. };
  814. // 全局参数
  815. export const groupList = async (listInfo: ListInfo) => {
  816. const data = await request<EquipmentTypeItem[]>(apiBiz('/deviceGlobalData/getList'), {
  817. method: 'POST',
  818. body: JSON.stringify(listInfo),
  819. });
  820. return data;
  821. };
  822. // 组态
  823. export const getGroupModuleInfo = async (params: GroupModuleQuery) => {
  824. const data = await request<GroupModuleInfo>(apiBiz('/moduleInfo/info'), {
  825. method: 'POST',
  826. body: JSON.stringify(params),
  827. });
  828. return data;
  829. };