|
@@ -1,6 +1,7 @@
|
|
|
package com.ruoyi.web.controller.gas;
|
|
|
|
|
|
import cn.hutool.core.convert.Convert;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
@@ -9,10 +10,12 @@ import com.ruoyi.common.constant.ElasticConstants;
|
|
|
import com.ruoyi.common.constant.HttpStatus;
|
|
|
import com.ruoyi.common.core.controller.BaseController;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
+import com.ruoyi.common.core.domain.entity.SysDictData;
|
|
|
import com.ruoyi.common.core.page.PageDomain;
|
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
import com.ruoyi.common.core.page.TableSupport;
|
|
|
import com.ruoyi.common.core.redis.RedisCache;
|
|
|
+import com.ruoyi.common.enums.AggsType;
|
|
|
import com.ruoyi.framework.config.ElasticSearchClient;
|
|
|
import com.ruoyi.system.domain.GuapAlert;
|
|
|
import com.ruoyi.system.domain.GuapMonitorPoint;
|
|
@@ -22,14 +25,17 @@ import com.ruoyi.system.domain.XiuTanSemInstrument;
|
|
|
import com.ruoyi.system.service.IAisDatabase;
|
|
|
import com.ruoyi.system.service.IHeiYanService;
|
|
|
import com.ruoyi.system.service.ISo2Service;
|
|
|
+import com.ruoyi.system.service.ISysDictTypeService;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -55,6 +61,8 @@ public class So2Controller extends BaseController {
|
|
|
private IHeiYanService heiYanService;
|
|
|
@Autowired
|
|
|
private RedisCache redisCache;
|
|
|
+ @Autowired
|
|
|
+ private ISysDictTypeService dictTypeService;
|
|
|
|
|
|
@GetMapping("/guangpu/list")
|
|
|
@ApiOperation("光谱-硫嫌疑船舶列表数据")
|
|
@@ -184,4 +192,33 @@ public class So2Controller extends BaseController {
|
|
|
return AjaxResult.success(result);
|
|
|
}
|
|
|
|
|
|
+ @GetMapping("/snapPos/static")
|
|
|
+ @ApiOperation("硫含量超标船舶分布统计")
|
|
|
+ public AjaxResult so2SnapPosStatic(@RequestParam(required = false) String month) {
|
|
|
+ String beginTime = "";
|
|
|
+ String endTime = "";
|
|
|
+ if (StrUtil.isBlank(month)) {
|
|
|
+ beginTime = DateUtil.formatDate(DateUtil.beginOfMonth(new Date())) + " 00:00:00";
|
|
|
+ endTime = DateUtil.formatDate(DateUtil.endOfMonth(new Date())) + " 23:59:59";
|
|
|
+ } else {
|
|
|
+ beginTime = month + "-01 00:00:00";
|
|
|
+ endTime = DateUtil.formatDate(DateUtil.endOfMonth(DateUtil.parseDate(beginTime))) + " 23:59:59";
|
|
|
+ }
|
|
|
+ Map<String, Object> aisRangeCondition = new HashMap<>();
|
|
|
+ aisRangeCondition.put("peakTime", StrUtil.concat(true, "[", beginTime, ",", endTime, "]"));
|
|
|
+ Map<Object, Object> aisAggs = client.aggs(ElasticConstants.AIS_ILLEGAL_SHIP, AggsType.count, "monitorPointName", "id", null, aisRangeCondition);
|
|
|
+ Map<String, Object> so2RangeCondition = new HashMap<>();
|
|
|
+ so2RangeCondition.put("createTime", StrUtil.concat(true, "[", beginTime, ",", endTime, "]"));
|
|
|
+ Map<Object, Object> so2Aggs = client.aggs(ElasticConstants.SO2_ALERT, AggsType.count, "monitorPointName", "id", null, so2RangeCondition);
|
|
|
+ // 构造硫的数据
|
|
|
+ List<SysDictData> so2_snap_pos = dictTypeService.selectDictDataByType("so2_snap_pos");
|
|
|
+ Map<String, Object> result = new HashMap<>();
|
|
|
+ for (SysDictData so2_snap_po : so2_snap_pos) {
|
|
|
+ result.put(so2_snap_po.getDictLabel(),
|
|
|
+ (ObjectUtil.isEmpty(aisAggs.get(so2_snap_po.getDictLabel())) ? 0 : Convert.toInt(aisAggs.get(so2_snap_po.getDictLabel())))
|
|
|
+ + (ObjectUtil.isEmpty(so2Aggs.get(so2_snap_po.getDictLabel())) ? 0 : Convert.toInt(so2Aggs.get(so2_snap_po.getDictLabel()))));
|
|
|
+ }
|
|
|
+ return AjaxResult.success(result);
|
|
|
+ }
|
|
|
+
|
|
|
}
|