From e0d14149d8a945b664a026d6627c34866e05154e Mon Sep 17 00:00:00 2001 From: lyx12396 <2823809412@qq.com> Date: Sun, 13 Jul 2025 14:56:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=AE=A1=E7=90=86=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=92=8C=E5=8A=9F=E8=83=BD=E6=B7=BB=E5=8A=A01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view/equipmentManage/kaddmanage.cpp | 33 +++++++++++++++++++------- view/equipmentManage/kchangemanage.cpp | 12 +++++++--- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/view/equipmentManage/kaddmanage.cpp b/view/equipmentManage/kaddmanage.cpp index 2bf345a..b5bf4aa 100644 --- a/view/equipmentManage/kaddmanage.cpp +++ b/view/equipmentManage/kaddmanage.cpp @@ -76,7 +76,8 @@ void kaddmanage::on_addButton_clicked() { // 生成设备编号(规则:名称+日期+批次+序号,如“显微镜_20240708_2024001_1”) QDateTime currentDate = QDateTime::currentDateTime(); QString dateStr = currentDate.toString("yyyy-MM-dd hh:mm:ss"); - QString baseNumber = QString("%1_%2_%3").arg(instrumentName).arg(dateStr).arg(batchNumber); + QString dateStr2 = currentDate.toString("yyyy-MM-dd"); + QString baseNumber = QString("%1_%2_%3").arg(instrumentName).arg(dateStr2).arg(batchNumber); QString rebaseNumber = QString("%1_%2_%3").arg(instrumentName).arg(batchNumber); // 数据库操作 @@ -93,11 +94,24 @@ void kaddmanage::on_addButton_clicked() { : baseNumber; // 步骤1:检查设备编号是否已存在(避免冲突) - // QString checkQuery = QString(R"( - // SELECT COUNT(*) AS count FROM equipment_instance - // WHERE equipment_number = '%1' - // )").arg(finalEquipmentNumber); - // auto checkResult = db.executeQueryAndFetchAll(checkQuery); + QString checkQuery = QString(R"( + SELECT COUNT(*) AS count + FROM equipment_instance + WHERE status != 'deleted' AND name = '%1' + )").arg(finalEquipmentNumber); + auto checkResult = db.executeQueryAndFetchAll(checkQuery); + + bool exists = !checkResult.isEmpty() && + checkResult.first().value("count").toInt() > 0; + + if (exists) { + skipCount++; + errorDetails += QString("第%1条记录已存在,跳过:%2\n") + .arg(i + 1) + .arg(finalEquipmentNumber); + continue; // 直接跳过本次循环 + } + // 步骤2:插入新记录(使用数据库自增id,不手动指定) @@ -107,7 +121,7 @@ void kaddmanage::on_addButton_clicked() { ) VALUES ( '%1', '%2', '%3' , %4 ) - )").arg(instrumentName).arg(statuss).arg(dateStr).arg(classId); // 设备状态(下拉框选择) + )").arg(finalEquipmentNumber).arg(statuss).arg(dateStr).arg(classId); // 设备状态(下拉框选择) if (db.executeNonQuery(insertQuery)) { @@ -135,11 +149,14 @@ void kaddmanage::on_addButton_clicked() { emit dataAdded(); // 通知主界面刷新 } + QString a = QString("%1_%2").arg("add@").arg(rebaseNumber); + QFile file("kadd_log.txt"); if (file.open(QIODevice::WriteOnly | QIODevice::Append)) { - file.write(QString(rebaseNumber) + file.write(QString(a) .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")) .toUtf8()); + file.write("\n"); file.close(); } diff --git a/view/equipmentManage/kchangemanage.cpp b/view/equipmentManage/kchangemanage.cpp index d6a9a62..be5548d 100644 --- a/view/equipmentManage/kchangemanage.cpp +++ b/view/equipmentManage/kchangemanage.cpp @@ -83,9 +83,11 @@ void kchangemanage::on_deleteButton_clicked() { QMessageBox::information(this, "成功", "设备状态已更新为删除"); modelRent->fetchData(); // 刷新模型数据 + QString a = QString("%1_%2").arg("delete@").arg(query); + QFile file("kdelete_log.txt"); if (file.open(QIODevice::WriteOnly | QIODevice::Append)) { - file.write(QString(query) + file.write(QString(a) .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")) .toUtf8()); file.close(); @@ -144,6 +146,7 @@ void kchangemanage::on_changeButton_clicked() { file.write(QString(query) .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")) .toUtf8()); + file.write("\n"); file.close(); } @@ -196,11 +199,14 @@ void kchangemanage::on_statusButton_clicked() QMessageBox::information(this, "成功", "设备状态已更新"); modelRent->fetchData(); // 刷新模型数据 + QString a = QString("%1_%2").arg("change@").arg(query); + QFile file("kchange_log.txt"); if (file.open(QIODevice::WriteOnly | QIODevice::Append)) { - file.write(QString(query) - .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")) + file.write(QString(a) + .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss\n")) .toUtf8()); + file.write("\n"); file.close(); }