wumu
2024-11-29 a3f97ceb36d4cb60bacdfbcb04c364faaca6138a
internal_system_v1/threemergeproblemlist.cpp
@@ -6,6 +6,7 @@
#include <QMessageBox>
#include <QDir>
#include <QFileDevice>
#include "noedititemdelegate.h"
#pragma execution_character_set("utf-8")
@@ -16,6 +17,7 @@
    ui->setupUi(this);
    m_fdd = new FileDialogDelegate;
    //m_noEdit = new ThreeComboBox;
    ui->statusbar->hide();
    ui->menubar->hide();
@@ -50,6 +52,7 @@
ThreeMergeProblemList::~ThreeMergeProblemList()
{
    //delete m_noEdit;
    delete ui;
}
@@ -102,7 +105,7 @@
        return 0;
    }
    // 处理为空的非首列单元,自动补零
    for(int i=1;i<ui->tableWidget->columnCount();++i){
    for(int i=3;i<ui->tableWidget->columnCount();++i){
        if(ui->tableWidget->item(row,i) == nullptr){
            qDebug()<<"发现空项:"<<row<<i;
            ui->tableWidget->setItem(row,i,new QTableWidgetItem(" "));
@@ -172,7 +175,7 @@
// path 为文件完整路径
// id为子目录名字
int ThreeMergeProblemList::saveFile(QString path, QString id,QString &absSavePath)
int ThreeMergeProblemList::saveFile(QString path, QString id,QString &absSavePath,QString proName)
{
    // 根据id来指定子目录进行文件的拷贝和存储
    // 默认保存到当前evidence目录下的id子目录中
@@ -182,7 +185,7 @@
        return -1;
    }
    QString curPath = QString("./evidence/%1/").arg(id);
    QString curPath = QString("./evidence/%1_%2/").arg(id).arg(proName);
    QDir dir;
    if(!dir.exists(curPath)){
        // 则直接创建
@@ -227,6 +230,7 @@
    initProblemListUi(); // 初始化问题清单界面
    initProblemResultUi(); // 初始化问题处理结果界面
    ui->tableWidget->setRowCount(4); // 设置初始行数
    ui->tableWidget->setMinimumHeight(500);  // 整改台账
    ui->tableWidget_2->setMinimumHeight(500); // 整改结果
    ui->tableWidget_3->setMinimumHeight(500); // 问题清单
@@ -258,6 +262,7 @@
        QTableWidgetItem *item_1 = new QTableWidgetItem(label);
        item_1->setForeground(QBrush(QColor("#ff00ff")));
        ui->tableWidget->setHorizontalHeaderItem(i,item_1);
        //ui->tableWidget->setItem(1,i,item_1);
    }
    for(int i=14;i<14+10;++i){
@@ -318,24 +323,148 @@
    m_cbb_way = new ComboBoxDelegate(proLabels,this);
    ui->tableWidget->setItemDelegateForColumn(6,m_cbb_way);
        // 审计发现问题金额定性
    QStringList moneyLabels;
    moneyLabels<<"其中:绩效类问题金额"<<"合规性问题金额"<<"其中:会计核算方面"<<"违规使用资金"<<"截留、沉淀资金"<<"损失浪费"<<"挪用资金"<<"偷漏税费"<<"违规取得收入"<<"其他";
    m_cbb_money = new ComboBoxDelegate(moneyLabels,this);
    ui->tableWidget->setItemDelegateForColumn(12,m_cbb_money);
        // 审计发现问题个数定性
    QStringList cntLabels;
    cntLabels<<"其中:金额类问题个数"<<"非金额类问题个数"<<"其中:国家政策措施落实方面"<<"发展规划与战略决策方面"<<"内部控制与风险管理方面"<<"其他";
    m_cbb_cnt = new ComboBoxDelegate(cntLabels,this);
    ui->tableWidget->setItemDelegateForColumn(13,m_cbb_cnt);
        // 整改结果
    QStringList resLabels;
    resLabels<<"立行整改"<<"分阶段整改"<<"尚未整改";
    m_cbb_result = new ComboBoxDelegate(resLabels,this);
    ui->tableWidget->setItemDelegateForColumn(20,m_cbb_result);
        // 处分类型
    QStringList typeLabels;
    typeLabels<<"其中:党纪处分"<<"政务处分"<<"内部纪律处分"<<"无处分";
    m_cbb_type = new ComboBoxDelegate(typeLabels,this);
    ui->tableWidget->setItemDelegateForColumn(26,m_cbb_type);
        // 检查结果
    QStringList checkResLabels;
    checkResLabels<<"已完成"<<"未完成";
    m_cbb_check_res = new ComboBoxDelegate(checkResLabels,this);
    ui->tableWidget->setItemDelegateForColumn(33,m_cbb_check_res);
        // 金额类整改成果
    QStringList moneyResLabels;
    moneyResLabels<<"其中:调整会计账目"<<"收回资金"<<"挽回损失"<<"归还原资金渠道"<<"补缴税费"<<"其他";
    m_cbb_money_res = new ComboBoxDelegate(moneyResLabels,this);
    ui->tableWidget->setItemDelegateForColumn(42,m_cbb_money_res);
        // 非金额类整改成果
    QStringList noMoneyResLabels;
    noMoneyResLabels<<"其中:新制定制度"<<"修订完善制度"<<"优化完善业务流程"<<"其他";
    m_cbb_no_money_res = new ComboBoxDelegate(noMoneyResLabels,this);
    ui->tableWidget->setItemDelegateForColumn(44,m_cbb_no_money_res);
        // 问题描述佐证资料(上传取证单) 录入或者上传
    //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);
    ui->tableWidget->setItemDelegateForColumn(13+2,m_cbb_file_wri);
    ui->tableWidget->setItemDelegateForColumn(17+2,m_cbb_file_wri);
    ui->tableWidget->setItemDelegateForColumn(23+2,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);
    ui->tableWidget->setItemDelegateForColumn(19+2,m_date_ymd);
    ui->tableWidget->setItemDelegateForColumn(21+2,m_date_ymd);
    ui->tableWidget->setItemDelegateForColumn(24+2+5,m_date_ymd);
    ui->tableWidget->setItemDelegateForColumn(29+2+5,m_date_ymd);
    ui->tableWidget->setItemDelegateForColumn(31+2+5,m_date_ymd);
    ui->tableWidget->setItemDelegateForColumn(34+2+5,m_date_ymd);
    // 将标题导入第三行
    for(int i=0;i<ui->tableWidget->columnCount();++i){
        QString label = ui->tableWidget->horizontalHeaderItem(i)->text();
        QTableWidgetItem *item = new QTableWidgetItem(label);
        if(i < 16){
            item->setBackground(QBrush(QColor("#ff00ff")));
        }else if(i < 16+10){
            item->setBackground(QBrush(QColor("#00aaff")));
        }
        ui->tableWidget->setItem(2,i,item);
    }
    // 并且禁用编辑功能
    //ui->tableWidget->setItemDelegateForRow(1,m_noEdit);
    //ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
    m_noEdit = new TableItemDelegate;
    ui->tableWidget->setItemDelegateForRow(0,m_noEdit);
    ui->tableWidget->setItemDelegateForRow(1,m_noEdit);
    ui->tableWidget->setItemDelegateForRow(2,m_noEdit);
    // 合并第一行的情况,进行分类
    ui->tableWidget->setItem(0,1,new QTableWidgetItem("发现问题"));
    ui->tableWidget->setItem(0,16,new QTableWidgetItem("整改情况"));
    // 处分结果(能自动统计综合审计统计表中:根据审计建议给予党纪、政务和内部纪律处分)
    ui->tableWidget->setItem(0,26,new QTableWidgetItem("处分结果"));
    // 移送信息(能自动统计综合审计统计表中:向司法机关移送或报告案件线索)
    ui->tableWidget->setItem(0,28,new QTableWidgetItem("移送信息"));
    ui->tableWidget->setItem(0,31,new QTableWidgetItem("整改检查结果"));
    ui->tableWidget->setItem(0,34,new QTableWidgetItem("整改类型"));
    ui->tableWidget->setItem(1,34,new QTableWidgetItem("已整改"));
    ui->tableWidget->setItem(1,37,new QTableWidgetItem("正在整改"));
    ui->tableWidget->setItem(1,39,new QTableWidgetItem("尚未整改"));
    ui->tableWidget->setItem(0,42,new QTableWidgetItem("整改成果"));
    ui->tableWidget->setItem(1,42,new QTableWidgetItem("问题整改(金额类)"));
    ui->tableWidget->setItem(1,44,new QTableWidgetItem("问题整改(非金额类)"));
    ui->tableWidget->setSpan(0,1,2,15); // 发现问题
    ui->tableWidget->item(0,1)->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setSpan(0,16,2,10); // 整改情况
    ui->tableWidget->item(0,16)->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setSpan(0,26,2,2); // 处分结果
    ui->tableWidget->item(0,26)->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setSpan(0,28,2,3); // 移送信息
    ui->tableWidget->item(0,28)->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setSpan(0,31,2,3); // 整改检查结果
    ui->tableWidget->item(0,31)->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setSpan(0,34,1,8); // 整改类型
    ui->tableWidget->item(0,34)->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setSpan(1,34,1,3); // 已整改
    ui->tableWidget->item(1,34)->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setSpan(1,37,1,2); // 正在整改
    ui->tableWidget->item(1,37)->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setSpan(1,39,1,3); // 尚未整改
    ui->tableWidget->item(1,39)->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setSpan(0,42,1,4); // 整改成果
    ui->tableWidget->item(0,42)->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setSpan(1,42,1,2); // 问题整改(金额类)
    ui->tableWidget->item(1,42)->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setSpan(1,44,1,2); // 问题整改(非金额类)
    ui->tableWidget->item(1,44)->setTextAlignment(Qt::AlignCenter);
    // 隐藏列标题
    ui->tableWidget->horizontalHeader()->setVisible(false);
    // 加载公司名
    readCompanyFromSQL();
@@ -616,25 +745,26 @@
        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 fpath = ui->tableWidget->item(row,13+2)->text();
            QString spath = ui->tableWidget->item(row,17+2)->text();
            QString tpath = ui->tableWidget->item(row,23+2)->text();
            QString fid = ui->tableWidget->item(row,0)->text();
            qDebug()<<"拷贝文件:"<<fid<<fpath;
            QString proName = ui->tableWidget->item(row,7)->text(); // 项目名称
            qDebug()<<"拷贝文件:"<<fid<<proName<<fpath;
            QString absSavePath1,absSavePath2,absSavePath3;
            int sflag1 = saveFile(fpath,fid,absSavePath1); // 保存第一个
            int sflag1 = saveFile(fpath,fid,absSavePath1,proName); // 保存第一个
            if(sflag1==1){
                ui->tableWidget->setItem(row,13,new QTableWidgetItem(absSavePath1));
                ui->tableWidget->setItem(row,13+2,new QTableWidgetItem(absSavePath1));
            }
            int sflag2 = saveFile(spath,fid,absSavePath2); // 保存第二个
            int sflag2 = saveFile(spath,fid,absSavePath2,proName); // 保存第二个
            if(sflag2==1){
                ui->tableWidget->setItem(row,17,new QTableWidgetItem(absSavePath2));
                ui->tableWidget->setItem(row,17+2,new QTableWidgetItem(absSavePath2));
            }
            int sflag3 = saveFile(tpath,fid,absSavePath3); // 保存第三个
            int sflag3 = saveFile(tpath,fid,absSavePath3,proName); // 保存第三个
            if(sflag3==1){
                ui->tableWidget->setItem(row,23,new QTableWidgetItem(absSavePath3));
                ui->tableWidget->setItem(row,23+2,new QTableWidgetItem(absSavePath3));
            }
            qDebug()<<"save falg:"<<sflag1<<sflag2<<sflag3;
            if(sflag1 || sflag2 || sflag3){
@@ -814,10 +944,10 @@
    QVector<QVector<QString>> res;
    int rows = selectSQL(sql,res);
    if(rows > 0){
        ui->tableWidget->setRowCount(rows);
        ui->tableWidget->setRowCount(rows+3);
        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]));
                ui->tableWidget->setItem(i+3,j,new QTableWidgetItem(res[i][j]));
            }
        }
    }else{
@@ -829,7 +959,7 @@
void ThreeMergeProblemList::on_pushButton_save_3_clicked()
{
    int hasContentRow=0;
    for(int i=0;i<ui->tableWidget->rowCount();++i){
    for(int i=3;i<ui->tableWidget->rowCount();++i){
        int row = saveDataLine(i);
        if(row > 0) {
            hasContentRow++;
@@ -839,21 +969,22 @@
            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 proName = ui->tableWidget->item(i,7)->text(); // 项目名称
            qDebug()<<"拷贝文件:"<<fid<<proName<<fpath;
            QString absSavePath1,absSavePath2,absSavePath3;
            int sflag1 = saveFile(fpath,fid,absSavePath1); // 保存第一个
            int sflag1 = saveFile(fpath,fid,absSavePath1,proName); // 保存第一个
            if(sflag1==1){
                ui->tableWidget->setItem(i,13,new QTableWidgetItem(absSavePath1));
                ui->tableWidget->setItem(i,13+2,new QTableWidgetItem(absSavePath1));
            }
            int sflag2 = saveFile(spath,fid,absSavePath2); // 保存第二个
            int sflag2 = saveFile(spath,fid,absSavePath2,proName); // 保存第二个
            if(sflag2==1){
                ui->tableWidget->setItem(i,17,new QTableWidgetItem(absSavePath2));
                ui->tableWidget->setItem(i,17+2,new QTableWidgetItem(absSavePath2));
            }
            int sflag3 = saveFile(tpath,fid,absSavePath3); // 保存第三个
            int sflag3 = saveFile(tpath,fid,absSavePath3,proName); // 保存第三个
            if(sflag3==1){
                ui->tableWidget->setItem(i,23,new QTableWidgetItem(absSavePath3));
                ui->tableWidget->setItem(i,23+2,new QTableWidgetItem(absSavePath3));
            }
            qDebug()<<"save falg:"<<sflag1<<sflag2<<sflag3;
            if(sflag1 || sflag2 || sflag3){
@@ -939,10 +1070,10 @@
    QVector<QVector<QString>> res;
    int rows = selectSQL(sql,res);
    if(rows > 0){
        ui->tableWidget->setRowCount(rows);
        ui->tableWidget->setRowCount(rows+3);
        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]));
                ui->tableWidget->setItem(i+3,j,new QTableWidgetItem(res[i][j]));
            }
        }
    }else{
@@ -971,9 +1102,9 @@
    if(row>=0 && item){
        qDebug()<<"row"<<row;
        // 取下标  13  17  23
        auto item_13 = ui->tableWidget->item(row,13);
        auto item_17 = ui->tableWidget->item(row,17);
        auto item_23 = ui->tableWidget->item(row,23);
        auto item_13 = ui->tableWidget->item(row,13+2);
        auto item_17 = ui->tableWidget->item(row,17+2);
        auto item_23 = ui->tableWidget->item(row,23+2);
        if(item_13){
            qDebug()<<item_13->text();
            QString text = item_13->text();
@@ -995,3 +1126,17 @@
        }
    }
}
void ThreeMergeProblemList::updateComboList(QMap<QString, ComInfo> & nameAndComInfos)
{
    ui->comboBox_company->clear();
    for(auto it = nameAndComInfos.begin();it != nameAndComInfos.end();++it){
        ui->comboBox_company->addItem(it.key());
    }
}
void ThreeMergeProblemList::on_pushButton_save_export_clicked()
{
    qDebug()<<"三合一导出保存";
}