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