diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index d524bcf..dcc1279 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -914,6 +914,10 @@ case 5: //二等铂电阻温度计标准装置 DataList=BaseCommonApi::getDeviceMeasureItemDataResistanceThermometer(deviceCatoryName,CliTable[0].id,HeadList); + case 9: + //频谱分析仪装置 + DataList=BaseCommonApi::getDeviceMeasureItemDataSpectrumAnalyzer(deviceCatoryName,CliTable[0].id,HeadList); + break; case 13: //示波器标准装置 DataList=BaseCommonApi::getDeviceOscilloscopeCalibration(deviceCatoryName,CliTable[0].id,HeadList); @@ -1952,82 +1956,118 @@ qDebug() << "Query execution failed: " << query.lastError().text(); } break; - case 2: - if(equipment_item_category_id.isNull() || equipment_item_category_id.isEmpty()) - { - query.prepare("SELECT DISTINCT data_type FROM biz_business_device_measure_item_data_dc_power bbdmiddp " - " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmiddp.item_id"); - }else { - query.prepare("SELECT DISTINCT data_type FROM biz_business_device_measure_item_data_dc_power bbdmiddp " - " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmiddp.item_id " - "WHERE bbdmii.item_category_id = :equipment_item_category_id "); - } - query.bindValue(":equipment_item_category_id", equipment_item_category_id); - if (query.exec()) { - while (query.next()) { - Params param; - QString data_type = query.value("data_type").toString(); - switch (data_type.toInt()) { - case 1: - param.param = "电源电压调整率"; - break; - case 2: - param.param = "负载调整率"; - break; - case 3: - param.param = "电压示值误差"; - break; - case 4: - param.param = "电流示值误差(直接测量)"; - break; - case 5: - param.param = "电流示值误差(间接测量)"; - break; - case 6: - param.param = "纹波电压"; - break; - case 7: - param.param = "输出电压短期稳定性"; - break; + case 2: + if(equipment_item_category_id.isNull() || equipment_item_category_id.isEmpty()) + { + query.prepare("SELECT DISTINCT data_type FROM biz_business_device_measure_item_data_dc_power bbdmiddp " + " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmiddp.item_id"); + }else { + query.prepare("SELECT DISTINCT data_type FROM biz_business_device_measure_item_data_dc_power bbdmiddp " + " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmiddp.item_id " + "WHERE bbdmii.item_category_id = :equipment_item_category_id "); + } + query.bindValue(":equipment_item_category_id", equipment_item_category_id); + if (query.exec()) { + while (query.next()) { + Params param; + QString data_type = query.value("data_type").toString(); + switch (data_type.toInt()) { + case 1: + param.param = "电源电压调整率"; + break; + case 2: + param.param = "负载调整率"; + break; + case 3: + param.param = "电压示值误差"; + break; + case 4: + param.param = "电流示值误差(直接测量)"; + break; + case 5: + param.param = "电流示值误差(间接测量)"; + break; + case 6: + param.param = "纹波电压"; + break; + case 7: + param.param = "输出电压短期稳定性"; + break; + } + result.append(param); } + } + break; + case 4: { + bool isExit = false; + QString itemName; + if (!equipment_item_category_id.isNull() && !equipment_item_category_id.isEmpty()) { + for (int i = 0; i < standard_item.length(); i++) { + if (equipment_item_category_id.contains(standard_item[i].id)) { + isExit = true; + itemName = standard_item[i].category_name; + break; // 找到匹配项后退出循环 + } + } + if (isExit && itemName.contains("一般压力表")) { + Params param; + param.param = "示值误差/回程误差/轻敲位移"; result.append(param); } - } - break; - case 4: - bool isExit = false; - QString itemName = NULL; - if(!(equipment_item_category_id.isNull() || equipment_item_category_id.isEmpty())) - { - for(int i = 0;i < standard_item.length();i++){ - if (equipment_item_category_id.contains(standard_item[i].id)){ - isExit = true; - itemName = standard_item[i].category_name; - } - } - if(isExit && itemName.contains("一般压力表")){ - Params param; - param.param = "示值误差/回程误差/轻敲位移"; - result.append(param); - } - }else { - Params param; - param.param = "示值误差/回程误差/轻敲位移"; - Params param1; - param1.param = "示值误差"; - Params param2; - param2.param = "回程误差"; - Params param3; - param3.param = "轻敲位移"; - QList paramList; - paramList.append(param1); - paramList.append(param2); - paramList.append(param3); - for(int i =0;i paramList; + paramList.append(param1); + paramList.append(param2); + paramList.append(param3); + for (int i = 0; i < paramList.length(); i++) { + result.append(paramList[i]); } - break; + } + break; // 确保每个case结束都有break语句 + } + case 5:{ + if(!equipment_item_category_id.isNull() || equipment_item_category_id.isEmpty()) + { + query.prepare("SELECT DISTINCT bbdmidrt.data_type,bbdmii.item_category_name FROM biz_business_device_measure_item_data_resistance_thermometer bbdmidrt" + " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmidrt.item_id" + " WHERE bbdmii.item_category_id = :equipment_item_category_id "); + query.bindValue(":equipment_item_category_id", equipment_item_category_id); + if (query.exec()) { + while (query.next()) { + Params param; + param.param = query.value("data_type").toString(); + param.itemCategoryName = query.value("item_category_name").toString(); + if(param.param == "1" && param.itemCategoryName.contains("恒温槽")) + param.param = "波动性"; + else if (param.param == "2" && param.itemCategoryName.contains("恒温槽")) { + param.param = "均匀性"; + }else if (param.param == "1" && param.itemCategoryName.contains("工业铂铜热电阻")) { + param.param = "允差"; + }else if (param.param == "1" && param.itemCategoryName.contains("工业铂铜热电阻")) { + param.param = "结果表格"; + } + result.append(param); + } + }else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + break; + case 9: + { + query.prepare(""); + } + } + break; + } + } return result; }; @@ -4610,9 +4650,9 @@ resultData.clear(); QSqlQuery query; - query.prepare("SELECT bbdmidsa.*,bbdmii.frequency_display,bbdmii.sweep_width,bbdmii.middle_frequency_width," - " bbdmii.middle_conversion_deviation,bbdmii.reference_level,bbdmii.vertical_scale,bbdmii.input_frequency," - " bbdmii.average_noise_level,bbdmii.harmonic_distortion,bbdmii.input_attenuation,bbdmii.gain_compression " + query.prepare("SELECT bbdmidsa.*,bbdmii.frequency_display,bbdmii.sweep_width as sweep_width_demo,bbdmii.middle_frequency_width," + " bbdmii.middle_conversion_deviation,bbdmii.reference_level,bbdmii.vertical_scale as vertical_scale_demo,bbdmii.input_frequency," + " bbdmii.average_noise_level,bbdmii.harmonic_distortion,bbdmii.input_attenuation,bbdmii.gain_compression,bbdmii.calibrating_signal " " FROM biz_business_device_measure_item_data_spectrum_analyzer bbdmidsa " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmidsa.item_id" " WHERE bbdmidsa.item_id = :itemId " @@ -4626,7 +4666,7 @@ result.append(query.value("data_type").toString());//检定项数据类型(一个检定项中区分两个表格)(字典code) result.append(query.value("nominal_value").toString());//标称值 result.append(query.value("unit").toString());//标称值单位 - result.append(query.value("sweep_width").toString());//扫频宽度 + result.append(query.value("sweep_width").toString());//扫频宽度 5 result.append(query.value("sweep_width_unit").toString());//扫频宽度单位 result.append(query.value("horizontal_resolution").toString());//水平分辨率 result.append(query.value("horizontal_resolution_unit").toString());//水平分辨率单位 @@ -4651,7 +4691,7 @@ result.append(query.value("signal_source_amplitude").toString());//信号源幅度 result.append(query.value("signal_source_amplitude_unit").toString());//信号源幅度单位 result.append(query.value("vertical_scale").toString());//垂直刻度 - result.append(query.value("start_frequency").toString());//起始频率 + result.append(query.value("start_frequency").toString());//起始频率 30 result.append(query.value("start_frequency_unit").toString());//起始频率单位 result.append(query.value("end_frequency").toString());//终止频率 result.append(query.value("end_frequency_unit").toString());//终止频率单位 @@ -4677,16 +4717,17 @@ result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); result.append(query.value("frequency_display").toString());//频率显示(频谱分析仪) 55 - result.append(query.value("sweep_width").toString());//扫频宽度(频谱分析仪) + result.append(query.value("sweep_width_demo").toString());//扫频宽度(频谱分析仪) result.append(query.value("middle_frequency_width").toString());//中频宽度(频谱分析仪) result.append(query.value("middle_conversion_deviation").toString());//中频带宽转换偏差(频谱分析仪) result.append(query.value("reference_level").toString());//参考电平(频谱分析仪) - result.append(query.value("vertical_scale").toString());//垂直刻度(频谱分析仪) + result.append(query.value("vertical_scale_demo").toString());//垂直刻度(频谱分析仪) result.append(query.value("input_frequency").toString());//输入频响(频谱分析仪) result.append(query.value("average_noise_level").toString());//平均噪声电平(频谱分析仪) result.append(query.value("harmonic_distortion").toString());//谐波失真(频谱分析仪)/(低频信号源)/(S参数) result.append(query.value("input_attenuation").toString());//输入衰减(频谱分析仪) result.append(query.value("gain_compression").toString());//1dB增益压缩点(频谱分析仪) + result.append(query.value("calibrating_signal").toString());//校准信号 resultData.append(result); } } else { @@ -4718,7 +4759,7 @@ VerificationItem = "频率显示"; //添加列头 QStringList head; - head <<"序号"<<"检定项目"<<"标称值"<<"标称值单位"<<"扫频宽度"<<"分辨力带宽"<<"水平分辨率"<<"测量值1"<<"测量值2"<<"测量值3" + head <<"序号"<<"检定项目"<<"标称值"<<"扫频宽度"<<"分辨力带宽"<<"水平分辨率"<<"测量值1"<<"测量值2"<<"测量值3" <<"指标下限"<<"均值"<<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 @@ -4733,7 +4774,7 @@ Data.append("");//测量值1 Data.append("");//测量值2 Data.append("");//测量值3 - double index_lower = row[3].toInt()-(row[3].toInt()*row[15].toDouble()+row[16].toDouble()* 0.01 * row[5].toInt()+ row[17].toDouble() * 0.01 * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); + double index_lower = row[3].toInt()-(row[3].toInt()*row[15].toDouble()+row[16].toDouble()* 0.01 * row[5].toInt()+ row[17].toDouble() * 0.01 * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); Data.append(QString::number(index_lower) + row[4]);//指标下限 Data.append("");//均值 double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() + row[16].toDouble() * 0.01 * row[5].toInt() +row[17].toDouble() * 0.01 * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); @@ -4744,7 +4785,7 @@ VerificationItem = "扫频宽度"; //添加列头 QStringList head; - head <<"序号"<<"检定项目"<<"标称值"<<"标称值单位"<<"水平分辨率"<<"fl1" + head <<"序号"<<"检定项目"<<"标称值"<<"水平分辨率"<<"fl1" <<"fr1"<<"fl2"<<"fr2"<<"fl3"<<"fr3"<<"指标下限"<<"均值"<<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 @@ -4773,7 +4814,7 @@ VerificationItem = "中频带宽"; //添加列头 QStringList head; - head <<"序号"<<"检定项目"<<"标称值"<<"标称值单位"<<"fl1" + head <<"序号"<<"检定项目"<<"标称值"<<"fl1" <<"fr1"<<"△f1"<<"fl2"<<"fr2"<<"△f2"<<"fl3"<<"fr3"<<"△f3"<<"指标下限"<<"均值"<<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 @@ -4781,7 +4822,7 @@ Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]+ row[4]);//标称值 - Data.append(row[4]);//标称值单位 需要隐藏 +// Data.append(row[4]);//标称值单位 需要隐藏 Data.append("");//fl1 Data.append("");//fr1 Data.append("");//△f1 @@ -4886,7 +4927,7 @@ VerificationItem = "平均噪声电平"; //添加列头 QStringList head; - head <<"序号"<<"检定项目"<<"起始频率"<<"终止频率"<<"测量值"<<"修正后结果" + head <<"序号"<<"检定项目"<<"起始频率"<<"终止频率"<<"测量值"<<"修正值"<<"修正后结果" <<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 @@ -4920,7 +4961,7 @@ Data.append("");//三次谐波失真 Data.append("");//四次谐波幅度 Data.append("");//四次谐波失真 - Data.append(row[46] + row[47]);//二次谐波失真指标上限 + Data.append(row[46] + row[47]);//二次谐波失真指标上限 Data.append(row[48] + row[49]);//三次谐波失真指标上限 Data.append(row[50] + row[51]);//四次谐波失真指标上限 Data.append("");//结论 @@ -4999,7 +5040,7 @@ DataMapList.insert("中频带宽",IntermediateFrequencyBandwidthList); }; if(ConversionDeviationList.count()!=0){ - DataMapList.insert("扫频宽度转换偏差",ConversionDeviationList); + DataMapList.insert("中频带宽转换偏差",ConversionDeviationList); }; if(ReferencelevelList.count()!=0){ DataMapList.insert("参考电平",ReferencelevelList); @@ -5027,6 +5068,7 @@ }; return DataMapList; } + //保留5位小数,参数1:值,参数2:保留几位有效数字 QString BaseCommonApi::formatDoubleWithEffectiveDigits(double value, int effectiveDigits) { // 转换 double 为 QString 并保留足够的位数来避免精度损失 @@ -5051,6 +5093,107 @@ return QString::number(value, 'f', decimalPlaces); // 使用固定点表示法,并指定小数位数 } +//【结果保存】频谱分析仪 +bool InsertDeviceMeasureDataSpectrumAnalyzer(DeviceMeasureDataSpectrumAnalyzer analyzer) +{ + QSqlQuery query; + query.prepare("INSERT INTO biz_business_device_measure_data_spectrum_analyzer " + " (id, data_id, data_type, nominal_value, unit, sweep_width, sweep_width_unit, horizontal_resolution, horizontal_resolution_unit," + " resolution_bandwidth, resolution_bandwidth_unit, one_value, two_value, three_value, four_value, five_value, six_value, seven_value," + " eight_value, nine_value, ten_value, upper_index_twice, upper_index_twice_unit, upper_index_thrice, upper_index_thrice_unit, " + " upper_index_quartic, upper_index_quartic_unit, lower_index, lower_index_unit, average_value, upper_index, upper_index_unit, " + " conclusion, convert_deviation, lower_convert_deviation, upper_convert_deviation, standard_attenuator_attenuation, " + " standard_attenuator_attenuation_unit, signal_source_amplitude, signal_source_amplitude_unit, vertical_scale, frequency, " + " frequency_unit, input_frequency, start_frequency, start_frequency_unit, end_frequency, end_frequency_unit, revised_result, " + " input_attenuator, input_attenuator_unit, input_attenuator_conversion_effect, spectrum_level, spectrum_level_unit, gain_compression, " + " exceed_mark, exceed_mark_one, exceed_mark_two, measure_result, measure_result_unit, technical_index, technical_index_left, " + " technical_index_right, corrected_value, type_value, create_time, update_time ) VALUES ( :id, :data_id, :data_type, :nominal_value, " + " :unit, :sweep_width, :sweep_width_unit, :horizontal_resolution, :horizontal_resolution_unit, :resolution_bandwidth, :resolution_bandwidth_unit," + " :one_value, :two_value, :three_value, :four_value, :five_value, :six_value, :seven_value, :eight_value, :nine_value, :ten_value, :upper_index_twice," + " :upper_index_twice_unit, :upper_index_thrice, :upper_index_thrice_unit, :upper_index_quartic, :upper_index_quartic_unit, :lower_index, " + " :lower_index_unit, :average_value, :upper_index, :upper_index_unit, :conclusion, :convert_deviation, :lower_convert_deviation," + " :upper_convert_deviation, :standard_attenuator_attenuation, :standard_attenuator_attenuation_unit, :signal_source_amplitude, " + " :signal_source_amplitude_unit, :vertical_scale, :frequency, :frequency_unit, :input_frequency, :start_frequency, :start_frequency_unit, " + " :end_frequency, :end_frequency_unit, :revised_result, :input_attenuator, :input_attenuator_unit, :input_attenuator_conversion_effect, " + " :spectrum_level, :spectrum_level_unit, :gain_compression, :exceed_mark, :exceed_mark_one, :exceed_mark_two, :measure_result, " + " :measure_result_unit, :technical_index, :technical_index_left, :technical_index_right, :corrected_value, :type_value, :create_time, " + " :update_time );"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":id", analyzer.id); + query.bindValue(":data_id", analyzer.data_id); + query.bindValue(":data_type", analyzer.data_type); + query.bindValue(":nominal_value", analyzer.nominal_value); + query.bindValue(":unit", analyzer.unit); + query.bindValue(":sweep_width", analyzer.sweep_width); + query.bindValue(":sweep_width_unit", analyzer.sweep_width_unit); + query.bindValue(":horizontal_resolution", analyzer.horizontal_resolution); + query.bindValue(":horizontal_resolution_unit", analyzer.horizontal_resolution_unit); + query.bindValue(":resolution_bandwidth", analyzer.resolution_bandwidth); + query.bindValue(":resolution_bandwidth_unit", analyzer.resolution_bandwidth_unit); + query.bindValue(":one_value", analyzer.one_value); + query.bindValue(":two_value", analyzer.two_value); + query.bindValue(":three_value", analyzer.three_value); + query.bindValue(":four_value", analyzer.four_value); + query.bindValue(":five_value", analyzer.five_value); + query.bindValue(":six_value", analyzer.six_value); + query.bindValue(":seven_value", analyzer.seven_value); + query.bindValue(":eight_value", analyzer.eight_value); + query.bindValue(":nine_value", analyzer.nine_value); + query.bindValue(":ten_value", analyzer.ten_value); + query.bindValue(":upper_index_twice", analyzer.upper_index_twice); + query.bindValue(":upper_index_twice_unit", analyzer.upper_index_twice_unit); + query.bindValue(":upper_index_thrice", analyzer.upper_index_thrice); + query.bindValue(":upper_index_thrice_unit", analyzer.upper_index_thrice_unit); + query.bindValue(":upper_index_quartic", analyzer.upper_index_quartic); + query.bindValue(":upper_index_quartic_unit", analyzer.upper_index_quartic_unit); + query.bindValue(":lower_index", analyzer.lower_index); + query.bindValue(":lower_index_unit", analyzer.lower_index_unit); + query.bindValue(":average_value", analyzer.average_value); + query.bindValue(":upper_index", analyzer.upper_index); + query.bindValue(":upper_index_unit", analyzer.upper_index_unit); + query.bindValue(":conclusion", analyzer.conclusion); + query.bindValue(":convert_deviation", analyzer.convert_deviation); + query.bindValue(":lower_convert_deviation", analyzer.lower_convert_deviation); + query.bindValue(":upper_convert_deviation", analyzer.upper_convert_deviation); + query.bindValue(":standard_attenuator_attenuation", analyzer.standard_attenuator_attenuation); + query.bindValue(":standard_attenuator_attenuation_unit", analyzer.standard_attenuator_attenuation_unit); + query.bindValue(":signal_source_amplitude", analyzer.signal_source_amplitude); + query.bindValue(":signal_source_amplitude_unit", analyzer.signal_source_amplitude_unit); + query.bindValue(":vertical_scale", analyzer.vertical_scale); + query.bindValue(":frequency", analyzer.frequency); + query.bindValue(":frequency_unit", analyzer.frequency_unit); + query.bindValue(":input_frequency", analyzer.input_frequency); + query.bindValue(":start_frequency", analyzer.start_frequency); + query.bindValue(":start_frequency_unit", analyzer.start_frequency_unit); + query.bindValue(":end_frequency", analyzer.end_frequency); + query.bindValue(":end_frequency_unit", analyzer.end_frequency_unit); + query.bindValue(":revised_result", analyzer.revised_result); + query.bindValue(":input_attenuator", analyzer.input_attenuator); + query.bindValue(":input_attenuator_unit", analyzer.input_attenuator_unit); + query.bindValue(":input_attenuator_conversion_effect", analyzer.input_attenuator_conversion_effect); + query.bindValue(":spectrum_level", analyzer.spectrum_level); + query.bindValue(":spectrum_level_unit", analyzer.spectrum_level_unit); + query.bindValue(":gain_compression", analyzer.gain_compression); + query.bindValue(":exceed_mark", analyzer.exceed_mark); + query.bindValue(":exceed_mark_one", analyzer.exceed_mark_one); + query.bindValue(":exceed_mark_two", analyzer.exceed_mark_two); + query.bindValue(":measure_result", analyzer.measure_result); + query.bindValue(":measure_result_unit", analyzer.measure_result_unit); + query.bindValue(":technical_index", analyzer.technical_index); + query.bindValue(":technical_index_left", analyzer.technical_index_left); + query.bindValue(":technical_index_right", analyzer.technical_index_right); + query.bindValue(":corrected_value", analyzer.corrected_value); + query.bindValue(":type_value", analyzer.type_value); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); + bool isSuccess = query.exec(); + if (!isSuccess) { + qDebug() << "Insert data failed: " << query.lastError().text(); + } + return isSuccess; +} + + //【查询】角色 根据分类id QList getDeviceRoleBydeviceId(QString cateory_id) { @@ -5426,3 +5569,66 @@ }; return DataMapList; } +//【保存】信号发生器 +bool InsertDeviceMeasureDataSignalGenerator(DeviceMeasureDataSignalGenerator generator) +{ + QSqlQuery query; + query.prepare("INSERT INTO biz_business_device_measure_data_signal_generator " + "( id, data_id, data_type, nominal_value, unit, upper_index, upper_thd, lower_index, measure_value, measure_value_unit," + " relative_error, urel, frequency, frequency_unit, power, power_unit, amplitude, amplitude_unit, high_pass_filter, " + "high_pass_filter_unit, lower_pass_filter, lower_pass_filter_unit, modulation_rate, modulation_rate_unit, thd, upper_index_symbol, " + "upper_index_unit, remain_amplitude_modulation,harmonic_number, fundamental_amplitude, fundamental_amplitude_unit, " + "harmonic_amplitude, harmonic_amplitude_unit, offset_frequency, offset_frequency_unit, exceed_mark, exceed_mark_one, " + "create_time, update_time ) VALUES ( :id, :data_id, :data_type, :nominal_value, :unit, :upper_index, :upper_thd, :lower_index, " + ":measure_value, :measure_value_unit, :relative_error, :urel, :frequency, :frequency_unit, :power, :power_unit, :amplitude," + " :amplitude_unit, :high_pass_filter, :high_pass_filter_unit, :lower_pass_filter, :lower_pass_filter_unit, :modulation_rate, :modulation_rate_unit," + " :thd, :upper_index_symbol, :upper_index_unit, :remain_amplitude_modulation, :harmonic_number, :fundamental_amplitude," + " :fundamental_amplitude_unit, :harmonic_amplitude, :harmonic_amplitude_unit, :offset_frequency, :offset_frequency_unit," + " :exceed_mark, :exceed_mark_one, :create_time, :update_time );"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":id", generator.id); + query.bindValue(":data_id", generator.data_id); + query.bindValue(":data_type", generator.data_type); + query.bindValue(":nominal_value", generator.nominal_value); + query.bindValue(":unit", generator.unit); + query.bindValue(":upper_index", generator.upper_index); + query.bindValue(":upper_thd", generator.upper_thd); + query.bindValue(":lower_index", generator.lower_index); + query.bindValue(":measure_value", generator.measure_value); + query.bindValue(":measure_value_unit", generator.measure_value_unit); + query.bindValue(":relative_error", generator.relative_error); + query.bindValue(":urel", generator.urel); + query.bindValue(":frequency", generator.frequency); + query.bindValue(":frequency_unit", generator.frequency_unit); + query.bindValue(":power", generator.power); + query.bindValue(":power_unit", generator.power_unit); + query.bindValue(":amplitude", generator.amplitude); + query.bindValue(":amplitude_unit", generator.amplitude_unit); + query.bindValue(":high_pass_filter", generator.high_pass_filter); + query.bindValue(":high_pass_filter_unit", generator.high_pass_filter_unit); + query.bindValue(":lower_pass_filter", generator.lower_pass_filter); + query.bindValue(":lower_pass_filter_unit", generator.lower_pass_filter_unit); + query.bindValue(":modulation_rate", generator.modulation_rate); + query.bindValue(":modulation_rate_unit", generator.modulation_rate_unit); + query.bindValue(":thd", generator.thd); + query.bindValue(":upper_index_symbol", generator.upper_index_symbol); + query.bindValue(":upper_index_unit", generator.upper_index_unit); + query.bindValue(":remain_amplitude_modulation", generator.remain_amplitude_modulation); + query.bindValue(":harmonic_number", generator.harmonic_number); + query.bindValue(":fundamental_amplitude", generator.fundamental_amplitude); + query.bindValue(":fundamental_amplitude_unit", generator.fundamental_amplitude_unit); + query.bindValue(":harmonic_amplitude", generator.harmonic_amplitude); + query.bindValue(":harmonic_amplitude_unit", generator.harmonic_amplitude_unit); + query.bindValue(":offset_frequency", generator.offset_frequency); + query.bindValue(":offset_frequency_unit", generator.offset_frequency_unit); + query.bindValue(":exceed_mark", generator.exceed_mark); + query.bindValue(":exceed_mark_one", generator.exceed_mark_one); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); + bool isSuccess = query.exec(); + if (!isSuccess) { + qDebug() << "Insert data failed: " << query.lastError().text(); + } + return isSuccess; +} + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index d524bcf..dcc1279 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -914,6 +914,10 @@ case 5: //二等铂电阻温度计标准装置 DataList=BaseCommonApi::getDeviceMeasureItemDataResistanceThermometer(deviceCatoryName,CliTable[0].id,HeadList); + case 9: + //频谱分析仪装置 + DataList=BaseCommonApi::getDeviceMeasureItemDataSpectrumAnalyzer(deviceCatoryName,CliTable[0].id,HeadList); + break; case 13: //示波器标准装置 DataList=BaseCommonApi::getDeviceOscilloscopeCalibration(deviceCatoryName,CliTable[0].id,HeadList); @@ -1952,82 +1956,118 @@ qDebug() << "Query execution failed: " << query.lastError().text(); } break; - case 2: - if(equipment_item_category_id.isNull() || equipment_item_category_id.isEmpty()) - { - query.prepare("SELECT DISTINCT data_type FROM biz_business_device_measure_item_data_dc_power bbdmiddp " - " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmiddp.item_id"); - }else { - query.prepare("SELECT DISTINCT data_type FROM biz_business_device_measure_item_data_dc_power bbdmiddp " - " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmiddp.item_id " - "WHERE bbdmii.item_category_id = :equipment_item_category_id "); - } - query.bindValue(":equipment_item_category_id", equipment_item_category_id); - if (query.exec()) { - while (query.next()) { - Params param; - QString data_type = query.value("data_type").toString(); - switch (data_type.toInt()) { - case 1: - param.param = "电源电压调整率"; - break; - case 2: - param.param = "负载调整率"; - break; - case 3: - param.param = "电压示值误差"; - break; - case 4: - param.param = "电流示值误差(直接测量)"; - break; - case 5: - param.param = "电流示值误差(间接测量)"; - break; - case 6: - param.param = "纹波电压"; - break; - case 7: - param.param = "输出电压短期稳定性"; - break; + case 2: + if(equipment_item_category_id.isNull() || equipment_item_category_id.isEmpty()) + { + query.prepare("SELECT DISTINCT data_type FROM biz_business_device_measure_item_data_dc_power bbdmiddp " + " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmiddp.item_id"); + }else { + query.prepare("SELECT DISTINCT data_type FROM biz_business_device_measure_item_data_dc_power bbdmiddp " + " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmiddp.item_id " + "WHERE bbdmii.item_category_id = :equipment_item_category_id "); + } + query.bindValue(":equipment_item_category_id", equipment_item_category_id); + if (query.exec()) { + while (query.next()) { + Params param; + QString data_type = query.value("data_type").toString(); + switch (data_type.toInt()) { + case 1: + param.param = "电源电压调整率"; + break; + case 2: + param.param = "负载调整率"; + break; + case 3: + param.param = "电压示值误差"; + break; + case 4: + param.param = "电流示值误差(直接测量)"; + break; + case 5: + param.param = "电流示值误差(间接测量)"; + break; + case 6: + param.param = "纹波电压"; + break; + case 7: + param.param = "输出电压短期稳定性"; + break; + } + result.append(param); } + } + break; + case 4: { + bool isExit = false; + QString itemName; + if (!equipment_item_category_id.isNull() && !equipment_item_category_id.isEmpty()) { + for (int i = 0; i < standard_item.length(); i++) { + if (equipment_item_category_id.contains(standard_item[i].id)) { + isExit = true; + itemName = standard_item[i].category_name; + break; // 找到匹配项后退出循环 + } + } + if (isExit && itemName.contains("一般压力表")) { + Params param; + param.param = "示值误差/回程误差/轻敲位移"; result.append(param); } - } - break; - case 4: - bool isExit = false; - QString itemName = NULL; - if(!(equipment_item_category_id.isNull() || equipment_item_category_id.isEmpty())) - { - for(int i = 0;i < standard_item.length();i++){ - if (equipment_item_category_id.contains(standard_item[i].id)){ - isExit = true; - itemName = standard_item[i].category_name; - } - } - if(isExit && itemName.contains("一般压力表")){ - Params param; - param.param = "示值误差/回程误差/轻敲位移"; - result.append(param); - } - }else { - Params param; - param.param = "示值误差/回程误差/轻敲位移"; - Params param1; - param1.param = "示值误差"; - Params param2; - param2.param = "回程误差"; - Params param3; - param3.param = "轻敲位移"; - QList paramList; - paramList.append(param1); - paramList.append(param2); - paramList.append(param3); - for(int i =0;i paramList; + paramList.append(param1); + paramList.append(param2); + paramList.append(param3); + for (int i = 0; i < paramList.length(); i++) { + result.append(paramList[i]); } - break; + } + break; // 确保每个case结束都有break语句 + } + case 5:{ + if(!equipment_item_category_id.isNull() || equipment_item_category_id.isEmpty()) + { + query.prepare("SELECT DISTINCT bbdmidrt.data_type,bbdmii.item_category_name FROM biz_business_device_measure_item_data_resistance_thermometer bbdmidrt" + " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmidrt.item_id" + " WHERE bbdmii.item_category_id = :equipment_item_category_id "); + query.bindValue(":equipment_item_category_id", equipment_item_category_id); + if (query.exec()) { + while (query.next()) { + Params param; + param.param = query.value("data_type").toString(); + param.itemCategoryName = query.value("item_category_name").toString(); + if(param.param == "1" && param.itemCategoryName.contains("恒温槽")) + param.param = "波动性"; + else if (param.param == "2" && param.itemCategoryName.contains("恒温槽")) { + param.param = "均匀性"; + }else if (param.param == "1" && param.itemCategoryName.contains("工业铂铜热电阻")) { + param.param = "允差"; + }else if (param.param == "1" && param.itemCategoryName.contains("工业铂铜热电阻")) { + param.param = "结果表格"; + } + result.append(param); + } + }else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + break; + case 9: + { + query.prepare(""); + } + } + break; + } + } return result; }; @@ -4610,9 +4650,9 @@ resultData.clear(); QSqlQuery query; - query.prepare("SELECT bbdmidsa.*,bbdmii.frequency_display,bbdmii.sweep_width,bbdmii.middle_frequency_width," - " bbdmii.middle_conversion_deviation,bbdmii.reference_level,bbdmii.vertical_scale,bbdmii.input_frequency," - " bbdmii.average_noise_level,bbdmii.harmonic_distortion,bbdmii.input_attenuation,bbdmii.gain_compression " + query.prepare("SELECT bbdmidsa.*,bbdmii.frequency_display,bbdmii.sweep_width as sweep_width_demo,bbdmii.middle_frequency_width," + " bbdmii.middle_conversion_deviation,bbdmii.reference_level,bbdmii.vertical_scale as vertical_scale_demo,bbdmii.input_frequency," + " bbdmii.average_noise_level,bbdmii.harmonic_distortion,bbdmii.input_attenuation,bbdmii.gain_compression,bbdmii.calibrating_signal " " FROM biz_business_device_measure_item_data_spectrum_analyzer bbdmidsa " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmidsa.item_id" " WHERE bbdmidsa.item_id = :itemId " @@ -4626,7 +4666,7 @@ result.append(query.value("data_type").toString());//检定项数据类型(一个检定项中区分两个表格)(字典code) result.append(query.value("nominal_value").toString());//标称值 result.append(query.value("unit").toString());//标称值单位 - result.append(query.value("sweep_width").toString());//扫频宽度 + result.append(query.value("sweep_width").toString());//扫频宽度 5 result.append(query.value("sweep_width_unit").toString());//扫频宽度单位 result.append(query.value("horizontal_resolution").toString());//水平分辨率 result.append(query.value("horizontal_resolution_unit").toString());//水平分辨率单位 @@ -4651,7 +4691,7 @@ result.append(query.value("signal_source_amplitude").toString());//信号源幅度 result.append(query.value("signal_source_amplitude_unit").toString());//信号源幅度单位 result.append(query.value("vertical_scale").toString());//垂直刻度 - result.append(query.value("start_frequency").toString());//起始频率 + result.append(query.value("start_frequency").toString());//起始频率 30 result.append(query.value("start_frequency_unit").toString());//起始频率单位 result.append(query.value("end_frequency").toString());//终止频率 result.append(query.value("end_frequency_unit").toString());//终止频率单位 @@ -4677,16 +4717,17 @@ result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); result.append(query.value("frequency_display").toString());//频率显示(频谱分析仪) 55 - result.append(query.value("sweep_width").toString());//扫频宽度(频谱分析仪) + result.append(query.value("sweep_width_demo").toString());//扫频宽度(频谱分析仪) result.append(query.value("middle_frequency_width").toString());//中频宽度(频谱分析仪) result.append(query.value("middle_conversion_deviation").toString());//中频带宽转换偏差(频谱分析仪) result.append(query.value("reference_level").toString());//参考电平(频谱分析仪) - result.append(query.value("vertical_scale").toString());//垂直刻度(频谱分析仪) + result.append(query.value("vertical_scale_demo").toString());//垂直刻度(频谱分析仪) result.append(query.value("input_frequency").toString());//输入频响(频谱分析仪) result.append(query.value("average_noise_level").toString());//平均噪声电平(频谱分析仪) result.append(query.value("harmonic_distortion").toString());//谐波失真(频谱分析仪)/(低频信号源)/(S参数) result.append(query.value("input_attenuation").toString());//输入衰减(频谱分析仪) result.append(query.value("gain_compression").toString());//1dB增益压缩点(频谱分析仪) + result.append(query.value("calibrating_signal").toString());//校准信号 resultData.append(result); } } else { @@ -4718,7 +4759,7 @@ VerificationItem = "频率显示"; //添加列头 QStringList head; - head <<"序号"<<"检定项目"<<"标称值"<<"标称值单位"<<"扫频宽度"<<"分辨力带宽"<<"水平分辨率"<<"测量值1"<<"测量值2"<<"测量值3" + head <<"序号"<<"检定项目"<<"标称值"<<"扫频宽度"<<"分辨力带宽"<<"水平分辨率"<<"测量值1"<<"测量值2"<<"测量值3" <<"指标下限"<<"均值"<<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 @@ -4733,7 +4774,7 @@ Data.append("");//测量值1 Data.append("");//测量值2 Data.append("");//测量值3 - double index_lower = row[3].toInt()-(row[3].toInt()*row[15].toDouble()+row[16].toDouble()* 0.01 * row[5].toInt()+ row[17].toDouble() * 0.01 * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); + double index_lower = row[3].toInt()-(row[3].toInt()*row[15].toDouble()+row[16].toDouble()* 0.01 * row[5].toInt()+ row[17].toDouble() * 0.01 * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); Data.append(QString::number(index_lower) + row[4]);//指标下限 Data.append("");//均值 double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() + row[16].toDouble() * 0.01 * row[5].toInt() +row[17].toDouble() * 0.01 * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); @@ -4744,7 +4785,7 @@ VerificationItem = "扫频宽度"; //添加列头 QStringList head; - head <<"序号"<<"检定项目"<<"标称值"<<"标称值单位"<<"水平分辨率"<<"fl1" + head <<"序号"<<"检定项目"<<"标称值"<<"水平分辨率"<<"fl1" <<"fr1"<<"fl2"<<"fr2"<<"fl3"<<"fr3"<<"指标下限"<<"均值"<<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 @@ -4773,7 +4814,7 @@ VerificationItem = "中频带宽"; //添加列头 QStringList head; - head <<"序号"<<"检定项目"<<"标称值"<<"标称值单位"<<"fl1" + head <<"序号"<<"检定项目"<<"标称值"<<"fl1" <<"fr1"<<"△f1"<<"fl2"<<"fr2"<<"△f2"<<"fl3"<<"fr3"<<"△f3"<<"指标下限"<<"均值"<<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 @@ -4781,7 +4822,7 @@ Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]+ row[4]);//标称值 - Data.append(row[4]);//标称值单位 需要隐藏 +// Data.append(row[4]);//标称值单位 需要隐藏 Data.append("");//fl1 Data.append("");//fr1 Data.append("");//△f1 @@ -4886,7 +4927,7 @@ VerificationItem = "平均噪声电平"; //添加列头 QStringList head; - head <<"序号"<<"检定项目"<<"起始频率"<<"终止频率"<<"测量值"<<"修正后结果" + head <<"序号"<<"检定项目"<<"起始频率"<<"终止频率"<<"测量值"<<"修正值"<<"修正后结果" <<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 @@ -4920,7 +4961,7 @@ Data.append("");//三次谐波失真 Data.append("");//四次谐波幅度 Data.append("");//四次谐波失真 - Data.append(row[46] + row[47]);//二次谐波失真指标上限 + Data.append(row[46] + row[47]);//二次谐波失真指标上限 Data.append(row[48] + row[49]);//三次谐波失真指标上限 Data.append(row[50] + row[51]);//四次谐波失真指标上限 Data.append("");//结论 @@ -4999,7 +5040,7 @@ DataMapList.insert("中频带宽",IntermediateFrequencyBandwidthList); }; if(ConversionDeviationList.count()!=0){ - DataMapList.insert("扫频宽度转换偏差",ConversionDeviationList); + DataMapList.insert("中频带宽转换偏差",ConversionDeviationList); }; if(ReferencelevelList.count()!=0){ DataMapList.insert("参考电平",ReferencelevelList); @@ -5027,6 +5068,7 @@ }; return DataMapList; } + //保留5位小数,参数1:值,参数2:保留几位有效数字 QString BaseCommonApi::formatDoubleWithEffectiveDigits(double value, int effectiveDigits) { // 转换 double 为 QString 并保留足够的位数来避免精度损失 @@ -5051,6 +5093,107 @@ return QString::number(value, 'f', decimalPlaces); // 使用固定点表示法,并指定小数位数 } +//【结果保存】频谱分析仪 +bool InsertDeviceMeasureDataSpectrumAnalyzer(DeviceMeasureDataSpectrumAnalyzer analyzer) +{ + QSqlQuery query; + query.prepare("INSERT INTO biz_business_device_measure_data_spectrum_analyzer " + " (id, data_id, data_type, nominal_value, unit, sweep_width, sweep_width_unit, horizontal_resolution, horizontal_resolution_unit," + " resolution_bandwidth, resolution_bandwidth_unit, one_value, two_value, three_value, four_value, five_value, six_value, seven_value," + " eight_value, nine_value, ten_value, upper_index_twice, upper_index_twice_unit, upper_index_thrice, upper_index_thrice_unit, " + " upper_index_quartic, upper_index_quartic_unit, lower_index, lower_index_unit, average_value, upper_index, upper_index_unit, " + " conclusion, convert_deviation, lower_convert_deviation, upper_convert_deviation, standard_attenuator_attenuation, " + " standard_attenuator_attenuation_unit, signal_source_amplitude, signal_source_amplitude_unit, vertical_scale, frequency, " + " frequency_unit, input_frequency, start_frequency, start_frequency_unit, end_frequency, end_frequency_unit, revised_result, " + " input_attenuator, input_attenuator_unit, input_attenuator_conversion_effect, spectrum_level, spectrum_level_unit, gain_compression, " + " exceed_mark, exceed_mark_one, exceed_mark_two, measure_result, measure_result_unit, technical_index, technical_index_left, " + " technical_index_right, corrected_value, type_value, create_time, update_time ) VALUES ( :id, :data_id, :data_type, :nominal_value, " + " :unit, :sweep_width, :sweep_width_unit, :horizontal_resolution, :horizontal_resolution_unit, :resolution_bandwidth, :resolution_bandwidth_unit," + " :one_value, :two_value, :three_value, :four_value, :five_value, :six_value, :seven_value, :eight_value, :nine_value, :ten_value, :upper_index_twice," + " :upper_index_twice_unit, :upper_index_thrice, :upper_index_thrice_unit, :upper_index_quartic, :upper_index_quartic_unit, :lower_index, " + " :lower_index_unit, :average_value, :upper_index, :upper_index_unit, :conclusion, :convert_deviation, :lower_convert_deviation," + " :upper_convert_deviation, :standard_attenuator_attenuation, :standard_attenuator_attenuation_unit, :signal_source_amplitude, " + " :signal_source_amplitude_unit, :vertical_scale, :frequency, :frequency_unit, :input_frequency, :start_frequency, :start_frequency_unit, " + " :end_frequency, :end_frequency_unit, :revised_result, :input_attenuator, :input_attenuator_unit, :input_attenuator_conversion_effect, " + " :spectrum_level, :spectrum_level_unit, :gain_compression, :exceed_mark, :exceed_mark_one, :exceed_mark_two, :measure_result, " + " :measure_result_unit, :technical_index, :technical_index_left, :technical_index_right, :corrected_value, :type_value, :create_time, " + " :update_time );"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":id", analyzer.id); + query.bindValue(":data_id", analyzer.data_id); + query.bindValue(":data_type", analyzer.data_type); + query.bindValue(":nominal_value", analyzer.nominal_value); + query.bindValue(":unit", analyzer.unit); + query.bindValue(":sweep_width", analyzer.sweep_width); + query.bindValue(":sweep_width_unit", analyzer.sweep_width_unit); + query.bindValue(":horizontal_resolution", analyzer.horizontal_resolution); + query.bindValue(":horizontal_resolution_unit", analyzer.horizontal_resolution_unit); + query.bindValue(":resolution_bandwidth", analyzer.resolution_bandwidth); + query.bindValue(":resolution_bandwidth_unit", analyzer.resolution_bandwidth_unit); + query.bindValue(":one_value", analyzer.one_value); + query.bindValue(":two_value", analyzer.two_value); + query.bindValue(":three_value", analyzer.three_value); + query.bindValue(":four_value", analyzer.four_value); + query.bindValue(":five_value", analyzer.five_value); + query.bindValue(":six_value", analyzer.six_value); + query.bindValue(":seven_value", analyzer.seven_value); + query.bindValue(":eight_value", analyzer.eight_value); + query.bindValue(":nine_value", analyzer.nine_value); + query.bindValue(":ten_value", analyzer.ten_value); + query.bindValue(":upper_index_twice", analyzer.upper_index_twice); + query.bindValue(":upper_index_twice_unit", analyzer.upper_index_twice_unit); + query.bindValue(":upper_index_thrice", analyzer.upper_index_thrice); + query.bindValue(":upper_index_thrice_unit", analyzer.upper_index_thrice_unit); + query.bindValue(":upper_index_quartic", analyzer.upper_index_quartic); + query.bindValue(":upper_index_quartic_unit", analyzer.upper_index_quartic_unit); + query.bindValue(":lower_index", analyzer.lower_index); + query.bindValue(":lower_index_unit", analyzer.lower_index_unit); + query.bindValue(":average_value", analyzer.average_value); + query.bindValue(":upper_index", analyzer.upper_index); + query.bindValue(":upper_index_unit", analyzer.upper_index_unit); + query.bindValue(":conclusion", analyzer.conclusion); + query.bindValue(":convert_deviation", analyzer.convert_deviation); + query.bindValue(":lower_convert_deviation", analyzer.lower_convert_deviation); + query.bindValue(":upper_convert_deviation", analyzer.upper_convert_deviation); + query.bindValue(":standard_attenuator_attenuation", analyzer.standard_attenuator_attenuation); + query.bindValue(":standard_attenuator_attenuation_unit", analyzer.standard_attenuator_attenuation_unit); + query.bindValue(":signal_source_amplitude", analyzer.signal_source_amplitude); + query.bindValue(":signal_source_amplitude_unit", analyzer.signal_source_amplitude_unit); + query.bindValue(":vertical_scale", analyzer.vertical_scale); + query.bindValue(":frequency", analyzer.frequency); + query.bindValue(":frequency_unit", analyzer.frequency_unit); + query.bindValue(":input_frequency", analyzer.input_frequency); + query.bindValue(":start_frequency", analyzer.start_frequency); + query.bindValue(":start_frequency_unit", analyzer.start_frequency_unit); + query.bindValue(":end_frequency", analyzer.end_frequency); + query.bindValue(":end_frequency_unit", analyzer.end_frequency_unit); + query.bindValue(":revised_result", analyzer.revised_result); + query.bindValue(":input_attenuator", analyzer.input_attenuator); + query.bindValue(":input_attenuator_unit", analyzer.input_attenuator_unit); + query.bindValue(":input_attenuator_conversion_effect", analyzer.input_attenuator_conversion_effect); + query.bindValue(":spectrum_level", analyzer.spectrum_level); + query.bindValue(":spectrum_level_unit", analyzer.spectrum_level_unit); + query.bindValue(":gain_compression", analyzer.gain_compression); + query.bindValue(":exceed_mark", analyzer.exceed_mark); + query.bindValue(":exceed_mark_one", analyzer.exceed_mark_one); + query.bindValue(":exceed_mark_two", analyzer.exceed_mark_two); + query.bindValue(":measure_result", analyzer.measure_result); + query.bindValue(":measure_result_unit", analyzer.measure_result_unit); + query.bindValue(":technical_index", analyzer.technical_index); + query.bindValue(":technical_index_left", analyzer.technical_index_left); + query.bindValue(":technical_index_right", analyzer.technical_index_right); + query.bindValue(":corrected_value", analyzer.corrected_value); + query.bindValue(":type_value", analyzer.type_value); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); + bool isSuccess = query.exec(); + if (!isSuccess) { + qDebug() << "Insert data failed: " << query.lastError().text(); + } + return isSuccess; +} + + //【查询】角色 根据分类id QList getDeviceRoleBydeviceId(QString cateory_id) { @@ -5426,3 +5569,66 @@ }; return DataMapList; } +//【保存】信号发生器 +bool InsertDeviceMeasureDataSignalGenerator(DeviceMeasureDataSignalGenerator generator) +{ + QSqlQuery query; + query.prepare("INSERT INTO biz_business_device_measure_data_signal_generator " + "( id, data_id, data_type, nominal_value, unit, upper_index, upper_thd, lower_index, measure_value, measure_value_unit," + " relative_error, urel, frequency, frequency_unit, power, power_unit, amplitude, amplitude_unit, high_pass_filter, " + "high_pass_filter_unit, lower_pass_filter, lower_pass_filter_unit, modulation_rate, modulation_rate_unit, thd, upper_index_symbol, " + "upper_index_unit, remain_amplitude_modulation,harmonic_number, fundamental_amplitude, fundamental_amplitude_unit, " + "harmonic_amplitude, harmonic_amplitude_unit, offset_frequency, offset_frequency_unit, exceed_mark, exceed_mark_one, " + "create_time, update_time ) VALUES ( :id, :data_id, :data_type, :nominal_value, :unit, :upper_index, :upper_thd, :lower_index, " + ":measure_value, :measure_value_unit, :relative_error, :urel, :frequency, :frequency_unit, :power, :power_unit, :amplitude," + " :amplitude_unit, :high_pass_filter, :high_pass_filter_unit, :lower_pass_filter, :lower_pass_filter_unit, :modulation_rate, :modulation_rate_unit," + " :thd, :upper_index_symbol, :upper_index_unit, :remain_amplitude_modulation, :harmonic_number, :fundamental_amplitude," + " :fundamental_amplitude_unit, :harmonic_amplitude, :harmonic_amplitude_unit, :offset_frequency, :offset_frequency_unit," + " :exceed_mark, :exceed_mark_one, :create_time, :update_time );"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":id", generator.id); + query.bindValue(":data_id", generator.data_id); + query.bindValue(":data_type", generator.data_type); + query.bindValue(":nominal_value", generator.nominal_value); + query.bindValue(":unit", generator.unit); + query.bindValue(":upper_index", generator.upper_index); + query.bindValue(":upper_thd", generator.upper_thd); + query.bindValue(":lower_index", generator.lower_index); + query.bindValue(":measure_value", generator.measure_value); + query.bindValue(":measure_value_unit", generator.measure_value_unit); + query.bindValue(":relative_error", generator.relative_error); + query.bindValue(":urel", generator.urel); + query.bindValue(":frequency", generator.frequency); + query.bindValue(":frequency_unit", generator.frequency_unit); + query.bindValue(":power", generator.power); + query.bindValue(":power_unit", generator.power_unit); + query.bindValue(":amplitude", generator.amplitude); + query.bindValue(":amplitude_unit", generator.amplitude_unit); + query.bindValue(":high_pass_filter", generator.high_pass_filter); + query.bindValue(":high_pass_filter_unit", generator.high_pass_filter_unit); + query.bindValue(":lower_pass_filter", generator.lower_pass_filter); + query.bindValue(":lower_pass_filter_unit", generator.lower_pass_filter_unit); + query.bindValue(":modulation_rate", generator.modulation_rate); + query.bindValue(":modulation_rate_unit", generator.modulation_rate_unit); + query.bindValue(":thd", generator.thd); + query.bindValue(":upper_index_symbol", generator.upper_index_symbol); + query.bindValue(":upper_index_unit", generator.upper_index_unit); + query.bindValue(":remain_amplitude_modulation", generator.remain_amplitude_modulation); + query.bindValue(":harmonic_number", generator.harmonic_number); + query.bindValue(":fundamental_amplitude", generator.fundamental_amplitude); + query.bindValue(":fundamental_amplitude_unit", generator.fundamental_amplitude_unit); + query.bindValue(":harmonic_amplitude", generator.harmonic_amplitude); + query.bindValue(":harmonic_amplitude_unit", generator.harmonic_amplitude_unit); + query.bindValue(":offset_frequency", generator.offset_frequency); + query.bindValue(":offset_frequency_unit", generator.offset_frequency_unit); + query.bindValue(":exceed_mark", generator.exceed_mark); + query.bindValue(":exceed_mark_one", generator.exceed_mark_one); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); + bool isSuccess = query.exec(); + if (!isSuccess) { + qDebug() << "Insert data failed: " << query.lastError().text(); + } + return isSuccess; +} + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index d6ac787..ab0924a 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -509,6 +509,7 @@ { public: QString param; + QString itemCategoryName; }; //检定程序管理-检定配置设备通信接口查询 @@ -1190,6 +1191,124 @@ QDateTime create_time; QDateTime update_time; }; +//结果保存-频谱分析仪-查询 +class DeviceMeasureDataSpectrumAnalyzer:public BaseClass +{ +public: + QString id; + QString data_id;//检定数据管理基础信息表id + //1:频率显示2:扫频宽度3:中频带宽4:中频带宽转换偏差5:参考电平6:垂直刻度7:输入频响 + //8:平均噪声电平9:谐波失真10:输入衰减11:1db增益压缩点12:校准信号 + QString data_type;//检定数据类型(一个检定数据中区分两个表格)(字典code) + QString nominal_value;//标称值 + QString unit;//标称值单位 + QString sweep_width;//扫频宽度 + QString sweep_width_unit;//扫频宽度单位 + QString horizontal_resolution;//水平分辨率 + QString horizontal_resolution_unit;//水平分辨率单位 + QString resolution_bandwidth;//分辨率带宽 + QString resolution_bandwidth_unit;//分辨率带宽单位 + QString one_value;//测量值1(频率显示/输入频响/1dB增益压缩点)/fl1(扫频宽度/中频带宽)/测量值(中频带宽转换偏差/参考电平/平均噪声电平/输入衰减)/基波幅度(谐波失真) (注:7个值的单位取标称值单位/指标上下限单位/固定前端页面补充单位) + QString two_value;//测量值2(频率显示/输入频响)/fr1(扫频宽度/中频带宽)/二次谐波幅度(谐波失真) + QString three_value;//测量值3(频率显示/输入频响)/fl2(扫频宽度/中频带宽)/二次谐波失真(谐波失真) + QString four_value;//fr2(扫频宽度)/三次谐波幅度(谐波失真) + QString five_value;//fl3(扫频宽度)/三次谐波失真(谐波失真) + QString six_value;//fr3(扫频宽度)/四次谐波幅度(谐波失真) + QString seven_value;//四次谐波失真(谐波失真) + QString eight_value;//Δf1 + QString nine_value;//Δf2 + QString ten_value;//Δf3 + QString upper_index_twice;//二次谐波失真指标上限 + QString upper_index_twice_unit;//二次谐波失真指标上限单位 + QString upper_index_thrice;//三次谐波失真指标上限 + QString upper_index_thrice_unit;//三次谐波失真指标上限单位 + QString upper_index_quartic;//四次谐波失真指标上限 + QString upper_index_quartic_unit;//四次谐波失真指标上限单位 + QString lower_index;//指标下限/下限(输入衰减/1dB增益压缩点) + QString lower_index_unit;//指标下限单位/下限单位(输入衰减/1dB增益压缩点) + QString average_value;//均值 + QString upper_index;//指标上限/上限(输入衰减/1dB增益压缩点) + QString upper_index_unit;//指标上限单位/上限单位(输入衰减/1dB增益压缩点) + QString conclusion;//结论 + QString convert_deviation;//转换偏差(单位固定前端页面补充) + QString lower_convert_deviation;//转换偏差下限(单位固定前端页面补充) + QString upper_convert_deviation;//转换偏差上限(单位固定前端页面补充) + QString standard_attenuator_attenuation;//标准衰减器衰减量 + QString standard_attenuator_attenuation_unit;//标准衰减器衰减量单位 + QString signal_source_amplitude;//信号源幅度 + QString signal_source_amplitude_unit;//信号源幅度单位 + QString vertical_scale;//垂直刻度 + QString frequency;//频率 + QString frequency_unit;//频率单位 + QString input_frequency;//输入频响(单位固定前端页面补充) + QString start_frequency;//起始频率 + QString start_frequency_unit;//起始频率单位 + QString end_frequency;//终止频率 + QString end_frequency_unit;//终止频率单位 + QString revised_result;//修正后结果 + QString input_attenuator;//输入衰减器 + QString input_attenuator_unit;//输入衰减器单位 + QString input_attenuator_conversion_effect;//输入衰减器转换影响 + QString spectrum_level;//参考电平 + QString spectrum_level_unit;//参考电平单位 + QString gain_compression;//增益压缩 + QString exceed_mark;//超出范围标*(1/0)/二次谐波失真(谐波失真) + QString exceed_mark_one;//超出范围标*(1/0) 三次谐波失真(谐波失真) + QString exceed_mark_two;//超出范围标*(1/0) 四次谐波失真(谐波失真) + QString measure_result;//测量结果(校准信号) + QString measure_result_unit;//测量结果单位(校准信号) + QString technical_index;//技术指标 + QString technical_index_left;//技术指标左 + QString technical_index_right;//技术指标右 + QString corrected_value;//修正值 + QString type_value;//类型 + QDateTime create_time; + QDateTime update_time; +}; +//结果保存-信号发生器-查询 +class DeviceMeasureDataSignalGenerator:public BaseClass +{ +public: + QString id;// + QString data_id;//检定数据管理基础信息表id + QString data_type;//检定数据类型(一个检定数据中区分两个表格)(字典code) + QString nominal_value;//标称值 + QString unit;//标称值单位 + QString upper_index;//指标上限 + QString upper_thd;//THD上限 + QString lower_index;//指标下限 + QString measure_value;//测量值 + QString measure_value_unit;//测量值单位 + QString relative_error;//相对误差 + QString urel;//U(k=2) + QString frequency;//频率 + QString frequency_unit;//频率单位 + QString power;//功率 + QString power_unit;//功率单位 + QString amplitude;//幅度 + QString amplitude_unit;//幅度单位 + QString high_pass_filter;//高通滤波 + QString high_pass_filter_unit;//高通滤波单位 + QString lower_pass_filter;//低通滤波 + QString lower_pass_filter_unit;//低通滤波单位 + QString modulation_rate;//调制速率 + QString modulation_rate_unit;//调制速率单位 + QString thd;//THD + QString upper_index_symbol;//THD上限符号 + QString upper_index_unit;//THD上限单位 + QString remain_amplitude_modulation;//剩余调幅/剩余调频 + QString harmonic_number;//谐波次数 + QString fundamental_amplitude;//基波幅度 + QString fundamental_amplitude_unit;//基波幅度单位 + QString harmonic_amplitude;//谐波幅度 + QString harmonic_amplitude_unit;//谐波幅度单位 + QString offset_frequency;//偏移频率 + QString offset_frequency_unit;//偏移频率单位 + QString exceed_mark;//超出范围标*(1/0) + QString exceed_mark_one;//超出范围标*(1/0)(第二个需要标*的) + QDateTime create_time; + QDateTime update_time; +}; //角色 class DeviceRole { @@ -1467,7 +1586,9 @@ //【查询】检定项-频谱分析仪 static QMap> getDeviceMeasureItemDataSpectrumAnalyzer(QString itemCatoryName,QString itemId,QMap *headList); static QMap> GetDataReturnItemListBySpectrumAnalyzer(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList); - //保留5位小数,参数1:值,参数2:保留几位有效数字 + //【结果保存】频谱分析仪 + static bool InsertDeviceMeasureDataSpectrumAnalyzer(DeviceMeasureDataSpectrumAnalyzer analyzer); + //保留5位小数,参数1:值,参数2:保留几位有效数字 static QString formatDoubleWithEffectiveDigits(double value, int effectiveDigits); //保留小数点后几位 static QString formatDoubleWithDecimalPlaces(double value, int decimalPlaces); @@ -1480,6 +1601,8 @@ //【查询】检定项-信号发生器 static QMap> getDeviceMeasureItemDataSignalGenerator(QString itemCatoryName,QString itemId,QMap *headList); static QMap> GetDataReturnItemListBySignalGenerator(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList); +// 【保存】信号发生器 + static bool InsertDeviceMeasureDataSignalGenerator(DeviceMeasureDataSignalGenerator generator); };