GasCommonController.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. package com.ruoyi.web.controller.gas;
  2. import cn.hutool.core.convert.Convert;
  3. import com.ruoyi.common.constant.ElasticConstants;
  4. import com.ruoyi.common.core.domain.AjaxResult;
  5. import com.ruoyi.framework.config.ElasticSearchClient;
  6. import com.ruoyi.system.domain.DeviceBo;
  7. import com.ruoyi.system.domain.IllegalInfo;
  8. import com.ruoyi.system.domain.SyncPost;
  9. import com.ruoyi.system.service.IAisDatabase;
  10. import com.ruoyi.system.service.IHeiYanService;
  11. import com.ruoyi.system.service.ISo2Service;
  12. import com.ruoyi.web.service.IGasCommonService;
  13. import io.swagger.annotations.Api;
  14. import io.swagger.annotations.ApiOperation;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.security.access.prepost.PreAuthorize;
  17. import org.springframework.web.bind.annotation.GetMapping;
  18. import org.springframework.web.bind.annotation.PostMapping;
  19. import org.springframework.web.bind.annotation.RequestBody;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RequestParam;
  22. import org.springframework.web.bind.annotation.RestController;
  23. import java.util.ArrayList;
  24. import java.util.HashMap;
  25. import java.util.List;
  26. import java.util.Map;
  27. /**
  28. * @Description: 公共提出接口
  29. * @Author: huangcheng
  30. * @Date: 2021/8/30
  31. * @Version V1.0
  32. */
  33. @RestController
  34. @RequestMapping("/gas/common")
  35. @Api(tags = "公共接口")
  36. public class GasCommonController {
  37. @Autowired
  38. private IGasCommonService gasCommonService;
  39. @Autowired
  40. private ElasticSearchClient client;
  41. @Autowired
  42. private ISo2Service so2Service;
  43. @Autowired
  44. private IAisDatabase aisDatabase;
  45. @Autowired
  46. private IHeiYanService heiYanService;
  47. @PreAuthorize("@ss.hasPermi('system:gas:sync')")
  48. @PostMapping("/sync")
  49. @ApiOperation("第三方表数据同步ES")
  50. public AjaxResult sync(@RequestBody SyncPost syncPost) {
  51. gasCommonService.sync(syncPost);
  52. return AjaxResult.success("同步中...");
  53. }
  54. @GetMapping("/illegalShipStatic")
  55. @ApiOperation("获取硫、黑烟超标数量统计")
  56. public AjaxResult illegalShipStatic() {
  57. // Map<String, Object> params = baseEntity.getParams();
  58. // if (ObjectUtil.isNotEmpty(params.get("beginTime"))) {
  59. // params.put("beginTime", params.get("beginTime") + " 00:00:00");
  60. // }
  61. // if (ObjectUtil.isNotEmpty(params.get("endTime"))) {
  62. // params.put("endTime", params.get("endTime") + " 23:59:59");
  63. // }
  64. // Map<String, Object> so2RangeCondition = new HashMap<>();
  65. // so2RangeCondition.put("createTime", StrUtil.concat(true, "[", Convert.toStr(params.get("beginTime")), ",", Convert.toStr(params.get("endTime")), "]"));
  66. // so2RangeCondition.put("peakTime", StrUtil.concat(true, "[", Convert.toStr(params.get("beginTime")), ",", Convert.toStr(params.get("endTime")), "]"));
  67. long so2Count = client.count(null, null, ElasticConstants.SO2_ALERT, ElasticConstants.AIS_ILLEGAL_SHIP);
  68. long blackCount = client.count(null, null, ElasticConstants.HEIYAN_SHIP_RECOGNITION);
  69. Map<String, Object> result = new HashMap<>();
  70. result.put("so2Count", so2Count);
  71. result.put("blackCount", blackCount);
  72. return AjaxResult.success(result);
  73. }
  74. @GetMapping("/queryIllegalInfoList")
  75. @ApiOperation("获取嫌疑或违规船舶信息")
  76. public AjaxResult queryIllegalInfoList(@RequestParam String illegalStatus, @RequestParam(required = false, defaultValue = "20") Integer size) {
  77. Map<String, Object> equalsCondition = new HashMap<>();
  78. equalsCondition.put("illegalStatus", illegalStatus);
  79. List<String> orderBy = new ArrayList<>();
  80. orderBy.add("-createTime");
  81. Map<String, Object> stringObjectMap = client.searchDocument(equalsCondition,
  82. null,
  83. orderBy,
  84. 1,
  85. size,
  86. ElasticConstants.AIS_ILLEGAL_SHIP,
  87. ElasticConstants.SO2_ALERT,
  88. ElasticConstants.HEIYAN_SHIP_RECOGNITION);
  89. return AjaxResult.success(Convert.toList(IllegalInfo.class, stringObjectMap.get("pageList")));
  90. }
  91. @GetMapping("/queryDeviceList")
  92. @ApiOperation("获取所有设备数据")
  93. public AjaxResult queryDeviceList(@RequestParam(required = false) String monitor) {
  94. List<DeviceBo> njsanq = new ArrayList<>();
  95. List<DeviceBo> njsiq = new ArrayList<>();
  96. List<DeviceBo> ry = new ArrayList<>();
  97. List<DeviceBo> tz = new ArrayList<>();
  98. List<DeviceBo> jy = new ArrayList<>();
  99. List<DeviceBo> st = new ArrayList<>();
  100. Map<String, Object> data = new HashMap<>();
  101. List<DeviceBo> so2 = so2Service.queryDeviceList(monitor);
  102. List<DeviceBo> ais = aisDatabase.queryDeviceList(monitor);
  103. List<DeviceBo> heiyan = heiYanService.queryDeviceList(monitor);
  104. for (DeviceBo deviceBo : so2) {
  105. deviceBo.setOrgName(orgMap.get(deviceBo.getMonitorName()));
  106. switch (deviceBo.getMonitorName()) {
  107. case "南京三桥":
  108. njsanq.add(deviceBo);
  109. case "南京四桥":
  110. njsiq.add(deviceBo);
  111. case "润扬大桥":
  112. ry.add(deviceBo);
  113. case "泰州大桥":
  114. tz.add(deviceBo);
  115. case "江阴大桥":
  116. jy.add(deviceBo);
  117. case "苏通大桥":
  118. st.add(deviceBo);
  119. }
  120. }
  121. for (DeviceBo deviceBo : ais) {
  122. deviceBo.setOrgName(orgMap.get(deviceBo.getMonitorName()));
  123. switch (deviceBo.getMonitorName()) {
  124. case "南京三桥":
  125. njsanq.add(deviceBo);
  126. case "南京四桥":
  127. njsiq.add(deviceBo);
  128. case "润扬大桥":
  129. ry.add(deviceBo);
  130. case "泰州大桥":
  131. tz.add(deviceBo);
  132. case "江阴大桥":
  133. jy.add(deviceBo);
  134. case "苏通大桥":
  135. st.add(deviceBo);
  136. }
  137. }
  138. for (DeviceBo deviceBo : heiyan) {
  139. switch (deviceBo.getMonitorName()) {
  140. case "南京三桥":
  141. njsanq.add(deviceBo);
  142. case "南京四桥":
  143. njsiq.add(deviceBo);
  144. case "润扬大桥":
  145. ry.add(deviceBo);
  146. case "泰州大桥":
  147. tz.add(deviceBo);
  148. case "江阴大桥":
  149. jy.add(deviceBo);
  150. case "苏通大桥":
  151. st.add(deviceBo);
  152. }
  153. }
  154. data.put("南京三桥", njsanq);
  155. data.put("南京四桥", njsiq);
  156. data.put("润扬大桥", ry);
  157. data.put("泰州大桥", tz);
  158. data.put("江阴大桥", jy);
  159. data.put("苏通大桥", st);
  160. return AjaxResult.success(data);
  161. }
  162. public final static Map<String, String> orgMap = new HashMap<String, String>() {{
  163. put("南京三桥", "南京海事局");
  164. put("南京四桥", "南京海事局");
  165. put("润扬大桥", "扬州海事局");
  166. put("泰州大桥", "泰州海事局");
  167. put("江阴大桥", "江阴海事局");
  168. put("苏通大桥", "常熟海事局");
  169. }};
  170. }