From 20ffcfb5507daf34f81346ca3dfa4c031e7b2fe3 Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期日, 27 四月 2025 22:13:53 +0800
Subject: [PATCH] 0427

---
 internal_system_v1/problemrectification.cpp |   74 +++++++++++++++++++++++++++++++++----
 1 files changed, 66 insertions(+), 8 deletions(-)

diff --git a/internal_system_v1/problemrectification.cpp b/internal_system_v1/problemrectification.cpp
index 8452de3..7edc4f8 100644
--- a/internal_system_v1/problemrectification.cpp
+++ b/internal_system_v1/problemrectification.cpp
@@ -1,10 +1,17 @@
-#include "problemrectification.h"
+锘�#include "problemrectification.h"
 #include "ui_problemrectification.h"
 
 #include <QFileDialog>
 #include <QPushButton>
 #include <QSqlQuery>
 #include <QDebug>
+#include <QProcess>
+
+#pragma execution_character_set("utf-8")
+
+extern int g_comId;
+extern QString g_auditDate;
+extern QString g_dataRootPath;
 
 ProblemRectification::ProblemRectification(QWidget *parent) :
     QMainWindow(parent),
@@ -12,7 +19,7 @@
 {
     ui->setupUi(this);
     ui->tableWidget->setColumnWidth(0,300);
-    m_comId = 1;
+    m_comId = g_comId;
     for(int i=0;i<ui->tableWidget->rowCount();++i){
         QPushButton *btn = new QPushButton("涓婁紶",this);
         ui->tableWidget->setCellWidget(i,3,btn);
@@ -20,9 +27,27 @@
             QStringList files = QFileDialog::getOpenFileNames();
             QString str;
             for(auto f:files){
-                str += f + " ";
+                copyFile(f);
+                QString targetPath = g_dataRootPath + QString("/%1/%2").arg(g_comId).arg(f.split("/").back());
+                str += targetPath + " ";
             }
             ui->tableWidget->setItem(i,4,new QTableWidgetItem(str));
+        });
+
+        // 鏌ョ湅浣愯瘉
+        QPushButton *lookBtn = new QPushButton("鏌ョ湅",this);
+        ui->tableWidget->setCellWidget(i,5,lookBtn);
+        connect(lookBtn,&QPushButton::clicked,this,[=]{
+            QStringList files = ui->tableWidget->item(i,4)->text().split(" ");
+            if(files.size() > 0 ){
+                QString f = files.at(0);
+                qDebug()<<"f:"<<f;
+                if(f.size() > 10){
+                    f.replace("/", "\\");    //win32涓嬫浛鎹㈡枩鏉�
+                    QProcess process;
+                    process.startDetached("explorer", QStringList() << QString("/select,") << QString("%1").arg(f));
+                }
+            }
         });
     }
 }
@@ -32,11 +57,31 @@
     delete ui;
 }
 
+void ProblemRectification::copyFile(QString path)
+{
+    QStringList paths = path.split("/");
+    QString comPath = g_dataRootPath + QString("/%1").arg(g_comId);
+    QDir comDir(comPath);
+    if(!comDir.exists()){
+        // 鍒涘缓璺緞
+        if(QDir().mkdir(comPath)){
+            qDebug()<<"鍒涘缓鐩綍鎴愬姛:"<<comPath;
+        }
+    }
+    QString targetPath = g_dataRootPath + QString("/%1/%2").arg(g_comId).arg(paths.back());
+    qDebug()<<"targetPath"<<targetPath;
+    if(QFile::copy(path,targetPath)){
+        qDebug()<<"鎴愬姛鎷疯礉:"<<path;
+    }else{
+        qDebug()<<"鎷疯礉澶辫触"<<path;
+    }
+}
+
 void ProblemRectification::on_tableWidget_clicked(const QModelIndex &index)
 {
-    int allCnt = 0;
+    double allCnt = 0;
     for(int i=1;i<ui->tableWidget->rowCount();++i){
-        allCnt += ui->tableWidget->item(i,2)->text().toInt();
+        allCnt += ui->tableWidget->item(i,2)->text().toDouble();
     }
     ui->tableWidget->setItem(0,2,new QTableWidgetItem(QString::number(allCnt)));
 }
@@ -48,13 +93,13 @@
 
     QString values = "";
     for(int i=0;i<ui->tableWidget->rowCount();++i){
-        values += QString("('%1','%2',%3,'%4',%5),").arg(ui->tableWidget->item(i,0)->text())
+        values += QString("('%1','%2',%3,'%4',%5,'%6'),").arg(ui->tableWidget->item(i,0)->text())
                 .arg(ui->tableWidget->item(i,1)->text()).arg(ui->tableWidget->item(i,2)->text().toInt())
                 .arg(ui->tableWidget->item(i,4)->text())
-                .arg(m_comId);
+                .arg(g_comId).arg(g_auditDate);
     }
     values = values.left(values.length()-1);
-    QString sql = QString("insert into problem_rectification (kpi_name,code,num,evidences,com_id) values %1").arg(values);
+    QString sql = QString("insert into problem_rectification (kpi_name,code,num,evidences,com_id,time) values %1").arg(values);
     qDebug()<<sql;
     QSqlQuery query;
     if(query.exec(sql)){
@@ -62,4 +107,17 @@
     }else{
         qDebug()<<"fail sql"<<__FUNCTION__;
     }
+    static int cnt=1;
+    ui->pushButton->setText(QString("鎻愪氦--闂鏁存敼_%1娆�").arg(cnt++));
+}
+
+void ProblemRectification::showData(QVariantList vlist)
+{
+    for(int i=0;i<vlist.size();++i){
+        if(vlist.at(i).isValid()){
+            ui->tableWidget->setItem(i,2,new QTableWidgetItem(vlist.at(i).toString()));
+        }
+    }
+    // 鍐嶇粺璁′竴鎶�
+    on_tableWidget_clicked(QModelIndex());
 }

--
Gitblit v1.8.0