Newer
Older
AutomaticVerification / softwareDirectory / AutoVerScheme / basecommonapi.cpp
张嘉 on 31 Mar 2024 139 KB no commit message
#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";



//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  "
              " 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;
}
//删除任务单
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;

}
//删除任务单内设备
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="1716997603953311746";
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.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_CalibrationTable(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;
     switch (CliTable[0].belong_standard_equipment.toInt())
     {
        case 1:
       //CliTable[0].id
         //1717086652508487681
         DataList=BaseCommonApi::getVerMultiCal(CliTable[0].id,HeadList);
     }

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

     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 * FROM biz_business_device_measure_item_data_calibrator bbdmidc WHERE item_id = :itemId ");
 // 将参数绑定到占位符
  query.bindValue(":itemId", itemId);
  if (query.exec()) {
      while (query.next()) {
        result.clear();
          result.append(query.value("id").toString());
          result.append(query.value("item_id").toString());  //检定项目ID
          result.append(query.value("params").toString());   //检查项目
          result.append(query.value("capacity").toString());
          result.append(query.value("unit").toString());
          result.append(query.value("frequency").toString());
          result.append(query.value("frequency_unit").toString());
          result.append(query.value("range_range").toString());
          result.append(query.value("standard_value").toString());
          result.append(query.value("resolution").toString());
          result.append(query.value("maximum_error").toString());
          result.append(query.value("error_param_a").toString());
          result.append(query.value("error_param_b").toString());
          result.append(query.value("line_mode").toString());
          result.append(query.value("coil_enlarge").toString());
          result.append(query.value("indicating_value").toString());
          result.append(query.value("accuracy_a").toString());
          result.append(query.value("full_scale_value").toString());
          result.append(query.value("full_scale_value_unit").toString());
          result.append(query.value("measure_indication_value").toString());
          result.append(query.value("accuracy_level").toString());
          result.append(query.value("create_time").toString());
          result.append(query.value("update_time").toString());
        resultData.append(result);
      }
  } else {
      qDebug() << "Query execution failed: " << query.lastError().text();
  }

    *headList <<"序号"<<"检定项id"<<"参数"<<"量"<<"单位"<<"频率"<<"频率单位"<<"量程"<<"标准值"<<"分辨力"<<"最大允许误差(公式)"<<"误差参数a"<<"误差参数b"
            <<"两线/四线模式"<<"线圈放大"<<"示值"<<"准确度a"<<"指针式仪表满量程值"<<"指针式仪表满量程值单位"<<"被检表示值"<<"准确度等级"<<"创建时间"<<"更新时间";
  return resultData;
}
//被检设备管理-检定项目及检定点-多功能校准源
/*
QMap<QString, QList<QStringList>> BaseCommonApi::getVerMultiCal(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());
          result.append(query.value("error_param_b").toString());
          result.append(query.value("line_mode").toString());
          result.append(query.value("coil_enlarge").toString());
          result.append(query.value("indicating_value").toString());
          result.append(query.value("accuracy_a").toString());
          result.append(query.value("full_scale_value").toString());
          result.append(query.value("full_scale_value_unit").toString());
          result.append(query.value("measure_indication_value").toString());
          result.append(query.value("accuracy_level").toString());
          result.append(query.value("create_time").toString());
          result.append(query.value("update_time").toString());
        resultData.append(result);
      }
  } else {
      qDebug() << "Query execution failed: " << query.lastError().text();
  }
  //进行检定项目列头转换
  DataMapList= GetDataReturnItemList(resultData,DataMapList,headList);
  return DataMapList;
}
*/
QMap<QString, QList<QStringList>> BaseCommonApi::GetDataReturnItemList(QList<QStringList> ResultData,QMap<QString, QList<QStringList>> DataMapList,QMap<QString, QStringList> *HeadMapList)
{

       QList<bool> isFirst;
       isFirst.append(true);
       isFirst.append(true);
       isFirst.append(true);
       isFirst.append(true);
       isFirst.append(true);
       QList<QStringList> DCVList;
       QList<QStringList> ACVList;
       QList<QStringList> DCIList;
       QList<QStringList> ACIList;
       QList<QStringList> RList;
       for(const QStringList &row : ResultData)
       {
           if (!row.isEmpty()) { // 确保行不为空
               if(row[2]=="DCV")
               {

                   QString VerificationItem=NULL;
                   if(isFirst[0])
                   {
                   VerificationItem = "DCV";
                   //添加列头
                   QStringList head;
                   head << "序号" << "检定项目" << "量" << "单位" << "量程"
                        << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力";
                   HeadMapList->insert(VerificationItem,head);
                   isFirst[0]=false;
                  }
                   //添加数据

                   QStringList Data;
                   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(ResultData[2].first()=="ACV")
               {
                   QString VerificationItem=NULL;
                   if(isFirst[1])
                   {
                   VerificationItem = "ACV";
                   //添加列头
                   QStringList head;
                   head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程"
                        << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力";
                    HeadMapList->insert(VerificationItem,head);
                   isFirst[1]=false;
                  }
                   //添加数据

                   QStringList Data;
                   Data.append(row[0]);  //ID
                   Data.append(row[2]);  //检定项目
                   Data.append(row[3]);  //量
                   Data.append(row[4]);  //单位
                   Data.append(row[7]);  //量程
                   Data.append(row[8]);  //标准值
                   Data.append(row[15]);  //示值
                   Data.append("");   //绝对误差 软件界面计算
                   //最大允许误差 根据公式计算 目前 先都按 a*标准值 + b*量程
                   try {
                       //保证数据库内数据没问题
                       Data.append(QString::number((row[11].toDouble()*row[8].toDouble())
                                                + (row[12].toDouble()*row[7].toDouble())));
                   } catch(const std::exception &e) {
                       Data.append("0");
                   }
                   Data.append(row[9]);  //分辨力
                   ACVList.append(Data);
               } else if(ResultData[2].first()=="DCI")
               {
                   QString VerificationItem=NULL;
                   if(isFirst[2])
                   {
                   VerificationItem = "DCI";
                   //添加列头
                   QStringList head;
                   head << "序号" << "检定项目" << "量" << "单位" <<"频率" << "量程"
                        << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力";
                    HeadMapList->insert(VerificationItem,head);
                   isFirst[2]=false;
                  }
                   //添加数据

                   QStringList Data;
                   Data.append(row[0]);  //ID
                   Data.append(row[2]);  //检定项目
                   Data.append(row[3]);  //量
                   Data.append(row[4]);  //单位
                   Data.append(row[5]);  //频率
                   Data.append(row[7]);  //量程
                   Data.append(row[8]);  //标准值
                   Data.append(row[15]);  //示值
                   Data.append("");   //绝对误差 软件界面计算
                   //最大允许误差 根据公式计算 目前 先都按 a*标准值 + b*量程
                   try {
                       //保证数据库内数据没问题
                       Data.append(QString::number((row[11].toDouble()*row[8].toDouble())
                                                + (row[12].toDouble()*row[7].toDouble())));
                   } catch(const std::exception &e) {
                       Data.append("0");
                   }
                   Data.append(row[9]);  //分辨力
                   DCIList.append(Data);

               } else if(ResultData[2].first()=="ACI")
               {
                   QString VerificationItem=NULL;
                   if(isFirst[3])
                   {
                   VerificationItem = "ACI";
                   //添加列头
                   QStringList head;
                   head << "序号" << "检定项目" << "量" << "单位"  <<"频率" << "量程"
                        << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力";
                    HeadMapList->insert(VerificationItem,head);
                   isFirst[3]=false;
                  }
                   //添加数据

                   QStringList Data;
                   Data.append(row[0]);  //ID
                   Data.append(row[2]);  //检定项目
                   Data.append(row[3]);  //量
                   Data.append(row[4]);  //单位
                   Data.append(row[5]);  //频率
                   Data.append(row[7]);  //量程
                   Data.append(row[8]);  //标准值
                   Data.append(row[15]);  //示值
                   Data.append("");   //绝对误差 软件界面计算
                   //最大允许误差 根据公式计算 目前 先都按 a*标准值 + b*量程
                   try {
                       //保证数据库内数据没问题
                       Data.append(QString::number((row[11].toDouble()*row[8].toDouble())
                                                + (row[12].toDouble()*row[7].toDouble())));
                   } catch(const std::exception &e) {
                       Data.append("0");
                   }
                   Data.append(row[9]);  //分辨力
                   ACIList.append(Data);
               } else if(ResultData[2].first()=="R")
               {
                   QString VerificationItem=NULL;
                   if(isFirst[4])
                   {
                   VerificationItem = "R";
                   //添加列头
                   QStringList head;
                   head << "序号" <<"两线/四线"  << "量" << "单位" << "量程"
                        << "标准值" << "示值" << "绝对误差" << "最大允许误差" << "分辨力";
                    HeadMapList->insert(VerificationItem,head);
                   isFirst[4]=false;
                  }
                   //添加数据

                   QStringList Data;
                   Data.append(row[0]);  //ID
                   Data.append(row[13]);  //两线/四线
                   Data.append(row[3]);  //量
                   Data.append(row[4]);  //单位
                   Data.append(row[7]);  //量程
                   Data.append(row[8]);  //标准值
                   Data.append(row[15]);  //示值
                   Data.append("");   //绝对误差 软件界面计算
                   //最大允许误差 根据公式计算 目前 先都按 a*标准值 + b*量程
                   try {
                       //保证数据库内数据没问题
                       Data.append(QString::number((row[11].toDouble()*row[8].toDouble())
                                                + (row[12].toDouble()*row[7].toDouble())));
                   } catch(const std::exception &e) {
                       Data.append("0");
                   }
                   Data.append(row[9]);  //分辨力
                   RList.append(Data);
               }

              }
       }
       if(DCVList.count()!=0){
           DataMapList.insert("DCV",DCVList);
       };
       if(DCVList.count()!=0){
           DataMapList.insert("ACV",ACVList);
       };
       if(DCVList.count()!=0){
           DataMapList.insert("DCI",DCIList);
       };
       if(DCVList.count()!=0){
           DataMapList.insert("ACI",ACIList);
       };
       if(DCVList.count()!=0){
           DataMapList.insert("R",RList);
       };
       return  DataMapList;
}
//检定数据管理 首页
QList<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.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;
    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 ");
            }
            break;
    }
    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();
        }
            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);
    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> 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;
}