wumu
2024-12-13 708abd6f59663758bd901947c3d79a5ab0ada870
1212
7个文件已修改
612 ■■■■ 已修改文件
internal_system_v1/clientmainwindow.ui 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/converinfo2.cpp 467 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/converinfo2.h 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/exporttofile.cpp 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/searchinfo.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/threemergeproblemlist.cpp 118 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/threemergeproblemlist.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/clientmainwindow.ui
@@ -11,14 +11,14 @@
   </rect>
  </property>
  <property name="windowTitle">
   <string>IS v3.2</string>
   <string>IS v3.3</string>
  </property>
  <widget class="QWidget" name="centralWidget">
   <layout class="QGridLayout" name="gridLayout_3">
    <item row="0" column="0">
     <widget class="QTabWidget" name="tabWidget">
      <property name="currentIndex">
       <number>2</number>
       <number>0</number>
      </property>
      <widget class="QWidget" name="tab">
       <attribute name="title">
internal_system_v1/converinfo2.cpp
@@ -767,6 +767,11 @@
                // 最后存到map中
                m_nameAndComInfos[name.toString()]=curComInfo;
                // 更新到数据库中
                saveToSQL(curComInfo);
                qDebug()<<"load Excel save to SQL ok:"<<name;
                // 添加树形列表节点
                //addTreeWidgetNode(upName,name);
@@ -793,6 +798,9 @@
        emit loadProgress((cntIdx/allSize)*100);
        cntIdx++;
    }
    // 再次查询数据库中所有的信息
    readAllSQLData();
    createTreeNode(); // 构建树形节点
