From df16aa097e2fcadb00700ebc95d57389cddf26ee Mon Sep 17 00:00:00 2001
From: wumu <mayibase@mayi.com>
Date: 星期五, 01 三月 2024 03:07:31 +0800
Subject: [PATCH] 0301-1

---
 internal_system_v1/converinfo2.cpp |  815 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 814 insertions(+), 1 deletions(-)

diff --git a/internal_system_v1/converinfo2.cpp b/internal_system_v1/converinfo2.cpp
index 00d82a3..6765e19 100644
--- a/internal_system_v1/converinfo2.cpp
+++ b/internal_system_v1/converinfo2.cpp
@@ -1,13 +1,22 @@
 锘�#include "converinfo2.h"
 #include "ui_converinfo2.h"
 #include <QDebug>
+#include <QDirIterator>
+#include <QFileDialog>
+#include <QSqlQuery>
+#include <QSqlRecord>
+
+#pragma execution_character_set("utf-8")
 
 ConverInfo2::ConverInfo2(QWidget *parent) :
     QMainWindow(parent),
     ui(new Ui::ConverInfo2)
 {
     ui->setupUi(this);
-    initUi();
+    m_menu = nullptr;
+    //initUi();
+    readInfo(); // 鍔犺浇琛ㄦ牸
+    addMenu(); // 澧炲姞鑿滃崟
 }
 
 ConverInfo2::~ConverInfo2()
@@ -36,6 +45,17 @@
     top1->setCheckState(0,Qt::Checked);
     it4->setCheckState(0,Qt::Checked);
 
+    // 澶嶉�夋鐘舵�佸鐞�
+    connect(ui->treeWidget,QOverload<QTreeWidgetItem*,int>::of(QTreeWidget::itemClicked),this,[=](QTreeWidgetItem* it,int index){
+        qDebug()<<it<<index;
+        if(it == top1){
+            qDebug()<<"鐐瑰嚮浜嗙爜铓侀泦鍥�";
+            for(int i=0;i<top1->childCount();++i){
+                top1->child(i)->setCheckState(0,top1->checkState(0));
+            }
+        }
+    });
+
     // 璁剧疆鑿滃崟:娣诲姞鍗曚綅銆佸垹闄ゅ崟浣�
     m_menu = new QMenu(this);
     m_menu->addAction("鍒犻櫎");
@@ -47,6 +67,9 @@
     connect(m_menu->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteInfo()));
     connect(m_menu->actions().at(1),SIGNAL(triggered(bool)),this,SLOT(addInfo()));
             // 鍗曚綅鍐呭淇敼
+
+    // 鍙宠竟鍙紪杈戝唴瀹�
+    //ui->scrollArea->setWidget(ui->frame);
 }
 
 void ConverInfo2::showMenu(QPoint p)
@@ -71,3 +94,793 @@
     if(m_curItem==nullptr)return;
     qDebug()<<"鍒犻櫎鍏徃淇℃伅,鑺傜偣锛�"<<m_curItem->text(0);
 }
