2669ddd0 张雷

feat(module-inspection): 新增设备完成率指标并优化相关计算逻辑

- 在 InspectionEquipIndicatorsVO 和 InspectionEquipIndicatorsDetailVO 中添加设备完成率字段
-优化设备完成率的计算逻辑,避免除以零的情况
-修复异常项处理率的计算错误
- 优化未检项目数的计算,避免出现负数
1 个父辈 9d43976c
......@@ -498,6 +498,7 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
public InspectionEquipIndicatorsVO getInspectionEquipIndicators(String startDate, String endDate) {
InspectionEquipIndicatorsVO inspectionEquipIndicatorsVO = new InspectionEquipIndicatorsVO();
//设置初始值
inspectionEquipIndicatorsVO.setFinishRate("0");
inspectionEquipIndicatorsVO.setCompletionRate("0");
inspectionEquipIndicatorsVO.setUnCompletionRate("0");
inspectionEquipIndicatorsVO.setAbnormalRate("0");
......@@ -584,6 +585,11 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
if (processInstanceStateMap != null && processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED) != null) {
processedAbnormalItemsCount = processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED).size();
}
//完成率
String finishRate = "0";
if (totalInspectionEquipCount != 0) {
finishRate = numberFormat.format(checkedInspectionEquipCount / (double) totalInspectionEquipCount * 100);
}
//覆盖率
String completionRate = "0";
if (totalInspectionEquipCount != 0) {
......@@ -604,6 +610,7 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
if (abnormalItemsCount != 0) {
processedAbnormalRate = numberFormat.format(processedAbnormalItemsCount / (double) abnormalItemsCount * 100);
}
inspectionEquipIndicatorsVO.setFinishRate(finishRate);
inspectionEquipIndicatorsVO.setCompletionRate(completionRate);
inspectionEquipIndicatorsVO.setUnCompletionRate(unCompletionRate);
inspectionEquipIndicatorsVO.setAbnormalRate(abnormalRate);
......@@ -932,7 +939,11 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
abnormalCheckedItemsCount += ConvertUtils.getInt(abnormalTaskCheckedItemsCountMap.get(tempInspectionTaskId), 0);
}
inspectionAbnormalItemsTrendVO.setInspectionTaskDate(date);
inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(totalCheckeItemsCount - checkedItemsCount);
if(totalCheckeItemsCount - checkedItemsCount < 0){
inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(0);
}else{
inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(totalCheckeItemsCount - checkedItemsCount);
}
inspectionAbnormalItemsTrendVO.setAbnormalItemsCount(abnormalCheckedItemsCount);
inspectionAbnormalItemsTrendVOList.add(inspectionAbnormalItemsTrendVO);
}
......
......@@ -39,6 +39,8 @@ public class InspectionEquipIndicatorsDetailVO {
@ApiModelProperty(value = "未检设备数")
private Integer notCheckedInspectionEquipCount;
@ApiModelProperty(value = "设备完成率")
private String finishRate;
@ApiModelProperty(value = "完成率")
private String completionRate;
@ApiModelProperty(value = "未检率")
......@@ -96,8 +98,14 @@ public class InspectionEquipIndicatorsDetailVO {
return processedAbnormalRate;
}
//覆盖率
//设备完成率
public String getFinishRate() {
finishRate = "0";//设备完成率
if (totalInspectionEquipCount != 0) {
finishRate = JSUtils.divide( checkedInspectionEquipCount*100 ,totalInspectionEquipCount );
}
return finishRate;
}
......
......@@ -17,6 +17,8 @@ import lombok.EqualsAndHashCode;
@ApiModel(value="巡检设备指标", description="巡检设备指标")
public class InspectionEquipIndicatorsVO {
@ApiModelProperty(value = "完成率")
private String finishRate;
@ApiModelProperty(value = "覆盖率")
private String completionRate;
@ApiModelProperty(value = "未检率")
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!