BaseDeviceDynamicManagementServiceImpl.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. package com.ozs.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.ozs.common.utils.AppendUtils;
  5. import com.ozs.entity.BaseDeviceDynamicManagement;
  6. import com.ozs.entity.BaseRailwayManagement;
  7. import com.ozs.entity.CameraTree;
  8. import com.ozs.entity.VehicleTree;
  9. import com.ozs.entity.vo.BaseCameraManagementDto;
  10. import com.ozs.entity.vo.BaseVehicleTerminalDto;
  11. import com.ozs.entity.vo.CameraTreeVo;
  12. import com.ozs.entity.vo.VehicleTreeVo;
  13. import com.ozs.mapper.BaseDeviceDynamicManagementMapper;
  14. import com.ozs.mapper.BaseRailwayManagementMapper;
  15. import com.ozs.service.BaseDeviceDynamicManagementService;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.util.ObjectUtils;
  19. import java.util.ArrayList;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.Map;
  23. import java.util.stream.Collectors;
  24. /**
  25. * <p>
  26. * 设备动态管理表 服务实现类
  27. * </p>
  28. *
  29. * @author ozs
  30. * @since 2023-02-22
  31. */
  32. @Service
  33. public class BaseDeviceDynamicManagementServiceImpl extends ServiceImpl<BaseDeviceDynamicManagementMapper, BaseDeviceDynamicManagement> implements BaseDeviceDynamicManagementService {
  34. @Autowired
  35. BaseDeviceDynamicManagementMapper baseDeviceDynamicManagementMapper;
  36. @Autowired
  37. BaseRailwayManagementMapper railwayManagementMapper;
  38. @Override
  39. public CameraTree cameraTree(CameraTreeVo cameraTreeVo) {
  40. //1 父
  41. CameraTree cameraTree = CameraTree.builder()
  42. .name("相机树")
  43. .code("0")
  44. .flay(false)
  45. .children(new ArrayList<>())
  46. .build();
  47. Map<String, CameraTree> map = new HashMap<>();
  48. List<BaseCameraManagementDto> list = baseDeviceDynamicManagementMapper.list(cameraTreeVo);
  49. if (list.size() > 0) {
  50. for (BaseCameraManagementDto o : list) {
  51. // 线路
  52. CameraTree build = CameraTree.builder()
  53. .code(o.getRailwayCode())
  54. .name(o.getRailwayName())
  55. .flay(true)
  56. .children(new ArrayList<>())
  57. .build();
  58. if (!cameraTree.getChildren().stream()
  59. .map(CameraTree::getCode)
  60. .collect(Collectors.toList())
  61. .contains(build.getCode())) {
  62. cameraTree.getChildren().add(build);
  63. map.put(o.getRailwayCode(), build);
  64. }
  65. // 里程
  66. String mils = AppendUtils.stringAppend(o.getInstallMile());
  67. CameraTree build1 = CameraTree.builder()
  68. .code(mils + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"))
  69. .name(mils + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"))
  70. .flay(true)
  71. .mileage(o.getInstallMile())
  72. .children(new ArrayList<>())
  73. .build();
  74. if (!ObjectUtils.isEmpty(map.get(o.getRailwayCode()))) {
  75. CameraTree cameraTree1 = map.get(o.getInstallMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"));
  76. if (ObjectUtils.isEmpty(cameraTree1)) {
  77. map.put(o.getInstallMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"), build1);
  78. map.get(o.getRailwayCode()).getChildren().add(build1);
  79. }
  80. }
  81. // 摄像头
  82. CameraTree build2 = CameraTree.builder()
  83. .code(o.getCameraCode())
  84. .name(o.getCameraCode())
  85. .flay(true)
  86. .children(new ArrayList<>())
  87. .build();
  88. if (!ObjectUtils.isEmpty(map.get(o.getInstallMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行")))) {
  89. map.get(o.getInstallMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行")).getChildren().add(build2);
  90. }
  91. }
  92. }
  93. return cameraTree;
  94. }
  95. @Override
  96. public VehicleTree vehicleTree(VehicleTreeVo vehicleTreeVo) {
  97. // 线路
  98. LambdaQueryWrapper<BaseRailwayManagement> rp = new LambdaQueryWrapper();
  99. List<BaseRailwayManagement> railwayList = railwayManagementMapper.selectList(rp);
  100. //1 父
  101. VehicleTree vehicleTree = VehicleTree.builder()
  102. .name("机车树")
  103. .code("0")
  104. .flay(false)
  105. .children(new ArrayList<>())
  106. .build();
  107. Map<String, VehicleTree> map = new HashMap<>();
  108. List<BaseVehicleTerminalDto> list = baseDeviceDynamicManagementMapper.vehicleTreelist(vehicleTreeVo);
  109. if (list.size() > 0) {
  110. for (BaseVehicleTerminalDto o : list) {
  111. VehicleTree build = VehicleTree.builder()
  112. .code(o.getRailwayCode())
  113. .flay(true)
  114. .children(new ArrayList<>())
  115. .build();
  116. for (BaseRailwayManagement railway : railwayList) {
  117. if (railway.getRailwayCode().equals(build.getCode())) {
  118. build.setName(railway.getRailwayName());
  119. break;
  120. }
  121. }
  122. if (!vehicleTree.getChildren().stream()
  123. .map(VehicleTree::getCode)
  124. .collect(Collectors.toList())
  125. .contains(build.getCode())) {
  126. vehicleTree.getChildren().add(build);
  127. map.put(o.getRailwayCode(), build);
  128. }
  129. // 里程
  130. String mils = AppendUtils.stringAppend(o.getTravelMile());
  131. VehicleTree build1 = VehicleTree.builder()
  132. .code(mils + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"))
  133. .name(mils + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"))
  134. .flay(true)
  135. .mileage(o.getTravelMile())
  136. .children(new ArrayList<>())
  137. .build();
  138. if (!ObjectUtils.isEmpty(map.get(o.getRailwayCode()))) {
  139. VehicleTree vehicleTree1 = map.get(o.getTravelMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"));
  140. if (ObjectUtils.isEmpty(vehicleTree1)) {
  141. map.put(o.getTravelMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"), build1);
  142. map.get(o.getRailwayCode()).getChildren().add(build1);
  143. }
  144. }
  145. // 摄像头
  146. VehicleTree build2 = VehicleTree.builder()
  147. .code(o.getTerminalCode())
  148. .name(o.getTerminalCode())
  149. .flay(true)
  150. .children(new ArrayList<>())
  151. .build();
  152. if (!ObjectUtils.isEmpty(map.get(o.getTravelMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行")))) {
  153. map.get(o.getTravelMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行")).getChildren().add(build2);
  154. }
  155. }
  156. }
  157. return vehicleTree;
  158. }
  159. }