+
+void ConverInfo2::on_treeWidget_doubleClicked(const QModelIndex &index)
+{
+    QString name = index.model()->data(index).toString();
+    qDebug()<<"鍙屽嚮"<<index<<name;
+    ComInfo curCominfo = m_nameAndComInfos[name];
+    // 涓�銆佸崟浣嶅熀鏈儏鍐�
+    ui->lineEdit_creditCode->setText(curCominfo.creditCode);
+    ui->lineEdit_name->setText(QString::fromLocal8Bit( curCominfo.name));
+    qDebug()<<"name:"<<QString::fromLocal8Bit( curCominfo.name)<<QByteArray(curCominfo.name);
+    ui->comboBox_comType->setCurrentText(QString::fromLocal8Bit(curCominfo.comType));
+    ui->lineEdit_business->setText(QString::fromLocal8Bit(curCominfo.business));
+    ui->lineEdit_businessCode->setText(curCominfo.businessCode);
+    ui->lineEdit_addr->setText(QString::fromLocal8Bit(curCominfo.addr));
+    ui->lineEdit_areaCode->setText(curCominfo.areaCode);
+    ui->lineEdit_townCode->setText(curCominfo.townCode);
+    ui->comboBox_scale->setCurrentText(QString::fromLocal8Bit(curCominfo.scale));
+    ui->lineEdit_people->setText(QString::number(curCominfo.people));
+    ui->lineEdit_representative->setText(QString::fromLocal8Bit(curCominfo.representative));
+    ui->comboBox_standardType->setCurrentText(QString::fromLocal8Bit(curCominfo.standardType));
+    ui->lineEdit_trunkCode->setText(curCominfo.trunkCode);
+    ui->lineEdit_fixedTel->setText(curCominfo.fixedTel);
+    ui->lineEdit_postCode->setText(curCominfo.postCode);
+    ui->lineEdit_email->setText(curCominfo.email);
+    ui->lineEdit_webSite->setText(curCominfo.webSite);
+
+    // 浜屻�佸崟浣嶇粍缁囩粨鏋勬儏鍐�
+    ui->comboBox_hasUpLegal->setCurrentText(QString::fromLocal8Bit(curCominfo.hasUpLegal));
+    ui->lineEdit_upCreditCode->setText(QString::fromLocal8Bit(curCominfo.upCreditCode));
+    ui->lineEdit_oldCreditCode->setText(curCominfo.oldCreditCode);
+    ui->lineEdit_upName->setText(QString::fromLocal8Bit(curCominfo.upName));
+
+    // 涓夈�佹�诲璁″笀涓庡唴瀹℃満鏋勫熀鏈儏鍐�
+    ui->comboBox_hasChiefDesigner->setCurrentText(QString::fromLocal8Bit(curCominfo.hasChiefDesigner));
+    ui->comboBox_ChiefDesignerLevel->setCurrentText(QString::fromLocal8Bit(curCominfo.ChiefDesignerLevel));
+    ui->comboBox_employmentMode->setCurrentText(QString::fromLocal8Bit(curCominfo.employmentMode));
+    ui->comboBox_hasSetIntervalAudit->setCurrentText(QString::fromLocal8Bit(curCominfo.hasSetIntervalAudit));
+    ui->lineEdit_internalName->setText(QString::fromLocal8Bit(curCominfo.internalName));
+    ui->comboBox_leadingOrganization->setCurrentText(QString::fromLocal8Bit(curCominfo.leadingOrganization));
+    ui->comboBox_hasSetSeparateIA->setCurrentText(QString::fromLocal8Bit(curCominfo.hasSetSeparateIA));
+    ui->checkBox_financeDepartment->setChecked(curCominfo.financeDepartment);
+    ui->checkBox_legalDepartment->setChecked(curCominfo.legalDepartment);
+    ui->checkBox_internalConDepart->setChecked(curCominfo.internalConDepart);
+    ui->checkBox_disceplineInDepart->setChecked(curCominfo.disceplineInDepart);
+    ui->checkBox_otherDepart->setChecked(curCominfo.otherDepart);
+    ui->comboBox_intavalAuditLeval->setCurrentText(QString::fromLocal8Bit(curCominfo.intavalAuditLeval));
+
+    // 鍥涖�佸唴瀹′汉鍛橀厤澶囧熀鏈儏鍐�
+    ui->lineEdit_organazationNum->setText(QString::number(curCominfo.organazationNum));
+    ui->lineEdit_realNum->setText(QString::number(curCominfo.realNum));
+    ui->lineEdit_professionalNum->setText(QString::number(curCominfo.professionalNum));
+    ui->lineEdit_CIANum->setText(QString::number(curCominfo.CIANum));
+    ui->lineEdit_masterNum->setText(QString::number(curCominfo.masterNum));
+    ui->lineEdit_undergraduatesNum->setText(QString::number(curCominfo.undergraduatesNum));
+    ui->lineEdit_juniorNum->setText(QString::number(curCominfo.juniorNum));
+    ui->lineEdit_seniorNum->setText(QString::number(curCominfo.seniorNum));
+    ui->lineEdit_intermediateNum->setText(QString::number(curCominfo.intermediateNum));
+    ui->lineEdit_primaryNum->setText(QString::number(curCominfo.primaryNum));
+    ui->lineEdit_noTitleNum->setText(QString::number(curCominfo.noTitleNum));
+    ui->lineEdit_upFiftyOldNum->setText(QString::number(curCominfo.upFiftyOldNum));
+    ui->lineEdit_upThirtyOldNum->setText(QString::number(curCominfo.upThirtyOldNum));
+    ui->lineEdit_downThirtyOldNum->setText(QString::number(curCominfo.downThirtyOldNum));
+    ui->lineEdit_auditNum->setText(QString::number(curCominfo.auditNum));
+    ui->lineEdit_accountingNum->setText(QString::number(curCominfo.accountingNum));
+    ui->lineEdit_economyNum->setText(QString::number(curCominfo.economyNum));
+    ui->lineEdit_lawNum->setText(QString::number(curCominfo.lawNum));
+    ui->lineEdit_managerNum->setText(QString::number(curCominfo.managerNum));
+    ui->lineEdit_itNum->setText(QString::number(curCominfo.itNum));
+    ui->lineEdit_engineeringNum->setText(QString::number(curCominfo.engineeringNum));
+    ui->lineEdit_otherNum->setText(QString::number(curCominfo.otherNum));
+
+    // 鍏朵粬鐨�4涓俊鎭�
+    ui->lineEdit_statisticalConOfficer->setText(QString::fromLocal8Bit(curCominfo.statisticalConOfficer));
+    ui->lineEdit_personFilling->setText(QString::fromLocal8Bit(curCominfo.personFilling));
+    ui->lineEdit_officerTel->setText(QString::fromLocal8Bit(curCominfo.officerTel));
+    ui->lineEdit_fillingDateTime->setText(QString::fromLocal8Bit(curCominfo.fillingDateTime));
+}
+
+void ConverInfo2::readInfo()
+{
+//    QXlsx::Document doc("./debug/Data/test.xlsx");
+//    QString cc = doc.read("A1").toString();
+//    qDebug()<<"cc"<<cc;
+//    ui->label_creditCode->setText(cc);
+    extern QString g_dataRootPath;
+
+    QString dirPath = "./debug/Data";
+    QString dirPathRelease = "./release/Data";
+    QString dirPathData = "./Data";
+    QDir dir(dirPathData);
+    if(dir.exists()){
+        dirPath = dirPathData; // 瀛樺湪鍒欒鐩�
+    }
+
+    QDir dirRe(dirPathRelease);
+    if(dirRe.exists()){
+        dirPath = dirPathRelease;
+    }
+    g_dataRootPath = dirPath; // 灏嗘牴鐩綍淇濆瓨璧锋潵
+    QStringList list;
+    QDirIterator it(dirPath, {"*.xls","*.xlsx"}, QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot, QDirIterator::Subdirectories);
+    while(it.hasNext())
+    {
+        it.next();
+        list.append(it.fileInfo().absoluteFilePath());
+    }
+    foreach(QString str, list)
+    {
+        qDebug() << str;
+        int index = str.indexOf("鍐呭缁�01琛�");
+        qDebug()<<"index:"<<index;
+        if(index > 0){
+            QAxObject excel("Excel.Application"); // windows鍐呮牳
+            if(!excel.setControl("Excel.Application")){
+                excel.setControl("ket.Application"); // wps鍐呮牳
+            }
+            excel.setProperty("Visible",false);
+            excel.setProperty("DisplayAlerts",false);
+
+            qDebug()<<"open:"<<str;
+            qDebug()<<"excel:"<<excel.className();
+            QAxObject * wbs = excel.querySubObject("WorkBooks");
+            qDebug()<<"wbs:"<<wbs->className();
+            QAxObject * wb = wbs->querySubObject("Open(QString&)",str);
+            //QAxObject* pWorkBook = excel.querySubObject("ActiveWorkBook");
+            //QAxObject* pWorkSheets = pWorkBook->querySubObject("Sheets");//鑾峰彇宸ヤ綔琛�
+            //QAxObject * shs = wb->querySubObject("Sheets"); // WorkSheets 涔熷彲浠�
+            QAxObject * shs = wb->querySubObject("WorkSheets"); // WorkSheets 涔熷彲浠�
+//            // 鎸囧畾鍗曞厓鏍兼嬁
+//            QAxObject *cell = shs->querySubObject("Cells(int, int)",82,1);
+//            qDebug()<<"Cells:82-0:"<<shs->querySubObject("Cells(int, int)",82,0)->dynamicCall("Value()").toString();
+//            qDebug()<<"Cells:82-1:"<<cell->dynamicCall("Value()").toString();
+
+            int cnt = shs->property("Count").toInt();
+            qDebug()<<"cnt="<<cnt;
+            for(int i=0;i<cnt;++i){
+                QAxObject * sheet = shs->querySubObject("Item(int)", i+1);
+                QString sheetName = sheet->property("Name").toString();
+                qDebug()<<"sh name:"<<sheetName;
+                QAxObject *usedRange = sheet->querySubObject("UsedRange");
+                int rows = usedRange->querySubObject("Rows")->property("Count").toInt();
+                int columns = usedRange->querySubObject("Columns")->property("Count").toInt();
+                qDebug()<<"r--c:"<<rows<<columns;
+                QVariant  val = usedRange->dynamicCall("Value"); // 鎷垮埌浜岀淮琛ㄦ牸
+                QVariantList valRows = val.toList();
+                // 閬嶅巻姣忎竴椤�
+                for(int i=0;i<rows;++i){
+                    QVariantList valrow = valRows[i].toList();
+                    for(int j=0;j<columns;++j){
+                        QVariant valData = valrow[j];
+                        if(valData.isValid()){
+                            qDebug()<<"val:"<< i<< j << valData;
+                        }
+
+                    }
+                }
+
+                // 瀹炰緥鍖栫粨鏋勪綋锛岀劧鍚庢尐涓祴鍊�
+                ComInfo curComInfo;
+
+                // 缁熶竴淇$敤浠g爜
+                QVariant uniCode = valRows[9].toList().at(3);
+                if(uniCode.isValid()){
+                    ui->label_creditCode->setText(uniCode.toString());
+                    strcpy(curComInfo.creditCode,uniCode.toString().toLocal8Bit().data());
+                }
+                // 鍗曚綅鍚嶇О
+                QVariant name = valRows[9].toList().at(8);
+                if(name.isValid()){
+                    ui->label_name->setText(name.toString());
+                    QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
+                    top1->setText(0,name.toString());
+                    strcpy(curComInfo.name,name.toString().toLocal8Bit().data());
+
+                }else{
+                    ui->label_name->setText("");
+                }
+                // 鏈烘瀯绫诲瀷
+                QVariant comType = valRows[12].toList().at(3);
+                if(comType.isValid()){
+                    ui->label_comType->setText(comType.toString());
+                    strcpy(curComInfo.comType,comType.toString().toLocal8Bit().data());
+                }else{
+                    ui->label_comType->setText("");
+                }
+                // 涓昏涓氬姟娲诲姩
+                QString business;
+                QVariant first = valRows[18].toList().at(2);
+                if(first.isValid()){
+                    business.append(first.toString());
+                }
+                QVariant sec = valRows[18].toList().at(5);
+                if(sec.isValid()){
+                    business += "銆�";
+                    business.append(sec.toString());
+                }
+                QVariant third = valRows[18].toList().at(8);
+                if(third.isValid()){
+                    business += "銆�";
+                    business.append(third.toString());
+                }
+                if(business.size() > 0){
+                    ui->label_business->setText(business);
+                    ui->label_business->setToolTip(business);
+                    strcpy(curComInfo.business,business.toLocal8Bit().data());
+                }else{
+                    ui->label_business->setText("");
+                }
+                // 涓氬姟浠g爜
+                QVariant busCode = valRows[19].toList().at(4);
+                if(busCode.isValid()){
+                    ui->label_businessCode->setText(busCode.toString());
+                    strcpy(curComInfo.businessCode,busCode.toString().toLocal8Bit().data());
+                }else{
+                    ui->label_businessCode->setText("");
+                }
+                // 娉ㄥ唽鍦板潃
+                QString addr="";
+                QVariant province = valRows[21].toList().at(1); // 鐪佷唤
+                QVariant city = valRows[21].toList().at(4); // 鍩庡競
+                QVariant district = valRows[21].toList().at(7); // 绠¤緰鍖�
+                QVariant village = valRows[22].toList().at(2); // 涔¢晣
+                QVariant street = valRows[22].toList().at(4); // 琛楅亾
+                QVariant Sub = valRows[23].toList().at(2); // 琛楅亾鍔炰簨澶�
+                QVariant committee = valRows[25].toList().at(3); // 灞呭浼�
+                //qDebug()<<province<<city<<district<<village<<street<<Sub<<committee;
+                if(province.isValid()) addr += province.toString();
+                if(city.isValid()) addr += city.toString();
+                if(district.isValid()) addr += district.toString();
+                if(village.isValid()) addr += village.toString();
+                if(street.isValid()) addr += street.toString();
+                if(Sub.isValid()) addr += Sub.toString();
+                if(committee.isValid()) addr += committee.toString();
+                if(addr.size()>10){
+                    ui->label_addr->setText(addr);
+                    strcpy(curComInfo.addr,addr.toLocal8Bit().data());
+                }else{
+                    ui->label_addr->setText("");
+                }
+                // 鍖哄煙浠g爜
+                QVariant areaCode = valRows[24].toList().at(2);
+                if(areaCode.isValid()){
+                    ui->label_areaCode->setText(areaCode.toString());
+                    strcpy(curComInfo.areaCode,areaCode.toString().toLocal8Bit().data());
+                }else{
+                    ui->label_areaCode->setText("");
+                }
+                // 鍩庝埂浠g爜
+                QVariant townCode = valRows[24].toList().at(6);
+                if(townCode.isValid()) {
+                    ui->label_townCode->setText(townCode.toString());
+                    strcpy(curComInfo.townCode,townCode.toString().toLocal8Bit().data());
+                }else{
+                    ui->label_townCode->setText("");
+                }
+
+                // 鍗曚綅瑙勬ā
+                QVariant scale = valRows[25].toList().at(3);
+                if(scale.isValid()){
+                    ui->label_scale->setText(scale.toString());
+                    strcpy(curComInfo.scale,scale.toString().toLocal8Bit().data());
+                }else{
+                    ui->label_scale->setText("");
+                }
+                // 浠庝笟浜烘暟
+                QVariant people = valRows[26].toList().at(6);
+                if(people.isValid()) {
+                    ui->label_people->setText(people.toString());
+                    //strcpy(curComInfo.people,people.toString().toLocal8Bit().data());
+                    curComInfo.people = people.toInt();
+                }else{
+                    ui->label_people->setText("");
+                }
+                // 娉曚汉
+                QVariant representative = valRows[27].toList().at(4);
+                if(representative.isValid()) {
+                    ui->label_representative->setText(representative.toString());
+                    strcpy(curComInfo.representative,representative.toString().toLocal8Bit().data());
+                }else{
+                    ui->label_representative->setText("");
+                }
+                // 浼氳鏍囧噯绫诲埆 standardType
+                QVariant standardType = valRows[27].toList().at(8);
+                if(standardType.isValid()){
+                    ui->label_standardType->setText(standardType.toString());
+                    strcpy(curComInfo.standardType,standardType.toString().toLocal8Bit());
+                }else{
+                    ui->label_standardType->setText("");
+                }
+                // 闀块�斿尯鍙�
+                QVariant trunkCode = valRows[31].toList().at(2);
+                if(trunkCode.isValid()){
+                    ui->label_trunkCode->setText(trunkCode.toString());
+                    strcpy(curComInfo.trunkCode,trunkCode.toString().toLocal8Bit().data());
+                }else{
+                    ui->label_trunkCode->setText("");
+                }
+                // 鍥哄畾鐢佃瘽
+                QVariant fixedTel = valRows[32].toList().at(2);
+                if(fixedTel.isValid()) {
+                    ui->label_fixedTel->setText(fixedTel.toString());
+                    strcpy(curComInfo.fixedTel,fixedTel.toString().toLocal8Bit().data());
+                }else{
+                    ui->label_fixedTel->setText("");
+                }
+                // 閭斂缂栫爜
+                QVariant postCode = valRows[33].toList().at(2);
+                if(postCode.isValid()){
+                    ui->label_postCode->setText(postCode.toString());
+                    strcpy(curComInfo.postCode,postCode.toString().toLocal8Bit().data());
+                }else{
+                    ui->label_postCode->setText("");
+                }
+                // 鐢靛瓙閭
+                QVariant email = valRows[30].toList().at(5);
+                if(email.isValid()) {
+                    ui->label_email->setText(email.toString());
+                    strcpy(curComInfo.email,email.toString().toLocal8Bit().data());
+                }else{
+                    ui->label_email->setText("");
+                }
+                // 缃戝潃
+                QVariant webSite = valRows[32].toList().at(5);
+                if(webSite.isValid()) {
+                    ui->label_webSite->setText(webSite.toString());
+                    strcpy(curComInfo.webSite,webSite.toString().toLocal8Bit().data());
+                }else{
+                    ui->label_webSite->setText("");
+                }
+
+                // 浜屻�佸崟浣嶇粍缁囩粨鏋勬儏鍐�
+                // 鏄惁鏈変笂涓�绾ф硶浜�
+                QVariant hasUpLegal = valRows[35].toList().at(4);
+                if(hasUpLegal.isValid()){
+                    strcpy(curComInfo.hasUpLegal,hasUpLegal.toString().toLocal8Bit().data());
+                    qDebug()<<"has up legal"<<hasUpLegal;
+                }
+                // 涓婄骇娉曚汉鍗曚綅缁熶竴绀句細淇$敤浠g爜
+                QVariant upCreditCode = valRows[36].toList().at(7);
+                if(upCreditCode.isValid()){
+                    strcpy(curComInfo.upCreditCode,upCreditCode.toString().toLocal8Bit().data());
+                    qDebug()<<"upCreditCode"<<upCreditCode;
+                }else {
+                    qDebug()<<"upCreditCode fail"<<name;
+                }
+                // 鍘熺粍缁囨満鏋勪唬鐮�
+                QVariant oldCreditCode = valRows[37].toList().at(7);
+                if(oldCreditCode.isValid()){
+                    strcpy(curComInfo.oldCreditCode,oldCreditCode.toString().toLocal8Bit().data());
+                    qDebug()<<"oldCreditCode"<<oldCreditCode;
+                }
+                // 涓婁竴绾у崟浣嶈缁嗗悕绉�
+                QVariant upName = valRows[38].toList().at(7);
+                if(upName.isValid()){
+                    strcpy(curComInfo.upName,upName.toString().toLocal8Bit().data());
+                    qDebug()<<"upName"<<upName;
+                }
+
+                // 鎬诲璁″笀涓庡唴瀹℃満鏋勫熀鏈儏鍐�
+
+                // 鏄惁璁剧疆鎬诲璁″笀
+                QVariant hasChiefDesigner = valRows[40].toList().at(4);
+                if(hasChiefDesigner.isValid()){
+                    strcpy(curComInfo.hasChiefDesigner,hasChiefDesigner.toString().toLocal8Bit().data());
+                    qDebug()<<"hasChiefDesigner"<<hasChiefDesigner;
+                }
+                // 鎬诲璁″笀鑱屼綅灞傜骇
+                QVariant ChiefDesignerLevel = valRows[41].toList().at(4);
+                if(ChiefDesignerLevel.isValid()){
+                    strcpy(curComInfo.ChiefDesignerLevel,ChiefDesignerLevel.toString().toLocal8Bit().data());
+                    qDebug()<<"ChiefDesignerLevel"<<ChiefDesignerLevel;
+                }
+                // 鎬诲璁″笀浠昏亴鏂瑰紡
+                QVariant employmentMode = valRows[44].toList().at(4);
+                if(employmentMode.isValid()){
+                    strcpy(curComInfo.employmentMode,employmentMode.toString().toLocal8Bit().data());
+                    qDebug()<<"employmentMode"<<employmentMode;
+                }
+
+                // 鏄惁璁剧疆鍐呭鏈烘瀯
+                QVariant hasSetIntervalAudit = valRows[47].toList().at(4);
+                if(hasSetIntervalAudit.isValid()){
+                    strcpy(curComInfo.hasSetIntervalAudit,hasSetIntervalAudit.toString().toLocal8Bit().data());
+                    qDebug()<<"hasSetIntervalAudit"<<hasSetIntervalAudit;
+                }
+                // 鍐呭鏈烘瀯鍚嶇О
+                QVariant internalName = valRows[48].toList().at(4);
+                if(internalName.isValid()){
+                    strcpy(curComInfo.internalName,internalName.toString().toLocal8Bit().data());
+                    qDebug()<<"internalName"<<internalName;
+                }
+                // 鍐呭宸ヤ綔鐨勯瀵兼満鏋�
+                QVariant leadingOrganization = valRows[49].toList().at(4);
+                if(leadingOrganization.isValid()){
+                    strcpy(curComInfo.leadingOrganization,leadingOrganization.toString().toLocal8Bit().data());
+                    qDebug()<<"leadingOrganization"<<leadingOrganization;
+                }
+                // 鏄惁鐙珛璁剧疆鍐呭鏈烘瀯
+                QVariant hasSetSeparateIA = valRows[53].toList().at(4);
+                if(hasSetSeparateIA.isValid()){
+                    strcpy(curComInfo.hasSetSeparateIA,hasSetSeparateIA.toString().toLocal8Bit().data());
+                    qDebug()<<"hasSetSeparateIA"<<hasSetSeparateIA;
+                }
+                // 鍚堝苟璁剧疆 璐㈠姟閮ㄩ棬   澶嶉�夋
+
+                QVariant financeDepartment = valRows[55].toList().at(1);
+                if(financeDepartment.isValid()){
+                    //strcpy(curComInfo.financeDepartment,financeDepartment.toString().toLocal8Bit().data());
+                    curComInfo.financeDepartment = financeDepartment.toBool();
+                    qDebug()<<"financeDepartment"<<financeDepartment;
+                }
+                // 娉曞姟閮ㄩ棬銆佸唴閮ㄦ帶鍒堕儴闂ㄣ�佺邯妫�閮ㄩ棬銆佸叾浠栭儴闂�
+
+                // 鍐呭鏈烘瀯灞傜骇
+                QVariant intavalAuditLeval = valRows[56].toList().at(4);
+                if(intavalAuditLeval.isValid()){
+                    strcpy(curComInfo.intavalAuditLeval,intavalAuditLeval.toString().toLocal8Bit().data());
+                    qDebug()<<"intavalAuditLeval"<<intavalAuditLeval;
+                }
+
+                // 鍥涖�佸唴瀹′汉鍛橀厤澶囧熀鏈儏鍐�
+                // 缂栧埗鏁�
+                QVariant organazationNum = valRows[56].toList().at(4);
+                if(organazationNum.isValid()){
+                    curComInfo.organazationNum = organazationNum.toInt();
+                    qDebug()<<"organazationNum"<<organazationNum;
+                }
+                // 瀹炴湁浜哄憳鏁�
+                QVariant realNum = valRows[56].toList().at(4);
+                if(realNum.isValid()){
+                    curComInfo.realNum = realNum.toInt();
+                    qDebug()<<"realNum"<<realNum;
+                }
+                // 涓撹亴浜哄憳鏁�
+                QVariant professionalNum = valRows[56].toList().at(4);
+                if(professionalNum.isValid()){
+                    curComInfo.professionalNum = professionalNum.toInt();
+                    qDebug()<<"professionalNum"<<professionalNum;
+                }
+                // 鎷ユ湁CIA浜哄憳鏁�
+                QVariant CIANum = valRows[56].toList().at(4);
+                if(CIANum.isValid()){
+                    curComInfo.CIANum = CIANum.toInt();
+                    qDebug()<<"CIANum"<<CIANum;
+                }
+                // 瀛﹀巻锛氱澹強浠ヤ笂 浜哄憳鏁�
+                QVariant masterNum = valRows[56].toList().at(4);
+                if(masterNum.isValid()){
+                    curComInfo.masterNum = masterNum.toInt();
+                    qDebug()<<"masterNum"<<masterNum;
+                }
+                // 澶у鏈
+                QVariant undergraduatesNum = valRows[56].toList().at(4);
+                if(undergraduatesNum.isValid()){
+                    curComInfo.undergraduatesNum = undergraduatesNum.toInt();
+                    qDebug()<<"undergraduatesNum"<<undergraduatesNum;
+                }
+                // 涓撶鍙婁互涓�
+                QVariant juniorNum = valRows[56].toList().at(4);
+                if(juniorNum.isValid()){
+                    curComInfo.juniorNum = juniorNum.toInt();
+                    qDebug()<<"juniorNum"<<juniorNum;
+                }
+
+                // 鑱岀О 楂樼骇鑱岀О
+                QVariant seniorNum = valRows[56].toList().at(4);
+                if(seniorNum.isValid()){
+                    curComInfo.seniorNum = seniorNum.toInt();
+                    qDebug()<<"seniorNum"<<seniorNum;
+                }
+                // 涓骇鑱岀О
+                QVariant intermediateNum = valRows[56].toList().at(4);
+                if(intermediateNum.isValid()){
+                    curComInfo.intermediateNum = intermediateNum.toInt();
+                    qDebug()<<"intermediateNum"<<intermediateNum;
+                }
+                // 鍒濈骇鑱岀О
+                QVariant primaryNum = valRows[56].toList().at(4);
+                if(primaryNum.isValid()){
+                    curComInfo.primaryNum = primaryNum.toInt();
+                    qDebug()<<"primaryNum"<<primaryNum;
+                }
+                // 鏃犺亴绉�
+                QVariant noTitleNum = valRows[56].toList().at(4);
+                if(noTitleNum.isValid()){
+                    curComInfo.noTitleNum = noTitleNum.toInt();
+                    qDebug()<<"noTitleNum"<<noTitleNum;
+                }
+
+                // 骞撮緞缁撴瀯 50宀佷互涓�
+                QVariant upFiftyOldNum = valRows[56].toList().at(4);
+                if(upFiftyOldNum.isValid()){
+                    curComInfo.upFiftyOldNum = upFiftyOldNum.toInt();
+                    qDebug()<<"upFiftyOldNum"<<upFiftyOldNum;
+                }
+                // 30-50宀�
+                QVariant upThirtyOldNum = valRows[56].toList().at(4);
+                if(upThirtyOldNum.isValid()){
+                    curComInfo.upThirtyOldNum = upThirtyOldNum.toInt();
+                    qDebug()<<"upThirtyOldNum"<<upThirtyOldNum;
+                }
+                // 30宀佷互涓�
+                QVariant downThirtyOldNum = valRows[56].toList().at(4);
+                if(downThirtyOldNum.isValid()){
+                    curComInfo.downThirtyOldNum = downThirtyOldNum.toInt();
+                    qDebug()<<"downThirtyOldNum"<<downThirtyOldNum;
+                }
+
+                // 鐭ヨ瘑缁撴瀯 瀹¤
+                QVariant auditNum = valRows[56].toList().at(4);
+                if(auditNum.isValid()){
+                    curComInfo.auditNum = auditNum.toInt();
+                    qDebug()<<"auditNum"<<auditNum;
+                }
+                // 浼氳
+                QVariant accountingNum = valRows[56].toList().at(4);
+                if(accountingNum.isValid()){
+                    curComInfo.accountingNum = accountingNum.toInt();
+                    qDebug()<<"accountingNum"<<accountingNum;
+                }
+                // 缁忔祹
+                QVariant economyNum = valRows[56].toList().at(4);
+                if(economyNum.isValid()){
+                    curComInfo.economyNum = economyNum.toInt();
+                    qDebug()<<"economyNum"<<economyNum;
+                }
+                // 娉曞緥
+                QVariant lawNum = valRows[56].toList().at(4);
+                if(lawNum.isValid()){
+                    curComInfo.lawNum = lawNum.toInt();
+                    qDebug()<<"lawNum"<<lawNum;
+                }
+                // 绠$悊
+                QVariant managerNum = valRows[56].toList().at(4);
+                if(managerNum.isValid()){
+                    curComInfo.managerNum = managerNum.toInt();
+                    qDebug()<<"managerNum"<<managerNum;
+                }
+                // 淇℃伅鎶�鏈�
+                QVariant itNum = valRows[56].toList().at(4);
+                if(itNum.isValid()){
+                    curComInfo.itNum = itNum.toInt();
+                    qDebug()<<"itNum"<<itNum;
+                }
+                // 宸ョ▼
+                QVariant engineeringNum = valRows[56].toList().at(4);
+                if(engineeringNum.isValid()){
+                    curComInfo.engineeringNum = engineeringNum.toInt();
+                    qDebug()<<"engineeringNum"<<engineeringNum;
+                }
+                // 鍏朵粬
+                QVariant otherNum = valRows[56].toList().at(4);
+                if(otherNum.isValid()){
+                    curComInfo.otherNum = otherNum.toInt();
+                    qDebug()<<"otherNum"<<otherNum;
+                }
+
+                // 鍚庨潰鐨�4涓俊鎭�
+                // 缁熻璐熻矗浜�
+                QVariant statisticalConOfficer = valRows[81].toList().at(1);
+                if(statisticalConOfficer.isValid()){
+                    strcpy(curComInfo.statisticalConOfficer,statisticalConOfficer.toString().toLocal8Bit().data());
+                    qDebug()<<"statisticalConOfficer"<<statisticalConOfficer;
+                }else{
+                    qDebug()<<"statisticalConOfficer fail:"<<name.toString();
+                }
+                // 濉〃浜�
+                QVariant personFilling = valRows[81].toList().at(4);
+                if(personFilling.isValid()){
+                    strcpy(curComInfo.personFilling,personFilling.toString().toLocal8Bit().data());
+                    qDebug()<<"personFilling"<<personFilling;
+                }
+                // 鑱旂郴鐢佃瘽
+                QVariant officerTel = valRows[82].toList().at(1);
+                if(officerTel.isValid()){
+                    strcpy(curComInfo.officerTel,officerTel.toString().toLocal8Bit().data());
+                    qDebug()<<"officerTel"<<officerTel;
+                }
+                // 濉姤鏃ユ湡
+                QVariant fillingDateTime = valRows[82].toList().at(4);
+                if(fillingDateTime.isValid()){
+                    strcpy(curComInfo.fillingDateTime,fillingDateTime.toString().toLocal8Bit().data());
+                    qDebug()<<"fillingDateTime"<<fillingDateTime;
+                }
+
+                // 鏈�鍚庡瓨鍒癿ap涓�
+                m_nameAndComInfos[name.toString()]=curComInfo;
+
+            }
+            wbs->dynamicCall("Close()");
+            excel.dynamicCall("Quit(void)");
+
+            qDebug()<<"鍗曚綅淇℃伅鏁伴噺锛�"<<m_nameAndComInfos.size();
+        }
+    }
+
+
+//    QAxObject excel("./debug/Data/闄勪欢2_鍐呭缁�01琛╛鍗曚綅鍙婂唴閮ㄥ璁℃満鏋勫熀鏈儏鍐佃〃-1.301鐗�(1).xls");
+//    excel.setProperty("Visible",true);
+//    excel.setProperty("DisplayAlerts",false);
+
+}
+
+void ConverInfo2::addMenu()
+{
+    // 璁剧疆鑿滃崟:娣诲姞鍗曚綅銆佸垹闄ゅ崟浣�
+    if(m_menu==nullptr){
+        m_menu = new QMenu(this);
+        qDebug()<<"init menu ok";
+    }
+
+    m_menu->addAction("鍒犻櫎");
+    m_menu->addAction("澧炲姞");
+
+    ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
+    connect(ui->treeWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenu(QPoint)));
+
+    connect(m_menu->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteInfo()));
+    connect(m_menu->actions().at(1),SIGNAL(triggered(bool)),this,SLOT(addInfo()));
+}
+
+void ConverInfo2::on_pushButton_commit_clicked()
+{
+    // 灏嗙紪杈戞鐨勬暟鎹洿鏂板埌map涓拰鏁版嵁搴撲腑锛屽悗鏈熷彲浠ユ洿鏂板埌鏂囦欢涓�
+    // 鍗曚綅鍩烘湰鎯呭喌
+    QString creditCode = ui->lineEdit_creditCode->text();
+    QString name = ui->lineEdit_name->text();
+    QString comType = ui->comboBox_comType->currentText();
+    QString business = ui->lineEdit_business->text();
+    QString businessCode = ui->lineEdit_businessCode->text();
+    QString addr = ui->lineEdit_addr->text();
+    QString areaCode = ui->lineEdit_areaCode->text();
+    QString townCode = ui->lineEdit_townCode->text();
+    QString scale = ui->comboBox_scale->currentText();
+    QString people = ui->lineEdit_people->text();
+    QString representative = ui->lineEdit_representative->text();
+    QString standardType = ui->comboBox_standardType->currentText();
+    QString trunkCode = ui->lineEdit_trunkCode->text();
+    QString fixedTel = ui->lineEdit_fixedTel->text();
+    QString postCode = ui->lineEdit_postCode->text();
+    QString email = ui->lineEdit_email->text();
+    QString webSite = ui->lineEdit_webSite->text();
+
+    // 鍗曚綅缁勭粐缁撴瀯鎯呭喌
+    QString hasUpLegal = ui->comboBox_hasUpLegal->currentText();
+    QString upCreditCode = ui->lineEdit_upCreditCode->text();
+    QString oldCreditCode = ui->lineEdit_oldCreditCode->text();
+    QString upName = ui->lineEdit_upName->text();
+
+    // 鎬诲璁″笀涓庡唴瀹℃満鏋勫熀鏈儏鍐�
+    QString hasChiefDesigner = ui->comboBox_hasChiefDesigner->currentText();
+    QString ChiefDesignerLevel = ui->comboBox_ChiefDesignerLevel->currentText();
+    QString employmentMode = ui->comboBox_employmentMode->currentText();
+    QString hasSetIntervalAudit = ui->comboBox_hasSetIntervalAudit->currentText();
+    QString internalName = ui->lineEdit_internalName->text();
+    QString leadingOrganization = ui->comboBox_leadingOrganization->currentText();
+    QString hasSetSeparateIA = ui->comboBox_hasSetSeparateIA->currentText();
+    bool financeDepartment = ui->checkBox_financeDepartment->isChecked();
+    bool legalDepartment = ui->checkBox_legalDepartment->isChecked();
+    bool internalConDepart = ui->checkBox_internalConDepart->isChecked();
+    bool disceplineInDepart = ui->checkBox_disceplineInDepart->isChecked();
+    bool otherDepart = ui->checkBox_otherDepart->isChecked();
+    QString intavalAuditLeval = ui->comboBox_intavalAuditLeval->currentText();
+
+    // 鍥涖�佸唴瀹′汉鍛橀厤澶囧熀鏈儏鍐�
+    int organazationNum = ui->lineEdit_organazationNum->text().toInt();
+    int realNum = ui->lineEdit_realNum->text().toInt();
+    int professionalNum = ui->lineEdit_professionalNum->text().toInt();
+    int CIANum = ui->lineEdit_CIANum->text().toInt();
+    int masterNum = ui->lineEdit_masterNum->text().toInt();
+    int undergraduatesNum = ui->lineEdit_undergraduatesNum->text().toInt();
+    int juniorNum = ui->lineEdit_juniorNum->text().toInt();
+    int seniorNum = ui->lineEdit_seniorNum->text().toInt();
+    int intermediateNum = ui->lineEdit_intermediateNum->text().toInt();
+    int primaryNum = ui->lineEdit_primaryNum->text().toInt();
+    int noTitleNum = ui->lineEdit_noTitleNum->text().toInt();
+    int upFiftyOldNum = ui->lineEdit_upFiftyOldNum->text().toInt();
+    int upThirtyOldNum = ui->lineEdit_upThirtyOldNum->text().toInt();
+    int downThirtyOldNum = ui->lineEdit_downThirtyOldNum->text().toInt();
+    int auditNum = ui->lineEdit_auditNum->text().toInt();
+    int accountingNum = ui->lineEdit_accountingNum->text().toInt();
+    int economyNum = ui->lineEdit_economyNum->text().toInt();
+    int lawNum = ui->lineEdit_lawNum->text().toInt();
+    int managerNum = ui->lineEdit_managerNum->text().toInt();
+    int itNum = ui->lineEdit_itNum->text().toInt();
+    int engineeringNum = ui->lineEdit_engineeringNum->text().toInt();
+    int otherNum = ui->lineEdit_otherNum->text().toInt();
+
+    // 鍚庨潰鐨�4涓俊鎭�
+    QString statisticalConOfficer = ui->lineEdit_statisticalConOfficer->text();
+    QString personFilling = ui->lineEdit_personFilling->text();
+    QString officerTel = ui->lineEdit_officerTel->text();
+    QString fillingDateTime = ui->lineEdit_fillingDateTime->text();
+
+    qDebug()<<"缁熻璐熻矗浜�"<<statisticalConOfficer;
+
+    // 鏇存柊鍒癿ap涓�
+    auto &curComInfo = m_nameAndComInfos[name];
+    strcpy(curComInfo.creditCode,creditCode.toLocal8Bit().data());
+    strcpy(curComInfo.name,name.toLocal8Bit().data());
+    strcpy(curComInfo.comType,comType.toLocal8Bit().data());
+    strcpy(curComInfo.business,business.toLocal8Bit().data());
+    strcpy(curComInfo.businessCode,businessCode.toLocal8Bit().data());
+    strcpy(curComInfo.addr,addr.toLocal8Bit().data());
+    strcpy(curComInfo.areaCode,areaCode.toLocal8Bit().data());
+    strcpy(curComInfo.townCode,townCode.toLocal8Bit().data());
+    strcpy(curComInfo.scale,scale.toLocal8Bit().data());
+    curComInfo.people = people.toInt();
+    strcpy(curComInfo.representative,representative.toLocal8Bit().data());
+    strcpy(curComInfo.standardType,standardType.toLocal8Bit().data());
+    strcpy(curComInfo.trunkCode,trunkCode.toLocal8Bit().data());
+    strcpy(curComInfo.fixedTel,fixedTel.toLocal8Bit().data());
+    strcpy(curComInfo.postCode,postCode.toLocal8Bit().data());
+    strcpy(curComInfo.email,email.toLocal8Bit().data());
+    strcpy(curComInfo.webSite,webSite.toLocal8Bit().data());
+
+    // 浜�
+    strcpy(curComInfo.hasUpLegal,hasUpLegal.toLocal8Bit().data());
+    strcpy(curComInfo.upCreditCode,upCreditCode.toLocal8Bit().data());
+    strcpy(curComInfo.oldCreditCode,oldCreditCode.toLocal8Bit().data());
+    strcpy(curComInfo.upName,upName.toLocal8Bit().data());
+
+    // 涓�
+    strcpy(curComInfo.hasChiefDesigner,hasChiefDesigner.toLocal8Bit().data());
+    strcpy(curComInfo.ChiefDesignerLevel,ChiefDesignerLevel.toLocal8Bit().data());
+    strcpy(curComInfo.employmentMode,employmentMode.toLocal8Bit().data());
+    strcpy(curComInfo.hasSetIntervalAudit,hasSetIntervalAudit.toLocal8Bit().data());
+    strcpy(curComInfo.internalName,internalName.toLocal8Bit().data());
+    strcpy(curComInfo.leadingOrganization,leadingOrganization.toLocal8Bit().data());
+    strcpy(curComInfo.hasSetSeparateIA,hasSetSeparateIA.toLocal8Bit().data());
+    curComInfo.financeDepartment = financeDepartment;
+    curComInfo.legalDepartment = legalDepartment;
+    curComInfo.internalConDepart = internalConDepart;
+    curComInfo.disceplineInDepart = disceplineInDepart;
+    curComInfo.otherDepart = otherDepart;
+    strcpy(curComInfo.intavalAuditLeval,intavalAuditLeval.toLocal8Bit().data());
+
+    // 鍥�
+    curComInfo.organazationNum = organazationNum;
+    curComInfo.realNum = realNum;
+    curComInfo.professionalNum = professionalNum;
+    curComInfo.CIANum = CIANum;
+    curComInfo.masterNum = masterNum;
+    curComInfo.undergraduatesNum = undergraduatesNum;
+    curComInfo.juniorNum = juniorNum;
+    curComInfo.seniorNum = seniorNum;
+    curComInfo.intermediateNum = intermediateNum;
+    curComInfo.primaryNum = primaryNum;
+    curComInfo.noTitleNum = noTitleNum;
+    curComInfo.upFiftyOldNum = upFiftyOldNum;
+    curComInfo.upThirtyOldNum = upThirtyOldNum;
+    curComInfo.downThirtyOldNum = downThirtyOldNum;
+    curComInfo.auditNum = auditNum;
+    curComInfo.accountingNum = accountingNum;
+    curComInfo.economyNum = economyNum;
+    curComInfo.lawNum = lawNum;
+    curComInfo.managerNum = managerNum;
+    curComInfo.itNum = itNum;
+    curComInfo.engineeringNum = engineeringNum;
+    curComInfo.otherNum = otherNum;
+
+    // 鍚�4涓俊鎭�
+    strcpy(curComInfo.statisticalConOfficer,statisticalConOfficer.toLocal8Bit().data());
+    strcpy(curComInfo.personFilling,personFilling.toLocal8Bit().data());
+    strcpy(curComInfo.officerTel,officerTel.toLocal8Bit().data());
+    strcpy(curComInfo.fillingDateTime,fillingDateTime.toLocal8Bit().data());
+
+
+    // 鏇存柊鍒版暟鎹簱
+
+    // 鍏堝垽鏂槸涓嶆槸宸茬粡瀛樺湪鍏徃鍚嶄簡锛岃嫢宸插瓨鍦紝鍒欐洿鏂帮紝涓嶅瓨鍦ㄥ垯鎻掑叆
+    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;
+    }else{
+        // 鏇存柊
+        qDebug()<<"瀛樺湪:"<<name;
+    }
+}

--
Gitblit v1.8.0