wumu
2024-05-10 b11ad2bb1946cf5356037f7a16e4e42558fd955e
internal_system_v1/threemergeproblemlist.cpp
@@ -10,9 +10,15 @@
    ui(new Ui::ThreeMergeProblemList)
{
    ui->setupUi(this);
    m_fdd = new FileDialogDelegate;
    ui->statusbar->hide();
    ui->menubar->hide();
    initUi(); // 初始化所有界面
    //ui->tableWidget_2->hide();
    //ui->tableWidget_3->hide();
}
@@ -23,8 +29,119 @@
void ThreeMergeProblemList::initUi()
{
    initProblemRectBookUi(); // 初始化整改台账
    initProblemListUi(); // 初始化问题清单界面
    initProblemResultUi(); // 初始化问题处理结果界面
    ui->tableWidget->setMinimumHeight(500);  // 整改台账
    ui->tableWidget_2->setMinimumHeight(500); // 整改结果
    ui->tableWidget_3->setMinimumHeight(500); // 问题清单
    ui->tableWidget->setItemDelegateForColumn(1,m_fdd);
    // 自适应操作
    ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
    ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
    ui->tableWidget->resizeColumnsToContents();
    ui->tableWidget->resizeRowsToContents();
    // 控制表头颜色
        // 自定义的方式有缺陷是容易让对应项锁死
    //m_custonHV = new CustomHeaderView(Qt::Horizontal,ui->tableWidget);
    //ui->tableWidget->setHorizontalHeader(m_custonHV);
        // 给指定项改背景颜色
    //ui->tableWidget->horizontalHeaderItem(1)->setBackground(QBrush(Qt::red));
    //ui->tableWidget->horizontalHeaderItem(3)->setBackground(QBrush(Qt::blue));
//    QTableWidgetItem *item_1 = new QTableWidgetItem("审计类别");
//    item_1->setForeground(QBrush(QColor("#FF1493")));
//    ui->tableWidget->setHorizontalHeaderItem(1,item_1);
    for(int i=0;i<14;++i){
        QString label = ui->tableWidget->horizontalHeaderItem(i)->text();
        QTableWidgetItem *item_1 = new QTableWidgetItem(label);
        item_1->setForeground(QBrush(QColor("#ff00ff")));
        ui->tableWidget->setHorizontalHeaderItem(i,item_1);
    }
    for(int i=14;i<14+10;++i){
        QString label = ui->tableWidget->horizontalHeaderItem(i)->text();
        QTableWidgetItem *item_1 = new QTableWidgetItem(label);
        item_1->setForeground(QBrush(QColor("#00aaff")));
        ui->tableWidget->setHorizontalHeaderItem(i,item_1);
    }
    for(int i=24;i<24+3;++i){
        QString label = ui->tableWidget->horizontalHeaderItem(i)->text();
        QTableWidgetItem *item_1 = new QTableWidgetItem(label);
        item_1->setForeground(QBrush(QColor("#00aa00")));
        ui->tableWidget->setHorizontalHeaderItem(i,item_1);
    }
    for(int i=27;i<27+8;++i){
        QString label = ui->tableWidget->horizontalHeaderItem(i)->text();
        QTableWidgetItem *item_1 = new QTableWidgetItem(label);
        item_1->setForeground(QBrush(QColor("#007a50")));
        ui->tableWidget->setHorizontalHeaderItem(i,item_1);
    }
    for(int i=35;i<35+5;++i){
        QString label = ui->tableWidget->horizontalHeaderItem(i)->text();
        QTableWidgetItem *item_1 = new QTableWidgetItem(label);
        item_1->setForeground(QBrush(QColor("#500a50")));
        ui->tableWidget->setHorizontalHeaderItem(i,item_1);
    }
    // 处理具体某列的情况
        // 审计类别
    QStringList nwLabels;
    nwLabels << "内审"<<"外审";
    m_cbb_nw = new ComboBoxDelegate(nwLabels,this);
    ui->tableWidget->setItemDelegateForColumn(1,m_cbb_nw);
        // 审计年度
    m_date_year = new DateDelegate(this);
    ui->tableWidget->setItemDelegateForColumn(2,m_date_year);
        // 审计单位
    QStringList comLabels;
    comLabels << "审计局"<<"审计厅"<<"审计署"<<"其他";
    m_cbb_company = new ComboBoxDelegate(comLabels,this);
    ui->tableWidget->setItemDelegateForColumn(3,m_cbb_company);
        // 审计方式
    QStringList wayLabels;
    wayLabels << "就地审计"<<"报送审计";
    m_cbb_way = new ComboBoxDelegate(wayLabels,this);
    ui->tableWidget->setItemDelegateForColumn(4,m_cbb_way);
        // 审计项目
    QStringList proLabels;
    proLabels <<"  "<< "贯彻落实国家重大政策措施审计"<<"财政财务收支审计"<<"固定资产投资审计"<<"内部控制和风险管理审计"
              <<"经济责任审计"<<"信息系统审计"<<"境外审计"<<"其他";
    m_cbb_way = new ComboBoxDelegate(proLabels,this);
    ui->tableWidget->setItemDelegateForColumn(6,m_cbb_way);
        // 问题描述佐证资料(上传取证单) 录入或者上传
    //ui->tableWidget->setItemDelegateForColumn(13,m_fdd);
    QStringList fwLabels;
    fwLabels << "录入(直接输入后回车即可)"<<"上传";
    m_cbb_file_wri = new ComboBoxDelegate(fwLabels,this,true);
    ui->tableWidget->setItemDelegateForColumn(13,m_cbb_file_wri);
    ui->tableWidget->setItemDelegateForColumn(17,m_cbb_file_wri);
    ui->tableWidget->setItemDelegateForColumn(23,m_cbb_file_wri);
        // 处理年月日时间
    m_date_ymd = new DateDelegate(this,"yyyy/MM/dd");
    ui->tableWidget->setItemDelegateForColumn(19,m_date_ymd);
    ui->tableWidget->setItemDelegateForColumn(21,m_date_ymd);
    ui->tableWidget->setItemDelegateForColumn(24,m_date_ymd);
    ui->tableWidget->setItemDelegateForColumn(29,m_date_ymd);
    ui->tableWidget->setItemDelegateForColumn(31,m_date_ymd);
    ui->tableWidget->setItemDelegateForColumn(34,m_date_ymd);
    // 加载公司名
    readCompanyFromSQL();
@@ -135,6 +252,7 @@
        ui->tableWidget_2->setItemDelegateForRow(i,new TableItemDelegate());
    }
    // 右键菜单
    m_menuResult = new QMenu(this);
    m_menuResult->addAction("删除当前行");
