09-24-巡检任务更新用户类型,实验任务处理节点进度及回显信息
This commit is contained in:
@ -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已完成
|
||||
|
||||
@ -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已完成
|
||||
|
||||
@ -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<OpsInspectionNodeVo> nodes;
|
||||
|
||||
/**
|
||||
* 状态 1待执行2已延期3执行中4已完成
|
||||
*/
|
||||
|
||||
@ -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<OpsInspectionTaskVo> taskVos) {
|
||||
//TODO 回显信息
|
||||
taskVos.forEach(taskVo -> {
|
||||
LambdaQueryWrapper<OpsInspectionNode> 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<RemoteUserVo> remoteUserVos = userService.selectListByIds(List.of(taskVo.getPersonId()));
|
||||
if (remoteUserVos != null && !remoteUserVos.isEmpty()) {
|
||||
taskVo.setPerson(remoteUserVos.getFirst());
|
||||
}
|
||||
}
|
||||
|
||||
//处理进度和节点信息
|
||||
if (taskVo.getNodeIds() != null && !taskVo.getNodeIds().isEmpty()){
|
||||
|
||||
List<String> stringList = Arrays.stream(taskVo.getNodeIds().split(",")).toList();
|
||||
|
||||
nodeWrapper.clear();
|
||||
nodeWrapper.in(OpsInspectionNode::getId, stringList);
|
||||
List<OpsInspectionNodeVo> 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<OpsInspectionNodeVo> nodeVos = new ArrayList<>();
|
||||
for (String id : stringList) {
|
||||
OpsInspectionNodeVo nodeVo = nodeMapper.selectVoById(id);
|
||||
if (nodeVo != null) {
|
||||
nodeVos.add(nodeVo);
|
||||
}
|
||||
}
|
||||
taskVo.setNodes(nodeVos);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user