wumu
2025-04-27 20ffcfb5507daf34f81346ca3dfa4c031e7b2fe3
internal_system_v1/clientmainwindow.cpp
@@ -159,6 +159,16 @@
    //qDebug()<<"发射加载电子表格的信号";
    delay(1000);
    // 关联更新公司名下拉框的信息表
    connect(m_conInfo2,SIGNAL(updateComboListSignal(QMap<QString,ComInfo>&)),this,SLOT(updateComboList(QMap<QString,ComInfo>&)));
    connect(m_conInfo2,SIGNAL(updateComboListSignal(QMap<QString,ComInfo>&)),m_threeMPList,SLOT(updateComboList(QMap<QString,ComInfo>&)));
    // 控制表格只显示四以后的内容,前面的1-3部分给隐藏掉
    for(int i=1;i<=29;++i){
        ui->tableWidget->hideRow(i);
    }
    ui->tableWidget->hideRow(40);
}
void ClientMainWindow::readDataFromExcel(QString path)
@@ -405,67 +415,92 @@
        }
        if(i==30){ // 审计项目
            int val = 0;
            for(int j = 31;j<=38;++j){
                val += ui->tableWidget->item(j,3)->text().toInt();
            // 6列都得求和
            for(int k=0;k<6;++k){
                int val = 0;
                for(int j = 31;j<=38;++j){
                    val += ui->tableWidget->item(j,3+k)->text().toInt();
                }
                ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val)));
            }
            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();
            for(int k=0;k<6;++k){
                double val = 0;
                for(int j = 42;j<=43;++j){
                    val += ui->tableWidget->item(j,3+k)->text().toDouble();
                }
                ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val)));
            }
            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();
            for(int k=0;k<6;++k){
                double val = 0;
                for(int j = 44;j<=51;++j){
                    val += ui->tableWidget->item(j,3+k)->text().toDouble();
                }
                ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val)));
            }
            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();
            for(int k=0;k<6;++k){
                int val = 0;
                for(int j = 53;j<=54;++j){
                    val += ui->tableWidget->item(j,3+k)->text().toInt();
                }
                ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val)));
            }
            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();
            for(int k=0;k<6;++k){
                int val = 0;
                for(int j = 55;j<=58;++j){
                    val += ui->tableWidget->item(j,3+k)->text().toInt();
                }
                ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val)));
            }
            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();
            for(int k=0;k<6;++k){
                double val = 0;
                for(int j = 60;j<=65;++j){
                    val += ui->tableWidget->item(j,3+k)->text().toDouble();
                }
                ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val)));
            }
            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();
            for(int k=0;k<6;++k){
                int val = 0;
                for(int j = 67;j<=70;++j){
                    val += ui->tableWidget->item(j,3+k)->text().toInt();
                }
                ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val)));
            }
            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();
            for(int k=0;k<6;++k){
                int val = 0;
                for(int j = 72;j<=74;++j){
                    val += ui->tableWidget->item(j,3+k)->text().toInt();
                }
                ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val)));
            }
            ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val)));
        }
    }
}
@@ -513,8 +548,10 @@
    for(int i=1;i<ui->tableWidget->rowCount();++i){
        qDebug()<<"data:"<<ui->tableWidget->item(i,1)->text()<<" "<<ui->tableWidget->item(i,3)->text();
    }
    // 先判断公司在不在,不在则新增,在则修改
    QString sql = QString("select name from comprehensive_entry_info where name='%1'").arg(ui->comboBox_company->currentText());
    // 先判断公司、年份在不在,不在则新增,在则修改
    QString year = ui->dateEdit_year->text();
    QString name = ui->comboBox_company->currentText();
    QString sql = QString("select name from comprehensive_entry_info where name='%1' and year='%2'").arg(name).arg(year);
    qDebug()<<"sql select:"<<sql;
    QSqlQuery query;
    bool nameExsit = false;
@@ -598,11 +635,12 @@
                    _030903,\
                    _031000,\
                    _031001,\
                company_type\
                company_type,\
                year\
                      ) values ('%1','%2','%3','%4','%5','%6','%7','%8','%9','%10','%11','%12','%13','%14','%15','%16','%17','%18','%19','%20','%21','%22','%23','%24','%25','%26'"
                              ",'%27','%28','%29','%30','%31','%32','%33','%34','%35','%36','%37','%38','%39','%40','%41','%42','%43','%44','%45','%46','%47','%48','%49','%50','%51'"
                              ",'%52','%53','%54','%55','%56','%57','%58','%59','%60','%61','%62','%63','%64','%65','%66','%67','%68','%69','%70','%71','%72','%73','%74','%75','%76'"
                              ",'%77','%78')").arg(ui->comboBox_company->currentText()).arg(ui->tableWidget->item(1,3)->text())
                              ",'%77','%78','%79')").arg(ui->comboBox_company->currentText()).arg(ui->tableWidget->item(1,3)->text())
                .arg(ui->tableWidget->item(2,3)->text()).arg(ui->tableWidget->item(3,3)->text()).arg(ui->tableWidget->item(4,3)->text()).arg(ui->tableWidget->item(5,3)->text()).arg(ui->tableWidget->item(6,3)->text())
                .arg(ui->tableWidget->item(7,3)->text()).arg(ui->tableWidget->item(8,3)->text()).arg(ui->tableWidget->item(9,3)->text()).arg(ui->tableWidget->item(10,3)->text()).arg(ui->tableWidget->item(11,3)->text())
                .arg(ui->tableWidget->item(12,3)->text()).arg(ui->tableWidget->item(13,3)->text()).arg(ui->tableWidget->item(14,3)->text()).arg(ui->tableWidget->item(15,3)->text()).arg(ui->tableWidget->item(16,3)->text())
@@ -618,7 +656,7 @@
                .arg(ui->tableWidget->item(62,3)->text()).arg(ui->tableWidget->item(63,3)->text()).arg(ui->tableWidget->item(64,3)->text()).arg(ui->tableWidget->item(65,3)->text()).arg(ui->tableWidget->item(66,3)->text())
                .arg(ui->tableWidget->item(67,3)->text()).arg(ui->tableWidget->item(68,3)->text()).arg(ui->tableWidget->item(69,3)->text()).arg(ui->tableWidget->item(70,3)->text()).arg(ui->tableWidget->item(71,3)->text())
                .arg(ui->tableWidget->item(72,3)->text()).arg(ui->tableWidget->item(73,3)->text()).arg(ui->tableWidget->item(74,3)->text()).arg(ui->tableWidget->item(75,3)->text()).arg(ui->tableWidget->item(76,3)->text())
                .arg(ui->comboBox->currentText());
                .arg(ui->comboBox->currentText()).arg(ui->dateEdit_year->text());
        qDebug()<<"comprehensive_entry_info insert sql:"<<sql;
        if(query.exec(sql)){
@@ -639,7 +677,7 @@
                      ",_030510='%42',_030520='%43',_030521='%44',_030522='%45',_030523='%46',_030524='%47',_030525='%48',_030526='%49',_030527='%50',_030528='%51'"
                      ",_030600='%52',_030610='%53',_030620='%54',_030621='%55',_030622='%56',_030623='%57',_030624='%58',_030700='%59',_030701='%60',_030702='%61'"
                      ",_030703='%62',_030704='%63',_030705='%64',_030706='%65',_030800='%66',_030801='%67',_030802='%68',_030803='%69',_030804='%70',_030900='%71'"
                      ",_030901='%72',_030902='%73',_030903='%74',_031000='%75',_031001='%76',company_type='%77' where name='%78'").arg(ui->tableWidget->item(1,3)->text())
                      ",_030901='%72',_030902='%73',_030903='%74',_031000='%75',_031001='%76',company_type='%77' where name='%78' and year='%79'").arg(ui->tableWidget->item(1,3)->text())
                .arg(ui->tableWidget->item(2,3)->text()).arg(ui->tableWidget->item(3,3)->text()).arg(ui->tableWidget->item(4,3)->text()).arg(ui->tableWidget->item(5,3)->text()).arg(ui->tableWidget->item(6,3)->text())
                .arg(ui->tableWidget->item(7,3)->text()).arg(ui->tableWidget->item(8,3)->text()).arg(ui->tableWidget->item(9,3)->text()).arg(ui->tableWidget->item(10,3)->text()).arg(ui->tableWidget->item(11,3)->text())
                .arg(ui->tableWidget->item(12,3)->text()).arg(ui->tableWidget->item(13,3)->text()).arg(ui->tableWidget->item(14,3)->text()).arg(ui->tableWidget->item(15,3)->text()).arg(ui->tableWidget->item(16,3)->text())
@@ -655,7 +693,7 @@
                .arg(ui->tableWidget->item(62,3)->text()).arg(ui->tableWidget->item(63,3)->text()).arg(ui->tableWidget->item(64,3)->text()).arg(ui->tableWidget->item(65,3)->text()).arg(ui->tableWidget->item(66,3)->text())
                .arg(ui->tableWidget->item(67,3)->text()).arg(ui->tableWidget->item(68,3)->text()).arg(ui->tableWidget->item(69,3)->text()).arg(ui->tableWidget->item(70,3)->text()).arg(ui->tableWidget->item(71,3)->text())
                .arg(ui->tableWidget->item(72,3)->text()).arg(ui->tableWidget->item(73,3)->text()).arg(ui->tableWidget->item(74,3)->text()).arg(ui->tableWidget->item(75,3)->text()).arg(ui->tableWidget->item(76,3)->text())
                .arg(ui->comboBox->currentText()).arg(ui->comboBox_company->currentText());
                .arg(ui->comboBox->currentText()).arg(ui->comboBox_company->currentText()).arg(ui->dateEdit_year->text());
        qDebug()<<"update sql:"<<sql;
        if(query.exec(sql)){
@@ -672,6 +710,15 @@
void ClientMainWindow::on_comboBox_currentIndexChanged(const QString &arg1)
{
    // 是否自动清除
    if(ui->checkBox->isChecked()){
        qDebug()<<"自动清除值";
        for(int i=30;i<ui->tableWidget->rowCount();++i){
            for(int j=4;j<ui->tableWidget->columnCount();++j){
                ui->tableWidget->setItem(i,j,new QTableWidgetItem("0"));
            }
        }
    }
    qDebug()<<"当前"<<arg1;
    if(arg1 == "企业(不含金融企业)"){
        ui->tableWidget->setItemDelegateForColumn(4,m_editDelegate);
@@ -699,6 +746,20 @@
        ui->tableWidget->setItemDelegateForColumn(8,m_editDelegate);
    }else{
        ui->tableWidget->setItemDelegateForColumn(8,m_tableItemDelegate);
    }
    // 修改背景色
    QColor selectColor(142,213,213);
    QColor unSelectColor(255,255,255);
    QMap<QString,int> index={{"企业(不含金融企业)",4},{"金融企业",5},{"机关",6},{"事业单位",7},{"其他",8}};
    for(int i=4;i<9;++i){
        for(int j=0;j<ui->tableWidget->rowCount();++j){
            if(i==index[arg1]){
                ui->tableWidget->item(j,i)->setBackgroundColor(selectColor);
            }else{
                ui->tableWidget->item(j,i)->setBackgroundColor(unSelectColor);
            }
        }
    }
}
@@ -737,3 +798,546 @@
}
void ClientMainWindow::updateComboList(QMap<QString, ComInfo> &nameAndComInfos)
{
    // 先清除,再重新添加
    ui->comboBox_company->clear();
    for(auto kv:nameAndComInfos.keys()){
        ui->comboBox_company->addItem(kv);
    }
}
void ClientMainWindow::on_pushButton_save_export_clicked()
{
    // 获取当前公司名字、及表格数据
    QString name = ui->comboBox_company->currentText();
    NeiShenZongHeInfo nszh;
    nszh.name = name; // 给公司赋值
    qDebug()<<"保存导出:"<<name;
    // 四 项目审计  单位 个
    for(int i=0;i<5;++i){
        nszh.code_030300[i] = ui->tableWidget->item(30,4+i)->text().toInt();
    }
    qDebug()<<"保存导出:code_030300";
    for(int i=0;i<5;++i){
        nszh.code_030301[i] = ui->tableWidget->item(31,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030302[i] = ui->tableWidget->item(32,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030303[i] = ui->tableWidget->item(33,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030304[i] = ui->tableWidget->item(34,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030305[i] = ui->tableWidget->item(35,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030306[i] = ui->tableWidget->item(36,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030307[i] = ui->tableWidget->item(37,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030308[i] = ui->tableWidget->item(38,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030310[i] = ui->tableWidget->item(39,4+i)->text().toInt();
    }
    qDebug()<<"保存导出:code_030310";
    // 六、审计发现问题金额 单位 元
    for(int i=0;i<5;++i){
        nszh.code_030500[i] = ui->tableWidget->item(41,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030510[i] = ui->tableWidget->item(42,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030520[i] = ui->tableWidget->item(43,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030521[i] = ui->tableWidget->item(44,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030522[i] = ui->tableWidget->item(45,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030523[i] = ui->tableWidget->item(46,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030524[i] = ui->tableWidget->item(47,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030525[i] = ui->tableWidget->item(48,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030526[i] = ui->tableWidget->item(49,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030527[i] = ui->tableWidget->item(50,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030528[i] = ui->tableWidget->item(51,4+i)->text().toDouble();
    }
    qDebug()<<"保存导出:code_030528";
    // 七、审计发现问题个数
    for(int i=0;i<5;++i){
        nszh.code_030600[i] = ui->tableWidget->item(52,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030610[i] = ui->tableWidget->item(53,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030620[i] = ui->tableWidget->item(54,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030621[i] = ui->tableWidget->item(55,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030622[i] = ui->tableWidget->item(56,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030623[i] = ui->tableWidget->item(57,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030624[i] = ui->tableWidget->item(58,4+i)->text().toInt();
    }
    qDebug()<<"保存导出:code_030624";
    // 八、审计发现问题整改(金额类)  单位 元
    for(int i=0;i<5;++i){
        nszh.code_030700[i] = ui->tableWidget->item(59,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030701[i] = ui->tableWidget->item(60,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030702[i] = ui->tableWidget->item(61,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030703[i] = ui->tableWidget->item(62,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030704[i] = ui->tableWidget->item(63,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030705[i] = ui->tableWidget->item(64,4+i)->text().toDouble();
    }
    for(int i=0;i<5;++i){
        nszh.code_030706[i] = ui->tableWidget->item(65,4+i)->text().toDouble();
    }
    qDebug()<<"保存导出:code_030706";
    // 九、审计发现问题整改(非金额类)  单位 个
    for(int i=0;i<5;++i){
        nszh.code_030800[i] = ui->tableWidget->item(66,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030801[i] = ui->tableWidget->item(67,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030802[i] = ui->tableWidget->item(68,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030803[i] = ui->tableWidget->item(69,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030804[i] = ui->tableWidget->item(70,4+i)->text().toInt();
    }
    qDebug()<<"保存导出:code_030804";
    // 十、根据审计建议给予党纪、政务和内部纪律处分  单位 人
    for(int i=0;i<5;++i){
        nszh.code_030900[i] = ui->tableWidget->item(71,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030901[i] = ui->tableWidget->item(72,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030902[i] = ui->tableWidget->item(73,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_030903[i] = ui->tableWidget->item(74,4+i)->text().toInt();
    }
    qDebug()<<"保存导出:code_030903";
    // 十一、向司法机关移送或报告案件线索
    for(int i=0;i<5;++i){
        nszh.code_031000[i] = ui->tableWidget->item(75,4+i)->text().toInt();
    }
    for(int i=0;i<5;++i){
        nszh.code_031001[i] = ui->tableWidget->item(76,4+i)->text().toInt();
    }
    qDebug()<<"保存导出:code_031001";
    // 导出保存
    ExportToFile etf(this);
    etf.saveToExcelFromNeiShenZonghe(name,nszh);
}
void ClientMainWindow::on_comboBox_company_currentTextChanged(const QString &arg1)
{
    qDebug()<<"公司名字发生了变化:"<<arg1;
    // 根据公司名来、年份查询所有的数据,根据查询到的企业类型来给指定的列写入数据
    QString year = ui->dateEdit_year->text();
    QString sql = QString("select * from comprehensive_entry_info where name='%1' and year='%2'").arg(arg1).arg(year);
    QSqlQuery query;
    if(query.exec(sql))
    {
        qDebug()<<"查询到综合表信息:"<<arg1;
        int row=0;
        while(query.next()){ // 添加结果集
            row++;
            QString com_type = query.value(78).toString();
            int column_index = 4;
            if(com_type == "企业(不含金融企业)"){
                column_index = 4;
            }else if(com_type == "金融企业"){
                column_index = 5;
            }else if(com_type == "机关"){
                column_index = 6;
            }else if(com_type == "事业单位"){
                column_index = 7;
            }else if(com_type == "其他"){
                column_index = 8;
            }
            // 给每项赋值
            for(int i=31;i<78;++i){
                ui->tableWidget->setItem(i-1,column_index,new QTableWidgetItem(query.value(i).toString()));
            }
        }
        qDebug()<<"row:"<<row;
        if(row == 0){
            // 就要清空目前所有的内容,都置为0
            for(int i=4;i<9;++i){
                for(int j=30;j<78;++j){
                    ui->tableWidget->setItem(j,i,new QTableWidgetItem("0"));
                }
            }
        }
    }else{
        qDebug()<<"没有查询到综合表信息:"<<arg1;
    }
}
void ClientMainWindow::on_pushButton_merge_3And1_clicked()
{
    // 按年度和公司名,进行全部的合并,合并的时候需要查询出字段来,按字段合并
    // 查询三合一的表,合并到综合表,合并之前把内容全部都存储一遍,然后再统一插入或者更新进表格中
    QString name = ui->comboBox_company->currentText();
    QString year = ui->dateEdit_year->text();
    qDebug()<<"name:"<<ui->comboBox_company->currentText()<<" year:"<<ui->dateEdit_year->text();
    QString sql = QString("select * from standing_book_info where 责任主体名称='%1' and 审计年度='%2'").arg(name).arg(year);
    qDebug()<<"sql:"<<sql;
    // 准备键值对,来保存字段名和三合一的结果,通过结果拿字段名,接着再拿出对应的值来组sql语句
    QMap<QString,QString> names_map;
    QMap<QString,double> infos_map;
    // 四 审计项目
    names_map["贯彻落实国家重大政策措施审计"] = "_030301";
    names_map["财政财务收支审计"] = "_030302";
    names_map["固定资产投资审计"] = "_030303";
    names_map["内部控制和风险管理审计"] = "_030304";
    names_map["经济责任审计"] = "_030305";
    names_map["信息责任审计"] = "_030306";
    names_map["境外审计"] = "_030307";
    names_map["其他"] = "_030308";
    names_map["外拓外包项目"] = "_030310";
    // 六 审计发现问题金额
    names_map["其中:绩效类问题金额"] = "_030510";
    names_map["合规性问题金额"] = "_030520";
    names_map["其中:会计核算方面"] = "_030521";
    names_map["违规使用资金"] = "_030522";
    names_map["截留、沉淀资金"] = "_030523";
    names_map["损失浪费"] = "_030524";
    names_map["挪用资金"] = "_030525";
    names_map["透漏税费"] = "_030526";
    names_map["违规取得收入"] = "_030527";
    names_map["其他"] = "_030528";
    // 七 审计发现问题个数
    names_map["其中:金额类问题个数"] = "_030610";
    names_map["非金额类问题个数"] = "_030620";
    names_map["其中:国家政策措施落实方面"] = "_030621";
    names_map["发展规划与战略决策方面"] = "_030622";
    names_map["内部控制与风险管理方面"] = "_030623";
    names_map["其他"] = "_030624";
    // 八 审计发现问题整改(金额类)
    names_map["其中:调整会计账目"] = "_030701";
    names_map["收回资金"] = "_030702";
    names_map["挽回损失"] = "_030703";
    names_map["归还原资金渠道"] = "_030704";
    names_map["补缴税费"] = "_030705";
    names_map["其他"] = "_030706";
    // 九 审计发现问题整改(非金额类)
    names_map["其中:新制定制度"] = "_030801";
    names_map["修订完善制度"] = "_030802";
    names_map["优化完善业务流程"] = "_030803";
    names_map["其他"] = "_030804";
    // 十 根据审计建议基于党纪、政务和内部纪律处分
    names_map["其中:党纪处分"] = "_030901";
    names_map["政务处分"] = "_030902";
    names_map["内部纪律处分"] = "_030903";
    // 十一 向司法机关移送或报告案件线索
    names_map["向司法机关移送或报告案件线索"] = "_031000";
    names_map["涉案人员"] = "_031001";
    QSqlQuery query;
    if(query.exec(sql))
    {
        // 获取字段信息
        int row=0;
        while(query.next()){
            // 取特定字段
            for(int i=0;i<47;++i){
                qDebug()<<"i="<< i <<query.record().fieldName(i) <<"内容:"<<query.value(i);
            }
            // 审计项目
            infos_map[names_map[query.value(6).toString()]]++;
            // 审计发现问题金额
            infos_map[names_map[query.value(12).toString()]] += query.value(14).toDouble();
            // 审计发现问题个数
            infos_map[names_map[query.value(13).toString()]] ++;
            // 整改成果—问题整改(金额类)
            infos_map[names_map[query.value(42).toString()]] += query.value(43).toDouble();
            // 整改成果——问题整改(非金额类)
            infos_map[names_map[query.value(44).toString()]] += query.value(45).toLongLong();
            // 移送信息-处分结果
            infos_map[names_map[query.value(26).toString()]] += query.value(27).toLongLong();
            // 移送信息-涉案人员(单位:人)
            infos_map["_031001"] += query.value(30).toLongLong();
            row++;
        }
        qDebug()<<"row:"<<row<<" infos_map size:"<<infos_map.size();
        // 输出记录信息
        for(auto it = infos_map.begin();it != infos_map.end();++it){
            qDebug()<<it.key()<<it.value();
        }
        // 如果统计不到数据,直接跳过
        if(row==0){
            qDebug()<<"合并数据无,直接返回";
            return;
        }
        // 写到数据库中
            // 先获取机构类型
        QString typeSql = QString("select 机构类型 from all_company_info where name='%1'").arg(name);
        qDebug()<<"typeSql:"<<typeSql;
        QString comType;
        if(query.exec(typeSql)){
            while (query.next()) {
                comType = query.value(0).toString();
                qDebug()<<"find type:"<<comType;
            }
        }
        int typeIndex=0;
        QStringList typeList = comType.split(" ");
        if(typeList.size() > 1){
            if(typeList.at(0) == "30"){
                typeIndex = 2;
            }else if(typeList.at(0) == "20"){
                typeIndex = 3;
            }else if(typeList.at(0) == "10"){
                typeIndex = 0;
            }else{
                typeIndex = 4;
            }
        }
        ui->comboBox->setCurrentIndex(typeIndex); // 设置单位类型为可编辑
            // 接着往表格里面写入整体数据
        comType = ui->comboBox->currentText();
        QString mergeSQLSearch = QString("select * from comprehensive_entry_info where name='%1' and year='%2' and company_type='%3'").arg(name).arg(year).arg(comType);
        qDebug()<<"mergeSQLSearch"<<mergeSQLSearch;
        if(query.exec(mergeSQLSearch)){
            int row = 0;
            while (query.next()) {
                row++;
            }
            qDebug()<<"search row:"<<row;
            if(row == 0){
                //还没有数据,插入即可
                QString mergeSQLInser = QString("insert into comprehensive_entry_info (name,\
                        _030300,\
                        _030301,\
                        _030302,\
                        _030303,\
                        _030304,\
                        _030305,\
                        _030306,\
                        _030307,\
                        _030308,\
                        _030310,\
                        _030400,\
                        _030500,\
                        _030510,\
                        _030520,\
                        _030521,\
                        _030522,\
                        _030523,\
                        _030524,\
                        _030525,\
                      _030526,\
                      _030527,\
                      _030528,\
                      _030600,\
                      _030610,\
                      _030620,\
                      _030621,\
                      _030622,\
                      _030623,\
                      _030624,\
                      _030700,\
                      _030701,\
                      _030702,\
                      _030703,\
                      _030704,\
                      _030705,\
                      _030706,\
                      _030800,\
                      _030801,\
                      _030802,\
                      _030803,\
                      _030804,\
                      _030900,\
                      _030901,\
                      _030902,\
                      _030903,\
                      _031000,\
                      _031001,\
                  company_type,\
                  year\
                        ) values ('%1','%2','%3','%4','%5','%6','%7','%8','%9','%10','%11','%12','%13','%14','%15','%16','%17','%18','%19','%20','%21','%22','%23','%24','%25','%26'"
                                ",'%27','%28','%29','%30','%31','%32','%33','%34','%35','%36','%37','%38','%39','%40','%41','%42','%43','%44','%45','%46','%47','%48','%49','%50')").arg(name).arg(QString::number(infos_map["_030300"]))
                        .arg(QString::number(infos_map["_030301"])).arg(QString::number(infos_map["_030302"])).arg(QString::number(infos_map["_030303"])).arg(QString::number(infos_map["_030304"])).arg(QString::number(infos_map["_030305"]))
                        .arg(QString::number(infos_map["_030306"])).arg(QString::number(infos_map["_030307"])).arg(QString::number(infos_map["_030308"])).arg(QString::number(infos_map["_030310"])).arg(QString::number(infos_map["_030400"]))
                        .arg(QString::number(infos_map["_030500"])).arg(QString::number(infos_map["_030510"])).arg(QString::number(infos_map["_030520"])).arg(QString::number(infos_map["_030521"])).arg(QString::number(infos_map["_030522"]))
                        .arg(QString::number(infos_map["_030523"])).arg(QString::number(infos_map["_030524"])).arg(QString::number(infos_map["_030525"])).arg(QString::number(infos_map["_030526"])).arg(QString::number(infos_map["_030527"]))
                        .arg(QString::number(infos_map["_030528"])).arg(QString::number(infos_map["_030600"])).arg(QString::number(infos_map["_030610"])).arg(QString::number(infos_map["_030620"])).arg(QString::number(infos_map["_030621"]))
                        .arg(QString::number(infos_map["_030622"])).arg(QString::number(infos_map["_030623"])).arg(QString::number(infos_map["_030624"])).arg(QString::number(infos_map["_030700"])).arg(QString::number(infos_map["_030701"]))
                        .arg(QString::number(infos_map["_030702"])).arg(QString::number(infos_map["_030703"])).arg(QString::number(infos_map["_030704"])).arg(QString::number(infos_map["_030705"])).arg(QString::number(infos_map["_030706"]))
                        .arg(QString::number(infos_map["_030800"])).arg(QString::number(infos_map["_030801"])).arg(QString::number(infos_map["_030802"])).arg(QString::number(infos_map["_030803"])).arg(QString::number(infos_map["_030804"]))
                        .arg(QString::number(infos_map["_030900"])).arg(QString::number(infos_map["_030901"])).arg(QString::number(infos_map["_030902"])).arg(QString::number(infos_map["_030903"])).arg(QString::number(infos_map["_031000"]))
                        .arg(QString::number(infos_map["_031001"])).arg(comType).arg(year);
                qDebug()<<"mergeSQLInser:"<<mergeSQLInser;
                if(query.exec(mergeSQLInser)){
                    qDebug()<<"mergeSQLInser 成功";
                    // 成功了,调用查询来刷新表格查看
                    on_pushButton_search_clicked();
                }else{
                    qDebug()<<"mergeSQLInser 失败";
                }
            }else{
                // 已经有数据了,需要更新
                QString mergeSQLUpdate = QString("update comprehensive_entry_info set _030300='%1',_030301='%2'"
                                                 ",_030302='%3',_030303='%4',_030304='%5',_030305='%6',_030306='%7',_030307='%8',_030308='%9',_030310='%10',_030400='%11',_030500='%12'"
                                                 ",_030510='%13',_030520='%14',_030521='%15',_030522='%16',_030523='%17',_030524='%18',_030525='%19',_030526='%20',_030527='%21',_030528='%22'"
                                                 ",_030600='%23',_030610='%24',_030620='%25',_030621='%26',_030622='%27',_030623='%28',_030624='%29',_030700='%30',_030701='%31',_030702='%32'"
                                                 ",_030703='%33',_030704='%34',_030705='%35',_030706='%36',_030800='%37',_030801='%38',_030802='%39',_030803='%40',_030804='%41',_030900='%42'"
                                                 ",_030901='%43',_030902='%44',_030903='%45',_031000='%46',_031001='%47' where name='%48' and year='%49' and company_type='%50'").arg(QString::number(infos_map["_030300"]))
                        .arg(QString::number(infos_map["_030301"])).arg(QString::number(infos_map["_030302"])).arg(QString::number(infos_map["_030303"])).arg(QString::number(infos_map["_030304"])).arg(QString::number(infos_map["_030305"]))
                        .arg(QString::number(infos_map["_030306"])).arg(QString::number(infos_map["_030307"])).arg(QString::number(infos_map["_030308"])).arg(QString::number(infos_map["_030310"])).arg(QString::number(infos_map["_030400"]))
                        .arg(QString::number(infos_map["_030500"])).arg(QString::number(infos_map["_030510"])).arg(QString::number(infos_map["_030520"])).arg(QString::number(infos_map["_030521"])).arg(QString::number(infos_map["_030522"]))
                        .arg(QString::number(infos_map["_030523"])).arg(QString::number(infos_map["_030524"])).arg(QString::number(infos_map["_030525"])).arg(QString::number(infos_map["_030526"])).arg(QString::number(infos_map["_030527"]))
                        .arg(QString::number(infos_map["_030528"])).arg(QString::number(infos_map["_030600"])).arg(QString::number(infos_map["_030610"])).arg(QString::number(infos_map["_030620"])).arg(QString::number(infos_map["_030621"]))
                        .arg(QString::number(infos_map["_030622"])).arg(QString::number(infos_map["_030623"])).arg(QString::number(infos_map["_030624"])).arg(QString::number(infos_map["_030700"])).arg(QString::number(infos_map["_030701"]))
                        .arg(QString::number(infos_map["_030702"])).arg(QString::number(infos_map["_030703"])).arg(QString::number(infos_map["_030704"])).arg(QString::number(infos_map["_030705"])).arg(QString::number(infos_map["_030706"]))
                        .arg(QString::number(infos_map["_030800"])).arg(QString::number(infos_map["_030801"])).arg(QString::number(infos_map["_030802"])).arg(QString::number(infos_map["_030803"])).arg(QString::number(infos_map["_030804"]))
                        .arg(QString::number(infos_map["_030900"])).arg(QString::number(infos_map["_030901"])).arg(QString::number(infos_map["_030902"])).arg(QString::number(infos_map["_030903"])).arg(QString::number(infos_map["_031000"]))
                        .arg(QString::number(infos_map["_031001"])).arg(name).arg(year).arg(comType);
                qDebug()<<"mergeSQLUpdate:"<<mergeSQLUpdate;
                if(query.exec(mergeSQLUpdate)){
                    qDebug()<<"mergeSQLUpdate 成功";
                    // 成功了,调用查询来刷新表格查看
                    on_pushButton_search_clicked();
                }else{
                    qDebug()<<"mergeSQLUpdate 失败";
                }
            }
        }
    }
}
void ClientMainWindow::on_pushButton_search_clicked()
{
    // 查询综合表,进行展示 条件是 名字和年份
    // 根据公司名来、年份查询所有的数据,根据查询到的企业类型来给指定的列写入数据
    QString name = ui->comboBox_company->currentText();
    QString year = ui->dateEdit_year->text();
    QString sql = QString("select * from comprehensive_entry_info where name='%1' and year='%2'").arg(name).arg(year);
    // 先清空表格
    for(int i=4;i<9;++i){
        for(int j=30;j<78;++j){
            ui->tableWidget->setItem(j,i,new QTableWidgetItem("0"));
        }
    }
    // 再执行查询
    QSqlQuery query;
    if(query.exec(sql))
    {
        qDebug()<<"查询到综合表信息:"<<name;
        int row=0;
        while(query.next()){ // 添加结果集
            row++;
            QString com_type = query.value(78).toString();
            int column_index = 4;
            if(com_type == "企业(不含金融企业)"){
                column_index = 4;
            }else if(com_type == "金融企业"){
                column_index = 5;
            }else if(com_type == "机关"){
                column_index = 6;
            }else if(com_type == "事业单位"){
                column_index = 7;
            }else if(com_type == "其他"){
                column_index = 8;
            }
            qDebug()<<"所在列:"<<column_index;
            // 给每项赋值
            for(int i=31;i<78;++i){
                ui->tableWidget->setItem(i-1,column_index,new QTableWidgetItem(query.value(i).toString()));
            }
        }
        qDebug()<<"row:"<<row;
        if(row == 0){
            // 就要清空目前所有的内容,都置为0
            for(int i=4;i<9;++i){
                for(int j=30;j<78;++j){
                    ui->tableWidget->setItem(j,i,new QTableWidgetItem("0"));
                }
            }
        }
    }else{
        qDebug()<<"没有查询到综合表信息:"<<name;
    }
}