From 8c7454d22f86750783d94cd7739e7b6e24558b40 Mon Sep 17 00:00:00 2001 From: mashuai Date: Tue, 18 Mar 2025 14:34:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E4=BA=8C=E7=BA=A7=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LargeScreenController.java | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/controller/LargeScreenController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/controller/LargeScreenController.java index 450a535..298fe5e 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/controller/LargeScreenController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/controller/LargeScreenController.java @@ -28,6 +28,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; @@ -331,6 +333,49 @@ public class LargeScreenController extends BaseController { return AjaxResult.success(getDataTable(list)); } + /** + * 总应答率二级页面 + * @param dto + * @return + */ + @ApiOperation("总应答率二级页面") + @GetMapping("/getTotalLeaseAnswerRate") + public AjaxResult getTotalLeaseAnswerRate(MaLeaseAnswerInfo dto) { + List list = leaseInfoMapper.getLeaseAnswerRate(dto); + if (!CollectionUtils.isEmpty(list)) { + for (MaLeaseAnswerInfo maLeaseAnswerInfo : list) { + // 根据 typeId 查询设备名称 + if (maLeaseAnswerInfo.getTypeId() != null) { + // 获取list集合 + List typeIds = Arrays.asList(maLeaseAnswerInfo.getTypeId().split(",")); + // 查询类型名称 + String typeName = leaseInfoMapper.selectMaTypeList(typeIds); + maLeaseAnswerInfo.setTypeName(typeName); + } + } + if (!StringUtils.isBlank(dto.getKeyWord())) { + list = list.stream() + .filter(item -> containsKeyword(item, dto.getKeyWord())) + .collect(Collectors.toList()); + } + } + Integer publishCount = 0; + Integer orderCount = 0; + MaLeaseAnswerInfo info = new MaLeaseAnswerInfo(); + if (!CollectionUtils.isEmpty(list)) { + for (MaLeaseAnswerInfo maLeaseAnswerInfo : list) { + publishCount += maLeaseAnswerInfo.getPublishCount(); + orderCount += maLeaseAnswerInfo.getOrderCount(); + } + info.setPublishCount(publishCount); + info.setOrderCount(orderCount); + // 计算装备利用率,保持2位小数百分比(leaseTotal/leaseTotal + upTotal) + BigDecimal result = MathUtil.calculatePercentage(orderCount, publishCount); + info.setAnswerRate(result.setScale(2, RoundingMode.HALF_UP).toString()); + } + return AjaxResult.success(info); + } + /** * 判断关键字 * @param item @@ -439,6 +484,27 @@ public class LargeScreenController extends BaseController { return AjaxResult.success(getDataTable(list)); } + @ApiOperation("装备总利用率") + @GetMapping("/getTotalDevRate") + public AjaxResult getTotalDevRate(MaDevRateInfo dto) { + List list = leaseInfoMapper.getDevRate(dto); + MaDevRateInfo info = new MaDevRateInfo(); + Integer upTotal = 0; + Integer leaseTotal = 0; + if (!CollectionUtils.isEmpty(list)) { + for (MaDevRateInfo maDevRateInfo : list) { + upTotal += maDevRateInfo.getUpTotal(); + leaseTotal += maDevRateInfo.getLeaseTotal(); + } + info.setUpTotal(upTotal); + info.setLeaseTotal(leaseTotal); + // 计算装备利用率,保持2位小数百分比(leaseTotal/leaseTotal + upTotal) + BigDecimal result = MathUtil.calculatePercentage(leaseTotal, leaseTotal + upTotal); + info.setRate(result.setScale(2, RoundingMode.HALF_UP).toString()); + } + return AjaxResult.success(info); + } + /** * 退租装备 * @param dto