From 2033a7d3c6c72f45a7f082fd05d34b3d6cde5db5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Wed, 24 Sep 2025 17:15:58 +0800 Subject: [PATCH] =?UTF-8?q?09-24-=E5=B7=A1=E6=A3=80=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7=E7=B1=BB=E5=9E=8B=EF=BC=8C?= =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E4=BB=BB=E5=8A=A1=E5=A4=84=E7=90=86=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E8=BF=9B=E5=BA=A6=E5=8F=8A=E5=9B=9E=E6=98=BE=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inspection/domain/OpsInspectionTask.java | 5 +- .../domain/bo/OpsInspectionTaskBo.java | 6 +- .../domain/vo/OpsInspectionTaskVo.java | 12 +++- .../impl/OpsInspectionTaskServiceImpl.java | 62 ++++++++++++++++--- 4 files changed, 67 insertions(+), 18 deletions(-) diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/OpsInspectionTask.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/OpsInspectionTask.java index 2caea5f..2b8fc68 100644 --- a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/OpsInspectionTask.java +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/OpsInspectionTask.java @@ -69,10 +69,9 @@ public class OpsInspectionTask extends BaseEntity { private Long personId; /** - * 进度 + * 节点ids */ - @TableField(exist = false) - private BigDecimal taskProgress; + private String nodeIds; /** * 状态 1待执行2已延期3执行中4已完成 diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/bo/OpsInspectionTaskBo.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/bo/OpsInspectionTaskBo.java index a8ee181..bb79e33 100644 --- a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/bo/OpsInspectionTaskBo.java +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/bo/OpsInspectionTaskBo.java @@ -74,12 +74,10 @@ public class OpsInspectionTaskBo extends BaseEntity { @NotNull(message = "执行人ID不能为空", groups = { AddGroup.class, EditGroup.class }) private Long personId; - /** - * 进度 + * 节点ids */ - @TableField(exist = false) - private BigDecimal taskProgress; + private String nodeIds; /** * 状态 1待执行2已延期3执行中4已完成 diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/vo/OpsInspectionTaskVo.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/vo/OpsInspectionTaskVo.java index a37c474..33bcb42 100644 --- a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/vo/OpsInspectionTaskVo.java +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/vo/OpsInspectionTaskVo.java @@ -13,11 +13,12 @@ import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.personnel.domain.vo.OpsUserVo; +import org.dromara.system.api.domain.vo.RemoteUserVo; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -86,13 +87,20 @@ public class OpsInspectionTaskVo implements Serializable { @ExcelProperty(value = "执行人ID") private Long personId; - private OpsUserVo person; + private RemoteUserVo person; /** * 进度 */ private BigDecimal taskProgress; + /** + * 节点ids + */ + private String nodeIds; + + private List nodes; + /** * 状态 1待执行2已延期3执行中4已完成 */ diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionTaskServiceImpl.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionTaskServiceImpl.java index 1416be4..3a50eab 100644 --- a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionTaskServiceImpl.java +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionTaskServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.inspection.service.impl; +import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.common.core.domain.R; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; @@ -10,10 +11,15 @@ 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.OpsInspectionNode; +import org.dromara.inspection.domain.vo.OpsInspectionNodeVo; import org.dromara.inspection.domain.vo.OpsInspectionPlanVo; import org.dromara.inspection.domain.vo.OpsInspectionRecordVo; +import org.dromara.inspection.mapper.OpsInspectionNodeMapper; import org.dromara.personnel.domain.vo.OpsUserVo; 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.stereotype.Service; import org.dromara.inspection.domain.bo.OpsInspectionTaskBo; @@ -28,10 +34,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneId; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -47,10 +50,12 @@ import java.util.stream.Collectors; public class OpsInspectionTaskServiceImpl implements IOpsInspectionTaskService { private final OpsInspectionTaskMapper baseMapper; + private final OpsInspectionNodeMapper nodeMapper; + @Autowired private OpsInspectionPlanServiceImpl opsInspectionPlanService; - @Autowired - private OpsUserServiceImpl opsUserService; + @DubboReference + private RemoteUserService userService; /** * 查询运维-巡检计划-任务 @@ -282,18 +287,57 @@ public class OpsInspectionTaskServiceImpl implements IOpsInspectionTaskService { private void buildEcho(List taskVos) { //TODO 回显信息 taskVos.forEach(taskVo -> { + LambdaQueryWrapper nodeWrapper = new LambdaQueryWrapper<>(); + if (taskVo.getPlanId()!=null) { OpsInspectionPlanVo opsInspectionPlanVo = opsInspectionPlanService.queryById(taskVo.getPlanId()); if (opsInspectionPlanVo != null) { taskVo.setPlan(opsInspectionPlanVo); } } + if (taskVo.getPersonId()!=null) { - OpsUserVo opsUserVo = opsUserService.queryById(taskVo.getPersonId()); - if (opsUserVo != null) { - taskVo.setPerson(opsUserVo); + List remoteUserVos = userService.selectListByIds(List.of(taskVo.getPersonId())); + if (remoteUserVos != null && !remoteUserVos.isEmpty()) { + taskVo.setPerson(remoteUserVos.getFirst()); } } + + //处理进度和节点信息 + if (taskVo.getNodeIds() != null && !taskVo.getNodeIds().isEmpty()){ + + List stringList = Arrays.stream(taskVo.getNodeIds().split(",")).toList(); + + nodeWrapper.clear(); + nodeWrapper.in(OpsInspectionNode::getId, stringList); + List nodeVoList = nodeMapper.selectVoList(nodeWrapper); + + //处理进度百分比 完成节点 / 总节点 * 100 + if (nodeVoList != null && !nodeVoList.isEmpty()){ + //统计完成节点 + int finishCount = nodeVoList.stream().filter(nodeVo -> nodeVo.getStatus().equals("1")).toList().size(); + if (finishCount == nodeVoList.size()){ + taskVo.setTaskProgress(new BigDecimal("100")); + }else { + taskVo.setTaskProgress(BigDecimal.valueOf(finishCount).divide(BigDecimal.valueOf(nodeVoList.size()), 2, RoundingMode.DOWN).multiply(BigDecimal.valueOf(100.00))); + } + } + + //处理节点列表 + if (taskVo.getNodeIds() != null && !taskVo.getNodeIds().isEmpty()){ + + List nodeVos = new ArrayList<>(); + for (String id : stringList) { + OpsInspectionNodeVo nodeVo = nodeMapper.selectVoById(id); + if (nodeVo != null) { + nodeVos.add(nodeVo); + } + } + taskVo.setNodes(nodeVos); + } + + } + }); }