BuildingService.java 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. package com.project.zcustom.tools;
  2. import com.alibaba.fastjson2.JSONObject;
  3. import com.project.common.utils.StringUtils;
  4. import com.project.common.utils.http.HttpUtils;
  5. import com.project.zcustom.domain.addional.LargeBuilding;
  6. import com.project.zcustom.domain.addional.LargeBuildingControl;
  7. import com.project.zcustom.domain.addional.LargeBuildingControlAmmeterDetail;
  8. import com.project.zcustom.domain.plat.PlatApiRecord;
  9. import com.project.zcustom.mapper.unit.PlatBuildingMapper;
  10. import com.project.zcustom.service.plat.IPlatApiRecordService;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import javax.annotation.Resource;
  14. import java.util.ArrayList;
  15. import java.util.List;
  16. /**
  17. * @Description 楼宇运行监控接口
  18. * @Author bqyang
  19. * @Date 2025/2/10 16:58
  20. * @Version 1.0
  21. */
  22. @Service
  23. public class BuildingService {
  24. @Autowired
  25. private PlatBuildingMapper platBuildingMapper;
  26. @Resource
  27. IPlatApiRecordService iPlatApiRecordService;
  28. /**
  29. * 楼宇中控 接口数据同步
  30. */
  31. public void getLeftBuildingData(){
  32. String controlEquipment = repeat(ApiUrlConfig.getControlEquipment(), null);
  33. JSONObject jsonObject = JSONObject.parseObject(controlEquipment);
  34. Long normalNum = Long.valueOf(jsonObject.getJSONObject("sj").getString("zcdw"));
  35. Long abnormalNum = Long.valueOf(jsonObject.getJSONObject("sj").getString("ycdw"));
  36. LargeBuildingControl largeBuildingControl = new LargeBuildingControl(
  37. repeat(ApiUrlConfig.getControlElectricity(), null),
  38. repeat(ApiUrlConfig.getControlElectricityRoom(), null),
  39. repeat(ApiUrlConfig.getControlTodaySum(), null),
  40. repeat(ApiUrlConfig.getControlMonthSum(), "type=一号配电室"),
  41. repeat(ApiUrlConfig.getControlMonthSum(), "type=二号配电室"),
  42. repeat(ApiUrlConfig.getControlMonthSum(), "type=三号配电室"),
  43. repeat(ApiUrlConfig.getControlImportantSum(), "type=一号配电室"),
  44. repeat(ApiUrlConfig.getControlImportantSum(), "type=二号配电室"),
  45. repeat(ApiUrlConfig.getControlImportantSum(), "type=三号配电室"),
  46. repeat(ApiUrlConfig.getControlEquipment(), null),
  47. normalNum,
  48. abnormalNum,
  49. repeat(ApiUrlConfig.getControlAlarm(), null),
  50. repeat(ApiUrlConfig.getControlWater(), "position=23F"),
  51. repeat(ApiUrlConfig.getControlWater(), "position=负二")
  52. );
  53. if (platBuildingMapper.getExist() > 0){
  54. platBuildingMapper.updateBuildingControl(largeBuildingControl);
  55. }
  56. else platBuildingMapper.addBuildingControl(largeBuildingControl);
  57. }
  58. /**
  59. * 电表、异常明细
  60. */
  61. public void getLeftBuildingDataDetail(){
  62. LargeBuildingControl largeBuildingControl = new LargeBuildingControl();
  63. largeBuildingControl.setAbnormalPointOne(repeat(ApiUrlConfig.getControlAlertDetails(), "type=电表"));
  64. largeBuildingControl.setAbnormalPointTwo(repeat(ApiUrlConfig.getControlAlertDetails(), "type=水浸"));
  65. largeBuildingControl.setAbnormalPointThree(repeat(ApiUrlConfig.getControlAlertDetails(), "type=烟雾"));
  66. largeBuildingControl.setAbnormalPointFour(repeat(ApiUrlConfig.getControlAlertDetails(), "type=液位"));
  67. if (platBuildingMapper.getExist() > 0){
  68. platBuildingMapper.updateBuildingControl(largeBuildingControl);
  69. }
  70. else platBuildingMapper.addBuildingControl(largeBuildingControl);
  71. platBuildingMapper.deleteAmmeterDetails();
  72. String[] arr = {
  73. "光伏",
  74. "制冷机组",
  75. "公共照明",
  76. "生活水泵",
  77. "楼外设备",
  78. "消防",
  79. "供热设备",
  80. "冷源泵",
  81. "充电桩",
  82. "电梯",
  83. "厨房",
  84. "热源泵",
  85. "地下室",
  86. "办公",
  87. "通信辅助设备"
  88. };
  89. List<LargeBuildingControlAmmeterDetail> list = new ArrayList<>();
  90. for (int i=0; i<arr.length; i++){
  91. LargeBuildingControlAmmeterDetail largeBuildingControlAmmeterDetail = new LargeBuildingControlAmmeterDetail();
  92. largeBuildingControlAmmeterDetail.setAmmeterDetail(repeat(ApiUrlConfig.getControlElectricityDetail(), "type=" + arr[i]));
  93. largeBuildingControlAmmeterDetail.setType(arr[i]);
  94. list.add(largeBuildingControlAmmeterDetail);
  95. }
  96. platBuildingMapper.addAmmeterDetails(list);
  97. }
  98. /**
  99. * 办公能耗 / 大楼安防 接口数据同步
  100. */
  101. public void getRightBuildingDataFirstHalf(){
  102. LargeBuilding largeBuilding = new LargeBuilding();
  103. largeBuilding.setJsonFrequency(repeat(ApiUrlConfig.getJsonFrequency(), null));
  104. largeBuilding.setJsonPatrol(repeat(ApiUrlConfig.getJsonPatrol(), null));
  105. largeBuilding.setJsonPatrolPoint(repeat(ApiUrlConfig.getJsonPatrolPoint(), null));
  106. largeBuilding.setJsonPowerWaterMonth((repeat(ApiUrlConfig.getJsonPowerWaterMonth(), null)));
  107. largeBuilding.setJsonTarget(repeat(ApiUrlConfig.getJsonTarget(), null));
  108. largeBuilding.setJsonUseElectricity(repeat(ApiUrlConfig.getJsonUseElectricity(), null));
  109. largeBuilding.setJsonGreenElectricity(repeat(ApiUrlConfig.getJsonGreenElectricity(), null));
  110. largeBuilding.setJsonCarbon(repeat(ApiUrlConfig.getJsonCarbon(), null));
  111. largeBuilding.setJsonEnergyYear(repeat(ApiUrlConfig.getJsonEnergyYear(), null));
  112. largeBuilding.setJsonPowerYear(repeat(ApiUrlConfig.getJsonPowerYear(), null));
  113. largeBuilding.setJsonWaterYear(repeat(ApiUrlConfig.getJsonWaterYear(), null));
  114. if (platBuildingMapper.getCount() > 0){
  115. platBuildingMapper.updateBuilding(largeBuilding);
  116. }
  117. else {
  118. platBuildingMapper.insertBuilding(largeBuilding);
  119. }
  120. }
  121. /**
  122. * 办公能耗 空气概况
  123. * 该接口请求频率 5分钟一次
  124. */
  125. public void getRightBuildingDataSecondHalf(){
  126. LargeBuilding largeBuilding = new LargeBuilding();
  127. largeBuilding.setJsonAir(repeat(ApiUrlConfig.getJsonAir(), null));
  128. if (platBuildingMapper.getCount() > 0){
  129. platBuildingMapper.updateBuilding(largeBuilding);
  130. }
  131. else {
  132. platBuildingMapper.insertBuilding(largeBuilding);
  133. }
  134. }
  135. public String repeat(String url, String params){
  136. String result = null;
  137. try {
  138. if (StringUtils.isNotBlank(params)){
  139. String res = HttpUtils.sendGet(url, params);
  140. if (StringUtils.isNotBlank(res)){
  141. JSONObject jsonObject = JSONObject.parseObject(res);
  142. result = jsonObject.getString("data");
  143. }
  144. } else {
  145. String res = HttpUtils.sendGet(url);
  146. if (StringUtils.isNotBlank(res)){
  147. JSONObject jsonObject = JSONObject.parseObject(res);
  148. result = jsonObject.getString("data");
  149. }
  150. }
  151. } catch (Exception e){
  152. // 添加接口请求记录
  153. PlatApiRecord platApiRecord = new PlatApiRecord();
  154. platApiRecord.setApiUrl(url);
  155. platApiRecord.setApiResult(result);
  156. iPlatApiRecordService.save(platApiRecord);
  157. return result;
  158. }
  159. // 添加接口请求记录
  160. PlatApiRecord platApiRecord = new PlatApiRecord();
  161. platApiRecord.setApiUrl(url);
  162. platApiRecord.setApiResult(result);
  163. iPlatApiRecordService.save(platApiRecord);
  164. return result;
  165. }
  166. }