index.ts 31 KB

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