|
@@ -1,7 +1,5 @@
|
|
|
package com.ruoyi.web.controller.gas;
|
|
|
|
|
|
-import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
|
|
-import cn.afterturn.easypoi.excel.entity.ExportParams;
|
|
|
import cn.hutool.core.convert.Convert;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
@@ -11,30 +9,29 @@ 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.enums.AggsType;
|
|
|
import com.ruoyi.common.enums.BusinessType;
|
|
|
-import com.ruoyi.common.utils.StringUtils;
|
|
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
|
|
import com.ruoyi.framework.config.ElasticSearchClient;
|
|
|
import com.ruoyi.system.domain.ShipRecognition;
|
|
|
-import com.ruoyi.system.domain.SysConfig;
|
|
|
+import com.ruoyi.system.service.ISysDictTypeService;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.SneakyThrows;
|
|
|
-import org.apache.poi.ss.usermodel.Workbook;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
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 javax.servlet.ServletOutputStream;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
-import java.io.FileOutputStream;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -52,6 +49,8 @@ public class BlackGasController extends BaseController {
|
|
|
|
|
|
@Autowired
|
|
|
private ElasticSearchClient client;
|
|
|
+ @Autowired
|
|
|
+ private ISysDictTypeService dictTypeService;
|
|
|
|
|
|
@GetMapping("/list")
|
|
|
@ApiOperation("列表数据")
|
|
@@ -65,7 +64,7 @@ public class BlackGasController extends BaseController {
|
|
|
equalsCondition.put("snapPos", StrUtil.isBlank(shipRecognition.getSnapPos()) ? null : StrUtil.concat(true, "*", shipRecognition.getSnapPos(), "*"));
|
|
|
equalsCondition.put("aisDst", StrUtil.isBlank(shipRecognition.getAisDst()) ? null : StrUtil.concat(true, "*", shipRecognition.getAisDst(), "*"));
|
|
|
equalsCondition.put("aisShipType", StrUtil.isBlank(shipRecognition.getAisShipType()) ? null : StrUtil.concat(true, "*", shipRecognition.getAisShipType(), "*"));
|
|
|
- equalsCondition.put("rcgSoot",shipRecognition.getRcgSoot());
|
|
|
+ equalsCondition.put("rcgSoot", shipRecognition.getRcgSoot());
|
|
|
// 组装范围查询条件
|
|
|
Map<String, Object> rangeCondition = new HashMap<>();
|
|
|
if (ObjectUtil.isNotEmpty(params.get("beginTime"))) {
|
|
@@ -74,7 +73,7 @@ public class BlackGasController extends BaseController {
|
|
|
if (ObjectUtil.isNotEmpty(params.get("endTime"))) {
|
|
|
params.put("endTime", params.get("endTime") + " 23:59:59");
|
|
|
}
|
|
|
- rangeCondition.put("snapTime", StrUtil.concat(true, "[", Convert.toStr(params.get("beginTime")), ",", Convert.toStr(params.get("endTime")), "]"));
|
|
|
+ rangeCondition.put("snapTimeFmt", StrUtil.concat(true, "[", Convert.toStr(params.get("beginTime")), ",", Convert.toStr(params.get("endTime")), "]"));
|
|
|
List<String> orderBy = new ArrayList<>();
|
|
|
orderBy.add("-snapTime");
|
|
|
PageDomain pageDomain = TableSupport.buildPageRequest();
|
|
@@ -102,7 +101,7 @@ public class BlackGasController extends BaseController {
|
|
|
equalsCondition.put("snapPos", StrUtil.isBlank(shipRecognition.getSnapPos()) ? null : StrUtil.concat(true, "*", shipRecognition.getSnapPos(), "*"));
|
|
|
equalsCondition.put("aisDst", StrUtil.isBlank(shipRecognition.getAisDst()) ? null : StrUtil.concat(true, "*", shipRecognition.getAisDst(), "*"));
|
|
|
equalsCondition.put("aisShipType", StrUtil.isBlank(shipRecognition.getAisShipType()) ? null : StrUtil.concat(true, "*", shipRecognition.getAisShipType(), "*"));
|
|
|
- equalsCondition.put("rcgSoot",shipRecognition.getRcgSoot());
|
|
|
+ equalsCondition.put("rcgSoot", shipRecognition.getRcgSoot());
|
|
|
// 组装范围查询条件
|
|
|
Map<String, Object> rangeCondition = new HashMap<>();
|
|
|
if (ObjectUtil.isNotEmpty(params.get("beginTime"))) {
|
|
@@ -111,7 +110,7 @@ public class BlackGasController extends BaseController {
|
|
|
if (ObjectUtil.isNotEmpty(params.get("endTime"))) {
|
|
|
params.put("endTime", params.get("endTime") + " 23:59:59");
|
|
|
}
|
|
|
- rangeCondition.put("snapTime", StrUtil.concat(true, "[", Convert.toStr(params.get("beginTime")), ",", Convert.toStr(params.get("endTime")), "]"));
|
|
|
+ rangeCondition.put("snapTimeFmt", StrUtil.concat(true, "[", Convert.toStr(params.get("beginTime")), ",", Convert.toStr(params.get("endTime")), "]"));
|
|
|
List<String> orderBy = new ArrayList<>();
|
|
|
orderBy.add("-snapTime");
|
|
|
Map<String, Object> maps = client.searchDocument(ElasticConstants.HEIYAN_SHIP_RECOGNITION, equalsCondition, rangeCondition, orderBy, 0, 10000);
|
|
@@ -120,8 +119,32 @@ public class BlackGasController extends BaseController {
|
|
|
"黑烟违规数据",
|
|
|
"黑烟违规数据",
|
|
|
ShipRecognition.class,
|
|
|
- Convert.toList(ShipRecognition.class,maps.get("pageList")),
|
|
|
+ Convert.toList(ShipRecognition.class, maps.get("pageList")),
|
|
|
request, response);
|
|
|
}
|
|
|
|
|
|
+ @GetMapping("/snapPos/static")
|
|
|
+ @ApiOperation("黑烟抓拍分布统计")
|
|
|
+ public AjaxResult snapPosStatic(@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> rangeCondition = new HashMap<>();
|
|
|
+ rangeCondition.put("snapTimeFmt", StrUtil.concat(true, "[", beginTime, ",", endTime, "]"));
|
|
|
+ Map<Object, Object> aggs = client.aggs(ElasticConstants.HEIYAN_SHIP_RECOGNITION, AggsType.count, "snapPos", "id", null, rangeCondition);
|
|
|
+ // 构造黑烟的数据
|
|
|
+ List<SysDictData> heiyan_snap_pos = dictTypeService.selectDictDataByType("heiyan_snap_pos");
|
|
|
+ Map<String, Object> result = new HashMap<>();
|
|
|
+ for (SysDictData heiyan_snap_po : heiyan_snap_pos) {
|
|
|
+ result.put(heiyan_snap_po.getDictLabel(), ObjectUtil.isEmpty(aggs.get(heiyan_snap_po.getDictLabel())) ? 0 : aggs.get(heiyan_snap_po.getDictLabel()));
|
|
|
+ }
|
|
|
+ return AjaxResult.success(result);
|
|
|
+ }
|
|
|
+
|
|
|
}
|