From 3f342a9ce225ab809d7f22e2f0e80bb63792e266 Mon Sep 17 00:00:00 2001
From: baizonghao <1719256278@qq.com>
Date: 星期二, 14 三月 2023 20:58:01 +0800
Subject: [PATCH] AI算法效能优化
---
ycl-platform/src/main/java/com/ycl/dto/allot/EfficiencyDto.java | 9 ++++
ycl-platform/src/main/java/com/ycl/service/allot/IEfficiencyService.java | 10 +++++
ycl-platform/src/main/java/com/ycl/mapper/allot/EfficiencyMapper.java | 10 +++++
ycl-platform/src/main/resources/mapper/allot/EfficiencyMapper.xml | 21 ++++++++++
ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/EfficiencyVO.java | 2 +
ycl-platform/src/main/java/com/ycl/service/allot/impl/EfficiencyServiceImpl.java | 20 ++++++++++
ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java | 21 +++++++---
7 files changed, 86 insertions(+), 7 deletions(-)
diff --git a/ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java b/ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java
index 678e003..f1e4ead 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java
@@ -2,7 +2,9 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ycl.api.CommonResult;
+import com.ycl.dto.allot.EfficiencyDto;
import com.ycl.entity.video.VideoPoint;
+import com.ycl.service.allot.IEfficiencyService;
import com.ycl.service.carManage.ICarSlagcarService;
import com.ycl.service.equipment.IHandheldTerminalService;
import com.ycl.service.equipment.ILoudspeakerService;
@@ -26,6 +28,8 @@
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
+import java.util.function.Function;
+import java.util.function.ToIntFunction;
import java.util.stream.Collectors;
/**
@@ -51,6 +55,8 @@
ILoudspeakerService loudspeakerService;
@Autowired
ICarSlagcarService iCarSlagcarService;
+ @Autowired
+ IEfficiencyService iEfficiencyService;
@ApiOperation(value = "鐩戞祴鏁版嵁")
@GetMapping("/detection")
@@ -95,14 +101,15 @@
@GetMapping("/efficiency")
public CommonResult efficiency(@Validated CockpitVO params) {
checkApiUtil.cockpit(params);
- List<EfficiencyVO> efficiencyVOS = new ArrayList<>();
- for (int i = 0; i < 4; i++) {
+ List<EfficiencyDto> list = iEfficiencyService.list();
+ int sum = list.stream().mapToInt(EfficiencyDto::getNumber).sum();
+ List<EfficiencyVO> efficiencyVOS = list.stream().map((Function<EfficiencyDto, EfficiencyVO>) efficiencyDto -> {
EfficiencyVO a = new EfficiencyVO();
- a.setType("閬撹矾鐮存崯");
- a.setCount(12);
- a.setRatio(new BigDecimal("0.63").setScale(2, RoundingMode.HALF_UP));
- efficiencyVOS.add(a);
- }
+ a.setType(efficiencyDto.getName());
+ a.setCount(efficiencyDto.getNumber());
+ a.setRatio(new BigDecimal((double)efficiencyDto.getNumber() / (double) sum).setScale(2, RoundingMode.HALF_UP));
+ return a;
+ }).collect(Collectors.toList());
return CommonResult.success(efficiencyVOS);
}
diff --git a/ycl-platform/src/main/java/com/ycl/dto/allot/EfficiencyDto.java b/ycl-platform/src/main/java/com/ycl/dto/allot/EfficiencyDto.java
new file mode 100644
index 0000000..5502e09
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/dto/allot/EfficiencyDto.java
@@ -0,0 +1,9 @@
+package com.ycl.dto.allot;
+
+import lombok.Data;
+
+@Data
+public class EfficiencyDto {
+ private String name;
+ private Integer number;
+}
diff --git a/ycl-platform/src/main/java/com/ycl/mapper/allot/EfficiencyMapper.java b/ycl-platform/src/main/java/com/ycl/mapper/allot/EfficiencyMapper.java
new file mode 100644
index 0000000..8c0fd16
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/mapper/allot/EfficiencyMapper.java
@@ -0,0 +1,10 @@
+package com.ycl.mapper.allot;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.dto.allot.EfficiencyDto;
+
+import java.util.List;
+
+public interface EfficiencyMapper extends BaseMapper {
+ List<EfficiencyDto> list();
+}
diff --git a/ycl-platform/src/main/java/com/ycl/service/allot/IEfficiencyService.java b/ycl-platform/src/main/java/com/ycl/service/allot/IEfficiencyService.java
new file mode 100644
index 0000000..bfc7aae
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/service/allot/IEfficiencyService.java
@@ -0,0 +1,10 @@
+package com.ycl.service.allot;
+
+import com.ycl.dto.allot.EfficiencyDto;
+
+import java.util.List;
+
+public interface IEfficiencyService {
+
+ List<EfficiencyDto> list();
+}
diff --git a/ycl-platform/src/main/java/com/ycl/service/allot/impl/EfficiencyServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/allot/impl/EfficiencyServiceImpl.java
new file mode 100644
index 0000000..c6fcdaa
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/service/allot/impl/EfficiencyServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ycl.service.allot.impl;
+
+import com.ycl.dto.allot.EfficiencyDto;
+import com.ycl.mapper.allot.EfficiencyMapper;
+import com.ycl.service.allot.IEfficiencyService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class EfficiencyServiceImpl implements IEfficiencyService {
+ @Resource
+ EfficiencyMapper efficiencyMapper;
+
+ @Override
+ public List<EfficiencyDto> list() {
+ return efficiencyMapper.list();
+ }
+}
diff --git a/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/EfficiencyVO.java b/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/EfficiencyVO.java
index bf8b39f..8613130 100644
--- a/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/EfficiencyVO.java
+++ b/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/EfficiencyVO.java
@@ -2,10 +2,12 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import lombok.ToString;
import java.math.BigDecimal;
@Data
+@ToString
public class EfficiencyVO {
@ApiModelProperty(value = "鐗╄仈缃戣澶囩被鍨�")
private String type;
diff --git a/ycl-platform/src/main/resources/mapper/allot/EfficiencyMapper.xml b/ycl-platform/src/main/resources/mapper/allot/EfficiencyMapper.xml
new file mode 100644
index 0000000..48840d7
--- /dev/null
+++ b/ycl-platform/src/main/resources/mapper/allot/EfficiencyMapper.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.mapper.allot.EfficiencyMapper">
+
+ <select id="list" resultType="com.ycl.dto.allot.EfficiencyDto">
+ SELECT
+ t4.NAME NAME,
+ COUNT(1) NUMBER
+ FROM
+ `ums_base_case` AS ubc
+ JOIN ums_violations AS uv ON ubc.id = uv.id
+ LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
+ LEFT JOIN ums_data_dictionary AS t4 ON uv.type_id = t4.id
+ LEFT JOIN ums_sccg_region t5 ON ubc.street_id = t5.id
+ WHERE
+ ubc.category = 1
+ AND t4.`name` IS NOT NULL
+ GROUP BY
+ t4.id
+ </select>
+</mapper>
--
Gitblit v1.8.0