diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
index 16cb1da..fdf5c0d 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
@@ -7,6 +7,9 @@
import lombok.Data;
import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/**
*
@@ -427,4 +430,109 @@
@ApiModelProperty(value = "类型(校准信号要传该参数)", dataType = "String")
@TableField(exist = false)
private String typeValue;
+
+
+ public interface AnalyzerStrategy {
+ void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer);
+ }
+
+ public enum Strategy implements AnalyzerStrategy {
+ /**
+ * 均值
+ */
+ AVERAGE_VALUE {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setAverageValue(analyzer.getExceedMark() == 1 ? analyzer.getAverageValue() + "*" : analyzer.getAverageValue());
+ }
+ },
+ /**
+ * 转换偏差
+ */
+ CONVERT_DEVIATION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setConvertDeviation(analyzer.getExceedMark() == 1 ? analyzer.getConvertDeviation() + "*" : analyzer.getConvertDeviation());
+ }
+ },
+ /**
+ * 测量值
+ */
+ ONE_VALUE {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setOneValue(analyzer.getExceedMark() == 1 ? analyzer.getOneValue() + "*" : analyzer.getOneValue());
+ }
+ },
+ /**
+ * 输入频响
+ */
+ INPUT_FREQUENCY {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setInputFrequency(analyzer.getExceedMark() == 1 ? analyzer.getInputFrequency() + "*" : analyzer.getInputFrequency());
+ }
+ },
+ /**
+ * 修正后结果
+ */
+ REVISED_RESULT {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setRevisedResult(analyzer.getExceedMark() == 1 ? analyzer.getRevisedResult() + "*" : analyzer.getRevisedResult());
+ ;
+ }
+ },
+ /**
+ * 谐波失真
+ */
+ HARMONIC_DISTORTION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setThreeValue(analyzer.getExceedMark() == 1 ? analyzer.getThreeValue() + "*" : analyzer.getThreeValue());
+ analyzer.setFiveValue(analyzer.getExceedMarkOne() == 1 ? analyzer.getFiveValue() + "*" : analyzer.getFiveValue());
+ analyzer.setSevenValue(analyzer.getExceedMarkTwo() == 1 ? analyzer.getSevenValue() + "*" : analyzer.getSevenValue());
+ }
+ },
+ /**
+ * 输入衰减器转换影响
+ */
+ INPUT_ATTENUATOR_CONVERSION_EFFECT {
+ /**
+ * @param analyzer
+ */
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setInputAttenuatorConversionEffect(analyzer.getExceedMark() == 1 ? analyzer.getInputAttenuatorConversionEffect() + "*" : analyzer.getInputAttenuatorConversionEffect());
+ }
+ },
+ /**
+ * 增益压缩
+ */
+ GAIN_COMPRESSION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setGainCompression(analyzer.getExceedMark() == 1 ? analyzer.getGainCompression() + "*" : analyzer.getGainCompression());
+ }
+ },
+ }
+
+ public void applyStrategyBasedOnDataType() {
+ Map map = new HashMap<>();
+ map.put("1", Strategy.AVERAGE_VALUE);
+ map.put("2", Strategy.AVERAGE_VALUE);
+ map.put("3", Strategy.AVERAGE_VALUE);
+ map.put("4", Strategy.CONVERT_DEVIATION);
+ map.put("5", Strategy.ONE_VALUE);
+ map.put("6", Strategy.ONE_VALUE);
+ map.put("7", Strategy.INPUT_FREQUENCY);
+ map.put("8", Strategy.REVISED_RESULT);
+ map.put("9", Strategy.HARMONIC_DISTORTION);
+ map.put("10", Strategy.INPUT_ATTENUATOR_CONVERSION_EFFECT);
+ map.put("11", Strategy.GAIN_COMPRESSION);
+ map.put("12", Strategy.ONE_VALUE);
+
+ Strategy strategy = map.get(dataType);
+ strategy.appendAsterisksIfNeeded(this);
+ }
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
index 16cb1da..fdf5c0d 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
@@ -7,6 +7,9 @@
import lombok.Data;
import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/**
*
@@ -427,4 +430,109 @@
@ApiModelProperty(value = "类型(校准信号要传该参数)", dataType = "String")
@TableField(exist = false)
private String typeValue;
+
+
+ public interface AnalyzerStrategy {
+ void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer);
+ }
+
+ public enum Strategy implements AnalyzerStrategy {
+ /**
+ * 均值
+ */
+ AVERAGE_VALUE {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setAverageValue(analyzer.getExceedMark() == 1 ? analyzer.getAverageValue() + "*" : analyzer.getAverageValue());
+ }
+ },
+ /**
+ * 转换偏差
+ */
+ CONVERT_DEVIATION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setConvertDeviation(analyzer.getExceedMark() == 1 ? analyzer.getConvertDeviation() + "*" : analyzer.getConvertDeviation());
+ }
+ },
+ /**
+ * 测量值
+ */
+ ONE_VALUE {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setOneValue(analyzer.getExceedMark() == 1 ? analyzer.getOneValue() + "*" : analyzer.getOneValue());
+ }
+ },
+ /**
+ * 输入频响
+ */
+ INPUT_FREQUENCY {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setInputFrequency(analyzer.getExceedMark() == 1 ? analyzer.getInputFrequency() + "*" : analyzer.getInputFrequency());
+ }
+ },
+ /**
+ * 修正后结果
+ */
+ REVISED_RESULT {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setRevisedResult(analyzer.getExceedMark() == 1 ? analyzer.getRevisedResult() + "*" : analyzer.getRevisedResult());
+ ;
+ }
+ },
+ /**
+ * 谐波失真
+ */
+ HARMONIC_DISTORTION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setThreeValue(analyzer.getExceedMark() == 1 ? analyzer.getThreeValue() + "*" : analyzer.getThreeValue());
+ analyzer.setFiveValue(analyzer.getExceedMarkOne() == 1 ? analyzer.getFiveValue() + "*" : analyzer.getFiveValue());
+ analyzer.setSevenValue(analyzer.getExceedMarkTwo() == 1 ? analyzer.getSevenValue() + "*" : analyzer.getSevenValue());
+ }
+ },
+ /**
+ * 输入衰减器转换影响
+ */
+ INPUT_ATTENUATOR_CONVERSION_EFFECT {
+ /**
+ * @param analyzer
+ */
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setInputAttenuatorConversionEffect(analyzer.getExceedMark() == 1 ? analyzer.getInputAttenuatorConversionEffect() + "*" : analyzer.getInputAttenuatorConversionEffect());
+ }
+ },
+ /**
+ * 增益压缩
+ */
+ GAIN_COMPRESSION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setGainCompression(analyzer.getExceedMark() == 1 ? analyzer.getGainCompression() + "*" : analyzer.getGainCompression());
+ }
+ },
+ }
+
+ public void applyStrategyBasedOnDataType() {
+ Map map = new HashMap<>();
+ map.put("1", Strategy.AVERAGE_VALUE);
+ map.put("2", Strategy.AVERAGE_VALUE);
+ map.put("3", Strategy.AVERAGE_VALUE);
+ map.put("4", Strategy.CONVERT_DEVIATION);
+ map.put("5", Strategy.ONE_VALUE);
+ map.put("6", Strategy.ONE_VALUE);
+ map.put("7", Strategy.INPUT_FREQUENCY);
+ map.put("8", Strategy.REVISED_RESULT);
+ map.put("9", Strategy.HARMONIC_DISTORTION);
+ map.put("10", Strategy.INPUT_ATTENUATOR_CONVERSION_EFFECT);
+ map.put("11", Strategy.GAIN_COMPRESSION);
+ map.put("12", Strategy.ONE_VALUE);
+
+ Strategy strategy = map.get(dataType);
+ strategy.appendAsterisksIfNeeded(this);
+ }
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
index 261e2b4..ae05a19 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
@@ -418,6 +418,10 @@
@TableField("conclusion")
private Integer conclusion;
+ @ApiModelProperty(value = "结论",dataType = "String")
+ @TableField(exist = false)
+ private String conclusionStr;
+
/**
* 技术指标前符号
*/
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
index 16cb1da..fdf5c0d 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
@@ -7,6 +7,9 @@
import lombok.Data;
import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/**
*
@@ -427,4 +430,109 @@
@ApiModelProperty(value = "类型(校准信号要传该参数)", dataType = "String")
@TableField(exist = false)
private String typeValue;
+
+
+ public interface AnalyzerStrategy {
+ void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer);
+ }
+
+ public enum Strategy implements AnalyzerStrategy {
+ /**
+ * 均值
+ */
+ AVERAGE_VALUE {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setAverageValue(analyzer.getExceedMark() == 1 ? analyzer.getAverageValue() + "*" : analyzer.getAverageValue());
+ }
+ },
+ /**
+ * 转换偏差
+ */
+ CONVERT_DEVIATION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setConvertDeviation(analyzer.getExceedMark() == 1 ? analyzer.getConvertDeviation() + "*" : analyzer.getConvertDeviation());
+ }
+ },
+ /**
+ * 测量值
+ */
+ ONE_VALUE {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setOneValue(analyzer.getExceedMark() == 1 ? analyzer.getOneValue() + "*" : analyzer.getOneValue());
+ }
+ },
+ /**
+ * 输入频响
+ */
+ INPUT_FREQUENCY {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setInputFrequency(analyzer.getExceedMark() == 1 ? analyzer.getInputFrequency() + "*" : analyzer.getInputFrequency());
+ }
+ },
+ /**
+ * 修正后结果
+ */
+ REVISED_RESULT {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setRevisedResult(analyzer.getExceedMark() == 1 ? analyzer.getRevisedResult() + "*" : analyzer.getRevisedResult());
+ ;
+ }
+ },
+ /**
+ * 谐波失真
+ */
+ HARMONIC_DISTORTION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setThreeValue(analyzer.getExceedMark() == 1 ? analyzer.getThreeValue() + "*" : analyzer.getThreeValue());
+ analyzer.setFiveValue(analyzer.getExceedMarkOne() == 1 ? analyzer.getFiveValue() + "*" : analyzer.getFiveValue());
+ analyzer.setSevenValue(analyzer.getExceedMarkTwo() == 1 ? analyzer.getSevenValue() + "*" : analyzer.getSevenValue());
+ }
+ },
+ /**
+ * 输入衰减器转换影响
+ */
+ INPUT_ATTENUATOR_CONVERSION_EFFECT {
+ /**
+ * @param analyzer
+ */
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setInputAttenuatorConversionEffect(analyzer.getExceedMark() == 1 ? analyzer.getInputAttenuatorConversionEffect() + "*" : analyzer.getInputAttenuatorConversionEffect());
+ }
+ },
+ /**
+ * 增益压缩
+ */
+ GAIN_COMPRESSION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setGainCompression(analyzer.getExceedMark() == 1 ? analyzer.getGainCompression() + "*" : analyzer.getGainCompression());
+ }
+ },
+ }
+
+ public void applyStrategyBasedOnDataType() {
+ Map map = new HashMap<>();
+ map.put("1", Strategy.AVERAGE_VALUE);
+ map.put("2", Strategy.AVERAGE_VALUE);
+ map.put("3", Strategy.AVERAGE_VALUE);
+ map.put("4", Strategy.CONVERT_DEVIATION);
+ map.put("5", Strategy.ONE_VALUE);
+ map.put("6", Strategy.ONE_VALUE);
+ map.put("7", Strategy.INPUT_FREQUENCY);
+ map.put("8", Strategy.REVISED_RESULT);
+ map.put("9", Strategy.HARMONIC_DISTORTION);
+ map.put("10", Strategy.INPUT_ATTENUATOR_CONVERSION_EFFECT);
+ map.put("11", Strategy.GAIN_COMPRESSION);
+ map.put("12", Strategy.ONE_VALUE);
+
+ Strategy strategy = map.get(dataType);
+ strategy.appendAsterisksIfNeeded(this);
+ }
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
index 261e2b4..ae05a19 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
@@ -418,6 +418,10 @@
@TableField("conclusion")
private Integer conclusion;
+ @ApiModelProperty(value = "结论",dataType = "String")
+ @TableField(exist = false)
+ private String conclusionStr;
+
/**
* 技术指标前符号
*/
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java
index 7015ed5..4319e56 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java
@@ -198,10 +198,13 @@
/**
* 结论,是否小于Urel(0/1)
*/
- @ApiModelProperty(value = "结论,是否小于Urel(0/1)", dataType = "String")
+ @ApiModelProperty(value = "结论,是否小于Urel(0/1)", dataType = "Integer")
@TableField("less_than")
private Integer lessThan;
+ @ApiModelProperty(value = "结论,是否小于Urel", dataType = "String")
+ @TableField(exist = false)
+ private String conclusion;
/**
* 稳定性
*/
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
index 16cb1da..fdf5c0d 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
@@ -7,6 +7,9 @@
import lombok.Data;
import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/**
*
@@ -427,4 +430,109 @@
@ApiModelProperty(value = "类型(校准信号要传该参数)", dataType = "String")
@TableField(exist = false)
private String typeValue;
+
+
+ public interface AnalyzerStrategy {
+ void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer);
+ }
+
+ public enum Strategy implements AnalyzerStrategy {
+ /**
+ * 均值
+ */
+ AVERAGE_VALUE {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setAverageValue(analyzer.getExceedMark() == 1 ? analyzer.getAverageValue() + "*" : analyzer.getAverageValue());
+ }
+ },
+ /**
+ * 转换偏差
+ */
+ CONVERT_DEVIATION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setConvertDeviation(analyzer.getExceedMark() == 1 ? analyzer.getConvertDeviation() + "*" : analyzer.getConvertDeviation());
+ }
+ },
+ /**
+ * 测量值
+ */
+ ONE_VALUE {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setOneValue(analyzer.getExceedMark() == 1 ? analyzer.getOneValue() + "*" : analyzer.getOneValue());
+ }
+ },
+ /**
+ * 输入频响
+ */
+ INPUT_FREQUENCY {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setInputFrequency(analyzer.getExceedMark() == 1 ? analyzer.getInputFrequency() + "*" : analyzer.getInputFrequency());
+ }
+ },
+ /**
+ * 修正后结果
+ */
+ REVISED_RESULT {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setRevisedResult(analyzer.getExceedMark() == 1 ? analyzer.getRevisedResult() + "*" : analyzer.getRevisedResult());
+ ;
+ }
+ },
+ /**
+ * 谐波失真
+ */
+ HARMONIC_DISTORTION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setThreeValue(analyzer.getExceedMark() == 1 ? analyzer.getThreeValue() + "*" : analyzer.getThreeValue());
+ analyzer.setFiveValue(analyzer.getExceedMarkOne() == 1 ? analyzer.getFiveValue() + "*" : analyzer.getFiveValue());
+ analyzer.setSevenValue(analyzer.getExceedMarkTwo() == 1 ? analyzer.getSevenValue() + "*" : analyzer.getSevenValue());
+ }
+ },
+ /**
+ * 输入衰减器转换影响
+ */
+ INPUT_ATTENUATOR_CONVERSION_EFFECT {
+ /**
+ * @param analyzer
+ */
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setInputAttenuatorConversionEffect(analyzer.getExceedMark() == 1 ? analyzer.getInputAttenuatorConversionEffect() + "*" : analyzer.getInputAttenuatorConversionEffect());
+ }
+ },
+ /**
+ * 增益压缩
+ */
+ GAIN_COMPRESSION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setGainCompression(analyzer.getExceedMark() == 1 ? analyzer.getGainCompression() + "*" : analyzer.getGainCompression());
+ }
+ },
+ }
+
+ public void applyStrategyBasedOnDataType() {
+ Map map = new HashMap<>();
+ map.put("1", Strategy.AVERAGE_VALUE);
+ map.put("2", Strategy.AVERAGE_VALUE);
+ map.put("3", Strategy.AVERAGE_VALUE);
+ map.put("4", Strategy.CONVERT_DEVIATION);
+ map.put("5", Strategy.ONE_VALUE);
+ map.put("6", Strategy.ONE_VALUE);
+ map.put("7", Strategy.INPUT_FREQUENCY);
+ map.put("8", Strategy.REVISED_RESULT);
+ map.put("9", Strategy.HARMONIC_DISTORTION);
+ map.put("10", Strategy.INPUT_ATTENUATOR_CONVERSION_EFFECT);
+ map.put("11", Strategy.GAIN_COMPRESSION);
+ map.put("12", Strategy.ONE_VALUE);
+
+ Strategy strategy = map.get(dataType);
+ strategy.appendAsterisksIfNeeded(this);
+ }
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
index 261e2b4..ae05a19 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
@@ -418,6 +418,10 @@
@TableField("conclusion")
private Integer conclusion;
+ @ApiModelProperty(value = "结论",dataType = "String")
+ @TableField(exist = false)
+ private String conclusionStr;
+
/**
* 技术指标前符号
*/
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java
index 7015ed5..4319e56 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java
@@ -198,10 +198,13 @@
/**
* 结论,是否小于Urel(0/1)
*/
- @ApiModelProperty(value = "结论,是否小于Urel(0/1)", dataType = "String")
+ @ApiModelProperty(value = "结论,是否小于Urel(0/1)", dataType = "Integer")
@TableField("less_than")
private Integer lessThan;
+ @ApiModelProperty(value = "结论,是否小于Urel", dataType = "String")
+ @TableField(exist = false)
+ private String conclusion;
/**
* 稳定性
*/
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java
index 827c10e..3b0a7b5 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java
@@ -190,7 +190,6 @@
@TableField(exist = false)
private String checkAccord;
-
@ApiModelProperty(value = "检测地址(打印)", dataType = "String")
@TableField(exist = false)
private String checkAddress;
@@ -239,6 +238,14 @@
@TableField(exist = false)
private List checkDataETwoList;
+ @ApiModelProperty(value = "核查数据-频谱分析仪",dataType = "List")
+ @TableField(exist = false)
+ private List checkDataSpectrumAnalyzerList;
+
+ @ApiModelProperty(value = "核查数据-示波器",dataType = "List")
+ @TableField(exist = false)
+ private List checkDataOscilloscopeList;
+
@ApiModelProperty(value = "温度值结论",dataType = "String")
@TableField(exist = false)
private String temperatureConclusion;
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
index 16cb1da..fdf5c0d 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
@@ -7,6 +7,9 @@
import lombok.Data;
import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/**
*
@@ -427,4 +430,109 @@
@ApiModelProperty(value = "类型(校准信号要传该参数)", dataType = "String")
@TableField(exist = false)
private String typeValue;
+
+
+ public interface AnalyzerStrategy {
+ void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer);
+ }
+
+ public enum Strategy implements AnalyzerStrategy {
+ /**
+ * 均值
+ */
+ AVERAGE_VALUE {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setAverageValue(analyzer.getExceedMark() == 1 ? analyzer.getAverageValue() + "*" : analyzer.getAverageValue());
+ }
+ },
+ /**
+ * 转换偏差
+ */
+ CONVERT_DEVIATION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setConvertDeviation(analyzer.getExceedMark() == 1 ? analyzer.getConvertDeviation() + "*" : analyzer.getConvertDeviation());
+ }
+ },
+ /**
+ * 测量值
+ */
+ ONE_VALUE {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setOneValue(analyzer.getExceedMark() == 1 ? analyzer.getOneValue() + "*" : analyzer.getOneValue());
+ }
+ },
+ /**
+ * 输入频响
+ */
+ INPUT_FREQUENCY {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setInputFrequency(analyzer.getExceedMark() == 1 ? analyzer.getInputFrequency() + "*" : analyzer.getInputFrequency());
+ }
+ },
+ /**
+ * 修正后结果
+ */
+ REVISED_RESULT {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setRevisedResult(analyzer.getExceedMark() == 1 ? analyzer.getRevisedResult() + "*" : analyzer.getRevisedResult());
+ ;
+ }
+ },
+ /**
+ * 谐波失真
+ */
+ HARMONIC_DISTORTION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setThreeValue(analyzer.getExceedMark() == 1 ? analyzer.getThreeValue() + "*" : analyzer.getThreeValue());
+ analyzer.setFiveValue(analyzer.getExceedMarkOne() == 1 ? analyzer.getFiveValue() + "*" : analyzer.getFiveValue());
+ analyzer.setSevenValue(analyzer.getExceedMarkTwo() == 1 ? analyzer.getSevenValue() + "*" : analyzer.getSevenValue());
+ }
+ },
+ /**
+ * 输入衰减器转换影响
+ */
+ INPUT_ATTENUATOR_CONVERSION_EFFECT {
+ /**
+ * @param analyzer
+ */
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setInputAttenuatorConversionEffect(analyzer.getExceedMark() == 1 ? analyzer.getInputAttenuatorConversionEffect() + "*" : analyzer.getInputAttenuatorConversionEffect());
+ }
+ },
+ /**
+ * 增益压缩
+ */
+ GAIN_COMPRESSION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setGainCompression(analyzer.getExceedMark() == 1 ? analyzer.getGainCompression() + "*" : analyzer.getGainCompression());
+ }
+ },
+ }
+
+ public void applyStrategyBasedOnDataType() {
+ Map map = new HashMap<>();
+ map.put("1", Strategy.AVERAGE_VALUE);
+ map.put("2", Strategy.AVERAGE_VALUE);
+ map.put("3", Strategy.AVERAGE_VALUE);
+ map.put("4", Strategy.CONVERT_DEVIATION);
+ map.put("5", Strategy.ONE_VALUE);
+ map.put("6", Strategy.ONE_VALUE);
+ map.put("7", Strategy.INPUT_FREQUENCY);
+ map.put("8", Strategy.REVISED_RESULT);
+ map.put("9", Strategy.HARMONIC_DISTORTION);
+ map.put("10", Strategy.INPUT_ATTENUATOR_CONVERSION_EFFECT);
+ map.put("11", Strategy.GAIN_COMPRESSION);
+ map.put("12", Strategy.ONE_VALUE);
+
+ Strategy strategy = map.get(dataType);
+ strategy.appendAsterisksIfNeeded(this);
+ }
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
index 261e2b4..ae05a19 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
@@ -418,6 +418,10 @@
@TableField("conclusion")
private Integer conclusion;
+ @ApiModelProperty(value = "结论",dataType = "String")
+ @TableField(exist = false)
+ private String conclusionStr;
+
/**
* 技术指标前符号
*/
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java
index 7015ed5..4319e56 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java
@@ -198,10 +198,13 @@
/**
* 结论,是否小于Urel(0/1)
*/
- @ApiModelProperty(value = "结论,是否小于Urel(0/1)", dataType = "String")
+ @ApiModelProperty(value = "结论,是否小于Urel(0/1)", dataType = "Integer")
@TableField("less_than")
private Integer lessThan;
+ @ApiModelProperty(value = "结论,是否小于Urel", dataType = "String")
+ @TableField(exist = false)
+ private String conclusion;
/**
* 稳定性
*/
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java
index 827c10e..3b0a7b5 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java
@@ -190,7 +190,6 @@
@TableField(exist = false)
private String checkAccord;
-
@ApiModelProperty(value = "检测地址(打印)", dataType = "String")
@TableField(exist = false)
private String checkAddress;
@@ -239,6 +238,14 @@
@TableField(exist = false)
private List checkDataETwoList;
+ @ApiModelProperty(value = "核查数据-频谱分析仪",dataType = "List")
+ @TableField(exist = false)
+ private List checkDataSpectrumAnalyzerList;
+
+ @ApiModelProperty(value = "核查数据-示波器",dataType = "List")
+ @TableField(exist = false)
+ private List checkDataOscilloscopeList;
+
@ApiModelProperty(value = "温度值结论",dataType = "String")
@TableField(exist = false)
private String temperatureConclusion;
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java
new file mode 100644
index 0000000..f8e4f04
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java
@@ -0,0 +1,513 @@
+package com.casic.missiles.service.Impl.eqpt.standard.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.PrintFileModuleNameEnum;
+import com.casic.missiles.enums.business.MeasureItemBelongStandardEquipmentDictEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureApprovalMapper;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureApproval;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataOscilloscope;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataSpectrumAnalyzer;
+import com.casic.missiles.model.equipment.BizEquipmentInfo;
+import com.casic.missiles.model.equipment.BizEquipmentStandardCheckDataOscilloscope;
+import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval;
+import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentPrint;
+import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentSupport;
+import com.casic.missiles.service.listeners.register.PrintFileRegister;
+import com.casic.missiles.utils.DictCodeUtils;
+import com.casic.missiles.utils.SnowflakeUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @Author: TuT
+ * @CreateTime: 2024-03-13 09:35
+ * @Description: OscilloScopeHandler 示波器handler
+ */
+@Component(MeasureItemBelongStandardEquipmentDictEnum.OSCILLOSCOPE)
+@RequiredArgsConstructor
+@Slf4j
+public class OscilloScopeHandler extends StandardEquipmentSupport implements PrintFileModuleNameEnum, StandardEquipmentPrint {
+
+ private final PrintFileRegister printFileRegister;
+
+ private final BizBusinessDeviceMeasureApprovalMapper bizBusinessDeviceMeasureApprovalMapper;
+
+ /**
+ * @param request
+ * @return
+ */
+ @Override
+ public List doCheckCertificateFile(BizEquipmentStandardCheckRecordApproval request) {
+ try {
+ //健壮性判断
+ if (ObjectUtil.isEmpty(request)) {
+ return null;
+ }
+ DictCodeUtils.convertDictCodeToName(request.getEquipmentInfo());
+ for (BizEquipmentInfo bizEquipmentInfo : request.getCheckEquipmentList()) {
+ DictCodeUtils.convertDictCodeToName(bizEquipmentInfo);
+ }
+ //核查依据文件为空,则设置为无
+ if (StringUtils.isBlank(request.getCheckAccord())) {
+ request.setCheckAccord("无");
+ }
+ Map map = BeanUtil.beanToMap(request);
+
+
+ readyForCheckParams(map, request.getCheckDataOscilloscopeList());
+ replaceSlash(map);
+ map.put("pdfStatus", 1);
+ //除了选用的模板不一致,模板配置流程是一致的
+ String wordUrl = printFileRegister.registerPrintFile(SPECTRUM_ANALYZER, "数据打印", null, map, false, null, null);
+ List urlList = new ArrayList<>();
+ if (StringUtils.isNotEmpty(wordUrl)) {
+ urlList.add(wordUrl);
+ }
+ if (map.containsKey("pdfUrl")) {
+ urlList.add((String) map.get("pdfUrl"));
+ }
+ return urlList;
+ } catch (Exception ex) {
+ log.info("-----package data is exception, this is {}", ex);
+ throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED);
+ }
+ }
+
+ private void readyForCheckParams(Map map, List oscilloscopeList) {
+ String[] checkType = {HOUR_MARKERS, SQUARE_WAVE_VOLTAGE_50,
+ SQUARE_WAVE_VOLTAGE_1M, DC_VOLTAGE_50,
+ DC_VOLTAGE_1M, INPUT_IMPEDANCE,
+ SINE_SIGNAL_FLATNESS, RISE_TIME_CHECK};
+ String[] checkPoints = {REPEATABILITY, STABILITY};
+ for (int i = 0; i < checkType.length; i++) {
+ String type = checkType[i];
+ int num = i;
+ List repList = oscilloscopeList.stream()
+ .filter(o -> type.equals(o.getCheckType()) && checkPoints[0].equals(o.getParams()))
+ .map(o -> {
+ o.setCheckPoint(StringUtils.isNotBlank(o.getCheckPoint()) ? o.getCheckPoint() + o.getUnit() : "");
+ o.setTypeValue(StringUtils.isNotBlank(o.getTypeValue()) ? o.getTypeValue() + "Vp-p" : "");
+ if (7 == num) {
+ o.setTestValueOne(StringUtils.isNotBlank(o.getTestValueOne()) ? o.getTestValueOne() + o.getUnit() : o.getTestValueOne());
+ }
+ return o;
+ })
+ .collect(Collectors.toList());
+ map.put(REPEAT_PREFIX + i + 1, repList);
+
+ List staList = oscilloscopeList.stream()
+ .filter(o -> type.equals(o.getCheckType()) && checkPoints[1].equals(o.getParams()))
+ .map(o -> {
+ o.setCheckPoint(StringUtils.isNotBlank(o.getCheckPoint()) ? o.getCheckPoint() + o.getUnit() : "");
+ o.setTypeValue(StringUtils.isNotBlank(o.getTypeValue()) ? o.getTypeValue() + "Vp-p" : "");
+ o.setConclusionStr(1 == o.getConclusion() ? "合格" : "不合格");
+ o.setTechnicalIndex(StringUtils.isNotBlank(o.getTechnicalIndex())?o.getTechnicalIndexSymbol()+o.getTechnicalIndex()+o.getTechnicalIndexUnit():"");
+ if (7 == num) {
+ o.setTestValueOne(StringUtils.isNotBlank(o.getTestValueOne()) ? o.getTestValueOne() + o.getUnit() : o.getTestValueOne());
+ }
+ return o;
+ })
+ .collect(Collectors.toList());
+ map.put(STA_PREFIX + i, staList);
+ List dateList = staList.stream()
+ .flatMap(o -> Stream.of(o.getTestValueOneDate(), o.getTestValueTwoDate(),
+ o.getTestValueThreeDate(), o.getTestValueFourDate(),
+ o.getTestValueFiveDate(), o.getTestValueSixDate()))
+ .collect(Collectors.toList());
+ for (int j = 0; j < dateList.size(); j++) {
+ map.put(STA_PREFIX + i + DATE_PREFIX + j, dateList.get(j));
+ }
+ }
+ }
+
+ /**
+ * @param request
+ * @return
+ */
+ @Override
+ public List doCreateOriginalFile(BizBusinessDeviceMeasureApproval request) {
+ try {
+ if (examineOriginalFile(request)) {
+ log.debug("校验没有原始记录");
+ return null;
+ }
+ if (CollectionUtils.isEmpty(request.getMeasureDataSpectrumAnalyzerList())) {
+ List list = new ArrayList<>();
+ list.add(new BizBusinessDeviceMeasureDataSpectrumAnalyzer());
+ request.setMeasureDataSpectrumAnalyzerList(list);
+ }
+
+ DictCodeUtils.convertDictCodeToName(request);
+ Map map = BeanUtil.beanToMap(request);
+
+ switch (request.getItemCategoryName()) {
+ case DIGITAL_OSCILLOSCOPE:
+ readyForDigitalOriginalFillParams(map, request.getMeasureDataOscilloscopeList());
+ break;
+ case ANALOG_OSCILLOSCOPE:
+ readyForImitateOriginalFillParams(map, request.getMeasureDataOscilloscopeList());
+ break;
+ default:
+ throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_ITEM_CATEGORY_NAME_NOT_EXIST);
+ }
+
+ //替换/方法
+ replaceSlash(map);
+ List templateUrls = new ArrayList<>();
+ templateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(OSCILLOSCOPE, "1", request.getItemCategoryName()));
+ //与证书模板区分
+ SnowflakeUtil snowflakeUtil = new SnowflakeUtil();
+ map.put("id", snowflakeUtil.nextId());
+ map.put("pdfStatus", 1);
+ log.debug("original before ----");
+ //除了选用的模板不一致,模板配置流程是一致的
+ String originalWordUrlFile = printFileRegister.registerPrintFile(OSCILLOSCOPE, "原始记录打印", null, map, false, null, templateUrls);
+ log.debug("originalUrlFile after------------{}", originalWordUrlFile);
+ List urlList = new ArrayList<>();
+ urlList.add(originalWordUrlFile);
+ if (map.containsKey("pdfUrl")) {
+ urlList.add((String) map.get("pdfUrl"));
+ }
+ return urlList;
+ } catch (Exception ex) {
+ log.info("-----package data is exception, this is {}", ex);
+ throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED);
+ }
+ }
+
+ /**
+ * 数字示波器原始记录
+ *
+ * @param map
+ * @param oscilloscopeList
+ */
+ private void readyForDigitalOriginalFillParams(Map map, List oscilloscopeList) {
+ if (CollectionUtils.isEmpty(oscilloscopeList)) {
+ throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_MEASURE_DATA_NOT_EXIST);
+ }
+ //根据dataType分组,key为dataType,value为List
+ Map> groupMap = oscilloscopeList.stream()
+ .filter(Objects::nonNull) // 确保元素不为null
+ .collect(Collectors.groupingBy(BizBusinessDeviceMeasureDataOscilloscope::getDataType));
+
+ List baseList = groupMap.get(TIME_BASE).stream()
+ .map(s -> {
+ s.setCycleSignal(StringUtils.isNotBlank(s.getCycleSignal()) ? s.getCycleSignal() + s.getCycleSignalUnit() : "");
+ s.setTimeBaseRelativeError(StringUtils.isNotBlank(s.getTimeBaseRelativeError()) ? s.getTimeBaseRelativeError() + s.getTimeBaseRelativeErrorUnit() : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("baseList", baseList);
+ List gainList = groupMap.get(DC_GAIN).stream()
+ .map(s -> {
+ s.setImpedance(StringUtils.isNotBlank(s.getImpedance()) ? s.getImpedance() + s.getImpedanceUnit() : "");
+ s.setVerticalScaleGear(StringUtils.isNotBlank(s.getVerticalScaleGear()) ? s.getVerticalScaleGear() + s.getVerticalScaleGearUnit() : "");
+ s.setStandardValue(StringUtils.isNotBlank(s.getStandardValue()) ? s.getStandardValue() + s.getStandardValueUnit() : "");
+ s.setMeasureValue(StringUtils.isNotBlank(s.getMeasureValue()) ? s.getMeasureValue() + s.getMeasureValueUnit() : "");
+ s.setRelativeError(StringUtils.isNotBlank(s.getRelativeError()) ? s.getRelativeError() + "%" : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("gainList", gainList);
+ List offetList = groupMap.get(DC_OFFSET).stream()
+ .map(s -> {
+ s.setImpedance(StringUtils.isNotBlank(s.getImpedance()) ? s.getImpedance() + s.getImpedanceUnit() : "");
+ s.setVerticalScaleGear(StringUtils.isNotBlank(s.getVerticalScaleGear()) ? s.getVerticalScaleGear() + s.getVerticalScaleGearUnit() : "");
+ s.setNominalValue(StringUtils.isNotBlank(s.getNominalValue()) ? s.getNominalValue() + s.getNominalValueUnit() : "");
+ s.setMeasureValue(StringUtils.isNotBlank(s.getMeasureValue()) ? s.getMeasureValue() + s.getMeasureValueUnit() : "");
+ s.setRelativeError(StringUtils.isNotBlank(s.getRelativeError()) ? s.getRelativeError() + "%" : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("offsetList", offetList);
+ List bandwidthList = groupMap.get(OSCILLOSCOPE_FREQUENCY_BAND_WIDTH).stream()
+ .map(s -> {
+ s.setImpedance(StringUtils.isNotBlank(s.getImpedance()) ? s.getImpedance() + s.getImpedanceUnit() : "");
+ s.setVerticalScaleGear(StringUtils.isNotBlank(s.getVerticalScaleGear()) ? s.getVerticalScaleGear() + s.getVerticalScaleGearUnit() : "");
+ s.setReferenceAmplitude(StringUtils.isNotBlank(s.getReferenceAmplitude()) ? s.getReferenceAmplitude() + s.getReferenceAmplitudeUnit() : "");
+ s.setMeasureAmplitude(StringUtils.isNotBlank(s.getMeasureAmplitude()) ? s.getMeasureAmplitude() + s.getMeasureAmplitudeUnit() : "");
+ s.setDecibelNumber(StringUtils.isNotBlank(s.getDecibelNumber()) ? s.getDecibelNumber() + "dB" : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("bandwidthList", bandwidthList);
+ List sensitivityList = groupMap.get(TRIGGER_SENSITIVITY).stream()
+ .map(s -> {
+ s.setSignalFrequency(StringUtils.isNotBlank(s.getSignalFrequency()) ? s.getSignalFrequency() + s.getSignalFrequencyUnit() : "");
+ s.setMeasureValue(StringUtils.isNotBlank(s.getMeasureValue()) ? s.getMeasureValue() + s.getMeasureValueUnit() : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("sensitivityList", sensitivityList);
+ List riseTimeList = groupMap.get(RISE_TIME).stream()
+ .map(s -> {
+ s.setImpedance(StringUtils.isNotBlank(s.getImpedance()) ? s.getImpedance() + s.getImpedanceUnit() : "");
+ s.setVerticalScaleGear(StringUtils.isNotBlank(s.getVerticalScaleGear()) ? s.getVerticalScaleGear() + s.getVerticalScaleGearUnit() : "");
+ s.setCorrectRiseTime(StringUtils.isNotBlank(s.getCorrectRiseTime()) ? s.getCorrectRiseTime() + "ns" : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("timeList", riseTimeList);
+ List inputList = groupMap.get(OSCILLOSCOPE_INPUT_RESISTANCE).stream()
+ .map(s -> {
+ s.setImpedance(StringUtils.isNotBlank(s.getImpedance()) ? s.getImpedance() + s.getImpedanceUnit() : "");
+ s.setVerticalScaleGear(StringUtils.isNotBlank(s.getVerticalScaleGear()) ? s.getVerticalScaleGear() + s.getVerticalScaleGearUnit() : "");
+ s.setMeasureValue(StringUtils.isNotBlank(s.getMeasureValue()) ? s.getMeasureValue() + s.getMeasureValueUnit() : "");
+ s.setRelativeError(StringUtils.isNotBlank(s.getRelativeError()) ? s.getRelativeError() + "%" : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("inputList", inputList);
+ List signalList = groupMap.get(SIGNAL).stream()
+ .map(s -> {
+ s.setNominalValue(StringUtils.isNotBlank(s.getNominalValue()) ? s.getNominalValue() + s.getNominalValueUnit() : "");
+ s.setTopMeasureValue(StringUtils.isNotBlank(s.getTopMeasureValue()) ? s.getTopMeasureValue() + s.getTopMeasureValueUnit() : "");
+ s.setBottomMeasureValue(StringUtils.isNotBlank(s.getBottomMeasureValue()) ? s.getBottomMeasureValue() + s.getBottomMeasureValueUnit() : "");
+ s.setMeasureValue(StringUtils.isNotBlank(s.getMeasureValue()) ? s.getMeasureValue() + s.getMeasureValueUnit() : "");
+ s.setRelativeError(StringUtils.isNotBlank(s.getRelativeError()) ? s.getRelativeError() + "%" : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("signalList", signalList);
+ }
+
+
+ /**
+ * 模拟示波器原始记录
+ *
+ * @param map
+ * @param oscilloscopeList
+ */
+ private void readyForImitateOriginalFillParams(Map map, List oscilloscopeList) {
+ if (CollectionUtils.isEmpty(oscilloscopeList)) {
+ throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_MEASURE_DATA_NOT_EXIST);
+ }
+ //根据dataType分组,key为dataType,value为List
+ Map> groupMap = oscilloscopeList.stream()
+ .filter(Objects::nonNull) // 确保元素不为null
+ .collect(Collectors.groupingBy(BizBusinessDeviceMeasureDataOscilloscope::getDataType));
+ //扫描时间系数及扩展
+ List expansionList = groupMap.get(SCAN_TIME_COEFFICIENT_AND_EXPANSION)
+ .stream()
+ .map(e -> {
+ e.setImpedance(StringUtils.isNotBlank(e.getImpedance()) ? e.getImpedance() + e.getImpedanceUnit() : "");
+ e.setHorizontalScaleGear(StringUtils.isNotBlank(e.getHorizontalScaleGear()) ? e.getHorizontalScaleGear() + e.getHorizontalScaleGearUnit() : "");
+ e.setRelativeError(StringUtils.isNotBlank(e.getRelativeError()) ? e.getRelativeError() + "%" : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("expansionList", expansionList);
+ //垂直幅度测量
+ List verticalList = groupMap.get(VERTICAL_AMPLITUDE_MEASUREMENT)
+ .stream()
+ .map(e -> {
+ e.setImpedance(StringUtils.isNotBlank(e.getImpedance()) ? e.getImpedance() + e.getImpedanceUnit() : "");
+ e.setVerticalScaleGear(StringUtils.isNotBlank(e.getVerticalScaleGear()) ? e.getVerticalScaleGear() + e.getVerticalScaleGearUnit() : "");
+ e.setRelativeError(StringUtils.isNotBlank(e.getRelativeError()) ? e.getRelativeError() + "%" : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("verticalList", verticalList);
+ //频带宽度
+ List widthList = groupMap.get(FREQUENCY_BAND_WIDTH)
+ .stream()
+ .map(e -> {
+ e.setImpedance(StringUtils.isNotBlank(e.getImpedance()) ? e.getImpedance() + e.getImpedanceUnit() : "");
+ e.setVerticalScaleGear(StringUtils.isNotBlank(e.getVerticalScaleGear()) ? e.getVerticalScaleGear() + e.getVerticalScaleGearUnit() : "");
+ e.setBandWidth(StringUtils.isNotBlank(e.getBandWidth()) ? e.getBandWidth() + e.getBandWidthUnit() : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("widthList", widthList);
+ //触发特性
+ List triggerList = groupMap.get(TRIGGER_CHARACTERISTICS)
+ .stream()
+ .map(e -> {
+ e.setImpedance(StringUtils.isNotBlank(e.getImpedance()) ? e.getImpedance() + e.getImpedanceUnit() : "");
+ e.setSignalFrequency(StringUtils.isNotBlank(e.getSignalFrequency()) ? e.getSignalFrequency() + e.getSignalFrequencyUnit() : "");
+ e.setMeasureValue(StringUtils.isNotBlank(e.getMeasureValue()) ? e.getMeasureValue() + e.getMeasureValueUnit() : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("triggerList", triggerList);
+ //输入电阻
+ List resistanceList = groupMap.get(INPUT_RESISTANCE)
+ .stream()
+ .map(e -> {
+ e.setImpedance(StringUtils.isNotBlank(e.getImpedance()) ? e.getImpedance() + e.getImpedanceUnit() : "");
+ e.setMeasureValue(StringUtils.isNotBlank(e.getMeasureValue()) ? e.getMeasureValue() + e.getMeasureValueUnit() : "");
+ e.setRelativeError(StringUtils.isNotBlank(e.getRelativeError()) ? e.getRelativeError() + "%" : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("resistanceList", resistanceList);
+ //上升时间
+ List riseList = groupMap.get(RISE_TIME)
+ .stream()
+ .map(e -> {
+ e.setImpedance(StringUtils.isNotBlank(e.getImpedance()) ? e.getImpedance() + e.getImpedanceUnit() : "");
+ e.setVerticalScaleGear(StringUtils.isNotBlank(e.getVerticalScaleGear()) ? e.getVerticalScaleGear() + e.getVerticalScaleGearUnit() : "");
+ e.setCorrectRiseTime(StringUtils.isNotBlank(e.getCorrectRiseTime()) ? e.getCorrectRiseTime() + "ns" : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("riseList", riseList);
+ //校准信号
+ List signalList = groupMap.get(OSCILLOSCOPE_CALIBRATION_SIGNAL)
+ .stream()
+ .map(e -> {
+ e.setNominalAmplitudeValue(StringUtils.isNotBlank(e.getNominalAmplitudeValue()) ? e.getNominalAmplitudeValue() + e.getNominalAmplitudeValueUnit() : "");
+ e.setMeasureAmplitudeValue(StringUtils.isNotBlank(e.getMeasureAmplitudeValue()) ? e.getMeasureAmplitudeValue() + e.getMeasureValueUnit() : "");
+ e.setAmplitudeDeviation(StringUtils.isNotBlank(e.getAmplitudeDeviation()) ? e.getAmplitudeDeviation() + "%" : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ e.setMeasureFrequencyValue(StringUtils.isNotBlank(e.getMeasureFrequencyValue()) ? e.getMeasureFrequencyValue() + e.getMeasureFrequencyValueUnit() : "");
+ e.setFrequencyDeviation(StringUtils.isNotBlank(e.getFrequencyDeviation()) ? e.getFrequencyDeviation() + "%" : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("signalList", signalList);
+ }
+
+ /**
+ * @param request
+ * @return
+ */
+ @Override
+ public List doCreateCertificateFile(BizBusinessDeviceMeasureApproval request) {
+ try {
+ //过滤不能生成证书的
+ if (checkOutUnablePrint(request)) {
+ log.debug("该报告没有证书报告");
+ return null;
+ }
+ if (CollectionUtils.isEmpty(request.getMeasureDataSpectrumAnalyzerList())) {
+ List list = new ArrayList<>();
+ list.add(new BizBusinessDeviceMeasureDataSpectrumAnalyzer());
+ request.setMeasureDataSpectrumAnalyzerList(list);
+ }
+
+ DictCodeUtils.convertDictCodeToName(request);
+ Map map = BeanUtil.beanToMap(request);
+
+ switch (request.getItemCategoryName()) {
+ case DIGITAL_OSCILLOSCOPE:
+ readyForDigitalCertificateFillParams(map, request.getMeasureDataOscilloscopeList());
+ break;
+ case ANALOG_OSCILLOSCOPE:
+ readyForImitateCertificateFillParams(map, request.getMeasureDataOscilloscopeList());
+ break;
+ default:
+ throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_ITEM_CATEGORY_NAME_NOT_EXIST);
+ }
+
+ replaceSlash(map);
+ List customTemplateUrls = new ArrayList<>();
+ log.debug("--------get Certificate template is ....");
+ //查询对应封面模板和检定证书模板
+ customTemplateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(MEASURE_DATA, "2", request.getMeasureCategoryName()));
+ customTemplateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(OSCILLOSCOPE, "2", request.getItemCategoryName()));
+ SnowflakeUtil snowflakeUtil = new SnowflakeUtil();
+ map.put("id", snowflakeUtil.nextId());
+ map.put("pdfStatus", 1);
+ List urlList = new ArrayList<>();
+ //除了选用的模板不一致,模板配置流程是一致的
+ log.debug("certificate before------------");
+ String wordUrl = printFileRegister.registerPrintFile(OSCILLOSCOPE, "证书打印", null, map, false, null, customTemplateUrls);
+ urlList.add(wordUrl);
+ if (map.containsKey("pdfUrl")) {
+ urlList.add((String) map.get("pdfUrl"));
+ }
+ log.debug("certificate after------------{}", wordUrl);
+ return urlList;
+ } catch (Exception ex) {
+ log.debug("doCreateCertificateFile Exception is------------{}", ex);
+ throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED);
+ }
+ }
+
+ /**
+ * 模拟示波器检定证书
+ *
+ * @param map
+ * @param oscilloscopeList
+ */
+ private void readyForImitateCertificateFillParams(Map map, List oscilloscopeList) {
+ if (CollectionUtils.isEmpty(oscilloscopeList)) {
+ throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_MEASURE_DATA_NOT_EXIST);
+ }
+ //根据dataType分组,key为dataType,value为List
+ Map> groupMap = oscilloscopeList.stream()
+ .filter(Objects::nonNull) // 确保元素不为null
+ .collect(Collectors.groupingBy(BizBusinessDeviceMeasureDataOscilloscope::getDataType));
+ //扫描时间系数及扩展
+ List expansionList = groupMap.get(SCAN_TIME_COEFFICIENT_AND_EXPANSION);
+ map.put("expansionList", expansionList);
+ //垂直幅度测量
+ List verticalList = groupMap.get(VERTICAL_AMPLITUDE_MEASUREMENT);
+ map.put("verticalList", verticalList);
+ //频带宽度
+ List widthList = groupMap.get(FREQUENCY_BAND_WIDTH);
+ map.put("widthList", widthList);
+ //触发特性
+ List triggerList = groupMap.get(TRIGGER_CHARACTERISTICS);
+ map.put("triggerList", triggerList);
+ //输入电阻
+ List resistanceList = groupMap.get(INPUT_RESISTANCE);
+ map.put("resistanceList", resistanceList);
+ //上升时间
+ List riseList = groupMap.get(RISE_TIME);
+ map.put("riseList", riseList);
+ //校准信号
+ List signalList = groupMap.get(OSCILLOSCOPE_CALIBRATION_SIGNAL);
+ map.put("signalList", signalList);
+ }
+
+ /**
+ * 数字示波器检定证书
+ *
+ * @param map
+ * @param oscilloscopeList
+ */
+ private void readyForDigitalCertificateFillParams(Map map, List oscilloscopeList) {
+ if (CollectionUtils.isEmpty(oscilloscopeList)) {
+ throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_MEASURE_DATA_NOT_EXIST);
+ }
+ //根据dataType分组,key为dataType,value为List
+ Map> groupMap = oscilloscopeList.stream()
+ .filter(Objects::nonNull) // 确保元素不为null
+ .collect(Collectors.groupingBy(BizBusinessDeviceMeasureDataOscilloscope::getDataType));
+
+ List baseList = groupMap.get(TIME_BASE);
+ map.put("baseList", baseList);
+
+ List gainList = groupMap.get(DC_GAIN);
+ map.put("gainList", gainList);
+
+ List offetList = groupMap.get(DC_OFFSET);
+ map.put("offsetList", offetList);
+
+ List bandwidthList = groupMap.get(OSCILLOSCOPE_FREQUENCY_BAND_WIDTH);
+ map.put("bandwidthList", bandwidthList);
+
+ List sensitivityList = groupMap.get(TRIGGER_SENSITIVITY);
+ map.put("sensitivityList", sensitivityList);
+
+ List riseTimeList = groupMap.get(RISE_TIME);
+ map.put("timeList", riseTimeList);
+
+ List inputList = groupMap.get(OSCILLOSCOPE_INPUT_RESISTANCE);
+ map.put("inputList", inputList);
+
+ List signalList = groupMap.get(SIGNAL);
+ map.put("signalList", signalList);
+ }
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
index 16cb1da..fdf5c0d 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataSpectrumAnalyzer.java
@@ -7,6 +7,9 @@
import lombok.Data;
import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/**
*
@@ -427,4 +430,109 @@
@ApiModelProperty(value = "类型(校准信号要传该参数)", dataType = "String")
@TableField(exist = false)
private String typeValue;
+
+
+ public interface AnalyzerStrategy {
+ void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer);
+ }
+
+ public enum Strategy implements AnalyzerStrategy {
+ /**
+ * 均值
+ */
+ AVERAGE_VALUE {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setAverageValue(analyzer.getExceedMark() == 1 ? analyzer.getAverageValue() + "*" : analyzer.getAverageValue());
+ }
+ },
+ /**
+ * 转换偏差
+ */
+ CONVERT_DEVIATION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setConvertDeviation(analyzer.getExceedMark() == 1 ? analyzer.getConvertDeviation() + "*" : analyzer.getConvertDeviation());
+ }
+ },
+ /**
+ * 测量值
+ */
+ ONE_VALUE {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setOneValue(analyzer.getExceedMark() == 1 ? analyzer.getOneValue() + "*" : analyzer.getOneValue());
+ }
+ },
+ /**
+ * 输入频响
+ */
+ INPUT_FREQUENCY {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setInputFrequency(analyzer.getExceedMark() == 1 ? analyzer.getInputFrequency() + "*" : analyzer.getInputFrequency());
+ }
+ },
+ /**
+ * 修正后结果
+ */
+ REVISED_RESULT {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setRevisedResult(analyzer.getExceedMark() == 1 ? analyzer.getRevisedResult() + "*" : analyzer.getRevisedResult());
+ ;
+ }
+ },
+ /**
+ * 谐波失真
+ */
+ HARMONIC_DISTORTION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setThreeValue(analyzer.getExceedMark() == 1 ? analyzer.getThreeValue() + "*" : analyzer.getThreeValue());
+ analyzer.setFiveValue(analyzer.getExceedMarkOne() == 1 ? analyzer.getFiveValue() + "*" : analyzer.getFiveValue());
+ analyzer.setSevenValue(analyzer.getExceedMarkTwo() == 1 ? analyzer.getSevenValue() + "*" : analyzer.getSevenValue());
+ }
+ },
+ /**
+ * 输入衰减器转换影响
+ */
+ INPUT_ATTENUATOR_CONVERSION_EFFECT {
+ /**
+ * @param analyzer
+ */
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setInputAttenuatorConversionEffect(analyzer.getExceedMark() == 1 ? analyzer.getInputAttenuatorConversionEffect() + "*" : analyzer.getInputAttenuatorConversionEffect());
+ }
+ },
+ /**
+ * 增益压缩
+ */
+ GAIN_COMPRESSION {
+ @Override
+ public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataSpectrumAnalyzer analyzer) {
+ analyzer.setGainCompression(analyzer.getExceedMark() == 1 ? analyzer.getGainCompression() + "*" : analyzer.getGainCompression());
+ }
+ },
+ }
+
+ public void applyStrategyBasedOnDataType() {
+ Map map = new HashMap<>();
+ map.put("1", Strategy.AVERAGE_VALUE);
+ map.put("2", Strategy.AVERAGE_VALUE);
+ map.put("3", Strategy.AVERAGE_VALUE);
+ map.put("4", Strategy.CONVERT_DEVIATION);
+ map.put("5", Strategy.ONE_VALUE);
+ map.put("6", Strategy.ONE_VALUE);
+ map.put("7", Strategy.INPUT_FREQUENCY);
+ map.put("8", Strategy.REVISED_RESULT);
+ map.put("9", Strategy.HARMONIC_DISTORTION);
+ map.put("10", Strategy.INPUT_ATTENUATOR_CONVERSION_EFFECT);
+ map.put("11", Strategy.GAIN_COMPRESSION);
+ map.put("12", Strategy.ONE_VALUE);
+
+ Strategy strategy = map.get(dataType);
+ strategy.appendAsterisksIfNeeded(this);
+ }
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
index 261e2b4..ae05a19 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataOscilloscope.java
@@ -418,6 +418,10 @@
@TableField("conclusion")
private Integer conclusion;
+ @ApiModelProperty(value = "结论",dataType = "String")
+ @TableField(exist = false)
+ private String conclusionStr;
+
/**
* 技术指标前符号
*/
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java
index 7015ed5..4319e56 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckDataSpectrumAnalyzer.java
@@ -198,10 +198,13 @@
/**
* 结论,是否小于Urel(0/1)
*/
- @ApiModelProperty(value = "结论,是否小于Urel(0/1)", dataType = "String")
+ @ApiModelProperty(value = "结论,是否小于Urel(0/1)", dataType = "Integer")
@TableField("less_than")
private Integer lessThan;
+ @ApiModelProperty(value = "结论,是否小于Urel", dataType = "String")
+ @TableField(exist = false)
+ private String conclusion;
/**
* 稳定性
*/
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java
index 827c10e..3b0a7b5 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java
@@ -190,7 +190,6 @@
@TableField(exist = false)
private String checkAccord;
-
@ApiModelProperty(value = "检测地址(打印)", dataType = "String")
@TableField(exist = false)
private String checkAddress;
@@ -239,6 +238,14 @@
@TableField(exist = false)
private List checkDataETwoList;
+ @ApiModelProperty(value = "核查数据-频谱分析仪",dataType = "List")
+ @TableField(exist = false)
+ private List checkDataSpectrumAnalyzerList;
+
+ @ApiModelProperty(value = "核查数据-示波器",dataType = "List")
+ @TableField(exist = false)
+ private List checkDataOscilloscopeList;
+
@ApiModelProperty(value = "温度值结论",dataType = "String")
@TableField(exist = false)
private String temperatureConclusion;
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java
new file mode 100644
index 0000000..f8e4f04
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java
@@ -0,0 +1,513 @@
+package com.casic.missiles.service.Impl.eqpt.standard.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.PrintFileModuleNameEnum;
+import com.casic.missiles.enums.business.MeasureItemBelongStandardEquipmentDictEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureApprovalMapper;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureApproval;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataOscilloscope;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataSpectrumAnalyzer;
+import com.casic.missiles.model.equipment.BizEquipmentInfo;
+import com.casic.missiles.model.equipment.BizEquipmentStandardCheckDataOscilloscope;
+import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval;
+import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentPrint;
+import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentSupport;
+import com.casic.missiles.service.listeners.register.PrintFileRegister;
+import com.casic.missiles.utils.DictCodeUtils;
+import com.casic.missiles.utils.SnowflakeUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @Author: TuT
+ * @CreateTime: 2024-03-13 09:35
+ * @Description: OscilloScopeHandler 示波器handler
+ */
+@Component(MeasureItemBelongStandardEquipmentDictEnum.OSCILLOSCOPE)
+@RequiredArgsConstructor
+@Slf4j
+public class OscilloScopeHandler extends StandardEquipmentSupport implements PrintFileModuleNameEnum, StandardEquipmentPrint {
+
+ private final PrintFileRegister printFileRegister;
+
+ private final BizBusinessDeviceMeasureApprovalMapper bizBusinessDeviceMeasureApprovalMapper;
+
+ /**
+ * @param request
+ * @return
+ */
+ @Override
+ public List doCheckCertificateFile(BizEquipmentStandardCheckRecordApproval request) {
+ try {
+ //健壮性判断
+ if (ObjectUtil.isEmpty(request)) {
+ return null;
+ }
+ DictCodeUtils.convertDictCodeToName(request.getEquipmentInfo());
+ for (BizEquipmentInfo bizEquipmentInfo : request.getCheckEquipmentList()) {
+ DictCodeUtils.convertDictCodeToName(bizEquipmentInfo);
+ }
+ //核查依据文件为空,则设置为无
+ if (StringUtils.isBlank(request.getCheckAccord())) {
+ request.setCheckAccord("无");
+ }
+ Map map = BeanUtil.beanToMap(request);
+
+
+ readyForCheckParams(map, request.getCheckDataOscilloscopeList());
+ replaceSlash(map);
+ map.put("pdfStatus", 1);
+ //除了选用的模板不一致,模板配置流程是一致的
+ String wordUrl = printFileRegister.registerPrintFile(SPECTRUM_ANALYZER, "数据打印", null, map, false, null, null);
+ List urlList = new ArrayList<>();
+ if (StringUtils.isNotEmpty(wordUrl)) {
+ urlList.add(wordUrl);
+ }
+ if (map.containsKey("pdfUrl")) {
+ urlList.add((String) map.get("pdfUrl"));
+ }
+ return urlList;
+ } catch (Exception ex) {
+ log.info("-----package data is exception, this is {}", ex);
+ throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED);
+ }
+ }
+
+ private void readyForCheckParams(Map map, List oscilloscopeList) {
+ String[] checkType = {HOUR_MARKERS, SQUARE_WAVE_VOLTAGE_50,
+ SQUARE_WAVE_VOLTAGE_1M, DC_VOLTAGE_50,
+ DC_VOLTAGE_1M, INPUT_IMPEDANCE,
+ SINE_SIGNAL_FLATNESS, RISE_TIME_CHECK};
+ String[] checkPoints = {REPEATABILITY, STABILITY};
+ for (int i = 0; i < checkType.length; i++) {
+ String type = checkType[i];
+ int num = i;
+ List repList = oscilloscopeList.stream()
+ .filter(o -> type.equals(o.getCheckType()) && checkPoints[0].equals(o.getParams()))
+ .map(o -> {
+ o.setCheckPoint(StringUtils.isNotBlank(o.getCheckPoint()) ? o.getCheckPoint() + o.getUnit() : "");
+ o.setTypeValue(StringUtils.isNotBlank(o.getTypeValue()) ? o.getTypeValue() + "Vp-p" : "");
+ if (7 == num) {
+ o.setTestValueOne(StringUtils.isNotBlank(o.getTestValueOne()) ? o.getTestValueOne() + o.getUnit() : o.getTestValueOne());
+ }
+ return o;
+ })
+ .collect(Collectors.toList());
+ map.put(REPEAT_PREFIX + i + 1, repList);
+
+ List staList = oscilloscopeList.stream()
+ .filter(o -> type.equals(o.getCheckType()) && checkPoints[1].equals(o.getParams()))
+ .map(o -> {
+ o.setCheckPoint(StringUtils.isNotBlank(o.getCheckPoint()) ? o.getCheckPoint() + o.getUnit() : "");
+ o.setTypeValue(StringUtils.isNotBlank(o.getTypeValue()) ? o.getTypeValue() + "Vp-p" : "");
+ o.setConclusionStr(1 == o.getConclusion() ? "合格" : "不合格");
+ o.setTechnicalIndex(StringUtils.isNotBlank(o.getTechnicalIndex())?o.getTechnicalIndexSymbol()+o.getTechnicalIndex()+o.getTechnicalIndexUnit():"");
+ if (7 == num) {
+ o.setTestValueOne(StringUtils.isNotBlank(o.getTestValueOne()) ? o.getTestValueOne() + o.getUnit() : o.getTestValueOne());
+ }
+ return o;
+ })
+ .collect(Collectors.toList());
+ map.put(STA_PREFIX + i, staList);
+ List dateList = staList.stream()
+ .flatMap(o -> Stream.of(o.getTestValueOneDate(), o.getTestValueTwoDate(),
+ o.getTestValueThreeDate(), o.getTestValueFourDate(),
+ o.getTestValueFiveDate(), o.getTestValueSixDate()))
+ .collect(Collectors.toList());
+ for (int j = 0; j < dateList.size(); j++) {
+ map.put(STA_PREFIX + i + DATE_PREFIX + j, dateList.get(j));
+ }
+ }
+ }
+
+ /**
+ * @param request
+ * @return
+ */
+ @Override
+ public List doCreateOriginalFile(BizBusinessDeviceMeasureApproval request) {
+ try {
+ if (examineOriginalFile(request)) {
+ log.debug("校验没有原始记录");
+ return null;
+ }
+ if (CollectionUtils.isEmpty(request.getMeasureDataSpectrumAnalyzerList())) {
+ List list = new ArrayList<>();
+ list.add(new BizBusinessDeviceMeasureDataSpectrumAnalyzer());
+ request.setMeasureDataSpectrumAnalyzerList(list);
+ }
+
+ DictCodeUtils.convertDictCodeToName(request);
+ Map map = BeanUtil.beanToMap(request);
+
+ switch (request.getItemCategoryName()) {
+ case DIGITAL_OSCILLOSCOPE:
+ readyForDigitalOriginalFillParams(map, request.getMeasureDataOscilloscopeList());
+ break;
+ case ANALOG_OSCILLOSCOPE:
+ readyForImitateOriginalFillParams(map, request.getMeasureDataOscilloscopeList());
+ break;
+ default:
+ throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_ITEM_CATEGORY_NAME_NOT_EXIST);
+ }
+
+ //替换/方法
+ replaceSlash(map);
+ List templateUrls = new ArrayList<>();
+ templateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(OSCILLOSCOPE, "1", request.getItemCategoryName()));
+ //与证书模板区分
+ SnowflakeUtil snowflakeUtil = new SnowflakeUtil();
+ map.put("id", snowflakeUtil.nextId());
+ map.put("pdfStatus", 1);
+ log.debug("original before ----");
+ //除了选用的模板不一致,模板配置流程是一致的
+ String originalWordUrlFile = printFileRegister.registerPrintFile(OSCILLOSCOPE, "原始记录打印", null, map, false, null, templateUrls);
+ log.debug("originalUrlFile after------------{}", originalWordUrlFile);
+ List urlList = new ArrayList<>();
+ urlList.add(originalWordUrlFile);
+ if (map.containsKey("pdfUrl")) {
+ urlList.add((String) map.get("pdfUrl"));
+ }
+ return urlList;
+ } catch (Exception ex) {
+ log.info("-----package data is exception, this is {}", ex);
+ throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED);
+ }
+ }
+
+ /**
+ * 数字示波器原始记录
+ *
+ * @param map
+ * @param oscilloscopeList
+ */
+ private void readyForDigitalOriginalFillParams(Map map, List oscilloscopeList) {
+ if (CollectionUtils.isEmpty(oscilloscopeList)) {
+ throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_MEASURE_DATA_NOT_EXIST);
+ }
+ //根据dataType分组,key为dataType,value为List
+ Map> groupMap = oscilloscopeList.stream()
+ .filter(Objects::nonNull) // 确保元素不为null
+ .collect(Collectors.groupingBy(BizBusinessDeviceMeasureDataOscilloscope::getDataType));
+
+ List baseList = groupMap.get(TIME_BASE).stream()
+ .map(s -> {
+ s.setCycleSignal(StringUtils.isNotBlank(s.getCycleSignal()) ? s.getCycleSignal() + s.getCycleSignalUnit() : "");
+ s.setTimeBaseRelativeError(StringUtils.isNotBlank(s.getTimeBaseRelativeError()) ? s.getTimeBaseRelativeError() + s.getTimeBaseRelativeErrorUnit() : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("baseList", baseList);
+ List gainList = groupMap.get(DC_GAIN).stream()
+ .map(s -> {
+ s.setImpedance(StringUtils.isNotBlank(s.getImpedance()) ? s.getImpedance() + s.getImpedanceUnit() : "");
+ s.setVerticalScaleGear(StringUtils.isNotBlank(s.getVerticalScaleGear()) ? s.getVerticalScaleGear() + s.getVerticalScaleGearUnit() : "");
+ s.setStandardValue(StringUtils.isNotBlank(s.getStandardValue()) ? s.getStandardValue() + s.getStandardValueUnit() : "");
+ s.setMeasureValue(StringUtils.isNotBlank(s.getMeasureValue()) ? s.getMeasureValue() + s.getMeasureValueUnit() : "");
+ s.setRelativeError(StringUtils.isNotBlank(s.getRelativeError()) ? s.getRelativeError() + "%" : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("gainList", gainList);
+ List offetList = groupMap.get(DC_OFFSET).stream()
+ .map(s -> {
+ s.setImpedance(StringUtils.isNotBlank(s.getImpedance()) ? s.getImpedance() + s.getImpedanceUnit() : "");
+ s.setVerticalScaleGear(StringUtils.isNotBlank(s.getVerticalScaleGear()) ? s.getVerticalScaleGear() + s.getVerticalScaleGearUnit() : "");
+ s.setNominalValue(StringUtils.isNotBlank(s.getNominalValue()) ? s.getNominalValue() + s.getNominalValueUnit() : "");
+ s.setMeasureValue(StringUtils.isNotBlank(s.getMeasureValue()) ? s.getMeasureValue() + s.getMeasureValueUnit() : "");
+ s.setRelativeError(StringUtils.isNotBlank(s.getRelativeError()) ? s.getRelativeError() + "%" : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("offsetList", offetList);
+ List bandwidthList = groupMap.get(OSCILLOSCOPE_FREQUENCY_BAND_WIDTH).stream()
+ .map(s -> {
+ s.setImpedance(StringUtils.isNotBlank(s.getImpedance()) ? s.getImpedance() + s.getImpedanceUnit() : "");
+ s.setVerticalScaleGear(StringUtils.isNotBlank(s.getVerticalScaleGear()) ? s.getVerticalScaleGear() + s.getVerticalScaleGearUnit() : "");
+ s.setReferenceAmplitude(StringUtils.isNotBlank(s.getReferenceAmplitude()) ? s.getReferenceAmplitude() + s.getReferenceAmplitudeUnit() : "");
+ s.setMeasureAmplitude(StringUtils.isNotBlank(s.getMeasureAmplitude()) ? s.getMeasureAmplitude() + s.getMeasureAmplitudeUnit() : "");
+ s.setDecibelNumber(StringUtils.isNotBlank(s.getDecibelNumber()) ? s.getDecibelNumber() + "dB" : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("bandwidthList", bandwidthList);
+ List sensitivityList = groupMap.get(TRIGGER_SENSITIVITY).stream()
+ .map(s -> {
+ s.setSignalFrequency(StringUtils.isNotBlank(s.getSignalFrequency()) ? s.getSignalFrequency() + s.getSignalFrequencyUnit() : "");
+ s.setMeasureValue(StringUtils.isNotBlank(s.getMeasureValue()) ? s.getMeasureValue() + s.getMeasureValueUnit() : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("sensitivityList", sensitivityList);
+ List riseTimeList = groupMap.get(RISE_TIME).stream()
+ .map(s -> {
+ s.setImpedance(StringUtils.isNotBlank(s.getImpedance()) ? s.getImpedance() + s.getImpedanceUnit() : "");
+ s.setVerticalScaleGear(StringUtils.isNotBlank(s.getVerticalScaleGear()) ? s.getVerticalScaleGear() + s.getVerticalScaleGearUnit() : "");
+ s.setCorrectRiseTime(StringUtils.isNotBlank(s.getCorrectRiseTime()) ? s.getCorrectRiseTime() + "ns" : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("timeList", riseTimeList);
+ List inputList = groupMap.get(OSCILLOSCOPE_INPUT_RESISTANCE).stream()
+ .map(s -> {
+ s.setImpedance(StringUtils.isNotBlank(s.getImpedance()) ? s.getImpedance() + s.getImpedanceUnit() : "");
+ s.setVerticalScaleGear(StringUtils.isNotBlank(s.getVerticalScaleGear()) ? s.getVerticalScaleGear() + s.getVerticalScaleGearUnit() : "");
+ s.setMeasureValue(StringUtils.isNotBlank(s.getMeasureValue()) ? s.getMeasureValue() + s.getMeasureValueUnit() : "");
+ s.setRelativeError(StringUtils.isNotBlank(s.getRelativeError()) ? s.getRelativeError() + "%" : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("inputList", inputList);
+ List signalList = groupMap.get(SIGNAL).stream()
+ .map(s -> {
+ s.setNominalValue(StringUtils.isNotBlank(s.getNominalValue()) ? s.getNominalValue() + s.getNominalValueUnit() : "");
+ s.setTopMeasureValue(StringUtils.isNotBlank(s.getTopMeasureValue()) ? s.getTopMeasureValue() + s.getTopMeasureValueUnit() : "");
+ s.setBottomMeasureValue(StringUtils.isNotBlank(s.getBottomMeasureValue()) ? s.getBottomMeasureValue() + s.getBottomMeasureValueUnit() : "");
+ s.setMeasureValue(StringUtils.isNotBlank(s.getMeasureValue()) ? s.getMeasureValue() + s.getMeasureValueUnit() : "");
+ s.setRelativeError(StringUtils.isNotBlank(s.getRelativeError()) ? s.getRelativeError() + "%" : "");
+ s.setTechnicalIndex(StringUtils.isNotBlank(s.getTechnicalIndex()) ? s.getTechnicalIndexSymbol() + s.getTechnicalIndex() + s.getTechnicalIndexUnit() : "");
+ return s;
+ }).collect(Collectors.toList());
+ map.put("signalList", signalList);
+ }
+
+
+ /**
+ * 模拟示波器原始记录
+ *
+ * @param map
+ * @param oscilloscopeList
+ */
+ private void readyForImitateOriginalFillParams(Map map, List oscilloscopeList) {
+ if (CollectionUtils.isEmpty(oscilloscopeList)) {
+ throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_MEASURE_DATA_NOT_EXIST);
+ }
+ //根据dataType分组,key为dataType,value为List
+ Map> groupMap = oscilloscopeList.stream()
+ .filter(Objects::nonNull) // 确保元素不为null
+ .collect(Collectors.groupingBy(BizBusinessDeviceMeasureDataOscilloscope::getDataType));
+ //扫描时间系数及扩展
+ List expansionList = groupMap.get(SCAN_TIME_COEFFICIENT_AND_EXPANSION)
+ .stream()
+ .map(e -> {
+ e.setImpedance(StringUtils.isNotBlank(e.getImpedance()) ? e.getImpedance() + e.getImpedanceUnit() : "");
+ e.setHorizontalScaleGear(StringUtils.isNotBlank(e.getHorizontalScaleGear()) ? e.getHorizontalScaleGear() + e.getHorizontalScaleGearUnit() : "");
+ e.setRelativeError(StringUtils.isNotBlank(e.getRelativeError()) ? e.getRelativeError() + "%" : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("expansionList", expansionList);
+ //垂直幅度测量
+ List verticalList = groupMap.get(VERTICAL_AMPLITUDE_MEASUREMENT)
+ .stream()
+ .map(e -> {
+ e.setImpedance(StringUtils.isNotBlank(e.getImpedance()) ? e.getImpedance() + e.getImpedanceUnit() : "");
+ e.setVerticalScaleGear(StringUtils.isNotBlank(e.getVerticalScaleGear()) ? e.getVerticalScaleGear() + e.getVerticalScaleGearUnit() : "");
+ e.setRelativeError(StringUtils.isNotBlank(e.getRelativeError()) ? e.getRelativeError() + "%" : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("verticalList", verticalList);
+ //频带宽度
+ List widthList = groupMap.get(FREQUENCY_BAND_WIDTH)
+ .stream()
+ .map(e -> {
+ e.setImpedance(StringUtils.isNotBlank(e.getImpedance()) ? e.getImpedance() + e.getImpedanceUnit() : "");
+ e.setVerticalScaleGear(StringUtils.isNotBlank(e.getVerticalScaleGear()) ? e.getVerticalScaleGear() + e.getVerticalScaleGearUnit() : "");
+ e.setBandWidth(StringUtils.isNotBlank(e.getBandWidth()) ? e.getBandWidth() + e.getBandWidthUnit() : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("widthList", widthList);
+ //触发特性
+ List triggerList = groupMap.get(TRIGGER_CHARACTERISTICS)
+ .stream()
+ .map(e -> {
+ e.setImpedance(StringUtils.isNotBlank(e.getImpedance()) ? e.getImpedance() + e.getImpedanceUnit() : "");
+ e.setSignalFrequency(StringUtils.isNotBlank(e.getSignalFrequency()) ? e.getSignalFrequency() + e.getSignalFrequencyUnit() : "");
+ e.setMeasureValue(StringUtils.isNotBlank(e.getMeasureValue()) ? e.getMeasureValue() + e.getMeasureValueUnit() : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("triggerList", triggerList);
+ //输入电阻
+ List resistanceList = groupMap.get(INPUT_RESISTANCE)
+ .stream()
+ .map(e -> {
+ e.setImpedance(StringUtils.isNotBlank(e.getImpedance()) ? e.getImpedance() + e.getImpedanceUnit() : "");
+ e.setMeasureValue(StringUtils.isNotBlank(e.getMeasureValue()) ? e.getMeasureValue() + e.getMeasureValueUnit() : "");
+ e.setRelativeError(StringUtils.isNotBlank(e.getRelativeError()) ? e.getRelativeError() + "%" : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("resistanceList", resistanceList);
+ //上升时间
+ List riseList = groupMap.get(RISE_TIME)
+ .stream()
+ .map(e -> {
+ e.setImpedance(StringUtils.isNotBlank(e.getImpedance()) ? e.getImpedance() + e.getImpedanceUnit() : "");
+ e.setVerticalScaleGear(StringUtils.isNotBlank(e.getVerticalScaleGear()) ? e.getVerticalScaleGear() + e.getVerticalScaleGearUnit() : "");
+ e.setCorrectRiseTime(StringUtils.isNotBlank(e.getCorrectRiseTime()) ? e.getCorrectRiseTime() + "ns" : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("riseList", riseList);
+ //校准信号
+ List signalList = groupMap.get(OSCILLOSCOPE_CALIBRATION_SIGNAL)
+ .stream()
+ .map(e -> {
+ e.setNominalAmplitudeValue(StringUtils.isNotBlank(e.getNominalAmplitudeValue()) ? e.getNominalAmplitudeValue() + e.getNominalAmplitudeValueUnit() : "");
+ e.setMeasureAmplitudeValue(StringUtils.isNotBlank(e.getMeasureAmplitudeValue()) ? e.getMeasureAmplitudeValue() + e.getMeasureValueUnit() : "");
+ e.setAmplitudeDeviation(StringUtils.isNotBlank(e.getAmplitudeDeviation()) ? e.getAmplitudeDeviation() + "%" : "");
+ e.setTechnicalIndex(StringUtils.isNotBlank(e.getTechnicalIndex()) ? e.getTechnicalIndexSymbol() + e.getTechnicalIndex() + e.getTechnicalIndexUnit() : "");
+ e.setMeasureFrequencyValue(StringUtils.isNotBlank(e.getMeasureFrequencyValue()) ? e.getMeasureFrequencyValue() + e.getMeasureFrequencyValueUnit() : "");
+ e.setFrequencyDeviation(StringUtils.isNotBlank(e.getFrequencyDeviation()) ? e.getFrequencyDeviation() + "%" : "");
+ return e;
+ }).collect(Collectors.toList());
+ map.put("signalList", signalList);
+ }
+
+ /**
+ * @param request
+ * @return
+ */
+ @Override
+ public List doCreateCertificateFile(BizBusinessDeviceMeasureApproval request) {
+ try {
+ //过滤不能生成证书的
+ if (checkOutUnablePrint(request)) {
+ log.debug("该报告没有证书报告");
+ return null;
+ }
+ if (CollectionUtils.isEmpty(request.getMeasureDataSpectrumAnalyzerList())) {
+ List list = new ArrayList<>();
+ list.add(new BizBusinessDeviceMeasureDataSpectrumAnalyzer());
+ request.setMeasureDataSpectrumAnalyzerList(list);
+ }
+
+ DictCodeUtils.convertDictCodeToName(request);
+ Map map = BeanUtil.beanToMap(request);
+
+ switch (request.getItemCategoryName()) {
+ case DIGITAL_OSCILLOSCOPE:
+ readyForDigitalCertificateFillParams(map, request.getMeasureDataOscilloscopeList());
+ break;
+ case ANALOG_OSCILLOSCOPE:
+ readyForImitateCertificateFillParams(map, request.getMeasureDataOscilloscopeList());
+ break;
+ default:
+ throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_ITEM_CATEGORY_NAME_NOT_EXIST);
+ }
+
+ replaceSlash(map);
+ List customTemplateUrls = new ArrayList<>();
+ log.debug("--------get Certificate template is ....");
+ //查询对应封面模板和检定证书模板
+ customTemplateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(MEASURE_DATA, "2", request.getMeasureCategoryName()));
+ customTemplateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(OSCILLOSCOPE, "2", request.getItemCategoryName()));
+ SnowflakeUtil snowflakeUtil = new SnowflakeUtil();
+ map.put("id", snowflakeUtil.nextId());
+ map.put("pdfStatus", 1);
+ List urlList = new ArrayList<>();
+ //除了选用的模板不一致,模板配置流程是一致的
+ log.debug("certificate before------------");
+ String wordUrl = printFileRegister.registerPrintFile(OSCILLOSCOPE, "证书打印", null, map, false, null, customTemplateUrls);
+ urlList.add(wordUrl);
+ if (map.containsKey("pdfUrl")) {
+ urlList.add((String) map.get("pdfUrl"));
+ }
+ log.debug("certificate after------------{}", wordUrl);
+ return urlList;
+ } catch (Exception ex) {
+ log.debug("doCreateCertificateFile Exception is------------{}", ex);
+ throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED);
+ }
+ }
+
+ /**
+ * 模拟示波器检定证书
+ *
+ * @param map
+ * @param oscilloscopeList
+ */
+ private void readyForImitateCertificateFillParams(Map map, List oscilloscopeList) {
+ if (CollectionUtils.isEmpty(oscilloscopeList)) {
+ throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_MEASURE_DATA_NOT_EXIST);
+ }
+ //根据dataType分组,key为dataType,value为List
+ Map> groupMap = oscilloscopeList.stream()
+ .filter(Objects::nonNull) // 确保元素不为null
+ .collect(Collectors.groupingBy(BizBusinessDeviceMeasureDataOscilloscope::getDataType));
+ //扫描时间系数及扩展
+ List expansionList = groupMap.get(SCAN_TIME_COEFFICIENT_AND_EXPANSION);
+ map.put("expansionList", expansionList);
+ //垂直幅度测量
+ List verticalList = groupMap.get(VERTICAL_AMPLITUDE_MEASUREMENT);
+ map.put("verticalList", verticalList);
+ //频带宽度
+ List widthList = groupMap.get(FREQUENCY_BAND_WIDTH);
+ map.put("widthList", widthList);
+ //触发特性
+ List triggerList = groupMap.get(TRIGGER_CHARACTERISTICS);
+ map.put("triggerList", triggerList);
+ //输入电阻
+ List resistanceList = groupMap.get(INPUT_RESISTANCE);
+ map.put("resistanceList", resistanceList);
+ //上升时间
+ List riseList = groupMap.get(RISE_TIME);
+ map.put("riseList", riseList);
+ //校准信号
+ List signalList = groupMap.get(OSCILLOSCOPE_CALIBRATION_SIGNAL);
+ map.put("signalList", signalList);
+ }
+
+ /**
+ * 数字示波器检定证书
+ *
+ * @param map
+ * @param oscilloscopeList
+ */
+ private void readyForDigitalCertificateFillParams(Map map, List oscilloscopeList) {
+ if (CollectionUtils.isEmpty(oscilloscopeList)) {
+ throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_MEASURE_DATA_NOT_EXIST);
+ }
+ //根据dataType分组,key为dataType,value为List
+ Map> groupMap = oscilloscopeList.stream()
+ .filter(Objects::nonNull) // 确保元素不为null
+ .collect(Collectors.groupingBy(BizBusinessDeviceMeasureDataOscilloscope::getDataType));
+
+ List baseList = groupMap.get(TIME_BASE);
+ map.put("baseList", baseList);
+
+ List gainList = groupMap.get(DC_GAIN);
+ map.put("gainList", gainList);
+
+ List offetList = groupMap.get(DC_OFFSET);
+ map.put("offsetList", offetList);
+
+ List bandwidthList = groupMap.get(OSCILLOSCOPE_FREQUENCY_BAND_WIDTH);
+ map.put("bandwidthList", bandwidthList);
+
+ List sensitivityList = groupMap.get(TRIGGER_SENSITIVITY);
+ map.put("sensitivityList", sensitivityList);
+
+ List riseTimeList = groupMap.get(RISE_TIME);
+ map.put("timeList", riseTimeList);
+
+ List inputList = groupMap.get(OSCILLOSCOPE_INPUT_RESISTANCE);
+ map.put("inputList", inputList);
+
+ List signalList = groupMap.get(SIGNAL);
+ map.put("signalList", signalList);
+ }
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SpectrumAnalyzerHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SpectrumAnalyzerHandler.java
new file mode 100644
index 0000000..889a2f9
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SpectrumAnalyzerHandler.java
@@ -0,0 +1,588 @@
+package com.casic.missiles.service.Impl.eqpt.standard.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.casic.missiles.dto.business.deviceMeasure.MeasureEquipmentInfoDTO;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.PrintFileModuleNameEnum;
+import com.casic.missiles.enums.business.MeasureCategoryEnum;
+import com.casic.missiles.enums.business.MeasureItemBelongStandardEquipmentDictEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureApprovalMapper;
+import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureEquipmentMapper;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureApproval;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataDcPower;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataETwo;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataSpectrumAnalyzer;
+import com.casic.missiles.model.equipment.BizEquipmentInfo;
+import com.casic.missiles.model.equipment.BizEquipmentStandardCheckDataSpectrumAnalyzer;
+import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval;
+import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentPrint;
+import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentSupport;
+import com.casic.missiles.service.listeners.register.PrintFileRegister;
+import com.casic.missiles.utils.DictCodeUtils;
+import com.casic.missiles.utils.SnowflakeUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @Author: TuT
+ * @CreateTime: 2024-03-11 10:12
+ * @Description: SpectrumAnalyzerHandler 频谱分析仪handler
+ */
+@Component(MeasureItemBelongStandardEquipmentDictEnum.SPECTRUM_ANALYZER)
+@RequiredArgsConstructor
+@Slf4j
+public class SpectrumAnalyzerHandler extends StandardEquipmentSupport implements PrintFileModuleNameEnum, StandardEquipmentPrint {
+
+ private final PrintFileRegister printFileRegister;
+
+ private final BizBusinessDeviceMeasureApprovalMapper bizBusinessDeviceMeasureApprovalMapper;
+
+ @Override
+ public List doCheckCertificateFile(BizEquipmentStandardCheckRecordApproval request) {
+ try {
+ //健壮性判断
+ if (ObjectUtil.isEmpty(request)) {
+ return null;
+ }
+ DictCodeUtils.convertDictCodeToName(request.getEquipmentInfo());
+ for (BizEquipmentInfo bizEquipmentInfo : request.getCheckEquipmentList()) {
+ DictCodeUtils.convertDictCodeToName(bizEquipmentInfo);
+ }
+ //核查依据文件为空,则设置为无
+ if (StringUtils.isBlank(request.getCheckAccord())) {
+ request.setCheckAccord("无");
+ }
+ Map map = BeanUtil.beanToMap(request);
+
+ readyForCheckParams(map, request.getCheckDataSpectrumAnalyzerList());
+ replaceSlash(map);
+
+ map.put("pdfStatus", 1);
+ //除了选用的模板不一致,模板配置流程是一致的
+ String wordUrl = printFileRegister.registerPrintFile(SPECTRUM_ANALYZER, "数据打印", null, map, false, null, null);
+ List urlList = new ArrayList<>();
+ if (StringUtils.isNotEmpty(wordUrl)) {
+ urlList.add(wordUrl);
+ }
+ if (map.containsKey("pdfUrl")) {
+ urlList.add((String) map.get("pdfUrl"));
+ }
+ return urlList;
+ } catch (Exception ex) {
+ log.info("-----package data is exception, this is {}", ex);
+ throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED);
+ }
+ }
+
+ private void readyForCheckParams(Map map, List spectrumAnalyzerList) {
+ Map> groupMap = spectrumAnalyzerList
+ .stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams));
+
+ List frequencyList = groupMap.get(FREQUENCY);
+ List freRepList = frequencyList.stream()
+ .filter(f -> REPEATABILITY.equals(f.getCheckType()))
+ .map(f -> {
+ f.setCheckPoint(StringUtils.isNotBlank(f.getCheckPoint()) ? f.getCheckPoint() + f.getUnit() : "");
+ f.setTestValueOne(StringUtils.isNotBlank(f.getTestValueOne()) ? f.getTestValueOne() + f.getUnit() : "");
+ f.setTestValueTwo(StringUtils.isNotBlank(f.getTestValueTwo()) ? f.getTestValueTwo() + f.getUnit() : "");
+ f.setTestValueThree(StringUtils.isNotBlank(f.getTestValueThree()) ? f.getTestValueThree() + f.getUnit() : "");
+ f.setTestValueFour(StringUtils.isNotBlank(f.getTestValueFour()) ? f.getTestValueFour() + f.getUnit() : "");
+ f.setTestValueFive(StringUtils.isNotBlank(f.getTestValueFive()) ? f.getTestValueFive() + f.getUnit() : "");
+ f.setTestValueSix(StringUtils.isNotBlank(f.getTestValueSix()) ? f.getTestValueSix() + f.getUnit() : "");
+ f.setAverageValue(StringUtils.isNotBlank(f.getAverageValue()) ? f.getAverageValue() + f.getUnit() : "");
+ return f;
+ })
+ .collect(Collectors.toList());
+ List freStaList = frequencyList.stream()
+ .filter(f -> STABILITY.equals(f.getCheckType()))
+ .map(f -> {
+ f.setCheckPoint(StringUtils.isNotBlank(f.getCheckPoint()) ? f.getCheckPoint() + f.getUnit() : "");
+ f.setTestValueOne(StringUtils.isNotBlank(f.getTestValueOne()) ? f.getTestValueOne() + f.getUnit() : "");
+ f.setTestValueTwo(StringUtils.isNotBlank(f.getTestValueTwo()) ? f.getTestValueTwo() + f.getUnit() : "");
+ f.setTestValueThree(StringUtils.isNotBlank(f.getTestValueThree()) ? f.getTestValueThree() + f.getUnit() : "");
+ f.setTestValueFour(StringUtils.isNotBlank(f.getTestValueFour()) ? f.getTestValueFour() + f.getUnit() : "");
+ f.setTestValueFive(StringUtils.isNotBlank(f.getTestValueFive()) ? f.getTestValueFive() + f.getUnit() : "");
+ f.setTestValueSix(StringUtils.isNotBlank(f.getTestValueSix()) ? f.getTestValueSix() + f.getUnit() : "");
+ f.setAverageValue(StringUtils.isNotBlank(f.getAverageValue()) ? f.getAverageValue() + f.getUnit() : "");
+ if (ObjectUtils.isEmpty(f.getLessThan())) {
+ f.setConclusion("");
+ } else {
+ f.setConclusion(f.getLessThan() == 0 ? "否" : "是");
+ }
+ return f;
+ })
+ .collect(Collectors.toList());
+ List dateList = freStaList.stream()
+ .flatMap(f -> Stream.of(f.getTestValueOneDate(),
+ f.getTestValueTwoDate(),
+ f.getTestValueThreeDate(),
+ f.getTestValueFourDate(),
+ f.getTestValueFiveDate(),
+ f.getTestValueSixDate()))
+ .map(f -> {
+ if (StringUtils.isNotBlank(f)) {
+ DateUtil.format(DateUtil.parseDate(f), "yyyy/MM/dd");
+ }
+ return f;
+ })
+ .collect(Collectors.toList());
+
+ map.put("freRepList", freRepList);
+ map.put("freStaList", freStaList);
+ for (int i = 0; i < dateList.size(); i++) {
+ map.put("freStaDate" + (i + 1), dateList.get(i));
+ }
+
+ List powerList = groupMap.get(POWER);
+ List powerRepList = powerList.stream()
+ .filter(p -> REPEATABILITY.equals(p.getCheckType()))
+ .map(f -> {
+ f.setCheckPoint(StringUtils.isNotBlank(f.getCheckPoint()) ? f.getCheckPoint() + f.getUnit() : "");
+ f.setPower(StringUtils.isNotBlank(f.getPower()) ? f.getPower() + f.getPowerUnit() : "");
+ f.setTestValueOne(StringUtils.isNotBlank(f.getTestValueOne()) ? f.getTestValueOne() + f.getPowerUnit() : "");
+ f.setTestValueTwo(StringUtils.isNotBlank(f.getTestValueTwo()) ? f.getTestValueTwo() + f.getPowerUnit() : "");
+ f.setTestValueThree(StringUtils.isNotBlank(f.getTestValueThree()) ? f.getTestValueThree() + f.getPowerUnit() : "");
+ f.setTestValueFour(StringUtils.isNotBlank(f.getTestValueFour()) ? f.getTestValueFour() + f.getPowerUnit() : "");
+ f.setTestValueFive(StringUtils.isNotBlank(f.getTestValueFive()) ? f.getTestValueFive() + f.getPowerUnit() : "");
+ f.setTestValueSix(StringUtils.isNotBlank(f.getTestValueSix()) ? f.getTestValueSix() + f.getPowerUnit() : "");
+ f.setAverageValue(StringUtils.isNotBlank(f.getAverageValue()) ? f.getAverageValue() + f.getPowerUnit() : "");
+ return f;
+ })
+ .collect(Collectors.toList());
+ List powerStaList = powerList.stream()
+ .filter(p -> STABILITY.equals(p.getCheckType()))
+ .map(f -> {
+ f.setCheckPoint(StringUtils.isNotBlank(f.getCheckPoint()) ? f.getCheckPoint() + f.getUnit() : "");
+ f.setPower(StringUtils.isNotBlank(f.getPower()) ? f.getPower() + f.getPowerUnit() : "");
+ f.setTestValueOne(StringUtils.isNotBlank(f.getTestValueOne()) ? f.getTestValueOne() + f.getPowerUnit() : "");
+ f.setTestValueTwo(StringUtils.isNotBlank(f.getTestValueTwo()) ? f.getTestValueTwo() + f.getPowerUnit() : "");
+ f.setTestValueThree(StringUtils.isNotBlank(f.getTestValueThree()) ? f.getTestValueThree() + f.getPowerUnit() : "");
+ f.setTestValueFour(StringUtils.isNotBlank(f.getTestValueFour()) ? f.getTestValueFour() + f.getPowerUnit() : "");
+ f.setTestValueFive(StringUtils.isNotBlank(f.getTestValueFive()) ? f.getTestValueFive() + f.getPowerUnit() : "");
+ f.setTestValueSix(StringUtils.isNotBlank(f.getTestValueSix()) ? f.getTestValueSix() + f.getPowerUnit() : "");
+ f.setAverageValue(StringUtils.isNotBlank(f.getAverageValue()) ? f.getAverageValue() + f.getPowerUnit() : "");
+ if (ObjectUtils.isEmpty(f.getLessThan())) {
+ f.setConclusion("");
+ } else {
+ f.setConclusion(f.getLessThan() == 0 ? "否" : "是");
+ }
+ return f;
+ })
+ .collect(Collectors.toList());
+ List powerDateList = freStaList.stream()
+ .flatMap(f -> Stream.of(f.getTestValueOneDate(),
+ f.getTestValueTwoDate(),
+ f.getTestValueThreeDate(),
+ f.getTestValueFourDate(),
+ f.getTestValueFiveDate(),
+ f.getTestValueSixDate()))
+ .map(f -> {
+ if (StringUtils.isNotBlank(f)) {
+ DateUtil.format(DateUtil.parseDate(f), "yyyy/MM/dd");
+ }
+ return f;
+ })
+ .collect(Collectors.toList());
+
+ map.put("powerRepList", powerRepList);
+ map.put("powerStaList", powerStaList);
+ for (int i = 0; i < powerDateList.size(); i++) {
+ map.put("powerStaDate" + (i + 1), powerDateList.get(i));
+ }
+
+ List relativeList = groupMap.get(RELATIVE_LEVEL);
+ List relativeRepList = relativeList.stream()
+ .filter(r -> REPEATABILITY.equals(r.getCheckType()))
+ .map(f -> {
+ f.setCheckPoint(StringUtils.isNotBlank(f.getCheckPoint()) ? f.getCheckPoint() + f.getUnit() : "");
+ f.setRelativeLevel(StringUtils.isNotBlank(f.getRelativeLevel()) ? f.getRelativeLevel() + f.getRelativeLevelUnit() : "");
+ f.setTestValueOne(StringUtils.isNotBlank(f.getTestValueOne()) ? f.getTestValueOne() + f.getRelativeLevelUnit() : "");
+ f.setTestValueTwo(StringUtils.isNotBlank(f.getTestValueTwo()) ? f.getTestValueTwo() + f.getRelativeLevelUnit() : "");
+ f.setTestValueThree(StringUtils.isNotBlank(f.getTestValueThree()) ? f.getTestValueThree() + f.getRelativeLevelUnit() : "");
+ f.setTestValueFour(StringUtils.isNotBlank(f.getTestValueFour()) ? f.getTestValueFour() + f.getRelativeLevelUnit() : "");
+ f.setTestValueFive(StringUtils.isNotBlank(f.getTestValueFive()) ? f.getTestValueFive() + f.getRelativeLevelUnit() : "");
+ f.setTestValueSix(StringUtils.isNotBlank(f.getTestValueSix()) ? f.getTestValueSix() + f.getRelativeLevelUnit() : "");
+ f.setAverageValue(StringUtils.isNotBlank(f.getAverageValue()) ? f.getAverageValue() + f.getRelativeLevelUnit() : "");
+ return f;
+ })
+ .collect(Collectors.toList());
+ List relativeStaList = relativeList.stream()
+ .filter(r -> STABILITY.equals(r.getCheckType()))
+ .map(f -> {
+ f.setCheckPoint(StringUtils.isNotBlank(f.getCheckPoint()) ? f.getCheckPoint() + f.getUnit() : "");
+ f.setRelativeLevel(StringUtils.isNotBlank(f.getRelativeLevel()) ? f.getRelativeLevel() + f.getRelativeLevelUnit() : "");
+ f.setTestValueOne(StringUtils.isNotBlank(f.getTestValueOne()) ? f.getTestValueOne() + f.getRelativeLevelUnit() : "");
+ f.setTestValueTwo(StringUtils.isNotBlank(f.getTestValueTwo()) ? f.getTestValueTwo() + f.getRelativeLevelUnit() : "");
+ f.setTestValueThree(StringUtils.isNotBlank(f.getTestValueThree()) ? f.getTestValueThree() + f.getRelativeLevelUnit() : "");
+ f.setTestValueFour(StringUtils.isNotBlank(f.getTestValueFour()) ? f.getTestValueFour() + f.getRelativeLevelUnit() : "");
+ f.setTestValueFive(StringUtils.isNotBlank(f.getTestValueFive()) ? f.getTestValueFive() + f.getRelativeLevelUnit() : "");
+ f.setTestValueSix(StringUtils.isNotBlank(f.getTestValueSix()) ? f.getTestValueSix() + f.getRelativeLevelUnit() : "");
+ f.setAverageValue(StringUtils.isNotBlank(f.getAverageValue()) ? f.getAverageValue() + f.getRelativeLevelUnit() : "");
+ if (ObjectUtils.isEmpty(f.getLessThan())) {
+ f.setConclusion("");
+ } else {
+ f.setConclusion(f.getLessThan() == 0 ? "否" : "是");
+ }
+ return f;
+ })
+ .collect(Collectors.toList());
+
+ List relativeDateList = freStaList.stream()
+ .flatMap(f -> Stream.of(f.getTestValueOneDate(),
+ f.getTestValueTwoDate(),
+ f.getTestValueThreeDate(),
+ f.getTestValueFourDate(),
+ f.getTestValueFiveDate(),
+ f.getTestValueSixDate()))
+ .map(f -> {
+ if (StringUtils.isNotBlank(f)) {
+ DateUtil.format(DateUtil.parseDate(f), "yyyy/MM/dd");
+ }
+ return f;
+ })
+ .collect(Collectors.toList());
+
+ map.put("relativeRepList", relativeRepList);
+ map.put("relativeStaList", relativeStaList);
+ for (int i = 0; i < relativeDateList.size(); i++) {
+ map.put("relativeStaDate" + (i + 1), relativeDateList.get(i));
+ }
+ }
+
+ @Override
+ public List doCreateOriginalFile(BizBusinessDeviceMeasureApproval request) {
+ try {
+ if (examineOriginalFile(request)) {
+ log.debug("校验没有原始记录");
+ return null;
+ }
+ if (CollectionUtils.isEmpty(request.getMeasureDataSpectrumAnalyzerList())) {
+ List list = new ArrayList<>();
+ list.add(new BizBusinessDeviceMeasureDataSpectrumAnalyzer());
+ request.setMeasureDataSpectrumAnalyzerList(list);
+ }
+
+ DictCodeUtils.convertDictCodeToName(request);
+ Map map = BeanUtil.beanToMap(request);
+
+
+ //准备填充参数
+ readyForOriginalFillParams(map, request.getMeasureDataSpectrumAnalyzerList());
+ //替换/方法
+ replaceSlash(map);
+ List templateUrls = new ArrayList<>();
+ templateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(MEASURE_DATA, "1", request.getItemCategoryName()));
+ //与证书模板区分
+ SnowflakeUtil snowflakeUtil = new SnowflakeUtil();
+ map.put("id", snowflakeUtil.nextId());
+ map.put("pdfStatus", 1);
+ log.debug("original before ----");
+ //除了选用的模板不一致,模板配置流程是一致的
+ String originalWordUrlFile = printFileRegister.registerPrintFile(MEASURE_DATA, "原始记录打印", null, map, false, null, templateUrls);
+ log.debug("originalUrlFile after------------{}", originalWordUrlFile);
+ List urlList = new ArrayList<>();
+ urlList.add(originalWordUrlFile);
+ if (map.containsKey("pdfUrl")) {
+ urlList.add((String) map.get("pdfUrl"));
+ }
+ return urlList;
+ } catch (Exception ex) {
+ log.info("-----package data is exception, this is {}", ex);
+ throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED);
+ }
+ }
+
+
+
+ private void readyForOriginalFillParams(Map map, List analyzerList) {
+ //根据dataType进行分组,key为dataType,value为List
+ Map> groupMap = analyzerList.stream()
+ .collect(Collectors.groupingBy(BizBusinessDeviceMeasureDataSpectrumAnalyzer::getDataType));
+
+ //频率显示
+ List displayList = groupMap.get(FREQUENCY_DISPLAY)
+ .stream()
+ .peek(analyzer -> {
+ analyzer.setNominalValue(REFERENCE_POINT.equals(analyzer.getNominalValue()) || START_POINT.equals(analyzer.getNominalValue()) ? analyzer.getNominalValue() : StringUtils.isNotBlank(analyzer.getNominalValue()) ? analyzer.getNominalValue() + analyzer.getUnit() : "");
+ analyzer.setSweepWidth(REFERENCE_POINT.equals(analyzer.getSweepWidth()) || START_POINT.equals(analyzer.getSweepWidth()) ? analyzer.getSweepWidth() :StringUtils.isNotBlank(analyzer.getSweepWidth()) ? analyzer.getSweepWidth() + analyzer.getSweepWidthUnit() : "");
+ analyzer.setOneValue(REFERENCE_POINT.equals(analyzer.getOneValue()) || START_POINT.equals(analyzer.getOneValue()) ? analyzer.getOneValue() :StringUtils.isNotBlank(analyzer.getOneValue()) ? analyzer.getOneValue() + analyzer.getUnit() : "");
+ analyzer.setTwoValue(REFERENCE_POINT.equals(analyzer.getTwoValue()) || START_POINT.equals(analyzer.getTwoValue()) ? analyzer.getTwoValue() :StringUtils.isNotBlank(analyzer.getTwoValue()) ? analyzer.getTwoValue() + analyzer.getUnit() : "");
+ analyzer.setThreeValue(REFERENCE_POINT.equals(analyzer.getThreeValue()) || START_POINT.equals(analyzer.getThreeValue()) ? analyzer.getThreeValue() :StringUtils.isNotBlank(analyzer.getThreeValue()) ? analyzer.getThreeValue() + analyzer.getUnit() : "");
+ analyzer.setLowerIndex(REFERENCE_POINT.equals(analyzer.getLowerIndex()) || START_POINT.equals(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() :StringUtils.isNotBlank(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() + analyzer.getLowerIndexUnit() : "");
+ analyzer.setAverageValue(REFERENCE_POINT.equals(analyzer.getAverageValue()) || START_POINT.equals(analyzer.getAverageValue()) ? analyzer.getAverageValue() :StringUtils.isNotBlank(analyzer.getAverageValue()) ? analyzer.getAverageValue() + analyzer.getUnit() : "");
+ analyzer.setUpperIndex(REFERENCE_POINT.equals(analyzer.getUpperIndex()) || START_POINT.equals(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() :StringUtils.isNotBlank(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() + analyzer.getUpperIndexUnit() : "");
+ analyzer.applyStrategyBasedOnDataType();
+ })
+ .collect(Collectors.toList());
+ map.put("displayList", displayList);
+ //扫频宽度
+ List sweepList = groupMap.get(SWEEP_WIDTH)
+ .stream()
+ .peek(analyzer -> {
+ analyzer.setNominalValue(REFERENCE_POINT.equals(analyzer.getNominalValue()) || START_POINT.equals(analyzer.getNominalValue()) ? analyzer.getNominalValue() :StringUtils.isNotBlank(analyzer.getNominalValue()) ? analyzer.getNominalValue() + analyzer.getUnit() : "");
+ analyzer.setOneValue(REFERENCE_POINT.equals(analyzer.getOneValue()) || START_POINT.equals(analyzer.getOneValue()) ? analyzer.getOneValue() :StringUtils.isNotBlank(analyzer.getOneValue()) ? analyzer.getOneValue() + analyzer.getUnit() : "");
+ analyzer.setTwoValue(REFERENCE_POINT.equals(analyzer.getTwoValue()) || START_POINT.equals(analyzer.getTwoValue()) ? analyzer.getTwoValue() :StringUtils.isNotBlank(analyzer.getTwoValue()) ? analyzer.getTwoValue() + analyzer.getUnit() : "");
+ analyzer.setThreeValue(REFERENCE_POINT.equals(analyzer.getThreeValue()) || START_POINT.equals(analyzer.getThreeValue()) ? analyzer.getThreeValue() :StringUtils.isNotBlank(analyzer.getThreeValue()) ? analyzer.getThreeValue() + analyzer.getUnit() : "");
+ analyzer.setFourValue(REFERENCE_POINT.equals(analyzer.getFourValue()) || START_POINT.equals(analyzer.getFourValue()) ? analyzer.getFourValue() :StringUtils.isNotBlank(analyzer.getFourValue()) ? analyzer.getFourValue() + analyzer.getUnit() : "");
+ analyzer.setFiveValue(REFERENCE_POINT.equals(analyzer.getFiveValue()) || START_POINT.equals(analyzer.getFiveValue()) ? analyzer.getFiveValue() :StringUtils.isNotBlank(analyzer.getFiveValue()) ? analyzer.getFiveValue() + analyzer.getUnit() : "");
+ analyzer.setSixValue(REFERENCE_POINT.equals(analyzer.getSixValue()) || START_POINT.equals(analyzer.getSixValue()) ? analyzer.getSixValue() :StringUtils.isNotBlank(analyzer.getSixValue()) ? analyzer.getSixValue() + analyzer.getUnit() : "");
+ analyzer.setLowerIndex(REFERENCE_POINT.equals(analyzer.getLowerIndex()) || START_POINT.equals(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() :StringUtils.isNotBlank(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() + analyzer.getLowerIndexUnit() : "");
+ analyzer.setAverageValue(REFERENCE_POINT.equals(analyzer.getAverageValue()) || START_POINT.equals(analyzer.getAverageValue()) ? analyzer.getAverageValue() :StringUtils.isNotBlank(analyzer.getAverageValue()) ? analyzer.getAverageValue() + analyzer.getUnit() : "");
+ analyzer.setUpperIndex(REFERENCE_POINT.equals(analyzer.getUpperIndex()) || START_POINT.equals(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() :StringUtils.isNotBlank(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() + analyzer.getUpperIndexUnit() : "");
+ analyzer.applyStrategyBasedOnDataType();
+ }).collect(Collectors.toList());
+ map.put("sweepList", sweepList);
+ //中频带宽
+ List bandwidthList = groupMap.get(IF_BANDWIDTH)
+ .stream()
+ .peek(analyzer -> {
+ analyzer.setNominalValue(REFERENCE_POINT.equals(analyzer.getNominalValue()) || START_POINT.equals(analyzer.getNominalValue()) ? analyzer.getNominalValue() :StringUtils.isNotBlank(analyzer.getNominalValue()) ? analyzer.getNominalValue() + analyzer.getUnit() : "");
+ analyzer.setOneValue(REFERENCE_POINT.equals(analyzer.getOneValue()) || START_POINT.equals(analyzer.getOneValue()) ? analyzer.getOneValue() :StringUtils.isNotBlank(analyzer.getOneValue()) ? analyzer.getOneValue() + analyzer.getUnit() : "");
+ analyzer.setTwoValue(REFERENCE_POINT.equals(analyzer.getTwoValue()) || START_POINT.equals(analyzer.getTwoValue()) ? analyzer.getTwoValue() :StringUtils.isNotBlank(analyzer.getTwoValue()) ? analyzer.getTwoValue() + analyzer.getUnit() : "");
+ analyzer.setThreeValue(REFERENCE_POINT.equals(analyzer.getThreeValue()) || START_POINT.equals(analyzer.getThreeValue()) ? analyzer.getThreeValue() :StringUtils.isNotBlank(analyzer.getThreeValue()) ? analyzer.getThreeValue() + analyzer.getUnit() : "");
+ analyzer.setFourValue(REFERENCE_POINT.equals(analyzer.getFourValue()) || START_POINT.equals(analyzer.getFourValue()) ? analyzer.getFourValue() :StringUtils.isNotBlank(analyzer.getFourValue()) ? analyzer.getFourValue() + analyzer.getUnit() : "");
+ analyzer.setFiveValue(REFERENCE_POINT.equals(analyzer.getFiveValue()) || START_POINT.equals(analyzer.getFiveValue()) ? analyzer.getFiveValue() :StringUtils.isNotBlank(analyzer.getFiveValue()) ? analyzer.getFiveValue() + analyzer.getUnit() : "");
+ analyzer.setSixValue(REFERENCE_POINT.equals(analyzer.getSixValue()) || START_POINT.equals(analyzer.getSixValue()) ? analyzer.getSixValue() :StringUtils.isNotBlank(analyzer.getSixValue()) ? analyzer.getSixValue() + analyzer.getUnit() : "");
+ analyzer.setLowerIndex(REFERENCE_POINT.equals(analyzer.getLowerIndex()) || START_POINT.equals(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() :StringUtils.isNotBlank(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() + analyzer.getLowerIndexUnit() : "");
+ analyzer.setAverageValue(REFERENCE_POINT.equals(analyzer.getAverageValue()) || START_POINT.equals(analyzer.getAverageValue()) ? analyzer.getAverageValue() :StringUtils.isNotBlank(analyzer.getAverageValue()) ? analyzer.getAverageValue() + analyzer.getUnit() : "");
+ analyzer.setUpperIndex(REFERENCE_POINT.equals(analyzer.getUpperIndex()) || START_POINT.equals(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() :StringUtils.isNotBlank(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() + analyzer.getUpperIndexUnit() : "");
+ analyzer.applyStrategyBasedOnDataType();
+ })
+ .collect(Collectors.toList());
+ map.put("bandwidthList", bandwidthList);
+ //中频带宽转换偏差
+ List conversionList = groupMap.get(IF_BANDWIDTH_CONVERSION_DEVIATION)
+ .stream().peek(analyzer -> {
+ analyzer.setNominalValue(REFERENCE_POINT.equals(analyzer.getNominalValue()) || START_POINT.equals(analyzer.getNominalValue()) ? analyzer.getNominalValue() :StringUtils.isNotBlank(analyzer.getNominalValue()) ? analyzer.getNominalValue() + analyzer.getUnit() : "");
+ analyzer.setOneValue(REFERENCE_POINT.equals(analyzer.getOneValue()) || START_POINT.equals(analyzer.getOneValue()) ? analyzer.getOneValue() :StringUtils.isNotBlank(analyzer.getOneValue()) ? analyzer.getOneValue() + analyzer.getUnit() : "");
+ analyzer.setLowerIndex(REFERENCE_POINT.equals(analyzer.getLowerIndex()) || START_POINT.equals(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() :StringUtils.isNotBlank(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() + analyzer.getLowerIndexUnit() : "");
+ analyzer.setConvertDeviation(REFERENCE_POINT.equals(analyzer.getConvertDeviation()) || START_POINT.equals(analyzer.getConvertDeviation()) ? analyzer.getConvertDeviation() :StringUtils.isNotBlank(analyzer.getConvertDeviation()) ? analyzer.getConvertDeviation() + "dB" : "");
+ analyzer.setUpperIndex(REFERENCE_POINT.equals(analyzer.getUpperIndex()) || START_POINT.equals(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() :StringUtils.isNotBlank(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() + analyzer.getUpperIndexUnit() : "");
+ analyzer.applyStrategyBasedOnDataType();
+ }).collect(Collectors.toList());
+ map.put("conversionList", conversionList);
+ //参考电平
+ List referenceList = groupMap.get(REFERENCE_LEVEL)
+ .stream()
+ .peek(analyzer -> {
+ analyzer.setNominalValue(REFERENCE_POINT.equals(analyzer.getNominalValue()) || START_POINT.equals(analyzer.getNominalValue()) ? analyzer.getNominalValue() :StringUtils.isNotBlank(analyzer.getNominalValue()) ? analyzer.getNominalValue() + analyzer.getUnit() : "");
+ analyzer.setStandardAttenuatorAttenuation(REFERENCE_POINT.equals(analyzer.getStandardAttenuatorAttenuation()) || START_POINT.equals(analyzer.getStandardAttenuatorAttenuation()) ? analyzer.getStandardAttenuatorAttenuation() :StringUtils.isNotBlank(analyzer.getStandardAttenuatorAttenuation()) ? analyzer.getStandardAttenuatorAttenuation() + analyzer.getStandardAttenuatorAttenuationUnit() : "");
+ analyzer.setSignalSourceAmplitude(REFERENCE_POINT.equals(analyzer.getSignalSourceAmplitude()) || START_POINT.equals(analyzer.getSignalSourceAmplitude()) ? analyzer.getSignalSourceAmplitude() :StringUtils.isNotBlank(analyzer.getSignalSourceAmplitude()) ? analyzer.getSignalSourceAmplitude() + analyzer.getSignalSourceAmplitudeUnit() : "");
+ analyzer.setSpectrumLevel(REFERENCE_POINT.equals(analyzer.getSpectrumLevel()) || START_POINT.equals(analyzer.getSpectrumLevel()) ? analyzer.getSpectrumLevel() :StringUtils.isNotBlank(analyzer.getSpectrumLevel()) ? analyzer.getSpectrumLevel() + analyzer.getSpectrumLevelUnit() : "");
+ analyzer.setLowerIndex(REFERENCE_POINT.equals(analyzer.getLowerIndex()) || START_POINT.equals(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() :StringUtils.isNotBlank(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() + analyzer.getLowerIndexUnit() : "");
+ analyzer.setOneValue(REFERENCE_POINT.equals(analyzer.getOneValue()) || START_POINT.equals(analyzer.getOneValue()) ? analyzer.getOneValue() :StringUtils.isNotBlank(analyzer.getOneValue()) ? analyzer.getOneValue() + analyzer.getUnit() : "");
+ analyzer.setUpperIndex(REFERENCE_POINT.equals(analyzer.getUpperIndex()) || START_POINT.equals(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() :StringUtils.isNotBlank(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() + analyzer.getUpperIndexUnit() : "");
+ analyzer.applyStrategyBasedOnDataType();
+ })
+ .collect(Collectors.toList());
+ map.put("referenceList", referenceList);
+ //垂直刻度
+ List verticalList = groupMap.get(VERTICAL_SCALE)
+ .stream()
+ .peek(analyzer -> {
+ analyzer.setNominalValue(REFERENCE_POINT.equals(analyzer.getNominalValue()) || START_POINT.equals(analyzer.getNominalValue()) ? analyzer.getNominalValue() :StringUtils.isNotBlank(analyzer.getNominalValue()) ? analyzer.getNominalValue() + analyzer.getUnit() : "");
+ analyzer.setStandardAttenuatorAttenuation(REFERENCE_POINT.equals(analyzer.getStandardAttenuatorAttenuation()) || START_POINT.equals(analyzer.getStandardAttenuatorAttenuation()) ? analyzer.getStandardAttenuatorAttenuation() :StringUtils.isNotBlank(analyzer.getStandardAttenuatorAttenuation()) ? analyzer.getStandardAttenuatorAttenuation() + analyzer.getStandardAttenuatorAttenuationUnit() : "");
+ analyzer.setSignalSourceAmplitude(REFERENCE_POINT.equals(analyzer.getSignalSourceAmplitude()) || START_POINT.equals(analyzer.getSignalSourceAmplitude()) ? analyzer.getSignalSourceAmplitude() :StringUtils.isNotBlank(analyzer.getSignalSourceAmplitude()) ? analyzer.getSignalSourceAmplitude() + analyzer.getSignalSourceAmplitudeUnit() : "");
+ analyzer.setLowerIndex(REFERENCE_POINT.equals(analyzer.getLowerIndex()) || START_POINT.equals(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() :StringUtils.isNotBlank(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() + analyzer.getLowerIndexUnit() : "");
+ analyzer.setOneValue(REFERENCE_POINT.equals(analyzer.getOneValue()) || START_POINT.equals(analyzer.getOneValue()) ? analyzer.getOneValue() :StringUtils.isNotBlank(analyzer.getOneValue()) ? analyzer.getOneValue() + analyzer.getUnit() : "");
+ analyzer.setUpperIndex(REFERENCE_POINT.equals(analyzer.getUpperIndex()) || START_POINT.equals(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() :StringUtils.isNotBlank(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() + analyzer.getUpperIndexUnit() : "");
+ analyzer.applyStrategyBasedOnDataType();
+ })
+ .collect(Collectors.toList());
+ map.put("verticalList", verticalList);
+ //输入频响
+ List frequencyList = groupMap.get(INPUT_FREQUENCY_RESPONSE)
+ .stream()
+ .peek(analyzer -> {
+ analyzer.setFrequency(REFERENCE_POINT.equals(analyzer.getFrequency()) || START_POINT.equals(analyzer.getFrequency()) ? analyzer.getFrequency() :StringUtils.isNotBlank(analyzer.getFrequency()) ? analyzer.getFrequency() + analyzer.getFrequencyUnit() : "");
+ analyzer.setOneValue(REFERENCE_POINT.equals(analyzer.getOneValue()) || START_POINT.equals(analyzer.getOneValue()) ? analyzer.getOneValue() :StringUtils.isNotBlank(analyzer.getOneValue()) ? analyzer.getOneValue() + analyzer.getUnit() : "");
+ analyzer.setTwoValue(REFERENCE_POINT.equals(analyzer.getTwoValue()) || START_POINT.equals(analyzer.getTwoValue()) ? analyzer.getTwoValue() :StringUtils.isNotBlank(analyzer.getTwoValue()) ? analyzer.getTwoValue() + analyzer.getUnit() : "");
+ analyzer.setThreeValue(REFERENCE_POINT.equals(analyzer.getThreeValue()) || START_POINT.equals(analyzer.getThreeValue()) ? analyzer.getThreeValue() :StringUtils.isNotBlank(analyzer.getThreeValue()) ? analyzer.getThreeValue() + analyzer.getUnit() : "");
+ analyzer.setLowerIndex(REFERENCE_POINT.equals(analyzer.getLowerIndex()) || START_POINT.equals(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() :StringUtils.isNotBlank(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() + analyzer.getLowerIndexUnit() : "");
+ analyzer.setInputFrequency(REFERENCE_POINT.equals(analyzer.getInputFrequency()) || START_POINT.equals(analyzer.getInputFrequency()) ? analyzer.getInputFrequency() :StringUtils.isNotBlank(analyzer.getInputFrequency()) ? analyzer.getInputFrequency() + "dBm" : "");
+ analyzer.setUpperIndex(REFERENCE_POINT.equals(analyzer.getUpperIndex()) || START_POINT.equals(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() :StringUtils.isNotBlank(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() + analyzer.getUpperIndexUnit() : "");
+ analyzer.applyStrategyBasedOnDataType();
+ })
+ .collect(Collectors.toList());
+ map.put("frequencyList", frequencyList);
+ //平均噪声电平
+ List noiseList = groupMap.get(AVERAGE_NOISE_LEVEL)
+ .stream()
+ .peek(analyzer -> {
+ analyzer.setStartFrequency(REFERENCE_POINT.equals(analyzer.getStartFrequency()) || START_POINT.equals(analyzer.getStartFrequency()) ? analyzer.getStartFrequency() :StringUtils.isNotBlank(analyzer.getStartFrequency()) ? analyzer.getStartFrequency() + analyzer.getStartFrequencyUnit() : "");
+ analyzer.setEndFrequency(REFERENCE_POINT.equals(analyzer.getEndFrequency()) || START_POINT.equals(analyzer.getEndFrequency()) ? analyzer.getEndFrequency() :StringUtils.isNotBlank(analyzer.getEndFrequency()) ? analyzer.getEndFrequency() + analyzer.getEndFrequencyUnit() : "");
+ analyzer.setInputFrequency(REFERENCE_POINT.equals(analyzer.getInputFrequency()) || START_POINT.equals(analyzer.getInputFrequency()) ? analyzer.getInputFrequency() :StringUtils.isNotBlank(analyzer.getInputFrequency()) ? analyzer.getInputFrequency() + "dBm" : "");
+ analyzer.setOneValue(REFERENCE_POINT.equals(analyzer.getOneValue()) || START_POINT.equals(analyzer.getOneValue()) ? analyzer.getOneValue() :StringUtils.isNotBlank(analyzer.getOneValue()) ? analyzer.getOneValue() + "dBm" : "");
+ analyzer.setUpperIndex(REFERENCE_POINT.equals(analyzer.getUpperIndex()) || START_POINT.equals(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() :StringUtils.isNotBlank(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() + analyzer.getUpperIndexUnit() : "");
+ analyzer.applyStrategyBasedOnDataType();
+ })
+ .collect(Collectors.toList());
+ map.put("noiseList", noiseList);
+ //谐波失真
+ List harmonicList = groupMap.get(HARMONIC_DISTORTION)
+ .stream()
+ .peek(analyzer -> {
+ analyzer.setFrequency(REFERENCE_POINT.equals(analyzer.getFrequency()) || START_POINT.equals(analyzer.getFrequency()) ? analyzer.getFrequency() :StringUtils.isNotBlank(analyzer.getFrequency()) ? analyzer.getFrequency() + analyzer.getFrequencyUnit() : "");
+ analyzer.setOneValue(REFERENCE_POINT.equals(analyzer.getOneValue()) || START_POINT.equals(analyzer.getOneValue()) ? analyzer.getOneValue() : StringUtils.isNotBlank(analyzer.getOneValue()) ? analyzer.getOneValue() + "dBc" : "");
+ analyzer.setTwoValue(REFERENCE_POINT.equals(analyzer.getTwoValue()) || START_POINT.equals(analyzer.getTwoValue()) ? analyzer.getTwoValue() : StringUtils.isNotBlank(analyzer.getTwoValue()) ? analyzer.getTwoValue() + "dBc" : "");
+ analyzer.setThreeValue(REFERENCE_POINT.equals(analyzer.getThreeValue()) || START_POINT.equals(analyzer.getThreeValue()) ? analyzer.getThreeValue() : StringUtils.isNotBlank(analyzer.getThreeValue()) ? analyzer.getThreeValue() + "dBc" : "");
+ analyzer.setUpperIndex(REFERENCE_POINT.equals(analyzer.getUpperIndex()) || START_POINT.equals(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() : StringUtils.isNotBlank(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() + analyzer.getUpperIndexUnit() : "");
+ analyzer.applyStrategyBasedOnDataType();
+ })
+ .collect(Collectors.toList());
+ map.put("harmonicList", harmonicList);
+ //输入衰减
+ List attenuationList = groupMap.get(INPUT_ATTENUATION)
+ .stream()
+ .peek(analyzer -> {
+ analyzer.setStandardAttenuatorAttenuation(REFERENCE_POINT.equals(analyzer.getStandardAttenuatorAttenuation()) || START_POINT.equals(analyzer.getStandardAttenuatorAttenuation()) ? analyzer.getStandardAttenuatorAttenuation() :StringUtils.isNotBlank(analyzer.getStandardAttenuatorAttenuation()) ? analyzer.getStandardAttenuatorAttenuation() + analyzer.getStandardAttenuatorAttenuationUnit() : "");
+ analyzer.setInputAttenuator(REFERENCE_POINT.equals(analyzer.getInputAttenuator()) || START_POINT.equals(analyzer.getInputAttenuator()) ? analyzer.getInputAttenuator() :StringUtils.isNotBlank(analyzer.getInputAttenuator()) ? analyzer.getInputAttenuator() + analyzer.getInputAttenuatorUnit() : "");
+ analyzer.setSpectrumLevel(REFERENCE_POINT.equals(analyzer.getSpectrumLevel()) || START_POINT.equals(analyzer.getSpectrumLevel()) ? analyzer.getSpectrumLevel() :StringUtils.isNotBlank(analyzer.getSpectrumLevel()) ? analyzer.getSpectrumLevel() + analyzer.getUnit() : "");
+ analyzer.setOneValue(REFERENCE_POINT.equals(analyzer.getOneValue()) || START_POINT.equals(analyzer.getOneValue()) ? analyzer.getOneValue() :StringUtils.isNotBlank(analyzer.getOneValue()) ? analyzer.getOneValue() + analyzer.getUnit() : "");
+ analyzer.setLowerIndex(REFERENCE_POINT.equals(analyzer.getLowerIndex()) || START_POINT.equals(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() :StringUtils.isNotBlank(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() + analyzer.getLowerIndexUnit() : "");
+ analyzer.setInputAttenuatorConversionEffect(REFERENCE_POINT.equals(analyzer.getInputAttenuatorConversionEffect()) || START_POINT.equals(analyzer.getInputAttenuatorConversionEffect()) ? analyzer.getInputAttenuatorConversionEffect() :StringUtils.isNotBlank(analyzer.getInputAttenuatorConversionEffect()) ? analyzer.getInputAttenuatorConversionEffect() + "dB" : "");
+ analyzer.setUpperIndex(REFERENCE_POINT.equals(analyzer.getUpperIndex()) || START_POINT.equals(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() :StringUtils.isNotBlank(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() + analyzer.getUpperIndexUnit() : "");
+ analyzer.applyStrategyBasedOnDataType();
+ })
+ .collect(Collectors.toList());
+ map.put("attenuationList", attenuationList);
+ //1dB增益压缩点
+ List compressionList = groupMap.get(GAIN_COMPRESSION_POINT)
+ .stream()
+ .peek(analyzer -> {
+ analyzer.setFrequency(REFERENCE_POINT.equals(analyzer.getFrequency()) || START_POINT.equals(analyzer.getFrequency()) ? analyzer.getFrequency() :StringUtils.isNotBlank(analyzer.getFrequency()) ? analyzer.getFrequency() + analyzer.getFrequencyUnit() : "");
+ analyzer.setInputAttenuator(REFERENCE_POINT.equals(analyzer.getInputAttenuator()) || START_POINT.equals(analyzer.getInputAttenuator()) ? analyzer.getInputAttenuator() :StringUtils.isNotBlank(analyzer.getInputAttenuator()) ? analyzer.getInputAttenuator() + analyzer.getInputAttenuatorUnit() : "");
+ analyzer.setOneValue(REFERENCE_POINT.equals(analyzer.getOneValue()) || START_POINT.equals(analyzer.getOneValue()) ? analyzer.getOneValue() :StringUtils.isNotBlank(analyzer.getOneValue()) ? analyzer.getOneValue() + analyzer.getUnit() : "");
+ analyzer.setGainCompression(REFERENCE_POINT.equals(analyzer.getGainCompression()) || START_POINT.equals(analyzer.getGainCompression()) ? analyzer.getGainCompression() :StringUtils.isNotBlank(analyzer.getGainCompression()) ? analyzer.getGainCompression() + "dBm" : "");
+ analyzer.setUpperIndex(REFERENCE_POINT.equals(analyzer.getUpperIndex()) || START_POINT.equals(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() :StringUtils.isNotBlank(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() + analyzer.getUpperIndexUnit() : "");
+ analyzer.applyStrategyBasedOnDataType();
+ })
+ .collect(Collectors.toList());
+ map.put("compressionList", compressionList);
+ //校准信号
+ List calibrationList = groupMap.get(CALIBRATION_SIGNAL)
+ .stream()
+ .peek(analyzer -> {
+ analyzer.setNominalValue(REFERENCE_POINT.equals(analyzer.getNominalValue()) || START_POINT.equals(analyzer.getNominalValue()) ? analyzer.getNominalValue() :StringUtils.isNotBlank(analyzer.getNominalValue()) ? analyzer.getNominalValue() + analyzer.getUnit() : "");
+ if (FREQUENCY_CN.equals(analyzer.getTypeValue())) {
+ analyzer.setOneValue("/");
+ analyzer.setTwoValue("/");
+ analyzer.setThreeValue("/");
+ } else if (AMPLITUDE.equals(analyzer.getTypeValue())) {
+ analyzer.setOneValue(REFERENCE_POINT.equals(analyzer.getOneValue()) || START_POINT.equals(analyzer.getOneValue()) ? analyzer.getOneValue() :StringUtils.isNotBlank(analyzer.getOneValue()) ? analyzer.getOneValue() + analyzer.getUnit() : "");
+ analyzer.setTwoValue(REFERENCE_POINT.equals(analyzer.getTwoValue()) || START_POINT.equals(analyzer.getTwoValue()) ? analyzer.getTwoValue() :StringUtils.isNotBlank(analyzer.getTwoValue()) ? analyzer.getTwoValue() + analyzer.getUnit() : "");
+ analyzer.setThreeValue(REFERENCE_POINT.equals(analyzer.getThreeValue()) || START_POINT.equals(analyzer.getThreeValue()) ? analyzer.getThreeValue() :StringUtils.isNotBlank(analyzer.getThreeValue()) ? analyzer.getThreeValue() + analyzer.getUnit() : "");
+ }
+ analyzer.setLowerIndex(REFERENCE_POINT.equals(analyzer.getLowerIndex()) || START_POINT.equals(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() :StringUtils.isNotBlank(analyzer.getLowerIndex()) ? analyzer.getLowerIndex() + analyzer.getLowerIndexUnit() : "");
+ analyzer.setAverageValue(REFERENCE_POINT.equals(analyzer.getAverageValue()) || START_POINT.equals(analyzer.getAverageValue()) ? analyzer.getAverageValue() :StringUtils.isNotBlank(analyzer.getAverageValue()) ? analyzer.getAverageValue() + analyzer.getUnit() : "");
+ analyzer.setUpperIndex(REFERENCE_POINT.equals(analyzer.getUpperIndex()) || START_POINT.equals(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() :StringUtils.isNotBlank(analyzer.getUpperIndex()) ? analyzer.getUpperIndex() + analyzer.getUpperIndexUnit() : "");
+ analyzer.applyStrategyBasedOnDataType();
+ })
+ .collect(Collectors.toList());
+ map.put("calibrationList", calibrationList);
+ }
+
+ private void readyForCertificateFillParams(Map map, List analyzerList) {
+ //根据dataType进行分组,key为dataType,value为List
+ Map> groupMap = analyzerList.stream()
+ .collect(Collectors.groupingBy(BizBusinessDeviceMeasureDataSpectrumAnalyzer::getDataType));
+
+ //频率显示
+ List displayList = groupMap.get(FREQUENCY_DISPLAY);
+ map.put("displayList", displayList);
+ //扫频宽度
+ List sweepList = groupMap.get(SWEEP_WIDTH);
+ map.put("sweepList", sweepList);
+ //中频带宽
+ List bandwidthList = groupMap.get(IF_BANDWIDTH);
+ map.put("bandwidthList", bandwidthList);
+ //中频带宽转换偏差
+ List conversionList = groupMap.get(IF_BANDWIDTH_CONVERSION_DEVIATION);
+ map.put("conversionList", conversionList);
+ //参考电平
+ List referenceList = groupMap.get(REFERENCE_LEVEL);
+ map.put("referenceList", referenceList);
+ //垂直刻度
+ List verticalList = groupMap.get(VERTICAL_SCALE);
+ map.put("verticalList", verticalList);
+ //输入频响
+ List frequencyList = groupMap.get(INPUT_FREQUENCY_RESPONSE);
+ map.put("frequencyList", frequencyList);
+ //平均噪声电平
+ List noiseList = groupMap.get(AVERAGE_NOISE_LEVEL);
+ map.put("noiseList", noiseList);
+ //谐波失真
+ List harmonicList = groupMap.get(HARMONIC_DISTORTION);
+ map.put("harmonicList", harmonicList);
+ //输入衰减
+ List attenuationList = groupMap.get(INPUT_ATTENUATION);
+ map.put("attenuationList", attenuationList);
+ //1dB增益压缩点
+ List compressionList = groupMap.get(GAIN_COMPRESSION_POINT);
+ map.put("compressionList", compressionList);
+ //校准信号
+ List calibrationList = groupMap.get(CALIBRATION_SIGNAL);
+ map.put("calibrationList", calibrationList);
+ }
+
+ @Override
+ public List doCreateCertificateFile(BizBusinessDeviceMeasureApproval request) {
+ try {
+ //过滤不能生成证书的
+ if (checkOutUnablePrint(request)) {
+ log.debug("该报告没有证书报告");
+ return null;
+ }
+ if (CollectionUtils.isEmpty(request.getMeasureDataSpectrumAnalyzerList())) {
+ List list = new ArrayList<>();
+ list.add(new BizBusinessDeviceMeasureDataSpectrumAnalyzer());
+ request.setMeasureDataSpectrumAnalyzerList(list);
+ }
+
+ DictCodeUtils.convertDictCodeToName(request);
+ Map map = BeanUtil.beanToMap(request);
+
+ prepareCoverParams(map, request.getLabCode());
+ String jsonList = JSONArray.toJSONString(request.getMeasureDataSpectrumAnalyzerList());
+ List list1 = JSONArray.parseArray(jsonList, BizBusinessDeviceMeasureDataSpectrumAnalyzer.class);
+ readyForCertificateFillParams(map, list1);
+// concatMutliAsterisk(request.getMeasureDataSpectrumAnalyzerList());
+ replaceSlash(map);
+ List customTemplateUrls = new ArrayList<>();
+ log.debug("--------get Certificate template is ....");
+ //查询对应封面模板和检定证书模板
+ customTemplateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(MEASURE_DATA, "2", request.getMeasureCategoryName()));
+ customTemplateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(MEASURE_DATA, "2", request.getItemCategoryName()));
+ SnowflakeUtil snowflakeUtil = new SnowflakeUtil();
+ map.put("id", snowflakeUtil.nextId());
+ map.put("pdfStatus", 1);
+ List urlList = new ArrayList<>();
+ //除了选用的模板不一致,模板配置流程是一致的
+ log.debug("certificate before------------");
+ String wordUrl = printFileRegister.registerPrintFile(MEASURE_DATA, "证书打印", null, map, false, null, customTemplateUrls);
+ urlList.add(wordUrl);
+ if (map.containsKey("pdfUrl")) {
+ urlList.add((String) map.get("pdfUrl"));
+ }
+ log.debug("certificate after------------{}", wordUrl);
+ return urlList;
+ } catch (Exception ex) {
+ log.debug("doCreateCertificateFile Exception is------------{}", ex);
+ throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED);
+ }
+ }
+}