@@ -144,6 +262,17 @@
    // 加载下拉框的公司名
    //readCompanyFromSQL();
}
void ThreeMergeProblemList::initProblemRectBookUi()
{
    // 右键菜单
    m_menuRectBook = new QMenu(this);
    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()));
}
void ThreeMergeProblemList::readCompanyFromSQL()
@@ -164,6 +293,66 @@
        qDebug()<<QString("select all_company_info fail...")<<query.lastError().text();
    }
}
void ThreeMergeProblemList::loadDataFromSQL(const QString &arg1)
{
    // 问题台账
    // 问题清单
    // 要清除上一家公司的数据
    ui->tableWidget_3->setRowCount(4);
    ui->tableWidget_3->setRowCount(7);
    // 加载表格信息
    qDebug()<<"current :"<<arg1;
    QString sql = QString("select * from problem_list_info where name='%1'").arg(arg1);
    QSqlQuery query;
    if(query.exec(sql)){
        qDebug()<<QString("select problem_list_info ok");
        int row=0;
        while(query.next()){ // 添加行数据
            for(int i=0;i<14;++i){
                ui->tableWidget_3->setItem(row+4,i,new QTableWidgetItem(query.value(2+i).toString()));
            }
            row++;
            ui->tableWidget_3->setRowCount(ui->tableWidget_3->rowCount()+1); // 增加一个新的行
        }
        qDebug()<<"row:"<<row;
    }else{
        qDebug()<<QString("select problem_list_info fail...")<<query.lastError().text();
    }
    // 问题整改结果
    // 要清除上一家公司的数据
    ui->tableWidget_2->setRowCount(3);
    ui->tableWidget_2->setRowCount(6);
    // 加载表格信息
    //qDebug()<<"current :"<<arg1;
    sql = QString("select * from rectify_result_info where name='%1'").arg(arg1);
    //QString sql = QString("select * from rectify_result_info where name='%1'").arg(arg1);
    //QSqlQuery query;
    if(query.exec(sql)){
        qDebug()<<QString("select rectify_result_info ok");
        int row=0;
        while(query.next()){ // 添加行数据
            for(int i=0;i<10;++i){
                ui->tableWidget_2->setItem(row+3,i,new QTableWidgetItem(query.value(2+i).toString()));
            }
            row++;
            ui->tableWidget_2->setRowCount(ui->tableWidget_2->rowCount()+1); // 增加一个新的行
        }
        qDebug()<<"row:"<<row;
    }else{
        qDebug()<<QString("select rectify_result_info fail...")<<query.lastError().text();
    }
}
void ThreeMergeProblemList::showMenuSlot(QPoint)
@@ -198,6 +387,22 @@
    }
}
void ThreeMergeProblemList::showMenuSlotRectBook(QPoint)
{
    m_menuRectBook->exec(QCursor::pos());
}
void ThreeMergeProblemList::deleteActionRectBook()
{
    int row = ui->tableWidget->currentRow();
    if(row>=0){
        qDebug()<<"ok";
        ui->tableWidget->removeRow(row);
    }else{
        qDebug()<<"fail";
    }
}
// 增加到第一个表格的行
void ThreeMergeProblemList::on_pushButton_addRow_3_clicked()
{
@@ -213,3 +418,99 @@
{
    ui->tableWidget_2->insertRow(ui->tableWidget_2->rowCount());
}
void ThreeMergeProblemList::on_comboBox_company_currentIndexChanged(const QString &arg1)
{
    loadDataFromSQL(arg1);
}
void ThreeMergeProblemList::on_pushButton_save_2_clicked()
{
    // 问题清单保存
    QString sql = QString("insert into problem_list_info (name,序号,摘要,检查时间,检查方式,纠正问题,完善制度\
,完成时间,主要原因,完成时限,主要原因1,责任部门或责任人,完成时限1,是否销号,销号时间) values ");
    QString name = ui->comboBox_company->currentText();
    for(int i=4;i<ui->tableWidget_3->rowCount();++i){
        QStringList labels;
        for(int j=0;j<ui->tableWidget_3->columnCount();++j){
            QTableWidgetItem *item = ui->tableWidget_3->item(i,j);;
            qDebug() <<i<<j <<item;
            if(item){
                qDebug()<<"OK";
                labels<<item->data(Qt::EditRole).toString();
            }else{
                labels<<" ";
            }
        }
        qDebug()<<labels;
        if(labels.at(0)==" ")continue;
        if(name.size()==0){
            QMessageBox::information(this,"单位信息为空 ","请输入单位名称");
            continue;
        }
        sql += QString("('%1',").arg(name);
        for(int k=0;k<labels.size()-1;++k){
            sql += QString("'%1',").arg(labels[k]);
        }
        sql += QString("'%1'),").arg(labels.back());
    }
    sql = sql.left(sql.size()-1); // 去掉最后一个逗号
    qDebug()<<"sql="<<sql;
    QSqlQuery query;
    if(query.exec(sql))
    {
      qDebug()<<QString("insert  problem_list_info ok...");
      QMessageBox::information(this,"OK","添加成功");
    }else{
      qDebug()<<QString("insert problem_list_info fail...")<<query.lastError().text();
      QMessageBox::information(this,"添加失败","可能添加的数据不全导致的,得确认每行的首项有数据");
    }
}
void ThreeMergeProblemList::on_pushButton_save_clicked()
{
    // 问题整改保存
    QString sql = QString("insert into rectify_result_info (name,修订制度,新增制度,挽回损失,剔除,审减,处理人,宣贯培训,其他,审核结果,注销) values ");
    QString name = ui->comboBox_company->currentText();
    for(int i=3;i<ui->tableWidget_2->rowCount();++i){
        QStringList labels;
        for(int j=0;j<ui->tableWidget_2->columnCount();++j){
            QTableWidgetItem *item = ui->tableWidget_2->item(i,j);;
            qDebug() <<i<<j <<item;
            if(item){
                qDebug()<<"OK";
                labels<<item->data(Qt::EditRole).toString();
            }else{
                labels<<" ";
            }
        }
        qDebug()<<labels;
        if(labels.at(0)==" ")continue;
        if(name.size()==0){
            QMessageBox::information(this,"单位信息为空 ","请输入单位名称");
            continue;
        }
        sql += QString("('%1',").arg(name);
        for(int k=0;k<labels.size()-1;++k){
            sql += QString("'%1',").arg(labels[k]);
        }
        sql += QString("'%1'),").arg(labels.back());
    }
    sql = sql.left(sql.size()-1); // 去掉最后一个逗号
    qDebug()<<"sql="<<sql;
    QSqlQuery query;
    if(query.exec(sql))
    {
      qDebug()<<QString("insert  rectify_result_info ok...");
      QMessageBox::information(this,"OK","添加成功");
    }else{
      qDebug()<<QString("insert rectify_result_info fail...")<<query.lastError().text();
      QMessageBox::information(this,"添加失败","可能添加的数据不全导致的,得确认每行的首项有数据");
    }
}