09-25-试验任务完善试验记录
This commit is contained in:
@ -110,11 +110,11 @@ public class OpsInspectionTestTaskController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param projectId 项目ID
|
* @param projectId 项目ID
|
||||||
*/
|
*/
|
||||||
// @SaCheckPermission("inspection:testTask:record")
|
@SaCheckPermission("inspection:testTask:record")
|
||||||
// @GetMapping("/record")
|
@GetMapping("/record")
|
||||||
// public R<Object> record(@RequestParam Long projectId){
|
public R<Object> record(@RequestParam Long projectId){
|
||||||
// return opsInspectionTestTaskService.record(projectId);
|
return opsInspectionTestTaskService.record(projectId);
|
||||||
// }
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -10,36 +10,36 @@ public class OpsInspectionTestTaskRecord {
|
|||||||
/**
|
/**
|
||||||
* 本月完成数
|
* 本月完成数
|
||||||
*/
|
*/
|
||||||
private Long finishCount;
|
private String finishCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上月增加数
|
* 上月增加数
|
||||||
*/
|
*/
|
||||||
private BigDecimal finishCountAdd;
|
private String finishCountAdd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 本月通过率
|
* 本月通过率
|
||||||
*/
|
*/
|
||||||
private BigDecimal passValue;
|
private String passValue;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过增长率
|
* 通过增长率
|
||||||
*/
|
*/
|
||||||
private BigDecimal passValueAdd;
|
private String passValueAdd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 待分析数
|
* 待分析数
|
||||||
*/
|
*/
|
||||||
private Long failCount;
|
private String failCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 平均测试时间
|
* 平均测试时间
|
||||||
*/
|
*/
|
||||||
private Long averageTestTime;
|
private String averageTestTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 平均测试时间数增长率
|
* 平均测试时间数增长率
|
||||||
*/
|
*/
|
||||||
private BigDecimal averageTestTimeAdd;
|
private String averageTestTimeAdd;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -175,12 +175,17 @@ public class OpsInspectionOrderServiceImpl implements IOpsInspectionOrderService
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<String> urls = new ArrayList<>();
|
List<String> urls = new ArrayList<>();
|
||||||
|
List<Long> nodeIds = new ArrayList<>();
|
||||||
|
|
||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
OpsInspectionOrderVo vo = queryById(id);
|
OpsInspectionOrderVo vo = queryById(id);
|
||||||
if (vo != null){
|
if (vo != null){
|
||||||
if (vo.getFileUrl()!=null) {
|
if (vo.getFileUrl()!=null) {
|
||||||
urls.add(vo.getFileUrl());
|
urls.add(vo.getFileUrl());
|
||||||
}
|
}
|
||||||
|
for (String nodeId : List.of(vo.getNodeIds().split(","))) {
|
||||||
|
nodeIds.add(Long.valueOf(nodeId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,6 +196,11 @@ public class OpsInspectionOrderServiceImpl implements IOpsInspectionOrderService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//同时删除节点
|
||||||
|
if (!nodeIds.isEmpty()) {
|
||||||
|
nodeMapper.deleteByIds(nodeIds);
|
||||||
|
}
|
||||||
|
|
||||||
return baseMapper.deleteByIds(ids) > 0;
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -34,6 +34,7 @@ import java.math.RoundingMode;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 运维-巡检-试验任务Service业务层处理
|
* 运维-巡检-试验任务Service业务层处理
|
||||||
@ -269,7 +270,7 @@ public class OpsInspectionTestTaskServiceImpl implements IOpsInspectionTestTaskS
|
|||||||
Long totalTestTime = 0L;
|
Long totalTestTime = 0L;
|
||||||
|
|
||||||
for (OpsInspectionTestTaskVo opsInspectionTestTaskVo : list) {
|
for (OpsInspectionTestTaskVo opsInspectionTestTaskVo : list) {
|
||||||
if (opsInspectionTestTaskVo.getPlanFinishTime().after(startDate) && opsInspectionTestTaskVo.getPlanFinishTime().before(endDate) && opsInspectionTestTaskVo.getStatus().equals("5")){
|
if (opsInspectionTestTaskVo.getPlanBeginTime().after(startDate) && opsInspectionTestTaskVo.getPlanFinishTime().before(endDate) && opsInspectionTestTaskVo.getStatus().equals("5")){
|
||||||
finishCount++;
|
finishCount++;
|
||||||
totalTestTime += opsInspectionTestTaskVo.getPlanFinishTime().getTime() - opsInspectionTestTaskVo.getPlanBeginTime().getTime();
|
totalTestTime += opsInspectionTestTaskVo.getPlanFinishTime().getTime() - opsInspectionTestTaskVo.getPlanBeginTime().getTime();
|
||||||
}
|
}
|
||||||
@ -277,22 +278,51 @@ public class OpsInspectionTestTaskServiceImpl implements IOpsInspectionTestTaskS
|
|||||||
failCount++;
|
failCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
record.setFinishCount(finishCount);
|
|
||||||
record.setFailCount(failCount);
|
record.setFinishCount(String.valueOf(finishCount));
|
||||||
record.setPassValue(BigDecimal.valueOf(finishCount).divide(BigDecimal.valueOf(list.size()), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
|
record.setFailCount(String.valueOf(failCount));
|
||||||
record.setAverageTestTime(totalTestTime/finishCount);
|
record.setPassValue(String.valueOf(BigDecimal.valueOf(finishCount).divide(BigDecimal.valueOf(list.size()), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100"))));
|
||||||
|
record.setAverageTestTime(BigDecimal.valueOf((double) TimeUnit.MILLISECONDS.toMinutes(totalTestTime) / finishCount).toString());
|
||||||
|
|
||||||
//统计上一月的数据
|
//统计上一月的数据
|
||||||
firstDay = LocalDate.now().minusMonths(1).withDayOfMonth(1);
|
Date finalEndDate = Date.from(LocalDate.now().minusMonths(1).withDayOfMonth(1).atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||||
lastDay = firstDay.plusMonths(1).minusDays(1);
|
Date finalStartDate = Date.from(LocalDate.now().minusMonths(1).withDayOfMonth(1).plusMonths(1).minusDays(1).atTime(23, 59, 59).atZone(ZoneId.systemDefault()).toInstant());
|
||||||
Date finalEndDate = Date.from(firstDay.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
||||||
Date finalStartDate = Date.from(lastDay.atTime(23, 59, 59).atZone(ZoneId.systemDefault()).toInstant());
|
|
||||||
|
|
||||||
//上月数据列表
|
//上月数据列表
|
||||||
List<OpsInspectionTestTaskVo> lastMonth = list.stream().filter(testTaskVo -> testTaskVo.getPlanBeginTime().before(finalEndDate) && testTaskVo.getPlanFinishTime().after(finalStartDate))
|
List<OpsInspectionTestTaskVo> lastMonth = list.stream().filter(testTaskVo -> testTaskVo.getPlanFinishTime().before(finalEndDate) && testTaskVo.getPlanBeginTime().after(finalStartDate))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
|
//上月完成数
|
||||||
|
finishCount = 0L;
|
||||||
|
//上月实验通过率
|
||||||
|
BigDecimal passValue = BigDecimal.ZERO;
|
||||||
|
//上月平均实验时长
|
||||||
|
totalTestTime = 0L;
|
||||||
|
|
||||||
|
for (OpsInspectionTestTaskVo vo : lastMonth) {
|
||||||
|
if (vo.getStatus().equals("5")){
|
||||||
|
finishCount++;
|
||||||
|
totalTestTime += vo.getPlanFinishTime().getTime() - vo.getPlanBeginTime().getTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//完成数增长率
|
||||||
|
BigDecimal wcszzl = BigDecimal.valueOf(Double.parseDouble(record.getFinishCount())).divide(BigDecimal.valueOf(finishCount), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100.00));
|
||||||
|
record.setFinishCountAdd(wcszzl.toString());
|
||||||
|
|
||||||
|
//上月通过率
|
||||||
|
if(BigDecimal.valueOf(lastMonth.size()).compareTo(BigDecimal.ZERO) > 0) {
|
||||||
|
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));
|
||||||
|
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));
|
||||||
|
record.setAverageTestTimeAdd(sysjzzl.toString());
|
||||||
|
|
||||||
return R.ok(record);
|
return R.ok(record);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user