diff --git a/casic-metering-model/src/main/java/com/casic/missiles/strategy/impl/CesiumAtomStrategyType.java b/casic-metering-model/src/main/java/com/casic/missiles/strategy/impl/CesiumAtomStrategyType.java index aa0a898..e1fca58 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/strategy/impl/CesiumAtomStrategyType.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/strategy/impl/CesiumAtomStrategyType.java @@ -44,24 +44,29 @@ if (StringUtils.isNotBlank(cesiumAtom.getAmplitudeTechnicalIndexLower()) && StringUtils.isNotBlank(cesiumAtom.getAmplitudeTechnicalIndexUpper()) && StringUtils.isNotBlank(cesiumAtom.getAmplitude())) { BigDecimal amplitude = new BigDecimal(cesiumAtom.getAmplitude()); cesiumAtom.setAmplitude(cesiumAtom.getAmplitude() + cesiumAtom.getAmplitudeTechnicalIndexUnit()); - if (amplitude.compareTo(new BigDecimal(cesiumAtom.getAmplitudeTechnicalIndexLower())) < 0 || amplitude.compareTo(new BigDecimal(cesiumAtom.getAmplitudeTechnicalIndexUpper())) > 0) { - cesiumAtom.setAmplitudeTechnicalIndexLower(cesiumAtom.getAmplitudeTechnicalIndexLower() + "~" + cesiumAtom.getAmplitudeTechnicalIndexUpper() + cesiumAtom.getAmplitudeTechnicalIndexUnit()); + int min = amplitude.compareTo(new BigDecimal(cesiumAtom.getAmplitudeTechnicalIndexLower())); + int max = amplitude.compareTo(new BigDecimal(cesiumAtom.getAmplitudeTechnicalIndexUpper())); + cesiumAtom.setAmplitudeTechnicalIndexLower(cesiumAtom.getAmplitudeTechnicalIndexLower() + "~" + cesiumAtom.getAmplitudeTechnicalIndexUpper() + cesiumAtom.getAmplitudeTechnicalIndexUnit()); + if (min < 0 || max > 0) { cesiumAtom.setAmplitude(cesiumAtom.getAmplitude() + "*"); } } if (StringUtils.isNotBlank(cesiumAtom.getPulseWidth()) && StringUtils.isNotBlank(cesiumAtom.getPulseWidthTechnicalIndexLower()) && StringUtils.isNotBlank(cesiumAtom.getAmplitudeTechnicalIndexUpper())) { BigDecimal pulseWidth = new BigDecimal(cesiumAtom.getPulseWidth()); cesiumAtom.setPulseWidth(cesiumAtom.getPulseWidth() + cesiumAtom.getPulseWidthTechnicalIndexUnit()); - if (pulseWidth.compareTo(new BigDecimal(cesiumAtom.getPulseWidthTechnicalIndexLower())) < 0 || pulseWidth.compareTo(new BigDecimal(cesiumAtom.getPulseWidthTechnicalIndexUpper())) > 0) { - cesiumAtom.setPulseWidthTechnicalIndexLower(cesiumAtom.getPulseWidthTechnicalIndexLower() + "~" + cesiumAtom.getPulseWidthTechnicalIndexUpper() + cesiumAtom.getPulseWidthTechnicalIndexUnit()); + int min = pulseWidth.compareTo(new BigDecimal(cesiumAtom.getPulseWidthTechnicalIndexLower())); + int max = pulseWidth.compareTo(new BigDecimal(cesiumAtom.getPulseWidthTechnicalIndexUpper())); + cesiumAtom.setPulseWidthTechnicalIndexLower(cesiumAtom.getPulseWidthTechnicalIndexLower() + "~" + cesiumAtom.getPulseWidthTechnicalIndexUpper() + cesiumAtom.getPulseWidthTechnicalIndexUnit()); + if (min < 0 || max > 0) { cesiumAtom.setPulseWidth(cesiumAtom.getPulseWidth() + "*"); } } if (StringUtils.isNotBlank(cesiumAtom.getRiseTime()) && StringUtils.isNotBlank(cesiumAtom.getTechnicalIndex())) { BigDecimal riseTime = new BigDecimal(cesiumAtom.getRiseTime()); cesiumAtom.setRiseTime(cesiumAtom.getRiseTime() + cesiumAtom.getTechnicalIndexUnit()); - if (riseTime.compareTo(new BigDecimal(cesiumAtom.getTechnicalIndex())) > 0) { - cesiumAtom.setTechnicalIndex(cesiumAtom.getTechnicalIndexSymbol() + cesiumAtom.getTechnicalIndex() + cesiumAtom.getTechnicalIndexUnit()); + int compareTo = riseTime.compareTo(new BigDecimal(cesiumAtom.getTechnicalIndex())); + cesiumAtom.setTechnicalIndex(cesiumAtom.getTechnicalIndexSymbol() + cesiumAtom.getTechnicalIndex() + cesiumAtom.getTechnicalIndexUnit()); + if (compareTo > 0) { cesiumAtom.setRiseTime(cesiumAtom.getRiseTime() + "*"); } }