#include "basecommonapi.h" #include <QDateTime> #include <QByteArray> #include <QProcess> #include <QString> #include <QDebug> BaseCommonApi::BaseCommonApi() { } const QString BaseCommonApi::temporary_user_id="1634107227953819649"; const QString BaseCommonApi::measure_person_id="1695282436182188034"; static SyncRunStatus syncstate=SyncRunStatus::Stopped; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " " JOIN sys_user ON sys_user.ACCOUNT = brsi.account " " WHERE sys_user.id = :userId "); query.bindValue(":userId", userId); if (query.exec()) { while (query.next()) { StaffInfo info; info.id = query.value("id").toString(); info.account = query.value("account").toString(); info.staff_no = query.value("staff_no").toString(); info.staff_name = query.value("staff_name").toString(); info.picture_file = query.value("picture_file").toString(); info.id_card = query.value("id_card").toString(); info.birthday = query.value("birthday").toString(); info.native_place = query.value("native_place").toString(); info.education = query.value("education").toString(); info.record_date = query.value("record_date").toString(); info.officer_no = query.value("officer_no").toString(); info.gender = query.value("gender").toString(); info.graduation_date = query.value("graduation_date").toString(); info.nation = query.value("nation").toString(); info.degree = query.value("degree").toString(); info.dept_id = query.value("dept_id").toString(); info.dept_name = query.value("dept_name").toString(); info.station = query.value("station").toString(); info.major = query.value("major").toString(); info.certificate_number = query.value("certificate_number").toString(); info.engage_date = query.value("engage_date").toString(); info.working_age = query.value("working_age").toString(); info.title_initial_date = query.value("title_initial_date").toString(); info.remark = query.value("remark").toString(); info.create_time = query.value("create_time").toDateTime(); info.update_time = query.value("update_time").toDateTime(); result=info; } // qDebug() << "sql代码: " << query.lastQuery(); }else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //登录接口 QString privateKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAK7mTyBxMUnLlS0x+a0qJHd/8RxR73eTN+15GPr6wzl8dG86Jvzb66pAyOBpFmIxyvceIcgVjm8Dpz5F9vlHYI6K2g6HHID1TZ4teSfPEtRAgCpcC8pA7wqd6sDVCNx2zvGEkHZc+FYWVjhFW0xPbCvaUx3b1AMTgX+TPIOE0GnHAgMBAAECgYEAhJApfzRsIDu++L99N4POmgiOLmHn+CDMbiCwD2LLX6H1+mwAKv1hVOy/lF/ySEDnToA3KJk2GOyS8X9EH1K7WmxRcJ1am1JLwy+spHkExQzvAO9mrEhtavpwAZLiBoCUB4uQazETHncM0lNXtUYY8Ydd/zKodCMVPN4tql84f0kCQQDrPEgk6vdAc8vW1JL3ldhRkbl7DKuvDhhoixGEbXrsXXiKN6iB0A3lNTptMxcd1TjSJz8CF8piGRpVyLGoZOYLAkEAvlaXoVXndT+hbsStjORp2RGxZWMPyyyJ4Kw2TnMaUuODXA0PtnYcSA5lI6SpVAvTthSX7VDi5C9xLyc+QRvMtQJAVjzhTfd98XkCL536yx16El1UHFJG1oRaWmkxYNUqDWEvAazp770weukKpGHohZ1XmWOd68yA+3msd+p9hviGhQJAUIntgUwLM3aoRWmdkhd4nmw5JxCCt1LySIo2NH3J7rbsd3/jXS6fCvJkY2+iYrjabZpLKxTl3O4iM3SkiAJOXQJBAN++IAMMs7HVTQnsIN+L+tQwcWM5jn0sSRLGFvSkPjlT2W++qJNTW/oswmcQTPFn7Vf3GaE5JF6XAxrZMOZBG00="; QString publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu5k8gcTFJy5UtMfmtKiR3f/EcUe93kzfteRj6+sM5fHRvOib82+uqQMjgaRZiMcr3HiHIFY5vA6c+Rfb5R2COitoOhxyA9U2eLXknzxLUQIAqXAvKQO8KnerA1Qjcds7xhJB2XPhWFlY4RVtMT2wr2lMd29QDE4F/kzyDhNBpxwIDAQAB"; // 加密 QString BaseCommonApi::encrypt(const QString &str, const QString &publicKey) { QByteArray pubKey = QByteArray::fromBase64(publicKey.toUtf8()); QString outStr; QString command = "openssl rsautl -encrypt -pubin -inkey <(echo \"" + pubKey + "\")"; QProcess process; process.setProcessChannelMode(QProcess::MergedChannels); process.start(command); process.write(str.toUtf8()); process.closeWriteChannel(); process.waitForFinished(-1); outStr = QString::fromUtf8(process.readAll()); return outStr.trimmed().toUtf8().toBase64(); } // 解密 QString decrypt(const QString &str, const QString &privateKey) { QByteArray inputByte = QByteArray::fromBase64(str.toUtf8()); QByteArray priKey = QByteArray::fromBase64(privateKey.toUtf8()); QString outStr; QString command = "openssl rsautl -decrypt -inkey <(echo \"" + priKey + "\")"; QProcess process; process.setProcessChannelMode(QProcess::MergedChannels); process.start(command); process.write(inputByte); process.closeWriteChannel(); process.waitForFinished(-1); outStr = QString::fromUtf8(process.readAll()); return outStr.trimmed(); } //获取部门任务数据 QList<Dept> BaseCommonApi::getAllData() { QList<Dept> result; QSqlQuery query; QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, blei.sample_id as equipmentId,eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " // " WHERE blei.measure_dept_id = :deptId " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 // query.bindValue(":deptId", deptId); if (query.exec()) { while (query.next()) { Dept dept; dept.id = query.value("id").toString(); dept.sample_name = query.value("sampleName").toString(); dept.sample_id = query.value("equipmentId").toString(); dept.sample_model = query.value("sampleModel").toString(); dept.help_instruction = query.value("helpInstruction").toString(); dept.manufacture_no = query.value("manufactureNo").toString(); dept.manufacturer = query.value("manufacturer").toString(); dept.customer_name = query.value("customer_name").toString(); dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); dept.require_over_time = query.value("require_over_time").toDateTime(); dept.is_urgent = query.value("is_urgent").toString(); dept.measure_status=query.value("measure_status").toString(); result.append(dept); // qDebug() <<"---+"<<dept.sample_id; } }else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //获取我的任务 参数登录用户的id 和 任务状态 //blei.measure_status 3 为检定中的状态 //blei.measure_status 4 为检定完 //blei.measure_status 10 已退回 QList<MyTask> BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; QString _measure_person_id=measure_person_id; QList<MyTask> result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " WHERE blei.measure_person_id = :person_id " " AND blei.measure_status =3 or blei.measure_status = 4 " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":person_id", _measure_person_id); //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; task.id = query.value("id").toString(); task.sample_name = query.value("sampleName").toString(); task.sample_model = query.value("sampleModel").toString(); task.help_instruction = query.value("helpInstruction").toString(); task.manufacture_no = query.value("manufactureNo").toString(); task.manufacturer = query.value("manufacturer").toString(); task.customer_name = query.value("customer_name").toString(); task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); task.measure_status=query.value("measure_status").toString(); result.append(task); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } 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<CreateTaskList> BaseCommonApi::getCreateTaskListNew() { QList<CreateTaskList> result; QSqlQuery query; query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); if (query.exec()) { while (query.next()) { CreateTaskList task; task.id = query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.deliverer = query.value("deliverer").toString(); task.is_urgent = query.value("is_urgent").toString(); result.append(task); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //获取创建任务首页数据 QList<CreateTaskList> BaseCommonApi::getCreateTaskList(QString userId) { userId=temporary_user_id; QList<CreateTaskList> result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { while (query.next()) { CreateTaskList task; task.id = query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.deliverer = query.value("deliverer").toString(); task.is_urgent = query.value("is_urgent").toString(); result.append(task); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //获取创建任务首页数据 QList<CreateTaskList>getCreateTaskList(QString userId) { QList<CreateTaskList> result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " " WHERE bi.create_user_id = :userId "); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { while (query.next()) { CreateTaskList task; task.id = query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.deliverer = query.value("deliverer").toString(); task.is_urgent = query.value("is_urgent").toString(); result.append(task); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //创建任务单-查看/编辑 顶部数据 传参该条数据的id QList<CatTask>BaseCommonApi::getCatTask(QString id) { QList<CatTask> result; QSqlQuery query; query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.deliverer = query.value("deliverer").toString(); task.deliverer_tel = query.value("deliverer_tel").toString(); task.undertaker_name = query.value("undertaker_name").toString(); task.undertake_time = query.value("undertake_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); task.receive_illustrate = query.value("receive_illustrate").toString(); result.append(task); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //获取创建任务 -任务单列表 QList<CatTaskList>BaseCommonApi::getCatTaskList(QString orderId) { QList<CatTaskList> result; QSqlQuery query; query.prepare("SELECT br.id , br.sample_name ,br.sample_model ,ei.manufacture_no,ei.manufacturer ,br.appendix_descn ," "br.special_require ,br.measure_complete_time ,bbdmi.conclusion ,ei.limit_instruction FROM biz_business_order_sample_relation br" " Left JOIN eqpt_equipment_info ei ON br.sample_no = ei.equipment_no " "Left JOIN biz_business_device_measure_info bbdmi ON br.order_id = bbdmi.order_id " "WHERE br.order_id = :order_id"); // 将参数绑定到占位符 query.bindValue(":order_id", orderId); if (query.exec()) { while (query.next()) { CatTaskList task; task.id = query.value("id").toString(); task.sample_name = query.value("sample_name").toString(); task.sample_model = query.value("sample_model").toString(); task.manufacture_no = query.value("manufacture_no").toString(); task.manufacturer = query.value("manufacturer").toString(); task.appendix_descn = query.value("appendix_descn").toString(); task.special_require = query.value("special_require").toString(); task.measure_complete_time = query.value("measure_complete_time").toDateTime(); task.conclusion = query.value("conclusion").toString(); task.limit_instruction = query.value("limit_instruction").toString(); result.append(task); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //先查询指定下拉框的字段 QList<SelectSpecifyFields> BaseCommonApi::getSelectSpecifyFields() { QList<SelectSpecifyFields> result; QSqlQuery query; bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," "bi.require_over_time , bi.deliverer ,bi.is_urgent " "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); customerInfo.customer_no = query.value("customer_no").toString(); customerInfo.customer_name = query.value("customer_name").toString(); customerInfo.FULL_NAME = query.value("FULL_NAME").toString(); result.append(customerInfo); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { //1640229293790650370 insertTask.Create_user_id=temporary_user_id; QSqlQuery query; query.prepare("INSERT INTO biz_business_order_info (id," "order_no, customer_name, require_over_time, deliverer, deliverer_tel," "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" " ) VALUES (:id, " " :order_no, :customer_name, :require_over_time, " " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " " :is_urgent, " " :receive_illustrate," " :customer_id," " :Create_user_id" " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); query.bindValue(":customer_name", insertTask.customer_name); query.bindValue(":require_over_time", insertTask.require_over_time); query.bindValue(":deliverer", insertTask.deliverer); query.bindValue(":deliverer_tel", insertTask.deliverer_tel); query.bindValue(":undertaker_name", insertTask.undertaker_name); query.bindValue(":undertake_time", insertTask.undertake_time); query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); } return isSuccess; } //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { orderSample.create_user_id=temporary_user_id; QSqlQuery query; query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," "sample_name, sample_model,measure_complete_time)" "VALUES (:id,:order_id,:sample_id," ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); query.bindValue(":order_id", orderSample.order_id); query.bindValue(":sample_id", orderSample.sample_id); query.bindValue(":sample_name", orderSample.sample_name); query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << " query failed: " << query.lastError().text(); } return isSuccess; } //新增任务单 信息记录表 bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" ")VALUES" "(:id,:order_id,:sample_id,:measure_dept_id,:measure_person_id," ":create_user_id,:measure_status,:is_auto)"); // Bind values to the parameters query.bindValue(":id", eneity.id); query.bindValue(":order_id", eneity.order_id); query.bindValue(":sample_id", eneity.sample_id); query.bindValue(":measure_dept_id", eneity.measure_dept_id); query.bindValue(":measure_person_id", eneity.measure_person_id); query.bindValue(":create_user_id", eneity.create_user_id); query.bindValue(":measure_status","3"); query.bindValue(":is_auto","0"); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << " query failed: " << query.lastError().text(); } return isSuccess; } //更新 任务单 bool BaseCommonApi::UpdateTask(InsertTask updateTask) { QSqlQuery query; query.prepare("UPDATE biz_business_order_info" " SET order_no = :order_no,customer_name = :customer_name," " require_over_time = :require_over_time,deliverer = :deliverer," " deliverer_tel = :deliverer_tel,undertaker_name = :undertaker_name," " undertake_time = :undertake_time, is_urgent = :is_urgent," " receive_illustrate = :receive_illustrate, customer_id = :customer_id " " WHERE id = :id;"); query.bindValue(":order_no", updateTask.order_no); query.bindValue(":customer_name", updateTask.customer_name); query.bindValue(":require_over_time", updateTask.require_over_time); query.bindValue(":deliverer", updateTask.deliverer); query.bindValue(":deliverer_tel", updateTask.deliverer_tel); query.bindValue(":undertaker_name", updateTask.undertaker_name); query.bindValue(":undertake_time", updateTask.undertake_time); query.bindValue(":is_urgent", updateTask.is_urgent); query.bindValue(":receive_illustrate", updateTask.receive_illustrate); query.bindValue(":customer_id", updateTask.customer_id); query.bindValue(":id", updateTask.id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "query failed: " << query.lastError().text(); } return isSuccess; } //单独查询任务单表 //更新 任务单 InsertTask BaseCommonApi::SelectTaskSingle(QString order_id) { InsertTask result; QSqlQuery query; query.prepare("SELECT * From biz_business_order_info WHERE id=:order_id"); // 将参数绑定到占位符 query.bindValue(":order_id", order_id); if (query.exec()) { while (query.next()) { result.id = query.value("id").toString(); result.customer_name = query.value("customer_name").toString(); result.require_over_time = query.value("require_over_time").toString(); result.deliverer = query.value("deliverer").toString(); result.deliverer_tel = query.value("deliverer_tel").toString(); result.undertaker_name = query.value("undertaker_name").toString(); result.undertake_time = query.value("undertake_time").toString(); bool is_urgent=false; if(query.value("is_urgent").toString()=="是"){is_urgent=true;}else{is_urgent=false;}; result.is_urgent = is_urgent; result.receive_illustrate = query.value("receive_illustrate").toString(); result.customer_id = query.value("customer_id").toString(); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //删除任务单 bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { query.prepare("DELETE FROM " + tableName + " WHERE order_id = :id"); query.bindValue(":id", id); if (!query.exec()) { qDebug() << "删除" << tableName << "表中的记录失败: " << query.lastError().text(); allSuccessful = false; } }; deleteRecord("biz_business_order_info"); deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; } //删除任务单信息记录表同一任务ID的设备 bool BaseCommonApi::DeleteTaskInfoRecordDevice(QString order_id) { QSqlQuery query; //删除任务单样品表数据 query.prepare("DELETE FROM biz_business_lab_executive_info WHERE order_id = :id"); query.bindValue(":id", order_id); if (!query.exec()) { qDebug() << "删除失败 " << query.lastError().text(); return false; } return true; } //删除任务详情表同一任务ID的设备 bool BaseCommonApi::DeleteTaskSameDevice(QString order_id) { QSqlQuery query; //删除任务单样品表数据 query.prepare("DELETE FROM biz_business_order_sample_relation WHERE order_id = :id"); query.bindValue(":id", order_id); if (!query.exec()) { qDebug() << "删除失败 " << query.lastError().text(); return false; } return true; } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) { QSqlQuery query; //删除任务单样品表数据 query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); query.bindValue(":id", id); if (!query.exec()) { qDebug() << "删除失败 " << query.lastError().text(); return false; } return true; } //获取标准设备管理 首页 QList<BizDevice>BaseCommonApi::getBizDeviceManage() { QList<BizDevice> result; QSqlQuery query; bool isSuccess = query.exec("SELECT bei.id ,bei.equipment_name ,bei.model ,bei.manufacture_no ,bei.manufacturer FROM biz_equipment_info bei"); if (isSuccess) { while (query.next()) { BizDevice 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.append(device); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //获取标准设备管理-基本信息 QList<CatDeviceInfor>BaseCommonApi::getCatDeviceInfor(QString id) { QList<CatDeviceInfor> result; QSqlQuery query; query.prepare("SELECT bei.equipment_name ,bei.model ,bei.manufacture_no ,bei.measure_valid_date ," "bei.product_country , bei.manufacturer , bei.produce_date, bei.purchase_date ,bei.unit_price , bei.usage_status , bei.quality_status , " "bei.dept_name , bei.director_name , bei.supplier_name , bei.location , bei.type , bei.standard_type , bei.category , bei.level , " "bei.measure_cycle , bei.unpack_record_name , bei.remark FROM biz_equipment_info bei WHERE bei.id = :id"); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatDeviceInfor device; device.equipment_name = query.value("equipment_name").toString(); device.model = query.value("model").toString(); device.manufacture_no = query.value("manufacture_no").toString(); device.measure_valid_date = query.value("measure_valid_date").toString(); device.product_country = query.value("product_country").toString(); device.manufacturer = query.value("manufacturer").toString(); device.produce_date = query.value("produce_date").toString(); device.purchase_date = query.value("purchase_date").toString(); device.unit_price = query.value("unit_price").toString(); device.usage_status = query.value("usage_status").toString(); device.quality_status = query.value("quality_status").toString(); device.dept_name = query.value("dept_name").toString(); device.director_name = query.value("director_name").toString(); device.supplier_name = query.value("supplier_name").toString(); device.location = query.value("location").toString(); device.type = query.value("type").toString(); device.standard_type = query.value("standard_type").toString(); device.category = query.value("category").toString(); device.level = query.value("level").toString(); device.measure_cycle = query.value("measure_cycle").toString(); device.unpack_record_name = query.value("unpack_record_name").toString(); device.remark = query.value("remark").toString(); result.append(device); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //核查直流稳压电源检定装置 待修改 禁用 2024年3月20日13:55:12 查询的不对 QList<CheckDCPower>BaseCommonApi::getCheckDCPower(QString equipment_id,QStringList *headList) { // equipment_id="1693435753272557570"; QList<CheckDCPower> result; QSqlQuery query; query.prepare("SELECT besciddp.id ,besciddp.params,besciddp.unit,resolution,besciddp.urel,besciddp.check_type,datum_point,cycle_number " " ,datum_point,resistance_value,resistance_value_unit,remark FROM biz_equipment_standard_check_item_data_dc_power besciddp WHERE equipment_id = :equipment_id "); // 将参数绑定到占位符 1693435753272557570 query.bindValue(":equipment_id", equipment_id); if (query.exec()) { while (query.next()) { CheckDCPower checkDCPower; checkDCPower.id = query.value("id").toString(); checkDCPower.params = query.value("params").toString(); checkDCPower.check_point = query.value("check_point").toString(); checkDCPower.unit = query.value("unit").toString(); checkDCPower.resolution = query.value("resolution").toString(); checkDCPower.urel = query.value("urel").toString(); checkDCPower.check_type = query.value("check_type").toString(); checkDCPower.datum_point = query.value("datum_point").toString(); checkDCPower.cycle_number = query.value("cycle_number").toString(); checkDCPower.resistance_value = query.value("resistance_value").toString(); checkDCPower.resistance_value_unit = query.value("resistance_value_unit").toString(); checkDCPower.remark = query.value("remark").toString(); result.append(checkDCPower); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *headList <<"序号"<<"核查项目"<<"核查点"<<"单位"<<"分辨力"<<"Urel"<<"核查类型"<<"是否为基准点(1/0)"<<"循环次数" <<"电阻值/频率"<<"电阻值单位/频率单位"<<"核查项备注"; return result; } //根据id获取装置名称 QString BaseCommonApi::getApparatus(QString id) { QString result; QSqlQuery query; query.prepare("SELECT besi.standard_name FROM biz_equipment_standard_info besi WHERE besi.id = ( " "SELECT bei.meter_standard_id FROM biz_equipment_info bei WHERE bei.id = :id )"); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { result = query.value("standard_name").toString(); } } else { result = "Not Found"; } return result; } // 被检设备管理 首页 QList<TestedDevice> BaseCommonApi::getTestedDevice() { QList<TestedDevice> result; QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; testedDevice.id = query.value("id").toString(); testedDevice.equipment_name = query.value("equipment_name").toString(); testedDevice.model = query.value("model").toString(); testedDevice.help_instruction = query.value("help_instruction").toString(); testedDevice.manufacture_no = query.value("manufacture_no").toString(); testedDevice.manufacturer = query.value("manufacturer").toString(); testedDevice.FULL_NAME = query.value("FULL_NAME").toString(); testedDevice.customer_name = query.value("customer_name").toString(); testedDevice.meter_identify = query.value("meter_identify").toString(); testedDevice.check_cycle = query.value("check_cycle").toString(); testedDevice.certificate_valid = query.value("certificate_valid").toString(); result.append(testedDevice); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } // 被检设备管理查看设备信息 QList<TestedCatDevice> BaseCommonApi::getTestedCatDevice(QString id) { QList<TestedCatDevice> result; QSqlQuery query; query.prepare("SELECT eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.product_country ,eei.manufacturer ,eei.product_date ,eei.purchase_date ,eei.unit_price ,eei.usage_status ,eei.quality_condition ,sys_dept.FULL_NAME ," "eei.category , eei.check_cycle ,eei.level , eei.remark from eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { TestedCatDevice testedCatDevice; testedCatDevice.equipment_name = query.value("equipment_name").toString(); testedCatDevice.model = query.value("model").toString(); testedCatDevice.help_instruction = query.value("help_instruction").toString(); testedCatDevice.manufacture_no = query.value("manufacture_no").toString(); testedCatDevice.product_country = query.value("product_country").toString(); testedCatDevice.manufacturer = query.value("manufacturer").toString(); testedCatDevice.product_date = query.value("product_date").toString(); testedCatDevice.purchase_date = query.value("purchase_date").toString(); testedCatDevice.unit_price = query.value("unit_price").toString(); testedCatDevice.usage_status = query.value("usage_status").toString(); testedCatDevice.quality_condition = query.value("quality_condition").toString(); testedCatDevice.FULL_NAME = query.value("FULL_NAME").toString(); testedCatDevice.category = query.value("category").toString(); testedCatDevice.check_cycle = query.value("check_cycle").toString(); testedCatDevice.level = query.value("level").toString(); testedCatDevice.remark = query.value("remark").toString(); result.append(testedCatDevice); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //核查 判断哪个装置表 JudgeCalibrationTable BaseCommonApi::getJudgeVerifyTable(QString deviceId) { JudgeCalibrationTable result; QSqlQuery query; query.prepare("SELECT besi.standard_name,bescic.belong_standard_equipment FROM biz_equipment_standard_info besi " " JOIN biz_equipment_standard_check_item_category bescic ON bescic.belong_standard_equipment_name = besi.standard_name " " WHERE besi.id = ( SELECT bei.meter_standard_id FROM biz_equipment_info bei WHERE bei.id = :deviceId )"); // 将参数绑定到占位符 '1692796512381222914' query.bindValue(":deviceId", deviceId); if (query.exec()) { while (query.next()) { JudgeCalibrationTable calibration; calibration.belong_standard_equipment = query.value("belong_standard_equipment").toString(); // QString equipmentValue = query.value("belong_standard_equipment").toString(); result = calibration; } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //判断 检定 哪个装置表 传参 设备id QList<JudgeCalibrationTable> BaseCommonApi::getJudgeCalibrationTable(QString id) { // id="1720260188257480706"; QList<JudgeCalibrationTable> result; QSqlQuery query; query.prepare("SELECT id,belong_standard_equipment FROM biz_business_device_measure_item_info bbdmii WHERE bbdmii.device_model_id =(SELECT eei.model_id from eqpt_equipment_info eei WHERE eei.id = :id )"); // query.prepare("SELECT id,belong_standard_equipment FROM biz_business_device_measure_item_info bbdmii " // "WHERE bbdmii.device_model_id = 1714161758107967489"); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { JudgeCalibrationTable calibration; calibration.id = query.value("id").toString(); calibration.belong_standard_equipment = query.value("belong_standard_equipment").toString(); // QString equipmentValue = query.value("belong_standard_equipment").toString(); result.append(calibration); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //标准装置字典类型 /** * 多功能校准源标准装置 = 1 * 直流稳压电源检定装置 = 2 * 多功能电气安全校准器标准装置 = 3 * 0.02级活塞式压力计标准装置 = 4 * 二等铂电阻温度计标准装置 = 5 * 安全阀校验装置 = 6 * 精密露点仪标准装置 = 7 * E2等级砝码标准装置 = 8 * 频谱分析仪标准装置 = 9 * 信号发生器标准装置 = 10 * 微波衰减标准装置 = 11 * 频率短期稳定度标准装置 =12 * 示波器标准装置 = 13 * 铯原子频率标准装置 =14 * 小功率标准装置 = 15 * 低频信号发生器标准装置 = 16 * S参数标准装置 = 17 * 失真度标准装置 = 18 */ //根据被检设备ID获取当前设备的 检定项目及检定点 QMap<QString, QList<QStringList>> BaseCommonApi::Search_CalibrationTableClass(QString DeiverId,QMap<QString, QStringList> *HeadList) { QMap<QString, QList<QStringList>> DataList; DataList.clear(); QList<JudgeCalibrationTable> CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); if(CliTable.count()==0)return DataList; QList<DeviceMeasureEquipmentCatory> deviceCatory = BaseCommonApi::getDeviceMeasureEquipmentCatory(DeiverId); QString deviceCatoryName = deviceCatory[0].item_category_name; switch (CliTable[0].belong_standard_equipment.toInt()) { case 1: DataList=BaseCommonApi::getVerMultiCalClass(deviceCatoryName,CliTable[0].id,HeadList); break; case 2: DataList=BaseCommonApi::getDeviceMeasureItemDataDcPower(deviceCatoryName,CliTable[0].id,HeadList); break; case 4: DataList=BaseCommonApi::getDeviceMeasureCalibratorPistonGauge(deviceCatoryName,CliTable[0].id,HeadList); break; case 13: //示波器标准装置 = 13 DataList=BaseCommonApi::getDeviceOscilloscopeCalibration(deviceCatoryName,CliTable[0].id,HeadList); break; } return DataList; }; //查询测试页面中 生成结果处理的表头及数据 QMap<QString, QList<QStringList>> BaseCommonApi::Search_GenerateTableClass(QString DeiverId,QMap<QString, QStringList> *HeadList) { QMap<QString, QList<QStringList>> DataList; DataList.clear(); QList<JudgeCalibrationTable> CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); if(CliTable.count()==0)return DataList; QList<DeviceMeasureEquipmentCatory> deviceCatory = BaseCommonApi::getDeviceMeasureEquipmentCatory(DeiverId); QString deviceCatoryName = deviceCatory[0].item_category_name; switch (CliTable[0].belong_standard_equipment.toInt()) { case 4: DataList=BaseCommonApi::getDeviceMeasureCalibratorPistonGaugeGenerate(deviceCatoryName,CliTable[0].id,HeadList); break; case 13: //示波器标准装置 = 13 //DataList=BaseCommonApi::getDeviceOscilloscopeCalibration(deviceCatoryName,CliTable[0].id,HeadList); break; } return DataList; } //根据被检设备ID获取当前设备的 检定项目及检定点 测试函数 //QList<QStringList> BaseCommonApi::Search_CalibrationTable(QString DeiverId,QStringList *HeadList) //{ // QList<QStringList> DataList; // DataList.clear(); // QList<JudgeCalibrationTable> 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); //// case 4: //// DataList=BaseCommonApi::getDeviceMeasureCalibratorPistonGauge(CliTable[0].id,HeadList); // } // return DataList; //}; //核查设备对应的装置表 核查项及核查点 传参设备id QList<QStringList> BaseCommonApi::Search_VerifyTable(QString DeiverId,QStringList *HeadList ) { QList<QStringList> DataList; JudgeCalibrationTable CliTable=BaseCommonApi::getJudgeVerifyTable(DeiverId); if(CliTable.belong_standard_equipment.isEmpty() || CliTable.belong_standard_equipment.isNull()) return DataList; switch(CliTable.belong_standard_equipment.toInt()) { case 1: //多功能校准源 DataList = BaseCommonApi::getVerificationItemsMultiList(DeiverId,HeadList); break; } return DataList; }; //判断检定数据管理 结果信息表 QList<QStringList> BaseCommonApi::Search_CalibrationDataTable(QString DeiverId,QString dataId,QStringList *HeadList) { QList<QStringList> DataList; QList<JudgeCalibrationTable> CliTable=BaseCommonApi::getJudgeCalibrationTable(DeiverId); if(CliTable.count()==0)return DataList; switch (CliTable[0].belong_standard_equipment.toInt()) { case 1: //多功能校准源 DataList = BaseCommonApi::getVerificationMultiCalResultData(dataId,HeadList); break; } return DataList; }; //判断核查数据管理 结果信息表 QList<QStringList> BaseCommonApi::Search_VerifyDataTable(QString DeiverId,QString dataId,QStringList *HeadList) { QList<QStringList> DataList; JudgeCalibrationTable CliTable=BaseCommonApi::getJudgeVerifyTable(DeiverId); if(CliTable.belong_standard_equipment.isEmpty() || CliTable.belong_standard_equipment.isNull()) return DataList; switch(CliTable.belong_standard_equipment.toInt()) { case 1: //多功能校准源 DataList = BaseCommonApi::getCheckDataManageResultManageMult(dataId,HeadList); break; } return DataList; }; //被检设备管理-检定项目及检定点-多功能校准源 QList<QStringList> BaseCommonApi::getVerMultiCal(QString itemId,QStringList *headList) { QMap<QString, QStringList> dailyTaskCounts; QMap<QString, QList<QStringList>> dailyTaskCounts1; QList<QStringList> resultData; QStringList result; resultData.clear(); QSqlQuery query; query.prepare("SELECT bbdmidc.*,bbdmic.category_name FROM biz_business_device_measure_item_data_calibrator bbdmidc " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmidc.item_id " " JOIN biz_business_device_measure_item_category bbdmic ON bbdmic.id = bbdmii.item_category_id " " 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()); result.append(query.value("category_name").toString()); resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *headList <<"序号"<<"检定项id"<<"参数"<<"量"<<"单位"<<"频率"<<"频率单位"<<"量程"<<"标准值"<<"分辨力"<<"最大允许误差(公式)"<<"误差参数a"<<"误差参数b" <<"两线/四线模式"<<"线圈放大"<<"示值"<<"准确度a"<<"指针式仪表满量程值"<<"指针式仪表满量程值单位"<<"被检表示值"<<"准确度等级"<<"创建时间"<<"更新时间"<<"检定项分类"; return resultData; } //被检设备管理-检定项目及检定点-多功能校准源 QMap<QString, QList<QStringList>> BaseCommonApi::getVerMultiCalClass(QString itemCatoryName,QString itemId,QMap<QString, QStringList> *headList) { QMap<QString, QList<QStringList>> DataMapList; QList<QStringList> 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());//误差参数a result.append(query.value("error_param_b").toString());//误差参数b result.append(query.value("line_mode").toString());//两线/四线模式 result.append(query.value("coil_enlarge").toString());//线圈放大 result.append(query.value("indicating_value").toString());//示值 result.append(query.value("accuracy_a").toString());//准确度a result.append(query.value("full_scale_value").toString());//指针式仪表满量程值 result.append(query.value("full_scale_value_unit").toString());//指针式仪表满量程值单位 result.append(query.value("measure_indication_value").toString());//被检表示值 result.append(query.value("accuracy_level").toString());//准确度等级 result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } //进行检定项目列头转换 DataMapList= GetDataReturnItemList( itemCatoryName,resultData,DataMapList,headList); return DataMapList; } QMap<QString, QList<QStringList>> BaseCommonApi::GetDataReturnItemList(QString itemCatoryName,QList<QStringList> ResultData,QMap<QString, QList<QStringList>> DataMapList,QMap<QString, QStringList> *HeadMapList) { QList<QStringList> DCVList; QList<QStringList> ACVList; QList<QStringList> DCIList; QList<QStringList> ACIList; QList<QStringList> RList; if(itemCatoryName.contains("数字多用表")){ for(const QStringList &row : ResultData) { QStringList head; QStringList Data; QString VerificationItem=NULL; if (!row.isEmpty()) { // 确保行不为空 if(row[2]=="DCV") { VerificationItem = "DCV"; //添加列头 head << "序号" << "检定项目" << "量" << "单位" << "量程"<< "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); //添加数据 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]); //分辨力 DCVList.append(Data); } else if(row[2]=="ACV" ) { VerificationItem = "ACV"; //添加列头 head << "序号" << "检定项目" << "量" << "单位" <<"频率" <<"频率单位"<< "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); //添加数据 Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]); //量 Data.append(row[4]); //单位 Data.append(row[5]); //频率 Data.append(row[6]); //频率单位 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(row[2]=="DCI" ) { VerificationItem = "DCI"; //添加列头 head << "序号" << "检定项目" << "量" << "单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); //添加数据 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(row[2]=="ACI" ) { VerificationItem = "ACI"; //添加列头 head << "序号" << "检定项目" << "量" << "单位" <<"频率" <<"频率单位" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); //添加数据 Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]); //量 Data.append(row[4]); //单位 Data.append(row[5]); //频率 Data.append(row[6]); //频率单位 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(row[2]=="R") { VerificationItem = "R"; //添加列头 head << "序号" << "检定项目" << "量" << "单位" <<"两线/四线" << "量程" << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力"; HeadMapList->insert(VerificationItem,head); //添加数据 Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]); //量 Data.append(row[4]); //单位 Data.append(row[13]); //两线/四线 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(ACVList.count()!=0){ DataMapList.insert("ACV",ACVList); }; if(DCIList.count()!=0){ DataMapList.insert("DCI",DCIList); }; if(ACIList.count()!=0){ DataMapList.insert("ACI",ACIList); }; if(RList.count()!=0){ DataMapList.insert("R",RList); }; } return DataMapList; } //检定数据管理 首页 QList<VerificationData> BaseCommonApi::getVerificationData() { QList<VerificationData> result; QSqlQuery query; /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " " ORDER BY bbdmi.create_time DESC");*/ bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " " FROM biz_business_device_measure_info bbdmi " " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) " " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; verificationData.id = query.value("id").toString(); verificationData.sample_id = query.value("sample_id").toString(); verificationData.item_id = query.value("item_id").toString(); verificationData.sample_name = query.value("sample_name").toString(); verificationData.model = query.value("model").toString(); verificationData.help_instruction = query.value("help_instruction").toString(); verificationData.manufacture_no = query.value("manufacture_no").toString(); verificationData.manufacturer = query.value("manufacturer").toString(); verificationData.customer_name = query.value("customer_name").toString(); verificationData.FULL_NAME = query.value("FULL_NAME").toString(); verificationData.NAME = query.value("NAME").toString(); verificationData.trace_date = query.value("trace_date").toDate(); verificationData.measure_valid_date = query.value("measure_valid_date").toDateTime(); verificationData.meter_identify = query.value("meter_identify").toString(); verificationData.restriction_instruction = query.value("restriction_instruction").toString(); result.append(verificationData); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //检定数据管理-检定基本信息-标准设备 参数:首页数据的id QList<VerificationBasicDataDevice> BaseCommonApi::getVerificationBasicDataDevice(QString data_id) { QList<VerificationBasicDataDevice> result; QSqlQuery query; query.prepare("SELECT bei.id AS equipmentId, bei.equipment_no, bei.equipment_name, bei.manufacture_no, bei.model, bei.measure_valid_date, " "bett.uncertainty " " FROM biz_business_device_measure_equipment bbdme " " JOIN biz_equipment_info bei ON bei.id = bbdme.equipment_id " " Left JOIN biz_equipment_technical_target bett ON bei.equipment_no = bett.equipment_no " " WHERE bbdme.data_id = :data_id"); // 将参数绑定到占位符 query.bindValue(":data_id", data_id); if (query.exec()) { while (query.next()) { VerificationBasicDataDevice dataDetails; dataDetails.equipmentId = query.value("equipmentId").toString(); dataDetails.equipment_no = query.value("equipment_no").toString(); dataDetails.equipment_name = query.value("equipment_name").toString(); dataDetails.model = query.value("model").toString(); dataDetails.measure_valid_date = query.value("measure_valid_date").toDateTime(); dataDetails.uncertainty = query.value("uncertainty").toString(); result.append(dataDetails); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //检定数据管理-检定基本信息 参数item_id 首页单条数据中包含 VerificationBasicDataDetails BaseCommonApi::getVerificationBasicDataDetails(QString item_id) { VerificationBasicDataDetails result; QSqlQuery query; query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = bbdmi.sample_id) " " JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " " LEFT JOIN eqpt_equipment_model_technical_target eemtte ON bbdmii.device_model_id = eemtte.model_id " " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " " WHERE bbdmi.item_id = :item_id " " ORDER BY bbdmi.update_time DESC" " LIMIT 1"); // 将参数绑定到占位符 query.bindValue(":item_id", item_id); if (query.exec()) { while (query.next()) { VerificationBasicDataDetails dataDetails; dataDetails.customer_name = query.value("customer_name").toString(); dataDetails.humidity = query.value("humidity").toString(); dataDetails.temperature = query.value("temperature").toString(); // dataDetails.model = query.value("model").toString(); dataDetails.measure_address = query.value("measure_address").toString(); dataDetails.measure_valid_date = query.value("measure_valid_date").toDateTime(); dataDetails.conclusion = query.value("conclusion").toString(); dataDetails.restriction_instruction = query.value("restriction_instruction").toString(); dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //检定数据管理-检定结果信息 SaveDeviceMeasureCalibrator 多功能校准源结果数据表 QList<QStringList> BaseCommonApi::getVerificationMultiCalResultData(QString dataId,QStringList *HeadList) { QList<QStringList> resultData; QStringList result; QSqlQuery query; query.prepare("SELECT * FROM biz_business_device_measure_data_calibrator WHERE data_id = :dataId "); // 将参数绑定到占位符 query.bindValue(":dataId", dataId); if (query.exec()) { while (query.next()) { result.clear(); result.append(query.value("id").toString()); 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("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); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *HeadList<<"id"<<"参数"<<"量"<<"单位"<<"频率" <<"量程"<<"标准值" <<"示值" <<"分辨力"<<"最大允许误差"<<"误差参数a" <<"误差参数b"<<"合格率"; return resultData; } //核查数据管理 首页 QList<CheckData> BaseCommonApi::getCheckData() { QList<CheckData> result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " " LEFT JOIN biz_equipment_standard_check_item_category bescic ON bescic.id = besci.item_category_id ORDER BY besci.create_time DESC "); if (isSuccess) { while (query.next()) { CheckData dataManage; dataManage.id = query.value("id").toString(); dataManage.equipmentName = query.value("equipmentName").toString(); dataManage.equipmentModel = query.value("equipmentModel").toString(); dataManage.manufacture_no = query.value("manufacture_no").toString(); // dataManage.meter_standard_name = query.value("meter_standard_name").toString(); dataManage.equipment_id = query.value("equipment_id").toString(); dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //核查数据管理-核查基本信息-核查件 参数为 首页id QList<CheckDataManageBasicInfo> BaseCommonApi::getCheckDataManageBasicInfoDevice(QString data_id) { QList<CheckDataManageBasicInfo> result; QSqlQuery query; query.prepare("SELECT bei.* FROM biz_equipment_standard_check_info_equipment bescie " " JOIN biz_equipment_info bei ON bei.id = bescie.check_equipment_id " " WHERE bescie.data_id = :data_id "); // 将参数绑定到占位符 query.bindValue(":data_id", data_id); if (query.exec()) { while (query.next()) { CheckDataManageBasicInfo basicInfo; basicInfo.equipment_name = query.value("equipment_name").toString(); basicInfo.model = query.value("model").toString(); basicInfo.manufacture_no = query.value("manufacture_no").toString(); basicInfo.manufacturer = query.value("manufacturer").toString(); result.append(basicInfo); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //核查数据管理-核查基本信息-基本信息 CheckDataManageBasicInfo BaseCommonApi::getCheckDataManageBasicInfo(QString equipment_id) { CheckDataManageBasicInfo result; QSqlQuery query; query.prepare("SELECT * FROM biz_equipment_standard_check_info WHERE equipment_id = :equipment_id"); // 将参数绑定到占位符 query.bindValue(":equipment_id", equipment_id); if (query.exec()) { while (query.next()) { CheckDataManageBasicInfo basicInfo; basicInfo.temperature = query.value("temperature").toString(); basicInfo.humidity = query.value("humidity").toString(); basicInfo.check_date = query.value("check_date").toDate(); basicInfo.check_address = query.value("check_address").toString(); basicInfo.create_user_name = query.value("create_user_name").toString(); basicInfo.conclusion = query.value("conclusion").toString(); result=basicInfo; } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //核查数据管理-核查结果信息-核查项多功能校准源数据 参数首页数据的id QList<QStringList> BaseCommonApi::getCheckDataManageResultManageMult(QString data_id,QStringList *HeadList) { QList<QStringList> resultDate; QStringList result; QSqlQuery query; query.prepare("SELECT * FROM biz_equipment_standard_check_data_calibrator WHERE data_id = :data_id "); query.bindValue(":data_id", data_id); if (query.exec()) { while (query.next()) { result.clear(); result.append(query.value("id").toString()); result.append(query.value("data_id").toString()); result.append(query.value("check_type").toString()); result.append(query.value("test_type").toString()); result.append(query.value("params").toString()); result.append(query.value("unit").toString()); result.append(query.value("frequency").toString()); result.append(query.value("frequency_unit").toString()); result.append(query.value("check_point").toString()); result.append(query.value("test_value_one_date").toString()); result.append(query.value("test_value_one").toString()); result.append(query.value("test_value_two_date").toString()); result.append(query.value("test_value_two").toString()); result.append( query.value("test_value_three_date").toString()); result.append(query.value("test_value_three").toString()); result.append(query.value("test_value_four_date").toString()); result.append(query.value("test_value_four").toString()); result.append(query.value("test_value_five_date").toString()); result.append(query.value("test_value_five").toString()); result.append( query.value("test_value_six_date").toString()); result.append( query.value("test_value_six").toString()); result.append(query.value("average_value").toString()); result.append( query.value("standard_deviation").toString()); result.append( query.value("relative_repeatability").toString()); result.append( query.value("urel").toString()); result.append(query.value("less_than").toString()); result.append( query.value("qualified").toString()); result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); resultDate.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } *HeadList<<"id"<<"核查数据管理基础信息表id"<<"核查类型"<<"核查点类型"<<"核查项目"<<"单位"<<"频率"<<"频率单位"<<"核查点" <<"核查读数1日期"<<"核查读数1(示值)"<<"核查读数2日期(稳定性)"<<"核查读数2(示值)" <<"核查读数3日期(稳定性) "<<"核查读数3(示值)"<<"核查读数4日期(稳定性)"<<"核查读数4(示值)"<<"核查读数5日期(稳定性)" <<"核查读数5(示值)"<<"核查读数6日期(稳定性)"<<"核查读数6(本次示值)"<<"核查读数平均值(算数平均值)"<<"Sn(x)(标准偏差)" <<"Sn(x)/核查读数平均值(相对重复性)"<<"UREL"<<"是否小于相对扩展不确定度Urel(0/1)"<<"稳定性考核是否合格"<<"创建时间"<<"更新时间"; return resultDate; } //技术文件管理 QList<Technique_File> BaseCommonApi::getTechnique_File() { QList<Technique_File> result; QSqlQuery query; bool isSuccess = query.exec("SELECT brtf.id,brtf.file_distribute_no ,brtf.file_name ,brtf.version_no ,brtf.active_date ,brtf.remark " " FROM biz_resource_technique_file brtf"); if (isSuccess) { while (query.next()) { Technique_File file; file.id=query.value("id").toString(); file.file_distribute_no = query.value("file_distribute_no").toString(); file.file_name = query.value("file_name").toString(); file.version_no = query.value("version_no").toString(); file.active_date = query.value("active_date").toDateTime(); file.remark = query.value("remark").toString(); result.append(file); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //检定程序管理首页查询 QList<VerificationProgramInfo> BaseCommonApi::getVerificationProgramInfoMain() { QList<VerificationProgramInfo> result; QSqlQuery query; bool isSuccess = query.exec("SELECT * FROM zd_verification_program_info"); if (isSuccess) { while (query.next()) { VerificationProgramInfo programInfo; programInfo.id = query.value("id").toString(); programInfo.program_name = query.value("program_name").toString(); programInfo.create_name = query.value("create_name").toString(); programInfo.create_time = query.value("create_time").toDateTime(); programInfo.remark = query.value("remark").toString(); programInfo.belong_standard_equipment = query.value("belong_standard_equipment").toString(); programInfo.equipment_item_category = query.value("equipment_item_category").toString(); programInfo.equipment_name = query.value("equipment_name").toString(); programInfo.model = query.value("model").toString(); programInfo.help_instruction = query.value("help_instruction").toString(); result.append(programInfo); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //查询检定项分类 参数 装置字典键 例如 1 ,2 可传空值 “” 查询所有 QList<itemCategory> BaseCommonApi::getitemCategoryList(QString item) { QList<itemCategory> result; QSqlQuery query; if(item.isEmpty() || item.isNull()){ query.prepare("SELECT * FROM biz_business_device_measure_item_category"); }else { query.prepare("SELECT * FROM biz_business_device_measure_item_category WHERE belong_standard_equipment = :item "); query.bindValue(":item", item); } if (query.exec()) { while (query.next()) { itemCategory category; category.id = query.value("id").toString(); category.category_no = query.value("category_no").toString(); category.category_name = query.value("category_name").toString(); category.create_time = query.value("create_time").toDateTime(); category.device_type = query.value("device_type").toString(); category.belong_standard_equipment = query.value("belong_standard_equipment").toString(); category.measure_category = query.value("measure_category").toString(); category.technology_file = query.value("technology_file").toString(); category.update_time = query.value("update_time").toDateTime(); category.lab_x = query.value("lab_x").toString(); category.lab_h = query.value("lab_h").toString(); category.wiring_diagram = query.value("wiring_diagram").toString(); result.append(category); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //检定程序管理-编辑 查询 VerificationProgramInfo BaseCommonApi::getVerificationProgramInfo(QString id) { VerificationProgramInfo result; QSqlQuery query; query.prepare("SELECT * FROM zd_verification_program_info WHERE id = :id "); query.bindValue(":id", id); if (query.exec()) { while (query.next()) { VerificationProgramInfo programInfo; programInfo.id = query.value("id").toString(); programInfo.program_name = query.value("program_name").toString(); programInfo.create_name = query.value("create_name").toString(); programInfo.create_time = query.value("create_time").toDateTime(); programInfo.remark = query.value("remark").toString(); programInfo.img_path = query.value("img_path").toString(); programInfo.tested_device_id = query.value("tested_device_id").toString(); programInfo.standard_device_id = query.value("standard_device_id").toString(); programInfo.update_time = query.value("update_time").toDateTime(); programInfo.belong_standard_equipment = query.value("belong_standard_equipment").toString(); programInfo.equipment_item_category = query.value("equipment_item_category").toString(); programInfo.equipment_name = query.value("equipment_name").toString(); programInfo.model = query.value("model").toString(); programInfo.help_instruction = query.value("help_instruction").toString(); result = programInfo; } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //查询设备通信接口 QList<VerificationProgramConfigInterface> BaseCommonApi::getVerificationProgramConfigInterface(QString deviceId) { QList<VerificationProgramConfigInterface> result; QSqlQuery query; query.prepare("SELECT id,device_id ,communication_type ,serial_port ,visa ,create_time ,update_time " "FROM zd_communication_setting WHERE device_id = :deviceId "); query.bindValue(":deviceId", deviceId); if (query.exec()) { while (query.next()) { VerificationProgramConfigInterface configInterface; configInterface.id = query.value("id").toString(); configInterface.device_id = query.value("device_id").toString(); configInterface.communication_type = query.value("communication_type").toString(); configInterface.serial_port = query.value("serial_port").toString(); configInterface.visa = query.value("visa").toString(); configInterface.create_time = query.value("create_time").toDateTime(); configInterface.update_time = query.value("update_time").toDateTime(); result.append(configInterface); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //新建检定程序 bool BaseCommonApi::InsertVerificationProgramInfo(VerificationProgramInfo verInfo) { QSqlQuery query; query.prepare(" INSERT INTO zd_verification_program_info (id,program_name,create_name,create_time, " "remark,img_path,tested_device_id,standard_device_id,update_time,belong_standard_equipment," "equipment_item_category,equipment_name,model,help_instruction)" " VALUES (:id, :program_name, :create_name, :create_time, :remark, :img_path, :tested_device_id, " ":standard_device_id,:update_time,:belong_standard_equipment,:equipment_item_category," ":equipment_name,:model,:help_instruction);"); QString formattedDateTime = verInfo.create_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", verInfo.id); query.bindValue(":program_name", verInfo.program_name); query.bindValue(":create_name", verInfo.create_name); query.bindValue(":create_time", formattedDateTime); query.bindValue(":remark", verInfo.remark); query.bindValue(":img_path", verInfo.img_path); query.bindValue(":tested_device_id", verInfo.tested_device_id); query.bindValue(":standard_device_id", verInfo.standard_device_id); query.bindValue(":update_time",formattedDateTime); query.bindValue(":belong_standard_equipment",verInfo.belong_standard_equipment); query.bindValue(":equipment_item_category",verInfo.equipment_item_category); query.bindValue(":equipment_name",verInfo.equipment_name); query.bindValue(":model",verInfo.model); query.bindValue(":help_instruction",verInfo.help_instruction); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); } return isSuccess; }; //新增通讯接口 bool BaseCommonApi::InsertVerificationProgramConfigInterface(VerificationProgramConfigInterface configInterdace) { QSqlQuery query; query.prepare("INSERT INTO zd_communication_setting (id,device_id,communication_type,serial_port,visa,create_time,update_time) " " VALUES (:id,:device_id,:communication_type,:serial_port,:visa,:create_time,:update_time)"); QString formattedDateTime = configInterdace.create_time.toString("yyyy-MM-dd HH:mm:ss"); QString formattedUpdateDateTime = configInterdace.update_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", configInterdace.id); query.bindValue(":device_id", configInterdace.device_id); query.bindValue(":communication_type", configInterdace.communication_type); query.bindValue(":serial_port", configInterdace.serial_port); query.bindValue(":visa", configInterdace.visa); query.bindValue(":create_time", formattedDateTime); query.bindValue(":update_time", formattedUpdateDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); } return isSuccess; }; //更新检定程序 bool BaseCommonApi::UpdateVerificationProgramInfo(VerificationProgramInfo verInfo) { QSqlQuery query; query.prepare("UPDATE zd_verification_program_info " " SET program_name = :program_name," "create_name = :create_name, " "create_time = :create_time," "remark = :remark," "img_path = :img_path," "tested_device_id = :tested_device_id," "standard_device_id = :standard_device_id ," "update_time = :update_time, " "belong_standard_equipment = :belong_standard_equipment," "equipment_item_category = :equipment_item_category," "equipment_name = :equipment_name," "model=:model," "help_instruction=:help_instruction " " 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); query.bindValue(":program_name", verInfo.program_name); query.bindValue(":create_name", verInfo.create_name); query.bindValue(":create_time", formattedDateTime); query.bindValue(":remark", verInfo.remark); query.bindValue(":img_path", verInfo.img_path); query.bindValue(":tested_device_id", verInfo.tested_device_id); query.bindValue(":standard_device_id", verInfo.standard_device_id); query.bindValue(":belong_standard_equipment", verInfo.belong_standard_equipment); query.bindValue(":equipment_item_category", verInfo.equipment_item_category); query.bindValue(":equipment_name", verInfo.equipment_name); query.bindValue(":model", verInfo.model); query.bindValue(":help_instruction", verInfo.help_instruction); query.bindValue(":id", verInfo.id); bool isSuccess = query.exec(); qDebug() << "执行的sql:" <<query.lastQuery(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); } return isSuccess; }; //更新通讯接口 bool BaseCommonApi::UpdateVerificationProgramConfigInterface(VerificationProgramConfigInterface configInterdace) { QSqlQuery query; query.prepare("UPDATE zd_communication_setting SET communication_type = :communication_type, " " serial_port = :serial_port,visa = :visa,update_time = :update_time " " WHERE device_id = :device_id;"); QString formattedDateTime = configInterdace.update_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":communication_type", configInterdace.communication_type); query.bindValue(":serial_port", configInterdace.serial_port); query.bindValue(":visa", configInterdace.visa); query.bindValue(":update_time", formattedDateTime); query.bindValue(":device_id", configInterdace.device_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); } return isSuccess; }; //删除检定程序 bool BaseCommonApi::DeleteVerificationProgramInfo(QString id) { QSqlQuery query; //删除检定程序 query.prepare("DELETE FROM zd_verification_program_info WHERE id = :id"); query.bindValue(":id", id); if (!query.exec()) { qDebug() << "删除失败: " << query.lastError().text(); return false; } return true; }; //查询指令库 参数 检定程序id QList<InstructionLib> BaseCommonApi::getInstructionLib(QString verification_program_id) { QList<InstructionLib> result; QSqlQuery query; query.prepare("SELECT * FROM zd_instruction_library WHERE verification_program_id = :verification_program_id "); query.bindValue(":verification_program_id", verification_program_id); if (query.exec()) { while (query.next()) { InstructionLib instruction; instruction.id = query.value("id").toString(); instruction.device_id = query.value("device_id").toString(); instruction.device_name = query.value("device_name").toString(); instruction.instruct_config = query.value("instruct_config").toString(); instruction.instruct_read = query.value("instruct_read").toString(); instruction.type = query.value("type").toString(); instruction.belong_vername = query.value("belong_vername").toString(); instruction.belong_checkname = query.value("belong_checkname").toString(); instruction.verification_program_id = query.value("verification_program_id").toString(); instruction.create_time = query.value("create_time").toDateTime(); instruction.update_time = query.value("update_time").toDateTime(); instruction.param = query.value("param").toString(); result.append(instruction); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //查询检定项用于在新增指令时筛选 例如DCV ACI 如果equipment_item_category_id为空查询所有 QList<Params> BaseCommonApi::getParams(QString belong_standard_equipment_id,QString equipment_item_category_id) { QList<Params> result; QSqlQuery query; QList<itemCategory> standard_item = getitemCategoryList(belong_standard_equipment_id); switch (belong_standard_equipment_id.toInt()) { case 1: if(equipment_item_category_id.isNull() || equipment_item_category_id.isEmpty()) { query.prepare("SELECT DISTINCT bbdmidc.params FROM biz_business_device_measure_item_data_calibrator bbdmidc " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmidc.item_id "); }else { query.prepare("SELECT DISTINCT bbdmidc.params FROM biz_business_device_measure_item_data_calibrator bbdmidc " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmidc.item_id " " WHERE bbdmii.item_category_id = :equipment_item_category_id "); } query.bindValue(":equipment_item_category_id", equipment_item_category_id); if (query.exec()) { while (query.next()) { Params param; param.param = query.value("params").toString(); result.append(param); } }else { qDebug() << "Query execution failed: " << query.lastError().text(); } break; case 2: if(equipment_item_category_id.isNull() || equipment_item_category_id.isEmpty()) { query.prepare("SELECT DISTINCT data_type FROM biz_business_device_measure_item_data_dc_power bbdmiddp " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmiddp.item_id"); }else { query.prepare("SELECT DISTINCT data_type FROM biz_business_device_measure_item_data_dc_power bbdmiddp " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id= bbdmiddp.item_id " "WHERE bbdmii.item_category_id = :equipment_item_category_id "); } query.bindValue(":equipment_item_category_id", equipment_item_category_id); if (query.exec()) { while (query.next()) { Params param; QString data_type = query.value("data_type").toString(); switch (data_type.toInt()) { case 1: param.param = "电源电压调整率"; break; case 2: param.param = "负载调整率"; break; case 3: param.param = "电压示值误差"; break; case 4: param.param = "电流示值误差(直接测量)"; break; case 5: param.param = "电流示值误差(间接测量)"; break; case 6: param.param = "纹波电压"; break; case 7: param.param = "输出电压短期稳定性"; break; } result.append(param); } } break; case 4: bool isExit = false; QString itemName = NULL; if(!(equipment_item_category_id.isNull() || equipment_item_category_id.isEmpty())) { for(int i = 0;i < standard_item.length();i++){ if (equipment_item_category_id.contains(standard_item[i].id)){ isExit = true; itemName = standard_item[i].category_name; } } if(isExit && itemName.contains("一般压力表")){ Params param; param.param = "示值误差/回程误差/轻敲位移"; result.append(param); } }else { Params param; param.param = "示值误差/回程误差/轻敲位移"; Params param1; param1.param = "示值误差"; Params param2; param2.param = "回程误差"; Params param3; param3.param = "轻敲位移"; QList<Params> paramList; paramList.append(param1); paramList.append(param2); paramList.append(param3); for(int i =0;i<paramList.length();i++){ result.append(paramList[i]); } } break; } return result; }; //新增指令库 bool BaseCommonApi::InsertInstructionLib(InstructionLib instructionLib) { QSqlQuery query; query.prepare("INSERT INTO zd_instruction_library (id,device_id,device_name,instruct_config,instruct_read," "type,belong_vername,belong_checkname,create_time,update_time,verification_program_id,param) " " VALUES (:id,:device_id,:device_name,:instruct_config,:instruct_read,:type,:belong_vername," ":belong_checkname,:create_time,:update_time,:verification_program_id,:param)"); QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", instructionLib.id); query.bindValue(":device_id", instructionLib.device_id); query.bindValue(":device_name", instructionLib.device_name); query.bindValue(":instruct_config", instructionLib.instruct_config); query.bindValue(":instruct_read", instructionLib.instruct_read); query.bindValue(":type", instructionLib.type); query.bindValue(":belong_vername", instructionLib.belong_vername); query.bindValue(":belong_checkname", instructionLib.belong_checkname); query.bindValue(":create_time", currentDateTime); query.bindValue(":update_time", currentDateTime); query.bindValue(":verification_program_id", instructionLib.verification_program_id); query.bindValue(":param", instructionLib.param); bool isSuccess = query.exec(); // qDebug() << "InsertTaskBasic query failed: " << query.lastQuery(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); } return isSuccess; }; //删除指令库 bool BaseCommonApi::DeleteInstructionLib(QString id) { QSqlQuery query; query.prepare("DELETE FROM zd_instruction_library WHERE id = :id "); query.bindValue(":id", id); if (!query.exec()) { qDebug() << "删除失败: " << query.lastError().text(); return false; } return true; }; //更新指令库 bool BaseCommonApi::UpdateInstructionLib(InstructionLib instructionLib) { QSqlQuery query; query.prepare("UPDATE zd_instruction_library SET device_id=:device_id," "device_name = :device_name,instruct_config = :instruct_config,instruct_read = :instruct_read," " type = :type,belong_vername = :belong_vername,belong_checkname = :belong_checkname," "update_time = :update_time,verification_program_id=:verification_program_id,param=:param WHERE id = :id"); QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":device_id", instructionLib.device_id); query.bindValue(":device_name", instructionLib.device_name); query.bindValue(":instruct_config", instructionLib.instruct_config); query.bindValue(":instruct_read", instructionLib.instruct_read); query.bindValue(":type", instructionLib.type); query.bindValue(":belong_vername", instructionLib.belong_vername); query.bindValue(":belong_checkname", instructionLib.belong_checkname); query.bindValue(":update_time", currentDateTime); query.bindValue(":verification_program_id", instructionLib.verification_program_id); query.bindValue(":param", instructionLib.param); query.bindValue(":id", instructionLib.id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); } return isSuccess; }; //雪花算法生成id qint64 BaseCommonApi::generateId() { return this->idWorker.nextId(); }; QString BaseCommonApi::GenerateTaskNumber() { QList<CreateTaskList> TaskList= BaseCommonApi::getCreateTaskListNew(); return TaskManager::generateTask(TaskList.first().order_no); }; bool BaseCommonApi::AddTaskNumber() { return TaskManager::AddCurrenTaskCount(); }; ////自动检定-根据被检设备 查询检定项分类 QList<DeviceMeasureEquipmentCatory> BaseCommonApi::getDeviceMeasureEquipmentCatory(QString deviceId) { QList<DeviceMeasureEquipmentCatory> result; QSqlQuery query; query.prepare( " SELECT bbdmii.*, eemi.category AS deviceType, eemi.equipment_name AS deviceName, " " eemi.model AS model, eemi.help_instruction AS helpInstruction, eemi.instructions_file AS instructionsFile, " " eemi.check_cycle AS checkCycle, eemi.id AS eqptDeviceModelId, eemi.category AS eqptDeviceType " " FROM eqpt_equipment_model_info eemi " " LEFT JOIN biz_business_device_measure_item_info bbdmii ON eemi.id = bbdmii.device_model_id " " JOIN eqpt_equipment_info eei ON eei.model_id = eemi.id " " WHERE eei.id = :deviceId " " ORDER BY eemi.create_time DESC "); query.bindValue(":deviceId",deviceId); if (query.exec()) { while (query.next()) { DeviceMeasureEquipmentCatory catory; catory.id = query.value("id").toString(); catory.device_model_id = query.value("device_model_id").toString(); catory.belong_standard_equipment = query.value("belong_standard_equipment").toString(); catory.help_field_instruction = query.value("help_field_instruction").toString(); catory.item_category_id = query.value("item_category_id").toString(); catory.item_category_name = query.value("item_category_name").toString(); catory.deviceType = query.value("deviceType").toString(); catory.deviceName = query.value("deviceName").toString(); catory.model = query.value("model").toString(); catory.helpInstruction = query.value("helpInstruction").toString(); catory.instructionsFile = query.value("instructionsFile").toString(); catory.checkCycle = query.value("checkCycle").toString(); catory.eqptDeviceModelId = query.value("eqptDeviceModelId").toString(); catory.eqptDeviceType = query.value("eqptDeviceType").toString(); result.append(catory); } // qDebug() << query.lastQuery(); } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; ////自动检定-根据被检设备 查询检定项分类 在查询检定程序 //根据getDeviceMeasureEquipmentCatory返回的item_category_id查询检定程序 QList<VerificationProgramInfo> BaseCommonApi::getVerificationProgramInfoByDeviceId(QString deviceId) { QList<DeviceMeasureEquipmentCatory> catory; QSqlQuery query; QList<VerificationProgramInfo> result; catory = BaseCommonApi::getDeviceMeasureEquipmentCatory(deviceId); if(catory.length() <= 0 ){ return result; } QString equipment_item_category = catory[0].item_category_id; query.prepare("SELECT * from zd_verification_program_info zvpi WHERE zvpi.equipment_item_category = :equipment_item_category"); query.bindValue(":equipment_item_category",equipment_item_category); if (query.exec()) { while (query.next()) { VerificationProgramInfo info; info.id = query.value("id").toString(); info.program_name = query.value("program_name").toString(); info.create_name = query.value("create_name").toString(); info.create_time = query.value("create_time").toDateTime(); info.remark = query.value("remark").toString(); info.img_path = query.value("img_path").toString(); info.tested_device_id = query.value("tested_device_id").toString(); info.standard_device_id = query.value("standard_device_id").toString(); info.update_time = query.value("update_time").toDateTime(); info.belong_standard_equipment = query.value("belong_standard_equipment").toString(); info.equipment_item_category = query.value("equipment_item_category").toString(); info.equipment_name = query.value("equipment_name").toString(); info.model = query.value("model").toString(); info.help_instruction = query.value("help_instruction").toString(); result.append(info); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //自动检定-结果保存-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, measure_category, order_id, sample_id, sample_name, model, " " manufacture_no, manufacturer, item_id, trace_date, measure_valid_date, " " measure_address, temperature, humidity, data_source, ipri, ipri_unit, " " isec, isec_unit, vpri, vpri_unit, vsec, vsec_unit, appearance_function_check, " " appearance, appearance_remark, pointer_deflection_stability, " " pointer_deflection_stability_remark, tightness, tightness_remark," " insulation_resistance, insulation_resistance_remark, measure_medium," " division, zero_drift_result, work_line_equation, sealing_test, " " insulation_resistance_value, angle_adjust_error, actual_division_value," " actual_division_value_unit, conclusion, restriction_instruction, outcome," " other_outcome, remark, other_remark, create_user_id, measure_person_id," " create_user_name, create_time, update_time " " ) VALUES ( " " :id, :data_no, :measure_category, :order_id, :sample_id, :sample_name, :model, " " :manufacture_no, :manufacturer, :item_id, :trace_date, :measure_valid_date, " " :measure_address, :temperature, :humidity, :data_source, :ipri, :ipri_unit, " " :isec, :isec_unit, :vpri, :vpri_unit, :vsec, :vsec_unit, :appearance_function_check, " " :appearance, :appearance_remark, :pointer_deflection_stability, " " :pointer_deflection_stability_remark, :tightness, :tightness_remark, " " :insulation_resistance, :insulation_resistance_remark, :measure_medium, " " :division, :zero_drift_result, :work_line_equation, :sealing_test, " " :insulation_resistance_value, :angle_adjust_error, :actual_division_value, " " :actual_division_value_unit, :conclusion, :restriction_instruction, :outcome, " " :other_outcome, :remark, :other_remark, :create_user_id, :measure_person_id, " " :create_user_name, :create_time, :update_time);"); QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", saveInfo.id); //id 自动生成 query.bindValue(":id", saveInfo.id); query.bindValue(":data_no", saveInfo.data_no); query.bindValue(":measure_category", saveInfo.measure_category); query.bindValue(":order_id", saveInfo.order_id); query.bindValue(":sample_id", saveInfo.sample_id); query.bindValue(":sample_name", saveInfo.sample_name); query.bindValue(":model", saveInfo.model); query.bindValue(":manufacture_no", saveInfo.manufacture_no); query.bindValue(":manufacturer", saveInfo.manufacturer); query.bindValue(":item_id", saveInfo.item_id); query.bindValue(":trace_date", saveInfo.trace_date.toString("yyyy-MM-dd")); // 根据数据库实际日期格式转换 query.bindValue(":measure_valid_date", saveInfo.measure_valid_date.toString("yyyy-MM-dd")); query.bindValue(":measure_address", saveInfo.measure_address); query.bindValue(":temperature", saveInfo.temperature); query.bindValue(":humidity", saveInfo.humidity); query.bindValue(":data_source", saveInfo.data_source); query.bindValue(":ipri", saveInfo.ipri); query.bindValue(":ipri_unit", saveInfo.ipri_unit); query.bindValue(":isec", saveInfo.isec); query.bindValue(":isec_unit", saveInfo.isec_unit); query.bindValue(":vpri", saveInfo.vpri); query.bindValue(":vpri_unit", saveInfo.vpri_unit); query.bindValue(":vsec", saveInfo.vsec); query.bindValue(":vsec_unit", saveInfo.vsec_unit); query.bindValue(":appearance_function_check", saveInfo.appearance_function_check); query.bindValue(":appearance", saveInfo.appearance); query.bindValue(":appearance_remark", saveInfo.appearance_remark); query.bindValue(":pointer_deflection_stability", saveInfo.pointer_deflection_stability); query.bindValue(":pointer_deflection_stability_remark", saveInfo.pointer_deflection_stability_remark); query.bindValue(":tightness", saveInfo.tightness); query.bindValue(":tightness_remark", saveInfo.tightness_remark); query.bindValue(":insulation_resistance", saveInfo.insulation_resistance); query.bindValue(":insulation_resistance_remark", saveInfo.insulation_resistance_remark); query.bindValue(":measure_medium", saveInfo.measure_medium); query.bindValue(":division", saveInfo.division); query.bindValue(":zero_drift_result", saveInfo.zero_drift_result); query.bindValue(":work_line_equation", saveInfo.work_line_equation); query.bindValue(":sealing_test", saveInfo.sealing_test); query.bindValue(":insulation_resistance_value", saveInfo.insulation_resistance_value); query.bindValue(":angle_adjust_error", saveInfo.angle_adjust_error); query.bindValue(":actual_division_value", saveInfo.actual_division_value); query.bindValue(":actual_division_value_unit", saveInfo.actual_division_value_unit); query.bindValue(":conclusion", saveInfo.conclusion); query.bindValue(":restriction_instruction", saveInfo.restriction_instruction); query.bindValue(":outcome", saveInfo.outcome); query.bindValue(":other_outcome", saveInfo.other_outcome); query.bindValue(":remark", saveInfo.remark); query.bindValue(":other_remark", saveInfo.other_remark); query.bindValue(":create_user_id", saveInfo.create_user_id); query.bindValue(":measure_person_id", saveInfo.measure_person_id); query.bindValue(":create_user_name", saveInfo.create_user_name); 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; }; //计量检定业务-受检设备检定管理-检定数据管理-所使用的标准、主要测量设备 bool BaseCommonApi::InsertDeviceMeasureEquipment(DeviceMeasureEquipment deviceMeasure) { QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_equipment " " (id,data_id,equipment_id,create_time,update_time) " " VALUES " " (:id,:data_id,:equipment_id,:create_time,:update_time)"); 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", currentDateTime); query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); } return isSuccess; }; //自动检定-结果保存-检定数据管理多功能校准源数据(自动检定输出或业务创建) bool BaseCommonApi::InsertVerMultiCal(SaveDeviceMeasureCalibrator measureCalibrator) { QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_data_calibrator " " (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) " " 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 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); query.bindValue(":maximum_error_formula",measureCalibrator.maximum_error_formula); query.bindValue(":error_param_a",measureCalibrator.error_param_a); query.bindValue(":error_param_b",measureCalibrator.error_param_b); query.bindValue(":params",measureCalibrator.params); query.bindValue(":capacity",measureCalibrator.capacity); query.bindValue(":unit",measureCalibrator.unit); query.bindValue(":frequency",measureCalibrator.frequency); query.bindValue(":frequency_unit",measureCalibrator.frequency_unit); query.bindValue(":range_range",measureCalibrator.range_range); query.bindValue(":standard_value",measureCalibrator.standard_value); query.bindValue(":indicating_value",measureCalibrator.measure_indication_value); // 暂时改为被检表示值2024年3月27日09:43:27 待修改 query.bindValue(":maximum_error",measureCalibrator.maximum_error); query.bindValue(":absolute_error",measureCalibrator.absolute_error); query.bindValue(":resolution",measureCalibrator.resolution); query.bindValue(":line_mode",measureCalibrator.line_mode); query.bindValue(":remark",measureCalibrator.remark); query.bindValue(":an",measureCalibrator.an); query.bindValue(":bn",measureCalibrator.bn); query.bindValue(":cn",measureCalibrator.cn); query.bindValue(":delta_an",measureCalibrator.delta_an); query.bindValue(":delta_bn",measureCalibrator.delta_bn); query.bindValue(":delta_cn",measureCalibrator.delta_cn); 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",currentDateTime); query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); qDebug()<<"保存的示值为:"<<measureCalibrator.indicating_value; if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); } return isSuccess; }; // 核查程序管理首页查询 QList<CheckProgramManage> BaseCommonApi::getCheckProgramManage() { QList<CheckProgramManage> result; QSqlQuery query; bool isSuccess = query.exec("SELECT id,check_name,create_name,create_time,remark,img_path,standard_device_id,verification_documents_id,update_time " "FROM zd_verification_program_manage"); if (isSuccess) { while (query.next()) { CheckProgramManage programInfo; programInfo.id = query.value("id").toString(); programInfo.check_name = query.value("check_name").toString(); programInfo.create_name = query.value("create_name").toString(); programInfo.create_time = query.value("create_time").toDateTime(); programInfo.remark = query.value("remark").toString(); result.append(programInfo); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //核查程序管理-编辑查询单个 CheckProgramManage BaseCommonApi::getCheckProgramManageById(QString id) { CheckProgramManage result; QSqlQuery query; query.prepare("SELECT id,check_name,create_name,create_time,remark,img_path,standard_device_id,verification_documents_id,update_time " "FROM zd_verification_program_manage where id = :id "); query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CheckProgramManage programInfo; programInfo.id = query.value("id").toString(); programInfo.check_name = query.value("check_name").toString(); programInfo.create_name = query.value("create_name").toString(); programInfo.create_time = query.value("create_time").toDateTime(); programInfo.remark = query.value("remark").toString(); programInfo.img_path = query.value("img_path").toString(); programInfo.standard_device_id = query.value("standard_device_id").toString(); programInfo.verification_documents_id = query.value("verification_documents_id").toString(); programInfo.update_time = query.value("update_time").toDateTime(); result = programInfo; } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //核查程序管理-编辑查询 选择设备 选择标准 QList<CheckAndTestedDevice> BaseCommonApi::getCheckDeviceList() { QList<CheckAndTestedDevice> result; QSqlQuery query; bool isSuccess = query.exec("SELECT bei.id ,bei.equipment_name ,bei.model ,bei.manufacture_no ,bei.manufacturer FROM biz_equipment_info bei "); 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.append(device); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //核查程序管理-编辑查询 选择设备 选择核查件 为标准和被检的并集 QList<CheckAndTestedDevice> BaseCommonApi::getCheckAndTestedDeviceList() { QList<CheckAndTestedDevice> result; QSqlQuery query; bool isSuccess = query.exec("SELECT " " bei.id , bei.equipment_name , bei.model , bei.manufacture_no , bei.manufacturer " " FROM biz_equipment_info bei 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;"); 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.append(device); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //核查程序管理-核查设置-多功能校准源 参数设备id 同信息管理-标准设备管理-核查项及核查点 QList<QStringList> BaseCommonApi::getVerificationItemsMultiList(QString equipment_id,QStringList *headList) { QList<QStringList> resultData; QStringList result; QSqlQuery query; query.prepare("SELECT * FROM biz_equipment_standard_check_item_data_calibrator " "WHERE equipment_id = :equipment_id"); query.bindValue(":equipment_id", equipment_id); if (query.exec()) { while (query.next()) { result.clear(); result.append( query.value("id").toString()); result.append( query.value("item_category_id").toString()); result.append( query.value("equipment_id").toString()); result.append( query.value("check_type").toString()); result.append( query.value("test_type").toString()); result.append( query.value("params").toString()); result.append( query.value("unit").toString()); result.append( query.value("frequency").toString()); result.append( query.value("check_point").toString()); result.append( query.value("resolution").toString()); result.append( query.value("cycle_number").toString()); result.append( query.value("frequency_unit").toString()); result.append( query.value("urel").toString()); result.append( query.value("thoroughfare").toString()); result.append( query.value("dccp").toString()); result.append( query.value("flit").toString()); result.append( query.value("remark").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(); } *headList <<"id"<<"核查项分类id"<<"配套设备id"<<"核查类型"<<"核查点类型"<<"核查项目"<<"单位"<<"频率"<<"分辨力"<<"核查点" <<"频率单位"<<"循环次数"<<"Urel"<<"通道"<<"TFER"<<"DCCP"<<"FLIT"<<"核查项备注"<<"创建时间"<<"更新时间"; return resultData; }; //新增核查程序 bool BaseCommonApi::InsertCheckProgramManage(CheckProgramManage check) { QSqlQuery query; query.prepare("INSERT INTO zd_verification_program_manage " " (id,check_name,create_name,create_time,remark,img_path,standard_device_id,verification_documents_id,update_time) " " VALUES (:id,:check_name,:create_name,:create_time,:remark,:img_path,:standard_device_id, " " :verification_documents_id,:update_time)"); QString formattedDateTime = check.create_time.toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", check.id); query.bindValue(":check_name", check.check_name); query.bindValue(":create_name", check.create_name); query.bindValue(":create_time", formattedDateTime); 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); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); } return isSuccess; }; //更新核查程序 bool BaseCommonApi::UpdateCheckProgramManage(CheckProgramManage check) { QSqlQuery query; 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 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",currentDateTime); query.bindValue(":id", check.id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); } return isSuccess; }; //删除核查程序 bool BaseCommonApi::DeleteCheckProgramManage(QString id) { QSqlQuery query; query.prepare("DELETE FROM zd_verification_program_manage WHERE id = :id"); query.bindValue(":id", id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertOrderSampleRelation query failed: " << query.lastError().text(); } 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) { QSqlQuery query; query.prepare("INSERT INTO biz_equipment_standard_check_data_piston_gauge " " (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) " " 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 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); query.bindValue(":check_point",gauge.check_point); query.bindValue(":first_forward_stroke",gauge.first_forward_stroke); query.bindValue(":first_reverse_stroke",gauge.first_reverse_stroke); query.bindValue(":second_forward_stroke",gauge.second_forward_stroke); query.bindValue(":second_reverse_stroke",gauge.second_reverse_stroke); query.bindValue(":third_forward_stroke",gauge.third_forward_stroke); query.bindValue(":third_reverse_stroke",gauge.third_reverse_stroke); query.bindValue(":average_value",gauge.average_value); query.bindValue(":average_average_value",gauge.average_average_value); query.bindValue(":max_indicating_error",gauge.max_indicating_error); query.bindValue(":max_return_error",gauge.max_return_error); query.bindValue(":params",gauge.params); query.bindValue(":test_value_one",gauge.test_value_one); query.bindValue(":measure_value_one",gauge.measure_value_one); query.bindValue(":test_value_two",gauge.test_value_two); query.bindValue(":measure_value_two",gauge.measure_value_two); query.bindValue(":test_value_three",gauge.test_value_three); query.bindValue(":measure_value_three",gauge.measure_value_three); query.bindValue(":test_value_four",gauge.test_value_four); query.bindValue(":measure_value_four",gauge.measure_value_four); query.bindValue(":test_value_five",gauge.test_value_five); query.bindValue(":measure_value_five",gauge.measure_value_five); 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",currentDateTime); query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); } return isSuccess; }; //自动核查-结果保存-基本信息 bool BaseCommonApi::InsertCheckDataManageBasicInfo(CheckDataManageBasicInfo baseInfo) { QSqlQuery query; query.prepare("INSERT INTO biz_equipment_standard_check_info " " (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) " " VALUES " " (: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 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); query.bindValue(":check_address",baseInfo.check_address); query.bindValue(":temperature",baseInfo.temperature); query.bindValue(":humidity",baseInfo.humidity); query.bindValue(":check_accord",baseInfo.check_accord); query.bindValue(":stability_examine",baseInfo.stability_examine); query.bindValue(":standard_equipment_id",baseInfo.standard_equipment_id); query.bindValue(":equipment_id",baseInfo.equipment_id); query.bindValue(":item_category_id",baseInfo.item_category_id); query.bindValue(":conclusion",baseInfo.conclusion); 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",currentDateTime); query.bindValue(":update_time",currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); } return isSuccess; }; //自动检定和自动核查 查询实验室及温湿度 QList<LocationInfo> BaseCommonApi::getLocationInfo() { QList<LocationInfo> result; QSqlQuery query; bool isSuccess = query.exec("SELECT * FROM env_location_info eli LEFT JOIN ( SELECT temperature, humidity, location_id AS locationId " " FROM env_environment_record_data ) ethd ON ethd.locationId = eli.id " " ORDER BY update_time DESC"); if (isSuccess) { while (query.next()) { LocationInfo info; info.id = query.value("id").toString(); info.location_no = query.value("location_no").toString(); info.location_name = query.value("location_name").toString(); info.location_position = query.value("location_position").toString(); info.create_user_id = query.value("create_user_id").toString(); info.create_user = query.value("create_user").toString(); info.create_time = query.value("create_time").toDateTime(); info.update_time = query.value("update_time").toDateTime(); info.location_lab = query.value("location_lab").toString(); info.temperature = query.value("temperature").toString(); info.humidity = query.value("humidity").toString(); info.location_id = query.value("location_id").toString(); result.append(info); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //查询出所有实验室地点,用于自动检定/核查 结果保存 地点下拉框查询 QList<LocationInfo> BaseCommonApi::getLocationInfoList() { QList<LocationInfo> result; QSqlQuery query; bool isSuccess = query.exec("SELECT * FROM env_location_info"); if (isSuccess) { while (query.next()) { LocationInfo info; info.id = query.value("id").toString(); info.location_no = query.value("location_no").toString(); info.location_name = query.value("location_name").toString(); info.location_position = query.value("location_position").toString(); info.create_user_id = query.value("create_user_id").toString(); info.create_user = query.value("create_user").toString(); info.create_time = query.value("create_time").toDateTime(); info.update_time = query.value("update_time").toDateTime(); info.location_lab = query.value("location_lab").toString(); result.append(info); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //查询所有用户,用于自动检定/核查 结果保存 QList<User> BaseCommonApi::getUser() { QList<User> result; QSqlQuery query; bool isSuccess = query.exec("SELECT * FROM sys_user"); if (isSuccess) { while (query.next()) { User user; user.ID = query.value("ID").toString(); user.NAME = query.value("NAME").toString(); user.DEPT_ID = query.value("DEPT_ID").toString(); result.append(user); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; // 设备与装置-标准装置管理-核查数据基本信息关联的核查标准设备,即给设备做核查的设备 bool BaseCommonApi::InsertStandCheckInfoEquipent(StandCheckInfoEquipent equiment) { QSqlQuery query; query.prepare("INSERT INTO biz_equipment_standard_check_info_equipment " " (id,check_equipment_id,data_id) " " VALUES " " (:id,:check_equipment_id,:data_id)"); query.bindValue(":id",equiment.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(); } return isSuccess; }; //自动核查--结果保存-设备与装置-标准装置管理-核查数据管理多功能校准源数据表 bool BaseCommonApi::InsertStandCheckDataCalibrator(StandCheckDataCalibrator calibrator) { QSqlQuery query; query.prepare("INSERT INTO biz_equipment_standard_check_data_calibrator " "(id, data_id, check_type, test_type, params, unit, frequency, frequency_unit, check_point, " "test_value_one_date, test_value_one, test_value_two_date, test_value_two, " "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) " "VALUES " "(:id, :data_id, :check_type, :test_type, :params, :unit, :frequency, :frequency_unit, :check_point, " ":test_value_one_date, :test_value_one, :test_value_two_date, :test_value_two, " ":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 currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", calibrator.id); query.bindValue(":data_id", calibrator.data_id); query.bindValue(":check_type", calibrator.check_type); query.bindValue(":test_type", calibrator.test_type); query.bindValue(":params", calibrator.params); query.bindValue(":unit", calibrator.unit); query.bindValue(":frequency", calibrator.frequency); query.bindValue(":frequency_unit", calibrator.frequency_unit); query.bindValue(":check_point", calibrator.check_point); query.bindValue(":test_value_one_date", calibrator.test_value_one_date.toString("yyyy-MM-dd")); query.bindValue(":test_value_one", calibrator.test_value_one); query.bindValue(":test_value_two_date", calibrator.test_value_two_date.toString("yyyy-MM-dd")); query.bindValue(":test_value_two", calibrator.test_value_two); query.bindValue(":test_value_three_date", calibrator.test_value_three_date.toString("yyyy-MM-dd")); query.bindValue(":test_value_three", calibrator.test_value_three); query.bindValue(":test_value_four_date", calibrator.test_value_four_date.toString("yyyy-MM-dd")); query.bindValue(":test_value_four", calibrator.test_value_four); query.bindValue(":test_value_five_date", calibrator.test_value_five_date.toString("yyyy-MM-dd")); query.bindValue(":test_value_five", calibrator.test_value_five); query.bindValue(":test_value_six_date", calibrator.test_value_six_date.toString("yyyy-MM-dd")); query.bindValue(":test_value_six", calibrator.test_value_six); query.bindValue(":average_value", calibrator.average_value); query.bindValue(":standard_deviation", calibrator.standard_deviation); query.bindValue(":relative_repeatability", calibrator.relative_repeatability); query.bindValue(":urel", calibrator.urel); query.bindValue(":less_than", calibrator.less_than); query.bindValue(":qualified", calibrator.qualified); query.bindValue(":create_time", currentDateTime); query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); } return isSuccess; }; //根据用户ID查询 当前部门ID和部门名称全程 QList<Dept> BaseCommonApi::SelectDeptData(QString UserId) { UserId=temporary_user_id; QList<Dept> result; QSqlQuery query; bool isSuccess=query.exec(QString("SELECT dept.ID,dept.FULL_NAME FROM sys_dept as " "dept WHERE dept.CREATE_USER=%1").arg(UserId)); if (isSuccess) { while (query.next()) { Dept info; info.id = query.value("id").toString(); info.FULL_NAME = query.value("FULL_NAME").toString(); result.append(info); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //查询出所有委托方 QList<biz_resource_customer_info> BaseCommonApi::SelectCustomerData() { QList<biz_resource_customer_info> result; QSqlQuery query; bool isSuccess=query.exec("SELECT * FROM biz_resource_customer_info"); if (isSuccess) { while (query.next()) { biz_resource_customer_info info; info.id = query.value("id").toString(); info.customer_name = query.value("customer_name").toString(); result.append(info); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //计量检定业务-受检设备检定管理-检定数据管理检定数据历史修改记录[新增] bool BaseCommonApi::InsertModifyRecord(MeasureModifyRecord record) { QSqlQuery query; 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 currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); query.bindValue(":source_system", record.source_system); 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",currentDateTime); query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); } return isSuccess; }; //计量检定业务-受检设备检定管理-检定数据管理检定数据历史修改记录[查询] 参数 检定数据管理基础信息表id QList<MeasureModifyRecord> BaseCommonApi::getModifyRecord(QString data_id) { QList<MeasureModifyRecord> result; QSqlQuery query; query.prepare("SELECT * FROM biz_business_device_measure_modify_record WHERE data_id = :data_id "); query.bindValue(":data_id",data_id); if (query.exec()) { while (query.next()) { MeasureModifyRecord record; record.id = query.value("id").toString(); record.data_id = query.value("data_id").toString(); record.source_system = query.value("source_system").toString(); record.modify_content = query.value("modify_content").toString(); record.create_user_id = query.value("create_user_id").toString(); record.create_user_name = query.value("create_user_name").toString(); record.create_time = query.value("create_time").toDateTime(); record.update_time = query.value("update_time").toDateTime(); result.append(record); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //设备与装置-标准装置管理-核查数据管理核查数据历史修改记录 bool BaseCommonApi::InsertCheckModifyRecord(MeasureModifyRecord record) { QSqlQuery query; 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 currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", record.id); query.bindValue(":data_id", record.data_id); query.bindValue(":source_system", record.source_system); 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",currentDateTime); query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); } return isSuccess; }; //设备与装置-标准装置管理-核查数据管理核查数据历史修改记录[查询] 参数 检定数据管理基础信息表id QList<MeasureModifyRecord> BaseCommonApi::getMeasureModifyRecord(QString data_id) { QList<MeasureModifyRecord> result; QSqlQuery query; query.prepare("SELECT * FROM biz_equipment_standard_check_modify_record WHERE data_id = :data_id "); query.bindValue(":data_id",data_id); if (query.exec()) { while (query.next()) { MeasureModifyRecord record; record.id = query.value("id").toString(); record.data_id = query.value("data_id").toString(); record.source_system = query.value("source_system").toString(); record.modify_content = query.value("modify_content").toString(); record.create_user_id = query.value("create_user_id").toString(); record.create_user_name = query.value("create_user_name").toString(); record.create_time = query.value("create_time").toDateTime(); record.update_time = query.value("update_time").toDateTime(); result.append(record); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //保存log信息 //log文件 bool BaseCommonApi::SaveLogInfo(int pathIndex,QString Info) { // 获取应用程序的根目录 QString path = QCoreApplication::applicationDirPath(); //QString path ="C:\\AutoVerScheme"; switch (pathIndex) { case 0: path+="\\File\\sync_info.txt"; break; case 1: path+="\\File\\textlog.txt"; break; } QByteArray utf8Dat; QString Message=Info; QFile file(path); // 如果目录不存在,则创建目录 // 获取文件所在的目录 QDir logDir = QDir(QFileInfo(path).absolutePath()); if (!logDir.exists()) { if (!logDir.mkpath(".")) { qDebug() << "Failed to create log directory:" << logDir.absolutePath(); return false; } } if (!file.open(QIODevice::Append | QIODevice::Text)) { qDebug() << "无法打开文件:" << file.errorString(); QString str=file.errorString(); return false; } QTextStream out(&file); utf8Dat = Message.toUtf8(); out << QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss") << "\t" << utf8Dat << "\n"; file.close(); return true; }; //新增日志表数据 bool BaseCommonApi::InsertzdLog(zdLog log) { log.userid=temporary_user_id; QSqlQuery query; query.prepare("INSERT INTO zd_log(id,is_sync,sync_time,remark,userid,type,create_time,update_time) " " VALUES(:id,:is_sync,:sync_time,:remark,:userid,:type,:create_time,:update_time) "); QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", log.id); query.bindValue(":is_sync", log.is_sync); query.bindValue(":sync_time", log.sync_time.toString("yyyy-MM-dd HH:mm:ss")); query.bindValue(":remark", log.remark); query.bindValue(":userid", log.userid); query.bindValue(":type", log.type); query.bindValue(":create_time",currentDateTime); query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); } return isSuccess; }; //根据userid查询日志表数据 QList<zdLog> BaseCommonApi::getzdLogByuserId(QString userid) { userid=temporary_user_id; QList<zdLog> result; QSqlQuery query; query.prepare("SELECT * FROM zd_log WHERE userid = :userid "); query.bindValue(":userid",userid); if (query.exec()) { while (query.next()) { zdLog log; log.id = query.value("id").toString(); log.is_sync = query.value("is_sync").toString(); log.sync_time = query.value("sync_time").toDateTime(); log.remark = query.value("remark").toString(); log.type = query.value("type").toString(); log.create_time = query.value("create_time").toDateTime(); log.update_time = query.value("update_time").toDateTime(); result.append(log); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //新增数据同步表 bool BaseCommonApi::InsertzdDataSync(zdDataSync data) { data.userid=temporary_user_id; QSqlQuery query; query.prepare("INSERT INTO zd_data_sync(id,type,ssql,userid,remark,create_time,update_time,log_sync_id,sync_type) " " VALUES " " (:id,:type,:ssql,:userid,:remark,:create_time,:update_time,:log_sync_id,:sync_type) "); QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); // 绑定所有值 query.bindValue(":id", data.id); query.bindValue(":type", data.type); query.bindValue(":ssql", data.ssql); query.bindValue(":remark", data.remark); query.bindValue(":userid", data.userid); query.bindValue(":log_sync_id", data.log_sync_id); query.bindValue(":sync_type", data.sync_type); query.bindValue(":create_time",currentDateTime); query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert query failed: " << query.lastError().text(); } return isSuccess; }; //根据userid查询数据同步表 QList<zdDataSync> BaseCommonApi::getzdDataSyncByuserId(QString log_sync_id) { QList<zdDataSync> result; QSqlQuery query; query.prepare("SELECT * FROM zd_data_sync WHERE log_sync_id= :log_sync_id "); query.bindValue(":log_sync_id",log_sync_id); if (query.exec()) { while (query.next()) { zdDataSync data; data.id = query.value("id").toString(); data.type = query.value("type").toString(); data.ssql = query.value("ssql").toString(); data.remark = query.value("remark").toString(); data.userid = query.value("userid").toString(); data.log_sync_id = query.value("log_sync_id").toString(); data.sync_type = query.value("sync_type").toString(); data.create_time = query.value("create_time").toDateTime(); data.update_time = query.value("update_time").toDateTime(); result.append(data); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; }; //【查询】检定项0.02活塞式压力计数据(包含字典的字段都存为字典value) QMap<QString, QList<QStringList>> BaseCommonApi::getDeviceMeasureCalibratorPistonGauge(QString itemCatoryName,QString itemId,QMap<QString, QStringList> *headList) { QMap<QString, QList<QStringList>> DataMapList; QList<QStringList> resultData; QStringList result; resultData.clear(); QSqlQuery query; query.prepare("SELECT bbdmidpg.*,bbdmii.appearance_function_check,bbdmicp.indication_error,bbdmicp.measure_medium, " " bbdmicp.division,bbdmicp.deviation_and_switching,bbdmicp.display_value_one,bbdmicp.display_value_two,bbdmicp.display_value_three, " " bbdmicp.insulation_resistance,bbdmicp.appearance,bbdmicp.tightness,bbdmicp.pointer_deflection_stability," "bbdmidpg.create_time,bbdmidpg.update_time " " FROM biz_business_device_measure_item_data_piston_gauge bbdmidpg " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmidpg.item_id " " JOIN biz_business_device_measure_item_config_piston_gauge bbdmicp ON bbdmicp.item_id = bbdmidpg.item_id " " WHERE bbdmidpg.item_id = :itemId ORDER BY bbdmidpg.update_time DESC"); // 将参数绑定到占位符 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("indicating_value").toString());//标准器示值 result.append(query.value("return_error").toString());//回程误差允许值 result.append(query.value("friction_error").toString());//轻敲位移允许值 result.append(query.value("indicating_error").toString());//示值误差允许值 result.append(query.value("zero_position").toString());//零位是否带止销 result.append(query.value("measure_medium").toString());//检定介质(字典value) result.append(query.value("accuracy_class").toString());//准确度等级 result.append(query.value("maximum_error").toString());//最大允许误差 result.append(query.value("theoretical_output_value").toString());//理论输出值 result.append(query.value("theoretical_output_value_unit").toString());//理论输出值单位 result.append(query.value("appearance_function_check").toString());//外观及功能性检查(1/0) result.append(query.value("indication_error").toString());//示值误差、回程误差、轻敲位移 result.append(query.value("measure_medium").toString());//检定介质(字典value) result.append(query.value("division").toString());//分度值的五分之一 result.append(query.value("deviation_and_switching").toString());//设定点偏差及切换差 result.append(query.value("display_value_one").toString());//设定标准器示值1 result.append(query.value("display_value_two").toString());//设定标准器示值2 result.append(query.value("display_value_three").toString());//设定标准器示值3 result.append(query.value("insulation_resistance").toString());//绝缘电阻 result.append(query.value("appearance").toString());//外观 result.append(query.value("tightness").toString());//密封性 result.append(query.value("pointer_deflection_stability").toString());//指针偏转平稳性 result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } // *headList <<"序号"<<"检定项id"<<"标准器示值"<<"回程误差允许值"<<"轻敲位移允许值"<<"示值误差允许值"<<"零位是否带止销" // <<"检定介质"<<"准确度等级"<<"最大允许误差"<<"理论输出值"<<"理论输出值单位"<<"外观及功能性检查(1/0)"<<"示值误差、回程误差、轻敲位移" // <<"检定介质(字典value)"<<"分度值的五分之一"<<"创建时间"<<"更新时间"; //进行检定项目列头转换 DataMapList= GetDataReturnItemListByPistonGauge(itemCatoryName,resultData,DataMapList,headList); return DataMapList; }; //0.02压力表头 QMap<QString, QList<QStringList>> BaseCommonApi::GetDataReturnItemListByPistonGauge(QString itemCatoryName,QList<QStringList> ResultData,QMap<QString, QList<QStringList>> DataMapList,QMap<QString, QStringList> *HeadMapList) { QList<QStringList> IndicationErrorList; if(itemCatoryName.contains("一般压力表")){ for(const QStringList &row : ResultData) { QString VerificationItem=NULL; if (!row.isEmpty() && row[13] =="1") { VerificationItem = "示值误差/回程误差/轻敲位移"; //添加列头 QStringList head; head <<"序号"<<"标准器示值"<<"轻敲前示值-正"<<"轻敲前示值-反"<<"轻敲后示值-正" <<"轻敲后示值-反"<<"轻敲前后变动量-正"<<"轻敲前后变动量-反" ; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; // Data.append(row[12]); //外观及功能性检查 // Data.append(row[13]); //示值误差、回程误差、轻敲位移 // Data.append(row[11]); //理论输出值单位 // Data.append(row[14]); //检定介质 // Data.append(row[15]); //分度值的五分之一 Data.append(row[0]); //ID Data.append(row[2]); //标准器示值 Data.append(row[2]);//轻敲前示值-正 Data.append(row[2]);//"轻敲前示值-反" Data.append(row[2]);//轻敲后示值-正 Data.append(row[2]);//轻敲后示值-反 Data.append("0");//轻敲前后变动量-正 Data.append("0");//轻敲前后变动量-反 IndicationErrorList.append(Data); } } } if(IndicationErrorList.count()!=0){ DataMapList.insert("示值误差/回程误差/轻敲位移",IndicationErrorList); }; return DataMapList; }; //一般压力表 查询生成结果处理界面的头和数据 QMap<QString, QList<QStringList>> BaseCommonApi::getDeviceMeasureCalibratorPistonGaugeGenerate(QString itemCatoryName,QString itemId,QMap<QString, QStringList> *headList) { QMap<QString, QList<QStringList>> DataMapList; QList<QStringList> resultData; QStringList result; resultData.clear(); QSqlQuery query; query.prepare("SELECT bbdmidpg.*,bbdmii.appearance_function_check,bbdmicp.indication_error,bbdmicp.measure_medium, " " bbdmicp.division,bbdmicp.deviation_and_switching,bbdmicp.display_value_one,bbdmicp.display_value_two,bbdmicp.display_value_three, " " bbdmicp.insulation_resistance,bbdmicp.appearance,bbdmicp.tightness,bbdmicp.pointer_deflection_stability," " bbdmicp.accuracy_level_lower,bbdmicp.accuracy_level_upper" " FROM biz_business_device_measure_item_data_piston_gauge bbdmidpg " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmidpg.item_id " " JOIN biz_business_device_measure_item_config_piston_gauge bbdmicp ON bbdmicp.item_id = bbdmidpg.item_id " " WHERE bbdmidpg.item_id = :itemId ORDER BY bbdmidpg.update_time DESC"); // 将参数绑定到占位符 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("indicating_value").toString());//标准器示值 result.append(query.value("return_error").toString());//回程误差允许值 result.append(query.value("friction_error").toString());//轻敲位移允许值 result.append(query.value("indicating_error").toString());//示值误差允许值 result.append(query.value("zero_position").toString());//零位是否带止销 result.append(query.value("measure_medium").toString());//检定介质(字典value) result.append(query.value("accuracy_class").toString());//准确度等级 result.append(query.value("maximum_error").toString());//最大允许误差 result.append(query.value("theoretical_output_value").toString());//理论输出值 result.append(query.value("theoretical_output_value_unit").toString());//理论输出值单位 result.append(query.value("appearance_function_check").toString());//外观及功能性检查(1/0) result.append(query.value("indication_error").toString());//示值误差、回程误差、轻敲位移 result.append(query.value("measure_medium").toString());//检定介质(字典value) result.append(query.value("division").toString());//分度值的五分之一 result.append(query.value("deviation_and_switching").toString());//设定点偏差及切换差 result.append(query.value("display_value_one").toString());//设定标准器示值1 result.append(query.value("display_value_two").toString());//设定标准器示值2 result.append(query.value("display_value_three").toString());//设定标准器示值3 result.append(query.value("insulation_resistance").toString());//绝缘电阻 result.append(query.value("appearance").toString());//外观 result.append(query.value("tightness").toString());//密封性 result.append(query.value("pointer_deflection_stability").toString());//指针偏转平稳性 result.append(query.value("accuracy_level_lower").toString());//准确度等级(量程上限90%以下) result.append(query.value("accuracy_level_upper").toString());//准确度等级(量程上限90%以上) 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(); } // *headList <<"序号"<<"检定项id"<<"标准器示值"<<"回程误差允许值"<<"轻敲位移允许值"<<"示值误差允许值"<<"零位是否带止销" // <<"检定介质"<<"准确度等级"<<"最大允许误差"<<"理论输出值"<<"理论输出值单位"<<"外观及功能性检查(1/0)"<<"示值误差、回程误差、轻敲位移" // <<"检定介质(字典value)"<<"分度值的五分之一"<<"创建时间"<<"更新时间"; //进行检定项目列头转换 DataMapList= GetDataReturnItemListByPistonGaugeResult(itemCatoryName,resultData,DataMapList,headList); return DataMapList; }; QMap<QString, QList<QStringList>> BaseCommonApi::GetDataReturnItemListByPistonGaugeResult(QString itemCatoryName,QList<QStringList> ResultData,QMap<QString, QList<QStringList>> DataMapList,QMap<QString, QStringList> *HeadMapList) { QList<QStringList> IndicationErrorList; if(itemCatoryName.contains("一般压力表")){ for(const QStringList &row : ResultData) { QString VerificationItem=NULL; if (!row.isEmpty()) { VerificationItem = "项目"; //添加列头 QStringList head; head <<"项目-量程上限90%以下"<<"项目-量程上限90%以上"<<"示值误差允许值"<<"示值误差最大值"<<"轻敲位移允许值"<<"轻敲位移最大值" <<"回程误差允许值"<<"回程误差最大值"<<"结果"<<"输出备注"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[24]); //量程上限90%以下 Data.append(row[25]); //量程上限90%及以上 Data.append(row[5]);//示值误差允许值 Data.append("");//示值误差最大值 Data.append(row[4]);//轻敲位移允许值 Data.append("");//轻敲位移最大值 Data.append(row[3]);//回程误差允许值 Data.append("");//回程误差最大值 Data.append("");//结果 Data.append("");//输出备注 IndicationErrorList.append(Data); } } } if(IndicationErrorList.count()!=0){ DataMapList.insert("项目",IndicationErrorList); }; return DataMapList; } //测试界面 外观及功能性检查和检定数据头 DeviceMeasureCalibratorPistonGauge BaseCommonApi::getDeviceMeasureCalibratorPistonGaugeBystatus(QString itemId) { DeviceMeasureCalibratorPistonGauge result; QSqlQuery query; query.prepare("SELECT bbdmii.appearance_function_check,bbdmicp.appearance,bbdmicp.tightness,bbdmicp.insulation_resistance,bbdmicp.zero_drift,bbdmicp.range_unit,bbdmicp.measure_medium " " ,bbdmicp.division FROM biz_business_device_measure_item_data_piston_gauge bbdmidpg " " JOIN biz_business_device_measure_item_config_piston_gauge bbdmicp ON bbdmicp.item_id = bbdmidpg.item_id " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmidpg.item_id" " WHERE bbdmidpg.item_id = :itemId LIMIT 1"); // 将参数绑定到占位符 1763116518209597442 query.bindValue(":itemId", itemId); if (query.exec()) { while (query.next()) { result.appearance_function_check = query.value("appearance_function_check").toString();//外观及功能性检查(1/0) result.appearance = query.value("appearance").toString();//外观 result.tightness= query.value("tightness").toString();//密封性 result.insulation_resistance= query.value("insulation_resistance").toString();//绝缘电阻 result.pointer_deflection_stability = query.value("pointer_deflection_stability").toString();//指针偏转平稳性 result.zero_drift = query.value("zero_drift").toString();//零位飘移 result.measure_medium = query.value("measure_medium").toString();//检定介质(字典value) result.division = query.value("division").toString();//分度值的五分之一 } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } return result; } //自动检定数据结果保存 参数1:装置字典1,2,3 参数2:BaseClass父类, 子类赋值 bool BaseCommonApi::SearchSelectTable(QString id, BaseClass *object) { bool result = false; // 初始化为 false 或根据需要初始化为其他值 switch (id.toInt()) { case 1: { //多功能校准源 SaveDeviceMeasureCalibrator *recordCal = dynamic_cast<SaveDeviceMeasureCalibrator *>(object); if (recordCal != nullptr) { result = BaseCommonApi::InsertVerMultiCal(*recordCal); // 注意这里使用recordCal而不是recordGauge } else { // 处理转换失败的情况 result = false; } break; } case 2: { //直流稳压电源 bizBusinessDeviceMeasureDataDcPower *dcPower = dynamic_cast<bizBusinessDeviceMeasureDataDcPower *>(object); if (dcPower != nullptr) { result = BaseCommonApi::InsertbizBusinessDeviceMeasureDataDcPower(*dcPower); } else { // 处理转换失败的情况 result = false; } break; } case 4: { //0.02压力活塞计 DeviceMeasureDataPistonGauge *recordGauge = dynamic_cast<DeviceMeasureDataPistonGauge *>(object); if (recordGauge != nullptr) { result = BaseCommonApi::InsertDeviceMeasureDataPistonGauge(*recordGauge); } else { // 处理转换失败的情况 result = false; } break; } case 13: { //示波器 DeviceOscilloscopeCalibration *recordGauge = dynamic_cast<DeviceOscilloscopeCalibration *>(object); if (recordGauge != nullptr) { result = BaseCommonApi::InsertDeviceOscilloscopeCalibration(*recordGauge); } else { // 处理转换失败的情况 result = false; } break; } // 可能还有其他的case default: result = false; break; } return result; // 返回结果 }; //【结果保存】压力 bool BaseCommonApi::InsertDeviceMeasureDataPistonGauge(DeviceMeasureDataPistonGauge gauge) { QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_data_piston_gauge " "(id, data_id, data_type, data_category, indicating_value, " "before_friction_forward_stroke, before_friction_reverse_stroke, " "after_friction_forward_stroke, after_friction_reverse_stroke, " "variation_forward_stroke, variation_reverse_stroke, " "theoretical_output_value, first_forward_stroke, first_reverse_stroke, " "second_forward_stroke, second_reverse_stroke, third_forward_stroke, " "third_reverse_stroke, indicating_error, return_error, average_forward_stroke, " "average_reverse_stroke, average_value, average_return_error, item, " "max_indicating_error, max_return_error, max_friction_error, maximum_error_absolute, " "forward_stroke_switch_value, reverse_stroke_switch_value, point_deviation, " "different_gap, max_point_deviation, allow_point_deviation, max_different_gap, " "allow_different_gap, zero_drift_one, zero_drift_two, zero_drift_three, " "zero_drift_four, zero_drift_five, intercept_a, slope_b, sensitivity_b, " "repeatability_r, hysteresis_h, linear_l, basic_error_a, periodic_stability_s_b, " "create_time, update_time) " "VALUES (:id, :data_id, :data_type, :data_category, :indicating_value, " ":before_friction_forward_stroke, :before_friction_reverse_stroke, " ":after_friction_forward_stroke, :after_friction_reverse_stroke, " ":variation_forward_stroke, :variation_reverse_stroke, " ":theoretical_output_value, :first_forward_stroke, :first_reverse_stroke, " ":second_forward_stroke, :second_reverse_stroke, :third_forward_stroke, " ":third_reverse_stroke, :indicating_error, :return_error, :average_forward_stroke, " ":average_reverse_stroke, :average_value, :average_return_error, :item, " ":max_indicating_error, :max_return_error, :max_friction_error, :maximum_error_absolute, " ":forward_stroke_switch_value, :reverse_stroke_switch_value, :point_deviation, " ":different_gap, :max_point_deviation, :allow_point_deviation, :max_different_gap, " ":allow_different_gap, :zero_drift_one, :zero_drift_two, :zero_drift_three, " ":zero_drift_four, :zero_drift_five, :intercept_a, :slope_b, :sensitivity_b, " ":repeatability_r, :hysteresis_h, :linear_l, :basic_error_a, :periodic_stability_s_b, " ":create_time, :update_time)"); //// 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", gauge.id); query.bindValue(":data_id", gauge.data_id); query.bindValue(":data_type", gauge.data_type); query.bindValue(":data_category", gauge.data_category); query.bindValue(":indicating_value", gauge.indicating_value); query.bindValue(":before_friction_forward_stroke", gauge.before_friction_forward_stroke); query.bindValue(":before_friction_reverse_stroke", gauge.before_friction_reverse_stroke); query.bindValue(":after_friction_forward_stroke", gauge.after_friction_forward_stroke); query.bindValue(":after_friction_reverse_stroke", gauge.after_friction_reverse_stroke); query.bindValue(":variation_forward_stroke", gauge.variation_forward_stroke); query.bindValue(":variation_reverse_stroke", gauge.variation_reverse_stroke); query.bindValue(":theoretical_output_value", gauge.theoretical_output_value); query.bindValue(":first_forward_stroke", gauge.first_forward_stroke); query.bindValue(":first_reverse_stroke", gauge.first_reverse_stroke); query.bindValue(":second_forward_stroke", gauge.second_forward_stroke); query.bindValue(":second_reverse_stroke", gauge.second_reverse_stroke); query.bindValue(":third_forward_stroke", gauge.third_forward_stroke); query.bindValue(":third_reverse_stroke", gauge.third_reverse_stroke); query.bindValue(":indicating_error", gauge.indicating_error); query.bindValue(":return_error", gauge.return_error); query.bindValue(":average_forward_stroke", gauge.average_forward_stroke); query.bindValue(":average_reverse_stroke", gauge.average_reverse_stroke); query.bindValue(":average_value", gauge.average_value); query.bindValue(":average_return_error", gauge.average_return_error); query.bindValue(":item", gauge.item); query.bindValue(":max_indicating_error", gauge.max_indicating_error); query.bindValue(":max_return_error", gauge.max_return_error); query.bindValue(":max_friction_error", gauge.max_friction_error); query.bindValue(":maximum_error_absolute", gauge.maximum_error_absolute); query.bindValue(":forward_stroke_switch_value", gauge.forward_stroke_switch_value); query.bindValue(":reverse_stroke_switch_value", gauge.reverse_stroke_switch_value); query.bindValue(":point_deviation", gauge.point_deviation); query.bindValue(":different_gap", gauge.different_gap); query.bindValue(":max_point_deviation", gauge.max_point_deviation); query.bindValue(":allow_point_deviation", gauge.allow_point_deviation); query.bindValue(":max_different_gap", gauge.max_different_gap); query.bindValue(":allow_different_gap", gauge.allow_different_gap); query.bindValue(":zero_drift_one", gauge.zero_drift_one); query.bindValue(":zero_drift_two", gauge.zero_drift_two); query.bindValue(":zero_drift_three", gauge.zero_drift_three); query.bindValue(":zero_drift_four", gauge.zero_drift_four); query.bindValue(":zero_drift_five", gauge.zero_drift_five); query.bindValue(":intercept_a", gauge.intercept_a); query.bindValue(":slope_b", gauge.slope_b); query.bindValue(":sensitivity_b", gauge.sensitivity_b); query.bindValue(":repeatability_r", gauge.repeatability_r); query.bindValue(":hysteresis_h", gauge.hysteresis_h); query.bindValue(":linear_l", gauge.linear_l); query.bindValue(":basic_error_a", gauge.basic_error_a); query.bindValue(":periodic_stability_s_b", gauge.periodic_stability_s_b); query.bindValue(":create_time", currentDateTime); query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert data failed: " << query.lastError().text(); } return isSuccess; }; //【查询】 0.02压力结果表数据 QList<QStringList> BaseCommonApi::getDeviceMeasureDataPistonGauge(QString data_id,QStringList *HeadList) { QList<QStringList> resultData; QStringList result; resultData.clear(); QSqlQuery query; query.prepare("SELECT * FROM biz_business_device_measure_data_piston_gauge WHERE data_id= :data_id "); // 将参数绑定到占位符 query.bindValue(":data_id", data_id); if (query.exec()) { while (query.next()) { result.clear(); result.append(query.value("id").toString()); result.append(query.value("data_id").toString()); //检定数据管理基础信息表id result.append(query.value("data_type").toString());//检定数据类型(电接点一般压力表一个检定数据中区分两个表格)(字典code) result.append(query.value("data_category").toString());//检定数据类别(1检定数据,2计算结果数据) result.append(query.value("indicating_value").toString());//标准器示值 result.append(query.value("before_friction_forward_stroke").toString());//轻敲前被检设备示值-正行程 result.append(query.value("before_friction_reverse_stroke").toString());//轻敲前被检设备示值-反行程 result.append(query.value("after_friction_forward_stroke").toString());//轻敲后被检设备示值-正行程 result.append(query.value("after_friction_reverse_stroke").toString());//轻敲后被检设备示值-反行程 result.append(query.value("variation_forward_stroke").toString());//轻敲前后变动量-正行程 result.append(query.value("variation_reverse_stroke").toString());//轻敲前后变动量-反行程 result.append(query.value("theoretical_output_value").toString());//理论输出值 result.append(query.value("first_forward_stroke").toString());//第一次正行程 result.append(query.value("first_reverse_stroke").toString());//第一次反行程 result.append(query.value("second_forward_stroke").toString());//第二次正行程 result.append(query.value("second_reverse_stroke").toString());//第二次反行程 result.append(query.value("third_forward_stroke").toString());//第三次正行程 result.append(query.value("third_reverse_stroke").toString());//第三次反行程 result.append(query.value("indicating_error").toString());//示值误差 result.append(query.value("return_error").toString());//回程误差 result.append(query.value("average_forward_stroke").toString());//正行程平均值 result.append(query.value("average_reverse_stroke").toString());//反行程平均值 result.append(query.value("average_value").toString());//平均值 result.append(query.value("average_return_error").toString());//回程误差平均值 result.append(query.value("item").toString());//项目(结果表) result.append(query.value("max_indicating_error").toString());//示值误差最大值(结果表) result.append(query.value("max_return_error").toString());//回程误差最大值(结果表) result.append(query.value("max_friction_error").toString());//轻敲位移最大值(结果表) result.append(query.value("maximum_error_absolute").toString());//最大允许误差绝对值 result.append(query.value("forward_stroke_switch_value").toString());//正行程切换值(电接点一般压力表) result.append(query.value("reverse_stroke_switch_value").toString());//反行程切换值(电接点一般压力表) result.append(query.value("point_deviation").toString());//设定点偏差(电接点一般压力表) result.append(query.value("different_gap").toString());//切换差(电接点一般压力表) result.append(query.value("max_point_deviation").toString());//最大设定点偏差绝对值(结果表)(电接点一般压力表的第2个结果表) result.append(query.value("allow_point_deviation").toString());//允许设定点偏差绝对值(结果表)(电接点一般压力表的第2个结果表) result.append(query.value("max_different_gap").toString());//最大切换差(结果表)(电接点一般压力表的第2个结果表) result.append(query.value("allow_different_gap").toString());//允许切换差(结果表)(电接点一般压力表的第2个结果表) result.append(query.value("zero_drift_one").toString());//零位漂移(数字压力计手工输入的第1个示值) result.append(query.value("zero_drift_two").toString());//零位漂移(数字压力计手工输入的第2个示值) result.append(query.value("zero_drift_three").toString());//零位漂移(数字压力计手工输入的第3个示值) result.append(query.value("zero_drift_four").toString());//零位漂移(数字压力计手工输入的第4个示值) result.append(query.value("zero_drift_five").toString());//零位漂移(数字压力计手工输入的第5个示值) result.append(query.value("intercept_a").toString());//截距a(结果表) result.append(query.value("slope_b").toString());//斜率b(结果表) result.append(query.value("sensitivity_b").toString());//灵敏度b(结果表) result.append(query.value("repeatability_r").toString());//重复性ξR(结果表) result.append(query.value("hysteresis_h").toString());//迟滞ξH(结果表) result.append(query.value("linear_l").toString());//线性ξL(结果表) result.append(query.value("basic_error_a").toString());//基本误差A(结果表) result.append(query.value("periodic_stability_s_b").toString());//周期稳定性Sb(结果表) 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(); } *HeadList <<"序号"<<"检定数据管理基础信息表id"<<"检定数据类型"<<"标准器示值"<<"轻敲前被检设备示值-正行程"<<"轻敲前被检设备示值-反行程"<<"轻敲后被检设备示值-正行程" <<"轻敲后被检设备示值-反行程"<<"理论输出值"<<"第一次正行程"<<"第一次反行程"<<"第二次正行程"<<"第二次反行程"<<"第三次正行程" <<"第三次反行程"<<"示值误差"<<"回程误差"<<"正行程平均值"<<"反行程平均值"<<"平均值"<<"回程误差平均值"<<"项目(结果表)"<<"示值误差最大值(结果表)" <<"轻敲位移最大值(结果表)"<<"最大允许误差绝对值"<<"正行程切换值(电接点一般压力表)"<<"反行程切换值(电接点一般压力表)" <<"设定点偏差(电接点一般压力表)"<<"切换差(电接点一般压力表)"<<"最大设定点偏差绝对值(结果表)(电接点一般压力表的第2个结果表)"<<"允许设定点偏差绝对值(结果表)(电接点一般压力表的第2个结果表)" <<"最大切换差(结果表)(电接点一般压力表的第2个结果表)"<<"允许切换差(结果表)(电接点一般压力表的第2个结果表)"<<"零位漂移(数字压力计手工输入的第1个示值)" <<"零位漂移(数字压力计手工输入的第2个示值)"<<"零位漂移(数字压力计手工输入的第3个示值)"<<"零位漂移(数字压力计手工输入的第4个示值)" <<"零位漂移(数字压力计手工输入的第5个示值)"<<"截距a(结果表)"<<"斜率b(结果表)"<<"灵敏度b(结果表)"<<"重复性ξR(结果表)"<<"迟滞ξH(结果表)" <<"线性ξL(结果表)"<<"基本误差A(结果表)"<<"周期稳定性Sb(结果表)"<<"创建日期"<<"更新日期"; return resultData; }; //检定数据管理-检定结果信息-直流稳压电源 QList<QStringList> BaseCommonApi::getbizBusinessDeviceMeasureDataDcPower(QString data_id,QStringList *HeadList) { QList<QStringList> resultData; QStringList result; resultData.clear(); QSqlQuery query; query.prepare("SELECT * FROM biz_business_device_measure_data_dc_power WHERE data_id= :data_id "); // 将参数绑定到占位符 query.bindValue(":data_id", data_id); if (query.exec()) { while (query.next()) { result.clear(); result.append(query.value("id").toString()); result.append(query.value("data_id").toString());//检定数据管理基础信息表id result.append(query.value("data_type").toString());//检定数据类型(一个检定数据中区分多个表格)(字典code) result.append(query.value("data_type_type").toString());//检定项数据类型的类型(一个检定项中一个表格切换的类型)(字典value) result.append(query.value("output_channel").toString());//输出通道 result.append(query.value("unit").toString());//单位 result.append(query.value("voltage_regulator_output_value").toString());//调压器输出值 result.append(query.value("voltage_max_difference").toString());//被检电源输出电压最大差值 result.append(query.value("technical_index").toString());//被检电源技术指标/仪器技术指标 result.append(query.value("technical_index_symbol").toString());//被检电源技术指标/仪器技术指标前符号 result.append(query.value("voltage_regulation").toString());//电源电压调整率 result.append(query.value("load_situation").toString());//负载情况 result.append(query.value("voltage_output_value").toString());//被检电源输出电压值 result.append(query.value("voltage_difference").toString());//电压差值 result.append(query.value("load_regulation").toString());//负载调整率 result.append(query.value("measure_indication_value").toString());//被检表示值 result.append(query.value("standard_value").toString());//标准值 result.append(query.value("maximum_error").toString());//最大允许误差 result.append(query.value("maximum_error_unit").toString());//最大允许误差单位 result.append(query.value("absolute_error").toString());//绝对误差 result.append(query.value("resolution").toString());//分辨力 result.append(query.value("standard_voltage_value").toString());//标准电压值 result.append(query.value("standard_voltage_value_unit").toString());//标准电压值单位 result.append(query.value("standard_resistance_value").toString());//标准电阻值 result.append(query.value("standard_resistance_value_unit").toString());//标准电阻值单位 result.append(query.value("ripple_voltage").toString());//纹波电压 result.append(query.value("output_voltage_max_change").toString());//输出电压最大变化值 result.append(query.value("short_term_stability").toString());//短期稳定性 result.append(query.value("exceed_mark").toString());//超出范围标*(1/0) result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); } } //待修改 *HeadList <<"序号"; } //【查询】检定项直流稳压电源 QMap<QString,QList<QStringList>> BaseCommonApi::getDeviceMeasureItemDataDcPower(QString itemCatoryName,QString itemId,QMap<QString, QStringList> *headList){ QMap<QString, QList<QStringList>> DataMapList; QList<QStringList> resultData; QStringList result; resultData.clear(); QSqlQuery query; query.prepare( " SELECT bbdmiddp.*,bbdmii.appearance_function_check,bbdmii.voltage_regulation,bbdmii.load_regulation," " bbdmii.voltage_represent_error,bbdmii.current_represent_error_direct,bbdmii.current_represent_error_indirect," " bbdmii.ripple_voltage,bbdmii.voltage_output_stability " " FROM biz_business_device_measure_item_data_dc_power bbdmiddp " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmiddp.item_id " " WHERE bbdmiddp.item_id = :itemId " " ORDER BY bbdmiddp.update_time DESC "); // 将参数绑定到占位符 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("data_type").toString());//检定项数据类型(一个检定项中区分两个表格)(字典code) result.append(query.value("data_type_type").toString());//检定项数据类型的类型(一个检定项中一个表格切换的类型)(字典code) result.append(query.value("output_channel").toString());//输出通道 result.append(query.value("unit").toString());//单位 result.append(query.value("voltage_regulator_output_value").toString());//调压器输出值 result.append(query.value("technical_index").toString());//被检电源技术指标/仪器技术指标 result.append(query.value("technical_index_symbol").toString());//被检电源技术指标/仪器技术指标前符号 result.append(query.value("load_situation").toString());//负载情况 result.append(query.value("measure_indication_value").toString());//被检表示值 result.append(query.value("full_scale_value").toString());//指针式仪表满量程值 result.append(query.value("standard_resistance_value").toString());//标准电阻值 result.append(query.value("standard_resistance_value_unit").toString());//标准电阻值单位 result.append(query.value("error_param_a").toString());//误差参数a result.append(query.value("accuracy_a").toString());//准确度a result.append(query.value("error_param_b").toString());//误差参数b result.append(query.value("maximum_error").toString());//最大允许误差 result.append(query.value("resolution").toString());//分辨力 result.append(query.value("appearance_function_check").toString());//外观及功能性检查(1/0) result.append(query.value("voltage_regulation").toString());//电源电压调整率(1/0)(直流稳压电源) result.append(query.value("load_regulation").toString());//负载调整率(1/0)(直流稳压电源) result.append(query.value("voltage_represent_error").toString());//电压表示值误差(1/0)(直流稳压电源) result.append(query.value("current_represent_error_direct").toString());//电流表示值误差(直接测量)(1/0)(直流稳压电源) result.append(query.value("current_represent_error_indirect").toString());//电流表示值误差(间接测量)(1/0)(直流稳压电源) result.append(query.value("ripple_voltage").toString());//纹波电压(1/0)(直流稳压电源) result.append(query.value("voltage_output_stability").toString());//输出电压短期稳定性(1/0)(直流稳压电源) 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= GetDataReturnItemListByDcPower(itemCatoryName,resultData,DataMapList,headList); return DataMapList; }; //直流稳压电源 检定项头 QMap<QString, QList<QStringList>> BaseCommonApi::GetDataReturnItemListByDcPower(QString itemCatoryName,QList<QStringList> ResultData,QMap<QString, QList<QStringList>> DataMapList,QMap<QString, QStringList> *HeadMapList){ QList<QStringList> VpsAdjustmentRateList; QList<QStringList> LoadAdjustmentRateList; QList<QStringList> VoltageIndicationErrorList; QList<QStringList> CurrentIndicationErrorDirectList; QList<QStringList> CurrentIndicationErrorIndirectList; QList<QStringList> RippleVoltageList; QList<QStringList> ShortTermStabilityVoltageList; if(itemCatoryName.contains("直流稳压电源")){ for(const QStringList &row : ResultData) { QString VerificationItem=NULL; if (!row.isEmpty() && row[20]=="1" && row[2] == "1") { VerificationItem = "电源电压调整率"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"输出通道"<<"单位"<<"调压器输出值" <<"被检电源输出电压值"<<"被检电源输出电压最大差值"<<"被检电源技术指标"<<"电源电压调整率" ; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[4]);//输出通道 Data.append(row[5]);//单位 Data.append(row[6]);//调压器输出值 Data.append("");//被检电源输出电压值 Data.append("");//被检电源输出电压最大差值 公式 Data.append(row[8] + row[7]);//被检电源技术指标 Data.append("");//电源电压调整率 公式 VpsAdjustmentRateList.append(Data); }else if(!row.isEmpty() && row[21]=="1" && row[2] =="2"){ VerificationItem = "负载调整率"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"输出通道"<<"单位"<<"负载情况" <<"被检电源输出电压值"<<"电压差值"<<"被检电源技术指标"<<"负载调整率" ; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[4]);//输出通道 Data.append(row[5]);//单位 Data.append(row[9]);//负载情况 Data.append("");//被检电源输出电压值 Data.append("");//电压差值 Data.append(row[8] + row[7]);//被检电源技术指标 Data.append("");//负载调整率 LoadAdjustmentRateList.append(Data); }else if(!row.isEmpty() && row[22]=="1" && row[2] =="3"){ VerificationItem = "电压示值误差"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"输出通道"<<"单位"<<"被检表示值" <<"标准值"<<"最大允许误差"<<"绝对误差" ; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[4]);//输出通道 Data.append(row[5]);//单位 Data.append(row[10]);//被检表示值 Data.append("");//标准值 Data.append(row[17]);//最大允许误差 Data.append("");//绝对误差 VoltageIndicationErrorList.append(Data); }else if(!row.isEmpty() && row[23]=="1" && row[2] =="4"){ VerificationItem = "电流示值误差(直接测量)"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"输出通道"<<"单位"<<"被检表示值" <<"标准值"<<"最大允许误差"<<"绝对误差" ; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[4]);//输出通道 Data.append(row[5]);//单位 Data.append(row[10]);//被检表示值 Data.append("");//标准值 Data.append(row[17]);//最大允许误差 Data.append("");//绝对误差 CurrentIndicationErrorDirectList.append(Data); }else if(!row.isEmpty() && row[24]=="1" && row[2] =="5"){ VerificationItem = "电流示值误差(间接测量)"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"输出通道"<<"单位"<<"被检表示值" <<"标准电压值"<<"标准电阻值"<<"标准值"<<"最大允许误差"<<"绝对误差" ; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[4]);//输出通道 Data.append(row[5]);//单位 Data.append(row[10]);//被检表示值 Data.append("");//标准电压值 Data.append(row[12]);//标准电阻值 Data.append("");//标准值 Data.append(row[17]);//最大允许误差 Data.append("");//绝对误差 CurrentIndicationErrorIndirectList.append(Data); }else if(!row.isEmpty() && row[25]=="1" && row[2] =="6"){ VerificationItem = "纹波电压"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"输出通道"<<"单位"<<"被检电源技术指标"<<"纹波电压" ; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[4]);//输出通道 Data.append(row[5]);//单位 Data.append(row[8] + row[7]);//被检电源技术指标 Data.append("");//纹波电压 RippleVoltageList.append(Data); }else if(!row.isEmpty() && row[25]=="1" && row[2] =="7"){ VerificationItem = "输出电压短期稳定性"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"输出通道"<<"单位"<<"被测电源输出电压"<<"输出电压最大变化值" <<"仪器技术指标"<<"短期稳定性"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[4]);//输出通道 Data.append(row[5]);//单位 Data.append("");//被测电源输出电压 Data.append("");//输出电压最大变化值 Data.append(row[8] + row[7]);//仪器技术指标 Data.append("");//短期稳定性 ShortTermStabilityVoltageList.append(Data); } } } if(VpsAdjustmentRateList.count()!=0){ DataMapList.insert("直流稳压电源",VpsAdjustmentRateList); }; if(LoadAdjustmentRateList.count()!=0){ DataMapList.insert("负载调整率",LoadAdjustmentRateList); }; if(VoltageIndicationErrorList.count()!=0){ DataMapList.insert("电压示值误差",VoltageIndicationErrorList); }; if(CurrentIndicationErrorDirectList.count()!=0){ DataMapList.insert("电流示值误差(直接测量)",CurrentIndicationErrorDirectList); }; if(CurrentIndicationErrorIndirectList.count()!=0){ DataMapList.insert("电流示值误差(间接测量)",CurrentIndicationErrorIndirectList); }; if(RippleVoltageList.count()!=0){ DataMapList.insert("纹波电压",RippleVoltageList); }; if(ShortTermStabilityVoltageList.count()!=0){ DataMapList.insert("输出电压短期稳定性",ShortTermStabilityVoltageList); }; return DataMapList; }; //【结果保存】直流稳压电源 bool BaseCommonApi::InsertbizBusinessDeviceMeasureDataDcPower(bizBusinessDeviceMeasureDataDcPower power) { QSqlQuery query; query.prepare( "INSERT INTO biz_business_device_measure_data_dc_power " "(id, data_id, data_type, data_type_type, output_channel, unit, voltage_regulator_output_value, voltage_max_difference, " "technical_index, technical_index_symbol, voltage_regulation, load_situation, voltage_output_value, voltage_difference, " "load_regulation, measure_indication_value, standard_value, maximum_error, maximum_error_unit, absolute_error, resolution, " "standard_voltage_value, standard_voltage_value_unit, standard_resistance_value, standard_resistance_value_unit, ripple_voltage, " "output_voltage_max_change, short_term_stability, exceed_mark, create_time, update_time) " "VALUES " "(:id, :data_id, :data_type, :data_type_type, :output_channel, :unit, :voltage_regulator_output_value, :voltage_max_difference, " ":technical_index, :technical_index_symbol, :voltage_regulation, :load_situation, :voltage_output_value, :voltage_difference, " ":load_regulation, :measure_indication_value, :standard_value, :maximum_error, :maximum_error_unit, :absolute_error, :resolution, " ":standard_voltage_value, :standard_voltage_value_unit, :standard_resistance_value, :standard_resistance_value_unit, :ripple_voltage, " ":output_voltage_max_change, :short_term_stability, :exceed_mark, :create_time, :update_time)" ); QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", power.id); query.bindValue(":data_id", power.data_id); query.bindValue(":data_type", power.data_type); query.bindValue(":data_type_type", power.data_type_type); query.bindValue(":output_channel", power.output_channel); query.bindValue(":unit", power.unit); query.bindValue(":voltage_regulator_output_value", power.voltage_regulator_output_value); query.bindValue(":voltage_max_difference", power.voltage_max_difference); query.bindValue(":technical_index", power.technical_index); query.bindValue(":technical_index_symbol", power.technical_index_symbol); query.bindValue(":voltage_regulation", power.voltage_regulation); query.bindValue(":load_situation", power.load_situation); query.bindValue(":voltage_output_value", power.voltage_output_value); query.bindValue(":voltage_difference", power.voltage_difference); query.bindValue(":load_regulation", power.load_regulation); query.bindValue(":measure_indication_value", power.measure_indication_value); query.bindValue(":standard_value", power.standard_value); query.bindValue(":maximum_error", power.maximum_error); query.bindValue(":maximum_error_unit", power.maximum_error_unit); query.bindValue(":absolute_error", power.absolute_error); query.bindValue(":resolution", power.resolution); query.bindValue(":standard_voltage_value", power.standard_voltage_value); query.bindValue(":standard_voltage_value_unit", power.standard_voltage_value_unit); query.bindValue(":standard_resistance_value", power.standard_resistance_value); query.bindValue(":standard_resistance_value_unit", power.standard_resistance_value_unit); query.bindValue(":ripple_voltage", power.ripple_voltage); query.bindValue(":output_voltage_max_change", power.output_voltage_max_change); query.bindValue(":short_term_stability", power.short_term_stability); query.bindValue(":exceed_mark", power.exceed_mark); query.bindValue(":create_time", currentDateTime); query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert data failed: " << query.lastError().text(); } return isSuccess; }; //检定项 示波器检定装置 QMap<QString, QList<QStringList>> BaseCommonApi::getDeviceOscilloscopeCalibration(QString itemCatoryName,QString itemId,QMap<QString, QStringList> *headList) { QMap<QString, QList<QStringList>> DataMapList; QList<QStringList> resultData; QStringList result; resultData.clear(); QSqlQuery query; query.prepare("SELECT * FROM biz_business_device_measure_item_data_oscilloscope bbdmido" " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmido.item_id " " WHERE bbdmido.item_id = :itemId ORDER BY bbdmido.update_time DESC"); // 将参数绑定到占位符 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("time_base").toString());//时基 result.append(query.value("current_gain").toString());//直流增益(示波器-数字) result.append(query.value("current_bias").toString());//直流偏置(示波器-数字) result.append(query.value("band_width").toString());//频带宽度 (示波器-数字/模拟) result.append(query.value("trigger_sensitivity").toString());//触发灵敏度(示波器-数字/模拟) result.append(query.value("rise_time").toString());//上升时间(示波器-数字/模拟) result.append(query.value("input_resistance").toString());//输入电阻 (示波器-数字/模拟) result.append(query.value("calibrating_signal").toString());//校准信号(示波器-数字/模拟) result.append(query.value("scan_time_coefficient").toString());//扫描时间系数及扩展(示波器-模拟) result.append(query.value("cycle_signal").toString());//周期时标信号 result.append(query.value("cycle_signal_unit").toString());//周期时标信号单位 result.append(query.value("technical_index").toString());//技术指标 result.append(query.value("technical_index_unit").toString());//技术指标单位 result.append(query.value("thoroughfare").toString());//通道 result.append(query.value("impedance").toString());//阻抗 result.append(query.value("impedance_unit").toString());//阻抗单位 result.append(query.value("vertical_deflect_coefficient").toString());//垂直偏转系数/div result.append(query.value("vertical_deflect_coefficient_unit").toString());//垂直偏转系数单位 result.append(query.value("standard_value").toString());//标准值 result.append(query.value("standard_value_unit").toString());//标准值单位 result.append(query.value("band_width").toString());//频带宽度 result.append(query.value("band_width_unit").toString());//频带宽度单位 result.append(query.value("amplitude").toString());//幅度 result.append(query.value("amplitude_unit").toString());//幅度单位 result.append(query.value("trigger_type").toString());//触发类型 result.append(query.value("signal_frequency").toString());//信号频率 result.append(query.value("nominal_value").toString());//标称值 result.append(query.value("nominal_value_unit").toString());//标称值单位 result.append(query.value("data_type").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= GetDataReturnItemListByOscilloscope(itemCatoryName,resultData,DataMapList,headList); return DataMapList; }; QMap<QString, QList<QStringList>> BaseCommonApi::GetDataReturnItemListByOscilloscope(QString itemCatoryName,QList<QStringList> ResultData,QMap<QString, QList<QStringList>> DataMapList,QMap<QString, QStringList> *HeadMapList) { QList<QStringList> time_baseList; QList<QStringList> Current_gainList; QList<QStringList> Current_biasList; QList<QStringList> band_widthList; QList<QStringList> trigger_sensitivity; QList<QStringList> rise_timeList; QList<QStringList> input_resistanceList; QList<QStringList> calibrating_signalList; if(itemCatoryName.contains("数字示波器")){ for(const QStringList &row : ResultData) { QString VerificationItem=NULL; QString CHNAME="CH1"; if (!row.isEmpty() && row[2]=="1" && row[30] =="1") { VerificationItem = "时基"; QStringList head; head <<"序号"<<"检定项目"<<"周期时标信号"<<"时基绝对误差△T/ns"<<"时基相对误差△δ" <<"技术指标"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(VerificationItem); //检定项目 Data.append(row[11]+row[12]); //周期时标信号 Data.append("");//时基绝对误差△T/ns Data.append("");//时基相对误差△δ Data.append("");//技术指标 Data.append("");//结论 time_baseList.append(Data); } if (!row.isEmpty() && row[3]=="1" && row[30] =="2") { VerificationItem = "直流增益"; QStringList head; //添加列头 head <<"序号"<<"检定项目"<<"通道"<<"阻抗" <<"幅度/DIV" <<"标准值" <<"单位" <<"测量值"<<"相对误差"<<"技术指标" <<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(VerificationItem); //检定项目 Data.append(row[15]);//通道 Data.append(row[16]+row[17]);//阻抗 Data.append(row[17]);//垂直偏转系数(/div) Data.append(row[28]);//标准值 Data.append(row[29]);//标准值单位 Data.append("");//测量值 Data.append("");//相对误差 Data.append(row[13]);//技术指标 Data.append("");//结论 Current_gainList.append(Data); } if (!row.isEmpty()&& row[4]=="1" && row[30] =="3") { VerificationItem = "直流偏置"; QStringList head; //添加列头 head <<"序号"<<"检定项目"<<"通道"<<"阻抗"<<"垂直偏转系数(/div)"<<"标准值" <<"测量值"<<"误差"<<"相对误差"<<"技术指标" <<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(VerificationItem); //检定项目 Data.append(row[15]);//通道 Data.append(row[16]+row[17]);//阻抗 Data.append(row[17]);//垂直偏转系数(/div) Data.append(row[19]);//标准值 Data.append("");//测量值 Data.append("");//误差 Data.append("");//相对误差 Data.append(row[13]);//技术指标 Data.append("");//结论 Current_biasList.append(Data); } if (!row.isEmpty() && row[5]=="1" && row[30] =="4") { VerificationItem = "频带宽度"; QStringList head; //添加列头 head <<"序号"<<"检定项目"<<"通道"<<"阻抗"<<"垂直偏转系数(/div)" << "频带宽度" <<"参考幅度" <<"参考幅度单位" <<"测量幅度" <<"测量幅度单位" <<"分贝数(dB)" <<"技术指标" << "结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(VerificationItem); //检定项目 Data.append(row[15]);//通道 Data.append(row[16]+row[17]);//阻抗 Data.append(row[17]);//垂直偏转系数(/div) Data.append(row[22]);//频带宽度 Data.append("");//参考幅度 Data.append("");//参考幅度单位 Data.append("");//测量幅度 Data.append("");//测量幅度单位 Data.append("");//分贝数(dB) Data.append(row[13]);//技术指标 Data.append("");//结论 band_widthList.append(Data); } if (!row.isEmpty() && row[6]=="1" && row[30] =="5") { VerificationItem = "触发灵敏度"; QStringList head; //添加列头 head <<"序号"<<"检定项目"<<"通道"<<"触发类型"<<"信号频率" << "标称值" <<"测量值" <<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(VerificationItem); //检定项目 Data.append(row[15]);//通道 Data.append(row[26]);//触发类型 Data.append(row[27]);//信号频率 Data.append(row[28]);//标称值 Data.append("");//测量值 trigger_sensitivity.append(Data); } if (!row.isEmpty() && row[7]=="1" && row[30] =="6") { VerificationItem = "上升时间"; QStringList head; //添加列头 head <<"序号"<<"检定项目"<<"通道"<<"阻抗"<<"垂直偏转系数(/div)" <<"测量值"<<"测量值单位"<<"技术指标" <<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(VerificationItem); //检定项目 Data.append(row[15]);//通道 Data.append(row[16]+row[17]);//阻抗 Data.append(row[17]);//垂直偏转系数(/div) Data.append("");//测量值 Data.append("");//测量值单位 Data.append(row[13]);//技术指标 Data.append("");//结论 rise_timeList.append(Data); } if (!row.isEmpty() && row[8]=="1" && row[30] =="7") { VerificationItem = "输入电阻"; QStringList head; //添加列头 head <<"序号"<<"检定项目"<<"通道"<<"标称值"<<"垂直偏转系数(/div)" <<"测量值"<<"测量值单位"<<"技术指标" <<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(VerificationItem); //检定项目 Data.append(row[15]);//通道 Data.append(row[28]+row[29]);//标称值 Data.append(row[17]);//垂直偏转系数(/div) Data.append("");//测量值 Data.append("");//测量值单位 Data.append(row[13]);//技术指标 Data.append("");//结论 input_resistanceList.append(Data); } if (!row.isEmpty() && row[9]=="1" && row[30] =="8") { VerificationItem = "校准信号"; QStringList head; //添加列头 head <<"序号"<<"检定项目"<<"项目"<<"标称值"<<"顶部测量值"<<"底部测量值" <<"测量值"<<"测量值单位"<<"相对误差"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(VerificationItem); //检定项目 Data.append(row[30]);//项目 Data.append(row[28]+row[29]);//标称值 Data.append("");//顶部测量值 Data.append("");//底部测量值 Data.append("");//测量值 Data.append("");//测量值单位 Data.append(row[13]);//技术指标 Data.append("");//相对误差 calibrating_signalList.append(Data); } } if(time_baseList.count()!=0){DataMapList.insert("时基",time_baseList);} if(Current_gainList.count()!=0){DataMapList.insert("直流增益",Current_gainList);} if(Current_biasList.count()!=0){DataMapList.insert("直流偏置",Current_biasList);} if(band_widthList.count()!=0){DataMapList.insert("频带宽度",band_widthList);} if(trigger_sensitivity.count()!=0){DataMapList.insert("触发灵敏度",trigger_sensitivity);} if(rise_timeList.count()!=0){DataMapList.insert("上升时间",rise_timeList);} if(input_resistanceList.count()!=0){DataMapList.insert("输入电阻",input_resistanceList);} if(calibrating_signalList.count()!=0){DataMapList.insert("校准信号",calibrating_signalList);} } return DataMapList; }; // 【结果保存】 示波器 bool BaseCommonApi::InsertDeviceOscilloscopeCalibration(DeviceOscilloscopeCalibration scope){ QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_data_oscilloscope ( " " id, data_id, data_type, cycle_signal, cycle_signal_unit," " time_base_absolute_error, time_base_absolute_error_unit," " time_base_relative_error, time_base_relative_error_unit," " technical_index_symbol, technical_index, technical_index_unit," " conclusion, thoroughfare, impedance, impedance_unit," " vertical_deflect_coefficient, vertical_deflect_coefficient_unit," " standard_value, standard_value_unit, measure_value, measure_value_unit," " relative_error, error_value, band_width, band_width_unit," " reference_amplitude, reference_amplitude_unit, measure_amplitude," " measure_amplitude_unit, decibel_number, trigger_type," " signal_frequency, signal_frequency_unit, item_type, nominal_value," " nominal_value_unit, top_measure_value, top_measure_value_unit," " bottom_measure_value, bottom_measure_value_unit, scan_type," " horizontal_scale_gear, horizontal_scale_gear_unit," " vertical_scale_gear, vertical_scale_gear_unit, frequency_upper," " frequency_upper_unit, output_signal_amplitude, rise_time," " correct_rise_time, signal_type, nominal_amplitude_value," " nominal_amplitude_value_unit, nominal_frequency_value," " nominal_frequency_value_unit, measure_amplitude_value," " measure_amplitude_value_unit, measure_frequency_value," " frequency_deviation, amplitude_deviation, exceed_mark, create_time," " update_time" " ) VALUES (" " :id, :data_id, :data_type, :cycle_signal, :cycle_signal_unit," " :time_base_absolute_error, :time_base_absolute_error_unit," " :time_base_relative_error, :time_base_relative_error_unit," " :technical_index_symbol, :technical_index, :technical_index_unit," " :conclusion, :thoroughfare, :impedance, :impedance_unit," " :vertical_deflect_coefficient, :vertical_deflect_coefficient_unit," " :standard_value, :standard_value_unit, :measure_value, :measure_value_unit," " :relative_error, :error_value, :band_width, :band_width_unit," " :reference_amplitude, :reference_amplitude_unit, :measure_amplitude," " :measure_amplitude_unit, :decibel_number, :trigger_type," " :signal_frequency, :signal_frequency_unit, :item_type, :nominal_value," " :nominal_value_unit, :top_measure_value, :top_measure_value_unit," " :bottom_measure_value, :bottom_measure_value_unit, :scan_type," " :horizontal_scale_gear, :horizontal_scale_gear_unit," " :vertical_scale_gear, :vertical_scale_gear_unit, :frequency_upper," " :frequency_upper_unit, :output_signal_amplitude, :rise_time," " :correct_rise_time, :signal_type, :nominal_amplitude_value," " :nominal_amplitude_value_unit, :nominal_frequency_value," " :nominal_frequency_value_unit, :measure_amplitude_value," " :measure_amplitude_value_unit, :measure_frequency_value," " :frequency_deviation, :amplitude_deviation, :exceed_mark, :create_time," " :update_time );"); QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", scope.id); query.bindValue(":data_id", scope.data_id); query.bindValue(":data_type", scope.data_type); query.bindValue(":cycle_signal", scope.cycle_signal); query.bindValue(":cycle_signal_unit", scope.cycle_signal_unit); query.bindValue(":time_base_absolute_error", scope.time_base_absolute_error); query.bindValue(":time_base_absolute_error_unit", scope.time_base_absolute_error_unit); query.bindValue(":time_base_relative_error", scope.time_base_relative_error); query.bindValue(":time_base_relative_error_unit", scope.time_base_relative_error_unit); query.bindValue(":technical_index_symbol", scope.technical_index_symbol); query.bindValue(":technical_index", scope.technical_index); query.bindValue(":technical_index_unit", scope.technical_index_unit); query.bindValue(":conclusion", scope.conclusion); query.bindValue(":thoroughfare", scope.thoroughfare); query.bindValue(":impedance", scope.impedance); query.bindValue(":impedance_unit", scope.impedance_unit); query.bindValue(":vertical_deflect_coefficient", scope.vertical_deflect_coefficient); query.bindValue(":vertical_deflect_coefficient_unit", scope.vertical_deflect_coefficient_unit); query.bindValue(":standard_value", scope.standard_value); query.bindValue(":standard_value_unit", scope.standard_value_unit); query.bindValue(":measure_value", scope.measure_value); query.bindValue(":measure_value_unit", scope.measure_value_unit); query.bindValue(":relative_error", scope.relative_error); query.bindValue(":error_value", scope.error_value); query.bindValue(":band_width", scope.band_width); query.bindValue(":band_width_unit", scope.band_width_unit); query.bindValue(":reference_amplitude", scope.reference_amplitude); query.bindValue(":reference_amplitude_unit", scope.reference_amplitude_unit); query.bindValue(":measure_amplitude", scope.measure_amplitude); query.bindValue(":measure_amplitude_unit", scope.measure_amplitude_unit); query.bindValue(":decibel_number", scope.decibel_number); query.bindValue(":trigger_type", scope.trigger_type); query.bindValue(":signal_frequency", scope.signal_frequency); query.bindValue(":signal_frequency_unit", scope.signal_frequency_unit); query.bindValue(":item_type", scope.item_type); query.bindValue(":nominal_value", scope.nominal_value); query.bindValue(":nominal_value_unit", scope.nominal_value_unit); query.bindValue(":top_measure_value", scope.top_measure_value); query.bindValue(":top_measure_value_unit", scope.top_measure_value_unit); query.bindValue(":bottom_measure_value", scope.bottom_measure_value); query.bindValue(":bottom_measure_value_unit", scope.bottom_measure_value_unit); query.bindValue(":scan_type", scope.scan_type); query.bindValue(":horizontal_scale_gear", scope.horizontal_scale_gear); query.bindValue(":horizontal_scale_gear_unit", scope.horizontal_scale_gear_unit); query.bindValue(":vertical_scale_gear", scope.vertical_scale_gear); query.bindValue(":vertical_scale_gear_unit", scope.vertical_scale_gear_unit); query.bindValue(":frequency_upper", scope.frequency_upper); query.bindValue(":frequency_upper_unit", scope.frequency_upper_unit); query.bindValue(":output_signal_amplitude", scope.output_signal_amplitude); query.bindValue(":rise_time", scope.rise_time); query.bindValue(":correct_rise_time", scope.correct_rise_time); query.bindValue(":signal_type", scope.signal_type); query.bindValue(":nominal_amplitude_value", scope.nominal_amplitude_value); query.bindValue(":nominal_amplitude_value_unit", scope.nominal_amplitude_value_unit); query.bindValue(":nominal_frequency_value", scope.nominal_frequency_value); query.bindValue(":nominal_frequency_value_unit", scope.nominal_frequency_value_unit); query.bindValue(":measure_amplitude_value", scope.measure_amplitude_value); query.bindValue(":measure_amplitude_value_unit", scope.measure_amplitude_value_unit); query.bindValue(":measure_frequency_value", scope.measure_frequency_value); query.bindValue(":measure_frequency_value_unit", scope.measure_frequency_value_unit); query.bindValue(":frequency_deviation", scope.frequency_deviation); query.bindValue(":amplitude_deviation", scope.amplitude_deviation); query.bindValue(":exceed_mark", scope.exceed_mark); query.bindValue(":create_time", currentDateTime); query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert data failed: " << query.lastError().text(); } return isSuccess; } //检定项-二等铂电阻 QMap<QString,QList<QStringList>> BaseCommonApi::getDeviceMeasureItemDataResistanceThermometer(QString itemCatoryName,QString itemId,QMap<QString, QStringList> *headList) { QMap<QString, QList<QStringList>> DataMapList; QList<QStringList> resultData; QStringList result; resultData.clear(); QSqlQuery query; query.prepare( "SELECT bbdmidrt.*,bbdmii.wave_even_test,bbdmii.insulate_resistance,bbdmii.angle_adjust_error,bbdmii.indication_error," " bbdmii.allow_error FROM biz_business_device_measure_item_data_resistance_thermometer bbdmidrt" " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmidrt.item_id" " WHERE bbdmidrt.item_id = :itemId" " ORDER BY bbdmidrt.update_time DESC "); // 将参数绑定到占位符 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("data_type").toString());//检定项数据类型(一个检定项中区分两个表格)(字典code) result.append(query.value("unit").toString());//单位(字典value) result.append(query.value("upper_index").toString());//指标上限 result.append(query.value("lower_index").toString());//指标下限 result.append(query.value("measure_range_upper").toString());//测量范围上限 result.append(query.value("measure_range_lower").toString());//测量范围下限 result.append(query.value("measure_range_unit").toString());//测量范围单位(字典value) result.append(query.value("accuracy_level").toString());//准确度等级(字典value) result.append(query.value("calibrated_point").toString());//校准点 result.append(query.value("maximum_error").toString());//最大允许误差 result.append(query.value("urel").toString());//扩展不确定度 result.append(query.value("level").toString());//级别(字典value) result.append(query.value("nominal_temperature").toString());//标称温度 result.append(query.value("nominal_value").toString());//α标称值(字典value) result.append(query.value("r_value").toString());//R值 result.append(query.value("dr_dt").toString());//dR/dt result.append(query.value("r_tp").toString());//R*tp result.append(query.value("w_s").toString());//Ws result.append(query.value("dwst_dt").toString());//dWst/dt result.append(query.value("allow_error_upper").toString());//允差上限 result.append(query.value("allow_error_lower").toString());//允差下限 result.append(query.value("a_allow_error_upper").toString());//α允差上限 result.append(query.value("a_allow_error_lower").toString());//α允差下限 result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); result.append(query.value("wave_even_test").toString());//波动性测试和均匀性测试(二等铂) result.append(query.value("insulate_resistance").toString());//绝缘电阻(二等铂) result.append(query.value("angle_adjust_error").toString());//角度调整误差(二等铂) result.append(query.value("indication_error").toString());//示值误差(二等铂) result.append(query.value("allow_error").toString());//允差(二等铂) resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } //进行检定项目列头转换 DataMapList= GetDataReturnItemListByResistanceThermometer(itemCatoryName,resultData,DataMapList,headList); return DataMapList; } QMap<QString, QList<QStringList>> BaseCommonApi::GetDataReturnItemListByResistanceThermometer(QString itemCatoryName,QList<QStringList> ResultData,QMap<QString, QList<QStringList>> DataMapList,QMap<QString, QStringList> *HeadMapList) { QList<QStringList> VolatilityList; QList<QStringList> UniformityList; if(itemCatoryName.contains("恒温槽")){ for(const QStringList &row : ResultData) { QString VerificationItem=NULL; if (!row.isEmpty() && row[27]=="1" && row[2] == "1") { VerificationItem = "波动性测试"; //添加列头 QStringList head; head <<"序号"<<"上限点"<<"下限点"<<"单位"<<"示值1"<<"示值2"<<"示值3"<<"示值4"<<"示值5" <<"示值6"<<"示值7"<<"示值8"<<"示值9"<<"示值10"<<"示值11"<<"示值12"<<"示值13"<<"示值14"<<"示值15" <<"最大值"<<"最小值"<<"波动性" ; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[4]); //上限点 Data.append(row[5]);//下限点 Data.append(row[3]);//单位 Data.append("");//示值1 Data.append("");//示值2 Data.append("");//示值3 Data.append("");//示值4 Data.append("");//示值5 Data.append("");//示值6 Data.append("");//示值7 Data.append("");//示值9 Data.append("");//示值10 Data.append("");//示值11 Data.append("");//示值12 Data.append("");//示值13 Data.append("");//示值14 Data.append("");//示值15 Data.append("");//最大值 Data.append("");//最小值 Data.append("");//波动性 VolatilityList.append(Data); }else if(!row.isEmpty() && row[27]=="1" && row[2] =="2"){ VerificationItem = "均匀性测试"; //添加列头 QStringList head; head <<"序号"<<"单位"<<"上限点"<<"下限点"<<"位置" <<"示值ROA1"<<"示值RA1"<<"RA2"<<"ROA2"<<"ROA3"<<"RA3"<<"RA4"<<"ROA4"<<"ROA均值"<<"RA均值"<<"上水平面温差" <<"下水平面温差"<<"水平最大温差"<<"工作区域最大温差"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[3]); //单位 Data.append(row[4]);//上限点 Data.append(row[5]);//下限点 Data.append("");//位置 Data.append("");//示值ROA1 Data.append("");//示值RA1 Data.append("");//RA2 Data.append("");//ROA2 Data.append("");//ROA3 Data.append("");//RA3 Data.append("");//RA4 Data.append("");//ROA4 Data.append("");//ROA均值 Data.append("");//RA均值 Data.append("");//上水平面温差 Data.append("");//下水平面温差 Data.append("");//水平最大温差 Data.append("");//工作区域最大温差 UniformityList.append(Data); } } } if(VolatilityList.count()!=0){ DataMapList.insert("波动性测试",VolatilityList); }; if(UniformityList.count()!=0){ DataMapList.insert("均匀性测试",UniformityList); }; return DataMapList; } //结果保存-二等铂电阻 bool BaseCommonApi::InsertDeviceMeasureDataResistanceThermometer(DeviceMeasureDataResistanceThermometer thermometer) { QSqlQuery query; query.prepare("INSERT INTO biz_business_device_measure_data_resistance_thermometer (" " id, data_id, data_type, data_category, upper_lower_point, location, unit," " one_value, two_value, three_value, four_value, five_value, six_value, seven_value," " eight_value, nine_value, ten_value, eleven_value, twelve_value, thirteen_value," " fourteen_value, fifteen_value, max_value, min_value, volatility," " upper_temperature_different, lower_temperature_different," " max_horizontal_temperature_different, max_work_temperature_different," " calibrated_point, indicating_value_forward_stroke," " indicating_value_reverse_stroke, measure_indication_value_forward_stroke," " measure_indication_value_reverse_stroke, indicating_error_forward_stroke," " indicating_error_reverse_stroke, maximum_error, urel, rank_level," " nominal_temperature, item, allow_error_lower, allow_error_upper," " measure_value, create_time, update_time" " ) VALUES (" " :id, :data_id, :data_type, :data_category, :upper_lower_point, :location, :unit," " :one_value, :two_value, :three_value, :four_value, :five_value, :six_value, :seven_value," " :eight_value, :nine_value, :ten_value, :eleven_value, :twelve_value, :thirteen_value," " :fourteen_value, :fifteen_value, :max_value, :min_value, :volatility," " :upper_temperature_different, :lower_temperature_different," " :max_horizontal_temperature_different, :max_work_temperature_different," " :calibrated_point, :indicating_value_forward_stroke," " :indicating_value_reverse_stroke, :measure_indication_value_forward_stroke," " :measure_indication_value_reverse_stroke, :indicating_error_forward_stroke," " :indicating_error_reverse_stroke, :maximum_error, :urel, :rank_level," " :nominal_temperature, :item, :allow_error_lower, :allow_error_upper," " :measure_value, :create_time, :update_time );"); QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); query.bindValue(":id", thermometer.id); query.bindValue(":data_id", thermometer.data_id); query.bindValue(":data_type", thermometer.data_type); query.bindValue(":data_category", thermometer.data_category); query.bindValue(":upper_lower_point", thermometer.upper_lower_point); query.bindValue(":location", thermometer.location); query.bindValue(":unit", thermometer.unit); query.bindValue(":one_value", thermometer.one_value); query.bindValue(":two_value", thermometer.two_value); query.bindValue(":three_value", thermometer.three_value); query.bindValue(":four_value", thermometer.four_value); query.bindValue(":five_value", thermometer.five_value); query.bindValue(":six_value", thermometer.six_value); query.bindValue(":seven_value", thermometer.seven_value); query.bindValue(":eight_value", thermometer.eight_value); query.bindValue(":nine_value", thermometer.nine_value); query.bindValue(":ten_value", thermometer.ten_value); query.bindValue(":eleven_value", thermometer.eleven_value); query.bindValue(":twelve_value", thermometer.twelve_value); query.bindValue(":thirteen_value", thermometer.thirteen_value); query.bindValue(":fourteen_value", thermometer.fourteen_value); query.bindValue(":fifteen_value", thermometer.fifteen_value); query.bindValue(":max_value", thermometer.max_value); query.bindValue(":min_value", thermometer.min_value); query.bindValue(":volatility", thermometer.volatility); query.bindValue(":upper_temperature_different", thermometer.upper_temperature_different); query.bindValue(":lower_temperature_different", thermometer.lower_temperature_different); query.bindValue(":max_horizontal_temperature_different", thermometer.max_horizontal_temperature_different); query.bindValue(":max_work_temperature_different", thermometer.max_work_temperature_different); query.bindValue(":calibrated_point", thermometer.calibrated_point); query.bindValue(":indicating_value_forward_stroke", thermometer.indicating_value_forward_stroke); query.bindValue(":indicating_value_reverse_stroke", thermometer.indicating_value_reverse_stroke); query.bindValue(":measure_indication_value_forward_stroke", thermometer.measure_indication_value_forward_stroke); query.bindValue(":measure_indication_value_reverse_stroke", thermometer.measure_indication_value_reverse_stroke); query.bindValue(":indicating_error_forward_stroke", thermometer.indicating_error_forward_stroke); query.bindValue(":indicating_error_reverse_stroke", thermometer.indicating_error_reverse_stroke); query.bindValue(":maximum_error", thermometer.maximum_error); query.bindValue(":urel", thermometer.urel); query.bindValue(":rank_level", thermometer.rank_level); query.bindValue(":nominal_temperature", thermometer.nominal_temperature); query.bindValue(":item", thermometer.item); query.bindValue(":allow_error_lower", thermometer.allow_error_lower); query.bindValue(":allow_error_upper", thermometer.allow_error_upper); query.bindValue(":measure_value", thermometer.measure_value); query.bindValue(":create_time", currentDateTime); query.bindValue(":update_time", currentDateTime); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "Insert data failed: " << query.lastError().text(); } return isSuccess; } //【查询】结果表 二等铂电阻 QList<QStringList> BaseCommonApi::getDeviceMeasureDataResistanceThermometer(QString data_id,QStringList *HeadList) { //待实现 } //【查询】检定项-频谱分析仪 QMap<QString,QList<QStringList>> BaseCommonApi::getDeviceMeasureItemDataSpectrumAnalyzer(QString itemCatoryName,QString itemId,QMap<QString, QStringList> *headList) { QMap<QString, QList<QStringList>> DataMapList; QList<QStringList> resultData; QStringList result; resultData.clear(); QSqlQuery query; query.prepare("SELECT bbdmidsa.*,bbdmii.frequency_display,bbdmii.sweep_width,bbdmii.middle_frequency_width," " bbdmii.middle_conversion_deviation,bbdmii.reference_level,bbdmii.vertical_scale,bbdmii.input_frequency," " bbdmii.average_noise_level,bbdmii.harmonic_distortion,bbdmii.input_attenuation,bbdmii.gain_compression " " FROM biz_business_device_measure_item_data_spectrum_analyzer bbdmidsa " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmidsa.item_id" " WHERE bbdmidsa.item_id = :itemId " " ORDER BY bbdmidsa.update_time DESC"); 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("data_type").toString());//检定项数据类型(一个检定项中区分两个表格)(字典code) result.append(query.value("nominal_value").toString());//标称值 result.append(query.value("unit").toString());//标称值单位 result.append(query.value("sweep_width").toString());//扫频宽度 result.append(query.value("sweep_width_unit").toString());//扫频宽度单位 result.append(query.value("horizontal_resolution").toString());//水平分辨率 result.append(query.value("horizontal_resolution_unit").toString());//水平分辨率单位 result.append(query.value("resolution_bandwidth").toString());//分辨率带宽 result.append(query.value("resolution_bandwidth_unit").toString());//分辨率带宽单位 result.append(query.value("frequency").toString());//频率 result.append(query.value("frequency_unit").toString());//频率单位 result.append(query.value("amplitude").toString());//幅度 result.append(query.value("amplitude_unit").toString());//幅度单位 result.append(query.value("frequency_reference_accuracy").toString());//频率基准精度(计算技术指标使用(频率显示)) result.append(query.value("value_one").toString());//数值1(不带%,计算技术指标使用(频率显示))/数值(不带单位,扫频宽度/中频带宽/中频带宽转换偏差参考电平/垂直刻度/输入频响/输入衰减/1dB增益压缩点) result.append(query.value("value_two").toString());//数值2(不带%,计算技术指标使用(频率显示))/中频带宽 result.append(query.value("value_three").toString());//数值3(不带Hz,计算技术指标使用(频率显示)) result.append(query.value("value_four").toString());//数值4(计算技术指标使用(频率显示)) result.append(query.value("technical_index").toString());//技术指标(存正负号/存符号(1dB增益压缩点)) result.append(query.value("technical_index_unit").toString());//技术指标单位 result.append(query.value("technical_index_left").toString());//技术指标左(中频带宽) result.append(query.value("technical_index_right").toString());//技术指标右(中频带宽) result.append(query.value("reference_point").toString());//是否为参考点(1/0) result.append(query.value("standard_attenuator_attenuation").toString());//标准衰减器衰减量 result.append(query.value("standard_attenuator_attenuation_unit").toString());//标准衰减器衰减量单位 result.append(query.value("signal_source_amplitude").toString());//信号源幅度 result.append(query.value("signal_source_amplitude_unit").toString());//信号源幅度单位 result.append(query.value("vertical_scale").toString());//垂直刻度 result.append(query.value("start_frequency").toString());//起始频率 result.append(query.value("start_frequency_unit").toString());//起始频率单位 result.append(query.value("end_frequency").toString());//终止频率 result.append(query.value("end_frequency_unit").toString());//终止频率单位 result.append(query.value("corrected_value").toString());//修正值 result.append(query.value("corrected_value_unit").toString());//修正值单位 result.append(query.value("upper_index").toString());//指标上限 result.append(query.value("upper_index_unit").toString());//指标上限单位 result.append(query.value("input_attenuator").toString());//输入衰减器 result.append(query.value("input_attenuator_unit").toString());//输入衰减器单位 result.append(query.value("spectrum_level").toString());//参考电平 result.append(query.value("spectrum_level_unit").toString());//参考电平单位 result.append(query.value("rbw_value").toString());//RBW result.append(query.value("rbw_value_unit").toString());//RBW单位 result.append(query.value("vbw_value").toString());//VBW result.append(query.value("vbw_value_unit").toString());//VBW单位 result.append(query.value("upper_index_twice").toString());//二次谐波失真指标上限 result.append(query.value("upper_index_twice_unit").toString());//二次谐波失真指标上限单位 result.append(query.value("upper_index_thrice").toString());//三次谐波失真指标上限 result.append(query.value("upper_index_thrice_unit").toString());//三次谐波失真指标上限单位 result.append(query.value("upper_index_quartic").toString());//四次谐波失真指标上限 result.append(query.value("upper_index_quartic_unit").toString());//四次谐波失真指标上限单位 result.append(query.value("type_value").toString());//类型(校准信号) result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); result.append(query.value("frequency_display").toString());//频率显示(频谱分析仪) 55 result.append(query.value("sweep_width").toString());//扫频宽度(频谱分析仪) result.append(query.value("middle_frequency_width").toString());//中频宽度(频谱分析仪) result.append(query.value("middle_conversion_deviation").toString());//中频带宽转换偏差(频谱分析仪) result.append(query.value("reference_level").toString());//参考电平(频谱分析仪) result.append(query.value("vertical_scale").toString());//垂直刻度(频谱分析仪) result.append(query.value("input_frequency").toString());//输入频响(频谱分析仪) result.append(query.value("average_noise_level").toString());//平均噪声电平(频谱分析仪) result.append(query.value("harmonic_distortion").toString());//谐波失真(频谱分析仪)/(低频信号源)/(S参数) result.append(query.value("input_attenuation").toString());//输入衰减(频谱分析仪) result.append(query.value("gain_compression").toString());//1dB增益压缩点(频谱分析仪) resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } //进行检定项目列头转换 DataMapList= GetDataReturnItemListBySpectrumAnalyzer(itemCatoryName,resultData,DataMapList,headList); return DataMapList; } QMap<QString, QList<QStringList>> BaseCommonApi::GetDataReturnItemListBySpectrumAnalyzer(QString itemCatoryName,QList<QStringList> ResultData,QMap<QString, QList<QStringList>> DataMapList,QMap<QString, QStringList> *HeadMapList) { QList<QStringList> FrequencyDisplayList; QList<QStringList> SweepWidthList; QList<QStringList> IntermediateFrequencyBandwidthList; QList<QStringList> ConversionDeviationList; if(itemCatoryName.contains("频谱分析仪")){ for(const QStringList &row : ResultData) { QString VerificationItem=NULL; if (!row.isEmpty() && row[55]=="1" && row[2] == "1") { VerificationItem = "频率显示"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"标称值"<<"标称值单位"<<"扫频宽度"<<"分辨力带宽"<<"水平分辨率"<<"测量值1"<<"测量值2"<<"测量值3" <<"指标下限"<<"均值"<<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]+ row[4]);//标称值 Data.append(row[4]);//标称值单位 需要隐藏 Data.append(row[5]);//扫频宽度 Data.append(row[9]);//分辨率带宽 Data.append(row[7]);//水平分辨率 Data.append("");//测量值1 Data.append("");//测量值2 Data.append("");//测量值3 double index_lower = row[3].toInt()-(row[3].toInt()*row[15].toDouble()+row[16].toDouble() * row[5].toInt()+ row[17].toDouble() * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); Data.append(QString::number(index_lower) + row[4]);//指标下限 Data.append("");//均值 double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() + row[16].toDouble() * row[5].toInt() +row[17].toDouble() * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); Data.append(QString::number(index_upper) + row[4]);//指标上限 Data.append("");//结论 FrequencyDisplayList.append(Data); }else if(!row.isEmpty() && row[56]=="1" && row[2] =="2"){ VerificationItem = "扫频宽度"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"标称值"<<"标称值单位"<<"水平分辨率"<<"fl1" <<"fr1"<<"fl2"<<"fr2"<<"fl3"<<"fr3"<<"指标下限"<<"均值"<<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]+ row[4]);//标称值 Data.append(row[4]);//标称值单位 需要隐藏 Data.append(row[7]);//水平分辨率 Data.append("");//fl1 Data.append("");//fr1 Data.append("");//fl2 Data.append("");//fr2 Data.append("");//fl3 Data.append("");//fr3 double index_lower = row[3].toInt() - (row[3].toInt() * row[15].toDouble() + row[7].toInt()); QString index_lowerr_num = formatDoubleWithEffectiveDigits(index_lower,5); Data.append(index_lowerr_num+ row[4]);//指标下限 Data.append("");//均值 double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() + row[7].toInt()); QString index_upper_num = formatDoubleWithEffectiveDigits(index_upper,5); Data.append(index_upper_num + row[4]);//指标上限 Data.append("");//结论 SweepWidthList.append(Data); }else if(!row.isEmpty() && row[57]=="1" && row[2] =="3"){ VerificationItem = "中频带宽"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"标称值"<<"标称值单位"<<"fl1" <<"fr1"<<"△f1"<<"fl2"<<"fr2"<<"△f2"<<"fl3"<<"fr3"<<"△f3"<<"指标下限"<<"均值"<<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]+ row[4]);//标称值 Data.append(row[4]);//标称值单位 需要隐藏 Data.append("");//fl1 Data.append("");//fr1 Data.append("");//△f1 Data.append("");//fl2 Data.append("");//fr2 Data.append("");//△f2 Data.append("");//fl3 Data.append("");//fr3 Data.append("");//△f3 Data.append("");//指标下限 Data.append("");//均值 double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble()); QString index_upper_num = formatDoubleWithDecimalPlaces(index_upper,2); Data.append(index_upper_num + row[4]);//指标上限 Data.append("");//结论 IntermediateFrequencyBandwidthList.append(Data); }else if(!row.isEmpty() && row[58]=="1" && row[2] =="4"){ VerificationItem = "中频带宽转换偏差"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"中频带宽"<<"测量值"<<"指标下限" <<"转换偏差"<<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3] + row[4]);//中频带宽 Data.append("");//测量值 Data.append(row[22]);//指标下限 Data.append("");//转换偏差 Data.append(row[23]);//指标上限 Data.append("");//结论 ConversionDeviationList.append(Data); }else if(!row.isEmpty() && row[59]=="1" && row[2] =="5"){ VerificationItem = "参考电平"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"标称值"<<"标准衰减器衰减量"<<"信号源幅度" <<"指标下限"<<"测量值"<<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3] + row[4]);//标称值 Data.append(row[25] + row[26]);//标准衰减器衰减量 Data.append(row[27] + row[28]);//信号源幅度 Data.append("");//指标下限 Data.append("");//测量值 Data.append("");//指标上限 Data.append("");//结论 ConversionDeviationList.append(Data); }else if(!row.isEmpty() && row[60]=="1" && row[2] =="6"){ VerificationItem = "垂直刻度"; //添加列头 QStringList head; head <<"序号"<<"检定项目"<<"标称值"<<"垂直刻度"<<"标准衰减器衰减量"<<"信号源幅度" <<"指标下限"<<"测量值"<<"指标上限"<<"结论"; HeadMapList->insert(VerificationItem,head); //添加数据 QStringList Data; Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3] + row[4]);//标称值 Data.append(row[29]);//垂直刻度 Data.append(row[25] + row[26]);//标准衰减器衰减量 Data.append(row[27] + row[28]);//信号源幅度 Data.append("");//指标下限 Data.append("");//测量值 Data.append("");//指标上限 Data.append("");//结论 ConversionDeviationList.append(Data); } } } if(FrequencyDisplayList.count()!=0){ DataMapList.insert("频率显示",FrequencyDisplayList); }; if(SweepWidthList.count()!=0){ DataMapList.insert("扫频宽度",SweepWidthList); }; return DataMapList; } //保留5位小数,参数1:值,参数2:保留几位有效数字 QString BaseCommonApi::formatDoubleWithEffectiveDigits(double value, int effectiveDigits) { // 转换 double 为 QString 并保留足够的位数来避免精度损失 QString str = QString::number(value, 'g', effectiveDigits + 6); // 'g' 格式表示使用最短的表示形式 // 移除尾部的零和小数点后的零(如果它们存在的话) str.remove(QRegExp("0+$")); if (str.endsWith('.')) { str.chop(1); // 移除尾部的点 } // 确保至少有一位数字在小数点后面(如果原始数字是小数) if (str.contains('.') && str.indexOf('.') == str.length() - 1) { str.append('0'); } return str; } //保留小数点后几位 QString BaseCommonApi::formatDoubleWithDecimalPlaces(double value, int decimalPlaces) { return QString::number(value, 'f', decimalPlaces); // 使用固定点表示法,并指定小数位数 }