From 12cba7f5737b02992f783164d902c2a52e9b1aab Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期四, 28 十二月 2023 23:45:50 +0800
Subject: [PATCH] 1228

---
 internal_system_v1/clientmainwindow.cpp |  337 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 334 insertions(+), 3 deletions(-)

diff --git a/internal_system_v1/clientmainwindow.cpp b/internal_system_v1/clientmainwindow.cpp
index 085795b..ab58567 100644
--- a/internal_system_v1/clientmainwindow.cpp
+++ b/internal_system_v1/clientmainwindow.cpp
@@ -1,7 +1,14 @@
-#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),
@@ -9,16 +16,46 @@
 {
     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();
+    searchComName();
 }
 
 ClientMainWindow::~ClientMainWindow()
 {
     delete ui;
 }
+void ClientMainWindow::searchComName()
+{
+    QSqlQuery query;
+    QString sql = QString("select id,name,code from company_info");
+    if(query.exec(sql)){
+        qDebug()<<"size:"<<query.numRowsAffected();
+        while(query.next()){
+            int id = query.value(0).toInt();
+            QString name = query.value(1).toString();
+            QString code = query.value(2).toString();
+            qDebug()<<"com select:"<<id<<name;
+            m_comInfo[name] = id;
+            //m_comCode[name] = code;
+            ui->comboBox_company->addItem(name);
+        }
+    }
+}
 
 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);
@@ -39,8 +76,136 @@
 
     ui->stackedWidget->setCurrentIndex(0);
 
-    m_coverInfo = new CoverInfo(this);
-    m_coverInfo->setParent(ui->tab);
+//    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
+
+    // 闂鏁存敼鍙拌处
+    m_proRecStandingBook = new ProblemRectStandingBook(this);
+    ui->tabWidget->addTab(m_proRecStandingBook,"闂鏁存敼鍙拌处");
+
+    // 鍏宠仈鍚勪釜鍔熻兘妲�
+    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)));
+
+    // 鏂扮増鏈�
+    m_conInfo2 = new ConverInfo2(this);
+    ui->tabWidget->addTab(m_conInfo2,"鍩烘湰淇℃伅");
+
+
+}
+
+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()
@@ -116,3 +281,169 @@
         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