@@ -986,125 +994,128 @@
    // 更新到数据库
    saveToSQL(curComInfo);
    // 先判断是不是已经存在公司名了,若已存在,则更新,不存在则插入
    QString sql = QString("select id,name from all_company_info where name='%1'").arg(name);
    qDebug()<<"sql:"<<sql;
    QSqlQuery query;
    int rowCnt = 0;
    if(query.exec(sql)){
        qDebug()<<"size:"<<query.size();
//    // 先判断是不是已经存在公司名了,若已存在,则更新,不存在则插入
//    QString sql = QString("select id,name from all_company_info where name='%1'").arg(name);
//    qDebug()<<"sql:"<<sql;
//    QSqlQuery query;
//    int rowCnt = 0;
//    if(query.exec(sql)){
//        qDebug()<<"size:"<<query.size();
        while (query.next()) {
            rowCnt++;
        }
    }
    if(rowCnt == 0){
        // 不存在,则插入一条新数据
        qDebug()<<"不存在:"<<name;
        sql = QString("insert into all_company_info (name,\
code,\
机构类型,\
主要业务活动,\
行业代码,\
单位注册地及区域,\
区域代码,\
城乡代码,\
单位规模,\
从业期末人数,\
法定代表人,\
执行会记标准类别,\
长途区号,\
固定电话,\
邮政编码,\
电子邮箱,\
网址,\
是否有上一级法人,\
上一级统信代码,\
原组织代码,\
上级单位名称,\
是否设置总审计师,\
总审计师职位层级,\
总审任职方式,\
是否设置内审机构,\
内审机构名称,\
领导机构,\
是否独立设置内审机构,\
财务部门,\
法务部门,\
内部控制部门,\
纪检部门,\
其他部门,\
内审层级,\
编制数量,\
实有人数量,\
专职人员数量,\
拥有CIA人数,\
硕士学历以上人数,\
本科人数,\
专科及以下人数,\
高级职称人数,\
中级职称人数,\
初级职称人数,\
无职称人数,\
五十岁以上人数,\
三十至五十岁岁人数,\
三十岁以下人数,\
审计数量,\
会计数量,\
经济数量,\
法律数量,\
管理数量,\
信息技术数量,\
工程数量,\
其他数量,\
统计负责人,\
填表人,\
联系电话,\
填报日期) 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,%47,%48,%49,%50,\
%51,%52,%53,%54,%55,%56,'%57','%58','%59','%60'\
)").arg(name).arg(creditCode).arg(comType).arg(business).arg(businessCode).arg(addr).arg(areaCode).arg(townCode).arg(scale).arg(people).
                arg(representative).arg(standardType).arg(trunkCode).arg(fixedTel).arg(postCode).arg(email).arg(webSite).arg(hasUpLegal).arg(upCreditCode).arg(oldCreditCode).
                arg(upName).arg(hasChiefDesigner).arg(ChiefDesignerLevel).arg(employmentMode).arg(hasSetIntervalAudit).arg(internalName).arg(leadingOrganization).arg(hasSetSeparateIA).arg(financeDepartment).arg(legalDepartment).
                arg(internalConDepart).arg(disceplineInDepart).arg(otherDepart).arg(intavalAuditLeval).arg(organazationNum).arg(realNum).arg(professionalNum).arg(CIANum).arg(masterNum).arg(undergraduatesNum).
                arg(juniorNum).arg(seniorNum).arg(intermediateNum).arg(primaryNum).arg(noTitleNum).arg(upFiftyOldNum).arg(upThirtyOldNum).arg(downThirtyOldNum).arg(auditNum).arg(accountingNum).
                arg(economyNum).arg(lawNum).arg(managerNum).arg(itNum).arg(engineeringNum).arg(otherNum).arg(statisticalConOfficer).arg(personFilling).arg(officerTel).arg(fillingDateTime);
//        while (query.next()) {
//            rowCnt++;
//        }
//    }
//    if(rowCnt == 0){
//        // 不存在,则插入一条新数据
//        qDebug()<<"不存在:"<<name;
//        sql = QString("insert into all_company_info (name,\
//code,\
//机构类型,\
//主要业务活动,\
//行业代码,\
//单位注册地及区域,\
//区域代码,\
//城乡代码,\
//单位规模,\
//从业期末人数,\
//法定代表人,\
//执行会记标准类别,\
//长途区号,\
//固定电话,\
//邮政编码,\
//电子邮箱,\
//网址,\
//是否有上一级法人,\
//上一级统信代码,\
//原组织代码,\
//上级单位名称,\
//是否设置总审计师,\
//总审计师职位层级,\
//总审任职方式,\
//是否设置内审机构,\
//内审机构名称,\
//领导机构,\
//是否独立设置内审机构,\
//财务部门,\
//法务部门,\
//内部控制部门,\
//纪检部门,\
//其他部门,\
//内审层级,\
//编制数量,\
//实有人数量,\
//专职人员数量,\
//拥有CIA人数,\
//硕士学历以上人数,\
//本科人数,\
//专科及以下人数,\
//高级职称人数,\
//中级职称人数,\
//初级职称人数,\
//无职称人数,\
//五十岁以上人数,\
//三十至五十岁岁人数,\
//三十岁以下人数,\
//审计数量,\
//会计数量,\
//经济数量,\
//法律数量,\
//管理数量,\
//信息技术数量,\
//工程数量,\
//其他数量,\
//统计负责人,\
//填表人,\
//联系电话,\
//填报日期) 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,%47,%48,%49,%50,\
//%51,%52,%53,%54,%55,%56,'%57','%58','%59','%60'\
//)").arg(name).arg(creditCode).arg(comType).arg(business).arg(businessCode).arg(addr).arg(areaCode).arg(townCode).arg(scale).arg(people).
//                arg(representative).arg(standardType).arg(trunkCode).arg(fixedTel).arg(postCode).arg(email).arg(webSite).arg(hasUpLegal).arg(upCreditCode).arg(oldCreditCode).
//                arg(upName).arg(hasChiefDesigner).arg(ChiefDesignerLevel).arg(employmentMode).arg(hasSetIntervalAudit).arg(internalName).arg(leadingOrganization).arg(hasSetSeparateIA).arg(financeDepartment).arg(legalDepartment).
//                arg(internalConDepart).arg(disceplineInDepart).arg(otherDepart).arg(intavalAuditLeval).arg(organazationNum).arg(realNum).arg(professionalNum).arg(CIANum).arg(masterNum).arg(undergraduatesNum).
//                arg(juniorNum).arg(seniorNum).arg(intermediateNum).arg(primaryNum).arg(noTitleNum).arg(upFiftyOldNum).arg(upThirtyOldNum).arg(downThirtyOldNum).arg(auditNum).arg(accountingNum).
//                arg(economyNum).arg(lawNum).arg(managerNum).arg(itNum).arg(engineeringNum).arg(otherNum).arg(statisticalConOfficer).arg(personFilling).arg(officerTel).arg(fillingDateTime);
        qDebug()<<"sql insert:"<<sql;
        if(query.exec(sql)){
            qDebug()<<"insert ok";
        }else{
            qDebug()<<"insert fail:"<<query.lastError().text();
        }
//        qDebug()<<"sql insert:"<<sql;
//        if(query.exec(sql)){
//            qDebug()<<"insert ok";
//        }else{
//            qDebug()<<"insert fail:"<<query.lastError().text();
//        }
    }else{
        // 更新
        qDebug()<<"存在:"<<name;
        sql = QString("update all_company_info set name='%1',code='%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,拥有CIA人数=%38,硕士学历以上人数=%39,本科人数=%40\
,专科及以下人数=%41,高级职称人数=%42,中级职称人数=%43,初级职称人数=%44,无职称人数=%45,五十岁以上人数=%46,三十至五十岁岁人数=%47,三十岁以下人数=%48,审计数量=%49,会计数量=%50\
,经济数量=%51,法律数量=%52,管理数量=%53,信息技术数量=%54,工程数量=%55,其他数量=%56,统计负责人='%57',填表人='%58',联系电话='%59',填报日期='%60'").
                arg(name).arg(creditCode).arg(comType).arg(business).arg(businessCode).arg(addr).arg(areaCode).arg(townCode).arg(scale).arg(people).
                arg(representative).arg(standardType).arg(trunkCode).arg(fixedTel).arg(postCode).arg(email).arg(webSite).arg(hasUpLegal).arg(upCreditCode).arg(oldCreditCode).
                arg(upName).arg(hasChiefDesigner).arg(ChiefDesignerLevel).arg(employmentMode).arg(hasSetIntervalAudit).arg(internalName).arg(leadingOrganization).arg(hasSetSeparateIA).arg(financeDepartment).arg(legalDepartment).
                arg(internalConDepart).arg(disceplineInDepart).arg(otherDepart).arg(intavalAuditLeval).arg(organazationNum).arg(realNum).arg(professionalNum).arg(CIANum).arg(masterNum).arg(undergraduatesNum).
                arg(juniorNum).arg(seniorNum).arg(intermediateNum).arg(primaryNum).arg(noTitleNum).arg(upFiftyOldNum).arg(upThirtyOldNum).arg(downThirtyOldNum).arg(auditNum).arg(accountingNum).
                arg(economyNum).arg(lawNum).arg(managerNum).arg(itNum).arg(engineeringNum).arg(otherNum).arg(statisticalConOfficer).arg(personFilling).arg(officerTel).arg(fillingDateTime);
//    }else{
//        // 更新
//        qDebug()<<"存在:"<<name;
//        sql = QString("update all_company_info set name='%1',code='%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,拥有CIA人数=%38,硕士学历以上人数=%39,本科人数=%40\
//,专科及以下人数=%41,高级职称人数=%42,中级职称人数=%43,初级职称人数=%44,无职称人数=%45,五十岁以上人数=%46,三十至五十岁岁人数=%47,三十岁以下人数=%48,审计数量=%49,会计数量=%50\
//,经济数量=%51,法律数量=%52,管理数量=%53,信息技术数量=%54,工程数量=%55,其他数量=%56,统计负责人='%57',填表人='%58',联系电话='%59',填报日期='%60'").
//                arg(name).arg(creditCode).arg(comType).arg(business).arg(businessCode).arg(addr).arg(areaCode).arg(townCode).arg(scale).arg(people).
//                arg(representative).arg(standardType).arg(trunkCode).arg(fixedTel).arg(postCode).arg(email).arg(webSite).arg(hasUpLegal).arg(upCreditCode).arg(oldCreditCode).
//                arg(upName).arg(hasChiefDesigner).arg(ChiefDesignerLevel).arg(employmentMode).arg(hasSetIntervalAudit).arg(internalName).arg(leadingOrganization).arg(hasSetSeparateIA).arg(financeDepartment).arg(legalDepartment).
//                arg(internalConDepart).arg(disceplineInDepart).arg(otherDepart).arg(intavalAuditLeval).arg(organazationNum).arg(realNum).arg(professionalNum).arg(CIANum).arg(masterNum).arg(undergraduatesNum).
//                arg(juniorNum).arg(seniorNum).arg(intermediateNum).arg(primaryNum).arg(noTitleNum).arg(upFiftyOldNum).arg(upThirtyOldNum).arg(downThirtyOldNum).arg(auditNum).arg(accountingNum).
//                arg(economyNum).arg(lawNum).arg(managerNum).arg(itNum).arg(engineeringNum).arg(otherNum).arg(statisticalConOfficer).arg(personFilling).arg(officerTel).arg(fillingDateTime);
        qDebug()<<"update sql:"<<sql;
        if(query.exec(sql)){
            qDebug()<<"update ok";
        }else{
            qDebug()<<"update fail:"<<query.lastError().text();
        }
    }
