From dfef23453ad106efad95e40cbeaa191d8b3f6961 Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期四, 21 九月 2023 23:07:45 +0800
Subject: [PATCH] 0921

---
 internal_system_v1/clientmainwindow.cpp |  160 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 160 insertions(+), 0 deletions(-)

diff --git a/internal_system_v1/clientmainwindow.cpp b/internal_system_v1/clientmainwindow.cpp
index 5a4c0e5..fc02ffa 100644
--- a/internal_system_v1/clientmainwindow.cpp
+++ b/internal_system_v1/clientmainwindow.cpp
@@ -2,6 +2,13 @@
 #include "ui_clientmainwindow.h"
 #include <QDebug>
 #include <QFileDialog>
+#include <QMessageBox>
+#include <QSqlQuery>
+#include <QSqlRecord>
+
+extern int g_comId;
+extern QString g_dataRootPath;
+QString g_auditDate;
 
 ClientMainWindow::ClientMainWindow(QWidget *parent) :
     QMainWindow(parent),
@@ -9,6 +16,8 @@
 {
     ui->setupUi(this);
 
+    ui->dateEdit->setDate(QDate::currentDate());
+    g_auditDate = QDate::currentDate().toString("yyyy-MM-dd");
     initUi();
 }
 
@@ -54,8 +63,119 @@
     // 闅愯棌鎺夋煇涓�夐」
     ui->tabWidget->removeTab(3); // OK
 
+    // 鍏宠仈鍚勪釜鍔熻兘妲�
+    connect(m_coverInfo,SIGNAL(sendComName(QString)),m_searchInfo,SLOT(addComName(QString)));
+
+    connect(this,SIGNAL(sendDataToAuditProject(QVariantList)),m_auditPro,SLOT(showData(QVariantList)));
+    connect(this,SIGNAL(sendDataToAuditWorkLoad(QVariantList)),m_auditworkload,SLOT(showData(QVariantList)));
+    connect(this,SIGNAL(sendDataToProblemMoney(QVariantList)),m_problemMon,SLOT(showData(QVariantList)));
+    connect(this,SIGNAL(sendDataToProblemCount(QVariantList)),m_problemCnt,SLOT(showData(QVariantList)));
+    connect(this,SIGNAL(sendDataToProblemRectification(QVariantList)),m_probleRect,SLOT(showData(QVariantList)));
+    connect(this,SIGNAL(sendDataToProblemNoMoney(QVariantList)),m_problemNotMon,SLOT(showData(QVariantList)));
+    connect(this,SIGNAL(sendDataToPunish(QVariantList)),m_punish,SLOT(showData(QVariantList)));
+    connect(this,SIGNAL(sendDataToCaseClue(QVariantList)),m_caseClue,SLOT(showData(QVariantList)));
 
 
+}
+
+void ClientMainWindow::readDataFromExcel(QString path)
+{
+    QAxObject excel("Excel.Application");
+    excel.setProperty("Visible",false);
+    excel.setProperty("DisplayAlerts",false);
+    qDebug()<<"open:"<<path;
+    qDebug()<<"excel:"<<excel.className();
+    QAxObject * wbs = excel.querySubObject("WorkBooks");
+    QAxObject * wb = wbs->querySubObject("Open(QString&)",path);
+    //QAxObject* pWorkBook = excel.querySubObject("ActiveWorkBook");
+    //QAxObject* pWorkSheets = pWorkBook->querySubObject("Sheets");//鑾峰彇宸ヤ綔琛�
+    QAxObject * shs = wb->querySubObject("Sheets"); // WorkSheets 涔熷彲浠�
+    int cnt = shs->property("Count").toInt();
+    qDebug()<<"cnt="<<cnt;
+    for(int i=0;i<cnt;++i){
+        QAxObject * sheet = shs->querySubObject("Item(int)", i+1);
+        QString sheetName = sheet->property("Name").toString();
+        qDebug()<<"sh name:"<<sheetName;
+        QAxObject *usedRange = sheet->querySubObject("UsedRange");
+        int rows = usedRange->querySubObject("Rows")->property("Count").toInt();
+        int columns = usedRange->querySubObject("Columns")->property("Count").toInt();
+        qDebug()<<"r--c:"<<rows<<columns;
+        QVariant  val = usedRange->dynamicCall("Value"); // 鎷垮埌浜岀淮琛ㄦ牸
+        QVariantList valRows = val.toList();
+        // 鍏徃鍚嶃�佺粺涓�淇$敤浠g爜
+        QVariant uniCode = valRows[5].toList().at(1);
+        QVariant comName = valRows[6].toList().at(1);
+        if(comName.isValid()){
+            if(!readDataFromSQL(comName.toString())){
+                QMessageBox::information(this,"瀵煎叆涓柇","璇风‘璁ゅ叕鍙稿熀鏈俊鎭凡缁忓瓨鍦�");
+                break;
+                //return;
+            }
+            qDebug()<<comName<<g_comId;
+        }
+
+        // 瀹¤椤圭洰
+        QVariantList audit_project;
+        for(int i=10;i<20;++i){
+            audit_project.append(valRows[i].toList().at(4));
+        }
+        qDebug()<<audit_project;
+
+        // 瀹¤宸ヤ綔閲�
+        QVariantList audit_workload;
+        for(int i=20;i<21;++i){
+            audit_workload.append(valRows[i].toList().at(4));
+        }
+
+        // 闂閲戦
+        QVariantList problem_money;
+        for(int i=21;i<32;++i){
+            problem_money.append(valRows[i].toList().at(4));
+        }
+
+        // 闂涓暟
+        QVariantList problem_count;
+        for(int i=32;i<39;++i){
+            problem_count.append(valRows[i].toList().at(4));
+        }
+
+        // 闂鏁存敼(閲戦绫�)
+        QVariantList problem_rectification;
+        for(int i=39;i<46;++i){
+            problem_rectification.append(valRows[i].toList().at(4));
+        }
+
+        // 闂鏁存敼(闈為噾棰濈被)
+        QVariantList problem_nomoney;
+        for(int i=46;i<51;++i){
+            problem_nomoney.append(valRows[i].toList().at(4));
+        }
+
+        // 澶勫垎
+        QVariantList punish;
+        for(int i=51;i<55;++i){
+            punish.append(valRows[i].toList().at(4));
+        }
+
+        // 妗堜欢绾跨储
+        QVariantList case_clue;
+        for(int i=55;i<57;++i){
+            case_clue.append(valRows[i].toList().at(4));
+        }
+        qDebug()<<case_clue;
+
+        emit sendDataToAuditProject(audit_project);
+        emit sendDataToAuditWorkLoad(audit_workload);
+        emit sendDataToProblemMoney(problem_money);
+        emit sendDataToProblemCount(problem_count);
+        emit sendDataToProblemRectification(problem_rectification);
+        emit sendDataToProblemNoMoney(problem_nomoney);
+        emit sendDataToPunish(punish);
+        emit sendDataToCaseClue(case_clue);
+
+    }
+    wbs->dynamicCall("Close()");
+    excel.dynamicCall("Quit(void)");
 }
 
 void ClientMainWindow::on_pushButton_auditPro_clicked()
