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); + } + } +}