故障模块测试

master
WeiRan 2024-09-25 15:53:55 +08:00
parent ab2f94acbd
commit c66b84bc6c
1 changed files with 24 additions and 13 deletions

View File

@ -33,7 +33,6 @@ public class FaultRuleServiceImpl extends ServiceImpl<FaultRuleMapper, CarFaultR
@Override @Override
public List<Vehicle> checkfault(CarFaultRule carFaultRule) { public List<Vehicle> checkfault(CarFaultRule carFaultRule) {
List<Vehicle> vehicles = new ArrayList<>(); List<Vehicle> vehicles = new ArrayList<>();
//根据车辆VIN判断它属于什么类型的车辆 //根据车辆VIN判断它属于什么类型的车辆
CarInformation carInformation = faultRuleMapper.selectTypeByVIN(carFaultRule.getVin()); CarInformation carInformation = faultRuleMapper.selectTypeByVIN(carFaultRule.getVin());
Integer carInformationType = carInformation.getCarInformationType(); Integer carInformationType = carInformation.getCarInformationType();
@ -54,26 +53,38 @@ public class FaultRuleServiceImpl extends ServiceImpl<FaultRuleMapper, CarFaultR
if (faultCondition.getMessageTypeCode().equals(declaredField.getName())){ if (faultCondition.getMessageTypeCode().equals(declaredField.getName())){
String faultconditionIdentification = faultCondition.getFaultconditionIdentification(); String faultconditionIdentification = faultCondition.getFaultconditionIdentification();
BigDecimal faultconditionParameter = faultCondition.getFaultconditionParameter(); BigDecimal faultconditionParameter = faultCondition.getFaultconditionParameter();
// 尝试将值转换为BigDecimal
BigDecimal bigDecimalValue = null;
if (value instanceof Number) {
Number numberValue = (Number) value;
if (numberValue instanceof Long || numberValue instanceof Integer) {
bigDecimalValue = BigDecimal.valueOf(numberValue.longValue());
} else if (numberValue instanceof Double || numberValue instanceof Float) {
// 注意Double转BigDecimal可能会引入精度问题因为Double本身可能不精确
// 如果需要精确控制可以考虑从源头使用BigDecimal
bigDecimalValue = BigDecimal.valueOf(numberValue.doubleValue());
}
}
//判断条件选择 //判断条件选择
if (faultconditionIdentification.equals(">") || faultconditionIdentification.equals("&gt;") ){ if (faultconditionIdentification.equals(">") || faultconditionIdentification.equals("&gt;") ){
if (BigDecimal.valueOf((Long) value).compareTo(faultconditionParameter)>0){ if (bigDecimalValue.compareTo(faultconditionParameter)>0){
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField+"超出规定范围")); vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField.getName()+"超出规定范围"));
} }
}else if(faultconditionIdentification.equals("<") || faultconditionIdentification.equals("&lt;")){ }else if(faultconditionIdentification.equals("<") || faultconditionIdentification.equals("&lt;")){
if (BigDecimal.valueOf((Long) value).compareTo(faultconditionParameter)<0){ if (bigDecimalValue.compareTo(faultconditionParameter)<0){
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField+"过低")); vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField.getName()+"过低"));
} }
}else if(faultconditionIdentification.equals(">=") || faultconditionIdentification.equals("&gt;=")){ }else if(faultconditionIdentification.equals(">=") || faultconditionIdentification.equals("&gt;=")){
if (BigDecimal.valueOf((Long) value).compareTo(faultconditionParameter)>0){ if (bigDecimalValue.compareTo(faultconditionParameter)>=0){
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField+"超出规定范围")) ; vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField.getName()+"超出规定范围")) ;
} }
}else if(faultconditionIdentification.equals("<=") || faultconditionIdentification.equals("&lt;=")){ }else if(faultconditionIdentification.equals("<=") || faultconditionIdentification.equals("&lt;=")){
if (BigDecimal.valueOf((Long) value).compareTo(faultconditionParameter)<0){ if (bigDecimalValue.compareTo(faultconditionParameter)<=0){
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField+"过低")); vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField.getName()+"过低"));
} }
}else { }else {
if (BigDecimal.valueOf((Long) value).compareTo(faultconditionParameter)==0){ if (bigDecimalValue.compareTo(faultconditionParameter)==0){
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField+"已达到故障点")); vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField.getName()+"已达到故障点"));
} }
} }
} }
@ -85,6 +96,6 @@ public class FaultRuleServiceImpl extends ServiceImpl<FaultRuleMapper, CarFaultR
} }
} }
return null; return vehicles;
} }
} }