@@ -131,3 +251,43 @@
         ui->listWidget->addItem(f);
     }
 }
+
+void ClientMainWindow::on_pushButton_importExcel_clicked()
+{
+    QString path = QFileDialog::getOpenFileName(this,"閫夋嫨琛ㄦ牸:鍗曚綅鍐呴儴瀹¤涓氬姟鎯呭喌琛�","./","excel(*涓氬姟鎯呭喌琛�*.xls)");
+    qDebug()<<"path:"<<path;
+    if(path.size() > 1){
+        readDataFromExcel(path);
+    }
+}
+
+bool ClientMainWindow::readDataFromSQL(QString name)
+{
+    QSqlQuery query;
+    QString sql;
+    if(name.size() > 1){
+        sql = QString("select id,name from company_info where name='%1'").arg(name);
+        qDebug()<<"鏌ヨ鍏徃sql:"<<sql;
+        if(query.exec(sql)){
+            qDebug()<<"OK sql"<<__FUNCTION__;
+            QSqlRecord res = query.record();
+            qDebug()<<query.size()<<query.numRowsAffected()<<res.count();
+            if(!query.next()){
+              QMessageBox::information(this,"瀵煎叆澶辫触","鍏徃鍚嶄笉瀛樺湪搴撲腑锛岃鍏堝鍏ュ熀鏈俊鎭〃");
+            }else{
+                g_comId = query.value(0).toInt();
+                return true;
+            }
+        }else{
+            qDebug()<<"fail sql"<<__FUNCTION__;
+        }
+    }
+    return false;
+
+}
+
+void ClientMainWindow::on_dateEdit_dateChanged(const QDate &date)
+{
+    g_auditDate = date.toString("yyyy-MM-dd");
+    qDebug()<<g_auditDate;
+}

--
Gitblit v1.8.0