//        qDebug()<<"update sql:"<<sql;
//        if(query.exec(sql)){
//            qDebug()<<"update ok";
//        }else{
//            qDebug()<<"update fail:"<<query.lastError().text();
//        }
//    }
    // 独立出来一个函数,传一个结构体就ok
}
void ConverInfo2::readExcelFromPath(QString path)
@@ -1685,6 +1696,236 @@
    return QMainWindow::eventFilter(watched,event);
}
void ConverInfo2::saveToSQL(ComInfo &info)
{
    // 更新到数据库
    // 先判断是不是已经存在公司名了,若已存在,则更新,不存在则插入
    QString sql = QString("select id,name from all_company_info where name='%1'").arg(QString::fromLocal8Bit(info.name));
    qDebug()<<"sql:"<<sql;
    QSqlQuery query;
    int rowCnt = 0;
    if(query.exec(sql)){
        qDebug()<<"size:"<<query.size();
        while (query.next()) {
            rowCnt++;
        }
        qDebug()<<"rowCnt:"<<rowCnt;
    }
    if(rowCnt == 0){
        // 不存在,则插入一条新数据
        qDebug()<<"不存在:"<<QString::fromLocal8Bit(info.name);
        sql = QString("insert into all_company_info (name,\
code,\
机构类型,\
主要业务活动,\
行业代码,\
单位注册地及区域,\
区域代码,\
城乡代码,\
单位规模,\
从业期末人数,\
法定代表人,\
执行会记标准类别,\
长途区号,\
固定电话,\
邮政编码,\
电子邮箱,\
网址,\
是否有上一级法人,\
上一级统信代码,\
原组织代码,\
上级单位名称,\
是否设置总审计师,\
总审计师职位层级,\
总审任职方式,\
是否设置内审机构,\
内审机构名称,\
领导机构,\
是否独立设置内审机构,\
财务部门,\
法务部门,\
内部控制部门,\
纪检部门,\
其他部门,\
内审层级,\
编制数量,\
实有人数量,\
专职人员数量,\
拥有CIA人数,\
硕士学历以上人数,\
本科人数,\
专科及以下人数,\
高级职称人数,\
中级职称人数,\
初级职称人数,\
无职称人数,\
五十岁以上人数,\
三十至五十岁岁人数,\
三十岁以下人数,\
审计数量,\
会计数量,\
经济数量,\
法律数量,\
管理数量,\
信息技术数量,\
工程数量,\
其他数量,\
统计负责人,\
填表人,\
联系电话,\
填报日期) 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,%47,%48,%49,%50,\
%51,%52,%53,%54,%55,%56,'%57','%58','%59','%60'\
)").arg(QString::fromLocal8Bit(info.name)).arg(QString::fromLocal8Bit(info.creditCode)).arg(QString::fromLocal8Bit(info.comType)).arg(QString::fromLocal8Bit(info.business)).arg(QString::fromLocal8Bit(info.businessCode)).arg(QString::fromLocal8Bit(info.addr)).arg(QString::fromLocal8Bit(info.areaCode)).arg(QString::fromLocal8Bit(info.townCode)).arg(QString::fromLocal8Bit(info.scale)).arg(info.people).
                arg(QString::fromLocal8Bit(info.representative)).arg(QString::fromLocal8Bit(info.standardType)).arg(QString::fromLocal8Bit(info.trunkCode)).arg(QString::fromLocal8Bit(info.fixedTel)).arg(info.postCode).arg(QString::fromLocal8Bit(info.email)).arg(QString::fromLocal8Bit(info.webSite)).arg(QString::fromLocal8Bit(info.hasUpLegal)).arg(QString::fromLocal8Bit(info.upCreditCode)).arg(QString::fromLocal8Bit(info.oldCreditCode)).
                arg(QString::fromLocal8Bit(info.upName)).arg(QString::fromLocal8Bit(info.hasChiefDesigner)).arg(QString::fromLocal8Bit(info.ChiefDesignerLevel)).arg(QString::fromLocal8Bit(info.employmentMode)).arg(QString::fromLocal8Bit(info.hasSetIntervalAudit)).arg(QString::fromLocal8Bit(info.internalName)).arg(QString::fromLocal8Bit(info.leadingOrganization)).arg(QString::fromLocal8Bit(info.hasSetSeparateIA)).arg(info.financeDepartment).arg(info.legalDepartment).
                arg(info.internalConDepart).arg(info.disceplineInDepart).arg(info.otherDepart).arg(QString::fromLocal8Bit(info.intavalAuditLeval)).arg(info.organazationNum).arg(info.realNum).arg(info.professionalNum).arg(info.CIANum).arg(info.masterNum).arg(info.undergraduatesNum).
                arg(info.juniorNum).arg(info.seniorNum).arg(info.intermediateNum).arg(info.primaryNum).arg(info.noTitleNum).arg(info.upFiftyOldNum).arg(info.upThirtyOldNum).arg(info.downThirtyOldNum).arg(info.auditNum).arg(info.accountingNum).
                arg(info.economyNum).arg(info.lawNum).arg(info.managerNum).arg(info.itNum).arg(info.engineeringNum).arg(info.otherNum).arg(QString::fromLocal8Bit(info.statisticalConOfficer)).arg(QString::fromLocal8Bit(info.personFilling)).arg(QString::fromLocal8Bit(info.officerTel)).arg(QString::fromLocal8Bit(info.fillingDateTime));
        qDebug()<<"sql insert:"<<sql;
        if(query.exec(sql)){
            qDebug()<<"insert ok";
        }else{
            qDebug()<<"insert fail:"<<query.lastError().text();
        }
    }else{
        // 更新
        qDebug()<<"存在:"<<QString::fromLocal8Bit(info.name);
        sql = QString("update all_company_info set name='%1',code='%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,拥有CIA人数=%38,硕士学历以上人数=%39,本科人数=%40\
,专科及以下人数=%41,高级职称人数=%42,中级职称人数=%43,初级职称人数=%44,无职称人数=%45,五十岁以上人数=%46,三十至五十岁岁人数=%47,三十岁以下人数=%48,审计数量=%49,会计数量=%50\
,经济数量=%51,法律数量=%52,管理数量=%53,信息技术数量=%54,工程数量=%55,其他数量=%56,统计负责人='%57',填表人='%58',联系电话='%59',填报日期='%60' where name='%1'").arg(QString::fromLocal8Bit(info.name)).arg(QString::fromLocal8Bit(info.creditCode)).arg(QString::fromLocal8Bit(info.comType)).arg(QString::fromLocal8Bit(info.business)).arg(QString::fromLocal8Bit(info.businessCode)).arg(QString::fromLocal8Bit(info.addr)).arg(QString::fromLocal8Bit(info.areaCode)).arg(QString::fromLocal8Bit(info.townCode)).arg(QString::fromLocal8Bit(info.scale)).arg(info.people).
                arg(QString::fromLocal8Bit(info.representative)).arg(QString::fromLocal8Bit(info.standardType)).arg(QString::fromLocal8Bit(info.trunkCode)).arg(QString::fromLocal8Bit(info.fixedTel)).arg(info.postCode).arg(QString::fromLocal8Bit(info.email)).arg(QString::fromLocal8Bit(info.webSite)).arg(QString::fromLocal8Bit(info.hasUpLegal)).arg(QString::fromLocal8Bit(info.upCreditCode)).arg(QString::fromLocal8Bit(info.oldCreditCode)).
                arg(QString::fromLocal8Bit(info.upName)).arg(QString::fromLocal8Bit(info.hasChiefDesigner)).arg(QString::fromLocal8Bit(info.ChiefDesignerLevel)).arg(QString::fromLocal8Bit(info.employmentMode)).arg(QString::fromLocal8Bit(info.hasSetIntervalAudit)).arg(QString::fromLocal8Bit(info.internalName)).arg(QString::fromLocal8Bit(info.leadingOrganization)).arg(QString::fromLocal8Bit(info.hasSetSeparateIA)).arg(info.financeDepartment).arg(info.legalDepartment).
                arg(info.internalConDepart).arg(info.disceplineInDepart).arg(info.otherDepart).arg(QString::fromLocal8Bit(info.intavalAuditLeval)).arg(info.organazationNum).arg(info.realNum).arg(info.professionalNum).arg(info.CIANum).arg(info.masterNum).arg(info.undergraduatesNum).
                arg(info.juniorNum).arg(info.seniorNum).arg(info.intermediateNum).arg(info.primaryNum).arg(info.noTitleNum).arg(info.upFiftyOldNum).arg(info.upThirtyOldNum).arg(info.downThirtyOldNum).arg(info.auditNum).arg(info.accountingNum).
                arg(info.economyNum).arg(info.lawNum).arg(info.managerNum).arg(info.itNum).arg(info.engineeringNum).arg(info.otherNum).arg(QString::fromLocal8Bit(info.statisticalConOfficer)).arg(QString::fromLocal8Bit(info.personFilling)).arg(QString::fromLocal8Bit(info.officerTel)).arg(QString::fromLocal8Bit(info.fillingDateTime));
                /*.
                arg(QString::fromLocal8Bit(info.name)).arg(QString::fromLocal8Bit(info.creditCode)).arg(info.comType).arg(info.business).arg(info.businessCode).arg(info.addr).arg(info.areaCode).arg(info.townCode).arg(info.scale).arg(info.people).
                arg(info.representative).arg(info.standardType).arg(info.trunkCode).arg(info.fixedTel).arg(info.postCode).arg(info.email).arg(info.webSite).arg(info.hasUpLegal).arg(info.upCreditCode).arg(info.oldCreditCode).
                arg(info.upName).arg(info.hasChiefDesigner).arg(info.ChiefDesignerLevel).arg(info.employmentMode).arg(info.hasSetIntervalAudit).arg(info.internalName).arg(info.leadingOrganization).arg(info.hasSetSeparateIA).arg(info.financeDepartment).arg(info.legalDepartment).
                arg(info.internalConDepart).arg(info.disceplineInDepart).arg(info.otherDepart).arg(info.intavalAuditLeval).arg(info.organazationNum).arg(info.realNum).arg(info.professionalNum).arg(info.CIANum).arg(info.masterNum).arg(info.undergraduatesNum).
                arg(info.juniorNum).arg(info.seniorNum).arg(info.intermediateNum).arg(info.primaryNum).arg(info.noTitleNum).arg(info.upFiftyOldNum).arg(info.upThirtyOldNum).arg(info.downThirtyOldNum).arg(info.auditNum).arg(info.accountingNum).
                arg(info.economyNum).arg(info.lawNum).arg(info.managerNum).arg(info.itNum).arg(info.engineeringNum).arg(info.otherNum).arg(info.statisticalConOfficer).arg(info.personFilling).arg(info.officerTel).arg(info.fillingDateTime);*/
        qDebug()<<"update sql:"<<sql;
        if(query.exec(sql)){
            qDebug()<<"update ok";
        }else{
            qDebug()<<"update fail:"<<query.lastError().text();
        }
    }
}
void ConverInfo2::readAllSQLData()
{
    QString sql = QString("select * from all_company_info");
    qDebug()<<"sql:"<<sql;
    QSqlQuery query;
    int rowCnt = 0;
    if(query.exec(sql)){
        qDebug()<<"size:"<<query.size();
        while (query.next()) {
            rowCnt++;
            ComInfo info; // 单位信息结构体
            // 基本情况
            strcpy(info.name,query.value(1).toString().toLocal8Bit().data());
            strcpy(info.creditCode,query.value(2).toString().toLocal8Bit().data());
            strcpy(info.comType,query.value(3).toString().toLocal8Bit().data());
            strcpy(info.business,query.value(4).toString().toLocal8Bit().data());
            strcpy(info.businessCode,query.value(5).toString().toLocal8Bit().data());
            strcpy(info.addr,query.value(6).toString().toLocal8Bit().data());
            strcpy(info.areaCode,query.value(7).toString().toLocal8Bit().data());
            strcpy(info.townCode,query.value(8).toString().toLocal8Bit().data());
            strcpy(info.scale,query.value(9).toString().toLocal8Bit().data());
            info.people = query.value(10).toInt();
            strcpy(info.representative,query.value(11).toString().toLocal8Bit().data());
            strcpy(info.standardType,query.value(12).toString().toLocal8Bit().data());
            strcpy(info.trunkCode,query.value(13).toString().toLocal8Bit().data());
            strcpy(info.fixedTel,query.value(14).toString().toLocal8Bit().data());
            strcpy(info.postCode,query.value(15).toString().toLocal8Bit().data());
            strcpy(info.email,query.value(16).toString().toLocal8Bit().data());
            strcpy(info.webSite,query.value(17).toString().toLocal8Bit().data());
            // 单位组织结构情况
            strcpy(info.hasUpLegal,query.value(18).toString().toLocal8Bit().data());
            strcpy(info.upCreditCode,query.value(19).toString().toLocal8Bit().data());
            strcpy(info.oldCreditCode,query.value(20).toString().toLocal8Bit().data());
            strcpy(info.upName,query.value(21).toString().toLocal8Bit().data());
            // 总审计师与内部审计机构基本情况
            strcpy(info.hasChiefDesigner,query.value(22).toString().toLocal8Bit().data());
            strcpy(info.ChiefDesignerLevel,query.value(23).toString().toLocal8Bit().data());
            strcpy(info.employmentMode,query.value(24).toString().toLocal8Bit().data());
            strcpy(info.hasSetIntervalAudit,query.value(25).toString().toLocal8Bit().data());
            strcpy(info.internalName,query.value(26).toString().toLocal8Bit().data());
            strcpy(info.leadingOrganization,query.value(27).toString().toLocal8Bit().data());
            strcpy(info.hasSetSeparateIA,query.value(28).toString().toLocal8Bit().data());
            info.financeDepartment = query.value(29).toBool();
            info.legalDepartment = query.value(30).toBool();
            info.internalConDepart = query.value(31).toBool();
            info.disceplineInDepart = query.value(32).toBool();
            info.otherDepart = query.value(33).toBool();
            strcpy(info.intavalAuditLeval,query.value(34).toString().toLocal8Bit().data());
            // 内部审计人员配备基本情况
            info.organazationNum = query.value(35).toInt();
            info.realNum = query.value(36).toInt();
            info.professionalNum = query.value(37).toInt();
            info.CIANum = query.value(38).toInt();
            info.masterNum = query.value(39).toInt();
            info.undergraduatesNum = query.value(40).toInt();
            info.juniorNum = query.value(41).toInt();
            info.seniorNum = query.value(42).toInt();
            info.intermediateNum = query.value(43).toInt();
            info.primaryNum = query.value(44).toInt();
            info.noTitleNum = query.value(45).toInt();
            info.upFiftyOldNum = query.value(46).toInt();
            info.upThirtyOldNum = query.value(47).toInt();
            info.downThirtyOldNum = query.value(48).toInt();
            info.auditNum = query.value(49).toInt();
            info.accountingNum = query.value(50).toInt();
            info.economyNum = query.value(51).toInt();
            info.lawNum = query.value(52).toInt();
            info.managerNum = query.value(53).toInt();
            info.itNum = query.value(54).toInt();
            info.engineeringNum = query.value(55).toInt();
            info.otherNum = query.value(56).toInt();
            // 后面的4个信息
            strcpy(info.statisticalConOfficer,query.value(57).toString().toLocal8Bit().data());
            strcpy(info.personFilling,query.value(58).toString().toLocal8Bit().data());
            strcpy(info.officerTel,query.value(59).toString().toLocal8Bit().data());
            strcpy(info.fillingDateTime,query.value(60).toString().toLocal8Bit().data());
            // 存信息到map
            QString name = query.value(1).toString();
            m_nameAndComInfos[query.value(1).toString()] = info;
            // 存名字到单位树map
            QString upName = query.value(21).toString();
            if(!upName.isEmpty()){
                m_treeNodes[upName].push_back(name);
            }else{
                m_treeNodes[name].push_back(name);
            }
            qDebug()<<"name"<<name<<"upName"<<upName;
        }
        qDebug()<<"rowCnt:"<<rowCnt;
    }
}
void ConverInfo2::addTreeWidgetNode(QVariant upName,QVariant name){
    // 添加左边树形图相关
    // 菜单相关  当上级公司为空上级时,自己当自己的上级,并且罗列进去当 本级
internal_system_v1/converinfo2.h
@@ -34,6 +34,9 @@
    bool eventFilter(QObject *watched, QEvent *event);
    void saveToSQL(ComInfo &info);
    void readAllSQLData(); // 将数据库表中的数据读出来放到2个map中,一个是数据map,一个是单位树map
signals:
    void loadFinished(); // 加载完成的信号
    void loadProgress(int); // 加载进度
internal_system_v1/exporttofile.cpp
@@ -23,6 +23,10 @@
    QDir dir(demoPath);
    if(!dir.exists()){
        demoPath = QDir::currentPath()+"/release/Data/附件2_内审统01表_单位及内部审计机构基本情况表-1.301版_demo.xls";
        QDir dir_realse(demoPath);
        if(!dir_realse.exists()){
            demoPath = QDir::currentPath()+"/Data/附件2_内审统01表_单位及内部审计机构基本情况表-1.301版_demo.xls";
        }
    }
    QString dt = QDateTime::currentDateTime().toString("yyyyMMdd-HHmmss");
    QString savePath = QFileDialog::getSaveFileName(nullptr,"保存文件",QDir::currentPath()+QString("/内审统01表_%1_%2.xls").arg(QString::fromLocal8Bit(info.name)).arg(dt),"Excel File(*.xls;*.xlsx)");
@@ -232,7 +236,13 @@
    QDir dir(demoPath);
    if(!dir.exists()){
        demoPath = QDir::currentPath()+"/release/Data/三合一.xlsx";
        QDir dir_realese(demoPath);
        if(!dir_realese.exists()){
            demoPath = QDir::currentPath()+"/Data/三合一.xlsx";
        }
    }
    //QMessageBox::information(nullptr,"三合一路径",demoPath);
    QString dt = QDateTime::currentDateTime().toString("yyyyMMdd-HHmmss");
    QString savePath = QFileDialog::getSaveFileName(nullptr,"保存文件",QDir::currentPath()+QString("/三合一_%1_%2.xls").arg(name).arg(dt),"Excel File(*.xls;*.xlsx)");
    qDebug()<<"savepath:"<<savePath << endl << "demoPath:"<<demoPath;
@@ -358,6 +368,10 @@
    QDir dir(demoPath);
    if(!dir.exists()){
        demoPath = QDir::currentPath()+"/release/Data/附件4_内审统03表_内部审计统计综合表.xls";
        QDir dir_realse(demoPath);
        if(!dir_realse.exists()){
            demoPath = QDir::currentPath()+"/Data/附件4_内审统03表_内部审计统计综合表.xls";
        }
    }
    QString dt = QDateTime::currentDateTime().toString("yyyyMMdd-HHmmss");
    QString savePath = QFileDialog::getSaveFileName(nullptr,"保存文件",QDir::currentPath()+QString("/综合表_%1_%2.xls").arg(name).arg(dt),"Excel File(*.xls;*.xlsx)");
internal_system_v1/searchinfo.cpp
@@ -190,8 +190,8 @@
            _030257     TEXT,\
            _030258     TEXT,\
            _030260     TEXT,\
            _030300     TEXT,\
            _030301     TEXT,\
_030300     TEXT,\
_030301     TEXT,\
            _030302     TEXT,\
            _030303     TEXT,\
            _030304     TEXT,\
internal_system_v1/threemergeproblemlist.cpp
@@ -122,17 +122,17 @@
        // 存在,则更新内容即可
        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'"
                      ",审计项目='%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'"
                      ",整改成果_数量=%43, where id=%44").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())
                      ",整改成果_数量=%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()).arg(ui->tableWidget->item(row,13+2)->text()).arg(ui->tableWidget->item(row,14+2)->text()).arg(ui->tableWidget->item(row,15+2)->text()).arg(ui->tableWidget->item(row,16+2)->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()).arg(ui->tableWidget->item(row,26+2)->text()).arg(ui->tableWidget->item(row,27+2)->text()).arg(ui->tableWidget->item(row,28+2)->text()).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,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()).arg(ui->tableWidget->item(row,37+5+2)->text()).arg(ui->tableWidget->item(row,38+5+2)->text()).arg(ui->tableWidget->item(row,0)->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){
