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