TblDataController.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package com.ruoyi.data.controller;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import cn.hutool.json.JSONArray;
  5. import cn.hutool.json.JSONObject;
  6. import com.ruoyi.common.core.domain.entity.SysDictData;
  7. import com.ruoyi.common.core.domain.entity.SysDictType;
  8. import com.ruoyi.data.domain.*;
  9. import com.ruoyi.data.domain.bo.*;
  10. import com.ruoyi.data.domain.vo.*;
  11. import com.ruoyi.data.service.*;
  12. import com.ruoyi.system.service.ISysDictTypeService;
  13. import lombok.RequiredArgsConstructor;
  14. import org.springframework.web.bind.annotation.*;
  15. import org.springframework.validation.annotation.Validated;
  16. import com.ruoyi.common.core.controller.BaseController;
  17. import com.ruoyi.common.core.domain.PageQuery;
  18. import com.ruoyi.common.core.page.TableDataInfo;
  19. /**
  20. * 网关设备点位数据
  21. *
  22. * @author ruoyi
  23. * @date 2023-12-05
  24. */
  25. @Validated
  26. @RequiredArgsConstructor
  27. @RestController
  28. @RequestMapping("/data/device")
  29. public class TblDataController extends BaseController {
  30. private final ITblEquipmentService iTblEquipmentService;
  31. private final ITblDatapointService iTblDatapointService;
  32. private final ITblGatewayService iTblGatewayService;
  33. private final ITblGatewayEquipmentService iTblGatewayEquipmentService;
  34. private final ITblSensorService iTblSensorService;
  35. private final ITblUnitService iTblUnitService;
  36. private final ISysDictTypeService iSysDictTypeService;
  37. /**
  38. * 查询网关设备列表
  39. */
  40. @GetMapping("/deviceList")
  41. public TableDataInfo<GateWaySensor> list(TblEquipmentBo bo, PageQuery pageQuery) {
  42. TableDataInfo<GateWaySensor> obj = new TableDataInfo<GateWaySensor>();
  43. TblGatewayBo tblGatewayBo = new TblGatewayBo();
  44. List<SysDictData> sysDictTypeList = iSysDictTypeService.selectDictDataByType("protocal_type");
  45. List<TblGatewayVo> gatewayVoList = iTblGatewayService.queryList(tblGatewayBo);
  46. TblEquipmentBo tblEquipmentBo = new TblEquipmentBo();
  47. List<GateWaySensor> gateWaySensorList = new ArrayList<GateWaySensor>();
  48. List<TblEquipmentVo> equipmentVoList = iTblEquipmentService.queryList(tblEquipmentBo);
  49. List<SensorPoint> sensorPointList = getSensorPointList();
  50. for(TblGatewayVo tblGatewayVo:gatewayVoList){
  51. GateWaySensor gateWaySensor = new GateWaySensor();
  52. gateWaySensor.setTblGateway(tblGatewayVo);
  53. List<SensorPoint> sensorPoints = new ArrayList<SensorPoint>();
  54. for(TblEquipmentVo tblEquipmentvo:equipmentVoList){
  55. if(tblEquipmentvo.getGatewayId() == tblGatewayVo.getId()){
  56. for(SensorPoint sensorPoint:sensorPointList){
  57. if(sensorPoint.getTblSensorVo().getDeviceId() == tblEquipmentvo.getId()){
  58. sensorPoints.add(sensorPoint);
  59. }
  60. }
  61. }
  62. }
  63. gateWaySensor.setSensorPointList(sensorPoints);
  64. gateWaySensorList.add(gateWaySensor);
  65. }
  66. for(GateWaySensor gateWaySensor:gateWaySensorList){
  67. gateWaySensor.setSn(gateWaySensor.getTblGateway().getSn());
  68. for(SysDictData sysDictData:sysDictTypeList){
  69. if(gateWaySensor.getTblGateway().getProtocalType() == Integer.valueOf(sysDictData.getDictValue())){
  70. gateWaySensor.setProtocalTypeName(sysDictData.getDictLabel());
  71. }
  72. }
  73. }
  74. obj.setRows(gateWaySensorList);
  75. return obj;
  76. }
  77. private List<SensorPoint> getSensorPointList(){
  78. List<SensorPoint> list = new ArrayList<>();
  79. List<PointData> pointUnitlist = new ArrayList<>();
  80. TblSensorBo sensorBo = new TblSensorBo();
  81. List<TblSensorVo> tblSeneorVoList = iTblSensorService.queryList(sensorBo);
  82. TblDatapointBo tblDatapointBo = new TblDatapointBo();
  83. List<TblDatapointVo> tblDatapointVoList = iTblDatapointService.queryList(tblDatapointBo);
  84. TblUnitBo tblUnitBo = new TblUnitBo();
  85. for(TblSensorVo tblSensorVo:tblSeneorVoList){
  86. SensorPoint sensorPoint = new SensorPoint();
  87. sensorPoint.setTblSensorVo(tblSensorVo);
  88. List<PointData> pointDatas = new ArrayList<PointData>();
  89. JSONArray pointArry = new JSONArray(tblSensorVo.getDatapoints());
  90. for(Object pointObject:pointArry){
  91. JSONObject jsonObject = new JSONObject(pointObject);
  92. if(jsonObject.get("dataPointId")!=null){
  93. Long pointId = Long.valueOf((String) jsonObject.get("dataPointId"));
  94. for(TblDatapointVo tblDatapointVo:tblDatapointVoList){
  95. if( pointId == tblDatapointVo.getId()) {
  96. PointData pointData = new PointData();
  97. pointData.setName((String) jsonObject.get("name"));
  98. pointData.setLabel((String) jsonObject.get("label"));
  99. pointData.setUnit((String) jsonObject.get("unit"));
  100. pointData.setUnitType((String) jsonObject.get("unitType"));
  101. pointData.setDataPointInfo(tblDatapointVo);
  102. pointDatas.add(pointData);
  103. }
  104. }
  105. }else{
  106. PointData pointData = new PointData();
  107. pointData.setName((String) jsonObject.get("name"));
  108. pointData.setLabel((String) jsonObject.get("label"));
  109. pointData.setUnit((String) jsonObject.get("unit"));
  110. pointData.setUnitType((String) jsonObject.get("unitType"));
  111. pointDatas.add(pointData);
  112. }
  113. }
  114. tblSensorVo.setDatapoints(null);
  115. sensorPoint.setDataPoints(pointDatas);
  116. list.add(sensorPoint);
  117. }
  118. return list;
  119. }
  120. }