| | |
| | | #include <QSqlQuery> |
| | | #include <QSqlError> |
| | | #include <QMessageBox> |
| | | #include <QDir> |
| | | #include <QFileDevice> |
| | | #include "noedititemdelegate.h" |
| | | |
| | | #pragma execution_character_set("utf-8") |
| | | |
| | | ThreeMergeProblemList::ThreeMergeProblemList(QWidget *parent) : |
| | | QMainWindow(parent), |
| | |
| | | ui->setupUi(this); |
| | | |
| | | m_fdd = new FileDialogDelegate; |
| | | //m_noEdit = new ThreeComboBox; |
| | | |
| | | ui->statusbar->hide(); |
| | | 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(); |
| | | |
| | | ui->groupBox->hide(); // 首次先隐藏 |
| | | |
| | | // pdf文件相关 |
| | | //m_pdfView = new QWebEngineView(); |
| | | |
| | | |
| | | } |
| | | |
| | | ThreeMergeProblemList::~ThreeMergeProblemList() |
| | | { |
| | | //delete m_noEdit; |
| | | 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; |
| | | } |
| | | // 处理为空的非首列单元,自动补零 |
| | | 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(" ")); |
| | | } |
| | | } |
| | | |
| | | |
| | | // 取出索引号来判断一下 |
| | | 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,QString proName) |
| | | { |
| | | // 根据id来指定子目录进行文件的拷贝和存储 |
| | | // 默认保存到当前evidence目录下的id子目录中 |
| | | QFile sourceFile(path); |
| | | if(!sourceFile.exists()){ |
| | | qDebug()<<"target file not exist:"<<path; |
| | | return -1; |
| | | } |
| | | |
| | | QString curPath = QString("./evidence/%1_%2/").arg(id).arg(proName); |
| | | 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; |
| | | } |
| | | |
| | | } |
| | | |
| | | // 使用web技术 加载pdf文件 |
| | | int ThreeMergeProblemList::loadPdfFile(QString path) |
| | | { |
| | | // QString dirPath = QApplication::applicationDirPath(); |
| | | // qDebug()<<"pdf:"<<path<<dirPath; |
| | | // qDebug()<<QDir::currentPath(); |
| | | // qDebug()<<path.mid(1); |
| | | // QString pdfJS = "file://"+QDir::currentPath()+"/web/viewer.html"; |
| | | // QString link = "?file="; |
| | | // QString fullPath = pdfJS+link+QDir::currentPath()+path.mid(1); |
| | | // qDebug()<<"fullPath"<<fullPath; |
| | | // m_pdfView->page()->load(QUrl::fromUserInput(fullPath)); |
| | | |
| | | return 0; |
| | | } |
| | | void ThreeMergeProblemList::initUi() |
| | | { |
| | | initProblemRectBookUi(); // 初始化整改台账 |
| | | initProblemListUi(); // 初始化问题清单界面 |
| | | initProblemResultUi(); // 初始化问题处理结果界面 |
| | | |
| | | ui->tableWidget->setRowCount(4); // 设置初始行数 |
| | | ui->tableWidget->setMinimumHeight(500); // 整改台账 |
| | | ui->tableWidget_2->setMinimumHeight(500); // 整改结果 |
| | | ui->tableWidget_3->setMinimumHeight(500); // 问题清单 |
| | |
| | | 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){ |
| | |
| | | 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(); |
| | |
| | | // 右键菜单 |
| | | m_menuRectBook = new QMenu(this); |
| | | m_menuRectBook->addAction("删除当前行"); |
| | | 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())); |
| | | connect(m_menuRectBook->actions().at(2),SIGNAL(triggered(bool)),this,SLOT(showSaveFile())); |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | void ThreeMergeProblemList::showMenuSlot(QPoint) |
| | | { |
| | | m_menu->exec(QCursor::pos()); |
| | |
| | | { |
| | | 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+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(); |
| | | QString proName = ui->tableWidget->item(row,7)->text(); // 项目名称 |
| | | qDebug()<<"拷贝文件:"<<fid<<proName<<fpath; |
| | | |
| | | QString absSavePath1,absSavePath2,absSavePath3; |
| | | |
| | | int sflag1 = saveFile(fpath,fid,absSavePath1,proName); // 保存第一个 |
| | | if(sflag1==1){ |
| | | ui->tableWidget->setItem(row,13+2,new QTableWidgetItem(absSavePath1)); |
| | | } |
| | | int sflag2 = saveFile(spath,fid,absSavePath2,proName); // 保存第二个 |
| | | if(sflag2==1){ |
| | | ui->tableWidget->setItem(row,17+2,new QTableWidgetItem(absSavePath2)); |
| | | } |
| | | int sflag3 = saveFile(tpath,fid,absSavePath3,proName); // 保存第三个 |
| | | if(sflag3==1){ |
| | | ui->tableWidget->setItem(row,23+2,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() |
| | |
| | | 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+3); |
| | | for(int i=0;i<res.size();++i){ |
| | | for(int j=0;j<res.at(0).size()-1;++j){ // 去掉记录时间 |
| | | ui->tableWidget->setItem(i+3,j,new QTableWidgetItem(res[i][j])); |
| | | } |
| | | } |
| | | }else{ |
| | | QMessageBox::information(this,"查询失败","可能查询的内容不正确或者没有记录相应的数据"); |
| | | } |
| | | |
| | | } |
| | | |
| | | void ThreeMergeProblemList::on_pushButton_save_3_clicked() |
| | | { |
| | | int hasContentRow=0; |
| | | for(int i=3;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(); |
| | | QString proName = ui->tableWidget->item(i,7)->text(); // 项目名称 |
| | | qDebug()<<"拷贝文件:"<<fid<<proName<<fpath; |
| | | |
| | | QString absSavePath1,absSavePath2,absSavePath3; |
| | | |
| | | int sflag1 = saveFile(fpath,fid,absSavePath1,proName); // 保存第一个 |
| | | if(sflag1==1){ |
| | | ui->tableWidget->setItem(i,13+2,new QTableWidgetItem(absSavePath1)); |
| | | } |
| | | int sflag2 = saveFile(spath,fid,absSavePath2,proName); // 保存第二个 |
| | | if(sflag2==1){ |
| | | ui->tableWidget->setItem(i,17+2,new QTableWidgetItem(absSavePath2)); |
| | | } |
| | | int sflag3 = saveFile(tpath,fid,absSavePath3,proName); // 保存第三个 |
| | | if(sflag3==1){ |
| | | ui->tableWidget->setItem(i,23+2,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)); |
| | | } |
| | | |
| | | void ThreeMergeProblemList::on_pushButton_moreSearch_clicked() |
| | | { |
| | | QString sql = "select * from standing_book_info "; |
| | | |
| | | QVector<QString> vecCon; // 保存所有条件 |
| | | |
| | | if(ui->checkBox_type->isChecked()){ |
| | | QString condition= QString(" 审计类别='%1' ").arg(ui->comboBox_type->currentText()); |
| | | vecCon.append(condition); |
| | | } |
| | | if(ui->checkBox_year->isChecked()){ |
| | | QString condition= QString(" 审计年度='%1' ").arg(ui->dateEdit_year->text()); |
| | | vecCon.append(condition); |
| | | } |
| | | if(ui->checkBox_com->isChecked()){ |
| | | QString condition= QString(" 审计单位='%1' ").arg(ui->comboBox_com->currentText()); |
| | | vecCon.append(condition); |
| | | } |
| | | if(ui->checkBox_way->isChecked()){ |
| | | QString condition= QString(" 审计方式='%1' ").arg(ui->comboBox_way->currentText()); |
| | | vecCon.append(condition); |
| | | } |
| | | if(ui->checkBox_mainCom->isChecked()){ |
| | | QString condition= QString(" 责任主体名称='%1' ").arg(ui->comboBox_mainCom->currentText()); |
| | | vecCon.append(condition); |
| | | } |
| | | if(ui->checkBox_pro->isChecked()){ |
| | | QString condition= QString(" 审计项目='%1' ").arg(ui->comboBox_pro->currentText()); |
| | | vecCon.append(condition); |
| | | } |
| | | if(ui->checkBox_proName->isChecked()){ |
| | | QString condition= QString(" 审计项目名称='%1' ").arg(ui->comboBox_proName->currentText()); |
| | | vecCon.append(condition); |
| | | } |
| | | if(ui->checkBox_qtype->isChecked()){ |
| | | QString condition= QString(" 问题类别='%1' ").arg(ui->comboBox_qtype->currentText()); |
| | | vecCon.append(condition); |
| | | } |
| | | if(ui->checkBox_qdx->isChecked()){ |
| | | QString condition= QString(" 问题定性='%1'").arg(ui->comboBox_qdx->currentText()); |
| | | vecCon.append(condition); |
| | | } |
| | | if(ui->checkBox_about_money->isChecked()){ |
| | | QString condition= QString(" 涉及金额 >= %1 and 涉及金额 <= %2").arg(ui->comboBox_about_bgMonney->currentText()).arg(ui->comboBox_about_edMoney->currentText()); |
| | | vecCon.append(condition); |
| | | } |
| | | if(ui->checkBox_changeMoney->isChecked()){ |
| | | QString condition= QString(" 整改金额>=%1 and 整改金额<=%2").arg(ui->comboBox_change_bgMoney->currentText()).arg(ui->comboBox_change_edMoney->currentText()); |
| | | vecCon.append(condition); |
| | | } |
| | | if(ui->checkBox_change_over_time->isChecked()){ |
| | | QString condition= QString(" 整改完成时间='%1' ").arg(ui->dateEdit_change_over_time->text()); |
| | | vecCon.append(condition); |
| | | } |
| | | if(ui->checkBox_change_expected_time->isChecked()){ |
| | | QString condition= QString(" 整改预计完成时间='%1' ").arg(ui->dateEdit_change_expected_time->text()); |
| | | vecCon.append(condition); |
| | | } |
| | | QString condition; |
| | | if(vecCon.size() == 1){ |
| | | condition += QString(" where %1").arg(vecCon.at(0)); |
| | | }else if(vecCon.size() > 1){ |
| | | condition += QString(" where %1").arg(vecCon.at(0)); |
| | | for(int i=1;i<vecCon.size();++i){ |
| | | condition += QString(" and %1 ").arg(vecCon.at(i)); |
| | | } |
| | | } |
| | | sql += condition; |
| | | qDebug()<<sql; |
| | | |
| | | QVector<QVector<QString>> res; |
| | | int rows = selectSQL(sql,res); |
| | | if(rows > 0){ |
| | | 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+3,j,new QTableWidgetItem(res[i][j])); |
| | | } |
| | | } |
| | | }else{ |
| | | QMessageBox::information(this,"查询失败","可能查询的内容不正确或者没有记录相应的数据"); |
| | | } |
| | | |
| | | } |
| | | |
| | | void ThreeMergeProblemList::on_pushButton_multiSearch_clicked() |
| | | { |
| | | static int cnt=0; |
| | | if(cnt%2 == 1){ |
| | | ui->groupBox->hide(); |
| | | ui->pushButton_multiSearch->setText("多维度数据查询👆"); |
| | | }else{ |
| | | ui->groupBox->show(); |
| | | ui->pushButton_multiSearch->setText("多维度数据查询👇"); |
| | | } |
| | | cnt++; |
| | | } |
| | | |
| | | void ThreeMergeProblemList::showSaveFile() |
| | | { |
| | | int row = ui->tableWidget->currentRow(); |
| | | auto item = ui->tableWidget->currentItem(); |
| | | if(row>=0 && item){ |
| | | qDebug()<<"row"<<row; |
| | | // 取下标 13 17 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(); |
| | | QStringList listPath = text.split("/"); |
| | | if(listPath.size() > 2){ |
| | | qDebug()<<"发现文件"<<listPath.back(); |
| | | QString type = listPath.back().split(".").back(); |
| | | qDebug()<<"type"<<type; |
| | | if(type == "pdf"){ |
| | | loadPdfFile(text); |
| | | } |
| | | } |
| | | } |
| | | if(item_17){ |
| | | qDebug()<<item_17->text(); |
| | | } |
| | | if(item_23){ |
| | | qDebug()<<item_23->text(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | 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()<<"三合一导出保存"; |
| | | } |