equipmentControl.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. import { FormattedMessage, useModel } from 'umi';
  2. import {
  3. changeAllAirHttp,
  4. changeAirHttp,
  5. setEquipeHttp,
  6. setallLampHttp,
  7. getStatusHttp,
  8. getLampHttp,
  9. getFeedbackDocumentsHttp
  10. } from '@/services/ant-design-pro/equipment';
  11. import { Spin, Modal, message } from 'antd';
  12. import { setallLamps } from '@/pages/Equipment/checLampStatus.js';
  13. //开关 单个或者全部灯
  14. export const changeLight = (type, itemarr, getDeviceStatus, status) => {
  15. const setType = status === '打开' ? true : false; // 10关闭 12开启
  16. var paramsArr = [];
  17. itemarr.forEach((citem) => {
  18. citem.equipList.forEach((item) => {
  19. if (item.equipType == 'light') {
  20. paramsArr.push({
  21. id: item.id,
  22. switch: setType,
  23. });
  24. }
  25. });
  26. });
  27. setallLamps(paramsArr, getDeviceStatus);
  28. };
  29. //开关 单个或者全部窗帘 0是关闭 1 是开启 2 是部分开启
  30. export const changeCurtain = (type, itemarr, getDeviceStatus, status) => {
  31. const setType = status === '打开' ? 'EquipOnSet' : 'EquipOffSet';
  32. var paramsArr = [];
  33. itemarr.forEach((citem) => {
  34. citem.equipList.forEach((item) => {
  35. if (item.equipType == 'curtain') {
  36. paramsArr.push({
  37. equipmentCategory: 'CFSSES',
  38. infoCode: setType,
  39. value: 1,
  40. objectId: item.id,
  41. });
  42. }
  43. });
  44. });
  45. //发送指令
  46. setEquipeHttp(paramsArr);
  47. message.success('指令下发成功');
  48. //这是在手动改变状态
  49. getDeviceStatus();
  50. };
  51. //开关单个空调 0是关闭 1 是开启 2 是部分开启
  52. export const changeAir = (sitem, index, getDeviceStatus) => {
  53. const itemId = sitem.airConditioner === 0 ? 12 : 10; // 10关闭 12开启
  54. const paramsObj = {
  55. objectId: sitem.id, // 空间id
  56. valueType: 1, // 固定为1 1
  57. itemId: itemId,
  58. };
  59. changeAirHttp(paramsObj).then((res) => {
  60. if (res.result == 'success') {
  61. message.success('指令下发成功');
  62. // // sitem.airConditioner = res.isClose ? 0 : 1; //改变某空间空调的状态
  63. // //mapCombineList[index]['airConditioner'] = res.isClose ? 0 : 1;
  64. // var mapCopy = JSON.parse(JSON.stringify(mapCombineList));
  65. // mapCopy[index]['airConditioner'] = res.isClose ? 0 : 1;
  66. // setMapCombineList(mapCopy);
  67. getDeviceStatus();
  68. } else {
  69. message.error('操作失败,请重试');
  70. }
  71. });
  72. };
  73. //开关全部空调
  74. export const changeAllAir = (itemarr, getDeviceStatus, status, projectId) => {
  75. let paramsArr = [];
  76. itemarr.forEach((sitem) => {
  77. const itemId = status === '打开' ? 12 : 10; // 10关闭 12开启
  78. paramsArr.push({
  79. projectId: projectId,
  80. objectId: sitem.id, // 空间id
  81. valueType: 1, // 固定为1 1
  82. itemId: itemId,
  83. });
  84. });
  85. changeAllAirHttp(paramsArr).then((res) => {
  86. if (res.result == 'success') {
  87. message.success('指令下发成功');
  88. getDeviceStatus();
  89. } else {
  90. message.error('操作失败,请重试');
  91. }
  92. });
  93. };
  94. //查询 单个灯的状态
  95. export const getLamp = (sitem, callback, num) => {
  96. num = num - 1;
  97. getLampHttp(sitem.id).then((res) => {
  98. if (res.result != 'success') return;
  99. const arr = res.content || [];
  100. //1开 0 关
  101. let totalIsOpen = 0;
  102. arr.forEach((item) => {
  103. if (item.runStatus) {
  104. totalIsOpen = 1;
  105. }
  106. });
  107. //说明状态改变
  108. if (sitem.light !== totalIsOpen) {
  109. callback(totalIsOpen);
  110. debugger;
  111. return;
  112. } else if (num == 0) {
  113. return;
  114. }
  115. debugger;
  116. getLamp(sitem, callback, num);
  117. });
  118. };
  119. //查询 单个空调的状态
  120. export const getAirInfo = (sitem, callback, num, projectId) => {
  121. debugger;
  122. num = num - 1;
  123. const paramsObj = {
  124. objectId: sitem.id,
  125. projectId: projectId,
  126. };
  127. getFeedbackDocumentsHttp(paramsObj).then((res) => {
  128. //1开 0 关
  129. const totalIsOpen = res.icon == 7 ? 0 : 1;
  130. //说明状态改变
  131. if (sitem.airConditioner !== totalIsOpen) {
  132. callback(totalIsOpen);
  133. debugger;
  134. return;
  135. } else if (num == 0) {
  136. return;
  137. }
  138. debugger;
  139. getAirInfo(sitem, callback, num, projectId);
  140. });
  141. };