FengJiInfoServiceImpl.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. package com.jiayue.biz.service.impl;
  2. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  3. import com.jiayue.biz.domain.*;
  4. import com.jiayue.biz.dto.FanTowerDto;
  5. import com.jiayue.biz.mapper.WindTowerDataParentTableMapper;
  6. import com.jiayue.biz.service.*;
  7. import lombok.AllArgsConstructor;
  8. import org.springframework.data.mongodb.core.MongoTemplate;
  9. import org.springframework.stereotype.Service;
  10. import java.util.*;
  11. import java.util.stream.Collectors;
  12. /**
  13. * 风机信息Service业务层处理
  14. *
  15. * @author L.ym
  16. * @date 2022-05-11
  17. */
  18. @Service
  19. @AllArgsConstructor
  20. public class FengJiInfoServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper, WindTowerDataParentTable> implements FengJiInfoService {
  21. private final ProjectInfoService projectInfoService;
  22. private final StationInfoService stationInfoService;
  23. //查询项目风机
  24. public List<FanTowerDto> getFanTowerForProject(String id) {
  25. List<ProjectInfo> projectInfoList = new ArrayList<>();
  26. if (id.equals("")) {
  27. projectInfoList = projectInfoService.getProjectInfoList();
  28. } else {
  29. projectInfoList.add(projectInfoService.getOneProjectInfoById(id));
  30. }
  31. ArrayList<FanTowerDto> list = new ArrayList<>();
  32. for (ProjectInfo projectInfo : projectInfoList) {
  33. if (projectInfo.getFanTowerList() != null) {
  34. for (FanTower fanTower : projectInfo.getFanTowerList()) {
  35. FanTowerDto fanTowerDto = new FanTowerDto();
  36. fanTowerDto.setId(projectInfo.getId());
  37. if (projectInfo.getProjectBasicInfo() != null) {
  38. fanTowerDto.setName(projectInfo.getProjectBasicInfo().getProjectNameEasy());
  39. }
  40. this.getFanTowerDto(fanTowerDto, fanTower);
  41. list.add(fanTowerDto);
  42. }
  43. } else {
  44. FanTowerDto fanTowerDto = new FanTowerDto();
  45. fanTowerDto.setId(projectInfo.getId());
  46. if (projectInfo.getProjectBasicInfo() != null) {
  47. fanTowerDto.setName(projectInfo.getProjectBasicInfo().getProjectNameEasy());
  48. }
  49. list.add(fanTowerDto);
  50. }
  51. }
  52. return list;
  53. }
  54. //查询场站风机
  55. public List<FanTowerDto> getFanTowerForStation(String id) {
  56. List<StationInfo> stationInfos = new ArrayList<>();
  57. if (id.equals("")) {
  58. stationInfos = stationInfoService.selectStationInfo();
  59. } else {
  60. stationInfos.add(stationInfoService.getOneStationInfo(id));
  61. }
  62. ArrayList<FanTowerDto> list = new ArrayList<>();
  63. for (StationInfo stationInfo : stationInfos) {
  64. if (stationInfo.getFanTowerList() != null) {
  65. for (FanTower fanTower : stationInfo.getFanTowerList()) {
  66. FanTowerDto fanTowerDto = new FanTowerDto();
  67. fanTowerDto.setId(stationInfo.getId());
  68. if (stationInfo.getStationBasicInfo() != null) {
  69. fanTowerDto.setName(stationInfo.getStationBasicInfo().getStationName());
  70. }
  71. this.getFanTowerDto(fanTowerDto, fanTower);
  72. list.add(fanTowerDto);
  73. }
  74. } else {
  75. if (stationInfo.getStationBasicInfo() != null) {
  76. FanTowerDto fanTowerDto = new FanTowerDto();
  77. fanTowerDto.setId(stationInfo.getId());
  78. fanTowerDto.setName(stationInfo.getStationBasicInfo().getStationName());
  79. list.add(fanTowerDto);
  80. }
  81. }
  82. }
  83. return list;
  84. }
  85. //项目风机更新
  86. public void updateFanTowerForProjectInfo(FanTowerDto fanTowerDto) {
  87. ProjectInfo projectInfoById = projectInfoService.getOneProjectInfoById(fanTowerDto.getId());
  88. List<FanTower> fanTowerList = projectInfoById.getFanTowerList().stream().peek(s -> {
  89. if (s.getId().equals(fanTowerDto.getFanId())) {
  90. this.getFanTower(fanTowerDto, s);
  91. }
  92. }).collect(Collectors.toList());
  93. projectInfoById.setFanTowerList(fanTowerList);
  94. projectInfoService.saveProjectInfo(projectInfoById);
  95. }
  96. //场站风机更新
  97. public void updateFanTowerForStationInfo(FanTowerDto fanTowerDto) {
  98. StationInfo oneStationInfo = stationInfoService.getOneStationInfo(fanTowerDto.getId());
  99. List<FanTower> fanTowerList = oneStationInfo.getFanTowerList().stream().peek(s -> {
  100. if (s.getId().equals(fanTowerDto.getFanId())) {
  101. this.getFanTower(fanTowerDto, s);
  102. }
  103. }).collect(Collectors.toList());
  104. oneStationInfo.setFanTowerList(fanTowerList);
  105. stationInfoService.saveStation(oneStationInfo);
  106. }
  107. //项目新增风机信息
  108. public void saveFanTowerForProjectInfo(FanTowerDto fanTowerDto) {
  109. ProjectInfo projectInfoById = projectInfoService.getOneProjectInfoById(fanTowerDto.getId());
  110. if (projectInfoById.getFanTowerList() == null) {
  111. projectInfoById.setFanTowerList(new ArrayList<>());
  112. }
  113. FanTower fanTower = new FanTower();
  114. this.getFanTower(fanTowerDto, fanTower);
  115. projectInfoById.getFanTowerList().add(fanTower);
  116. projectInfoService.saveProjectInfo(projectInfoById);
  117. }
  118. //场站新增风机信息
  119. public void saveFanTowerForStationInfo(FanTowerDto fanTowerDto) {
  120. StationInfo oneStationInfo = stationInfoService.getOneStationInfo(fanTowerDto.getId());
  121. if (oneStationInfo.getFanTowerList() == null) {
  122. oneStationInfo.setFanTowerList(new ArrayList<>());
  123. }
  124. FanTower fanTower = new FanTower();
  125. this.getFanTower(fanTowerDto, fanTower);
  126. oneStationInfo.getFanTowerList().add(fanTower);
  127. stationInfoService.saveStation(oneStationInfo);
  128. }
  129. //项目删除风机信息
  130. public void deleteFanTowerForProjectInfo(FanTowerDto fanTowerDto) {
  131. ProjectInfo projectInfoById = projectInfoService.getOneProjectInfoById(fanTowerDto.getId());
  132. List<FanTower> fanTowerList = projectInfoById.getFanTowerList().stream().filter(s -> !s.getId().equals(fanTowerDto.getFanId())).collect(Collectors.toList());
  133. projectInfoById.setFanTowerList(fanTowerList);
  134. projectInfoService.saveProjectInfo(projectInfoById);
  135. }
  136. //场站删除风机信息
  137. public void deleteFanTowerForStationInfo(FanTowerDto fanTowerDto) {
  138. StationInfo oneStationInfo = stationInfoService.getOneStationInfo(fanTowerDto.getId());
  139. List<FanTower> fanTowerList = oneStationInfo.getFanTowerList().stream().filter(s -> !s.getId().equals(fanTowerDto.getFanId())).collect(Collectors.toList());
  140. oneStationInfo.setFanTowerList(fanTowerList);
  141. stationInfoService.saveStation(oneStationInfo);
  142. }
  143. //组装风机信息
  144. public void getFanTowerDto(FanTowerDto fanTowerDto, FanTower fanTower) {
  145. fanTowerDto.setFanId(fanTower.getId());
  146. fanTowerDto.setFanModel(fanTower.getFanModel());
  147. fanTowerDto.setFanName(fanTower.getFanName());
  148. fanTowerDto.setLatitudeFan(fanTower.getLatitudeFan());
  149. fanTowerDto.setLongitudeFan(fanTower.getLongitudeFan());
  150. fanTowerDto.setHubHeight(fanTower.getHubHeight());
  151. }
  152. //重组组风机信息
  153. public void getFanTower(FanTowerDto fanTowerDto, FanTower fanTower) {
  154. fanTower.setId(fanTowerDto.getFanId() == null ? UUID.randomUUID().toString() : fanTowerDto.getFanId());
  155. fanTower.setFanModel(fanTowerDto.getFanModel());
  156. fanTower.setFanName(fanTowerDto.getFanName());
  157. fanTower.setLatitudeFan(fanTowerDto.getLatitudeFan());
  158. fanTower.setLongitudeFan(fanTowerDto.getLongitudeFan());
  159. fanTower.setHubHeight(fanTowerDto.getHubHeight());
  160. }
  161. }