From ac902ab89cc846aaefa5f7fa02776efa527187d3 Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期五, 20 十月 2023 22:57:15 +0800
Subject: [PATCH] 1020

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

diff --git a/internal_system_v1/clientmainwindow.cpp b/internal_system_v1/clientmainwindow.cpp
index f0b28a9..964c67d 100644
--- a/internal_system_v1/clientmainwindow.cpp
+++ b/internal_system_v1/clientmainwindow.cpp
@@ -1,14 +1,423 @@
-#include "clientmainwindow.h"
+锘�#include "clientmainwindow.h"
 #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),
     ui(new Ui::ClientMainWindow)
 {
     ui->setupUi(this);
+
+    ui->dateEdit->setDate(QDate::currentDate());
+    g_auditDate = QDate::currentDate().toString("yyyy-MM-dd");
+    ui->tableWidget->setColumnWidth(0,200);
+    ui->tableWidget->setColumnWidth(1,80);
+    ui->tableWidget->setColumnWidth(2,80);
+    ui->tableWidget->setColumnWidth(4,ui->tableWidget->columnWidth(4)+15);
+    initUi();
 }
 
 ClientMainWindow::~ClientMainWindow()
 {
     delete ui;
 }
+
+void ClientMainWindow::initUi()
+{
+    m_searchInfo = new SearchInfo(this);
+    ui->tabWidget->addTab(m_searchInfo,"淇℃伅鏌ヨ");
+
+    m_coverInfo = new CoverInfo(this);
+    m_coverInfo->setParent(ui->tab);
+
+    m_auditPro = new AuditProject(this);
+    m_auditworkload = new AuditWorkload(this);
+    m_problemMon = new ProblemMoney(this);
+    m_problemCnt = new ProblemCount(this);
+    m_probleRect = new ProblemRectification(this);
+    m_problemNotMon = new ProblemNotMoney(this);
+    m_punish = new Punish(this);
+    m_caseClue = new CaseClue(this);
+
+    ui->stackedWidget->addWidget(m_auditPro);
+    ui->stackedWidget->addWidget(m_auditworkload);
+    ui->stackedWidget->addWidget(m_problemMon);
+    ui->stackedWidget->addWidget(m_problemCnt);
+    ui->stackedWidget->addWidget(m_probleRect);
+    ui->stackedWidget->addWidget(m_problemNotMon);
+    ui->stackedWidget->addWidget(m_punish);
+    ui->stackedWidget->addWidget(m_caseClue);
+
+    ui->stackedWidget->setCurrentIndex(0);
+
+//    m_searchInfo = new SearchInfo(this);
+//    ui->tabWidget->addTab(m_searchInfo,"淇℃伅鏌ヨ");
+
+//    m_coverInfo = new CoverInfo(this);
+//    m_coverInfo->setParent(ui->tab);
+
+    // 闅愯棌鎺夋煇涓�夐」
+    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()
+{
+    ui->stackedWidget->setCurrentIndex(0);
+}
+
+void ClientMainWindow::on_pushButton_auditWorkload_clicked()
+{
+    ui->stackedWidget->setCurrentIndex(1);
+}
+
+void ClientMainWindow::on_pushButton_problemMoney_clicked()
+{
+    ui->stackedWidget->setCurrentIndex(2);
+}
+
+void ClientMainWindow::on_pushButton_problemCount_clicked()
+{
+    ui->stackedWidget->setCurrentIndex(3);
+}
+
+void ClientMainWindow::on_pushButton_problemRectification_clicked()
+{
+    ui->stackedWidget->setCurrentIndex(4);
+}
+
+void ClientMainWindow::on_pushButton_problemNotMoney_clicked()
+{
+    ui->stackedWidget->setCurrentIndex(5);
+}
+
+void ClientMainWindow::on_pushButton_punish_clicked()
+{
+    ui->stackedWidget->setCurrentIndex(6);
+}
+
+void ClientMainWindow::on_pushButton_caseClue_clicked()
+{
+    ui->stackedWidget->setCurrentIndex(7);
+}
+
+void ClientMainWindow::on_pushButton_clicked()
+{
+    QXlsx::Document doc;
+    doc.write(1,2,"mayibase");
+    doc.write(2,2,"is good");
+    doc.write("A1","鐮佽殎杞欢");
+    doc.mergeCells("A1:A4");
+    doc.mergeCells("B1:C1");
+    if(doc.saveAs("Data/test.xlsx"))
+    {
+        qDebug()<<"save is ok";
+    }else{
+        qDebug()<<"save is fail";
+    }
+
+}
+
+void ClientMainWindow::on_pushButton_2_clicked()
+{
+    QXlsx::Document doc("test.xlsx");
+    qDebug()<<doc.read("A1");
+    qDebug()<<doc.read("B1");
+    qDebug()<<doc.read("C1");
+}
+
+void ClientMainWindow::on_pushButton_openXlsxFile_clicked()
+{
+    QStringList files = QFileDialog::getOpenFileNames(this,"鎵撳紑鐢靛瓙鏂囨。","./","*.xlsx *.xls");
+    qDebug()<<"files:"<<files;
+    for(auto f:files){
+        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::calc()
+{
+    for(int i=1;i<ui->tableWidget->rowCount();++i){
+        int sum = 0;
+        for(int j=4;j<ui->tableWidget->columnCount();++j){
+            sum += ui->tableWidget->item(i,j)->text().toInt();
+        }
+        ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(sum)));
+
+        if(i==7){ // 瀛﹀巻
+            int val = 0;
+            for(int j = 8;j<=10;++j){
+                val += ui->tableWidget->item(j,3)->text().toInt();
+            }
+            ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val)));
+        }
+
+        if(i==11){ // 鑱岀О
+            int val = 0;
+            for(int j = 12;j<=15;++j){
+                val += ui->tableWidget->item(j,3)->text().toInt();
+            }
+            ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val)));
+        }
+
+        if(i==20){ // 鐭ヨ瘑缁撴瀯
+            int val = 0;
+            for(int j = 21;j<=28;++j){
+                val += ui->tableWidget->item(j,3)->text().toInt();
+            }
+            ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val)));
+        }
+
+        if(i==30){ // 瀹¤椤圭洰
+            int val = 0;
+            for(int j = 31;j<=38;++j){
+                val += ui->tableWidget->item(j,3)->text().toInt();
+            }
+            ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val)));
+        }
+
+        if(i==41){ // 瀹¤鍙戠幇闂閲戦
+            int val = 0;
+            for(int j = 42;j<=43;++j){
+                val += ui->tableWidget->item(j,3)->text().toInt();
+            }
+            ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val)));
+        }
+
+        if(i==43){ // 鍚堣鎬ч棶棰橀噾棰�
+            int val = 0;
+            for(int j = 44;j<=51;++j){
+                val += ui->tableWidget->item(j,3)->text().toInt();
+            }
+            ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val)));
+        }
+
+        if(i==52){ // 瀹¤鍙戠幇闂涓暟
+            int val = 0;
+            for(int j = 53;j<=54;++j){
+                val += ui->tableWidget->item(j,3)->text().toInt();
+            }
+            ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val)));
+        }
+
+        if(i==54){ // 闈為噾棰濈被闂涓暟
+            int val = 0;
+            for(int j = 55;j<=58;++j){
+                val += ui->tableWidget->item(j,3)->text().toInt();
+            }
+            ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val)));
+        }
+
+        if(i==59){ // 瀹¤鍙戠幇闂鏁存敼(閲戦绫�)
+            int val = 0;
+            for(int j = 60;j<=65;++j){
+                val += ui->tableWidget->item(j,3)->text().toInt();
+            }
+            ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val)));
+        }
+
+        if(i==66){ // 瀹¤鍙戠幇闂鏁存敼(闈為噾棰濈被)
+            int val = 0;
+            for(int j = 67;j<=70;++j){
+                val += ui->tableWidget->item(j,3)->text().toInt();
+            }
+            ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val)));
+        }
+
+        if(i==71){ // 澶勫垎
+            int val = 0;
+            for(int j = 72;j<=74;++j){
+                val += ui->tableWidget->item(j,3)->text().toInt();
+            }
+            ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val)));
+        }
+    }
+}
+
+void ClientMainWindow::on_dateEdit_dateChanged(const QDate &date)
+{
+    g_auditDate = date.toString("yyyy-MM-dd");
+    qDebug()<<g_auditDate;
+}
+
+void ClientMainWindow::on_tableWidget_activated(const QModelIndex &index)
+{
+    qDebug()<<__FUNCTION__<<index;
+}
+
+void ClientMainWindow::on_tableWidget_clicked(const QModelIndex &index)
+{
+    qDebug()<<__FUNCTION__<<index;
+}
+
+void ClientMainWindow::on_tableWidget_itemEntered(QTableWidgetItem *item)
+{
+    qDebug()<<__FUNCTION__<<item;
+}
+
+void ClientMainWindow::on_tableWidget_cellEntered(int row, int column)
+{
+    qDebug()<<__FUNCTION__<<row<<column;
+    calc();
+}
+
+void ClientMainWindow::on_tableWidget_cellClicked(int row, int column)
+{
+    qDebug()<<__FUNCTION__<<row<<column;
+    calc();
+}

--
Gitblit v1.8.0