#include "threemergeproblemlist.h"
|
#include "ui_threemergeproblemlist.h"
|
#include <QDebug>
|
#include <QSqlQuery>
|
#include <QSqlError>
|
#include <QMessageBox>
|
#include <QDir>
|
#include <QFileDevice>
|
#include <QDesktopServices>
|
#include <QFileDialog>
|
|
#include "noedititemdelegate.h"
|
|
#pragma execution_character_set("utf-8")
|
|
ThreeMergeProblemList::ThreeMergeProblemList(QWidget *parent) :
|
QMainWindow(parent),
|
ui(new Ui::ThreeMergeProblemList)
|
{
|
ui->setupUi(this);
|
|
m_fdd = new FileDialogDelegate;
|
//m_noEdit = new ThreeComboBox;
|
|
ui->statusbar->hide();
|
ui->menubar->hide();
|
initUi(); // 初始化所有界面
|
|
// 隐藏
|
//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'"
|
",审计期间已整改='%16',整改金额=%17,整改情况1='%18',整改情况佐证资料1='%19',整改结果='%20',整改完成时间='%21',尚未整改到位的原因='%22',整改预计完成时间='%23'"
|
",整改情况2='%24',整改情况佐证资料2='%25',处分类型='%26',处分人数=%27,移送详细信息='%28',处理结果='%29',涉案人员=%30,整改检查结果_检查时间='%31',整改检查结果_检查方式='%32',整改检查结果_检查结果='%33',已整改_纠正问题='%34',已整改_完善制度='%35',已整改_完成时间='%36'"
|
",正在整改_主要原因='%37',正在整改_完成时限='%38',尚未整改_主要原因='%39',尚未整改_责任部门或责任人='%40',尚未整改_完成时限='%41',整改成果_金额类整改成果='%42',整改成果_金额=%43,整改成果_非金额类整改成果='%44'"
|
",整改成果_数量=%45 where id=%46").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,12+2)->text().toDouble()).arg(ui->tableWidget->item(row,13+2)->text()).arg(ui->tableWidget->item(row,14+2)->text()).arg(ui->tableWidget->item(row,15+2)->text().toDouble()).arg(ui->tableWidget->item(row,16+2)->text())
|
.arg(ui->tableWidget->item(row,17+2)->text()).arg(ui->tableWidget->item(row,18+2)->text()).arg(ui->tableWidget->item(row,19+2)->text()).arg(ui->tableWidget->item(row,20+2)->text()).arg(ui->tableWidget->item(row,21+2)->text()).arg(ui->tableWidget->item(row,22+2)->text())
|
.arg(ui->tableWidget->item(row,23+2)->text()).arg(ui->tableWidget->item(row,24+2)->text()).arg(ui->tableWidget->item(row,25+2)->text().toInt()).arg(ui->tableWidget->item(row,26+2)->text()).arg(ui->tableWidget->item(row,27+2)->text()).arg(ui->tableWidget->item(row,28+2)->text().toInt()).arg(ui->tableWidget->item(row,24+5+2)->text()).arg(ui->tableWidget->item(row,25+5+2)->text()).arg(ui->tableWidget->item(row,26+5+2)->text()).arg(ui->tableWidget->item(row,27+5+2)->text()).arg(ui->tableWidget->item(row,28+5+2)->text())
|
.arg(ui->tableWidget->item(row,29+5+2)->text()).arg(ui->tableWidget->item(row,30+5+2)->text()).arg(ui->tableWidget->item(row,31+5+2)->text()).arg(ui->tableWidget->item(row,32+5+2)->text()).arg(ui->tableWidget->item(row,33+5+2)->text()).arg(ui->tableWidget->item(row,34+5+2)->text())
|
.arg(ui->tableWidget->item(row,35+5+2)->text()).arg(ui->tableWidget->item(row,36+5+2)->text().toDouble()).arg(ui->tableWidget->item(row,37+5+2)->text()).arg(ui->tableWidget->item(row,38+5+2)->text().toInt()).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','%41','%42',%43,'%44',%45,'%46')").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,12+2)->text().toDouble()).arg(ui->tableWidget->item(row,13+2)->text()).arg(ui->tableWidget->item(row,14+2)->text()).arg(ui->tableWidget->item(row,15+2)->text().toDouble()).arg(ui->tableWidget->item(row,16+2)->text())
|
.arg(ui->tableWidget->item(row,17+2)->text()).arg(ui->tableWidget->item(row,18+2)->text()).arg(ui->tableWidget->item(row,19+2)->text()).arg(ui->tableWidget->item(row,20+2)->text()).arg(ui->tableWidget->item(row,21+2)->text()).arg(ui->tableWidget->item(row,22+2)->text())
|
.arg(ui->tableWidget->item(row,23+2)->text()).arg(ui->tableWidget->item(row,24+2)->text()).arg(ui->tableWidget->item(row,25+2)->text().toInt()).arg(ui->tableWidget->item(row,26+2)->text()).arg(ui->tableWidget->item(row,27+2)->text()).arg(ui->tableWidget->item(row,28+2)->text().toInt()).arg(ui->tableWidget->item(row,24+5+2)->text()).arg(ui->tableWidget->item(row,25+5+2)->text()).arg(ui->tableWidget->item(row,26+5+2)->text()).arg(ui->tableWidget->item(row,27+5+2)->text()).arg(ui->tableWidget->item(row,28+5+2)->text())
|
.arg(ui->tableWidget->item(row,29+5+2)->text()).arg(ui->tableWidget->item(row,30+5+2)->text()).arg(ui->tableWidget->item(row,31+5+2)->text()).arg(ui->tableWidget->item(row,32+5+2)->text()).arg(ui->tableWidget->item(row,33+5+2)->text()).arg(ui->tableWidget->item(row,34+5+2)->text())
|
.arg(ui->tableWidget->item(row,35+5+2)->text()).arg(ui->tableWidget->item(row,36+5+2)->text().toDouble()).arg(ui->tableWidget->item(row,37+5+2)->text()).arg(ui->tableWidget->item(row,38+5+2)->text().toInt()).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); // 问题清单
|
|
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);
|
//ui->tableWidget->setItem(1,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);
|
|
// 审计发现问题金额定性
|
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+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+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();
|
}
|
|
void ThreeMergeProblemList::initProblemListUi()
|
{
|
ui->tableWidget_3->setItem(0,0,new QTableWidgetItem("问题清单"));
|
ui->tableWidget_3->setSpan(0,0,3,2);
|
ui->tableWidget_3->item(0,0)->setTextAlignment(Qt::AlignCenter);
|
|
ui->tableWidget_3->setItem(0,2,new QTableWidgetItem("整改检查结果及对账销号清单"));
|
ui->tableWidget_3->setSpan(0,2,1,12);
|
ui->tableWidget_3->item(0,2)->setTextAlignment(Qt::AlignCenter);
|
|
ui->tableWidget_3->setItem(1,2,new QTableWidgetItem("整改检查结果"));
|
ui->tableWidget_3->setSpan(1,2,2,2);
|
ui->tableWidget_3->item(1,2)->setTextAlignment(Qt::AlignCenter);
|
|
ui->tableWidget_3->setItem(1,4,new QTableWidgetItem("整改类型"));
|
ui->tableWidget_3->setSpan(1,4,1,8);
|
ui->tableWidget_3->item(1,4)->setTextAlignment(Qt::AlignCenter);
|
|
ui->tableWidget_3->setItem(2,4,new QTableWidgetItem("已整改"));
|
ui->tableWidget_3->setSpan(2,4,1,3);
|
ui->tableWidget_3->item(2,4)->setTextAlignment(Qt::AlignCenter);
|
|
ui->tableWidget_3->setItem(2,7,new QTableWidgetItem("正在整改"));
|
ui->tableWidget_3->setSpan(2,7,1,2);
|
ui->tableWidget_3->item(2,7)->setTextAlignment(Qt::AlignCenter);
|
|
ui->tableWidget_3->setItem(2,9,new QTableWidgetItem("尚未整改"));
|
ui->tableWidget_3->setSpan(2,9,1,3);
|
ui->tableWidget_3->item(2,9)->setTextAlignment(Qt::AlignCenter);
|
|
ui->tableWidget_3->setItem(1,12,new QTableWidgetItem("是否销号"));
|
ui->tableWidget_3->setSpan(1,12,3,1);
|
ui->tableWidget_3->item(1,12)->setTextAlignment(Qt::AlignCenter);
|
|
ui->tableWidget_3->setItem(1,13,new QTableWidgetItem("销号时间"));
|
ui->tableWidget_3->setSpan(1,13,3,1);
|
ui->tableWidget_3->item(1,13)->setTextAlignment(Qt::AlignCenter);
|
|
|
// 下级列标题 12个
|
ui->tableWidget_3->setItem(3,0,new QTableWidgetItem("序号"));
|
ui->tableWidget_3->setItem(3,1,new QTableWidgetItem("摘要"));
|
ui->tableWidget_3->setItem(3,2,new QTableWidgetItem("检查时间"));
|
ui->tableWidget_3->setItem(3,3,new QTableWidgetItem("检查方式"));
|
ui->tableWidget_3->setItem(3,4,new QTableWidgetItem("纠正问题"));
|
ui->tableWidget_3->setItem(3,5,new QTableWidgetItem("完善制度"));
|
ui->tableWidget_3->setItem(3,6,new QTableWidgetItem("完成时间"));
|
ui->tableWidget_3->setItem(3,7,new QTableWidgetItem("主要原因"));
|
ui->tableWidget_3->setItem(3,8,new QTableWidgetItem("完成时限"));
|
ui->tableWidget_3->setItem(3,9,new QTableWidgetItem("主要原因"));
|
ui->tableWidget_3->setItem(3,10,new QTableWidgetItem("责任部门或责任人"));
|
ui->tableWidget_3->setItem(3,11,new QTableWidgetItem("完成时限"));
|
|
// 禁止编辑
|
for(int i=0;i<4;++i){
|
ui->tableWidget_3->setItemDelegateForRow(i,new TableItemDelegate());
|
}
|
|
|
// 右键菜单
|
m_menu = new QMenu(this);
|
m_menu->addAction("删除当前行");
|
ui->tableWidget_3->setContextMenuPolicy(Qt::CustomContextMenu);
|
connect(ui->tableWidget_3,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenuSlot(QPoint)));
|
connect(m_menu->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteAction()));
|
|
|
|
}
|
|
void ThreeMergeProblemList::initProblemResultUi()
|
{
|
ui->tableWidget_2->setSpan(0,0,1,5);
|
ui->tableWidget_2->setItem(0,0,new QTableWidgetItem("整改成果"));
|
ui->tableWidget_2->item(0,0)->setTextAlignment(Qt::AlignCenter);
|
|
ui->tableWidget_2->setSpan(1,0,1,2);
|
ui->tableWidget_2->setItem(1,0,new QTableWidgetItem("制度建设"));
|
ui->tableWidget_2->item(1,0)->setTextAlignment(Qt::AlignCenter);
|
ui->tableWidget_2->setSpan(1,2,1,3);
|
ui->tableWidget_2->setItem(1,2,new QTableWidgetItem("资金收回"));
|
ui->tableWidget_2->item(1,2)->setTextAlignment(Qt::AlignCenter);
|
ui->tableWidget_2->setSpan(0,5,3,1);
|
ui->tableWidget_2->setItem(0,5,new QTableWidgetItem("处理人"));
|
ui->tableWidget_2->setSpan(0,6,3,1);
|
ui->tableWidget_2->setItem(0,6,new QTableWidgetItem("宣贯培训"));
|
ui->tableWidget_2->setSpan(0,7,3,1);
|
ui->tableWidget_2->setItem(0,7,new QTableWidgetItem("其他"));
|
ui->tableWidget_2->setSpan(0,8,3,1);
|
ui->tableWidget_2->setItem(0,8,new QTableWidgetItem("审核结果"));
|
ui->tableWidget_2->setSpan(0,9,3,1);
|
ui->tableWidget_2->setItem(0,9,new QTableWidgetItem("注销"));
|
|
// 下级标题
|
ui->tableWidget_2->setItem(2,0,new QTableWidgetItem("修订制度"));
|
ui->tableWidget_2->setItem(2,1,new QTableWidgetItem("新增制度"));
|
ui->tableWidget_2->setItem(2,2,new QTableWidgetItem("挽回损失"));
|
ui->tableWidget_2->setItem(2,3,new QTableWidgetItem("剔除"));
|
ui->tableWidget_2->setItem(2,4,new QTableWidgetItem("审减"));
|
|
// 禁止编辑
|
for(int i=0;i<3;++i){
|
ui->tableWidget_2->setItemDelegateForRow(i,new TableItemDelegate());
|
}
|
|
|
// 右键菜单
|
m_menuResult = new QMenu(this);
|
m_menuResult->addAction("删除当前行");
|
ui->tableWidget_2->setContextMenuPolicy(Qt::CustomContextMenu);
|
connect(ui->tableWidget_2,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenuSlotResult(QPoint)));
|
connect(m_menuResult->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteActionResult()));
|
|
// 加载下拉框的公司名
|
//readCompanyFromSQL();
|
}
|
|
void ThreeMergeProblemList::initProblemRectBookUi()
|
{
|
// 右键菜单
|
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::readCompanyFromSQL()
|
{
|
ui->comboBox_company->clear();
|
|
QString sql = "select DISTINCT name from all_company_info";
|
QSqlQuery query;
|
if(query.exec(sql)){
|
qDebug()<<QString("select DISTINCT all_company_info ok");
|
|
while(query.next()){ // 添加公司名
|
QString name = query.value(0).toString();
|
ui->comboBox_company->addItem(name);
|
}
|
|
}else{
|
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)
|
{
|
m_menu->exec(QCursor::pos());
|
}
|
|
void ThreeMergeProblemList::deleteAction()
|
{
|
int row = ui->tableWidget_3->currentRow();
|
if(row>=4){
|
qDebug()<<"ok";
|
ui->tableWidget_3->removeRow(row);
|
}else{
|
qDebug()<<"fail";
|
}
|
}
|
|
void ThreeMergeProblemList::showMenuSlotResult(QPoint)
|
{
|
m_menuResult->exec(QCursor::pos());
|
}
|
|
void ThreeMergeProblemList::deleteActionResult()
|
{
|
int row = ui->tableWidget_2->currentRow();
|
if(row>=3){
|
qDebug()<<"ok";
|
ui->tableWidget_2->removeRow(row);
|
}else{
|
qDebug()<<"fail";
|
}
|
}
|
|
void ThreeMergeProblemList::showMenuSlotRectBook(QPoint)
|
{
|
m_menuRectBook->exec(QCursor::pos());
|
}
|
|
void ThreeMergeProblemList::deleteActionRectBook()
|
{
|
int row = ui->tableWidget->currentRow();
|
if(row>=0){
|
qDebug()<<"delete ok";
|
ui->tableWidget->removeRow(row);
|
}else{
|
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()
|
{
|
ui->tableWidget->insertRow(ui->tableWidget->rowCount());
|
}
|
|
void ThreeMergeProblemList::on_pushButton_addRow_2_clicked()
|
{
|
ui->tableWidget_3->insertRow(ui->tableWidget_3->rowCount());
|
}
|
|
void ThreeMergeProblemList::on_pushButton_addRow_clicked()
|
{
|
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,"添加失败","可能添加的数据不全导致的,得确认每行的首项有数据");
|
}
|
}
|
|
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+2)->text();
|
QString spath = ui->tableWidget->item(i,17+2)->text();
|
QString tpath = ui->tableWidget->item(i,23+2)->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()-3)
|
.arg(hasContentRow).arg(ui->tableWidget->rowCount()-3-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);
|
}
|
|
if(ui->checkBox_punish_type->isChecked()){
|
QString condition= QString(" 处分类型='%1' ").arg(ui->comboBox_punish_type->currentText());
|
vecCon.append(condition);
|
}
|
if(ui->checkBox_transfer->isChecked()){
|
QString condition= QString(" 移送详细信息='%1' ").arg(ui->comboBox_transfer->currentText());
|
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();
|
}
|
}
|
|
// 以系统默认的方式打开指定的文件
|
QUrl file_path = QFileDialog::getOpenFileUrl();
|
if(QDesktopServices::openUrl(file_path)){
|
qDebug()<<"open ok:"<<file_path;
|
}else{
|
qDebug()<<"open fail:"<<file_path;
|
}
|
}
|
|
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()<<"三合一导出保存";
|
QVector<ThreeMergeInfo> infos;
|
QString name = ui->comboBox_company->currentText();
|
|
// 获取表格数据,添加到信息中
|
for(int i=3;i<ui->tableWidget->rowCount();++i){ // 从第三行开始
|
|
// 先对空项进行特殊处理
|
for(int j=0;j<ui->tableWidget->columnCount();++j){
|
if(ui->tableWidget->item(i,j) == nullptr){
|
ui->tableWidget->setItem(i,j,new QTableWidgetItem(" "));
|
qDebug()<<"save find out empty:"<<i<<j;
|
}
|
}
|
ThreeMergeInfo rowInfo;
|
rowInfo.id = ui->tableWidget->item(i,0)->text().toInt();
|
// 发现问题
|
strcpy(rowInfo.audit_type,ui->tableWidget->item(i,1)->text().toLocal8Bit().data());
|
strcpy(rowInfo.audit_year,ui->tableWidget->item(i,2)->text().toLocal8Bit().data());
|
strcpy(rowInfo.audit_unit,ui->tableWidget->item(i,3)->text().toLocal8Bit().data());
|
strcpy(rowInfo.audit_method,ui->tableWidget->item(i,4)->text().toLocal8Bit().data());
|
strcpy(rowInfo.responsible_subject_name,ui->tableWidget->item(i,5)->text().toLocal8Bit().data());
|
strcpy(rowInfo.audit_item,ui->tableWidget->item(i,6)->text().toLocal8Bit().data());
|
strcpy(rowInfo.audit_item_name,ui->tableWidget->item(i,7)->text().toLocal8Bit().data());
|
strcpy(rowInfo.pro_type,ui->tableWidget->item(i,8)->text().toLocal8Bit().data());
|
strcpy(rowInfo.problem_qualification,ui->tableWidget->item(i,9)->text().toLocal8Bit().data());
|
strcpy(rowInfo.problem_desript,ui->tableWidget->item(i,10)->text().toLocal8Bit().data());
|
strcpy(rowInfo.problem_qualifi_basis,ui->tableWidget->item(i,11)->text().toLocal8Bit().data());
|
strcpy(rowInfo.problem_money_basis,ui->tableWidget->item(i,12)->text().toLocal8Bit().data());
|
strcpy(rowInfo.problem_num_basis,ui->tableWidget->item(i,13)->text().toLocal8Bit().data());
|
rowInfo.money_involved = ui->tableWidget->item(i,14)->text().toDouble();
|
strcpy(rowInfo.problem_desript_evidence_material,ui->tableWidget->item(i,15)->text().toLocal8Bit().data());
|
|
// 整改情况
|
strcpy(rowInfo.audit_rectified,ui->tableWidget->item(i,16)->text().toLocal8Bit().data());
|
rowInfo.rectify_money = ui->tableWidget->item(i,17)->text().toDouble();
|
strcpy(rowInfo.rectify_situation_1,ui->tableWidget->item(i,18)->text().toLocal8Bit().data());
|
strcpy(rowInfo.rectify_situation_evidence_mat_1,ui->tableWidget->item(i,19)->text().toLocal8Bit().data());
|
strcpy(rowInfo.rectify_res,ui->tableWidget->item(i,20)->text().toLocal8Bit().data());
|
strcpy(rowInfo.rectify_complete_time,ui->tableWidget->item(i,21)->text().toLocal8Bit().data());
|
strcpy(rowInfo.rectify_not_over_reason,ui->tableWidget->item(i,22)->text().toLocal8Bit().data());
|
strcpy(rowInfo.rectify_will_complete_time,ui->tableWidget->item(i,23)->text().toLocal8Bit().data());
|
strcpy(rowInfo.rectify_situation_2,ui->tableWidget->item(i,24)->text().toLocal8Bit().data());
|
strcpy(rowInfo.rectify_situation_evidence_mat_2,ui->tableWidget->item(i,25)->text().toLocal8Bit().data());
|
|
// 处分结果
|
strcpy(rowInfo.punish_type,ui->tableWidget->item(i,26)->text().toLocal8Bit().data());
|
rowInfo.punish_person_num = ui->tableWidget->item(i,27)->text().toInt();
|
|
// 移送信息
|
strcpy(rowInfo.transfer_info,ui->tableWidget->item(i,28)->text().toLocal8Bit().data());
|
strcpy(rowInfo.punish_res,ui->tableWidget->item(i,29)->text().toLocal8Bit().data());
|
rowInfo.involved_person_num = ui->tableWidget->item(i,30)->text().toInt();
|
|
// 整个检查结果
|
strcpy(rowInfo.rectify_check_time,ui->tableWidget->item(i,31)->text().toLocal8Bit().data());
|
strcpy(rowInfo.rectify_check_mothod,ui->tableWidget->item(i,32)->text().toLocal8Bit().data());
|
strcpy(rowInfo.rectify_check_res,ui->tableWidget->item(i,33)->text().toLocal8Bit().data());
|
|
// 整改类型-已整改
|
strcpy(rowInfo.correct_problem,ui->tableWidget->item(i,34)->text().toLocal8Bit().data());
|
strcpy(rowInfo.improve_the_system,ui->tableWidget->item(i,35)->text().toLocal8Bit().data());
|
strcpy(rowInfo.complete_time,ui->tableWidget->item(i,36)->text().toLocal8Bit().data());
|
|
// 整改类型-正在整改
|
strcpy(rowInfo.during_main_reason,ui->tableWidget->item(i,37)->text().toLocal8Bit().data());
|
strcpy(rowInfo.during_end_complete_time,ui->tableWidget->item(i,38)->text().toLocal8Bit().data());
|
|
// 整改类型-尚未整改
|
strcpy(rowInfo.not_main_reason,ui->tableWidget->item(i,39)->text().toLocal8Bit().data());
|
strcpy(rowInfo.departen_or_person,ui->tableWidget->item(i,40)->text().toLocal8Bit().data());
|
strcpy(rowInfo.not_end_complete_time,ui->tableWidget->item(i,41)->text().toLocal8Bit().data());
|
|
// 整改结果-问题整改(金额类)
|
strcpy(rowInfo.money_res,ui->tableWidget->item(i,42)->text().toLocal8Bit().data());
|
rowInfo.money_res_money = ui->tableWidget->item(i,43)->text().toDouble();
|
|
// 整改结果-问题整改(非金额类)
|
strcpy(rowInfo.no_money_res,ui->tableWidget->item(i,44)->text().toLocal8Bit().data());
|
rowInfo.no_money_res_num = ui->tableWidget->item(i,45)->text().toInt();
|
|
// 放到vector中
|
infos.append(rowInfo);
|
|
}
|
|
|
ExportToFile etf;
|
etf.saveToExcelFromThreeMergePro(name,infos);
|
}
|
|
void ThreeMergeProblemList::on_tableWidget_cellChanged(int row, int column)
|
{
|
qDebug()<<"cellChanged:"<<row<<column;
|
QTableWidgetItem *item = ui->tableWidget->item(row,5);
|
if(row < 3 || !item) return; // 防止异常
|
if(column == 26) // 表示是处分类型被修改了,那就可以自动去获取数据库中的数据出来,同步到同一行去了
|
{
|
QString rectify_type = ui->tableWidget->item(row,column)->text();
|
QString name = ui->tableWidget->item(row,5)->text();
|
QMap<QString,QString> typeInfos;
|
typeInfos["其中:党纪处分"] = "_030901";
|
typeInfos["政务处分"] = "_030902";
|
typeInfos["内部纪律处分"] = "_030903";
|
|
QString sql = QString("select %1,_031001 from comprehensive_entry_info where name='%2'").arg(typeInfos[rectify_type]).arg(name);
|
qDebug()<<"sql:"<<sql;
|
QSqlQuery query;
|
if(query.exec(sql)){
|
qDebug()<<"执行成果,记录结果 处分类型:"<<rectify_type;
|
int cnt=0;
|
int involved_person_cnt = 0;
|
while(query.next()){
|
cnt += query.value(0).toInt();
|
involved_person_cnt += query.value(1).toInt();
|
}
|
qDebug()<<"查到cnt="<<cnt <<" 涉案人员:"<<involved_person_cnt;
|
ui->tableWidget->setItem(row,27,new QTableWidgetItem(QString::number(cnt)));
|
ui->tableWidget->setItem(row,30,new QTableWidgetItem(QString::number(involved_person_cnt)));
|
}else {
|
qDebug()<<"查询失败 处分类型"<<rectify_type;
|
}
|
|
}else if(column == 42) // 表示是金额类整改成果触发了
|
{
|
QMap<QString,QString> moneyInfos;
|
moneyInfos["其中:调整会计账目"] = "_030701";
|
moneyInfos["收回资金"] = "_030702";
|
moneyInfos["挽回损失"] = "_030703";
|
moneyInfos["归还原资金渠道"] = "_030704";
|
moneyInfos["补缴税费"] = "_030705";
|
moneyInfos["其他"] = "_030706";
|
|
QString currentText = ui->tableWidget->item(row,42)->text();
|
QString name = ui->tableWidget->item(row,5)->text();
|
QString sql = QString("select %1 from comprehensive_entry_info where name='%2'").arg(moneyInfos[currentText]).arg(name);
|
qDebug()<<"sql:"<<sql;
|
QSqlQuery query;
|
if(query.exec(sql)){
|
double cnt=0;
|
while (query.next()) {
|
cnt += query.value(0).toDouble();
|
}
|
ui->tableWidget->setItem(row,43,new QTableWidgetItem(QString::number(cnt)));
|
}else{
|
qDebug()<<"执行sql失败 审计发现问题整改(金额类)";
|
}
|
|
|
}else if(column == 44) // 表示是非金额类整改成果触发了
|
{
|
|
QMap<QString,QString> noMoneyInfos;
|
noMoneyInfos["其中:新制定制度"] = "_030801";
|
noMoneyInfos["修订完善制度"] = "_030802";
|
noMoneyInfos["优化完善业务流程"] = "_030803";
|
noMoneyInfos["其他"] = "_030804";
|
|
QString currentText = ui->tableWidget->item(row,44)->text();
|
QString name = ui->tableWidget->item(row,5)->text();
|
QString sql = QString("select %1 from comprehensive_entry_info where name='%2'").arg(noMoneyInfos[currentText]).arg(name);
|
qDebug()<<"sql:"<<sql;
|
QSqlQuery query;
|
if(query.exec(sql)){
|
int cnt=0;
|
while (query.next()) {
|
cnt += query.value(0).toInt();
|
}
|
ui->tableWidget->setItem(row,45,new QTableWidgetItem(QString::number(cnt)));
|
}else{
|
qDebug()<<"执行sql失败 审计发现问题整改(金额类)";
|
}
|
}
|
}
|