diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index ed0d569..c6c6c43 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -2,11 +2,14 @@ #include "id/TaskManager.h" #include "basecommonapi.h" -// 定义并初始化静态成员变量 +// 定义并初始化静态成员变量 委托单编号 QMap TaskManager::dailyTaskCounts; QDate TaskManager::currentDate; QString TaskManager::KeyDate; +//检定结果保存 +QMap TaskManager::saveResultdatanoList; +QString TaskManager::ResultKeyDate; QString TaskManager::generateTask(QString Number) { // 初始化当天任务单数量为0 @@ -40,24 +43,67 @@ return taskId; } -int TaskManager::getTaskCountForToday() +QString TaskManager::getsaveResultdatano() { - // 返回当天的任务单数量 - return dailyTaskCounts.value(KeyDate, 0); + + //获取结果保存ID + ResultKeyDate = QDate::currentDate().toString("yyyyMMdd"); + //判断是否包含 如包含直接返回结果 + if(!saveResultdatanoList.contains(ResultKeyDate)) + { + + //找寻数据库上次的记录 + QString datano=BaseCommonApi::getNewResultData().data_no; + if(datano!=""){ + int startIndex = datano.lastIndexOf("j")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + //截截取 + QString result = datano.mid(startIndex, 8); + if(result!=ResultKeyDate){ + saveResultdatanoList[ResultKeyDate] = 1; + }else + { + //获取最后一位数 并加1 + QChar lastChar = datano.at(datano.length() - 1); + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + saveResultdatanoList[ResultKeyDate] = Count+1; + } + + } + + }else{saveResultdatanoList[ResultKeyDate] = 1;}; + + } + + QString dateStr = ResultKeyDate; + // 生成结果保存编号,这里假设编号格式是 "jdsjYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("jdsj%1%2").arg(dateStr).arg(saveResultdatanoList[ResultKeyDate], 4, 10, QChar('0')); + //返回结果 + return taskId; } + bool TaskManager::AddCurrenTaskCount() { // 增加当天任务单数量 try { - dailyTaskCounts[KeyDate]++; return true; } catch(const std::exception &e) { return false; } - } - +bool TaskManager::AddResultDataNoCount() +{ + // 增加当天任务单数量 + try { + saveResultdatanoList[ResultKeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } +} diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index ed0d569..c6c6c43 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -2,11 +2,14 @@ #include "id/TaskManager.h" #include "basecommonapi.h" -// 定义并初始化静态成员变量 +// 定义并初始化静态成员变量 委托单编号 QMap TaskManager::dailyTaskCounts; QDate TaskManager::currentDate; QString TaskManager::KeyDate; +//检定结果保存 +QMap TaskManager::saveResultdatanoList; +QString TaskManager::ResultKeyDate; QString TaskManager::generateTask(QString Number) { // 初始化当天任务单数量为0 @@ -40,24 +43,67 @@ return taskId; } -int TaskManager::getTaskCountForToday() +QString TaskManager::getsaveResultdatano() { - // 返回当天的任务单数量 - return dailyTaskCounts.value(KeyDate, 0); + + //获取结果保存ID + ResultKeyDate = QDate::currentDate().toString("yyyyMMdd"); + //判断是否包含 如包含直接返回结果 + if(!saveResultdatanoList.contains(ResultKeyDate)) + { + + //找寻数据库上次的记录 + QString datano=BaseCommonApi::getNewResultData().data_no; + if(datano!=""){ + int startIndex = datano.lastIndexOf("j")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + //截截取 + QString result = datano.mid(startIndex, 8); + if(result!=ResultKeyDate){ + saveResultdatanoList[ResultKeyDate] = 1; + }else + { + //获取最后一位数 并加1 + QChar lastChar = datano.at(datano.length() - 1); + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + saveResultdatanoList[ResultKeyDate] = Count+1; + } + + } + + }else{saveResultdatanoList[ResultKeyDate] = 1;}; + + } + + QString dateStr = ResultKeyDate; + // 生成结果保存编号,这里假设编号格式是 "jdsjYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("jdsj%1%2").arg(dateStr).arg(saveResultdatanoList[ResultKeyDate], 4, 10, QChar('0')); + //返回结果 + return taskId; } + bool TaskManager::AddCurrenTaskCount() { // 增加当天任务单数量 try { - dailyTaskCounts[KeyDate]++; return true; } catch(const std::exception &e) { return false; } - } - +bool TaskManager::AddResultDataNoCount() +{ + // 增加当天任务单数量 + try { + saveResultdatanoList[ResultKeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } +} diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 08eeaf5..47ee4da 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -6,6 +6,7 @@ #include + BaseCommonApi::BaseCommonApi() { @@ -56,8 +57,10 @@ info.create_time = query.value("create_time").toDateTime(); info.update_time = query.value("update_time").toDateTime(); result=info; + } - }else { +// qDebug() << "sql代码: " << query.lastQuery(); + }else { qDebug() << "Query execution failed: " << query.lastError().text(); } @@ -121,6 +124,7 @@ " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); + if (query.exec()) { while (query.next()) { Dept Dept; @@ -188,6 +192,24 @@ } return result; } +//查看最新结果保存数据 +SaveDeviceMeasureInfo BaseCommonApi::getNewResultData() +{ + SaveDeviceMeasureInfo result; + QSqlQuery query; + query.prepare("select * from biz_business_device_measure_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + + result.id = query.value("id").toString(); + result.data_no = query.value("data_no").toString(); + + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //查看当前最新的任务单 QList BaseCommonApi::getCreateTaskListNew() { @@ -796,6 +818,25 @@ */ //根据被检设备ID获取当前设备的 检定项目及检定点 +/* +QMap> BaseCommonApi::Search_CalibrationTable(QString DeiverId,QMap *HeadList) +{ + + QMap> DataList; + DataList.clear(); + QList CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); + if(CliTable.count()==0)return DataList; + switch (CliTable[0].belong_standard_equipment.toInt()) + { + case 1: + //CliTable[0].id + //1717086652508487681 + DataList=BaseCommonApi::getVerMultiCal(CliTable[0].id,HeadList); + } + + return DataList; +}*/ +//根据被检设备ID获取当前设备的 检定项目及检定点 QList BaseCommonApi::Search_CalibrationTable(QString DeiverId,QStringList *HeadList) { @@ -813,7 +854,6 @@ return DataList; } - //核查设备对应的装置表 核查项及核查点 传参设备id QList BaseCommonApi::Search_VerifyTable(QString DeiverId,QStringList *HeadList ) { @@ -857,7 +897,6 @@ } return DataList; } - //被检设备管理-检定项目及检定点-多功能校准源 QList BaseCommonApi::getVerMultiCal(QString itemId,QStringList *headList) { @@ -908,22 +947,88 @@ <<"两线/四线模式"<<"线圈放大"<<"示值"<<"准确度a"<<"指针式仪表满量程值"<<"指针式仪表满量程值单位"<<"被检表示值"<<"准确度等级"<<"创建时间"<<"更新时间"; return resultData; } -bool GetDataReturnItemList(QList ResultData,QMap *DataMapList,QList *HeadMapList) +//被检设备管理-检定项目及检定点-多功能校准源 +/* +QMap> BaseCommonApi::getVerMultiCal(QString itemId,QMap *headList) +{ +QMap> DataMapList; +QList resultData; +QStringList result; +resultData.clear(); + +QSqlQuery query; + query.prepare("SELECT * FROM biz_business_device_measure_item_data_calibrator bbdmidc WHERE item_id = :itemId "); + // 将参数绑定到占位符 + query.bindValue(":itemId", itemId); + if (query.exec()) { + while (query.next()) { + result.clear(); + 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("create_time").toString()); + result.append(query.value("update_time").toString()); + resultData.append(result); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + //进行检定项目列头转换 + DataMapList= GetDataReturnItemList(resultData,DataMapList,headList); + return DataMapList; +} +*/ +QMap> BaseCommonApi::GetDataReturnItemList(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; for(const QStringList &row : ResultData) { if (!row.isEmpty()) { // 确保行不为空 if(row[2]=="DCV") { - QString VerificationItem= "DCV"; + + QString VerificationItem=NULL; + if(isFirst[0]) + { + VerificationItem = "DCV"; //添加列头 QStringList head; head << "序号" << "检定项目" << "量" << "单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; - HeadMapList->append(head); - + HeadMapList->insert(VerificationItem,head); + isFirst[0]=false; + } //添加数据 + QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 @@ -942,24 +1047,167 @@ Data.append("0"); } Data.append(row[9]); //分辨力 - + DCVList.append(Data); } else if(ResultData[2].first()=="ACV") { + QString VerificationItem=NULL; + if(isFirst[1]) + { + VerificationItem = "ACV"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[1]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACVList.append(Data); } else if(ResultData[2].first()=="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]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + DCIList.append(Data); } else if(ResultData[2].first()=="ACI") { + QString VerificationItem=NULL; + if(isFirst[3]) + { + VerificationItem = "ACI"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[3]=false; + } + //添加数据 - } else if(ResultData[2].first()=="ACV") + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACIList.append(Data); + } else if(ResultData[2].first()=="R") { + QString VerificationItem=NULL; + if(isFirst[4]) + { + VerificationItem = "R"; + //添加列头 + QStringList head; + head << "序号" <<"两线/四线" << "量" << "单位" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[4]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[13]); //两线/四线 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + RList.append(Data); } } } + if(DCVList.count()!=0){ + DataMapList.insert("DCV",DCVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACV",ACVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("DCI",DCIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACI",ACIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("R",RList); + }; + return DataMapList; } //检定数据管理 首页 QList BaseCommonApi::getVerificationData() @@ -1107,19 +1355,20 @@ result.append(query.value("frequency").toString()); result.append( query.value("range_range").toString()); result.append(query.value("standard_value").toString()); + result.append(query.value("indicating_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("other_outcome").toString()); - resultData.append(result); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *HeadList<<"id"<<"参数"<<"量"<<"单位"<<"频率" - <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"量程"<<"标准值" <<"示值" <<"分辨力"<<"最大允许误差"<<"误差参数a" <<"误差参数b"<<"合格率"; return resultData; @@ -1475,9 +1724,9 @@ "standard_device_id = :standard_device_id ," "update_time = :update_time " " WHERE id = :id;"); - QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); - QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); - query.bindValue(":update_time",currentDateTime); + QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":update_time",currentDateTime); query.bindValue(":program_name", verInfo.program_name); query.bindValue(":create_name", verInfo.create_name); query.bindValue(":create_time", formattedDateTime); @@ -1607,13 +1856,19 @@ //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { + saveInfo.data_no=TaskManager::getsaveResultdatano(); + QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_info " " (id,data_no,order_id,sample_id,item_id," " trace_date,measure_valid_date,measure_address,temperature,humidity,data_source," " outcome,create_time,update_time) " " VALUES " - " (:id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date,:measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time)"); + " (" + ":id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date," + ":measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time" + ")"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", saveInfo.id); //id 自动生成 query.bindValue(":data_no", saveInfo.data_no); @@ -1627,11 +1882,13 @@ query.bindValue(":humidity", saveInfo.humidity); query.bindValue(":data_source", saveInfo.data_source); query.bindValue(":outcome", saveInfo.outcome); - query.bindValue(":create_time", saveInfo.create_time); - query.bindValue(":update_time", saveInfo.update_time); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); + }else{ + TaskManager::AddResultDataNoCount(); } return isSuccess; @@ -1644,12 +1901,13 @@ " (id,data_id,equipment_id,create_time,update_time) " " VALUES " " (:id,:data_id,:equipment_id,:create_time,:update_time)"); - QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); +// QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", deviceMeasure.id); query.bindValue(":data_id", deviceMeasure.data_id); query.bindValue(":equipment_id", deviceMeasure.equipment_id); - query.bindValue(":create_time", createTime); - query.bindValue(":update_time", createTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1669,8 +1927,8 @@ " VALUES " " (:id,:data_id,:item_data_id,:maximum_error_formula,:error_param_a,:error_param_b,:params,:capacity,:unit,:frequency,:frequency_unit,:range_range,:standard_value,:indicating_value,:maximum_error,:absolute_error,:resolution,:line_mode,:remark,:an,:bn,:cn,:delta_an,:delta_bn,:delta_cn,:measure_indication_value,:standard_value_upper_limit,:accuracy_level,:create_time,:update_time);"); - QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); - +// QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",measureCalibrator.id); query.bindValue(":data_id",measureCalibrator.data_id); query.bindValue(":item_data_id",measureCalibrator.item_data_id); @@ -1699,8 +1957,8 @@ query.bindValue(":measure_indication_value",measureCalibrator.measure_indication_value); query.bindValue(":standard_value_upper_limit",measureCalibrator.standard_value_upper_limit); query.bindValue(":accuracy_level",measureCalibrator.accuracy_level); - query.bindValue(":create_time",formattedUpdateDateTime); - query.bindValue(":update_time",formattedUpdateDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); @@ -1878,14 +2136,14 @@ query.prepare("UPDATE zd_verification_program_manage SET check_name =:check_name," " create_name = :create_name, remark = :remark, img_path =:img_path, standard_device_id =:standard_device_id," " verification_documents_id=:verification_documents_id, update_time=:update_time WHERE id = :id;"); - QString formattedDateTime = check.update_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":check_name", check.check_name); query.bindValue(":create_name", check.create_name); query.bindValue(":remark", check.remark); query.bindValue(":img_path", check.img_path); query.bindValue(":standard_device_id", check.standard_device_id); query.bindValue(":verification_documents_id", check.verification_documents_id); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":update_time",currentDateTime); query.bindValue(":id", check.id); bool isSuccess = query.exec(); if (!isSuccess) { @@ -1905,6 +2163,33 @@ } return isSuccess; } +// 自动核查-根据 设备id查询核查件设备信息 +CheckAndTestedDevice BaseCommonApi::getCheckAndTestedDeviceById(QString deviceId) +{ + CheckAndTestedDevice result; + QSqlQuery query; + query.prepare("SELECT bei.id , bei.equipment_name , bei.model , bei.manufacture_no ," + " bei.manufacturer FROM biz_equipment_info bei WHERE bei.id = :deviceId " + " UNION ALL " + " SELECT eei.id , eei.equipment_name , eei.model, eei.manufacture_no , eei.manufacturer " + " FROM eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :deviceId"); + query.bindValue(":deviceId", deviceId); + bool isSuccess = query.exec(); + if (isSuccess) { + while (query.next()) { + CheckAndTestedDevice device; + device.id = query.value("id").toString(); + device.equipment_name = query.value("equipment_name").toString(); + device.model = query.value("model").toString(); + device.manufacture_no = query.value("manufacture_no").toString(); + device.manufacturer = query.value("manufacturer").toString(); + result=device; + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 bool BaseCommonApi::InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge) { @@ -1915,7 +2200,7 @@ "test_value_four,measure_value_four,test_value_five,measure_value_five,test_value_six,measure_value_six,maximum_error,create_time,update_time) " " VALUES " " (:id,:data_id,:unit,:check_point,:first_forward_stroke,:first_reverse_stroke,:second_forward_stroke,:second_reverse_stroke,:third_forward_stroke,:third_reverse_stroke,:average_value,:average_average_value,:max_indicating_error,:max_return_error,:params,:test_value_one,:measure_value_one,:test_value_two,:measure_value_two,:test_value_three,:measure_value_three,:test_value_four,:measure_value_four,:test_value_five,:measure_value_five,:test_value_six,:measure_value_six,:maximum_error,:create_time,:update_time) "); - QString formattedDateTime = gauge.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",gauge.id); query.bindValue(":data_id",gauge.data_id); query.bindValue(":unit",gauge.unit); @@ -1944,8 +2229,8 @@ query.bindValue(":test_value_six",gauge.test_value_six); query.bindValue(":measure_value_six",gauge.measure_value_six); query.bindValue(":maximum_error",gauge.maximum_error); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1965,7 +2250,7 @@ " (:id,:data_no,:check_date,:check_address,:temperature,:humidity,:check_accord,:stability_examine,:standard_equipment_id," ":equipment_id,:item_category_id,:conclusion,:remark,:create_user_id,:create_user_name,:create_time,:update_time) "); QString checkData = baseInfo.check_date.toString("yyyy-MM-dd"); - QString formattedDateTime = baseInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",baseInfo.id); query.bindValue(":data_no",baseInfo.data_no); query.bindValue(":check_date",checkData); @@ -1981,8 +2266,8 @@ query.bindValue(":remark",baseInfo.remark); query.bindValue(":create_user_id",baseInfo.create_user_id); query.bindValue(":create_user_name",baseInfo.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2074,8 +2359,8 @@ " VALUES " " (:id,:check_equipment_id,:data_id)"); query.bindValue(":id",equiment.id); - query.bindValue(":data_no",equiment.check_equipment_id); - query.bindValue(":check_date",equiment.data_id); + query.bindValue(":check_equipment_id",equiment.check_equipment_id); + query.bindValue(":data_id",equiment.data_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2102,7 +2387,7 @@ ":test_value_three_date, :test_value_three, :test_value_four_date, :test_value_four, " ":test_value_five_date, :test_value_five, :test_value_six_date, :test_value_six, :average_value, " ":standard_deviation, :relative_repeatability, :urel, :less_than, :qualified, :create_time, :update_time)"); - QString formattedDateTime = calibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", calibrator.id); query.bindValue(":data_id", calibrator.data_id); @@ -2131,8 +2416,8 @@ query.bindValue(":urel", calibrator.urel); query.bindValue(":less_than", calibrator.less_than); query.bindValue(":qualified", calibrator.qualified); - query.bindValue(":create_time", formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2185,7 +2470,7 @@ query.prepare("INSERT INTO biz_business_device_measure_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2193,8 +2478,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); @@ -2234,7 +2519,7 @@ query.prepare("INSERT INTO biz_equipment_standard_check_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2242,8 +2527,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index ed0d569..c6c6c43 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -2,11 +2,14 @@ #include "id/TaskManager.h" #include "basecommonapi.h" -// 定义并初始化静态成员变量 +// 定义并初始化静态成员变量 委托单编号 QMap TaskManager::dailyTaskCounts; QDate TaskManager::currentDate; QString TaskManager::KeyDate; +//检定结果保存 +QMap TaskManager::saveResultdatanoList; +QString TaskManager::ResultKeyDate; QString TaskManager::generateTask(QString Number) { // 初始化当天任务单数量为0 @@ -40,24 +43,67 @@ return taskId; } -int TaskManager::getTaskCountForToday() +QString TaskManager::getsaveResultdatano() { - // 返回当天的任务单数量 - return dailyTaskCounts.value(KeyDate, 0); + + //获取结果保存ID + ResultKeyDate = QDate::currentDate().toString("yyyyMMdd"); + //判断是否包含 如包含直接返回结果 + if(!saveResultdatanoList.contains(ResultKeyDate)) + { + + //找寻数据库上次的记录 + QString datano=BaseCommonApi::getNewResultData().data_no; + if(datano!=""){ + int startIndex = datano.lastIndexOf("j")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + //截截取 + QString result = datano.mid(startIndex, 8); + if(result!=ResultKeyDate){ + saveResultdatanoList[ResultKeyDate] = 1; + }else + { + //获取最后一位数 并加1 + QChar lastChar = datano.at(datano.length() - 1); + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + saveResultdatanoList[ResultKeyDate] = Count+1; + } + + } + + }else{saveResultdatanoList[ResultKeyDate] = 1;}; + + } + + QString dateStr = ResultKeyDate; + // 生成结果保存编号,这里假设编号格式是 "jdsjYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("jdsj%1%2").arg(dateStr).arg(saveResultdatanoList[ResultKeyDate], 4, 10, QChar('0')); + //返回结果 + return taskId; } + bool TaskManager::AddCurrenTaskCount() { // 增加当天任务单数量 try { - dailyTaskCounts[KeyDate]++; return true; } catch(const std::exception &e) { return false; } - } - +bool TaskManager::AddResultDataNoCount() +{ + // 增加当天任务单数量 + try { + saveResultdatanoList[ResultKeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } +} diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 08eeaf5..47ee4da 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -6,6 +6,7 @@ #include + BaseCommonApi::BaseCommonApi() { @@ -56,8 +57,10 @@ info.create_time = query.value("create_time").toDateTime(); info.update_time = query.value("update_time").toDateTime(); result=info; + } - }else { +// qDebug() << "sql代码: " << query.lastQuery(); + }else { qDebug() << "Query execution failed: " << query.lastError().text(); } @@ -121,6 +124,7 @@ " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); + if (query.exec()) { while (query.next()) { Dept Dept; @@ -188,6 +192,24 @@ } return result; } +//查看最新结果保存数据 +SaveDeviceMeasureInfo BaseCommonApi::getNewResultData() +{ + SaveDeviceMeasureInfo result; + QSqlQuery query; + query.prepare("select * from biz_business_device_measure_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + + result.id = query.value("id").toString(); + result.data_no = query.value("data_no").toString(); + + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //查看当前最新的任务单 QList BaseCommonApi::getCreateTaskListNew() { @@ -796,6 +818,25 @@ */ //根据被检设备ID获取当前设备的 检定项目及检定点 +/* +QMap> BaseCommonApi::Search_CalibrationTable(QString DeiverId,QMap *HeadList) +{ + + QMap> DataList; + DataList.clear(); + QList CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); + if(CliTable.count()==0)return DataList; + switch (CliTable[0].belong_standard_equipment.toInt()) + { + case 1: + //CliTable[0].id + //1717086652508487681 + DataList=BaseCommonApi::getVerMultiCal(CliTable[0].id,HeadList); + } + + return DataList; +}*/ +//根据被检设备ID获取当前设备的 检定项目及检定点 QList BaseCommonApi::Search_CalibrationTable(QString DeiverId,QStringList *HeadList) { @@ -813,7 +854,6 @@ return DataList; } - //核查设备对应的装置表 核查项及核查点 传参设备id QList BaseCommonApi::Search_VerifyTable(QString DeiverId,QStringList *HeadList ) { @@ -857,7 +897,6 @@ } return DataList; } - //被检设备管理-检定项目及检定点-多功能校准源 QList BaseCommonApi::getVerMultiCal(QString itemId,QStringList *headList) { @@ -908,22 +947,88 @@ <<"两线/四线模式"<<"线圈放大"<<"示值"<<"准确度a"<<"指针式仪表满量程值"<<"指针式仪表满量程值单位"<<"被检表示值"<<"准确度等级"<<"创建时间"<<"更新时间"; return resultData; } -bool GetDataReturnItemList(QList ResultData,QMap *DataMapList,QList *HeadMapList) +//被检设备管理-检定项目及检定点-多功能校准源 +/* +QMap> BaseCommonApi::getVerMultiCal(QString itemId,QMap *headList) +{ +QMap> DataMapList; +QList resultData; +QStringList result; +resultData.clear(); + +QSqlQuery query; + query.prepare("SELECT * FROM biz_business_device_measure_item_data_calibrator bbdmidc WHERE item_id = :itemId "); + // 将参数绑定到占位符 + query.bindValue(":itemId", itemId); + if (query.exec()) { + while (query.next()) { + result.clear(); + 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("create_time").toString()); + result.append(query.value("update_time").toString()); + resultData.append(result); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + //进行检定项目列头转换 + DataMapList= GetDataReturnItemList(resultData,DataMapList,headList); + return DataMapList; +} +*/ +QMap> BaseCommonApi::GetDataReturnItemList(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; for(const QStringList &row : ResultData) { if (!row.isEmpty()) { // 确保行不为空 if(row[2]=="DCV") { - QString VerificationItem= "DCV"; + + QString VerificationItem=NULL; + if(isFirst[0]) + { + VerificationItem = "DCV"; //添加列头 QStringList head; head << "序号" << "检定项目" << "量" << "单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; - HeadMapList->append(head); - + HeadMapList->insert(VerificationItem,head); + isFirst[0]=false; + } //添加数据 + QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 @@ -942,24 +1047,167 @@ Data.append("0"); } Data.append(row[9]); //分辨力 - + DCVList.append(Data); } else if(ResultData[2].first()=="ACV") { + QString VerificationItem=NULL; + if(isFirst[1]) + { + VerificationItem = "ACV"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[1]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACVList.append(Data); } else if(ResultData[2].first()=="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]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + DCIList.append(Data); } else if(ResultData[2].first()=="ACI") { + QString VerificationItem=NULL; + if(isFirst[3]) + { + VerificationItem = "ACI"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[3]=false; + } + //添加数据 - } else if(ResultData[2].first()=="ACV") + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACIList.append(Data); + } else if(ResultData[2].first()=="R") { + QString VerificationItem=NULL; + if(isFirst[4]) + { + VerificationItem = "R"; + //添加列头 + QStringList head; + head << "序号" <<"两线/四线" << "量" << "单位" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[4]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[13]); //两线/四线 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + RList.append(Data); } } } + if(DCVList.count()!=0){ + DataMapList.insert("DCV",DCVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACV",ACVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("DCI",DCIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACI",ACIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("R",RList); + }; + return DataMapList; } //检定数据管理 首页 QList BaseCommonApi::getVerificationData() @@ -1107,19 +1355,20 @@ result.append(query.value("frequency").toString()); result.append( query.value("range_range").toString()); result.append(query.value("standard_value").toString()); + result.append(query.value("indicating_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("other_outcome").toString()); - resultData.append(result); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *HeadList<<"id"<<"参数"<<"量"<<"单位"<<"频率" - <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"量程"<<"标准值" <<"示值" <<"分辨力"<<"最大允许误差"<<"误差参数a" <<"误差参数b"<<"合格率"; return resultData; @@ -1475,9 +1724,9 @@ "standard_device_id = :standard_device_id ," "update_time = :update_time " " WHERE id = :id;"); - QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); - QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); - query.bindValue(":update_time",currentDateTime); + QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":update_time",currentDateTime); query.bindValue(":program_name", verInfo.program_name); query.bindValue(":create_name", verInfo.create_name); query.bindValue(":create_time", formattedDateTime); @@ -1607,13 +1856,19 @@ //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { + saveInfo.data_no=TaskManager::getsaveResultdatano(); + QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_info " " (id,data_no,order_id,sample_id,item_id," " trace_date,measure_valid_date,measure_address,temperature,humidity,data_source," " outcome,create_time,update_time) " " VALUES " - " (:id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date,:measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time)"); + " (" + ":id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date," + ":measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time" + ")"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", saveInfo.id); //id 自动生成 query.bindValue(":data_no", saveInfo.data_no); @@ -1627,11 +1882,13 @@ query.bindValue(":humidity", saveInfo.humidity); query.bindValue(":data_source", saveInfo.data_source); query.bindValue(":outcome", saveInfo.outcome); - query.bindValue(":create_time", saveInfo.create_time); - query.bindValue(":update_time", saveInfo.update_time); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); + }else{ + TaskManager::AddResultDataNoCount(); } return isSuccess; @@ -1644,12 +1901,13 @@ " (id,data_id,equipment_id,create_time,update_time) " " VALUES " " (:id,:data_id,:equipment_id,:create_time,:update_time)"); - QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); +// QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", deviceMeasure.id); query.bindValue(":data_id", deviceMeasure.data_id); query.bindValue(":equipment_id", deviceMeasure.equipment_id); - query.bindValue(":create_time", createTime); - query.bindValue(":update_time", createTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1669,8 +1927,8 @@ " VALUES " " (:id,:data_id,:item_data_id,:maximum_error_formula,:error_param_a,:error_param_b,:params,:capacity,:unit,:frequency,:frequency_unit,:range_range,:standard_value,:indicating_value,:maximum_error,:absolute_error,:resolution,:line_mode,:remark,:an,:bn,:cn,:delta_an,:delta_bn,:delta_cn,:measure_indication_value,:standard_value_upper_limit,:accuracy_level,:create_time,:update_time);"); - QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); - +// QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",measureCalibrator.id); query.bindValue(":data_id",measureCalibrator.data_id); query.bindValue(":item_data_id",measureCalibrator.item_data_id); @@ -1699,8 +1957,8 @@ query.bindValue(":measure_indication_value",measureCalibrator.measure_indication_value); query.bindValue(":standard_value_upper_limit",measureCalibrator.standard_value_upper_limit); query.bindValue(":accuracy_level",measureCalibrator.accuracy_level); - query.bindValue(":create_time",formattedUpdateDateTime); - query.bindValue(":update_time",formattedUpdateDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); @@ -1878,14 +2136,14 @@ query.prepare("UPDATE zd_verification_program_manage SET check_name =:check_name," " create_name = :create_name, remark = :remark, img_path =:img_path, standard_device_id =:standard_device_id," " verification_documents_id=:verification_documents_id, update_time=:update_time WHERE id = :id;"); - QString formattedDateTime = check.update_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":check_name", check.check_name); query.bindValue(":create_name", check.create_name); query.bindValue(":remark", check.remark); query.bindValue(":img_path", check.img_path); query.bindValue(":standard_device_id", check.standard_device_id); query.bindValue(":verification_documents_id", check.verification_documents_id); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":update_time",currentDateTime); query.bindValue(":id", check.id); bool isSuccess = query.exec(); if (!isSuccess) { @@ -1905,6 +2163,33 @@ } return isSuccess; } +// 自动核查-根据 设备id查询核查件设备信息 +CheckAndTestedDevice BaseCommonApi::getCheckAndTestedDeviceById(QString deviceId) +{ + CheckAndTestedDevice result; + QSqlQuery query; + query.prepare("SELECT bei.id , bei.equipment_name , bei.model , bei.manufacture_no ," + " bei.manufacturer FROM biz_equipment_info bei WHERE bei.id = :deviceId " + " UNION ALL " + " SELECT eei.id , eei.equipment_name , eei.model, eei.manufacture_no , eei.manufacturer " + " FROM eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :deviceId"); + query.bindValue(":deviceId", deviceId); + bool isSuccess = query.exec(); + if (isSuccess) { + while (query.next()) { + CheckAndTestedDevice device; + device.id = query.value("id").toString(); + device.equipment_name = query.value("equipment_name").toString(); + device.model = query.value("model").toString(); + device.manufacture_no = query.value("manufacture_no").toString(); + device.manufacturer = query.value("manufacturer").toString(); + result=device; + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 bool BaseCommonApi::InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge) { @@ -1915,7 +2200,7 @@ "test_value_four,measure_value_four,test_value_five,measure_value_five,test_value_six,measure_value_six,maximum_error,create_time,update_time) " " VALUES " " (:id,:data_id,:unit,:check_point,:first_forward_stroke,:first_reverse_stroke,:second_forward_stroke,:second_reverse_stroke,:third_forward_stroke,:third_reverse_stroke,:average_value,:average_average_value,:max_indicating_error,:max_return_error,:params,:test_value_one,:measure_value_one,:test_value_two,:measure_value_two,:test_value_three,:measure_value_three,:test_value_four,:measure_value_four,:test_value_five,:measure_value_five,:test_value_six,:measure_value_six,:maximum_error,:create_time,:update_time) "); - QString formattedDateTime = gauge.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",gauge.id); query.bindValue(":data_id",gauge.data_id); query.bindValue(":unit",gauge.unit); @@ -1944,8 +2229,8 @@ query.bindValue(":test_value_six",gauge.test_value_six); query.bindValue(":measure_value_six",gauge.measure_value_six); query.bindValue(":maximum_error",gauge.maximum_error); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1965,7 +2250,7 @@ " (:id,:data_no,:check_date,:check_address,:temperature,:humidity,:check_accord,:stability_examine,:standard_equipment_id," ":equipment_id,:item_category_id,:conclusion,:remark,:create_user_id,:create_user_name,:create_time,:update_time) "); QString checkData = baseInfo.check_date.toString("yyyy-MM-dd"); - QString formattedDateTime = baseInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",baseInfo.id); query.bindValue(":data_no",baseInfo.data_no); query.bindValue(":check_date",checkData); @@ -1981,8 +2266,8 @@ query.bindValue(":remark",baseInfo.remark); query.bindValue(":create_user_id",baseInfo.create_user_id); query.bindValue(":create_user_name",baseInfo.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2074,8 +2359,8 @@ " VALUES " " (:id,:check_equipment_id,:data_id)"); query.bindValue(":id",equiment.id); - query.bindValue(":data_no",equiment.check_equipment_id); - query.bindValue(":check_date",equiment.data_id); + query.bindValue(":check_equipment_id",equiment.check_equipment_id); + query.bindValue(":data_id",equiment.data_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2102,7 +2387,7 @@ ":test_value_three_date, :test_value_three, :test_value_four_date, :test_value_four, " ":test_value_five_date, :test_value_five, :test_value_six_date, :test_value_six, :average_value, " ":standard_deviation, :relative_repeatability, :urel, :less_than, :qualified, :create_time, :update_time)"); - QString formattedDateTime = calibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", calibrator.id); query.bindValue(":data_id", calibrator.data_id); @@ -2131,8 +2416,8 @@ query.bindValue(":urel", calibrator.urel); query.bindValue(":less_than", calibrator.less_than); query.bindValue(":qualified", calibrator.qualified); - query.bindValue(":create_time", formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2185,7 +2470,7 @@ query.prepare("INSERT INTO biz_business_device_measure_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2193,8 +2478,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); @@ -2234,7 +2519,7 @@ query.prepare("INSERT INTO biz_equipment_standard_check_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2242,8 +2527,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index a132816..479d8ba 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -828,7 +828,8 @@ QString encrypt(const QString &str, const QString &publicKey); //判断检定装置表并查询 参数设备id - static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + //static QMap> Search_CalibrationTable(QString DeiverId,QMap *HeadList); //判断核查装置表并查询 参数设备id static QList Search_VerifyTable(QString DeiverId,QStringList *HeadList ); @@ -891,6 +892,10 @@ static JudgeCalibrationTable getJudgeVerifyTable(QString id); //被检设备管理-检定项目及检定点-多功能校准源 static QList getVerMultiCal(QString itemId,QStringList *headList); + //static QMap> getVerMultiCal(QString itemId,QMap *headList); + static QMap> GetDataReturnItemList(QList ResultData, + QMap> DataMapList, + QMap *HeadMapList); // 获取检定数据管理 首页 static QList getVerificationData(); // 检定数据管理-检定基本信息-标准设备 @@ -967,6 +972,8 @@ static bool DeleteCheckProgramManage(QString id); // 设备与装置-标准装置管理-核查数据基本信息关联的核查标准设备,即给设备做核查的设备 static bool InsertStandCheckInfoEquipent(StandCheckInfoEquipent equiment); +// 自动核查-根据 设备id查询核查件设备信息 + static CheckAndTestedDevice getCheckAndTestedDeviceById(QString deviceId); //自动核查--结果保存-设备与装置-标准装置管理-多功能校准源 static bool InsertStandCheckDataCalibrator(StandCheckDataCalibrator calibrator); //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 @@ -991,7 +998,8 @@ static bool InsertCheckModifyRecord(MeasureModifyRecord record); //设备与装置-标准装置管理-核查数据管理核查数据历史修改记录[查询] 参数 检定数据管理基础信息表id static QList getMeasureModifyRecord(QString data_id); - + //查询最新结果保存记录 + static SaveDeviceMeasureInfo getNewResultData(); }; diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index ed0d569..c6c6c43 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -2,11 +2,14 @@ #include "id/TaskManager.h" #include "basecommonapi.h" -// 定义并初始化静态成员变量 +// 定义并初始化静态成员变量 委托单编号 QMap TaskManager::dailyTaskCounts; QDate TaskManager::currentDate; QString TaskManager::KeyDate; +//检定结果保存 +QMap TaskManager::saveResultdatanoList; +QString TaskManager::ResultKeyDate; QString TaskManager::generateTask(QString Number) { // 初始化当天任务单数量为0 @@ -40,24 +43,67 @@ return taskId; } -int TaskManager::getTaskCountForToday() +QString TaskManager::getsaveResultdatano() { - // 返回当天的任务单数量 - return dailyTaskCounts.value(KeyDate, 0); + + //获取结果保存ID + ResultKeyDate = QDate::currentDate().toString("yyyyMMdd"); + //判断是否包含 如包含直接返回结果 + if(!saveResultdatanoList.contains(ResultKeyDate)) + { + + //找寻数据库上次的记录 + QString datano=BaseCommonApi::getNewResultData().data_no; + if(datano!=""){ + int startIndex = datano.lastIndexOf("j")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + //截截取 + QString result = datano.mid(startIndex, 8); + if(result!=ResultKeyDate){ + saveResultdatanoList[ResultKeyDate] = 1; + }else + { + //获取最后一位数 并加1 + QChar lastChar = datano.at(datano.length() - 1); + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + saveResultdatanoList[ResultKeyDate] = Count+1; + } + + } + + }else{saveResultdatanoList[ResultKeyDate] = 1;}; + + } + + QString dateStr = ResultKeyDate; + // 生成结果保存编号,这里假设编号格式是 "jdsjYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("jdsj%1%2").arg(dateStr).arg(saveResultdatanoList[ResultKeyDate], 4, 10, QChar('0')); + //返回结果 + return taskId; } + bool TaskManager::AddCurrenTaskCount() { // 增加当天任务单数量 try { - dailyTaskCounts[KeyDate]++; return true; } catch(const std::exception &e) { return false; } - } - +bool TaskManager::AddResultDataNoCount() +{ + // 增加当天任务单数量 + try { + saveResultdatanoList[ResultKeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } +} diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 08eeaf5..47ee4da 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -6,6 +6,7 @@ #include + BaseCommonApi::BaseCommonApi() { @@ -56,8 +57,10 @@ info.create_time = query.value("create_time").toDateTime(); info.update_time = query.value("update_time").toDateTime(); result=info; + } - }else { +// qDebug() << "sql代码: " << query.lastQuery(); + }else { qDebug() << "Query execution failed: " << query.lastError().text(); } @@ -121,6 +124,7 @@ " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); + if (query.exec()) { while (query.next()) { Dept Dept; @@ -188,6 +192,24 @@ } return result; } +//查看最新结果保存数据 +SaveDeviceMeasureInfo BaseCommonApi::getNewResultData() +{ + SaveDeviceMeasureInfo result; + QSqlQuery query; + query.prepare("select * from biz_business_device_measure_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + + result.id = query.value("id").toString(); + result.data_no = query.value("data_no").toString(); + + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //查看当前最新的任务单 QList BaseCommonApi::getCreateTaskListNew() { @@ -796,6 +818,25 @@ */ //根据被检设备ID获取当前设备的 检定项目及检定点 +/* +QMap> BaseCommonApi::Search_CalibrationTable(QString DeiverId,QMap *HeadList) +{ + + QMap> DataList; + DataList.clear(); + QList CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); + if(CliTable.count()==0)return DataList; + switch (CliTable[0].belong_standard_equipment.toInt()) + { + case 1: + //CliTable[0].id + //1717086652508487681 + DataList=BaseCommonApi::getVerMultiCal(CliTable[0].id,HeadList); + } + + return DataList; +}*/ +//根据被检设备ID获取当前设备的 检定项目及检定点 QList BaseCommonApi::Search_CalibrationTable(QString DeiverId,QStringList *HeadList) { @@ -813,7 +854,6 @@ return DataList; } - //核查设备对应的装置表 核查项及核查点 传参设备id QList BaseCommonApi::Search_VerifyTable(QString DeiverId,QStringList *HeadList ) { @@ -857,7 +897,6 @@ } return DataList; } - //被检设备管理-检定项目及检定点-多功能校准源 QList BaseCommonApi::getVerMultiCal(QString itemId,QStringList *headList) { @@ -908,22 +947,88 @@ <<"两线/四线模式"<<"线圈放大"<<"示值"<<"准确度a"<<"指针式仪表满量程值"<<"指针式仪表满量程值单位"<<"被检表示值"<<"准确度等级"<<"创建时间"<<"更新时间"; return resultData; } -bool GetDataReturnItemList(QList ResultData,QMap *DataMapList,QList *HeadMapList) +//被检设备管理-检定项目及检定点-多功能校准源 +/* +QMap> BaseCommonApi::getVerMultiCal(QString itemId,QMap *headList) +{ +QMap> DataMapList; +QList resultData; +QStringList result; +resultData.clear(); + +QSqlQuery query; + query.prepare("SELECT * FROM biz_business_device_measure_item_data_calibrator bbdmidc WHERE item_id = :itemId "); + // 将参数绑定到占位符 + query.bindValue(":itemId", itemId); + if (query.exec()) { + while (query.next()) { + result.clear(); + 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("create_time").toString()); + result.append(query.value("update_time").toString()); + resultData.append(result); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + //进行检定项目列头转换 + DataMapList= GetDataReturnItemList(resultData,DataMapList,headList); + return DataMapList; +} +*/ +QMap> BaseCommonApi::GetDataReturnItemList(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; for(const QStringList &row : ResultData) { if (!row.isEmpty()) { // 确保行不为空 if(row[2]=="DCV") { - QString VerificationItem= "DCV"; + + QString VerificationItem=NULL; + if(isFirst[0]) + { + VerificationItem = "DCV"; //添加列头 QStringList head; head << "序号" << "检定项目" << "量" << "单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; - HeadMapList->append(head); - + HeadMapList->insert(VerificationItem,head); + isFirst[0]=false; + } //添加数据 + QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 @@ -942,24 +1047,167 @@ Data.append("0"); } Data.append(row[9]); //分辨力 - + DCVList.append(Data); } else if(ResultData[2].first()=="ACV") { + QString VerificationItem=NULL; + if(isFirst[1]) + { + VerificationItem = "ACV"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[1]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACVList.append(Data); } else if(ResultData[2].first()=="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]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + DCIList.append(Data); } else if(ResultData[2].first()=="ACI") { + QString VerificationItem=NULL; + if(isFirst[3]) + { + VerificationItem = "ACI"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[3]=false; + } + //添加数据 - } else if(ResultData[2].first()=="ACV") + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACIList.append(Data); + } else if(ResultData[2].first()=="R") { + QString VerificationItem=NULL; + if(isFirst[4]) + { + VerificationItem = "R"; + //添加列头 + QStringList head; + head << "序号" <<"两线/四线" << "量" << "单位" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[4]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[13]); //两线/四线 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + RList.append(Data); } } } + if(DCVList.count()!=0){ + DataMapList.insert("DCV",DCVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACV",ACVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("DCI",DCIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACI",ACIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("R",RList); + }; + return DataMapList; } //检定数据管理 首页 QList BaseCommonApi::getVerificationData() @@ -1107,19 +1355,20 @@ result.append(query.value("frequency").toString()); result.append( query.value("range_range").toString()); result.append(query.value("standard_value").toString()); + result.append(query.value("indicating_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("other_outcome").toString()); - resultData.append(result); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *HeadList<<"id"<<"参数"<<"量"<<"单位"<<"频率" - <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"量程"<<"标准值" <<"示值" <<"分辨力"<<"最大允许误差"<<"误差参数a" <<"误差参数b"<<"合格率"; return resultData; @@ -1475,9 +1724,9 @@ "standard_device_id = :standard_device_id ," "update_time = :update_time " " WHERE id = :id;"); - QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); - QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); - query.bindValue(":update_time",currentDateTime); + QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":update_time",currentDateTime); query.bindValue(":program_name", verInfo.program_name); query.bindValue(":create_name", verInfo.create_name); query.bindValue(":create_time", formattedDateTime); @@ -1607,13 +1856,19 @@ //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { + saveInfo.data_no=TaskManager::getsaveResultdatano(); + QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_info " " (id,data_no,order_id,sample_id,item_id," " trace_date,measure_valid_date,measure_address,temperature,humidity,data_source," " outcome,create_time,update_time) " " VALUES " - " (:id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date,:measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time)"); + " (" + ":id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date," + ":measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time" + ")"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", saveInfo.id); //id 自动生成 query.bindValue(":data_no", saveInfo.data_no); @@ -1627,11 +1882,13 @@ query.bindValue(":humidity", saveInfo.humidity); query.bindValue(":data_source", saveInfo.data_source); query.bindValue(":outcome", saveInfo.outcome); - query.bindValue(":create_time", saveInfo.create_time); - query.bindValue(":update_time", saveInfo.update_time); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); + }else{ + TaskManager::AddResultDataNoCount(); } return isSuccess; @@ -1644,12 +1901,13 @@ " (id,data_id,equipment_id,create_time,update_time) " " VALUES " " (:id,:data_id,:equipment_id,:create_time,:update_time)"); - QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); +// QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", deviceMeasure.id); query.bindValue(":data_id", deviceMeasure.data_id); query.bindValue(":equipment_id", deviceMeasure.equipment_id); - query.bindValue(":create_time", createTime); - query.bindValue(":update_time", createTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1669,8 +1927,8 @@ " VALUES " " (:id,:data_id,:item_data_id,:maximum_error_formula,:error_param_a,:error_param_b,:params,:capacity,:unit,:frequency,:frequency_unit,:range_range,:standard_value,:indicating_value,:maximum_error,:absolute_error,:resolution,:line_mode,:remark,:an,:bn,:cn,:delta_an,:delta_bn,:delta_cn,:measure_indication_value,:standard_value_upper_limit,:accuracy_level,:create_time,:update_time);"); - QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); - +// QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",measureCalibrator.id); query.bindValue(":data_id",measureCalibrator.data_id); query.bindValue(":item_data_id",measureCalibrator.item_data_id); @@ -1699,8 +1957,8 @@ query.bindValue(":measure_indication_value",measureCalibrator.measure_indication_value); query.bindValue(":standard_value_upper_limit",measureCalibrator.standard_value_upper_limit); query.bindValue(":accuracy_level",measureCalibrator.accuracy_level); - query.bindValue(":create_time",formattedUpdateDateTime); - query.bindValue(":update_time",formattedUpdateDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); @@ -1878,14 +2136,14 @@ query.prepare("UPDATE zd_verification_program_manage SET check_name =:check_name," " create_name = :create_name, remark = :remark, img_path =:img_path, standard_device_id =:standard_device_id," " verification_documents_id=:verification_documents_id, update_time=:update_time WHERE id = :id;"); - QString formattedDateTime = check.update_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":check_name", check.check_name); query.bindValue(":create_name", check.create_name); query.bindValue(":remark", check.remark); query.bindValue(":img_path", check.img_path); query.bindValue(":standard_device_id", check.standard_device_id); query.bindValue(":verification_documents_id", check.verification_documents_id); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":update_time",currentDateTime); query.bindValue(":id", check.id); bool isSuccess = query.exec(); if (!isSuccess) { @@ -1905,6 +2163,33 @@ } return isSuccess; } +// 自动核查-根据 设备id查询核查件设备信息 +CheckAndTestedDevice BaseCommonApi::getCheckAndTestedDeviceById(QString deviceId) +{ + CheckAndTestedDevice result; + QSqlQuery query; + query.prepare("SELECT bei.id , bei.equipment_name , bei.model , bei.manufacture_no ," + " bei.manufacturer FROM biz_equipment_info bei WHERE bei.id = :deviceId " + " UNION ALL " + " SELECT eei.id , eei.equipment_name , eei.model, eei.manufacture_no , eei.manufacturer " + " FROM eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :deviceId"); + query.bindValue(":deviceId", deviceId); + bool isSuccess = query.exec(); + if (isSuccess) { + while (query.next()) { + CheckAndTestedDevice device; + device.id = query.value("id").toString(); + device.equipment_name = query.value("equipment_name").toString(); + device.model = query.value("model").toString(); + device.manufacture_no = query.value("manufacture_no").toString(); + device.manufacturer = query.value("manufacturer").toString(); + result=device; + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 bool BaseCommonApi::InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge) { @@ -1915,7 +2200,7 @@ "test_value_four,measure_value_four,test_value_five,measure_value_five,test_value_six,measure_value_six,maximum_error,create_time,update_time) " " VALUES " " (:id,:data_id,:unit,:check_point,:first_forward_stroke,:first_reverse_stroke,:second_forward_stroke,:second_reverse_stroke,:third_forward_stroke,:third_reverse_stroke,:average_value,:average_average_value,:max_indicating_error,:max_return_error,:params,:test_value_one,:measure_value_one,:test_value_two,:measure_value_two,:test_value_three,:measure_value_three,:test_value_four,:measure_value_four,:test_value_five,:measure_value_five,:test_value_six,:measure_value_six,:maximum_error,:create_time,:update_time) "); - QString formattedDateTime = gauge.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",gauge.id); query.bindValue(":data_id",gauge.data_id); query.bindValue(":unit",gauge.unit); @@ -1944,8 +2229,8 @@ query.bindValue(":test_value_six",gauge.test_value_six); query.bindValue(":measure_value_six",gauge.measure_value_six); query.bindValue(":maximum_error",gauge.maximum_error); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1965,7 +2250,7 @@ " (:id,:data_no,:check_date,:check_address,:temperature,:humidity,:check_accord,:stability_examine,:standard_equipment_id," ":equipment_id,:item_category_id,:conclusion,:remark,:create_user_id,:create_user_name,:create_time,:update_time) "); QString checkData = baseInfo.check_date.toString("yyyy-MM-dd"); - QString formattedDateTime = baseInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",baseInfo.id); query.bindValue(":data_no",baseInfo.data_no); query.bindValue(":check_date",checkData); @@ -1981,8 +2266,8 @@ query.bindValue(":remark",baseInfo.remark); query.bindValue(":create_user_id",baseInfo.create_user_id); query.bindValue(":create_user_name",baseInfo.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2074,8 +2359,8 @@ " VALUES " " (:id,:check_equipment_id,:data_id)"); query.bindValue(":id",equiment.id); - query.bindValue(":data_no",equiment.check_equipment_id); - query.bindValue(":check_date",equiment.data_id); + query.bindValue(":check_equipment_id",equiment.check_equipment_id); + query.bindValue(":data_id",equiment.data_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2102,7 +2387,7 @@ ":test_value_three_date, :test_value_three, :test_value_four_date, :test_value_four, " ":test_value_five_date, :test_value_five, :test_value_six_date, :test_value_six, :average_value, " ":standard_deviation, :relative_repeatability, :urel, :less_than, :qualified, :create_time, :update_time)"); - QString formattedDateTime = calibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", calibrator.id); query.bindValue(":data_id", calibrator.data_id); @@ -2131,8 +2416,8 @@ query.bindValue(":urel", calibrator.urel); query.bindValue(":less_than", calibrator.less_than); query.bindValue(":qualified", calibrator.qualified); - query.bindValue(":create_time", formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2185,7 +2470,7 @@ query.prepare("INSERT INTO biz_business_device_measure_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2193,8 +2478,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); @@ -2234,7 +2519,7 @@ query.prepare("INSERT INTO biz_equipment_standard_check_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2242,8 +2527,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index a132816..479d8ba 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -828,7 +828,8 @@ QString encrypt(const QString &str, const QString &publicKey); //判断检定装置表并查询 参数设备id - static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + //static QMap> Search_CalibrationTable(QString DeiverId,QMap *HeadList); //判断核查装置表并查询 参数设备id static QList Search_VerifyTable(QString DeiverId,QStringList *HeadList ); @@ -891,6 +892,10 @@ static JudgeCalibrationTable getJudgeVerifyTable(QString id); //被检设备管理-检定项目及检定点-多功能校准源 static QList getVerMultiCal(QString itemId,QStringList *headList); + //static QMap> getVerMultiCal(QString itemId,QMap *headList); + static QMap> GetDataReturnItemList(QList ResultData, + QMap> DataMapList, + QMap *HeadMapList); // 获取检定数据管理 首页 static QList getVerificationData(); // 检定数据管理-检定基本信息-标准设备 @@ -967,6 +972,8 @@ static bool DeleteCheckProgramManage(QString id); // 设备与装置-标准装置管理-核查数据基本信息关联的核查标准设备,即给设备做核查的设备 static bool InsertStandCheckInfoEquipent(StandCheckInfoEquipent equiment); +// 自动核查-根据 设备id查询核查件设备信息 + static CheckAndTestedDevice getCheckAndTestedDeviceById(QString deviceId); //自动核查--结果保存-设备与装置-标准装置管理-多功能校准源 static bool InsertStandCheckDataCalibrator(StandCheckDataCalibrator calibrator); //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 @@ -991,7 +998,8 @@ static bool InsertCheckModifyRecord(MeasureModifyRecord record); //设备与装置-标准装置管理-核查数据管理核查数据历史修改记录[查询] 参数 检定数据管理基础信息表id static QList getMeasureModifyRecord(QString data_id); - + //查询最新结果保存记录 + static SaveDeviceMeasureInfo getNewResultData(); }; diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index 4cfa1b6..fef3880 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -199,7 +199,7 @@ QStringList headlist; QList Data=dbManager.Search_CalibrationTable(id,&headlist); - + //QList Data; //tableWidgetItem ui->tableWidgetItem->setRowCount(0); ui->tableWidgetItem->setColumnCount(headlist.count()); diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index ed0d569..c6c6c43 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -2,11 +2,14 @@ #include "id/TaskManager.h" #include "basecommonapi.h" -// 定义并初始化静态成员变量 +// 定义并初始化静态成员变量 委托单编号 QMap TaskManager::dailyTaskCounts; QDate TaskManager::currentDate; QString TaskManager::KeyDate; +//检定结果保存 +QMap TaskManager::saveResultdatanoList; +QString TaskManager::ResultKeyDate; QString TaskManager::generateTask(QString Number) { // 初始化当天任务单数量为0 @@ -40,24 +43,67 @@ return taskId; } -int TaskManager::getTaskCountForToday() +QString TaskManager::getsaveResultdatano() { - // 返回当天的任务单数量 - return dailyTaskCounts.value(KeyDate, 0); + + //获取结果保存ID + ResultKeyDate = QDate::currentDate().toString("yyyyMMdd"); + //判断是否包含 如包含直接返回结果 + if(!saveResultdatanoList.contains(ResultKeyDate)) + { + + //找寻数据库上次的记录 + QString datano=BaseCommonApi::getNewResultData().data_no; + if(datano!=""){ + int startIndex = datano.lastIndexOf("j")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + //截截取 + QString result = datano.mid(startIndex, 8); + if(result!=ResultKeyDate){ + saveResultdatanoList[ResultKeyDate] = 1; + }else + { + //获取最后一位数 并加1 + QChar lastChar = datano.at(datano.length() - 1); + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + saveResultdatanoList[ResultKeyDate] = Count+1; + } + + } + + }else{saveResultdatanoList[ResultKeyDate] = 1;}; + + } + + QString dateStr = ResultKeyDate; + // 生成结果保存编号,这里假设编号格式是 "jdsjYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("jdsj%1%2").arg(dateStr).arg(saveResultdatanoList[ResultKeyDate], 4, 10, QChar('0')); + //返回结果 + return taskId; } + bool TaskManager::AddCurrenTaskCount() { // 增加当天任务单数量 try { - dailyTaskCounts[KeyDate]++; return true; } catch(const std::exception &e) { return false; } - } - +bool TaskManager::AddResultDataNoCount() +{ + // 增加当天任务单数量 + try { + saveResultdatanoList[ResultKeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } +} diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 08eeaf5..47ee4da 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -6,6 +6,7 @@ #include + BaseCommonApi::BaseCommonApi() { @@ -56,8 +57,10 @@ info.create_time = query.value("create_time").toDateTime(); info.update_time = query.value("update_time").toDateTime(); result=info; + } - }else { +// qDebug() << "sql代码: " << query.lastQuery(); + }else { qDebug() << "Query execution failed: " << query.lastError().text(); } @@ -121,6 +124,7 @@ " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); + if (query.exec()) { while (query.next()) { Dept Dept; @@ -188,6 +192,24 @@ } return result; } +//查看最新结果保存数据 +SaveDeviceMeasureInfo BaseCommonApi::getNewResultData() +{ + SaveDeviceMeasureInfo result; + QSqlQuery query; + query.prepare("select * from biz_business_device_measure_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + + result.id = query.value("id").toString(); + result.data_no = query.value("data_no").toString(); + + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //查看当前最新的任务单 QList BaseCommonApi::getCreateTaskListNew() { @@ -796,6 +818,25 @@ */ //根据被检设备ID获取当前设备的 检定项目及检定点 +/* +QMap> BaseCommonApi::Search_CalibrationTable(QString DeiverId,QMap *HeadList) +{ + + QMap> DataList; + DataList.clear(); + QList CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); + if(CliTable.count()==0)return DataList; + switch (CliTable[0].belong_standard_equipment.toInt()) + { + case 1: + //CliTable[0].id + //1717086652508487681 + DataList=BaseCommonApi::getVerMultiCal(CliTable[0].id,HeadList); + } + + return DataList; +}*/ +//根据被检设备ID获取当前设备的 检定项目及检定点 QList BaseCommonApi::Search_CalibrationTable(QString DeiverId,QStringList *HeadList) { @@ -813,7 +854,6 @@ return DataList; } - //核查设备对应的装置表 核查项及核查点 传参设备id QList BaseCommonApi::Search_VerifyTable(QString DeiverId,QStringList *HeadList ) { @@ -857,7 +897,6 @@ } return DataList; } - //被检设备管理-检定项目及检定点-多功能校准源 QList BaseCommonApi::getVerMultiCal(QString itemId,QStringList *headList) { @@ -908,22 +947,88 @@ <<"两线/四线模式"<<"线圈放大"<<"示值"<<"准确度a"<<"指针式仪表满量程值"<<"指针式仪表满量程值单位"<<"被检表示值"<<"准确度等级"<<"创建时间"<<"更新时间"; return resultData; } -bool GetDataReturnItemList(QList ResultData,QMap *DataMapList,QList *HeadMapList) +//被检设备管理-检定项目及检定点-多功能校准源 +/* +QMap> BaseCommonApi::getVerMultiCal(QString itemId,QMap *headList) +{ +QMap> DataMapList; +QList resultData; +QStringList result; +resultData.clear(); + +QSqlQuery query; + query.prepare("SELECT * FROM biz_business_device_measure_item_data_calibrator bbdmidc WHERE item_id = :itemId "); + // 将参数绑定到占位符 + query.bindValue(":itemId", itemId); + if (query.exec()) { + while (query.next()) { + result.clear(); + 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("create_time").toString()); + result.append(query.value("update_time").toString()); + resultData.append(result); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + //进行检定项目列头转换 + DataMapList= GetDataReturnItemList(resultData,DataMapList,headList); + return DataMapList; +} +*/ +QMap> BaseCommonApi::GetDataReturnItemList(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; for(const QStringList &row : ResultData) { if (!row.isEmpty()) { // 确保行不为空 if(row[2]=="DCV") { - QString VerificationItem= "DCV"; + + QString VerificationItem=NULL; + if(isFirst[0]) + { + VerificationItem = "DCV"; //添加列头 QStringList head; head << "序号" << "检定项目" << "量" << "单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; - HeadMapList->append(head); - + HeadMapList->insert(VerificationItem,head); + isFirst[0]=false; + } //添加数据 + QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 @@ -942,24 +1047,167 @@ Data.append("0"); } Data.append(row[9]); //分辨力 - + DCVList.append(Data); } else if(ResultData[2].first()=="ACV") { + QString VerificationItem=NULL; + if(isFirst[1]) + { + VerificationItem = "ACV"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[1]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACVList.append(Data); } else if(ResultData[2].first()=="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]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + DCIList.append(Data); } else if(ResultData[2].first()=="ACI") { + QString VerificationItem=NULL; + if(isFirst[3]) + { + VerificationItem = "ACI"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[3]=false; + } + //添加数据 - } else if(ResultData[2].first()=="ACV") + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACIList.append(Data); + } else if(ResultData[2].first()=="R") { + QString VerificationItem=NULL; + if(isFirst[4]) + { + VerificationItem = "R"; + //添加列头 + QStringList head; + head << "序号" <<"两线/四线" << "量" << "单位" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[4]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[13]); //两线/四线 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + RList.append(Data); } } } + if(DCVList.count()!=0){ + DataMapList.insert("DCV",DCVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACV",ACVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("DCI",DCIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACI",ACIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("R",RList); + }; + return DataMapList; } //检定数据管理 首页 QList BaseCommonApi::getVerificationData() @@ -1107,19 +1355,20 @@ result.append(query.value("frequency").toString()); result.append( query.value("range_range").toString()); result.append(query.value("standard_value").toString()); + result.append(query.value("indicating_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("other_outcome").toString()); - resultData.append(result); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *HeadList<<"id"<<"参数"<<"量"<<"单位"<<"频率" - <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"量程"<<"标准值" <<"示值" <<"分辨力"<<"最大允许误差"<<"误差参数a" <<"误差参数b"<<"合格率"; return resultData; @@ -1475,9 +1724,9 @@ "standard_device_id = :standard_device_id ," "update_time = :update_time " " WHERE id = :id;"); - QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); - QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); - query.bindValue(":update_time",currentDateTime); + QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":update_time",currentDateTime); query.bindValue(":program_name", verInfo.program_name); query.bindValue(":create_name", verInfo.create_name); query.bindValue(":create_time", formattedDateTime); @@ -1607,13 +1856,19 @@ //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { + saveInfo.data_no=TaskManager::getsaveResultdatano(); + QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_info " " (id,data_no,order_id,sample_id,item_id," " trace_date,measure_valid_date,measure_address,temperature,humidity,data_source," " outcome,create_time,update_time) " " VALUES " - " (:id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date,:measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time)"); + " (" + ":id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date," + ":measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time" + ")"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", saveInfo.id); //id 自动生成 query.bindValue(":data_no", saveInfo.data_no); @@ -1627,11 +1882,13 @@ query.bindValue(":humidity", saveInfo.humidity); query.bindValue(":data_source", saveInfo.data_source); query.bindValue(":outcome", saveInfo.outcome); - query.bindValue(":create_time", saveInfo.create_time); - query.bindValue(":update_time", saveInfo.update_time); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); + }else{ + TaskManager::AddResultDataNoCount(); } return isSuccess; @@ -1644,12 +1901,13 @@ " (id,data_id,equipment_id,create_time,update_time) " " VALUES " " (:id,:data_id,:equipment_id,:create_time,:update_time)"); - QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); +// QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", deviceMeasure.id); query.bindValue(":data_id", deviceMeasure.data_id); query.bindValue(":equipment_id", deviceMeasure.equipment_id); - query.bindValue(":create_time", createTime); - query.bindValue(":update_time", createTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1669,8 +1927,8 @@ " VALUES " " (:id,:data_id,:item_data_id,:maximum_error_formula,:error_param_a,:error_param_b,:params,:capacity,:unit,:frequency,:frequency_unit,:range_range,:standard_value,:indicating_value,:maximum_error,:absolute_error,:resolution,:line_mode,:remark,:an,:bn,:cn,:delta_an,:delta_bn,:delta_cn,:measure_indication_value,:standard_value_upper_limit,:accuracy_level,:create_time,:update_time);"); - QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); - +// QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",measureCalibrator.id); query.bindValue(":data_id",measureCalibrator.data_id); query.bindValue(":item_data_id",measureCalibrator.item_data_id); @@ -1699,8 +1957,8 @@ query.bindValue(":measure_indication_value",measureCalibrator.measure_indication_value); query.bindValue(":standard_value_upper_limit",measureCalibrator.standard_value_upper_limit); query.bindValue(":accuracy_level",measureCalibrator.accuracy_level); - query.bindValue(":create_time",formattedUpdateDateTime); - query.bindValue(":update_time",formattedUpdateDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); @@ -1878,14 +2136,14 @@ query.prepare("UPDATE zd_verification_program_manage SET check_name =:check_name," " create_name = :create_name, remark = :remark, img_path =:img_path, standard_device_id =:standard_device_id," " verification_documents_id=:verification_documents_id, update_time=:update_time WHERE id = :id;"); - QString formattedDateTime = check.update_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":check_name", check.check_name); query.bindValue(":create_name", check.create_name); query.bindValue(":remark", check.remark); query.bindValue(":img_path", check.img_path); query.bindValue(":standard_device_id", check.standard_device_id); query.bindValue(":verification_documents_id", check.verification_documents_id); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":update_time",currentDateTime); query.bindValue(":id", check.id); bool isSuccess = query.exec(); if (!isSuccess) { @@ -1905,6 +2163,33 @@ } return isSuccess; } +// 自动核查-根据 设备id查询核查件设备信息 +CheckAndTestedDevice BaseCommonApi::getCheckAndTestedDeviceById(QString deviceId) +{ + CheckAndTestedDevice result; + QSqlQuery query; + query.prepare("SELECT bei.id , bei.equipment_name , bei.model , bei.manufacture_no ," + " bei.manufacturer FROM biz_equipment_info bei WHERE bei.id = :deviceId " + " UNION ALL " + " SELECT eei.id , eei.equipment_name , eei.model, eei.manufacture_no , eei.manufacturer " + " FROM eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :deviceId"); + query.bindValue(":deviceId", deviceId); + bool isSuccess = query.exec(); + if (isSuccess) { + while (query.next()) { + CheckAndTestedDevice device; + device.id = query.value("id").toString(); + device.equipment_name = query.value("equipment_name").toString(); + device.model = query.value("model").toString(); + device.manufacture_no = query.value("manufacture_no").toString(); + device.manufacturer = query.value("manufacturer").toString(); + result=device; + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 bool BaseCommonApi::InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge) { @@ -1915,7 +2200,7 @@ "test_value_four,measure_value_four,test_value_five,measure_value_five,test_value_six,measure_value_six,maximum_error,create_time,update_time) " " VALUES " " (:id,:data_id,:unit,:check_point,:first_forward_stroke,:first_reverse_stroke,:second_forward_stroke,:second_reverse_stroke,:third_forward_stroke,:third_reverse_stroke,:average_value,:average_average_value,:max_indicating_error,:max_return_error,:params,:test_value_one,:measure_value_one,:test_value_two,:measure_value_two,:test_value_three,:measure_value_three,:test_value_four,:measure_value_four,:test_value_five,:measure_value_five,:test_value_six,:measure_value_six,:maximum_error,:create_time,:update_time) "); - QString formattedDateTime = gauge.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",gauge.id); query.bindValue(":data_id",gauge.data_id); query.bindValue(":unit",gauge.unit); @@ -1944,8 +2229,8 @@ query.bindValue(":test_value_six",gauge.test_value_six); query.bindValue(":measure_value_six",gauge.measure_value_six); query.bindValue(":maximum_error",gauge.maximum_error); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1965,7 +2250,7 @@ " (:id,:data_no,:check_date,:check_address,:temperature,:humidity,:check_accord,:stability_examine,:standard_equipment_id," ":equipment_id,:item_category_id,:conclusion,:remark,:create_user_id,:create_user_name,:create_time,:update_time) "); QString checkData = baseInfo.check_date.toString("yyyy-MM-dd"); - QString formattedDateTime = baseInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",baseInfo.id); query.bindValue(":data_no",baseInfo.data_no); query.bindValue(":check_date",checkData); @@ -1981,8 +2266,8 @@ query.bindValue(":remark",baseInfo.remark); query.bindValue(":create_user_id",baseInfo.create_user_id); query.bindValue(":create_user_name",baseInfo.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2074,8 +2359,8 @@ " VALUES " " (:id,:check_equipment_id,:data_id)"); query.bindValue(":id",equiment.id); - query.bindValue(":data_no",equiment.check_equipment_id); - query.bindValue(":check_date",equiment.data_id); + query.bindValue(":check_equipment_id",equiment.check_equipment_id); + query.bindValue(":data_id",equiment.data_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2102,7 +2387,7 @@ ":test_value_three_date, :test_value_three, :test_value_four_date, :test_value_four, " ":test_value_five_date, :test_value_five, :test_value_six_date, :test_value_six, :average_value, " ":standard_deviation, :relative_repeatability, :urel, :less_than, :qualified, :create_time, :update_time)"); - QString formattedDateTime = calibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", calibrator.id); query.bindValue(":data_id", calibrator.data_id); @@ -2131,8 +2416,8 @@ query.bindValue(":urel", calibrator.urel); query.bindValue(":less_than", calibrator.less_than); query.bindValue(":qualified", calibrator.qualified); - query.bindValue(":create_time", formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2185,7 +2470,7 @@ query.prepare("INSERT INTO biz_business_device_measure_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2193,8 +2478,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); @@ -2234,7 +2519,7 @@ query.prepare("INSERT INTO biz_equipment_standard_check_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2242,8 +2527,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index a132816..479d8ba 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -828,7 +828,8 @@ QString encrypt(const QString &str, const QString &publicKey); //判断检定装置表并查询 参数设备id - static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + //static QMap> Search_CalibrationTable(QString DeiverId,QMap *HeadList); //判断核查装置表并查询 参数设备id static QList Search_VerifyTable(QString DeiverId,QStringList *HeadList ); @@ -891,6 +892,10 @@ static JudgeCalibrationTable getJudgeVerifyTable(QString id); //被检设备管理-检定项目及检定点-多功能校准源 static QList getVerMultiCal(QString itemId,QStringList *headList); + //static QMap> getVerMultiCal(QString itemId,QMap *headList); + static QMap> GetDataReturnItemList(QList ResultData, + QMap> DataMapList, + QMap *HeadMapList); // 获取检定数据管理 首页 static QList getVerificationData(); // 检定数据管理-检定基本信息-标准设备 @@ -967,6 +972,8 @@ static bool DeleteCheckProgramManage(QString id); // 设备与装置-标准装置管理-核查数据基本信息关联的核查标准设备,即给设备做核查的设备 static bool InsertStandCheckInfoEquipent(StandCheckInfoEquipent equiment); +// 自动核查-根据 设备id查询核查件设备信息 + static CheckAndTestedDevice getCheckAndTestedDeviceById(QString deviceId); //自动核查--结果保存-设备与装置-标准装置管理-多功能校准源 static bool InsertStandCheckDataCalibrator(StandCheckDataCalibrator calibrator); //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 @@ -991,7 +998,8 @@ static bool InsertCheckModifyRecord(MeasureModifyRecord record); //设备与装置-标准装置管理-核查数据管理核查数据历史修改记录[查询] 参数 检定数据管理基础信息表id static QList getMeasureModifyRecord(QString data_id); - + //查询最新结果保存记录 + static SaveDeviceMeasureInfo getNewResultData(); }; diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index 4cfa1b6..fef3880 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -199,7 +199,7 @@ QStringList headlist; QList Data=dbManager.Search_CalibrationTable(id,&headlist); - + //QList Data; //tableWidgetItem ui->tableWidgetItem->setRowCount(0); ui->tableWidgetItem->setColumnCount(headlist.count()); diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index 77f0a9a..48b7c7c 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -601,6 +601,7 @@ } } item.measure_indication_value = sRet; + ui->tableWidgetCheck->setItem(i,15,new QTableWidgetItem(sRet)); //示值 ui->tableWidgetCheck->setItem(i,19,new QTableWidgetItem(sRet)); } } diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index ed0d569..c6c6c43 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -2,11 +2,14 @@ #include "id/TaskManager.h" #include "basecommonapi.h" -// 定义并初始化静态成员变量 +// 定义并初始化静态成员变量 委托单编号 QMap TaskManager::dailyTaskCounts; QDate TaskManager::currentDate; QString TaskManager::KeyDate; +//检定结果保存 +QMap TaskManager::saveResultdatanoList; +QString TaskManager::ResultKeyDate; QString TaskManager::generateTask(QString Number) { // 初始化当天任务单数量为0 @@ -40,24 +43,67 @@ return taskId; } -int TaskManager::getTaskCountForToday() +QString TaskManager::getsaveResultdatano() { - // 返回当天的任务单数量 - return dailyTaskCounts.value(KeyDate, 0); + + //获取结果保存ID + ResultKeyDate = QDate::currentDate().toString("yyyyMMdd"); + //判断是否包含 如包含直接返回结果 + if(!saveResultdatanoList.contains(ResultKeyDate)) + { + + //找寻数据库上次的记录 + QString datano=BaseCommonApi::getNewResultData().data_no; + if(datano!=""){ + int startIndex = datano.lastIndexOf("j")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + //截截取 + QString result = datano.mid(startIndex, 8); + if(result!=ResultKeyDate){ + saveResultdatanoList[ResultKeyDate] = 1; + }else + { + //获取最后一位数 并加1 + QChar lastChar = datano.at(datano.length() - 1); + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + saveResultdatanoList[ResultKeyDate] = Count+1; + } + + } + + }else{saveResultdatanoList[ResultKeyDate] = 1;}; + + } + + QString dateStr = ResultKeyDate; + // 生成结果保存编号,这里假设编号格式是 "jdsjYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("jdsj%1%2").arg(dateStr).arg(saveResultdatanoList[ResultKeyDate], 4, 10, QChar('0')); + //返回结果 + return taskId; } + bool TaskManager::AddCurrenTaskCount() { // 增加当天任务单数量 try { - dailyTaskCounts[KeyDate]++; return true; } catch(const std::exception &e) { return false; } - } - +bool TaskManager::AddResultDataNoCount() +{ + // 增加当天任务单数量 + try { + saveResultdatanoList[ResultKeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } +} diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 08eeaf5..47ee4da 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -6,6 +6,7 @@ #include + BaseCommonApi::BaseCommonApi() { @@ -56,8 +57,10 @@ info.create_time = query.value("create_time").toDateTime(); info.update_time = query.value("update_time").toDateTime(); result=info; + } - }else { +// qDebug() << "sql代码: " << query.lastQuery(); + }else { qDebug() << "Query execution failed: " << query.lastError().text(); } @@ -121,6 +124,7 @@ " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); + if (query.exec()) { while (query.next()) { Dept Dept; @@ -188,6 +192,24 @@ } return result; } +//查看最新结果保存数据 +SaveDeviceMeasureInfo BaseCommonApi::getNewResultData() +{ + SaveDeviceMeasureInfo result; + QSqlQuery query; + query.prepare("select * from biz_business_device_measure_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + + result.id = query.value("id").toString(); + result.data_no = query.value("data_no").toString(); + + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //查看当前最新的任务单 QList BaseCommonApi::getCreateTaskListNew() { @@ -796,6 +818,25 @@ */ //根据被检设备ID获取当前设备的 检定项目及检定点 +/* +QMap> BaseCommonApi::Search_CalibrationTable(QString DeiverId,QMap *HeadList) +{ + + QMap> DataList; + DataList.clear(); + QList CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); + if(CliTable.count()==0)return DataList; + switch (CliTable[0].belong_standard_equipment.toInt()) + { + case 1: + //CliTable[0].id + //1717086652508487681 + DataList=BaseCommonApi::getVerMultiCal(CliTable[0].id,HeadList); + } + + return DataList; +}*/ +//根据被检设备ID获取当前设备的 检定项目及检定点 QList BaseCommonApi::Search_CalibrationTable(QString DeiverId,QStringList *HeadList) { @@ -813,7 +854,6 @@ return DataList; } - //核查设备对应的装置表 核查项及核查点 传参设备id QList BaseCommonApi::Search_VerifyTable(QString DeiverId,QStringList *HeadList ) { @@ -857,7 +897,6 @@ } return DataList; } - //被检设备管理-检定项目及检定点-多功能校准源 QList BaseCommonApi::getVerMultiCal(QString itemId,QStringList *headList) { @@ -908,22 +947,88 @@ <<"两线/四线模式"<<"线圈放大"<<"示值"<<"准确度a"<<"指针式仪表满量程值"<<"指针式仪表满量程值单位"<<"被检表示值"<<"准确度等级"<<"创建时间"<<"更新时间"; return resultData; } -bool GetDataReturnItemList(QList ResultData,QMap *DataMapList,QList *HeadMapList) +//被检设备管理-检定项目及检定点-多功能校准源 +/* +QMap> BaseCommonApi::getVerMultiCal(QString itemId,QMap *headList) +{ +QMap> DataMapList; +QList resultData; +QStringList result; +resultData.clear(); + +QSqlQuery query; + query.prepare("SELECT * FROM biz_business_device_measure_item_data_calibrator bbdmidc WHERE item_id = :itemId "); + // 将参数绑定到占位符 + query.bindValue(":itemId", itemId); + if (query.exec()) { + while (query.next()) { + result.clear(); + 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("create_time").toString()); + result.append(query.value("update_time").toString()); + resultData.append(result); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + //进行检定项目列头转换 + DataMapList= GetDataReturnItemList(resultData,DataMapList,headList); + return DataMapList; +} +*/ +QMap> BaseCommonApi::GetDataReturnItemList(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; for(const QStringList &row : ResultData) { if (!row.isEmpty()) { // 确保行不为空 if(row[2]=="DCV") { - QString VerificationItem= "DCV"; + + QString VerificationItem=NULL; + if(isFirst[0]) + { + VerificationItem = "DCV"; //添加列头 QStringList head; head << "序号" << "检定项目" << "量" << "单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; - HeadMapList->append(head); - + HeadMapList->insert(VerificationItem,head); + isFirst[0]=false; + } //添加数据 + QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 @@ -942,24 +1047,167 @@ Data.append("0"); } Data.append(row[9]); //分辨力 - + DCVList.append(Data); } else if(ResultData[2].first()=="ACV") { + QString VerificationItem=NULL; + if(isFirst[1]) + { + VerificationItem = "ACV"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[1]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACVList.append(Data); } else if(ResultData[2].first()=="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]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + DCIList.append(Data); } else if(ResultData[2].first()=="ACI") { + QString VerificationItem=NULL; + if(isFirst[3]) + { + VerificationItem = "ACI"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[3]=false; + } + //添加数据 - } else if(ResultData[2].first()=="ACV") + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACIList.append(Data); + } else if(ResultData[2].first()=="R") { + QString VerificationItem=NULL; + if(isFirst[4]) + { + VerificationItem = "R"; + //添加列头 + QStringList head; + head << "序号" <<"两线/四线" << "量" << "单位" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[4]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[13]); //两线/四线 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + RList.append(Data); } } } + if(DCVList.count()!=0){ + DataMapList.insert("DCV",DCVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACV",ACVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("DCI",DCIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACI",ACIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("R",RList); + }; + return DataMapList; } //检定数据管理 首页 QList BaseCommonApi::getVerificationData() @@ -1107,19 +1355,20 @@ result.append(query.value("frequency").toString()); result.append( query.value("range_range").toString()); result.append(query.value("standard_value").toString()); + result.append(query.value("indicating_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("other_outcome").toString()); - resultData.append(result); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *HeadList<<"id"<<"参数"<<"量"<<"单位"<<"频率" - <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"量程"<<"标准值" <<"示值" <<"分辨力"<<"最大允许误差"<<"误差参数a" <<"误差参数b"<<"合格率"; return resultData; @@ -1475,9 +1724,9 @@ "standard_device_id = :standard_device_id ," "update_time = :update_time " " WHERE id = :id;"); - QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); - QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); - query.bindValue(":update_time",currentDateTime); + QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":update_time",currentDateTime); query.bindValue(":program_name", verInfo.program_name); query.bindValue(":create_name", verInfo.create_name); query.bindValue(":create_time", formattedDateTime); @@ -1607,13 +1856,19 @@ //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { + saveInfo.data_no=TaskManager::getsaveResultdatano(); + QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_info " " (id,data_no,order_id,sample_id,item_id," " trace_date,measure_valid_date,measure_address,temperature,humidity,data_source," " outcome,create_time,update_time) " " VALUES " - " (:id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date,:measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time)"); + " (" + ":id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date," + ":measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time" + ")"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", saveInfo.id); //id 自动生成 query.bindValue(":data_no", saveInfo.data_no); @@ -1627,11 +1882,13 @@ query.bindValue(":humidity", saveInfo.humidity); query.bindValue(":data_source", saveInfo.data_source); query.bindValue(":outcome", saveInfo.outcome); - query.bindValue(":create_time", saveInfo.create_time); - query.bindValue(":update_time", saveInfo.update_time); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); + }else{ + TaskManager::AddResultDataNoCount(); } return isSuccess; @@ -1644,12 +1901,13 @@ " (id,data_id,equipment_id,create_time,update_time) " " VALUES " " (:id,:data_id,:equipment_id,:create_time,:update_time)"); - QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); +// QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", deviceMeasure.id); query.bindValue(":data_id", deviceMeasure.data_id); query.bindValue(":equipment_id", deviceMeasure.equipment_id); - query.bindValue(":create_time", createTime); - query.bindValue(":update_time", createTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1669,8 +1927,8 @@ " VALUES " " (:id,:data_id,:item_data_id,:maximum_error_formula,:error_param_a,:error_param_b,:params,:capacity,:unit,:frequency,:frequency_unit,:range_range,:standard_value,:indicating_value,:maximum_error,:absolute_error,:resolution,:line_mode,:remark,:an,:bn,:cn,:delta_an,:delta_bn,:delta_cn,:measure_indication_value,:standard_value_upper_limit,:accuracy_level,:create_time,:update_time);"); - QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); - +// QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",measureCalibrator.id); query.bindValue(":data_id",measureCalibrator.data_id); query.bindValue(":item_data_id",measureCalibrator.item_data_id); @@ -1699,8 +1957,8 @@ query.bindValue(":measure_indication_value",measureCalibrator.measure_indication_value); query.bindValue(":standard_value_upper_limit",measureCalibrator.standard_value_upper_limit); query.bindValue(":accuracy_level",measureCalibrator.accuracy_level); - query.bindValue(":create_time",formattedUpdateDateTime); - query.bindValue(":update_time",formattedUpdateDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); @@ -1878,14 +2136,14 @@ query.prepare("UPDATE zd_verification_program_manage SET check_name =:check_name," " create_name = :create_name, remark = :remark, img_path =:img_path, standard_device_id =:standard_device_id," " verification_documents_id=:verification_documents_id, update_time=:update_time WHERE id = :id;"); - QString formattedDateTime = check.update_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":check_name", check.check_name); query.bindValue(":create_name", check.create_name); query.bindValue(":remark", check.remark); query.bindValue(":img_path", check.img_path); query.bindValue(":standard_device_id", check.standard_device_id); query.bindValue(":verification_documents_id", check.verification_documents_id); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":update_time",currentDateTime); query.bindValue(":id", check.id); bool isSuccess = query.exec(); if (!isSuccess) { @@ -1905,6 +2163,33 @@ } return isSuccess; } +// 自动核查-根据 设备id查询核查件设备信息 +CheckAndTestedDevice BaseCommonApi::getCheckAndTestedDeviceById(QString deviceId) +{ + CheckAndTestedDevice result; + QSqlQuery query; + query.prepare("SELECT bei.id , bei.equipment_name , bei.model , bei.manufacture_no ," + " bei.manufacturer FROM biz_equipment_info bei WHERE bei.id = :deviceId " + " UNION ALL " + " SELECT eei.id , eei.equipment_name , eei.model, eei.manufacture_no , eei.manufacturer " + " FROM eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :deviceId"); + query.bindValue(":deviceId", deviceId); + bool isSuccess = query.exec(); + if (isSuccess) { + while (query.next()) { + CheckAndTestedDevice device; + device.id = query.value("id").toString(); + device.equipment_name = query.value("equipment_name").toString(); + device.model = query.value("model").toString(); + device.manufacture_no = query.value("manufacture_no").toString(); + device.manufacturer = query.value("manufacturer").toString(); + result=device; + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 bool BaseCommonApi::InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge) { @@ -1915,7 +2200,7 @@ "test_value_four,measure_value_four,test_value_five,measure_value_five,test_value_six,measure_value_six,maximum_error,create_time,update_time) " " VALUES " " (:id,:data_id,:unit,:check_point,:first_forward_stroke,:first_reverse_stroke,:second_forward_stroke,:second_reverse_stroke,:third_forward_stroke,:third_reverse_stroke,:average_value,:average_average_value,:max_indicating_error,:max_return_error,:params,:test_value_one,:measure_value_one,:test_value_two,:measure_value_two,:test_value_three,:measure_value_three,:test_value_four,:measure_value_four,:test_value_five,:measure_value_five,:test_value_six,:measure_value_six,:maximum_error,:create_time,:update_time) "); - QString formattedDateTime = gauge.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",gauge.id); query.bindValue(":data_id",gauge.data_id); query.bindValue(":unit",gauge.unit); @@ -1944,8 +2229,8 @@ query.bindValue(":test_value_six",gauge.test_value_six); query.bindValue(":measure_value_six",gauge.measure_value_six); query.bindValue(":maximum_error",gauge.maximum_error); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1965,7 +2250,7 @@ " (:id,:data_no,:check_date,:check_address,:temperature,:humidity,:check_accord,:stability_examine,:standard_equipment_id," ":equipment_id,:item_category_id,:conclusion,:remark,:create_user_id,:create_user_name,:create_time,:update_time) "); QString checkData = baseInfo.check_date.toString("yyyy-MM-dd"); - QString formattedDateTime = baseInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",baseInfo.id); query.bindValue(":data_no",baseInfo.data_no); query.bindValue(":check_date",checkData); @@ -1981,8 +2266,8 @@ query.bindValue(":remark",baseInfo.remark); query.bindValue(":create_user_id",baseInfo.create_user_id); query.bindValue(":create_user_name",baseInfo.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2074,8 +2359,8 @@ " VALUES " " (:id,:check_equipment_id,:data_id)"); query.bindValue(":id",equiment.id); - query.bindValue(":data_no",equiment.check_equipment_id); - query.bindValue(":check_date",equiment.data_id); + query.bindValue(":check_equipment_id",equiment.check_equipment_id); + query.bindValue(":data_id",equiment.data_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2102,7 +2387,7 @@ ":test_value_three_date, :test_value_three, :test_value_four_date, :test_value_four, " ":test_value_five_date, :test_value_five, :test_value_six_date, :test_value_six, :average_value, " ":standard_deviation, :relative_repeatability, :urel, :less_than, :qualified, :create_time, :update_time)"); - QString formattedDateTime = calibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", calibrator.id); query.bindValue(":data_id", calibrator.data_id); @@ -2131,8 +2416,8 @@ query.bindValue(":urel", calibrator.urel); query.bindValue(":less_than", calibrator.less_than); query.bindValue(":qualified", calibrator.qualified); - query.bindValue(":create_time", formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2185,7 +2470,7 @@ query.prepare("INSERT INTO biz_business_device_measure_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2193,8 +2478,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); @@ -2234,7 +2519,7 @@ query.prepare("INSERT INTO biz_equipment_standard_check_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2242,8 +2527,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index a132816..479d8ba 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -828,7 +828,8 @@ QString encrypt(const QString &str, const QString &publicKey); //判断检定装置表并查询 参数设备id - static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + //static QMap> Search_CalibrationTable(QString DeiverId,QMap *HeadList); //判断核查装置表并查询 参数设备id static QList Search_VerifyTable(QString DeiverId,QStringList *HeadList ); @@ -891,6 +892,10 @@ static JudgeCalibrationTable getJudgeVerifyTable(QString id); //被检设备管理-检定项目及检定点-多功能校准源 static QList getVerMultiCal(QString itemId,QStringList *headList); + //static QMap> getVerMultiCal(QString itemId,QMap *headList); + static QMap> GetDataReturnItemList(QList ResultData, + QMap> DataMapList, + QMap *HeadMapList); // 获取检定数据管理 首页 static QList getVerificationData(); // 检定数据管理-检定基本信息-标准设备 @@ -967,6 +972,8 @@ static bool DeleteCheckProgramManage(QString id); // 设备与装置-标准装置管理-核查数据基本信息关联的核查标准设备,即给设备做核查的设备 static bool InsertStandCheckInfoEquipent(StandCheckInfoEquipent equiment); +// 自动核查-根据 设备id查询核查件设备信息 + static CheckAndTestedDevice getCheckAndTestedDeviceById(QString deviceId); //自动核查--结果保存-设备与装置-标准装置管理-多功能校准源 static bool InsertStandCheckDataCalibrator(StandCheckDataCalibrator calibrator); //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 @@ -991,7 +998,8 @@ static bool InsertCheckModifyRecord(MeasureModifyRecord record); //设备与装置-标准装置管理-核查数据管理核查数据历史修改记录[查询] 参数 检定数据管理基础信息表id static QList getMeasureModifyRecord(QString data_id); - + //查询最新结果保存记录 + static SaveDeviceMeasureInfo getNewResultData(); }; diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index 4cfa1b6..fef3880 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -199,7 +199,7 @@ QStringList headlist; QList Data=dbManager.Search_CalibrationTable(id,&headlist); - + //QList Data; //tableWidgetItem ui->tableWidgetItem->setRowCount(0); ui->tableWidgetItem->setColumnCount(headlist.count()); diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index 77f0a9a..48b7c7c 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -601,6 +601,7 @@ } } item.measure_indication_value = sRet; + ui->tableWidgetCheck->setItem(i,15,new QTableWidgetItem(sRet)); //示值 ui->tableWidgetCheck->setItem(i,19,new QTableWidgetItem(sRet)); } } diff --git a/softwareDirectory/AutoVerScheme/databaseconnection.cpp b/softwareDirectory/AutoVerScheme/databaseconnection.cpp index 2adadd4..1d957d9 100644 --- a/softwareDirectory/AutoVerScheme/databaseconnection.cpp +++ b/softwareDirectory/AutoVerScheme/databaseconnection.cpp @@ -1,6 +1,8 @@ #include "databaseconnection.h" + + DatabaseConnection* DatabaseConnection::Connect = nullptr; QMutex DatabaseConnection::mutex; diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index ed0d569..c6c6c43 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -2,11 +2,14 @@ #include "id/TaskManager.h" #include "basecommonapi.h" -// 定义并初始化静态成员变量 +// 定义并初始化静态成员变量 委托单编号 QMap TaskManager::dailyTaskCounts; QDate TaskManager::currentDate; QString TaskManager::KeyDate; +//检定结果保存 +QMap TaskManager::saveResultdatanoList; +QString TaskManager::ResultKeyDate; QString TaskManager::generateTask(QString Number) { // 初始化当天任务单数量为0 @@ -40,24 +43,67 @@ return taskId; } -int TaskManager::getTaskCountForToday() +QString TaskManager::getsaveResultdatano() { - // 返回当天的任务单数量 - return dailyTaskCounts.value(KeyDate, 0); + + //获取结果保存ID + ResultKeyDate = QDate::currentDate().toString("yyyyMMdd"); + //判断是否包含 如包含直接返回结果 + if(!saveResultdatanoList.contains(ResultKeyDate)) + { + + //找寻数据库上次的记录 + QString datano=BaseCommonApi::getNewResultData().data_no; + if(datano!=""){ + int startIndex = datano.lastIndexOf("j")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + //截截取 + QString result = datano.mid(startIndex, 8); + if(result!=ResultKeyDate){ + saveResultdatanoList[ResultKeyDate] = 1; + }else + { + //获取最后一位数 并加1 + QChar lastChar = datano.at(datano.length() - 1); + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + saveResultdatanoList[ResultKeyDate] = Count+1; + } + + } + + }else{saveResultdatanoList[ResultKeyDate] = 1;}; + + } + + QString dateStr = ResultKeyDate; + // 生成结果保存编号,这里假设编号格式是 "jdsjYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("jdsj%1%2").arg(dateStr).arg(saveResultdatanoList[ResultKeyDate], 4, 10, QChar('0')); + //返回结果 + return taskId; } + bool TaskManager::AddCurrenTaskCount() { // 增加当天任务单数量 try { - dailyTaskCounts[KeyDate]++; return true; } catch(const std::exception &e) { return false; } - } - +bool TaskManager::AddResultDataNoCount() +{ + // 增加当天任务单数量 + try { + saveResultdatanoList[ResultKeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } +} diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 08eeaf5..47ee4da 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -6,6 +6,7 @@ #include + BaseCommonApi::BaseCommonApi() { @@ -56,8 +57,10 @@ info.create_time = query.value("create_time").toDateTime(); info.update_time = query.value("update_time").toDateTime(); result=info; + } - }else { +// qDebug() << "sql代码: " << query.lastQuery(); + }else { qDebug() << "Query execution failed: " << query.lastError().text(); } @@ -121,6 +124,7 @@ " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); + if (query.exec()) { while (query.next()) { Dept Dept; @@ -188,6 +192,24 @@ } return result; } +//查看最新结果保存数据 +SaveDeviceMeasureInfo BaseCommonApi::getNewResultData() +{ + SaveDeviceMeasureInfo result; + QSqlQuery query; + query.prepare("select * from biz_business_device_measure_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + + result.id = query.value("id").toString(); + result.data_no = query.value("data_no").toString(); + + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //查看当前最新的任务单 QList BaseCommonApi::getCreateTaskListNew() { @@ -796,6 +818,25 @@ */ //根据被检设备ID获取当前设备的 检定项目及检定点 +/* +QMap> BaseCommonApi::Search_CalibrationTable(QString DeiverId,QMap *HeadList) +{ + + QMap> DataList; + DataList.clear(); + QList CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); + if(CliTable.count()==0)return DataList; + switch (CliTable[0].belong_standard_equipment.toInt()) + { + case 1: + //CliTable[0].id + //1717086652508487681 + DataList=BaseCommonApi::getVerMultiCal(CliTable[0].id,HeadList); + } + + return DataList; +}*/ +//根据被检设备ID获取当前设备的 检定项目及检定点 QList BaseCommonApi::Search_CalibrationTable(QString DeiverId,QStringList *HeadList) { @@ -813,7 +854,6 @@ return DataList; } - //核查设备对应的装置表 核查项及核查点 传参设备id QList BaseCommonApi::Search_VerifyTable(QString DeiverId,QStringList *HeadList ) { @@ -857,7 +897,6 @@ } return DataList; } - //被检设备管理-检定项目及检定点-多功能校准源 QList BaseCommonApi::getVerMultiCal(QString itemId,QStringList *headList) { @@ -908,22 +947,88 @@ <<"两线/四线模式"<<"线圈放大"<<"示值"<<"准确度a"<<"指针式仪表满量程值"<<"指针式仪表满量程值单位"<<"被检表示值"<<"准确度等级"<<"创建时间"<<"更新时间"; return resultData; } -bool GetDataReturnItemList(QList ResultData,QMap *DataMapList,QList *HeadMapList) +//被检设备管理-检定项目及检定点-多功能校准源 +/* +QMap> BaseCommonApi::getVerMultiCal(QString itemId,QMap *headList) +{ +QMap> DataMapList; +QList resultData; +QStringList result; +resultData.clear(); + +QSqlQuery query; + query.prepare("SELECT * FROM biz_business_device_measure_item_data_calibrator bbdmidc WHERE item_id = :itemId "); + // 将参数绑定到占位符 + query.bindValue(":itemId", itemId); + if (query.exec()) { + while (query.next()) { + result.clear(); + 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("create_time").toString()); + result.append(query.value("update_time").toString()); + resultData.append(result); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + //进行检定项目列头转换 + DataMapList= GetDataReturnItemList(resultData,DataMapList,headList); + return DataMapList; +} +*/ +QMap> BaseCommonApi::GetDataReturnItemList(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; for(const QStringList &row : ResultData) { if (!row.isEmpty()) { // 确保行不为空 if(row[2]=="DCV") { - QString VerificationItem= "DCV"; + + QString VerificationItem=NULL; + if(isFirst[0]) + { + VerificationItem = "DCV"; //添加列头 QStringList head; head << "序号" << "检定项目" << "量" << "单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; - HeadMapList->append(head); - + HeadMapList->insert(VerificationItem,head); + isFirst[0]=false; + } //添加数据 + QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 @@ -942,24 +1047,167 @@ Data.append("0"); } Data.append(row[9]); //分辨力 - + DCVList.append(Data); } else if(ResultData[2].first()=="ACV") { + QString VerificationItem=NULL; + if(isFirst[1]) + { + VerificationItem = "ACV"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[1]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACVList.append(Data); } else if(ResultData[2].first()=="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]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + DCIList.append(Data); } else if(ResultData[2].first()=="ACI") { + QString VerificationItem=NULL; + if(isFirst[3]) + { + VerificationItem = "ACI"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[3]=false; + } + //添加数据 - } else if(ResultData[2].first()=="ACV") + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACIList.append(Data); + } else if(ResultData[2].first()=="R") { + QString VerificationItem=NULL; + if(isFirst[4]) + { + VerificationItem = "R"; + //添加列头 + QStringList head; + head << "序号" <<"两线/四线" << "量" << "单位" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[4]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[13]); //两线/四线 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + RList.append(Data); } } } + if(DCVList.count()!=0){ + DataMapList.insert("DCV",DCVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACV",ACVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("DCI",DCIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACI",ACIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("R",RList); + }; + return DataMapList; } //检定数据管理 首页 QList BaseCommonApi::getVerificationData() @@ -1107,19 +1355,20 @@ result.append(query.value("frequency").toString()); result.append( query.value("range_range").toString()); result.append(query.value("standard_value").toString()); + result.append(query.value("indicating_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("other_outcome").toString()); - resultData.append(result); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *HeadList<<"id"<<"参数"<<"量"<<"单位"<<"频率" - <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"量程"<<"标准值" <<"示值" <<"分辨力"<<"最大允许误差"<<"误差参数a" <<"误差参数b"<<"合格率"; return resultData; @@ -1475,9 +1724,9 @@ "standard_device_id = :standard_device_id ," "update_time = :update_time " " WHERE id = :id;"); - QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); - QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); - query.bindValue(":update_time",currentDateTime); + QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":update_time",currentDateTime); query.bindValue(":program_name", verInfo.program_name); query.bindValue(":create_name", verInfo.create_name); query.bindValue(":create_time", formattedDateTime); @@ -1607,13 +1856,19 @@ //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { + saveInfo.data_no=TaskManager::getsaveResultdatano(); + QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_info " " (id,data_no,order_id,sample_id,item_id," " trace_date,measure_valid_date,measure_address,temperature,humidity,data_source," " outcome,create_time,update_time) " " VALUES " - " (:id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date,:measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time)"); + " (" + ":id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date," + ":measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time" + ")"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", saveInfo.id); //id 自动生成 query.bindValue(":data_no", saveInfo.data_no); @@ -1627,11 +1882,13 @@ query.bindValue(":humidity", saveInfo.humidity); query.bindValue(":data_source", saveInfo.data_source); query.bindValue(":outcome", saveInfo.outcome); - query.bindValue(":create_time", saveInfo.create_time); - query.bindValue(":update_time", saveInfo.update_time); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); + }else{ + TaskManager::AddResultDataNoCount(); } return isSuccess; @@ -1644,12 +1901,13 @@ " (id,data_id,equipment_id,create_time,update_time) " " VALUES " " (:id,:data_id,:equipment_id,:create_time,:update_time)"); - QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); +// QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", deviceMeasure.id); query.bindValue(":data_id", deviceMeasure.data_id); query.bindValue(":equipment_id", deviceMeasure.equipment_id); - query.bindValue(":create_time", createTime); - query.bindValue(":update_time", createTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1669,8 +1927,8 @@ " VALUES " " (:id,:data_id,:item_data_id,:maximum_error_formula,:error_param_a,:error_param_b,:params,:capacity,:unit,:frequency,:frequency_unit,:range_range,:standard_value,:indicating_value,:maximum_error,:absolute_error,:resolution,:line_mode,:remark,:an,:bn,:cn,:delta_an,:delta_bn,:delta_cn,:measure_indication_value,:standard_value_upper_limit,:accuracy_level,:create_time,:update_time);"); - QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); - +// QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",measureCalibrator.id); query.bindValue(":data_id",measureCalibrator.data_id); query.bindValue(":item_data_id",measureCalibrator.item_data_id); @@ -1699,8 +1957,8 @@ query.bindValue(":measure_indication_value",measureCalibrator.measure_indication_value); query.bindValue(":standard_value_upper_limit",measureCalibrator.standard_value_upper_limit); query.bindValue(":accuracy_level",measureCalibrator.accuracy_level); - query.bindValue(":create_time",formattedUpdateDateTime); - query.bindValue(":update_time",formattedUpdateDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); @@ -1878,14 +2136,14 @@ query.prepare("UPDATE zd_verification_program_manage SET check_name =:check_name," " create_name = :create_name, remark = :remark, img_path =:img_path, standard_device_id =:standard_device_id," " verification_documents_id=:verification_documents_id, update_time=:update_time WHERE id = :id;"); - QString formattedDateTime = check.update_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":check_name", check.check_name); query.bindValue(":create_name", check.create_name); query.bindValue(":remark", check.remark); query.bindValue(":img_path", check.img_path); query.bindValue(":standard_device_id", check.standard_device_id); query.bindValue(":verification_documents_id", check.verification_documents_id); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":update_time",currentDateTime); query.bindValue(":id", check.id); bool isSuccess = query.exec(); if (!isSuccess) { @@ -1905,6 +2163,33 @@ } return isSuccess; } +// 自动核查-根据 设备id查询核查件设备信息 +CheckAndTestedDevice BaseCommonApi::getCheckAndTestedDeviceById(QString deviceId) +{ + CheckAndTestedDevice result; + QSqlQuery query; + query.prepare("SELECT bei.id , bei.equipment_name , bei.model , bei.manufacture_no ," + " bei.manufacturer FROM biz_equipment_info bei WHERE bei.id = :deviceId " + " UNION ALL " + " SELECT eei.id , eei.equipment_name , eei.model, eei.manufacture_no , eei.manufacturer " + " FROM eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :deviceId"); + query.bindValue(":deviceId", deviceId); + bool isSuccess = query.exec(); + if (isSuccess) { + while (query.next()) { + CheckAndTestedDevice device; + device.id = query.value("id").toString(); + device.equipment_name = query.value("equipment_name").toString(); + device.model = query.value("model").toString(); + device.manufacture_no = query.value("manufacture_no").toString(); + device.manufacturer = query.value("manufacturer").toString(); + result=device; + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 bool BaseCommonApi::InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge) { @@ -1915,7 +2200,7 @@ "test_value_four,measure_value_four,test_value_five,measure_value_five,test_value_six,measure_value_six,maximum_error,create_time,update_time) " " VALUES " " (:id,:data_id,:unit,:check_point,:first_forward_stroke,:first_reverse_stroke,:second_forward_stroke,:second_reverse_stroke,:third_forward_stroke,:third_reverse_stroke,:average_value,:average_average_value,:max_indicating_error,:max_return_error,:params,:test_value_one,:measure_value_one,:test_value_two,:measure_value_two,:test_value_three,:measure_value_three,:test_value_four,:measure_value_four,:test_value_five,:measure_value_five,:test_value_six,:measure_value_six,:maximum_error,:create_time,:update_time) "); - QString formattedDateTime = gauge.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",gauge.id); query.bindValue(":data_id",gauge.data_id); query.bindValue(":unit",gauge.unit); @@ -1944,8 +2229,8 @@ query.bindValue(":test_value_six",gauge.test_value_six); query.bindValue(":measure_value_six",gauge.measure_value_six); query.bindValue(":maximum_error",gauge.maximum_error); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1965,7 +2250,7 @@ " (:id,:data_no,:check_date,:check_address,:temperature,:humidity,:check_accord,:stability_examine,:standard_equipment_id," ":equipment_id,:item_category_id,:conclusion,:remark,:create_user_id,:create_user_name,:create_time,:update_time) "); QString checkData = baseInfo.check_date.toString("yyyy-MM-dd"); - QString formattedDateTime = baseInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",baseInfo.id); query.bindValue(":data_no",baseInfo.data_no); query.bindValue(":check_date",checkData); @@ -1981,8 +2266,8 @@ query.bindValue(":remark",baseInfo.remark); query.bindValue(":create_user_id",baseInfo.create_user_id); query.bindValue(":create_user_name",baseInfo.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2074,8 +2359,8 @@ " VALUES " " (:id,:check_equipment_id,:data_id)"); query.bindValue(":id",equiment.id); - query.bindValue(":data_no",equiment.check_equipment_id); - query.bindValue(":check_date",equiment.data_id); + query.bindValue(":check_equipment_id",equiment.check_equipment_id); + query.bindValue(":data_id",equiment.data_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2102,7 +2387,7 @@ ":test_value_three_date, :test_value_three, :test_value_four_date, :test_value_four, " ":test_value_five_date, :test_value_five, :test_value_six_date, :test_value_six, :average_value, " ":standard_deviation, :relative_repeatability, :urel, :less_than, :qualified, :create_time, :update_time)"); - QString formattedDateTime = calibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", calibrator.id); query.bindValue(":data_id", calibrator.data_id); @@ -2131,8 +2416,8 @@ query.bindValue(":urel", calibrator.urel); query.bindValue(":less_than", calibrator.less_than); query.bindValue(":qualified", calibrator.qualified); - query.bindValue(":create_time", formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2185,7 +2470,7 @@ query.prepare("INSERT INTO biz_business_device_measure_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2193,8 +2478,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); @@ -2234,7 +2519,7 @@ query.prepare("INSERT INTO biz_equipment_standard_check_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2242,8 +2527,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index a132816..479d8ba 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -828,7 +828,8 @@ QString encrypt(const QString &str, const QString &publicKey); //判断检定装置表并查询 参数设备id - static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + //static QMap> Search_CalibrationTable(QString DeiverId,QMap *HeadList); //判断核查装置表并查询 参数设备id static QList Search_VerifyTable(QString DeiverId,QStringList *HeadList ); @@ -891,6 +892,10 @@ static JudgeCalibrationTable getJudgeVerifyTable(QString id); //被检设备管理-检定项目及检定点-多功能校准源 static QList getVerMultiCal(QString itemId,QStringList *headList); + //static QMap> getVerMultiCal(QString itemId,QMap *headList); + static QMap> GetDataReturnItemList(QList ResultData, + QMap> DataMapList, + QMap *HeadMapList); // 获取检定数据管理 首页 static QList getVerificationData(); // 检定数据管理-检定基本信息-标准设备 @@ -967,6 +972,8 @@ static bool DeleteCheckProgramManage(QString id); // 设备与装置-标准装置管理-核查数据基本信息关联的核查标准设备,即给设备做核查的设备 static bool InsertStandCheckInfoEquipent(StandCheckInfoEquipent equiment); +// 自动核查-根据 设备id查询核查件设备信息 + static CheckAndTestedDevice getCheckAndTestedDeviceById(QString deviceId); //自动核查--结果保存-设备与装置-标准装置管理-多功能校准源 static bool InsertStandCheckDataCalibrator(StandCheckDataCalibrator calibrator); //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 @@ -991,7 +998,8 @@ static bool InsertCheckModifyRecord(MeasureModifyRecord record); //设备与装置-标准装置管理-核查数据管理核查数据历史修改记录[查询] 参数 检定数据管理基础信息表id static QList getMeasureModifyRecord(QString data_id); - + //查询最新结果保存记录 + static SaveDeviceMeasureInfo getNewResultData(); }; diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index 4cfa1b6..fef3880 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -199,7 +199,7 @@ QStringList headlist; QList Data=dbManager.Search_CalibrationTable(id,&headlist); - + //QList Data; //tableWidgetItem ui->tableWidgetItem->setRowCount(0); ui->tableWidgetItem->setColumnCount(headlist.count()); diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index 77f0a9a..48b7c7c 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -601,6 +601,7 @@ } } item.measure_indication_value = sRet; + ui->tableWidgetCheck->setItem(i,15,new QTableWidgetItem(sRet)); //示值 ui->tableWidgetCheck->setItem(i,19,new QTableWidgetItem(sRet)); } } diff --git a/softwareDirectory/AutoVerScheme/databaseconnection.cpp b/softwareDirectory/AutoVerScheme/databaseconnection.cpp index 2adadd4..1d957d9 100644 --- a/softwareDirectory/AutoVerScheme/databaseconnection.cpp +++ b/softwareDirectory/AutoVerScheme/databaseconnection.cpp @@ -1,6 +1,8 @@ #include "databaseconnection.h" + + DatabaseConnection* DatabaseConnection::Connect = nullptr; QMutex DatabaseConnection::mutex; diff --git a/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp b/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp index a23f7d4..3210be8 100644 --- a/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp +++ b/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp @@ -59,7 +59,7 @@ SaveDeviceMeasureInfo measInfo; BaseCommonApi api; measInfo.id = QString::number(api.generateId()); - measInfo.data_no = "jdsj"+QDateTime::currentDateTime().toString("yyyyMMdd")+"0003"; + //measInfo.data_no; measInfo.order_id = taskList[0].id; measInfo.sample_id=deviceId; measInfo.item_id=measureCalList[0].item_data_id; @@ -86,6 +86,7 @@ item.data_id = measInfo.id; BaseCommonApi::InsertVerMultiCal(item); } + QMessageBox::information(this, "提示", "保存成功!"); } else { diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index ed0d569..c6c6c43 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -2,11 +2,14 @@ #include "id/TaskManager.h" #include "basecommonapi.h" -// 定义并初始化静态成员变量 +// 定义并初始化静态成员变量 委托单编号 QMap TaskManager::dailyTaskCounts; QDate TaskManager::currentDate; QString TaskManager::KeyDate; +//检定结果保存 +QMap TaskManager::saveResultdatanoList; +QString TaskManager::ResultKeyDate; QString TaskManager::generateTask(QString Number) { // 初始化当天任务单数量为0 @@ -40,24 +43,67 @@ return taskId; } -int TaskManager::getTaskCountForToday() +QString TaskManager::getsaveResultdatano() { - // 返回当天的任务单数量 - return dailyTaskCounts.value(KeyDate, 0); + + //获取结果保存ID + ResultKeyDate = QDate::currentDate().toString("yyyyMMdd"); + //判断是否包含 如包含直接返回结果 + if(!saveResultdatanoList.contains(ResultKeyDate)) + { + + //找寻数据库上次的记录 + QString datano=BaseCommonApi::getNewResultData().data_no; + if(datano!=""){ + int startIndex = datano.lastIndexOf("j")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + //截截取 + QString result = datano.mid(startIndex, 8); + if(result!=ResultKeyDate){ + saveResultdatanoList[ResultKeyDate] = 1; + }else + { + //获取最后一位数 并加1 + QChar lastChar = datano.at(datano.length() - 1); + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + saveResultdatanoList[ResultKeyDate] = Count+1; + } + + } + + }else{saveResultdatanoList[ResultKeyDate] = 1;}; + + } + + QString dateStr = ResultKeyDate; + // 生成结果保存编号,这里假设编号格式是 "jdsjYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("jdsj%1%2").arg(dateStr).arg(saveResultdatanoList[ResultKeyDate], 4, 10, QChar('0')); + //返回结果 + return taskId; } + bool TaskManager::AddCurrenTaskCount() { // 增加当天任务单数量 try { - dailyTaskCounts[KeyDate]++; return true; } catch(const std::exception &e) { return false; } - } - +bool TaskManager::AddResultDataNoCount() +{ + // 增加当天任务单数量 + try { + saveResultdatanoList[ResultKeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } +} diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 08eeaf5..47ee4da 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -6,6 +6,7 @@ #include + BaseCommonApi::BaseCommonApi() { @@ -56,8 +57,10 @@ info.create_time = query.value("create_time").toDateTime(); info.update_time = query.value("update_time").toDateTime(); result=info; + } - }else { +// qDebug() << "sql代码: " << query.lastQuery(); + }else { qDebug() << "Query execution failed: " << query.lastError().text(); } @@ -121,6 +124,7 @@ " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); + if (query.exec()) { while (query.next()) { Dept Dept; @@ -188,6 +192,24 @@ } return result; } +//查看最新结果保存数据 +SaveDeviceMeasureInfo BaseCommonApi::getNewResultData() +{ + SaveDeviceMeasureInfo result; + QSqlQuery query; + query.prepare("select * from biz_business_device_measure_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + + result.id = query.value("id").toString(); + result.data_no = query.value("data_no").toString(); + + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //查看当前最新的任务单 QList BaseCommonApi::getCreateTaskListNew() { @@ -796,6 +818,25 @@ */ //根据被检设备ID获取当前设备的 检定项目及检定点 +/* +QMap> BaseCommonApi::Search_CalibrationTable(QString DeiverId,QMap *HeadList) +{ + + QMap> DataList; + DataList.clear(); + QList CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); + if(CliTable.count()==0)return DataList; + switch (CliTable[0].belong_standard_equipment.toInt()) + { + case 1: + //CliTable[0].id + //1717086652508487681 + DataList=BaseCommonApi::getVerMultiCal(CliTable[0].id,HeadList); + } + + return DataList; +}*/ +//根据被检设备ID获取当前设备的 检定项目及检定点 QList BaseCommonApi::Search_CalibrationTable(QString DeiverId,QStringList *HeadList) { @@ -813,7 +854,6 @@ return DataList; } - //核查设备对应的装置表 核查项及核查点 传参设备id QList BaseCommonApi::Search_VerifyTable(QString DeiverId,QStringList *HeadList ) { @@ -857,7 +897,6 @@ } return DataList; } - //被检设备管理-检定项目及检定点-多功能校准源 QList BaseCommonApi::getVerMultiCal(QString itemId,QStringList *headList) { @@ -908,22 +947,88 @@ <<"两线/四线模式"<<"线圈放大"<<"示值"<<"准确度a"<<"指针式仪表满量程值"<<"指针式仪表满量程值单位"<<"被检表示值"<<"准确度等级"<<"创建时间"<<"更新时间"; return resultData; } -bool GetDataReturnItemList(QList ResultData,QMap *DataMapList,QList *HeadMapList) +//被检设备管理-检定项目及检定点-多功能校准源 +/* +QMap> BaseCommonApi::getVerMultiCal(QString itemId,QMap *headList) +{ +QMap> DataMapList; +QList resultData; +QStringList result; +resultData.clear(); + +QSqlQuery query; + query.prepare("SELECT * FROM biz_business_device_measure_item_data_calibrator bbdmidc WHERE item_id = :itemId "); + // 将参数绑定到占位符 + query.bindValue(":itemId", itemId); + if (query.exec()) { + while (query.next()) { + result.clear(); + 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("create_time").toString()); + result.append(query.value("update_time").toString()); + resultData.append(result); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + //进行检定项目列头转换 + DataMapList= GetDataReturnItemList(resultData,DataMapList,headList); + return DataMapList; +} +*/ +QMap> BaseCommonApi::GetDataReturnItemList(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; for(const QStringList &row : ResultData) { if (!row.isEmpty()) { // 确保行不为空 if(row[2]=="DCV") { - QString VerificationItem= "DCV"; + + QString VerificationItem=NULL; + if(isFirst[0]) + { + VerificationItem = "DCV"; //添加列头 QStringList head; head << "序号" << "检定项目" << "量" << "单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; - HeadMapList->append(head); - + HeadMapList->insert(VerificationItem,head); + isFirst[0]=false; + } //添加数据 + QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 @@ -942,24 +1047,167 @@ Data.append("0"); } Data.append(row[9]); //分辨力 - + DCVList.append(Data); } else if(ResultData[2].first()=="ACV") { + QString VerificationItem=NULL; + if(isFirst[1]) + { + VerificationItem = "ACV"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[1]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACVList.append(Data); } else if(ResultData[2].first()=="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]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + DCIList.append(Data); } else if(ResultData[2].first()=="ACI") { + QString VerificationItem=NULL; + if(isFirst[3]) + { + VerificationItem = "ACI"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[3]=false; + } + //添加数据 - } else if(ResultData[2].first()=="ACV") + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACIList.append(Data); + } else if(ResultData[2].first()=="R") { + QString VerificationItem=NULL; + if(isFirst[4]) + { + VerificationItem = "R"; + //添加列头 + QStringList head; + head << "序号" <<"两线/四线" << "量" << "单位" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[4]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[13]); //两线/四线 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + RList.append(Data); } } } + if(DCVList.count()!=0){ + DataMapList.insert("DCV",DCVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACV",ACVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("DCI",DCIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACI",ACIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("R",RList); + }; + return DataMapList; } //检定数据管理 首页 QList BaseCommonApi::getVerificationData() @@ -1107,19 +1355,20 @@ result.append(query.value("frequency").toString()); result.append( query.value("range_range").toString()); result.append(query.value("standard_value").toString()); + result.append(query.value("indicating_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("other_outcome").toString()); - resultData.append(result); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *HeadList<<"id"<<"参数"<<"量"<<"单位"<<"频率" - <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"量程"<<"标准值" <<"示值" <<"分辨力"<<"最大允许误差"<<"误差参数a" <<"误差参数b"<<"合格率"; return resultData; @@ -1475,9 +1724,9 @@ "standard_device_id = :standard_device_id ," "update_time = :update_time " " WHERE id = :id;"); - QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); - QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); - query.bindValue(":update_time",currentDateTime); + QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":update_time",currentDateTime); query.bindValue(":program_name", verInfo.program_name); query.bindValue(":create_name", verInfo.create_name); query.bindValue(":create_time", formattedDateTime); @@ -1607,13 +1856,19 @@ //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { + saveInfo.data_no=TaskManager::getsaveResultdatano(); + QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_info " " (id,data_no,order_id,sample_id,item_id," " trace_date,measure_valid_date,measure_address,temperature,humidity,data_source," " outcome,create_time,update_time) " " VALUES " - " (:id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date,:measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time)"); + " (" + ":id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date," + ":measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time" + ")"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", saveInfo.id); //id 自动生成 query.bindValue(":data_no", saveInfo.data_no); @@ -1627,11 +1882,13 @@ query.bindValue(":humidity", saveInfo.humidity); query.bindValue(":data_source", saveInfo.data_source); query.bindValue(":outcome", saveInfo.outcome); - query.bindValue(":create_time", saveInfo.create_time); - query.bindValue(":update_time", saveInfo.update_time); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); + }else{ + TaskManager::AddResultDataNoCount(); } return isSuccess; @@ -1644,12 +1901,13 @@ " (id,data_id,equipment_id,create_time,update_time) " " VALUES " " (:id,:data_id,:equipment_id,:create_time,:update_time)"); - QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); +// QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", deviceMeasure.id); query.bindValue(":data_id", deviceMeasure.data_id); query.bindValue(":equipment_id", deviceMeasure.equipment_id); - query.bindValue(":create_time", createTime); - query.bindValue(":update_time", createTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1669,8 +1927,8 @@ " VALUES " " (:id,:data_id,:item_data_id,:maximum_error_formula,:error_param_a,:error_param_b,:params,:capacity,:unit,:frequency,:frequency_unit,:range_range,:standard_value,:indicating_value,:maximum_error,:absolute_error,:resolution,:line_mode,:remark,:an,:bn,:cn,:delta_an,:delta_bn,:delta_cn,:measure_indication_value,:standard_value_upper_limit,:accuracy_level,:create_time,:update_time);"); - QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); - +// QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",measureCalibrator.id); query.bindValue(":data_id",measureCalibrator.data_id); query.bindValue(":item_data_id",measureCalibrator.item_data_id); @@ -1699,8 +1957,8 @@ query.bindValue(":measure_indication_value",measureCalibrator.measure_indication_value); query.bindValue(":standard_value_upper_limit",measureCalibrator.standard_value_upper_limit); query.bindValue(":accuracy_level",measureCalibrator.accuracy_level); - query.bindValue(":create_time",formattedUpdateDateTime); - query.bindValue(":update_time",formattedUpdateDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); @@ -1878,14 +2136,14 @@ query.prepare("UPDATE zd_verification_program_manage SET check_name =:check_name," " create_name = :create_name, remark = :remark, img_path =:img_path, standard_device_id =:standard_device_id," " verification_documents_id=:verification_documents_id, update_time=:update_time WHERE id = :id;"); - QString formattedDateTime = check.update_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":check_name", check.check_name); query.bindValue(":create_name", check.create_name); query.bindValue(":remark", check.remark); query.bindValue(":img_path", check.img_path); query.bindValue(":standard_device_id", check.standard_device_id); query.bindValue(":verification_documents_id", check.verification_documents_id); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":update_time",currentDateTime); query.bindValue(":id", check.id); bool isSuccess = query.exec(); if (!isSuccess) { @@ -1905,6 +2163,33 @@ } return isSuccess; } +// 自动核查-根据 设备id查询核查件设备信息 +CheckAndTestedDevice BaseCommonApi::getCheckAndTestedDeviceById(QString deviceId) +{ + CheckAndTestedDevice result; + QSqlQuery query; + query.prepare("SELECT bei.id , bei.equipment_name , bei.model , bei.manufacture_no ," + " bei.manufacturer FROM biz_equipment_info bei WHERE bei.id = :deviceId " + " UNION ALL " + " SELECT eei.id , eei.equipment_name , eei.model, eei.manufacture_no , eei.manufacturer " + " FROM eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :deviceId"); + query.bindValue(":deviceId", deviceId); + bool isSuccess = query.exec(); + if (isSuccess) { + while (query.next()) { + CheckAndTestedDevice device; + device.id = query.value("id").toString(); + device.equipment_name = query.value("equipment_name").toString(); + device.model = query.value("model").toString(); + device.manufacture_no = query.value("manufacture_no").toString(); + device.manufacturer = query.value("manufacturer").toString(); + result=device; + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 bool BaseCommonApi::InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge) { @@ -1915,7 +2200,7 @@ "test_value_four,measure_value_four,test_value_five,measure_value_five,test_value_six,measure_value_six,maximum_error,create_time,update_time) " " VALUES " " (:id,:data_id,:unit,:check_point,:first_forward_stroke,:first_reverse_stroke,:second_forward_stroke,:second_reverse_stroke,:third_forward_stroke,:third_reverse_stroke,:average_value,:average_average_value,:max_indicating_error,:max_return_error,:params,:test_value_one,:measure_value_one,:test_value_two,:measure_value_two,:test_value_three,:measure_value_three,:test_value_four,:measure_value_four,:test_value_five,:measure_value_five,:test_value_six,:measure_value_six,:maximum_error,:create_time,:update_time) "); - QString formattedDateTime = gauge.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",gauge.id); query.bindValue(":data_id",gauge.data_id); query.bindValue(":unit",gauge.unit); @@ -1944,8 +2229,8 @@ query.bindValue(":test_value_six",gauge.test_value_six); query.bindValue(":measure_value_six",gauge.measure_value_six); query.bindValue(":maximum_error",gauge.maximum_error); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1965,7 +2250,7 @@ " (:id,:data_no,:check_date,:check_address,:temperature,:humidity,:check_accord,:stability_examine,:standard_equipment_id," ":equipment_id,:item_category_id,:conclusion,:remark,:create_user_id,:create_user_name,:create_time,:update_time) "); QString checkData = baseInfo.check_date.toString("yyyy-MM-dd"); - QString formattedDateTime = baseInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",baseInfo.id); query.bindValue(":data_no",baseInfo.data_no); query.bindValue(":check_date",checkData); @@ -1981,8 +2266,8 @@ query.bindValue(":remark",baseInfo.remark); query.bindValue(":create_user_id",baseInfo.create_user_id); query.bindValue(":create_user_name",baseInfo.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2074,8 +2359,8 @@ " VALUES " " (:id,:check_equipment_id,:data_id)"); query.bindValue(":id",equiment.id); - query.bindValue(":data_no",equiment.check_equipment_id); - query.bindValue(":check_date",equiment.data_id); + query.bindValue(":check_equipment_id",equiment.check_equipment_id); + query.bindValue(":data_id",equiment.data_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2102,7 +2387,7 @@ ":test_value_three_date, :test_value_three, :test_value_four_date, :test_value_four, " ":test_value_five_date, :test_value_five, :test_value_six_date, :test_value_six, :average_value, " ":standard_deviation, :relative_repeatability, :urel, :less_than, :qualified, :create_time, :update_time)"); - QString formattedDateTime = calibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", calibrator.id); query.bindValue(":data_id", calibrator.data_id); @@ -2131,8 +2416,8 @@ query.bindValue(":urel", calibrator.urel); query.bindValue(":less_than", calibrator.less_than); query.bindValue(":qualified", calibrator.qualified); - query.bindValue(":create_time", formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2185,7 +2470,7 @@ query.prepare("INSERT INTO biz_business_device_measure_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2193,8 +2478,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); @@ -2234,7 +2519,7 @@ query.prepare("INSERT INTO biz_equipment_standard_check_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2242,8 +2527,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index a132816..479d8ba 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -828,7 +828,8 @@ QString encrypt(const QString &str, const QString &publicKey); //判断检定装置表并查询 参数设备id - static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + //static QMap> Search_CalibrationTable(QString DeiverId,QMap *HeadList); //判断核查装置表并查询 参数设备id static QList Search_VerifyTable(QString DeiverId,QStringList *HeadList ); @@ -891,6 +892,10 @@ static JudgeCalibrationTable getJudgeVerifyTable(QString id); //被检设备管理-检定项目及检定点-多功能校准源 static QList getVerMultiCal(QString itemId,QStringList *headList); + //static QMap> getVerMultiCal(QString itemId,QMap *headList); + static QMap> GetDataReturnItemList(QList ResultData, + QMap> DataMapList, + QMap *HeadMapList); // 获取检定数据管理 首页 static QList getVerificationData(); // 检定数据管理-检定基本信息-标准设备 @@ -967,6 +972,8 @@ static bool DeleteCheckProgramManage(QString id); // 设备与装置-标准装置管理-核查数据基本信息关联的核查标准设备,即给设备做核查的设备 static bool InsertStandCheckInfoEquipent(StandCheckInfoEquipent equiment); +// 自动核查-根据 设备id查询核查件设备信息 + static CheckAndTestedDevice getCheckAndTestedDeviceById(QString deviceId); //自动核查--结果保存-设备与装置-标准装置管理-多功能校准源 static bool InsertStandCheckDataCalibrator(StandCheckDataCalibrator calibrator); //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 @@ -991,7 +998,8 @@ static bool InsertCheckModifyRecord(MeasureModifyRecord record); //设备与装置-标准装置管理-核查数据管理核查数据历史修改记录[查询] 参数 检定数据管理基础信息表id static QList getMeasureModifyRecord(QString data_id); - + //查询最新结果保存记录 + static SaveDeviceMeasureInfo getNewResultData(); }; diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index 4cfa1b6..fef3880 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -199,7 +199,7 @@ QStringList headlist; QList Data=dbManager.Search_CalibrationTable(id,&headlist); - + //QList Data; //tableWidgetItem ui->tableWidgetItem->setRowCount(0); ui->tableWidgetItem->setColumnCount(headlist.count()); diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index 77f0a9a..48b7c7c 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -601,6 +601,7 @@ } } item.measure_indication_value = sRet; + ui->tableWidgetCheck->setItem(i,15,new QTableWidgetItem(sRet)); //示值 ui->tableWidgetCheck->setItem(i,19,new QTableWidgetItem(sRet)); } } diff --git a/softwareDirectory/AutoVerScheme/databaseconnection.cpp b/softwareDirectory/AutoVerScheme/databaseconnection.cpp index 2adadd4..1d957d9 100644 --- a/softwareDirectory/AutoVerScheme/databaseconnection.cpp +++ b/softwareDirectory/AutoVerScheme/databaseconnection.cpp @@ -1,6 +1,8 @@ #include "databaseconnection.h" + + DatabaseConnection* DatabaseConnection::Connect = nullptr; QMutex DatabaseConnection::mutex; diff --git a/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp b/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp index a23f7d4..3210be8 100644 --- a/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp +++ b/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp @@ -59,7 +59,7 @@ SaveDeviceMeasureInfo measInfo; BaseCommonApi api; measInfo.id = QString::number(api.generateId()); - measInfo.data_no = "jdsj"+QDateTime::currentDateTime().toString("yyyyMMdd")+"0003"; + //measInfo.data_no; measInfo.order_id = taskList[0].id; measInfo.sample_id=deviceId; measInfo.item_id=measureCalList[0].item_data_id; @@ -86,6 +86,7 @@ item.data_id = measInfo.id; BaseCommonApi::InsertVerMultiCal(item); } + QMessageBox::information(this, "提示", "保存成功!"); } else { diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h index 9bf1935..3d9b474 100644 --- a/softwareDirectory/AutoVerScheme/id/TaskManager.h +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -10,15 +10,19 @@ class TaskManager { private: static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QMap saveResultdatanoList; // 日期 -> 结果保存 static QDate currentDate; static QString KeyDate; - + //ResultKeyDate + static QString ResultKeyDate; public: static int getTaskCountForToday(); static bool AddCurrenTaskCount(); static QString generateTask(QString Number); + static bool AddResultDataNoCount(); + static QString getsaveResultdatano(); }; diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index ed0d569..c6c6c43 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -2,11 +2,14 @@ #include "id/TaskManager.h" #include "basecommonapi.h" -// 定义并初始化静态成员变量 +// 定义并初始化静态成员变量 委托单编号 QMap TaskManager::dailyTaskCounts; QDate TaskManager::currentDate; QString TaskManager::KeyDate; +//检定结果保存 +QMap TaskManager::saveResultdatanoList; +QString TaskManager::ResultKeyDate; QString TaskManager::generateTask(QString Number) { // 初始化当天任务单数量为0 @@ -40,24 +43,67 @@ return taskId; } -int TaskManager::getTaskCountForToday() +QString TaskManager::getsaveResultdatano() { - // 返回当天的任务单数量 - return dailyTaskCounts.value(KeyDate, 0); + + //获取结果保存ID + ResultKeyDate = QDate::currentDate().toString("yyyyMMdd"); + //判断是否包含 如包含直接返回结果 + if(!saveResultdatanoList.contains(ResultKeyDate)) + { + + //找寻数据库上次的记录 + QString datano=BaseCommonApi::getNewResultData().data_no; + if(datano!=""){ + int startIndex = datano.lastIndexOf("j")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + //截截取 + QString result = datano.mid(startIndex, 8); + if(result!=ResultKeyDate){ + saveResultdatanoList[ResultKeyDate] = 1; + }else + { + //获取最后一位数 并加1 + QChar lastChar = datano.at(datano.length() - 1); + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + saveResultdatanoList[ResultKeyDate] = Count+1; + } + + } + + }else{saveResultdatanoList[ResultKeyDate] = 1;}; + + } + + QString dateStr = ResultKeyDate; + // 生成结果保存编号,这里假设编号格式是 "jdsjYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("jdsj%1%2").arg(dateStr).arg(saveResultdatanoList[ResultKeyDate], 4, 10, QChar('0')); + //返回结果 + return taskId; } + bool TaskManager::AddCurrenTaskCount() { // 增加当天任务单数量 try { - dailyTaskCounts[KeyDate]++; return true; } catch(const std::exception &e) { return false; } - } - +bool TaskManager::AddResultDataNoCount() +{ + // 增加当天任务单数量 + try { + saveResultdatanoList[ResultKeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } +} diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 08eeaf5..47ee4da 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -6,6 +6,7 @@ #include + BaseCommonApi::BaseCommonApi() { @@ -56,8 +57,10 @@ info.create_time = query.value("create_time").toDateTime(); info.update_time = query.value("update_time").toDateTime(); result=info; + } - }else { +// qDebug() << "sql代码: " << query.lastQuery(); + }else { qDebug() << "Query execution failed: " << query.lastError().text(); } @@ -121,6 +124,7 @@ " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); + if (query.exec()) { while (query.next()) { Dept Dept; @@ -188,6 +192,24 @@ } return result; } +//查看最新结果保存数据 +SaveDeviceMeasureInfo BaseCommonApi::getNewResultData() +{ + SaveDeviceMeasureInfo result; + QSqlQuery query; + query.prepare("select * from biz_business_device_measure_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + + result.id = query.value("id").toString(); + result.data_no = query.value("data_no").toString(); + + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //查看当前最新的任务单 QList BaseCommonApi::getCreateTaskListNew() { @@ -796,6 +818,25 @@ */ //根据被检设备ID获取当前设备的 检定项目及检定点 +/* +QMap> BaseCommonApi::Search_CalibrationTable(QString DeiverId,QMap *HeadList) +{ + + QMap> DataList; + DataList.clear(); + QList CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); + if(CliTable.count()==0)return DataList; + switch (CliTable[0].belong_standard_equipment.toInt()) + { + case 1: + //CliTable[0].id + //1717086652508487681 + DataList=BaseCommonApi::getVerMultiCal(CliTable[0].id,HeadList); + } + + return DataList; +}*/ +//根据被检设备ID获取当前设备的 检定项目及检定点 QList BaseCommonApi::Search_CalibrationTable(QString DeiverId,QStringList *HeadList) { @@ -813,7 +854,6 @@ return DataList; } - //核查设备对应的装置表 核查项及核查点 传参设备id QList BaseCommonApi::Search_VerifyTable(QString DeiverId,QStringList *HeadList ) { @@ -857,7 +897,6 @@ } return DataList; } - //被检设备管理-检定项目及检定点-多功能校准源 QList BaseCommonApi::getVerMultiCal(QString itemId,QStringList *headList) { @@ -908,22 +947,88 @@ <<"两线/四线模式"<<"线圈放大"<<"示值"<<"准确度a"<<"指针式仪表满量程值"<<"指针式仪表满量程值单位"<<"被检表示值"<<"准确度等级"<<"创建时间"<<"更新时间"; return resultData; } -bool GetDataReturnItemList(QList ResultData,QMap *DataMapList,QList *HeadMapList) +//被检设备管理-检定项目及检定点-多功能校准源 +/* +QMap> BaseCommonApi::getVerMultiCal(QString itemId,QMap *headList) +{ +QMap> DataMapList; +QList resultData; +QStringList result; +resultData.clear(); + +QSqlQuery query; + query.prepare("SELECT * FROM biz_business_device_measure_item_data_calibrator bbdmidc WHERE item_id = :itemId "); + // 将参数绑定到占位符 + query.bindValue(":itemId", itemId); + if (query.exec()) { + while (query.next()) { + result.clear(); + 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("create_time").toString()); + result.append(query.value("update_time").toString()); + resultData.append(result); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + //进行检定项目列头转换 + DataMapList= GetDataReturnItemList(resultData,DataMapList,headList); + return DataMapList; +} +*/ +QMap> BaseCommonApi::GetDataReturnItemList(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; for(const QStringList &row : ResultData) { if (!row.isEmpty()) { // 确保行不为空 if(row[2]=="DCV") { - QString VerificationItem= "DCV"; + + QString VerificationItem=NULL; + if(isFirst[0]) + { + VerificationItem = "DCV"; //添加列头 QStringList head; head << "序号" << "检定项目" << "量" << "单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; - HeadMapList->append(head); - + HeadMapList->insert(VerificationItem,head); + isFirst[0]=false; + } //添加数据 + QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 @@ -942,24 +1047,167 @@ Data.append("0"); } Data.append(row[9]); //分辨力 - + DCVList.append(Data); } else if(ResultData[2].first()=="ACV") { + QString VerificationItem=NULL; + if(isFirst[1]) + { + VerificationItem = "ACV"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[1]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACVList.append(Data); } else if(ResultData[2].first()=="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]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + DCIList.append(Data); } else if(ResultData[2].first()=="ACI") { + QString VerificationItem=NULL; + if(isFirst[3]) + { + VerificationItem = "ACI"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[3]=false; + } + //添加数据 - } else if(ResultData[2].first()=="ACV") + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACIList.append(Data); + } else if(ResultData[2].first()=="R") { + QString VerificationItem=NULL; + if(isFirst[4]) + { + VerificationItem = "R"; + //添加列头 + QStringList head; + head << "序号" <<"两线/四线" << "量" << "单位" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[4]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[13]); //两线/四线 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + RList.append(Data); } } } + if(DCVList.count()!=0){ + DataMapList.insert("DCV",DCVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACV",ACVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("DCI",DCIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACI",ACIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("R",RList); + }; + return DataMapList; } //检定数据管理 首页 QList BaseCommonApi::getVerificationData() @@ -1107,19 +1355,20 @@ result.append(query.value("frequency").toString()); result.append( query.value("range_range").toString()); result.append(query.value("standard_value").toString()); + result.append(query.value("indicating_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("other_outcome").toString()); - resultData.append(result); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *HeadList<<"id"<<"参数"<<"量"<<"单位"<<"频率" - <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"量程"<<"标准值" <<"示值" <<"分辨力"<<"最大允许误差"<<"误差参数a" <<"误差参数b"<<"合格率"; return resultData; @@ -1475,9 +1724,9 @@ "standard_device_id = :standard_device_id ," "update_time = :update_time " " WHERE id = :id;"); - QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); - QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); - query.bindValue(":update_time",currentDateTime); + QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":update_time",currentDateTime); query.bindValue(":program_name", verInfo.program_name); query.bindValue(":create_name", verInfo.create_name); query.bindValue(":create_time", formattedDateTime); @@ -1607,13 +1856,19 @@ //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { + saveInfo.data_no=TaskManager::getsaveResultdatano(); + QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_info " " (id,data_no,order_id,sample_id,item_id," " trace_date,measure_valid_date,measure_address,temperature,humidity,data_source," " outcome,create_time,update_time) " " VALUES " - " (:id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date,:measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time)"); + " (" + ":id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date," + ":measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time" + ")"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", saveInfo.id); //id 自动生成 query.bindValue(":data_no", saveInfo.data_no); @@ -1627,11 +1882,13 @@ query.bindValue(":humidity", saveInfo.humidity); query.bindValue(":data_source", saveInfo.data_source); query.bindValue(":outcome", saveInfo.outcome); - query.bindValue(":create_time", saveInfo.create_time); - query.bindValue(":update_time", saveInfo.update_time); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); + }else{ + TaskManager::AddResultDataNoCount(); } return isSuccess; @@ -1644,12 +1901,13 @@ " (id,data_id,equipment_id,create_time,update_time) " " VALUES " " (:id,:data_id,:equipment_id,:create_time,:update_time)"); - QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); +// QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", deviceMeasure.id); query.bindValue(":data_id", deviceMeasure.data_id); query.bindValue(":equipment_id", deviceMeasure.equipment_id); - query.bindValue(":create_time", createTime); - query.bindValue(":update_time", createTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1669,8 +1927,8 @@ " VALUES " " (:id,:data_id,:item_data_id,:maximum_error_formula,:error_param_a,:error_param_b,:params,:capacity,:unit,:frequency,:frequency_unit,:range_range,:standard_value,:indicating_value,:maximum_error,:absolute_error,:resolution,:line_mode,:remark,:an,:bn,:cn,:delta_an,:delta_bn,:delta_cn,:measure_indication_value,:standard_value_upper_limit,:accuracy_level,:create_time,:update_time);"); - QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); - +// QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",measureCalibrator.id); query.bindValue(":data_id",measureCalibrator.data_id); query.bindValue(":item_data_id",measureCalibrator.item_data_id); @@ -1699,8 +1957,8 @@ query.bindValue(":measure_indication_value",measureCalibrator.measure_indication_value); query.bindValue(":standard_value_upper_limit",measureCalibrator.standard_value_upper_limit); query.bindValue(":accuracy_level",measureCalibrator.accuracy_level); - query.bindValue(":create_time",formattedUpdateDateTime); - query.bindValue(":update_time",formattedUpdateDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); @@ -1878,14 +2136,14 @@ query.prepare("UPDATE zd_verification_program_manage SET check_name =:check_name," " create_name = :create_name, remark = :remark, img_path =:img_path, standard_device_id =:standard_device_id," " verification_documents_id=:verification_documents_id, update_time=:update_time WHERE id = :id;"); - QString formattedDateTime = check.update_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":check_name", check.check_name); query.bindValue(":create_name", check.create_name); query.bindValue(":remark", check.remark); query.bindValue(":img_path", check.img_path); query.bindValue(":standard_device_id", check.standard_device_id); query.bindValue(":verification_documents_id", check.verification_documents_id); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":update_time",currentDateTime); query.bindValue(":id", check.id); bool isSuccess = query.exec(); if (!isSuccess) { @@ -1905,6 +2163,33 @@ } return isSuccess; } +// 自动核查-根据 设备id查询核查件设备信息 +CheckAndTestedDevice BaseCommonApi::getCheckAndTestedDeviceById(QString deviceId) +{ + CheckAndTestedDevice result; + QSqlQuery query; + query.prepare("SELECT bei.id , bei.equipment_name , bei.model , bei.manufacture_no ," + " bei.manufacturer FROM biz_equipment_info bei WHERE bei.id = :deviceId " + " UNION ALL " + " SELECT eei.id , eei.equipment_name , eei.model, eei.manufacture_no , eei.manufacturer " + " FROM eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :deviceId"); + query.bindValue(":deviceId", deviceId); + bool isSuccess = query.exec(); + if (isSuccess) { + while (query.next()) { + CheckAndTestedDevice device; + device.id = query.value("id").toString(); + device.equipment_name = query.value("equipment_name").toString(); + device.model = query.value("model").toString(); + device.manufacture_no = query.value("manufacture_no").toString(); + device.manufacturer = query.value("manufacturer").toString(); + result=device; + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 bool BaseCommonApi::InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge) { @@ -1915,7 +2200,7 @@ "test_value_four,measure_value_four,test_value_five,measure_value_five,test_value_six,measure_value_six,maximum_error,create_time,update_time) " " VALUES " " (:id,:data_id,:unit,:check_point,:first_forward_stroke,:first_reverse_stroke,:second_forward_stroke,:second_reverse_stroke,:third_forward_stroke,:third_reverse_stroke,:average_value,:average_average_value,:max_indicating_error,:max_return_error,:params,:test_value_one,:measure_value_one,:test_value_two,:measure_value_two,:test_value_three,:measure_value_three,:test_value_four,:measure_value_four,:test_value_five,:measure_value_five,:test_value_six,:measure_value_six,:maximum_error,:create_time,:update_time) "); - QString formattedDateTime = gauge.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",gauge.id); query.bindValue(":data_id",gauge.data_id); query.bindValue(":unit",gauge.unit); @@ -1944,8 +2229,8 @@ query.bindValue(":test_value_six",gauge.test_value_six); query.bindValue(":measure_value_six",gauge.measure_value_six); query.bindValue(":maximum_error",gauge.maximum_error); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1965,7 +2250,7 @@ " (:id,:data_no,:check_date,:check_address,:temperature,:humidity,:check_accord,:stability_examine,:standard_equipment_id," ":equipment_id,:item_category_id,:conclusion,:remark,:create_user_id,:create_user_name,:create_time,:update_time) "); QString checkData = baseInfo.check_date.toString("yyyy-MM-dd"); - QString formattedDateTime = baseInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",baseInfo.id); query.bindValue(":data_no",baseInfo.data_no); query.bindValue(":check_date",checkData); @@ -1981,8 +2266,8 @@ query.bindValue(":remark",baseInfo.remark); query.bindValue(":create_user_id",baseInfo.create_user_id); query.bindValue(":create_user_name",baseInfo.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2074,8 +2359,8 @@ " VALUES " " (:id,:check_equipment_id,:data_id)"); query.bindValue(":id",equiment.id); - query.bindValue(":data_no",equiment.check_equipment_id); - query.bindValue(":check_date",equiment.data_id); + query.bindValue(":check_equipment_id",equiment.check_equipment_id); + query.bindValue(":data_id",equiment.data_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2102,7 +2387,7 @@ ":test_value_three_date, :test_value_three, :test_value_four_date, :test_value_four, " ":test_value_five_date, :test_value_five, :test_value_six_date, :test_value_six, :average_value, " ":standard_deviation, :relative_repeatability, :urel, :less_than, :qualified, :create_time, :update_time)"); - QString formattedDateTime = calibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", calibrator.id); query.bindValue(":data_id", calibrator.data_id); @@ -2131,8 +2416,8 @@ query.bindValue(":urel", calibrator.urel); query.bindValue(":less_than", calibrator.less_than); query.bindValue(":qualified", calibrator.qualified); - query.bindValue(":create_time", formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2185,7 +2470,7 @@ query.prepare("INSERT INTO biz_business_device_measure_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2193,8 +2478,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); @@ -2234,7 +2519,7 @@ query.prepare("INSERT INTO biz_equipment_standard_check_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2242,8 +2527,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index a132816..479d8ba 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -828,7 +828,8 @@ QString encrypt(const QString &str, const QString &publicKey); //判断检定装置表并查询 参数设备id - static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + //static QMap> Search_CalibrationTable(QString DeiverId,QMap *HeadList); //判断核查装置表并查询 参数设备id static QList Search_VerifyTable(QString DeiverId,QStringList *HeadList ); @@ -891,6 +892,10 @@ static JudgeCalibrationTable getJudgeVerifyTable(QString id); //被检设备管理-检定项目及检定点-多功能校准源 static QList getVerMultiCal(QString itemId,QStringList *headList); + //static QMap> getVerMultiCal(QString itemId,QMap *headList); + static QMap> GetDataReturnItemList(QList ResultData, + QMap> DataMapList, + QMap *HeadMapList); // 获取检定数据管理 首页 static QList getVerificationData(); // 检定数据管理-检定基本信息-标准设备 @@ -967,6 +972,8 @@ static bool DeleteCheckProgramManage(QString id); // 设备与装置-标准装置管理-核查数据基本信息关联的核查标准设备,即给设备做核查的设备 static bool InsertStandCheckInfoEquipent(StandCheckInfoEquipent equiment); +// 自动核查-根据 设备id查询核查件设备信息 + static CheckAndTestedDevice getCheckAndTestedDeviceById(QString deviceId); //自动核查--结果保存-设备与装置-标准装置管理-多功能校准源 static bool InsertStandCheckDataCalibrator(StandCheckDataCalibrator calibrator); //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 @@ -991,7 +998,8 @@ static bool InsertCheckModifyRecord(MeasureModifyRecord record); //设备与装置-标准装置管理-核查数据管理核查数据历史修改记录[查询] 参数 检定数据管理基础信息表id static QList getMeasureModifyRecord(QString data_id); - + //查询最新结果保存记录 + static SaveDeviceMeasureInfo getNewResultData(); }; diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index 4cfa1b6..fef3880 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -199,7 +199,7 @@ QStringList headlist; QList Data=dbManager.Search_CalibrationTable(id,&headlist); - + //QList Data; //tableWidgetItem ui->tableWidgetItem->setRowCount(0); ui->tableWidgetItem->setColumnCount(headlist.count()); diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index 77f0a9a..48b7c7c 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -601,6 +601,7 @@ } } item.measure_indication_value = sRet; + ui->tableWidgetCheck->setItem(i,15,new QTableWidgetItem(sRet)); //示值 ui->tableWidgetCheck->setItem(i,19,new QTableWidgetItem(sRet)); } } diff --git a/softwareDirectory/AutoVerScheme/databaseconnection.cpp b/softwareDirectory/AutoVerScheme/databaseconnection.cpp index 2adadd4..1d957d9 100644 --- a/softwareDirectory/AutoVerScheme/databaseconnection.cpp +++ b/softwareDirectory/AutoVerScheme/databaseconnection.cpp @@ -1,6 +1,8 @@ #include "databaseconnection.h" + + DatabaseConnection* DatabaseConnection::Connect = nullptr; QMutex DatabaseConnection::mutex; diff --git a/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp b/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp index a23f7d4..3210be8 100644 --- a/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp +++ b/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp @@ -59,7 +59,7 @@ SaveDeviceMeasureInfo measInfo; BaseCommonApi api; measInfo.id = QString::number(api.generateId()); - measInfo.data_no = "jdsj"+QDateTime::currentDateTime().toString("yyyyMMdd")+"0003"; + //measInfo.data_no; measInfo.order_id = taskList[0].id; measInfo.sample_id=deviceId; measInfo.item_id=measureCalList[0].item_data_id; @@ -86,6 +86,7 @@ item.data_id = measInfo.id; BaseCommonApi::InsertVerMultiCal(item); } + QMessageBox::information(this, "提示", "保存成功!"); } else { diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h index 9bf1935..3d9b474 100644 --- a/softwareDirectory/AutoVerScheme/id/TaskManager.h +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -10,15 +10,19 @@ class TaskManager { private: static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QMap saveResultdatanoList; // 日期 -> 结果保存 static QDate currentDate; static QString KeyDate; - + //ResultKeyDate + static QString ResultKeyDate; public: static int getTaskCountForToday(); static bool AddCurrenTaskCount(); static QString generateTask(QString Number); + static bool AddResultDataNoCount(); + static QString getsaveResultdatano(); }; diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index e798260..bfada13 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -40,7 +40,7 @@ << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); //设置tableWidgetItem - ui->tableWidget->setStyleSheet("QHeaderView::section {" + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" "border: 1px solid rgba(197, 196, 196, 1);" "border-left:none;" "border-top:none;" diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index ed0d569..c6c6c43 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -2,11 +2,14 @@ #include "id/TaskManager.h" #include "basecommonapi.h" -// 定义并初始化静态成员变量 +// 定义并初始化静态成员变量 委托单编号 QMap TaskManager::dailyTaskCounts; QDate TaskManager::currentDate; QString TaskManager::KeyDate; +//检定结果保存 +QMap TaskManager::saveResultdatanoList; +QString TaskManager::ResultKeyDate; QString TaskManager::generateTask(QString Number) { // 初始化当天任务单数量为0 @@ -40,24 +43,67 @@ return taskId; } -int TaskManager::getTaskCountForToday() +QString TaskManager::getsaveResultdatano() { - // 返回当天的任务单数量 - return dailyTaskCounts.value(KeyDate, 0); + + //获取结果保存ID + ResultKeyDate = QDate::currentDate().toString("yyyyMMdd"); + //判断是否包含 如包含直接返回结果 + if(!saveResultdatanoList.contains(ResultKeyDate)) + { + + //找寻数据库上次的记录 + QString datano=BaseCommonApi::getNewResultData().data_no; + if(datano!=""){ + int startIndex = datano.lastIndexOf("j")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + //截截取 + QString result = datano.mid(startIndex, 8); + if(result!=ResultKeyDate){ + saveResultdatanoList[ResultKeyDate] = 1; + }else + { + //获取最后一位数 并加1 + QChar lastChar = datano.at(datano.length() - 1); + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + saveResultdatanoList[ResultKeyDate] = Count+1; + } + + } + + }else{saveResultdatanoList[ResultKeyDate] = 1;}; + + } + + QString dateStr = ResultKeyDate; + // 生成结果保存编号,这里假设编号格式是 "jdsjYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("jdsj%1%2").arg(dateStr).arg(saveResultdatanoList[ResultKeyDate], 4, 10, QChar('0')); + //返回结果 + return taskId; } + bool TaskManager::AddCurrenTaskCount() { // 增加当天任务单数量 try { - dailyTaskCounts[KeyDate]++; return true; } catch(const std::exception &e) { return false; } - } - +bool TaskManager::AddResultDataNoCount() +{ + // 增加当天任务单数量 + try { + saveResultdatanoList[ResultKeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } +} diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 08eeaf5..47ee4da 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -6,6 +6,7 @@ #include + BaseCommonApi::BaseCommonApi() { @@ -56,8 +57,10 @@ info.create_time = query.value("create_time").toDateTime(); info.update_time = query.value("update_time").toDateTime(); result=info; + } - }else { +// qDebug() << "sql代码: " << query.lastQuery(); + }else { qDebug() << "Query execution failed: " << query.lastError().text(); } @@ -121,6 +124,7 @@ " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); + if (query.exec()) { while (query.next()) { Dept Dept; @@ -188,6 +192,24 @@ } return result; } +//查看最新结果保存数据 +SaveDeviceMeasureInfo BaseCommonApi::getNewResultData() +{ + SaveDeviceMeasureInfo result; + QSqlQuery query; + query.prepare("select * from biz_business_device_measure_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + + result.id = query.value("id").toString(); + result.data_no = query.value("data_no").toString(); + + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //查看当前最新的任务单 QList BaseCommonApi::getCreateTaskListNew() { @@ -796,6 +818,25 @@ */ //根据被检设备ID获取当前设备的 检定项目及检定点 +/* +QMap> BaseCommonApi::Search_CalibrationTable(QString DeiverId,QMap *HeadList) +{ + + QMap> DataList; + DataList.clear(); + QList CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); + if(CliTable.count()==0)return DataList; + switch (CliTable[0].belong_standard_equipment.toInt()) + { + case 1: + //CliTable[0].id + //1717086652508487681 + DataList=BaseCommonApi::getVerMultiCal(CliTable[0].id,HeadList); + } + + return DataList; +}*/ +//根据被检设备ID获取当前设备的 检定项目及检定点 QList BaseCommonApi::Search_CalibrationTable(QString DeiverId,QStringList *HeadList) { @@ -813,7 +854,6 @@ return DataList; } - //核查设备对应的装置表 核查项及核查点 传参设备id QList BaseCommonApi::Search_VerifyTable(QString DeiverId,QStringList *HeadList ) { @@ -857,7 +897,6 @@ } return DataList; } - //被检设备管理-检定项目及检定点-多功能校准源 QList BaseCommonApi::getVerMultiCal(QString itemId,QStringList *headList) { @@ -908,22 +947,88 @@ <<"两线/四线模式"<<"线圈放大"<<"示值"<<"准确度a"<<"指针式仪表满量程值"<<"指针式仪表满量程值单位"<<"被检表示值"<<"准确度等级"<<"创建时间"<<"更新时间"; return resultData; } -bool GetDataReturnItemList(QList ResultData,QMap *DataMapList,QList *HeadMapList) +//被检设备管理-检定项目及检定点-多功能校准源 +/* +QMap> BaseCommonApi::getVerMultiCal(QString itemId,QMap *headList) +{ +QMap> DataMapList; +QList resultData; +QStringList result; +resultData.clear(); + +QSqlQuery query; + query.prepare("SELECT * FROM biz_business_device_measure_item_data_calibrator bbdmidc WHERE item_id = :itemId "); + // 将参数绑定到占位符 + query.bindValue(":itemId", itemId); + if (query.exec()) { + while (query.next()) { + result.clear(); + 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("create_time").toString()); + result.append(query.value("update_time").toString()); + resultData.append(result); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + //进行检定项目列头转换 + DataMapList= GetDataReturnItemList(resultData,DataMapList,headList); + return DataMapList; +} +*/ +QMap> BaseCommonApi::GetDataReturnItemList(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; for(const QStringList &row : ResultData) { if (!row.isEmpty()) { // 确保行不为空 if(row[2]=="DCV") { - QString VerificationItem= "DCV"; + + QString VerificationItem=NULL; + if(isFirst[0]) + { + VerificationItem = "DCV"; //添加列头 QStringList head; head << "序号" << "检定项目" << "量" << "单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; - HeadMapList->append(head); - + HeadMapList->insert(VerificationItem,head); + isFirst[0]=false; + } //添加数据 + QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 @@ -942,24 +1047,167 @@ Data.append("0"); } Data.append(row[9]); //分辨力 - + DCVList.append(Data); } else if(ResultData[2].first()=="ACV") { + QString VerificationItem=NULL; + if(isFirst[1]) + { + VerificationItem = "ACV"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[1]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACVList.append(Data); } else if(ResultData[2].first()=="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]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + DCIList.append(Data); } else if(ResultData[2].first()=="ACI") { + QString VerificationItem=NULL; + if(isFirst[3]) + { + VerificationItem = "ACI"; + //添加列头 + QStringList head; + head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[3]=false; + } + //添加数据 - } else if(ResultData[2].first()=="ACV") + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[5]); //频率 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + ACIList.append(Data); + } else if(ResultData[2].first()=="R") { + QString VerificationItem=NULL; + if(isFirst[4]) + { + VerificationItem = "R"; + //添加列头 + QStringList head; + head << "序号" <<"两线/四线" << "量" << "单位" << "量程" + << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; + HeadMapList->insert(VerificationItem,head); + isFirst[4]=false; + } + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[13]); //两线/四线 + Data.append(row[3]); //量 + Data.append(row[4]); //单位 + Data.append(row[7]); //量程 + Data.append(row[8]); //标准值 + Data.append(row[15]); //示值 + 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]); //分辨力 + RList.append(Data); } } } + if(DCVList.count()!=0){ + DataMapList.insert("DCV",DCVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACV",ACVList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("DCI",DCIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("ACI",ACIList); + }; + if(DCVList.count()!=0){ + DataMapList.insert("R",RList); + }; + return DataMapList; } //检定数据管理 首页 QList BaseCommonApi::getVerificationData() @@ -1107,19 +1355,20 @@ result.append(query.value("frequency").toString()); result.append( query.value("range_range").toString()); result.append(query.value("standard_value").toString()); + result.append(query.value("indicating_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("other_outcome").toString()); - resultData.append(result); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *HeadList<<"id"<<"参数"<<"量"<<"单位"<<"频率" - <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"量程"<<"标准值" <<"示值" <<"分辨力"<<"最大允许误差"<<"误差参数a" <<"误差参数b"<<"合格率"; return resultData; @@ -1475,9 +1724,9 @@ "standard_device_id = :standard_device_id ," "update_time = :update_time " " WHERE id = :id;"); - QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); - QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); - query.bindValue(":update_time",currentDateTime); + QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":update_time",currentDateTime); query.bindValue(":program_name", verInfo.program_name); query.bindValue(":create_name", verInfo.create_name); query.bindValue(":create_time", formattedDateTime); @@ -1607,13 +1856,19 @@ //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { + saveInfo.data_no=TaskManager::getsaveResultdatano(); + QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_info " " (id,data_no,order_id,sample_id,item_id," " trace_date,measure_valid_date,measure_address,temperature,humidity,data_source," " outcome,create_time,update_time) " " VALUES " - " (:id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date,:measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time)"); + " (" + ":id,:data_no,:order_id,:sample_id,:item_id,:trace_date,:measure_valid_date," + ":measure_address,:temperature,:humidity,:data_source,:outcome,:create_time,:update_time" + ")"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", saveInfo.id); //id 自动生成 query.bindValue(":data_no", saveInfo.data_no); @@ -1627,11 +1882,13 @@ query.bindValue(":humidity", saveInfo.humidity); query.bindValue(":data_source", saveInfo.data_source); query.bindValue(":outcome", saveInfo.outcome); - query.bindValue(":create_time", saveInfo.create_time); - query.bindValue(":update_time", saveInfo.update_time); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); + }else{ + TaskManager::AddResultDataNoCount(); } return isSuccess; @@ -1644,12 +1901,13 @@ " (id,data_id,equipment_id,create_time,update_time) " " VALUES " " (:id,:data_id,:equipment_id,:create_time,:update_time)"); - QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); +// QString createTime = deviceMeasure.create_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", deviceMeasure.id); query.bindValue(":data_id", deviceMeasure.data_id); query.bindValue(":equipment_id", deviceMeasure.equipment_id); - query.bindValue(":create_time", createTime); - query.bindValue(":update_time", createTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1669,8 +1927,8 @@ " VALUES " " (:id,:data_id,:item_data_id,:maximum_error_formula,:error_param_a,:error_param_b,:params,:capacity,:unit,:frequency,:frequency_unit,:range_range,:standard_value,:indicating_value,:maximum_error,:absolute_error,:resolution,:line_mode,:remark,:an,:bn,:cn,:delta_an,:delta_bn,:delta_cn,:measure_indication_value,:standard_value_upper_limit,:accuracy_level,:create_time,:update_time);"); - QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); - +// QString formattedUpdateDateTime = measureCalibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",measureCalibrator.id); query.bindValue(":data_id",measureCalibrator.data_id); query.bindValue(":item_data_id",measureCalibrator.item_data_id); @@ -1699,8 +1957,8 @@ query.bindValue(":measure_indication_value",measureCalibrator.measure_indication_value); query.bindValue(":standard_value_upper_limit",measureCalibrator.standard_value_upper_limit); query.bindValue(":accuracy_level",measureCalibrator.accuracy_level); - query.bindValue(":create_time",formattedUpdateDateTime); - query.bindValue(":update_time",formattedUpdateDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); @@ -1878,14 +2136,14 @@ query.prepare("UPDATE zd_verification_program_manage SET check_name =:check_name," " create_name = :create_name, remark = :remark, img_path =:img_path, standard_device_id =:standard_device_id," " verification_documents_id=:verification_documents_id, update_time=:update_time WHERE id = :id;"); - QString formattedDateTime = check.update_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":check_name", check.check_name); query.bindValue(":create_name", check.create_name); query.bindValue(":remark", check.remark); query.bindValue(":img_path", check.img_path); query.bindValue(":standard_device_id", check.standard_device_id); query.bindValue(":verification_documents_id", check.verification_documents_id); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":update_time",currentDateTime); query.bindValue(":id", check.id); bool isSuccess = query.exec(); if (!isSuccess) { @@ -1905,6 +2163,33 @@ } return isSuccess; } +// 自动核查-根据 设备id查询核查件设备信息 +CheckAndTestedDevice BaseCommonApi::getCheckAndTestedDeviceById(QString deviceId) +{ + CheckAndTestedDevice result; + QSqlQuery query; + query.prepare("SELECT bei.id , bei.equipment_name , bei.model , bei.manufacture_no ," + " bei.manufacturer FROM biz_equipment_info bei WHERE bei.id = :deviceId " + " UNION ALL " + " SELECT eei.id , eei.equipment_name , eei.model, eei.manufacture_no , eei.manufacturer " + " FROM eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :deviceId"); + query.bindValue(":deviceId", deviceId); + bool isSuccess = query.exec(); + if (isSuccess) { + while (query.next()) { + CheckAndTestedDevice device; + device.id = query.value("id").toString(); + device.equipment_name = query.value("equipment_name").toString(); + device.model = query.value("model").toString(); + device.manufacture_no = query.value("manufacture_no").toString(); + device.manufacturer = query.value("manufacturer").toString(); + result=device; + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 bool BaseCommonApi::InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge) { @@ -1915,7 +2200,7 @@ "test_value_four,measure_value_four,test_value_five,measure_value_five,test_value_six,measure_value_six,maximum_error,create_time,update_time) " " VALUES " " (:id,:data_id,:unit,:check_point,:first_forward_stroke,:first_reverse_stroke,:second_forward_stroke,:second_reverse_stroke,:third_forward_stroke,:third_reverse_stroke,:average_value,:average_average_value,:max_indicating_error,:max_return_error,:params,:test_value_one,:measure_value_one,:test_value_two,:measure_value_two,:test_value_three,:measure_value_three,:test_value_four,:measure_value_four,:test_value_five,:measure_value_five,:test_value_six,:measure_value_six,:maximum_error,:create_time,:update_time) "); - QString formattedDateTime = gauge.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",gauge.id); query.bindValue(":data_id",gauge.data_id); query.bindValue(":unit",gauge.unit); @@ -1944,8 +2229,8 @@ query.bindValue(":test_value_six",gauge.test_value_six); query.bindValue(":measure_value_six",gauge.measure_value_six); query.bindValue(":maximum_error",gauge.maximum_error); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -1965,7 +2250,7 @@ " (:id,:data_no,:check_date,:check_address,:temperature,:humidity,:check_accord,:stability_examine,:standard_equipment_id," ":equipment_id,:item_category_id,:conclusion,:remark,:create_user_id,:create_user_name,:create_time,:update_time) "); QString checkData = baseInfo.check_date.toString("yyyy-MM-dd"); - QString formattedDateTime = baseInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id",baseInfo.id); query.bindValue(":data_no",baseInfo.data_no); query.bindValue(":check_date",checkData); @@ -1981,8 +2266,8 @@ query.bindValue(":remark",baseInfo.remark); query.bindValue(":create_user_id",baseInfo.create_user_id); query.bindValue(":create_user_name",baseInfo.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time",formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2074,8 +2359,8 @@ " VALUES " " (:id,:check_equipment_id,:data_id)"); query.bindValue(":id",equiment.id); - query.bindValue(":data_no",equiment.check_equipment_id); - query.bindValue(":check_date",equiment.data_id); + query.bindValue(":check_equipment_id",equiment.check_equipment_id); + query.bindValue(":data_id",equiment.data_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2102,7 +2387,7 @@ ":test_value_three_date, :test_value_three, :test_value_four_date, :test_value_four, " ":test_value_five_date, :test_value_five, :test_value_six_date, :test_value_six, :average_value, " ":standard_deviation, :relative_repeatability, :urel, :less_than, :qualified, :create_time, :update_time)"); - QString formattedDateTime = calibrator.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", calibrator.id); query.bindValue(":data_id", calibrator.data_id); @@ -2131,8 +2416,8 @@ query.bindValue(":urel", calibrator.urel); query.bindValue(":less_than", calibrator.less_than); query.bindValue(":qualified", calibrator.qualified); - query.bindValue(":create_time", formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time", currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -2185,7 +2470,7 @@ query.prepare("INSERT INTO biz_business_device_measure_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2193,8 +2478,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); @@ -2234,7 +2519,7 @@ query.prepare("INSERT INTO biz_equipment_standard_check_modify_record " " (id, data_id,source_system, modify_content, create_user_id, create_user_name, create_time,update_time ) " " VALUES (:id, :data_id, :source_system, :modify_content, :create_user_id, :create_user_name, :create_time, :update_time )"); - QString formattedDateTime = record.create_time.toString("yyyy-MM-dd HH:mm:ss"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); @@ -2242,8 +2527,8 @@ query.bindValue(":modify_content", record.modify_content); query.bindValue(":create_user_id", record.create_user_id); query.bindValue(":create_user_name", record.create_user_name); - query.bindValue(":create_time",formattedDateTime); - query.bindValue(":update_time", formattedDateTime); + query.bindValue(":create_time",currentDateTime); + query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index a132816..479d8ba 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -828,7 +828,8 @@ QString encrypt(const QString &str, const QString &publicKey); //判断检定装置表并查询 参数设备id - static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); + //static QMap> Search_CalibrationTable(QString DeiverId,QMap *HeadList); //判断核查装置表并查询 参数设备id static QList Search_VerifyTable(QString DeiverId,QStringList *HeadList ); @@ -891,6 +892,10 @@ static JudgeCalibrationTable getJudgeVerifyTable(QString id); //被检设备管理-检定项目及检定点-多功能校准源 static QList getVerMultiCal(QString itemId,QStringList *headList); + //static QMap> getVerMultiCal(QString itemId,QMap *headList); + static QMap> GetDataReturnItemList(QList ResultData, + QMap> DataMapList, + QMap *HeadMapList); // 获取检定数据管理 首页 static QList getVerificationData(); // 检定数据管理-检定基本信息-标准设备 @@ -967,6 +972,8 @@ static bool DeleteCheckProgramManage(QString id); // 设备与装置-标准装置管理-核查数据基本信息关联的核查标准设备,即给设备做核查的设备 static bool InsertStandCheckInfoEquipent(StandCheckInfoEquipent equiment); +// 自动核查-根据 设备id查询核查件设备信息 + static CheckAndTestedDevice getCheckAndTestedDeviceById(QString deviceId); //自动核查--结果保存-设备与装置-标准装置管理-多功能校准源 static bool InsertStandCheckDataCalibrator(StandCheckDataCalibrator calibrator); //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 @@ -991,7 +998,8 @@ static bool InsertCheckModifyRecord(MeasureModifyRecord record); //设备与装置-标准装置管理-核查数据管理核查数据历史修改记录[查询] 参数 检定数据管理基础信息表id static QList getMeasureModifyRecord(QString data_id); - + //查询最新结果保存记录 + static SaveDeviceMeasureInfo getNewResultData(); }; diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index 4cfa1b6..fef3880 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -199,7 +199,7 @@ QStringList headlist; QList Data=dbManager.Search_CalibrationTable(id,&headlist); - + //QList Data; //tableWidgetItem ui->tableWidgetItem->setRowCount(0); ui->tableWidgetItem->setColumnCount(headlist.count()); diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index 77f0a9a..48b7c7c 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -601,6 +601,7 @@ } } item.measure_indication_value = sRet; + ui->tableWidgetCheck->setItem(i,15,new QTableWidgetItem(sRet)); //示值 ui->tableWidgetCheck->setItem(i,19,new QTableWidgetItem(sRet)); } } diff --git a/softwareDirectory/AutoVerScheme/databaseconnection.cpp b/softwareDirectory/AutoVerScheme/databaseconnection.cpp index 2adadd4..1d957d9 100644 --- a/softwareDirectory/AutoVerScheme/databaseconnection.cpp +++ b/softwareDirectory/AutoVerScheme/databaseconnection.cpp @@ -1,6 +1,8 @@ #include "databaseconnection.h" + + DatabaseConnection* DatabaseConnection::Connect = nullptr; QMutex DatabaseConnection::mutex; diff --git a/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp b/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp index a23f7d4..3210be8 100644 --- a/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp +++ b/softwareDirectory/AutoVerScheme/dialogcheckresult.cpp @@ -59,7 +59,7 @@ SaveDeviceMeasureInfo measInfo; BaseCommonApi api; measInfo.id = QString::number(api.generateId()); - measInfo.data_no = "jdsj"+QDateTime::currentDateTime().toString("yyyyMMdd")+"0003"; + //measInfo.data_no; measInfo.order_id = taskList[0].id; measInfo.sample_id=deviceId; measInfo.item_id=measureCalList[0].item_data_id; @@ -86,6 +86,7 @@ item.data_id = measInfo.id; BaseCommonApi::InsertVerMultiCal(item); } + QMessageBox::information(this, "提示", "保存成功!"); } else { diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h index 9bf1935..3d9b474 100644 --- a/softwareDirectory/AutoVerScheme/id/TaskManager.h +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -10,15 +10,19 @@ class TaskManager { private: static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QMap saveResultdatanoList; // 日期 -> 结果保存 static QDate currentDate; static QString KeyDate; - + //ResultKeyDate + static QString ResultKeyDate; public: static int getTaskCountForToday(); static bool AddCurrenTaskCount(); static QString generateTask(QString Number); + static bool AddResultDataNoCount(); + static QString getsaveResultdatano(); }; diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index e798260..bfada13 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -40,7 +40,7 @@ << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); //设置tableWidgetItem - ui->tableWidget->setStyleSheet("QHeaderView::section {" + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" "border: 1px solid rgba(197, 196, 196, 1);" "border-left:none;" "border-top:none;" diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 207da0a..4610d40 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -6,7 +6,57 @@ #include "infomanageview.h" #include "datasyncview.h" #include "QMessageBox" +#include "QDebug" +//#include + +//#include + +//#include + +//#include + +//QString md5HashBySlat(const QString &input) { +// unsigned char result[MD5_DIGEST_LENGTH]; +// MD5((unsigned char*)input.toUtf8().constData(), input.toUtf8().length(), result); + +// // 将结果转换为 32 位小写格式的字符串 +// QString hash; +// for (int i = 0; i < MD5_DIGEST_LENGTH; ++i) { +// // 直接转换为小写十六进制字符串并添加到哈希中 +// hash.append(QString::number(result[i], 16).toLower()); +// } + +// // 确保哈希是 32 位长,如果不是,则前面补 0 +//// while (hash.length() < 32) { +//// hash.prepend("0"); +//// } + +// return hash; +//} +//// 辅助函数:将字节数组转换为十六进制字符串 +//QString byteArrayToHex(const QByteArray &ba) { +// QString hex; +// for (char c : ba) { +// hex += QString::number(static_cast(c), 16).toUpper().rightJustified(2, '0'); +// } +// return hex; +//} + +//// 迭代 MD5 哈希函数 +//QString iterativeMd5Hash(const QString &password, const QString &salt, int iterations) { +// QByteArray passwordBytes = password.toUtf8(); +// QByteArray saltBytes = salt.toUtf8(); +// QByteArray combinedBytes = passwordBytes + saltBytes; + +// for (int i = 0; i < iterations; ++i) { +// unsigned char md5Digest[MD5_DIGEST_LENGTH]; +// MD5((unsigned char*)combinedBytes.data(), combinedBytes.size(), md5Digest); +// combinedBytes = QByteArray((char*)md5Digest, MD5_DIGEST_LENGTH); +// } + +// return byteArrayToHex(combinedBytes); +//} int main(int argc, char *argv[]) @@ -23,6 +73,20 @@ //IndexWindow w; //TestView w; //w.thread->start(); +// QString input = "gph2o"; +// QString md5Hash = md5HashBySlat(input); +// qDebug() << "32-bit lowercase MD5 Hash of" << input << "is" << md5Hash; + +// QString password1 = "1234567"; +// QString md5HashBypassword = md5HashBySlat(password1); +// qDebug() << "md5HashBypassword:" << password1 << "is" << md5HashBypassword; + + +// QString password = "1234567"; +// QString salt = md5Hash; +// int iterations = 1000; +// QString hashedPassword = iterativeMd5Hash(password, salt, iterations); +// qDebug() << "Hashed Password:" << hashedPassword;