From 40dc44374ba686f6f48a86d34ed87a0782b634e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Thu, 25 Sep 2025 16:36:24 +0800 Subject: [PATCH] =?UTF-8?q?09-25-=E4=BF=AE=E5=A4=8D=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/vo/OpsInspectionPlanVo.java | 2 ++ .../impl/OpsInspectionOrderServiceImpl.java | 2 +- .../impl/OpsInspectionPlanServiceImpl.java | 27 +++++++++++++---- .../OpsInspectionTestTaskServiceImpl.java | 29 +++++++++++++++---- 4 files changed, 49 insertions(+), 11 deletions(-) diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/vo/OpsInspectionPlanVo.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/vo/OpsInspectionPlanVo.java index 77778ff..8294bcd 100644 --- a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/vo/OpsInspectionPlanVo.java +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/vo/OpsInspectionPlanVo.java @@ -111,6 +111,8 @@ public class OpsInspectionPlanVo implements Serializable { @ExcelProperty(value = "巡检项ID") private String inspectionItemId; + private List itemVoList; + /** * 1启用2停用 */ diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionOrderServiceImpl.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionOrderServiceImpl.java index 2734633..f502996 100644 --- a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionOrderServiceImpl.java +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionOrderServiceImpl.java @@ -223,7 +223,7 @@ public class OpsInspectionOrderServiceImpl implements IOpsInspectionOrderService //处理进度百分比 完成节点 / 总节点 * 100 if (nodeVoList != null && !nodeVoList.isEmpty()){ //统计完成节点 - int finishCount = nodeVoList.stream().filter(nodeVo -> vo.getStatus().equals("1")).toList().size(); + int finishCount = nodeVoList.stream().filter(nodeVo -> nodeVo.getStatus().equals("1")).toList().size(); if (finishCount == nodeVoList.size()){ vo.setProgress(new BigDecimal("100")); }else { diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionPlanServiceImpl.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionPlanServiceImpl.java index 99540c6..9fdf794 100644 --- a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionPlanServiceImpl.java +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionPlanServiceImpl.java @@ -10,10 +10,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.inspection.domain.vo.OpsInspectionItemVo; +import org.dromara.inspection.mapper.OpsInspectionItemMapper; import org.dromara.personnel.domain.OpsUser; import org.dromara.personnel.service.impl.OpsUserServiceImpl; import org.dromara.system.api.RemoteUserService; +import org.dromara.system.api.domain.vo.RemoteUserVo; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.web.embedded.UndertowWebServerFactoryCustomizer; import org.springframework.stereotype.Service; import org.dromara.inspection.domain.bo.OpsInspectionPlanBo; import org.dromara.inspection.domain.vo.OpsInspectionPlanVo; @@ -21,6 +25,7 @@ import org.dromara.inspection.domain.OpsInspectionPlan; import org.dromara.inspection.mapper.OpsInspectionPlanMapper; import org.dromara.inspection.service.IOpsInspectionPlanService; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; @@ -38,10 +43,9 @@ public class OpsInspectionPlanServiceImpl implements IOpsInspectionPlanService { @DubboReference private RemoteUserService remoteUserService; - @Autowired - private OpsUserServiceImpl opsUserService; private final OpsInspectionPlanMapper baseMapper; + private final OpsInspectionItemMapper itemMapper; /** * 查询运维-巡检-计划 @@ -155,12 +159,25 @@ public class OpsInspectionPlanServiceImpl implements IOpsInspectionPlanService { */ private void setValue(List list){ list.forEach(record -> { - OpsUser byId = opsUserService.getById(record.getPerson()); - if (byId != null){ - record.setNickName(byId.getUserName()); + List remoteUserVos = remoteUserService.selectListByIds(List.of(record.getPerson())); + + if (remoteUserVos != null && !remoteUserVos.isEmpty()){ + record.setNickName(remoteUserVos.getFirst().getUserName()); }else{ record.setNickName("未知用户"); } + + if (record.getInspectionItemId()!=null){ + String[] itemIds = record.getInspectionItemId().split(","); + List itemVos = new ArrayList<>(); + for (String itemId : itemIds) { + OpsInspectionItemVo itemVo = itemMapper.selectVoById(itemId); + if (itemVo != null){ + itemVos.add(itemVo); + } + } + } + }); } diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionTestTaskServiceImpl.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionTestTaskServiceImpl.java index fa57dc2..5eba050 100644 --- a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionTestTaskServiceImpl.java +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionTestTaskServiceImpl.java @@ -212,7 +212,7 @@ public class OpsInspectionTestTaskServiceImpl implements IOpsInspectionTestTaskS //处理进度百分比 完成节点 / 总节点 * 100 if (nodeVoList != null && !nodeVoList.isEmpty()){ //统计完成节点 - int finishCount = nodeVoList.stream().filter(nodeVo -> vo.getStatus().equals("1")).toList().size(); + int finishCount = nodeVoList.stream().filter(nodeVo -> nodeVo.getStatus().equals("1")).toList().size(); if (finishCount == nodeVoList.size()){ vo.setProgress(new BigDecimal("100")); }else { @@ -281,7 +281,11 @@ public class OpsInspectionTestTaskServiceImpl implements IOpsInspectionTestTaskS record.setFinishCount(String.valueOf(finishCount)); record.setFailCount(String.valueOf(failCount)); - record.setPassValue(String.valueOf(BigDecimal.valueOf(finishCount).divide(BigDecimal.valueOf(list.size()), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")))); + if (!list.isEmpty()) { + record.setPassValue(String.valueOf(BigDecimal.valueOf(finishCount).divide(BigDecimal.valueOf(list.size()), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")))); + }else { + record.setPassValue("0"); + } record.setAverageTestTime(BigDecimal.valueOf((double) TimeUnit.MILLISECONDS.toMinutes(totalTestTime) / finishCount).toString()); //统计上一月的数据 @@ -307,7 +311,12 @@ public class OpsInspectionTestTaskServiceImpl implements IOpsInspectionTestTaskS } //完成数增长率 - BigDecimal wcszzl = BigDecimal.valueOf(Double.parseDouble(record.getFinishCount())).divide(BigDecimal.valueOf(finishCount), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100.00)); + BigDecimal wcszzl; + if (BigDecimal.valueOf(finishCount).compareTo(BigDecimal.ZERO) > 0) { + wcszzl = BigDecimal.valueOf(Double.parseDouble(record.getFinishCount())).divide(BigDecimal.valueOf(finishCount), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100.00)); + }else { + wcszzl = BigDecimal.ZERO; + } record.setFinishCountAdd(wcszzl.toString()); //上月通过率 @@ -315,13 +324,23 @@ public class OpsInspectionTestTaskServiceImpl implements IOpsInspectionTestTaskS passValue = BigDecimal.valueOf(Double.valueOf(finishCount)).divide(BigDecimal.valueOf(lastMonth.size()), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")); } //进行比较 得出通过增长率 - BigDecimal tgzzl = BigDecimal.valueOf(Double.parseDouble(record.getPassValue())).divide(passValue, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100.00)); + BigDecimal tgzzl; + if(passValue.compareTo(BigDecimal.ZERO) > 0) { + tgzzl = BigDecimal.valueOf(Double.parseDouble(record.getPassValue())).divide(passValue, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100.00)); + }else { + tgzzl = BigDecimal.ZERO; + } record.setPassValueAdd(tgzzl.toString()); //上月平均实验时间 BigDecimal sypjsj = BigDecimal.valueOf((double) TimeUnit.MILLISECONDS.toMinutes(totalTestTime) / finishCount); //平均时间增长率 - BigDecimal sysjzzl = sypjsj.divide(BigDecimal.valueOf(Double.parseDouble(record.getAverageTestTime())), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100.00)); + BigDecimal sysjzzl; + if (BigDecimal.valueOf(Double.parseDouble(record.getAverageTestTime())).compareTo(BigDecimal.ZERO) > 0) { + sysjzzl=sypjsj.divide(BigDecimal.valueOf(Double.parseDouble(record.getAverageTestTime())), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100.00)); + }else { + sysjzzl = BigDecimal.ZERO; + } record.setAverageTestTimeAdd(sysjzzl.toString()); return R.ok(record);