故障模块测试
parent
ab2f94acbd
commit
c66b84bc6c
|
@ -33,7 +33,6 @@ public class FaultRuleServiceImpl extends ServiceImpl<FaultRuleMapper, CarFaultR
|
|||
@Override
|
||||
public List<Vehicle> checkfault(CarFaultRule carFaultRule) {
|
||||
List<Vehicle> vehicles = new ArrayList<>();
|
||||
|
||||
//根据车辆VIN判断它属于什么类型的车辆
|
||||
CarInformation carInformation = faultRuleMapper.selectTypeByVIN(carFaultRule.getVin());
|
||||
Integer carInformationType = carInformation.getCarInformationType();
|
||||
|
@ -54,26 +53,38 @@ public class FaultRuleServiceImpl extends ServiceImpl<FaultRuleMapper, CarFaultR
|
|||
if (faultCondition.getMessageTypeCode().equals(declaredField.getName())){
|
||||
String faultconditionIdentification = faultCondition.getFaultconditionIdentification();
|
||||
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(">") ){
|
||||
if (BigDecimal.valueOf((Long) value).compareTo(faultconditionParameter)>0){
|
||||
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField+"超出规定范围"));
|
||||
if (bigDecimalValue.compareTo(faultconditionParameter)>0){
|
||||
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField.getName()+"超出规定范围"));
|
||||
}
|
||||
}else if(faultconditionIdentification.equals("<") || faultconditionIdentification.equals("<")){
|
||||
if (BigDecimal.valueOf((Long) value).compareTo(faultconditionParameter)<0){
|
||||
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField+"过低"));
|
||||
if (bigDecimalValue.compareTo(faultconditionParameter)<0){
|
||||
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField.getName()+"过低"));
|
||||
}
|
||||
}else if(faultconditionIdentification.equals(">=") || faultconditionIdentification.equals(">=")){
|
||||
if (BigDecimal.valueOf((Long) value).compareTo(faultconditionParameter)>0){
|
||||
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField+"超出规定范围")) ;
|
||||
if (bigDecimalValue.compareTo(faultconditionParameter)>=0){
|
||||
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField.getName()+"超出规定范围")) ;
|
||||
}
|
||||
}else if(faultconditionIdentification.equals("<=") || faultconditionIdentification.equals("<=")){
|
||||
if (BigDecimal.valueOf((Long) value).compareTo(faultconditionParameter)<0){
|
||||
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField+"过低"));
|
||||
if (bigDecimalValue.compareTo(faultconditionParameter)<=0){
|
||||
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField.getName()+"过低"));
|
||||
}
|
||||
}else {
|
||||
if (BigDecimal.valueOf((Long) value).compareTo(faultconditionParameter)==0){
|
||||
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField+"已达到故障点"));
|
||||
if (bigDecimalValue.compareTo(faultconditionParameter)==0){
|
||||
vehicles.add(new Vehicle(carFaultRule.getVin(),declaredField.getName()+"已达到故障点"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -85,6 +96,6 @@ public class FaultRuleServiceImpl extends ServiceImpl<FaultRuleMapper, CarFaultR
|
|||
}
|
||||
|
||||
}
|
||||
return null;
|
||||
return vehicles;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue