wumu
2024-05-13 d64822b8be629c4592da0b9c3eabed4500174752
0512
6个文件已修改
431 ■■■■■ 已修改文件
internal_system_v1/clientmainwindow.cpp 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/searchinfo.cpp 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/searchinfo.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/threemergeproblemlist.cpp 324 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/threemergeproblemlist.h 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/threemergeproblemlist.ui 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/clientmainwindow.cpp
@@ -92,7 +92,7 @@
    // 问题整改台账
    m_proRecStandingBook = new ProblemRectStandingBook(this);
    ui->tabWidget->addTab(m_proRecStandingBook,"问题整改台账");
    //ui->tabWidget->addTab(m_proRecStandingBook,"问题整改台账");
    // 关联各个功能槽
    connect(m_coverInfo,SIGNAL(sendComName(QString)),m_searchInfo,SLOT(addComName(QString)));
@@ -112,10 +112,10 @@
    ui->tabWidget->insertTab(0,m_conInfo2,"封面信息");
    m_problemList = new ProblemList(this);
    ui->tabWidget->addTab(m_problemList,"问题清单");
    //ui->tabWidget->addTab(m_problemList,"问题清单");
    m_problemRectifResult = new ProblemRectificationResult(this);
    ui->tabWidget->addTab(m_problemRectifResult,"整改成果");
    //ui->tabWidget->addTab(m_problemRectifResult,"整改成果");
    m_tableItemDelegate = new TableItemDelegate(); // 代理 禁用编辑
    m_editDelegate = new QItemDelegate(this); // 可编辑
internal_system_v1/searchinfo.cpp
@@ -149,6 +149,9 @@
    // 综合录入信息表 创建
    createTableComprehensiveEntryInfo("comprehensive_entry_info");
    // 整改台账信息表 创建
    createTableStandingBook("standing_book_info");
}
// 综合录入信息表 以编码作为指标名
@@ -361,6 +364,60 @@
            填表人       TEXT,\
            联系电话       TEXT,\
            填报日期       TEXT\
        )").arg(tableName);
    QSqlQuery query;
    if(query.exec(sql))
    {
        qDebug()<<QString("create %1 ok...").arg(tableName);
    }else{
        qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text();
    }
}
// 整改台账
void SearchInfo::createTableStandingBook(QString tableName){
    QString sql = QString("CREATE TABLE %1 (\
            id       INTEGER      PRIMARY KEY AUTOINCREMENT,\
            审计类别     TEXT,\
            审计年度     TEXT,\
            审计单位     TEXT,\
            审计方式     TEXT,\
            责任主体名称     TEXT,\
            审计项目     TEXT,\
            审计项目名称     TEXT,\
            问题类别     TEXT,\
            问题定性     TEXT,\
            问题描述     TEXT,\
            问题定性法规依据     TEXT,\
            涉及金额     TEXT,\
            问题描述佐证资料     TEXT,\
            审计期间已整改     TEXT,\
            整改金额     TEXT,\
            整改情况1     TEXT,\
            整改情况佐证资料1     TEXT,\
            整改结果     TEXT,\
            整改完成时间     TEXT,\
            尚未整改到位的原因     TEXT,\
            整改预计完成时间     TEXT,\
            整改情况2     TEXT,\
            整改情况佐证资料2     TEXT,\
            整改检查结果_检查时间     TEXT,\
            整改检查结果_检查方式     TEXT,\
            整改检查结果_检查结果     TEXT,\
            已整改_纠正问题     TEXT,\
            已整改_完善制度     TEXT,\
            已整改_完成时间     TEXT,\
            正在整改_主要原因     TEXT,\
            正在整改_完成时限     TEXT,\
            尚未整改_主要原因     TEXT,\
            尚未整改_责任部门或责任人     TEXT,\
            尚未整改_完成时限     TEXT,\
            制度建设_修订制度     TEXT,\
            制度建设_新增制度     TEXT,\
            资金收回_挽回损失     TEXT,\
            资金收回_其他     TEXT,\
            资金收回_审减     TEXT,\
            log_time  TEXT\
        )").arg(tableName);
    QSqlQuery query;
    if(query.exec(sql))
@@ -674,6 +731,7 @@
        return;
    }
    QString path = QFileDialog::getOpenFileName(this,"选择表格模板:单位内部审计业务情况表","./","excel(*单位内部审计业务情况表.xls)");
    if(path.isNull()) return;
    ui->label_excel_path->setText(path);
    QStringList paths = path.split(".");
    QString newPath = paths.at(0)+"_"+ui->comboBox_company->currentText()+"."+paths.at(1);
internal_system_v1/searchinfo.h
@@ -31,6 +31,8 @@
    void createTableProblemListInfo(QString tableName);  // 问题清单列表信息表
    void createTableComprehensiveEntryInfo(QString tableName); // 综合录入信息表
    void createTableStandingBook(QString tableName);  // 整改台账
private slots:
    void on_pushButton_search_clicked();
internal_system_v1/threemergeproblemlist.cpp
@@ -4,6 +4,8 @@
#include <QSqlQuery>
#include <QSqlError>
#include <QMessageBox>
#include <QDir>
#include <QFileDevice>
ThreeMergeProblemList::ThreeMergeProblemList(QWidget *parent) :
    QMainWindow(parent),
@@ -17,8 +19,24 @@
    ui->menubar->hide();
    initUi(); // 初始化所有界面
    //ui->tableWidget_2->hide();
    //ui->tableWidget_3->hide();
    // 隐藏
    //ui->comboBox_company->hide();
    ui->tableWidget_2->hide();
    ui->pushButton_save->hide();
    ui->pushButton_addRow->hide();
    ui->label_5->hide();
    ui->label->hide();
    ui->tableWidget_3->hide();
    ui->pushButton_save_2->hide();
    ui->pushButton_addRow_2->hide();
    ui->label_6->hide();
    ui->label_2->hide();
    ui->line->hide();
    ui->line_2->hide();
}
@@ -27,6 +45,149 @@
    delete ui;
}
// 拿结果集的sql
int ThreeMergeProblemList::selectSQL(QString sql,QVector<QVector<QString>> &result)
{
    int rows = -1;
    QSqlQuery query;
    if(query.exec(sql))
    {
      qDebug()<<QString("selectSQL ok...");
      while(query.next()){ // 添加结果集
          int idx = 0;
          QVariant var;
          QVector<QString> lines;
          while((var = query.value(idx++)).isValid()){
              lines.append(var.toString());
          }
          result.append(lines);
      }
      rows = result.size();
    }else{
      qDebug()<<QString("selectSQL fail...")<<query.lastError().text();
    }
    return rows;
}
// 拿修改条数的sql
int ThreeMergeProblemList::changeSQL(QString sql)
{
    int rows = -1;
    QSqlQuery query;
    if(query.exec(sql))
    {
      qDebug()<<QString("changeSQL ok...");
      rows = query.numRowsAffected();
    }else{
      qDebug()<<QString("changeSQL fail...")<<query.lastError().text();
    }
    return rows;
}
int ThreeMergeProblemList::saveDataLine(int row)
{
    if(ui->tableWidget->item(row,0)==nullptr) {
        qDebug()<<"当前行首为空"<<row;
        return 0;
    }
    // 取出索引号来判断一下
    QString sql = QString("select id from standing_book_info where id=%1").arg(ui->tableWidget->item(row,0)->text());
    qDebug()<<"id sql:"<<sql;
    QVector<QVector<QString>> res;
    int rows = selectSQL(sql,res);
    if( rows > 0){
        // 存在,则更新内容即可
        qDebug()<<"id已存在,需更新数据即可";
        sql = QString("update standing_book_info set 审计类别='%1',审计年度='%2',审计单位='%3',审计方式='%4',责任主体名称='%5'"
                      ",审计项目='%6',审计项目名称='%7',问题类别='%8',问题定性='%9',问题描述='%10',问题定性法规依据='%11',涉及金额='%12',问题描述佐证资料='%13'"
                      ",审计期间已整改='%14',整改金额='%15',整改情况1='%16',整改情况佐证资料1='%17',整改结果='%18',整改完成时间='%19',尚未整改到位的原因='%20',整改预计完成时间='%21'"
                      ",整改情况2='%22',整改情况佐证资料2='%23',整改检查结果_检查时间='%24',整改检查结果_检查方式='%25',整改检查结果_检查结果='%26',已整改_纠正问题='%27',已整改_完善制度='%28',已整改_完成时间='%29'"
                      ",正在整改_主要原因='%30',正在整改_完成时限='%31',尚未整改_主要原因='%32',尚未整改_责任部门或责任人='%33',尚未整改_完成时限='%34',制度建设_修订制度='%35',制度建设_新增制度='%36',资金收回_挽回损失='%37'"
                      ",资金收回_其他='%38',资金收回_审减='%39' where id=%40").arg(ui->tableWidget->item(row,1)->text()).arg(ui->tableWidget->item(row,2)->text()).arg(ui->tableWidget->item(row,3)->text()).arg(ui->tableWidget->item(row,4)->text())
                .arg(ui->tableWidget->item(row,5)->text()).arg(ui->tableWidget->item(row,6)->text()).arg(ui->tableWidget->item(row,7)->text()).arg(ui->tableWidget->item(row,8)->text()).arg(ui->tableWidget->item(row,9)->text()).arg(ui->tableWidget->item(row,10)->text())
                .arg(ui->tableWidget->item(row,11)->text()).arg(ui->tableWidget->item(row,12)->text()).arg(ui->tableWidget->item(row,13)->text()).arg(ui->tableWidget->item(row,14)->text()).arg(ui->tableWidget->item(row,15)->text()).arg(ui->tableWidget->item(row,16)->text())
                .arg(ui->tableWidget->item(row,17)->text()).arg(ui->tableWidget->item(row,18)->text()).arg(ui->tableWidget->item(row,19)->text()).arg(ui->tableWidget->item(row,20)->text()).arg(ui->tableWidget->item(row,21)->text()).arg(ui->tableWidget->item(row,22)->text())
                .arg(ui->tableWidget->item(row,23)->text()).arg(ui->tableWidget->item(row,24)->text()).arg(ui->tableWidget->item(row,25)->text()).arg(ui->tableWidget->item(row,26)->text()).arg(ui->tableWidget->item(row,27)->text()).arg(ui->tableWidget->item(row,28)->text())
                .arg(ui->tableWidget->item(row,29)->text()).arg(ui->tableWidget->item(row,30)->text()).arg(ui->tableWidget->item(row,31)->text()).arg(ui->tableWidget->item(row,32)->text()).arg(ui->tableWidget->item(row,33)->text()).arg(ui->tableWidget->item(row,34)->text())
                .arg(ui->tableWidget->item(row,35)->text()).arg(ui->tableWidget->item(row,36)->text()).arg(ui->tableWidget->item(row,37)->text()).arg(ui->tableWidget->item(row,38)->text()).arg(ui->tableWidget->item(row,39)->text()).arg(ui->tableWidget->item(row,0)->text());
        qDebug()<<sql;
        rows = changeSQL(sql);
        if(rows > 0){
            qDebug()<<"change ok";
        }else{
            qDebug()<<"change fail";
        }
    }else{
        // rows为-1 说明sql语句有问题
        if(rows == -1){
            qDebug()<<"sql error";
            return -1;
        }
        // 不存在,则需要新增插入
        qDebug()<<"不存在id,插入数据";
        sql = QString("insert into standing_book_info (审计类别,审计年度,审计单位,审计方式,责任主体名称"
                      ",审计项目,审计项目名称,问题类别,问题定性,问题描述,问题定性法规依据,涉及金额,问题描述佐证资料"
                      ",审计期间已整改,整改金额,整改情况1,整改情况佐证资料1,整改结果,整改完成时间,尚未整改到位的原因,整改预计完成时间"
                      ",整改情况2,整改情况佐证资料2,整改检查结果_检查时间,整改检查结果_检查方式,整改检查结果_检查结果,已整改_纠正问题,已整改_完善制度,已整改_完成时间"
                      ",正在整改_主要原因,正在整改_完成时限,尚未整改_主要原因,尚未整改_责任部门或责任人,尚未整改_完成时限,制度建设_修订制度,制度建设_新增制度,资金收回_挽回损失"
                      ",资金收回_其他,资金收回_审减,log_time) 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')").arg(ui->tableWidget->item(row,1)->text()).arg(ui->tableWidget->item(row,2)->text()).arg(ui->tableWidget->item(row,3)->text()).arg(ui->tableWidget->item(row,4)->text())
                .arg(ui->tableWidget->item(row,5)->text()).arg(ui->tableWidget->item(row,6)->text()).arg(ui->tableWidget->item(row,7)->text()).arg(ui->tableWidget->item(row,8)->text()).arg(ui->tableWidget->item(row,9)->text()).arg(ui->tableWidget->item(row,10)->text())
                .arg(ui->tableWidget->item(row,11)->text()).arg(ui->tableWidget->item(row,12)->text()).arg(ui->tableWidget->item(row,13)->text()).arg(ui->tableWidget->item(row,14)->text()).arg(ui->tableWidget->item(row,15)->text()).arg(ui->tableWidget->item(row,16)->text())
                .arg(ui->tableWidget->item(row,17)->text()).arg(ui->tableWidget->item(row,18)->text()).arg(ui->tableWidget->item(row,19)->text()).arg(ui->tableWidget->item(row,20)->text()).arg(ui->tableWidget->item(row,21)->text()).arg(ui->tableWidget->item(row,22)->text())
                .arg(ui->tableWidget->item(row,23)->text()).arg(ui->tableWidget->item(row,24)->text()).arg(ui->tableWidget->item(row,25)->text()).arg(ui->tableWidget->item(row,26)->text()).arg(ui->tableWidget->item(row,27)->text()).arg(ui->tableWidget->item(row,28)->text())
                .arg(ui->tableWidget->item(row,29)->text()).arg(ui->tableWidget->item(row,30)->text()).arg(ui->tableWidget->item(row,31)->text()).arg(ui->tableWidget->item(row,32)->text()).arg(ui->tableWidget->item(row,33)->text()).arg(ui->tableWidget->item(row,34)->text())
                .arg(ui->tableWidget->item(row,35)->text()).arg(ui->tableWidget->item(row,36)->text()).arg(ui->tableWidget->item(row,37)->text()).arg(ui->tableWidget->item(row,38)->text()).arg(ui->tableWidget->item(row,39)->text()).arg(QDateTime::currentDateTime().toString("yyyy/MM/dd HH:mm:ss"));
        qDebug()<<sql;
        rows = changeSQL(sql);
        if(rows > 0){
            qDebug()<<"insert ok";
        }else{
            qDebug()<<"insert fail";
        }
    }
    return rows;
}
// path 为文件完整路径
// id为子目录名字
int ThreeMergeProblemList::saveFile(QString path, QString id,QString &absSavePath)
{
    // 根据id来指定子目录进行文件的拷贝和存储
    // 默认保存到当前evidence目录下的id子目录中
    QFile sourceFile(path);
    if(!sourceFile.exists()){
        qDebug()<<"target file not exist:"<<path;
        return -1;
    }
    QString curPath = QString("./evidence/%1/").arg(id);
    QDir dir;
    if(!dir.exists(curPath)){
        // 则直接创建
        if(!dir.mkpath(curPath)){
            qDebug()<<"create path fail:"<<curPath;
            return 0; // 创建失败
        }
    }
    // 成功
    // 开始拷贝文件到指定位置
    QFileInfo finfo(path);
    QString distinationPath = curPath+finfo.fileName();
    if(sourceFile.copy(distinationPath)){
        qDebug()<<"copy ok:"<<distinationPath;
        absSavePath = distinationPath;
        return 1;
    }else{
        qDebug()<<"copy fail:"<<distinationPath<<sourceFile.errorString();
        return -2;
    }
}
void ThreeMergeProblemList::initUi()
{
    initProblemRectBookUi(); // 初始化整改台账
@@ -269,9 +430,13 @@
    // 右键菜单
    m_menuRectBook = new QMenu(this);
    m_menuRectBook->addAction("删除当前行");
    m_menuRectBook->addAction("保存当前行");
    ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
    connect(ui->tableWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenuSlotRectBook(QPoint)));
    connect(m_menuRectBook->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteActionRectBook()));
    connect(m_menuRectBook->actions().at(1),SIGNAL(triggered(bool)),this,SLOT(saveActionRectBook()));
}
@@ -355,6 +520,8 @@
}
void ThreeMergeProblemList::showMenuSlot(QPoint)
{
    m_menu->exec(QCursor::pos());
@@ -396,12 +563,61 @@
{
    int row = ui->tableWidget->currentRow();
    if(row>=0){
        qDebug()<<"ok";
        qDebug()<<"delete ok";
        ui->tableWidget->removeRow(row);
    }else{
        qDebug()<<"fail";
        qDebug()<<"delete fail";
    }
}
void ThreeMergeProblemList::saveActionRectBook()
{
    // 单行保存,先判断id号是不是存在,存在则是更新,不存在则是插入
    int row = ui->tableWidget->currentRow();
    auto item = ui->tableWidget->currentItem();
    if(row>=0 && item){
        qDebug()<<"save ok"<< row << item->row()<<item->column();
        int rows = saveDataLine(row);
        if(rows>0){
            // 需要将文件拷贝到id目录
            QString fpath = ui->tableWidget->item(row,13)->text();
            QString spath = ui->tableWidget->item(row,17)->text();
            QString tpath = ui->tableWidget->item(row,23)->text();
            QString fid = ui->tableWidget->item(row,0)->text();
            qDebug()<<"拷贝文件:"<<fid<<fpath;
            QString absSavePath1,absSavePath2,absSavePath3;
            int sflag1 = saveFile(fpath,fid,absSavePath1); // 保存第一个
            if(sflag1==1){
                ui->tableWidget->setItem(row,13,new QTableWidgetItem(absSavePath1));
            }
            int sflag2 = saveFile(spath,fid,absSavePath2); // 保存第二个
            if(sflag2==1){
                ui->tableWidget->setItem(row,17,new QTableWidgetItem(absSavePath2));
            }
            int sflag3 = saveFile(tpath,fid,absSavePath3); // 保存第三个
            if(sflag3==1){
                ui->tableWidget->setItem(row,23,new QTableWidgetItem(absSavePath3));
            }
            qDebug()<<"save falg:"<<sflag1<<sflag2<<sflag3;
            if(sflag1 || sflag2 || sflag3){
                saveDataLine(row);
            }
            QMessageBox::information(this,"保存成功","数据写入成功");
        }else{
            QMessageBox::information(this,"保存失败","数据写入失败,请检查是否每项都有数据了");
        }
    }else{
        qDebug()<<"save fail";
        QMessageBox::information(this,"保存失败","没有指定目标行或有空项...请选择有内容的目标行保存");
    }
}
// 增加到第一个表格的行
void ThreeMergeProblemList::on_pushButton_addRow_3_clicked()
@@ -514,3 +730,103 @@
      QMessageBox::information(this,"添加失败","可能添加的数据不全导致的,得确认每行的首项有数据");
    }
}
void ThreeMergeProblemList::on_pushButton_search_clicked()
{
    QString curText = ui->comboBox_standing_book_condt->currentText();
    QString sql = "select * from standing_book_info ";
    QString condition = "";
    if(curText == "全部" || strcmp(curText.toLocal8Bit().data(),"全部")==0){
        qDebug()<<"全部";
    }else if(curText == "审计类别" || strcmp(curText.toLocal8Bit().data(),"审计类别")==0){
        qDebug()<<"审计类别";
        condition = QString(" where 审计类别='%1'").arg(ui->lineEdit_sbook_condition->text());
    }else if(curText == "审计年度" || strcmp(curText.toLocal8Bit().data(),"审计年度")==0){
        qDebug()<<"审计年度";
        condition = QString(" where 审计年度='%1'").arg(ui->lineEdit_sbook_condition->text());
    }else if(curText == "问题类别" || strcmp(curText.toLocal8Bit().data(),"问题类别")==0){
        qDebug()<<"问题类别";
        condition = QString(" where 问题类别='%1'").arg(ui->lineEdit_sbook_condition->text());
    }else if(curText == "审计方式" || strcmp(curText.toLocal8Bit().data(),"审计方式")==0){
        qDebug()<<"审计方式";
        condition = QString(" where 审计方式='%1'").arg(ui->lineEdit_sbook_condition->text());
    }else if(curText == "责任主体名称" || strcmp(curText.toLocal8Bit().data(),"责任主体名称")==0){
        qDebug()<<"责任主体名称";
        condition = QString(" where 责任主体名称='%1'").arg(ui->lineEdit_sbook_condition->text());
    }else if(curText == "审计单位" || strcmp(curText.toLocal8Bit().data(),"审计单位")==0){
        qDebug()<<"审计单位";
        condition = QString(" where 审计单位='%1'").arg(ui->lineEdit_sbook_condition->text());
    }else if(curText == "涉及金额" || strcmp(curText.toLocal8Bit().data(),"涉及金额")==0){
        qDebug()<<"涉及金额";
        condition = QString(" where 涉及金额='%1'").arg(ui->lineEdit_sbook_condition->text());
    }else if(curText == "整顿金额" || strcmp(curText.toLocal8Bit().data(),"整顿金额")==0){
        qDebug()<<"整顿金额";
        condition = QString(" where 整顿金额='%1'").arg(ui->lineEdit_sbook_condition->text());
    }
    sql += condition;
    qDebug()<<sql;
    QVector<QVector<QString>> res;
    int rows = selectSQL(sql,res);
    if(rows > 0){
        ui->tableWidget->setRowCount(rows);
        for(int i=0;i<res.size();++i){
            for(int j=0;j<res.at(0).size()-1;++j){ // 去掉记录时间
                ui->tableWidget->setItem(i,j,new QTableWidgetItem(res[i][j]));
            }
        }
    }else{
        QMessageBox::information(this,"查询失败","可能查询的内容不正确或者没有记录相应的数据");
    }
}
void ThreeMergeProblemList::on_pushButton_save_3_clicked()
{
    int hasContentRow=0;
    for(int i=0;i<ui->tableWidget->rowCount();++i){
        int row = saveDataLine(i);
        if(row > 0) {
            hasContentRow++;
            // 需要将文件拷贝到id目录
            QString fpath = ui->tableWidget->item(i,13)->text();
            QString spath = ui->tableWidget->item(i,17)->text();
            QString tpath = ui->tableWidget->item(i,23)->text();
            QString fid = ui->tableWidget->item(i,0)->text();
            qDebug()<<"拷贝文件:"<<fid<<fpath;
            QString absSavePath1,absSavePath2,absSavePath3;
            int sflag1 = saveFile(fpath,fid,absSavePath1); // 保存第一个
            if(sflag1==1){
                ui->tableWidget->setItem(i,13,new QTableWidgetItem(absSavePath1));
            }
            int sflag2 = saveFile(spath,fid,absSavePath2); // 保存第二个
            if(sflag2==1){
                ui->tableWidget->setItem(i,17,new QTableWidgetItem(absSavePath2));
            }
            int sflag3 = saveFile(tpath,fid,absSavePath3); // 保存第三个
            if(sflag3==1){
                ui->tableWidget->setItem(i,23,new QTableWidgetItem(absSavePath3));
            }
            qDebug()<<"save falg:"<<sflag1<<sflag2<<sflag3;
            if(sflag1 || sflag2 || sflag3){
                saveDataLine(i);
            }
        }
    }
    QMessageBox::information(this,"保存提示",QString("总行数为%1,成功%2行,失败%3行。").arg(ui->tableWidget->rowCount())
                             .arg(hasContentRow).arg(ui->tableWidget->rowCount()-hasContentRow));
}
internal_system_v1/threemergeproblemlist.h
@@ -32,6 +32,11 @@
    void readCompanyFromSQL();
    void loadDataFromSQL(const QString &arg1);
    int selectSQL(QString sql,QVector<QVector<QString>> &result); // 拿结果集的sql
    int changeSQL(QString sql); // 拿条数的sql
    int saveDataLine(int row); // 保存指定行 先判断对应的索引id是否存在,存在则更新,不存在则新建插入
    int saveFile(QString path, QString id,QString &absSavePath); // 根据id来指定子目录进行文件的拷贝和存储
private slots:
    // 问题清单
    void showMenuSlot(QPoint);
@@ -43,7 +48,8 @@
    // 整改台账
    void showMenuSlotRectBook(QPoint);
    void deleteActionRectBook();
    void deleteActionRectBook(); // 删除当前行
    void saveActionRectBook();  // 保存单行 当前
    void on_pushButton_addRow_3_clicked();
@@ -57,6 +63,11 @@
    void on_pushButton_save_clicked();
    void on_pushButton_search_clicked();
    void on_pushButton_save_3_clicked();
private:
    Ui::ThreeMergeProblemList *ui;
    QMenu *m_menu; // 问题清单菜单
internal_system_v1/threemergeproblemlist.ui
@@ -593,7 +593,12 @@
           </widget>
          </item>
          <item row="1" column="4">
           <widget class="QComboBox" name="comboBox">
           <widget class="QComboBox" name="comboBox_standing_book_condt">
            <item>
             <property name="text">
              <string>全部</string>
             </property>
            </item>
            <item>
             <property name="text">
              <string>审计类别</string>
@@ -611,7 +616,12 @@
            </item>
            <item>
             <property name="text">
              <string>金额</string>
              <string>涉及金额</string>
             </property>
            </item>
            <item>
             <property name="text">
              <string>整改金额</string>
             </property>
            </item>
            <item>
@@ -619,10 +629,20 @@
              <string>审计方式</string>
             </property>
            </item>
            <item>
             <property name="text">
              <string>责任主体名称</string>
             </property>
            </item>
            <item>
             <property name="text">
              <string>审计单位</string>
             </property>
            </item>
           </widget>
          </item>
          <item row="1" column="5">
           <widget class="QLineEdit" name="lineEdit">
           <widget class="QLineEdit" name="lineEdit_sbook_condition">
            <property name="placeholderText">
             <string>请输入左边选项的对应条件</string>
            </property>
@@ -636,7 +656,7 @@
           </widget>
          </item>
          <item row="1" column="6">
           <widget class="QPushButton" name="pushButton">
           <widget class="QPushButton" name="pushButton_search">
            <property name="text">
             <string>查询已录</string>
            </property>