BuildingService.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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.LargeCar;
  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. /**
  15. * @Description 楼宇运行监控接口
  16. * @Author bqyang
  17. * @Date 2025/2/10 16:58
  18. * @Version 1.0
  19. */
  20. @Service
  21. public class BuildingService {
  22. @Autowired
  23. private PlatBuildingMapper platBuildingMapper;
  24. @Resource
  25. IPlatApiRecordService iPlatApiRecordService;
  26. /**
  27. * 楼宇中控 接口数据同步
  28. */
  29. public void getLeftBuildingData(){
  30. String controlEquipment = repeat(ApiUrlConfig.getControlEquipment(), null);
  31. JSONObject jsonObject = JSONObject.parseObject(controlEquipment);
  32. Long normalNum = Long.valueOf(jsonObject.getJSONObject("sj").getString("zcdw"));
  33. Long abnormalNum = Long.valueOf(jsonObject.getJSONObject("sj").getString("ycdw"));
  34. LargeBuildingControl largeBuildingControl = new LargeBuildingControl(
  35. repeat(ApiUrlConfig.getControlElectricity(), null),
  36. repeat(ApiUrlConfig.getControlElectricityRoom(), null),
  37. repeat(ApiUrlConfig.getControlTodaySum(), null),
  38. repeat(ApiUrlConfig.getControlMonthSum(), "type=一号配电室"),
  39. repeat(ApiUrlConfig.getControlMonthSum(), "type=二号配电室"),
  40. repeat(ApiUrlConfig.getControlMonthSum(), "type=三号配电室"),
  41. repeat(ApiUrlConfig.getControlImportantSum(), "type=一号配电室"),
  42. repeat(ApiUrlConfig.getControlImportantSum(), "type=二号配电室"),
  43. repeat(ApiUrlConfig.getControlImportantSum(), "type=三号配电室"),
  44. repeat(ApiUrlConfig.getControlEquipment(), null),
  45. normalNum,
  46. abnormalNum,
  47. repeat(ApiUrlConfig.getControlAlarm(), null),
  48. repeat(ApiUrlConfig.getControlWater(), "position=23F"),
  49. repeat(ApiUrlConfig.getControlWater(), "position=负二")
  50. );
  51. if (platBuildingMapper.getExist() > 0){
  52. platBuildingMapper.updateBuildingControl(largeBuildingControl);
  53. }
  54. else platBuildingMapper.addBuildingControl(largeBuildingControl);
  55. }
  56. /**
  57. * 办公能耗 / 大楼安防 接口数据同步
  58. */
  59. public void getRightBuildingDataFirstHalf(){
  60. LargeBuilding largeBuilding = new LargeBuilding();
  61. largeBuilding.setJsonFrequency(repeat(ApiUrlConfig.getJsonFrequency(), null));
  62. largeBuilding.setJsonPatrol(repeat(ApiUrlConfig.getJsonPatrol(), null));
  63. largeBuilding.setJsonPatrolPoint(repeat(ApiUrlConfig.getJsonPatrolPoint(), null));
  64. largeBuilding.setJsonPowerWaterMonth((repeat(ApiUrlConfig.getJsonPowerWaterMonth(), null)));
  65. largeBuilding.setJsonTarget(repeat(ApiUrlConfig.getJsonTarget(), null));
  66. largeBuilding.setJsonUseElectricity(repeat(ApiUrlConfig.getJsonUseElectricity(), null));
  67. largeBuilding.setJsonGreenElectricity(repeat(ApiUrlConfig.getJsonGreenElectricity(), null));
  68. largeBuilding.setJsonCarbon(repeat(ApiUrlConfig.getJsonCarbon(), null));
  69. largeBuilding.setJsonEnergyYear(repeat(ApiUrlConfig.getJsonEnergyYear(), null));
  70. largeBuilding.setJsonPowerYear(repeat(ApiUrlConfig.getJsonPowerYear(), null));
  71. largeBuilding.setJsonWaterYear(repeat(ApiUrlConfig.getJsonWaterYear(), null));
  72. if (platBuildingMapper.getCount() > 0){
  73. platBuildingMapper.updateBuilding(largeBuilding);
  74. }
  75. else {
  76. platBuildingMapper.insertBuilding(largeBuilding);
  77. }
  78. }
  79. /**
  80. * 办公能耗 空气概况
  81. * 该接口请求频率 5分钟一次
  82. */
  83. public void getRightBuildingDataSecondHalf(){
  84. LargeBuilding largeBuilding = new LargeBuilding();
  85. largeBuilding.setJsonAir(repeat(ApiUrlConfig.getJsonAir(), null));
  86. if (platBuildingMapper.getCount() > 0){
  87. platBuildingMapper.updateBuilding(largeBuilding);
  88. }
  89. else {
  90. platBuildingMapper.insertBuilding(largeBuilding);
  91. }
  92. }
  93. public String repeat(String url, String params){
  94. String result = null;
  95. try {
  96. if (StringUtils.isNotBlank(params)){
  97. String res = HttpUtils.sendGet(url, params);
  98. if (StringUtils.isNotBlank(res)){
  99. JSONObject jsonObject = JSONObject.parseObject(res);
  100. result = jsonObject.getString("data");
  101. }
  102. } else {
  103. String res = HttpUtils.sendGet(url);
  104. if (StringUtils.isNotBlank(res)){
  105. JSONObject jsonObject = JSONObject.parseObject(res);
  106. result = jsonObject.getString("data");
  107. }
  108. }
  109. } catch (Exception e){
  110. result = e.getMessage();
  111. }
  112. // 添加接口请求记录
  113. PlatApiRecord platApiRecord = new PlatApiRecord();
  114. platApiRecord.setApiUrl(url);
  115. platApiRecord.setApiResult(result);
  116. iPlatApiRecordService.save(platApiRecord);
  117. return result;
  118. }
  119. }