09-25-修复节点完成率
This commit is contained in:
@ -111,6 +111,8 @@ public class OpsInspectionPlanVo implements Serializable {
|
||||
@ExcelProperty(value = "巡检项ID")
|
||||
private String inspectionItemId;
|
||||
|
||||
private List<OpsInspectionItemVo> itemVoList;
|
||||
|
||||
/**
|
||||
* 1启用2停用
|
||||
*/
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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<OpsInspectionPlanVo> list){
|
||||
list.forEach(record -> {
|
||||
OpsUser byId = opsUserService.getById(record.getPerson());
|
||||
if (byId != null){
|
||||
record.setNickName(byId.getUserName());
|
||||
List<RemoteUserVo> 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<OpsInspectionItemVo> itemVos = new ArrayList<>();
|
||||
for (String itemId : itemIds) {
|
||||
OpsInspectionItemVo itemVo = itemMapper.selectVoById(itemId);
|
||||
if (itemVo != null){
|
||||
itemVos.add(itemVo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user