diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index ef5b373..89a44a1 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -895,15 +895,23 @@ DataList.clear(); QList CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); if(CliTable.count()==0)return DataList; + QList deviceCatory = BaseCommonApi::getDeviceMeasureEquipmentCatory(DeiverId); + QString deviceCatoryName = deviceCatory[0].item_category_name; switch (CliTable[0].belong_standard_equipment.toInt()) { case 1: //CliTable[0].id //1717086652508487681 - DataList=BaseCommonApi::getVerMultiCalClass(CliTable[0].id,HeadList); + //根据被检设备的检定项分类去查询 TODO + if(deviceCatoryName.contains("数字多用表(手持)")){ + DataList=BaseCommonApi::getVerMultiCalClass(deviceCatoryName,CliTable[0].id,HeadList); + } + DataList=BaseCommonApi::getVerMultiCalClass(deviceCatoryName,CliTable[0].id,HeadList); break; case 4: - DataList=BaseCommonApi::getDeviceMeasureCalibratorPistonGauge(CliTable[0].id,HeadList); + if (deviceCatoryName.contains("一般压力表")){ + DataList=BaseCommonApi::getDeviceMeasureCalibratorPistonGauge(deviceCatoryName,CliTable[0].id,HeadList); + }//else if 后续可判断其他检定项分类 break; } @@ -1028,7 +1036,7 @@ return resultData; } //被检设备管理-检定项目及检定点-多功能校准源 -QMap> BaseCommonApi::getVerMultiCalClass(QString itemId,QMap *headList) +QMap> BaseCommonApi::getVerMultiCalClass(QString itemCatoryName,QString itemId,QMap *headList) { QMap> DataMapList; QList resultData; @@ -1045,24 +1053,24 @@ result.append(query.value("id").toString()); result.append(query.value("item_id").toString()); //检定项目ID result.append(query.value("params").toString()); //检查项目 - result.append(query.value("capacity").toString()); - result.append(query.value("unit").toString()); - result.append(query.value("frequency").toString()); - result.append(query.value("frequency_unit").toString()); - result.append(query.value("range_range").toString()); - result.append(query.value("standard_value").toString()); - result.append(query.value("resolution").toString()); - result.append(query.value("maximum_error").toString()); - result.append(query.value("error_param_a").toString()); - result.append(query.value("error_param_b").toString()); - result.append(query.value("line_mode").toString()); - result.append(query.value("coil_enlarge").toString()); - result.append(query.value("indicating_value").toString()); - result.append(query.value("accuracy_a").toString()); - result.append(query.value("full_scale_value").toString()); - result.append(query.value("full_scale_value_unit").toString()); - result.append(query.value("measure_indication_value").toString()); - result.append(query.value("accuracy_level").toString()); + result.append(query.value("capacity").toString());//量 + result.append(query.value("unit").toString());//单位 + result.append(query.value("frequency").toString());//频率 + result.append(query.value("frequency_unit").toString());//频率单位 + result.append(query.value("range_range").toString());//量程 + result.append(query.value("standard_value").toString());//标准值 + result.append(query.value("resolution").toString());//分辨力 + result.append(query.value("maximum_error").toString());//最大允许误差(公式) + result.append(query.value("error_param_a").toString());//误差参数a + result.append(query.value("error_param_b").toString());//误差参数b + result.append(query.value("line_mode").toString());//两线/四线模式 + result.append(query.value("coil_enlarge").toString());//线圈放大 + result.append(query.value("indicating_value").toString());//示值 + result.append(query.value("accuracy_a").toString());//准确度a + result.append(query.value("full_scale_value").toString());//指针式仪表满量程值 + result.append(query.value("full_scale_value_unit").toString());//指针式仪表满量程值单位 + result.append(query.value("measure_indication_value").toString());//被检表示值 + result.append(query.value("accuracy_level").toString());//准确度等级 result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); resultData.append(result); @@ -1071,44 +1079,34 @@ qDebug() << "Query execution failed: " << query.lastError().text(); } //进行检定项目列头转换 - DataMapList= GetDataReturnItemList(resultData,DataMapList,headList); + DataMapList= GetDataReturnItemList( itemCatoryName,resultData,DataMapList,headList); return DataMapList; } -QMap> BaseCommonApi::GetDataReturnItemList(QList ResultData,QMap> DataMapList,QMap *HeadMapList) +QMap> BaseCommonApi::GetDataReturnItemList(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList) { - QList isFirst; - isFirst.append(true); - isFirst.append(true); - isFirst.append(true); - isFirst.append(true); - isFirst.append(true); QList DCVList; QList ACVList; QList DCIList; QList ACIList; QList RList; + if(itemCatoryName.contains("数字多用表")){ for(const QStringList &row : ResultData) { + QStringList head; + QStringList Data; + QString VerificationItem=NULL; if (!row.isEmpty()) { // 确保行不为空 if(row[2]=="DCV") { - - QString VerificationItem=NULL; - if(isFirst[0]) - { VerificationItem = "DCV"; //添加列头 - QStringList head; - head << "序号" << "检定项目" << "量" << "单位" << "量程" - << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; - HeadMapList->insert(VerificationItem,head); - isFirst[0]=false; - } - //添加数据 - QStringList Data; + head << "序号" << "检定项目" << "量" << "单位" << "量程"<< "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + + //添加数据 Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]); //量 @@ -1128,22 +1126,15 @@ Data.append(row[9]); //分辨力 DCVList.append(Data); } - else if(row[2]=="ACV") + else if(row[2]=="ACV" ) { - QString VerificationItem=NULL; - if(isFirst[1]) - { VerificationItem = "ACV"; //添加列头 - QStringList head; - head << "序号" << "检定项目" << "量" << "单位" <<"频率" <<"频率单位"<< "量程" + + head << "序号" << "检定项目" << "量" << "单位" <<"频率" <<"频率单位"<< "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); - isFirst[1]=false; - } //添加数据 - - QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]); //量 @@ -1164,22 +1155,16 @@ } Data.append(row[9]); //分辨力 ACVList.append(Data); - } else if(row[2]=="DCI") + } else if(row[2]=="DCI" ) { - QString VerificationItem=NULL; - if(isFirst[2]) - { VerificationItem = "DCI"; //添加列头 - QStringList head; + head << "序号" << "检定项目" << "量" << "单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); - isFirst[2]=false; - } - //添加数据 - QStringList Data; + //添加数据 Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]); //量 @@ -1200,22 +1185,17 @@ Data.append(row[9]); //分辨力 DCIList.append(Data); - } else if(row[2]=="ACI") + } else if(row[2]=="ACI" ) { - QString VerificationItem=NULL; - if(isFirst[3]) - { VerificationItem = "ACI"; //添加列头 - QStringList head; - head << "序号" << "检定项目" << "量" << "单位" <<"频率" <<"频率单位" << "量程" + + head << "序号" << "检定项目" << "量" << "单位" <<"频率" <<"频率单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); - isFirst[3]=false; - } + //添加数据 - QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]); //量 @@ -1238,25 +1218,19 @@ ACIList.append(Data); } else if(row[2]=="R") { - QString VerificationItem=NULL; - if(isFirst[4]) - { VerificationItem = "R"; //添加列头 - QStringList head; - head << "序号" <<"检定项目" <<"两线/四线" << "量" << "单位" << "量程" + + head << "序号" << "检定项目" << "量" << "单位" <<"两线/四线" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); - isFirst[4]=false; - } //添加数据 - QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 - Data.append(row[13]); //两线/四线 Data.append(row[3]); //量 Data.append(row[4]); //单位 + Data.append(row[13]); //两线/四线 Data.append(row[7]); //量程 Data.append(row[8]); //标准值 Data.append(row[15]); //示值 @@ -1275,6 +1249,7 @@ } } + if(DCVList.count()!=0){ DataMapList.insert("DCV",DCVList); }; @@ -1290,6 +1265,7 @@ if(RList.count()!=0){ DataMapList.insert("R",RList); }; + } return DataMapList; } //检定数据管理 首页 @@ -3029,60 +3005,9 @@ return result; } -QMap> BaseCommonApi::GetDataReturnItemListByPistonGauge(QList ResultData,QMap> DataMapList,QMap *HeadMapList) -{ - QList isFirst; - isFirst.append(true); - QList DCVList; - for(const QStringList &row : ResultData) - { - if (!row.isEmpty()) { // 确保行不为空 - if(row[13] =="1") - { - - QString VerificationItem=NULL; - if(isFirst[0]) - { - VerificationItem = "示值误差"; - //添加列头 - QStringList head; - head <<"外观及功能性检查"<<"示值误差、回程误差、轻敲位移" <<"理论输出值单位"<<"检定介质"<<"分度值的五分之一" - <<"序号"<<"标准器示值"<<"轻敲前示值"<<"正行程"<<"反行程"<<"轻敲后示值"<<"正行程"<<"反行程"<<"轻敲前后变动量"<<"正行程"<<"反行程" ; - HeadMapList->insert(VerificationItem,head); - isFirst[0]=false; - } - //添加数据 - QStringList Data; - Data.append(row[12]); //外观及功能性检查 - Data.append(row[13]); //示值误差、回程误差、轻敲位移 - Data.append(row[11]); //理论输出值单位 - Data.append(row[14]); //检定介质 - Data.append(row[15]); //分度值的五分之一 - Data.append(row[0]); //ID - Data.append(row[2]); //标准器示值 - Data.append(""); //轻敲前后变动量正行程 软件界面计算 - Data.append(""); //轻敲前后变动量反行程 软件界面计算 - //最大允许误差 根据公式计算 目前 先都按 a*标准值 + b*量程 -// try { -// //保证数据库内数据没问题 -// Data.append(QString::number((row[11].toDouble()*row[8].toDouble()) -// + (row[12].toDouble()*row[7].toDouble()))); -// } catch(const std::exception &e) { -// Data.append("0"); -// } -// Data.append(row[9]); - DCVList.append(Data); - } - } - if(DCVList.count()!=0){ - DataMapList.insert("示值误差",DCVList); - }; - return DataMapList; - } -} //检定项0.02活塞式压力计数据(包含字典的字段都存为字典value) -QMap> BaseCommonApi::getDeviceMeasureCalibratorPistonGauge(QString itemId,QMap *headList) +QMap> BaseCommonApi::getDeviceMeasureCalibratorPistonGauge(QString itemCatoryName,QString itemId,QMap *headList) { QMap> DataMapList; QList resultData; @@ -3090,11 +3015,14 @@ resultData.clear(); QSqlQuery query; - query.prepare("SELECT bbdmidpg.*,bbdmii.appearance_function_check,bbdmicp.indication_error,bbdmicp.measure_medium,bbdmicp.division " + query.prepare("SELECT bbdmidpg.*,bbdmii.appearance_function_check,bbdmicp.indication_error,bbdmicp.measure_medium, " + " bbdmicp.division,bbdmicp.deviation_and_switching,bbdmicp.display_value_one,bbdmicp.display_value_two,bbdmicp.display_value_three, " + " bbdmicp.insulation_resistance,bbdmicp.appearance,bbdmicp.tightness,bbdmicp.pointer_deflection_stability," + "bbdmidpg.create_time,bbdmidpg.update_time " " FROM biz_business_device_measure_item_data_piston_gauge bbdmidpg " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmidpg.item_id " " JOIN biz_business_device_measure_item_config_piston_gauge bbdmicp ON bbdmicp.item_id = bbdmidpg.item_id " - " WHERE bbdmidpg.item_id = :itemId "); + " WHERE bbdmidpg.item_id = :itemId ORDER BY bbdmidpg.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":itemId", itemId); if (query.exec()) { @@ -3116,6 +3044,14 @@ result.append(query.value("indication_error").toString());//示值误差、回程误差、轻敲位移 result.append(query.value("measure_medium").toString());//检定介质(字典value) result.append(query.value("division").toString());//分度值的五分之一 + result.append(query.value("deviation_and_switching").toString());//设定点偏差及切换差 + result.append(query.value("display_value_one").toString());//设定标准器示值1 + result.append(query.value("display_value_two").toString());//设定标准器示值2 + result.append(query.value("display_value_three").toString());//设定标准器示值3 + result.append(query.value("insulation_resistance").toString());//绝缘电阻 + result.append(query.value("appearance").toString());//外观 + result.append(query.value("tightness").toString());//密封性 + result.append(query.value("pointer_deflection_stability").toString());//指针偏转平稳性 result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); resultData.append(result); @@ -3128,15 +3064,59 @@ // <<"检定介质"<<"准确度等级"<<"最大允许误差"<<"理论输出值"<<"理论输出值单位"<<"外观及功能性检查(1/0)"<<"示值误差、回程误差、轻敲位移" // <<"检定介质(字典value)"<<"分度值的五分之一"<<"创建时间"<<"更新时间"; //进行检定项目列头转换 - DataMapList= GetDataReturnItemListByPistonGauge(resultData,DataMapList,headList); + DataMapList= GetDataReturnItemListByPistonGauge(itemCatoryName,resultData,DataMapList,headList); return DataMapList; } +QMap> BaseCommonApi::GetDataReturnItemListByPistonGauge(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList) +{ + QList IndicationErrorList; + if(itemCatoryName.contains("一般压力表")){ + for(const QStringList &row : ResultData) + { + QString VerificationItem=NULL; + if (!row.isEmpty() && row[13] =="1") { + VerificationItem = "示值误差"; + //添加列头 + QStringList head; + head <<"序号"<<"标准器示值"<<"轻敲前示值"<<"正行程"<<"反行程"<<"轻敲后示值" + <<"正行程"<<"反行程"<<"轻敲前后变动量"<<"正行程"<<"反行程" ; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; +// Data.append(row[12]); //外观及功能性检查 +// Data.append(row[13]); //示值误差、回程误差、轻敲位移 +// Data.append(row[11]); //理论输出值单位 +// Data.append(row[14]); //检定介质 +// Data.append(row[15]); //分度值的五分之一 + Data.append(row[0]); //ID + Data.append(row[2]); //标准器示值 + Data.append(""); + Data.append(""); + Data.append(""); + Data.append(""); + Data.append(""); + Data.append(""); + IndicationErrorList.append(Data); + } + + } + } + if(IndicationErrorList.count()!=0){ + DataMapList.insert("示值误差",IndicationErrorList); + }; + return DataMapList; +} +//测试界面 外观及功能性检查和检定数据头 +//QMap>> ; + + //自动检定数据结果保存 参数1:装置字典1,2,3 参数2:BaseClass父类, 子类赋值 bool BaseCommonApi::SearchSelectTable(QString id, BaseClass *object) { bool result = false; // 初始化为 false 或根据需要初始化为其他值 switch (id.toInt()) { case 1: { + //多功能校准源 DeviceMeasureDataPistonGauge *recordGauge = dynamic_cast(object); if (recordGauge != nullptr) { result = BaseCommonApi::InsertDeviceMeasureDataPistonGauge(*recordGauge); @@ -3147,6 +3127,7 @@ break; } case 4: { + //0.02压力活塞计 SaveDeviceMeasureCalibrator *recordCal = dynamic_cast(object); if (recordCal != nullptr) { result = BaseCommonApi::InsertVerMultiCal(*recordCal); // 注意这里使用recordCal而不是recordGauge @@ -3336,7 +3317,14 @@ qDebug() << "Query execution failed: " << query.lastError().text(); } - *HeadList <<"暂未修改序号"<<"检定项id"<<"标准器示值"<<"回程误差允许值"<<"轻敲位移允许值"<<"示值误差允许值"<<"零位是否带止销" - <<"检定介质"<<"准确度等级"<<"最大允许误差"<<"理论输出值"<<"理论输出值单位"<<"创建时间"<<"更新时间"; + *HeadList <<"id"<<"检定数据管理基础信息表id"<<"检定数据类型"<<"标准器示值"<<"轻敲前被检设备示值-正行程"<<"轻敲前被检设备示值-反行程"<<"轻敲后被检设备示值-正行程" + <<"轻敲后被检设备示值-反行程"<<"理论输出值"<<"第一次正行程"<<"第一次反行程"<<"第二次正行程"<<"第二次反行程"<<"第三次正行程" + <<"第三次反行程"<<"示值误差"<<"回程误差"<<"正行程平均值"<<"反行程平均值"<<"平均值"<<"回程误差平均值"<<"项目(结果表)"<<"示值误差最大值(结果表)" + <<"轻敲位移最大值(结果表)"<<"最大允许误差绝对值"<<"正行程切换值(电接点一般压力表)"<<"反行程切换值(电接点一般压力表)" + <<"设定点偏差(电接点一般压力表)"<<"切换差(电接点一般压力表)"<<"最大设定点偏差绝对值(结果表)(电接点一般压力表的第2个结果表)"<<"允许设定点偏差绝对值(结果表)(电接点一般压力表的第2个结果表)" + <<"最大切换差(结果表)(电接点一般压力表的第2个结果表)"<<"允许切换差(结果表)(电接点一般压力表的第2个结果表)"<<"零位漂移(数字压力计手工输入的第1个示值)" + <<"零位漂移(数字压力计手工输入的第2个示值)"<<"零位漂移(数字压力计手工输入的第3个示值)"<<"零位漂移(数字压力计手工输入的第4个示值)" + <<"零位漂移(数字压力计手工输入的第5个示值)"<<"截距a(结果表)"<<"斜率b(结果表)"<<"灵敏度b(结果表)"<<"重复性ξR(结果表)"<<"迟滞ξH(结果表)" + <<"线性ξL(结果表)"<<"基本误差A(结果表)"<<"周期稳定性Sb(结果表)"<<"创建日期"<<"更新日期"; return resultData; } diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index ef5b373..89a44a1 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -895,15 +895,23 @@ DataList.clear(); QList CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); if(CliTable.count()==0)return DataList; + QList deviceCatory = BaseCommonApi::getDeviceMeasureEquipmentCatory(DeiverId); + QString deviceCatoryName = deviceCatory[0].item_category_name; switch (CliTable[0].belong_standard_equipment.toInt()) { case 1: //CliTable[0].id //1717086652508487681 - DataList=BaseCommonApi::getVerMultiCalClass(CliTable[0].id,HeadList); + //根据被检设备的检定项分类去查询 TODO + if(deviceCatoryName.contains("数字多用表(手持)")){ + DataList=BaseCommonApi::getVerMultiCalClass(deviceCatoryName,CliTable[0].id,HeadList); + } + DataList=BaseCommonApi::getVerMultiCalClass(deviceCatoryName,CliTable[0].id,HeadList); break; case 4: - DataList=BaseCommonApi::getDeviceMeasureCalibratorPistonGauge(CliTable[0].id,HeadList); + if (deviceCatoryName.contains("一般压力表")){ + DataList=BaseCommonApi::getDeviceMeasureCalibratorPistonGauge(deviceCatoryName,CliTable[0].id,HeadList); + }//else if 后续可判断其他检定项分类 break; } @@ -1028,7 +1036,7 @@ return resultData; } //被检设备管理-检定项目及检定点-多功能校准源 -QMap> BaseCommonApi::getVerMultiCalClass(QString itemId,QMap *headList) +QMap> BaseCommonApi::getVerMultiCalClass(QString itemCatoryName,QString itemId,QMap *headList) { QMap> DataMapList; QList resultData; @@ -1045,24 +1053,24 @@ result.append(query.value("id").toString()); result.append(query.value("item_id").toString()); //检定项目ID result.append(query.value("params").toString()); //检查项目 - result.append(query.value("capacity").toString()); - result.append(query.value("unit").toString()); - result.append(query.value("frequency").toString()); - result.append(query.value("frequency_unit").toString()); - result.append(query.value("range_range").toString()); - result.append(query.value("standard_value").toString()); - result.append(query.value("resolution").toString()); - result.append(query.value("maximum_error").toString()); - result.append(query.value("error_param_a").toString()); - result.append(query.value("error_param_b").toString()); - result.append(query.value("line_mode").toString()); - result.append(query.value("coil_enlarge").toString()); - result.append(query.value("indicating_value").toString()); - result.append(query.value("accuracy_a").toString()); - result.append(query.value("full_scale_value").toString()); - result.append(query.value("full_scale_value_unit").toString()); - result.append(query.value("measure_indication_value").toString()); - result.append(query.value("accuracy_level").toString()); + result.append(query.value("capacity").toString());//量 + result.append(query.value("unit").toString());//单位 + result.append(query.value("frequency").toString());//频率 + result.append(query.value("frequency_unit").toString());//频率单位 + result.append(query.value("range_range").toString());//量程 + result.append(query.value("standard_value").toString());//标准值 + result.append(query.value("resolution").toString());//分辨力 + result.append(query.value("maximum_error").toString());//最大允许误差(公式) + result.append(query.value("error_param_a").toString());//误差参数a + result.append(query.value("error_param_b").toString());//误差参数b + result.append(query.value("line_mode").toString());//两线/四线模式 + result.append(query.value("coil_enlarge").toString());//线圈放大 + result.append(query.value("indicating_value").toString());//示值 + result.append(query.value("accuracy_a").toString());//准确度a + result.append(query.value("full_scale_value").toString());//指针式仪表满量程值 + result.append(query.value("full_scale_value_unit").toString());//指针式仪表满量程值单位 + result.append(query.value("measure_indication_value").toString());//被检表示值 + result.append(query.value("accuracy_level").toString());//准确度等级 result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); resultData.append(result); @@ -1071,44 +1079,34 @@ qDebug() << "Query execution failed: " << query.lastError().text(); } //进行检定项目列头转换 - DataMapList= GetDataReturnItemList(resultData,DataMapList,headList); + DataMapList= GetDataReturnItemList( itemCatoryName,resultData,DataMapList,headList); return DataMapList; } -QMap> BaseCommonApi::GetDataReturnItemList(QList ResultData,QMap> DataMapList,QMap *HeadMapList) +QMap> BaseCommonApi::GetDataReturnItemList(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList) { - QList isFirst; - isFirst.append(true); - isFirst.append(true); - isFirst.append(true); - isFirst.append(true); - isFirst.append(true); QList DCVList; QList ACVList; QList DCIList; QList ACIList; QList RList; + if(itemCatoryName.contains("数字多用表")){ for(const QStringList &row : ResultData) { + QStringList head; + QStringList Data; + QString VerificationItem=NULL; if (!row.isEmpty()) { // 确保行不为空 if(row[2]=="DCV") { - - QString VerificationItem=NULL; - if(isFirst[0]) - { VerificationItem = "DCV"; //添加列头 - QStringList head; - head << "序号" << "检定项目" << "量" << "单位" << "量程" - << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; - HeadMapList->insert(VerificationItem,head); - isFirst[0]=false; - } - //添加数据 - QStringList Data; + head << "序号" << "检定项目" << "量" << "单位" << "量程"<< "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + + //添加数据 Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]); //量 @@ -1128,22 +1126,15 @@ Data.append(row[9]); //分辨力 DCVList.append(Data); } - else if(row[2]=="ACV") + else if(row[2]=="ACV" ) { - QString VerificationItem=NULL; - if(isFirst[1]) - { VerificationItem = "ACV"; //添加列头 - QStringList head; - head << "序号" << "检定项目" << "量" << "单位" <<"频率" <<"频率单位"<< "量程" + + head << "序号" << "检定项目" << "量" << "单位" <<"频率" <<"频率单位"<< "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); - isFirst[1]=false; - } //添加数据 - - QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]); //量 @@ -1164,22 +1155,16 @@ } Data.append(row[9]); //分辨力 ACVList.append(Data); - } else if(row[2]=="DCI") + } else if(row[2]=="DCI" ) { - QString VerificationItem=NULL; - if(isFirst[2]) - { VerificationItem = "DCI"; //添加列头 - QStringList head; + head << "序号" << "检定项目" << "量" << "单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); - isFirst[2]=false; - } - //添加数据 - QStringList Data; + //添加数据 Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]); //量 @@ -1200,22 +1185,17 @@ Data.append(row[9]); //分辨力 DCIList.append(Data); - } else if(row[2]=="ACI") + } else if(row[2]=="ACI" ) { - QString VerificationItem=NULL; - if(isFirst[3]) - { VerificationItem = "ACI"; //添加列头 - QStringList head; - head << "序号" << "检定项目" << "量" << "单位" <<"频率" <<"频率单位" << "量程" + + head << "序号" << "检定项目" << "量" << "单位" <<"频率" <<"频率单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); - isFirst[3]=false; - } + //添加数据 - QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]); //量 @@ -1238,25 +1218,19 @@ ACIList.append(Data); } else if(row[2]=="R") { - QString VerificationItem=NULL; - if(isFirst[4]) - { VerificationItem = "R"; //添加列头 - QStringList head; - head << "序号" <<"检定项目" <<"两线/四线" << "量" << "单位" << "量程" + + head << "序号" << "检定项目" << "量" << "单位" <<"两线/四线" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); - isFirst[4]=false; - } //添加数据 - QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 - Data.append(row[13]); //两线/四线 Data.append(row[3]); //量 Data.append(row[4]); //单位 + Data.append(row[13]); //两线/四线 Data.append(row[7]); //量程 Data.append(row[8]); //标准值 Data.append(row[15]); //示值 @@ -1275,6 +1249,7 @@ } } + if(DCVList.count()!=0){ DataMapList.insert("DCV",DCVList); }; @@ -1290,6 +1265,7 @@ if(RList.count()!=0){ DataMapList.insert("R",RList); }; + } return DataMapList; } //检定数据管理 首页 @@ -3029,60 +3005,9 @@ return result; } -QMap> BaseCommonApi::GetDataReturnItemListByPistonGauge(QList ResultData,QMap> DataMapList,QMap *HeadMapList) -{ - QList isFirst; - isFirst.append(true); - QList DCVList; - for(const QStringList &row : ResultData) - { - if (!row.isEmpty()) { // 确保行不为空 - if(row[13] =="1") - { - - QString VerificationItem=NULL; - if(isFirst[0]) - { - VerificationItem = "示值误差"; - //添加列头 - QStringList head; - head <<"外观及功能性检查"<<"示值误差、回程误差、轻敲位移" <<"理论输出值单位"<<"检定介质"<<"分度值的五分之一" - <<"序号"<<"标准器示值"<<"轻敲前示值"<<"正行程"<<"反行程"<<"轻敲后示值"<<"正行程"<<"反行程"<<"轻敲前后变动量"<<"正行程"<<"反行程" ; - HeadMapList->insert(VerificationItem,head); - isFirst[0]=false; - } - //添加数据 - QStringList Data; - Data.append(row[12]); //外观及功能性检查 - Data.append(row[13]); //示值误差、回程误差、轻敲位移 - Data.append(row[11]); //理论输出值单位 - Data.append(row[14]); //检定介质 - Data.append(row[15]); //分度值的五分之一 - Data.append(row[0]); //ID - Data.append(row[2]); //标准器示值 - Data.append(""); //轻敲前后变动量正行程 软件界面计算 - Data.append(""); //轻敲前后变动量反行程 软件界面计算 - //最大允许误差 根据公式计算 目前 先都按 a*标准值 + b*量程 -// try { -// //保证数据库内数据没问题 -// Data.append(QString::number((row[11].toDouble()*row[8].toDouble()) -// + (row[12].toDouble()*row[7].toDouble()))); -// } catch(const std::exception &e) { -// Data.append("0"); -// } -// Data.append(row[9]); - DCVList.append(Data); - } - } - if(DCVList.count()!=0){ - DataMapList.insert("示值误差",DCVList); - }; - return DataMapList; - } -} //检定项0.02活塞式压力计数据(包含字典的字段都存为字典value) -QMap> BaseCommonApi::getDeviceMeasureCalibratorPistonGauge(QString itemId,QMap *headList) +QMap> BaseCommonApi::getDeviceMeasureCalibratorPistonGauge(QString itemCatoryName,QString itemId,QMap *headList) { QMap> DataMapList; QList resultData; @@ -3090,11 +3015,14 @@ resultData.clear(); QSqlQuery query; - query.prepare("SELECT bbdmidpg.*,bbdmii.appearance_function_check,bbdmicp.indication_error,bbdmicp.measure_medium,bbdmicp.division " + query.prepare("SELECT bbdmidpg.*,bbdmii.appearance_function_check,bbdmicp.indication_error,bbdmicp.measure_medium, " + " bbdmicp.division,bbdmicp.deviation_and_switching,bbdmicp.display_value_one,bbdmicp.display_value_two,bbdmicp.display_value_three, " + " bbdmicp.insulation_resistance,bbdmicp.appearance,bbdmicp.tightness,bbdmicp.pointer_deflection_stability," + "bbdmidpg.create_time,bbdmidpg.update_time " " FROM biz_business_device_measure_item_data_piston_gauge bbdmidpg " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmidpg.item_id " " JOIN biz_business_device_measure_item_config_piston_gauge bbdmicp ON bbdmicp.item_id = bbdmidpg.item_id " - " WHERE bbdmidpg.item_id = :itemId "); + " WHERE bbdmidpg.item_id = :itemId ORDER BY bbdmidpg.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":itemId", itemId); if (query.exec()) { @@ -3116,6 +3044,14 @@ result.append(query.value("indication_error").toString());//示值误差、回程误差、轻敲位移 result.append(query.value("measure_medium").toString());//检定介质(字典value) result.append(query.value("division").toString());//分度值的五分之一 + result.append(query.value("deviation_and_switching").toString());//设定点偏差及切换差 + result.append(query.value("display_value_one").toString());//设定标准器示值1 + result.append(query.value("display_value_two").toString());//设定标准器示值2 + result.append(query.value("display_value_three").toString());//设定标准器示值3 + result.append(query.value("insulation_resistance").toString());//绝缘电阻 + result.append(query.value("appearance").toString());//外观 + result.append(query.value("tightness").toString());//密封性 + result.append(query.value("pointer_deflection_stability").toString());//指针偏转平稳性 result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); resultData.append(result); @@ -3128,15 +3064,59 @@ // <<"检定介质"<<"准确度等级"<<"最大允许误差"<<"理论输出值"<<"理论输出值单位"<<"外观及功能性检查(1/0)"<<"示值误差、回程误差、轻敲位移" // <<"检定介质(字典value)"<<"分度值的五分之一"<<"创建时间"<<"更新时间"; //进行检定项目列头转换 - DataMapList= GetDataReturnItemListByPistonGauge(resultData,DataMapList,headList); + DataMapList= GetDataReturnItemListByPistonGauge(itemCatoryName,resultData,DataMapList,headList); return DataMapList; } +QMap> BaseCommonApi::GetDataReturnItemListByPistonGauge(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList) +{ + QList IndicationErrorList; + if(itemCatoryName.contains("一般压力表")){ + for(const QStringList &row : ResultData) + { + QString VerificationItem=NULL; + if (!row.isEmpty() && row[13] =="1") { + VerificationItem = "示值误差"; + //添加列头 + QStringList head; + head <<"序号"<<"标准器示值"<<"轻敲前示值"<<"正行程"<<"反行程"<<"轻敲后示值" + <<"正行程"<<"反行程"<<"轻敲前后变动量"<<"正行程"<<"反行程" ; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; +// Data.append(row[12]); //外观及功能性检查 +// Data.append(row[13]); //示值误差、回程误差、轻敲位移 +// Data.append(row[11]); //理论输出值单位 +// Data.append(row[14]); //检定介质 +// Data.append(row[15]); //分度值的五分之一 + Data.append(row[0]); //ID + Data.append(row[2]); //标准器示值 + Data.append(""); + Data.append(""); + Data.append(""); + Data.append(""); + Data.append(""); + Data.append(""); + IndicationErrorList.append(Data); + } + + } + } + if(IndicationErrorList.count()!=0){ + DataMapList.insert("示值误差",IndicationErrorList); + }; + return DataMapList; +} +//测试界面 外观及功能性检查和检定数据头 +//QMap>> ; + + //自动检定数据结果保存 参数1:装置字典1,2,3 参数2:BaseClass父类, 子类赋值 bool BaseCommonApi::SearchSelectTable(QString id, BaseClass *object) { bool result = false; // 初始化为 false 或根据需要初始化为其他值 switch (id.toInt()) { case 1: { + //多功能校准源 DeviceMeasureDataPistonGauge *recordGauge = dynamic_cast(object); if (recordGauge != nullptr) { result = BaseCommonApi::InsertDeviceMeasureDataPistonGauge(*recordGauge); @@ -3147,6 +3127,7 @@ break; } case 4: { + //0.02压力活塞计 SaveDeviceMeasureCalibrator *recordCal = dynamic_cast(object); if (recordCal != nullptr) { result = BaseCommonApi::InsertVerMultiCal(*recordCal); // 注意这里使用recordCal而不是recordGauge @@ -3336,7 +3317,14 @@ qDebug() << "Query execution failed: " << query.lastError().text(); } - *HeadList <<"暂未修改序号"<<"检定项id"<<"标准器示值"<<"回程误差允许值"<<"轻敲位移允许值"<<"示值误差允许值"<<"零位是否带止销" - <<"检定介质"<<"准确度等级"<<"最大允许误差"<<"理论输出值"<<"理论输出值单位"<<"创建时间"<<"更新时间"; + *HeadList <<"id"<<"检定数据管理基础信息表id"<<"检定数据类型"<<"标准器示值"<<"轻敲前被检设备示值-正行程"<<"轻敲前被检设备示值-反行程"<<"轻敲后被检设备示值-正行程" + <<"轻敲后被检设备示值-反行程"<<"理论输出值"<<"第一次正行程"<<"第一次反行程"<<"第二次正行程"<<"第二次反行程"<<"第三次正行程" + <<"第三次反行程"<<"示值误差"<<"回程误差"<<"正行程平均值"<<"反行程平均值"<<"平均值"<<"回程误差平均值"<<"项目(结果表)"<<"示值误差最大值(结果表)" + <<"轻敲位移最大值(结果表)"<<"最大允许误差绝对值"<<"正行程切换值(电接点一般压力表)"<<"反行程切换值(电接点一般压力表)" + <<"设定点偏差(电接点一般压力表)"<<"切换差(电接点一般压力表)"<<"最大设定点偏差绝对值(结果表)(电接点一般压力表的第2个结果表)"<<"允许设定点偏差绝对值(结果表)(电接点一般压力表的第2个结果表)" + <<"最大切换差(结果表)(电接点一般压力表的第2个结果表)"<<"允许切换差(结果表)(电接点一般压力表的第2个结果表)"<<"零位漂移(数字压力计手工输入的第1个示值)" + <<"零位漂移(数字压力计手工输入的第2个示值)"<<"零位漂移(数字压力计手工输入的第3个示值)"<<"零位漂移(数字压力计手工输入的第4个示值)" + <<"零位漂移(数字压力计手工输入的第5个示值)"<<"截距a(结果表)"<<"斜率b(结果表)"<<"灵敏度b(结果表)"<<"重复性ξR(结果表)"<<"迟滞ξH(结果表)" + <<"线性ξL(结果表)"<<"基本误差A(结果表)"<<"周期稳定性Sb(结果表)"<<"创建日期"<<"更新日期"; return resultData; } diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 4d3d17a..7acfc02 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -277,7 +277,7 @@ { public: QString id; - QString item_id;//检定项id、 + QString item_id;//检定项id QString params;//检定项(参数) QString capacity;//量 QString unit;//单位 @@ -1079,8 +1079,8 @@ static JudgeCalibrationTable getJudgeVerifyTable(QString id); //被检设备管理-检定项目及检定点-多功能校准源 static QList getVerMultiCal(QString itemId,QStringList *headList); - static QMap> getVerMultiCalClass(QString itemId,QMap *headList); - static QMap> GetDataReturnItemList(QList ResultData, + static QMap> getVerMultiCalClass(QString itemCatoryName,QString itemId,QMap *headList); + static QMap> GetDataReturnItemList(QString itemCatoryName,QList ResultData, QMap> DataMapList, QMap *HeadMapList); // 获取检定数据管理 首页 @@ -1218,8 +1218,8 @@ //【查询】检定项0.02活塞式压力计数据(包含字典的字段都存为字典value) // static QList getDeviceMeasureCalibratorPistonGauge(QString itemId,QStringList *headList); - static QMap> getDeviceMeasureCalibratorPistonGauge(QString itemId,QMap *headList); - static QMap> GetDataReturnItemListByPistonGauge(QList ResultData,QMap> DataMapList,QMap *HeadMapList); + static QMap> getDeviceMeasureCalibratorPistonGauge(QString itemCatoryName,QString itemId,QMap *headList); + static QMap> GetDataReturnItemListByPistonGauge(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList); static bool SearchSelectTable(QString id, BaseClass *object); //【结果保存】压力 static bool InsertDeviceMeasureDataPistonGauge(DeviceMeasureDataPistonGauge gauge);