@@ -153,14 +153,14 @@
                      ",审计期间已整改,整改金额,整改情况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'"
                      ",整改成果_数量,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()).arg(ui->tableWidget->item(row,13+2)->text()).arg(ui->tableWidget->item(row,14+2)->text()).arg(ui->tableWidget->item(row,15+2)->text()).arg(ui->tableWidget->item(row,16+2)->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()).arg(ui->tableWidget->item(row,26+2)->text()).arg(ui->tableWidget->item(row,27+2)->text()).arg(ui->tableWidget->item(row,28+2)->text()).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,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()).arg(ui->tableWidget->item(row,37+5+2)->text()).arg(ui->tableWidget->item(row,38+5+2)->text()).arg(QDateTime::currentDateTime().toString("yyyy/MM/dd HH:mm:ss"));
                .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){
@@ -346,6 +346,8 @@
    typeLabels<<"其中:党纪处分"<<"政务处分"<<"内部纪律处分"<<"无处分";
    m_cbb_type = new ComboBoxDelegate(typeLabels,this);
    ui->tableWidget->setItemDelegateForColumn(26,m_cbb_type);
        // 检查结果
    QStringList checkResLabels;
@@ -993,8 +995,8 @@
        }
    }
    QMessageBox::information(this,"保存提示",QString("总行数为%1,成功%2行,失败%3行。").arg(ui->tableWidget->rowCount())
                             .arg(hasContentRow).arg(ui->tableWidget->rowCount()-hasContentRow));
    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()
@@ -1155,6 +1157,14 @@
    // 获取表格数据,添加到信息中
    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();
        // 发现问题
@@ -1231,3 +1241,87 @@
    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失败 审计发现问题整改(金额类)";
        }
    }
}
internal_system_v1/threemergeproblemlist.h
@@ -89,6 +89,8 @@
    void on_pushButton_save_export_clicked();
    void on_tableWidget_cellChanged(int row, int column);
private:
    Ui::ThreeMergeProblemList *ui;
    QMenu *m_menu; // 问题清单菜单