故障模块测试
parent
ab2f94acbd
commit
c66b84bc6c
|
@ -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(">") ){
|
if (faultconditionIdentification.equals(">") || faultconditionIdentification.equals(">") ){
|
||||||
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("<")){
|
}else if(faultconditionIdentification.equals("<") || faultconditionIdentification.equals("<")){
|
||||||
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(">=")){
|
}else if(faultconditionIdentification.equals(">=") || faultconditionIdentification.equals(">=")){
|
||||||
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("<=")){
|
}else if(faultconditionIdentification.equals("<=") || faultconditionIdentification.equals("<=")){
|
||||||
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue