#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);
|
m_menu = nullptr;
|
//initUi();
|
//readInfo(); // 加载表格
|
addMenu(); // 增加菜单
|
disableWheelEvent(); // 禁用下拉框的滚轮事件
|
|
// 自适应处理
|
ui->treeWidget->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
|
}
|
|
ConverInfo2::~ConverInfo2()
|
{
|
delete ui;
|
}
|
|
void ConverInfo2::initUi()
|
{
|
// 查询表中所有的公司名字,放到树形菜单中
|
QStringList comInfo;
|
comInfo<<"码蚁软件"<<"C++课程体系"<<"嵌入式课程体系";
|
QTreeWidgetItem *top = new QTreeWidgetItem(ui->treeWidget,comInfo);
|
ui->treeWidget->addTopLevelItem(top);
|
ui->treeWidget->expandAll();
|
QTreeWidgetItem *it1 = new QTreeWidgetItem(top);
|
it1->setText(0,"开发部1");
|
QTreeWidgetItem *it2 = new QTreeWidgetItem(top);
|
it2->setText(0,"开发部2");
|
QTreeWidgetItem *it3 = new QTreeWidgetItem(top);
|
it3->setText(0,"开发部3");
|
QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
|
top1->setText(0,"码蚁集团");
|
QTreeWidgetItem *it4 = new QTreeWidgetItem(top1);
|
it4->setText(0,"开发部4");
|
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("删除");
|
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()));
|
connect(m_menu->actions().at(2),SIGNAL(triggered(bool)),this,SLOT(saveInfo()));
|
// 单位内容修改
|
|
// 右边可编辑内容
|
//ui->scrollArea->setWidget(ui->frame);
|
}
|
|
void ConverInfo2::showMenu(QPoint p)
|
{
|
QTreeWidgetItem * item = ui->treeWidget->itemAt(p);
|
if(item==nullptr)return;
|
m_curItem = item;
|
qDebug()<<"当前节点:"<<m_curItem->text(0);
|
m_menu->exec(QCursor::pos());
|
|
|
}
|
|
void ConverInfo2::addInfo()
|
{
|
if(m_curItem==nullptr)return;
|
qDebug()<<"添加公司信息,在节点:"<<m_curItem->text(0);
|
on_pushButton_laodFile_clicked();
|
}
|
|
void ConverInfo2::deleteInfo()
|
{
|
if(m_curItem==nullptr)return;
|
qDebug()<<"删除公司信息,节点:"<<m_curItem->text(0);
|
auto resList = m_curItem->takeChildren();
|
|
qDebug()<<"删除数量:"<<resList.size();
|
|
// 删除数据库表里面对应的公司信息,并且再次刷新下拉框和树状图
|
|
// 数据库表有:封面信息表 all_company_info 综合信息表 comprehensive_entry_info 三合一的表 standing_book_info
|
QString name = m_curItem->text(0);
|
QStringList sp = name.split("(本级)");
|
QStringList sp2 = name.split("下级数");
|
qDebug()<<"拆开:"<<sp<<"汇总:"<<sp2;
|
if(sp.size() == 2){
|
name = sp.at(0);
|
}
|
if(sp2.size() == 2){ // 得递归删除底下的所有单位
|
name = sp2.at(0);
|
}
|
// 删除所有表中这个名字
|
deleteAllByName(name);
|
|
// 删除完了,还得去刷新下拉框
|
|
// 去刷新树形图
|
|
|
|
}
|
|
void ConverInfo2::saveInfo()
|
{
|
if(m_curItem==nullptr)return;
|
qDebug()<<"保存公司信息,节点:"<<m_curItem->text(0);
|
QString name = m_curItem->text(0);
|
if(name.contains("(本级)")){
|
name = name.split("(本级)").at(0);
|
}else if(name.contains("(汇总)")){
|
name = name.split("(汇总)").at(0);
|
name = name + "(汇总)";
|
}
|
qDebug()<<"保存公司名:"<<name;
|
ComInfo cif = m_nameAndComInfos[name];
|
ExportToFile etf(this);
|
etf.saveToExcelFromComInfo(cif);
|
|
}
|
|
void ConverInfo2::on_treeWidget_doubleClicked(const QModelIndex &index)
|
{
|
QString name = index.model()->data(index).toString();
|
qDebug()<<"双击"<<index<<name;
|
|
ComInfo curCominfo; // 不要直接给值,可能会导致多添加新的名字进来
|
if(name.contains("(本级)")){
|
QStringList sps = name.split("(本级)");
|
name = sps.at(0);
|
curCominfo = m_nameAndComInfos[name];
|
}else if(name.contains("(汇总)")){
|
name = name.split("(汇总)").at(0);
|
qDebug()<<"汇总处理:";
|
// 做一个汇总的处理,把所有下级的都累加起来
|
ComInfo allCominfo = m_nameAndComInfos[name];
|
for(QString cur:m_treeNodes[name]){
|
if(name != cur){
|
ComInfo &tmp = m_nameAndComInfos[cur];
|
allCominfo.organazationNum += tmp.organazationNum;
|
allCominfo.realNum += tmp.realNum;
|
allCominfo.professionalNum += tmp.professionalNum;
|
allCominfo.CIANum += tmp.CIANum;
|
allCominfo.masterNum += tmp.masterNum;
|
allCominfo.undergraduatesNum += tmp.undergraduatesNum;
|
allCominfo.juniorNum += tmp.juniorNum;
|
allCominfo.seniorNum += tmp.seniorNum;
|
allCominfo.intermediateNum += tmp.intermediateNum;
|
allCominfo.primaryNum += tmp.primaryNum;
|
allCominfo.noTitleNum += tmp.noTitleNum;
|
allCominfo.upFiftyOldNum += tmp.upFiftyOldNum;
|
allCominfo.upThirtyOldNum += tmp.upThirtyOldNum;
|
allCominfo.downThirtyOldNum += tmp.downThirtyOldNum;
|
allCominfo.auditNum += tmp.auditNum;
|
allCominfo.accountingNum += tmp.accountingNum;
|
allCominfo.economyNum += tmp.economyNum;
|
allCominfo.lawNum += tmp.lawNum;
|
allCominfo.managerNum += tmp.managerNum;
|
allCominfo.itNum += tmp.itNum;
|
allCominfo.engineeringNum += tmp.engineeringNum;
|
allCominfo.otherNum += tmp.otherNum;
|
}
|
|
}
|
curCominfo = allCominfo;
|
// 处理完了之后,还需要单独起一个汇总的名字
|
name = name + "(汇总)";
|
strcpy(curCominfo.name,name.toLocal8Bit().data());
|
m_nameAndComInfos[name] = curCominfo;
|
|
// 刷新组合下拉框的列表
|
emit updateComboListSignal(m_nameAndComInfos);
|
|
}else{
|
curCominfo = m_nameAndComInfos[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());
|
}
|
int allSize = list.size();
|
float cntIdx=1.0;
|
foreach(QString str, list)
|
{
|
qDebug() << str;
|
int index = str.indexOf("内审统01表");
|
qDebug()<<"index:"<<index;
|
|
|
if(index > 0){
|
QAxObject excel("ket.Application");
|
if(!excel.setControl("ket"
|
".Application")){ // windows内核
|
excel.setControl("Excel.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;
|
|
// 统一信用代码
|
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("");
|
}
|
// 业务代码
|
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("");
|
}
|
// 区域代码
|
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("");
|
}
|
// 城乡代码
|
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;
|
}
|
// 上级法人单位统一社会信用代码
|
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);
|
QVariant organazationNum = valRows[60].toList().at(4);
|
if(organazationNum.isValid()){
|
curComInfo.organazationNum = organazationNum.toInt();
|
qDebug()<<"organazationNum"<<organazationNum;
|
}
|
// 实有人员数
|
QVariant realNum = valRows[60].toList().at(6);
|
if(realNum.isValid()){
|
curComInfo.realNum = realNum.toInt();
|
qDebug()<<"realNum"<<realNum;
|
}
|
// 专职人员数
|
QVariant professionalNum = valRows[60].toList().at(8);
|
if(professionalNum.isValid()){
|
curComInfo.professionalNum = professionalNum.toInt();
|
qDebug()<<"professionalNum"<<professionalNum;
|
}
|
// 拥有CIA人员数
|
QVariant CIANum = valRows[61].toList().at(6);
|
if(CIANum.isValid()){
|
curComInfo.CIANum = CIANum.toInt();
|
qDebug()<<"CIANum"<<CIANum;
|
}
|
// 学历:硕士及以上 人员数
|
QVariant masterNum = valRows[62].toList().at(6);
|
if(masterNum.isValid()){
|
curComInfo.masterNum = masterNum.toInt();
|
qDebug()<<"masterNum"<<masterNum;
|
}
|
// 大学本科
|
QVariant undergraduatesNum = valRows[63].toList().at(6);
|
if(undergraduatesNum.isValid()){
|
curComInfo.undergraduatesNum = undergraduatesNum.toInt();
|
qDebug()<<"undergraduatesNum"<<undergraduatesNum;
|
}
|
// 专科及以下
|
QVariant juniorNum = valRows[64].toList().at(6);
|
if(juniorNum.isValid()){
|
curComInfo.juniorNum = juniorNum.toInt();
|
qDebug()<<"juniorNum"<<juniorNum;
|
}
|
|
// 职称 高级职称
|
QVariant seniorNum = valRows[65].toList().at(6);
|
if(seniorNum.isValid()){
|
curComInfo.seniorNum = seniorNum.toInt();
|
qDebug()<<"seniorNum"<<seniorNum;
|
}
|
// 中级职称
|
QVariant intermediateNum = valRows[66].toList().at(6);
|
if(intermediateNum.isValid()){
|
curComInfo.intermediateNum = intermediateNum.toInt();
|
qDebug()<<"intermediateNum"<<intermediateNum;
|
}
|
// 初级职称
|
QVariant primaryNum = valRows[67].toList().at(6);
|
if(primaryNum.isValid()){
|
curComInfo.primaryNum = primaryNum.toInt();
|
qDebug()<<"primaryNum"<<primaryNum;
|
}
|
// 无职称
|
QVariant noTitleNum = valRows[68].toList().at(6);
|
if(noTitleNum.isValid()){
|
curComInfo.noTitleNum = noTitleNum.toInt();
|
qDebug()<<"noTitleNum"<<noTitleNum;
|
}
|
|
// 年龄结构 50岁以上
|
QVariant upFiftyOldNum = valRows[69].toList().at(6);
|
if(upFiftyOldNum.isValid()){
|
curComInfo.upFiftyOldNum = upFiftyOldNum.toInt();
|
qDebug()<<"upFiftyOldNum"<<upFiftyOldNum;
|
}
|
// 30-50岁
|
QVariant upThirtyOldNum = valRows[70].toList().at(6);
|
if(upThirtyOldNum.isValid()){
|
curComInfo.upThirtyOldNum = upThirtyOldNum.toInt();
|
qDebug()<<"upThirtyOldNum"<<upThirtyOldNum;
|
}
|
// 30岁以下
|
QVariant downThirtyOldNum = valRows[71].toList().at(6);
|
if(downThirtyOldNum.isValid()){
|
curComInfo.downThirtyOldNum = downThirtyOldNum.toInt();
|
qDebug()<<"downThirtyOldNum"<<downThirtyOldNum;
|
}
|
|
// 知识结构 审计
|
QVariant auditNum = valRows[72].toList().at(6);
|
if(auditNum.isValid()){
|
curComInfo.auditNum = auditNum.toInt();
|
qDebug()<<"auditNum"<<auditNum;
|
}
|
// 会计
|
QVariant accountingNum = valRows[73].toList().at(6);
|
if(accountingNum.isValid()){
|
curComInfo.accountingNum = accountingNum.toInt();
|
qDebug()<<"accountingNum"<<accountingNum;
|
}
|
// 经济
|
QVariant economyNum = valRows[74].toList().at(6);
|
if(economyNum.isValid()){
|
curComInfo.economyNum = economyNum.toInt();
|
qDebug()<<"economyNum"<<economyNum;
|
}
|
// 法律
|
QVariant lawNum = valRows[75].toList().at(6);
|
if(lawNum.isValid()){
|
curComInfo.lawNum = lawNum.toInt();
|
qDebug()<<"lawNum"<<lawNum;
|
}
|
// 管理
|
QVariant managerNum = valRows[76].toList().at(6);
|
if(managerNum.isValid()){
|
curComInfo.managerNum = managerNum.toInt();
|
qDebug()<<"managerNum"<<managerNum;
|
}
|
// 信息技术
|
QVariant itNum = valRows[77].toList().at(6);
|
if(itNum.isValid()){
|
curComInfo.itNum = itNum.toInt();
|
qDebug()<<"itNum"<<itNum;
|
}
|
// 工程
|
QVariant engineeringNum = valRows[78].toList().at(6);
|
if(engineeringNum.isValid()){
|
curComInfo.engineeringNum = engineeringNum.toInt();
|
qDebug()<<"engineeringNum"<<engineeringNum;
|
}
|
// 其他
|
QVariant otherNum = valRows[79].toList().at(6);
|
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;
|
}
|
|
// 最后存到map中
|
m_nameAndComInfos[name.toString()]=curComInfo;
|
|
// 更新到数据库中
|
saveToSQL(curComInfo);
|
qDebug()<<"load Excel save to SQL ok:"<<name;
|
|
|
// 添加树形列表节点
|
//addTreeWidgetNode(upName,name);
|
|
if(upName.isValid()){
|
if(name.isValid()){
|
m_treeNodes[upName.toString()].push_back(name.toString());
|
}
|
}else{
|
if(name.isValid()){
|
m_treeNodes[name.toString()].push_back(name.toString());
|
}
|
}
|
|
}
|
wbs->dynamicCall("Close()");
|
excel.dynamicCall("Quit(void)");
|
|
|
|
qDebug()<<"单位信息数量:"<<m_nameAndComInfos.size();
|
}
|
|
// 控制显示进度相关
|
emit loadProgress((cntIdx/allSize)*100);
|
cntIdx++;
|
}
|
|
// 再次查询数据库中所有的信息
|
readAllSQLData();
|
|
createTreeNode(); // 构建树形节点
|
|
// 发射 加载完成的信号
|
emit loadFinished();
|
|
// 更新其他界面的公司信息下拉框
|
emit updateComboListSignal(m_nameAndComInfos);
|
|
// 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("增加");
|
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()));
|
connect(m_menu->actions().at(2),SIGNAL(triggered(bool)),this,SLOT(saveInfo()));
|
}
|
|
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;
|
|
// 更新到map中
|
if(m_nameAndComInfos.count(name)==0){
|
// 添加到map中
|
m_nameAndComInfos[name]=ComInfo();
|
// 添加到右边树部件中
|
QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
|
top1->setText(0,name);
|
}
|
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(); // index 10
|
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()); // index 17
|
|
// 二
|
strcpy(curComInfo.hasUpLegal,hasUpLegal.toLocal8Bit().data());
|
strcpy(curComInfo.upCreditCode,upCreditCode.toLocal8Bit().data());
|
strcpy(curComInfo.oldCreditCode,oldCreditCode.toLocal8Bit().data());
|
strcpy(curComInfo.upName,upName.toLocal8Bit().data()); // index 21
|
|
// 三
|
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; // index 29
|
curComInfo.legalDepartment = legalDepartment;
|
curComInfo.internalConDepart = internalConDepart;
|
curComInfo.disceplineInDepart = disceplineInDepart;
|
curComInfo.otherDepart = otherDepart;
|
strcpy(curComInfo.intavalAuditLeval,intavalAuditLeval.toLocal8Bit().data()); // index 34
|
|
// 四
|
curComInfo.organazationNum = organazationNum; // index 35
|
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; // index 56
|
|
// 后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()); // index 60
|
|
|
// 更新到数据库
|
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();
|
|
// 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();
|
// }
|
|
// }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();
|
// }
|
// }
|
|
// 独立出来一个函数,传一个结构体就ok
|
}
|
|
void ConverInfo2::readExcelFromPath(QString path)
|
{
|
|
QAxObject excel("ket.Application");
|
if(!excel.setControl("ket"
|
".Application")){ // windows内核
|
excel.setControl("Excel.Application"); // wps内核
|
}
|
excel.setProperty("Visible",false);
|
excel.setProperty("DisplayAlerts",false);
|
|
qDebug()<<"open:"<<path;
|
qDebug()<<"excel:"<<excel.className();
|
QAxObject * wbs = excel.querySubObject("WorkBooks");
|
qDebug()<<"wbs:"<<wbs->className();
|
QAxObject * wb = wbs->querySubObject("Open(QString&)",path); // 哪个对象是Open的返回值,哪个就可以保存
|
//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;
|
|
// 统一信用代码
|
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("");
|
}
|
// 业务代码
|
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("");
|
}
|
// 区域代码
|
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("");
|
}
|
// 城乡代码
|
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;
|
}
|
// 上级法人单位统一社会信用代码
|
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;
|
}
|
// 法务部门、内部控制部门、纪检部门、其他部门
|
// 需要特殊获取
|
QAxObject *checkBox = sheet->querySubObject("CheckBoxes(const QString&)", QString::fromLocal8Bit("财务部门"));
|
if(checkBox){
|
qDebug()<<"取到财务部门"<<checkBox->property("Value2").toInt()<<checkBox->property("Value").toInt()<<checkBox->property("Value2").toBool();
|
if(checkBox->property("Value").toBool()){
|
qDebug()<<"财务部门勾选";
|
}else{
|
qDebug()<<"财务部门未勾选";
|
}
|
}else{
|
qDebug()<<"未取到财务部门";
|
}
|
|
QAxObject *checkBox1 = sheet->querySubObject("CheckBoxes(const QString&)", QString::fromLocal8Bit("法务部门"));
|
if(checkBox1){
|
qDebug()<<"取到法务部门"<<checkBox1->property("Value").toInt();
|
if(checkBox1->property("Value").toBool()){
|
qDebug()<<"法务部门勾选";
|
}else{
|
qDebug()<<"法务部门未勾选";
|
}
|
}else{
|
qDebug()<<"未取到法务部门";
|
}
|
|
// 内审机构层级
|
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;
|
}
|
|
// 最后存到map中
|
m_nameAndComInfos[name.toString()]=curComInfo;
|
|
|
// 添加左边树形图相关
|
// 菜单相关 当上级公司为空上级时,自己当自己的上级,并且罗列进去当 本级
|
addTreeWidgetNode(upName,name);
|
|
// if(upName.isValid()){
|
// if(name.isValid()){
|
// m_treeNodes[upName.toString()].push_back(name.toString());
|
// }
|
// }else{
|
// if(name.isValid()){
|
// m_treeNodes[name.toString()].push_back(name.toString());
|
// }
|
// }
|
|
|
}
|
wbs->dynamicCall("Close()");
|
excel.dynamicCall("Quit(void)");
|
|
qDebug()<<"单位信息数量:"<<m_nameAndComInfos.size();
|
emit updateComboListSignal(m_nameAndComInfos); // 更新组合下拉框的单位信息
|
}
|
|
void ConverInfo2::createTreeNode(){
|
qDebug()<<"构建树形列表"<<m_treeNodes.size();
|
for(auto iter=m_treeNodes.begin();iter != m_treeNodes.end();iter++)
|
{
|
// 先构建一个每级的父节点
|
addTreeWidgetNode(iter.key(),iter.key());
|
// 再添加孩子节点
|
for(QString node:iter.value()){
|
qDebug()<<iter.key()<<node;
|
if(iter.key() != node){
|
addTreeWidgetNode(iter.key(),node);
|
}
|
}
|
}
|
}
|
|
void ConverInfo2::disableWheelEvent()
|
{
|
ui->comboBox_ChiefDesignerLevel->installEventFilter(this);
|
ui->comboBox_comType->installEventFilter(this);
|
ui->comboBox_employmentMode->installEventFilter(this);
|
ui->comboBox_hasChiefDesigner->installEventFilter(this);
|
ui->comboBox_hasSetIntervalAudit->installEventFilter(this);
|
ui->comboBox_hasSetSeparateIA->installEventFilter(this);
|
ui->comboBox_hasUpLegal->installEventFilter(this);
|
ui->comboBox_intavalAuditLeval->installEventFilter(this);
|
ui->comboBox_leadingOrganization->installEventFilter(this);
|
ui->comboBox_scale->installEventFilter(this);
|
ui->comboBox_standardType->installEventFilter(this);
|
}
|
|
bool ConverInfo2::eventFilter(QObject *watched, QEvent *event)
|
{
|
QString cls = watched->metaObject()->className();
|
if(cls == "QComboBox"){
|
//qDebug()<<"发现下拉框";
|
if(event->type() == QEvent::Wheel){
|
//qDebug()<<"使用了滚轮";
|
return true; // 返回真表示禁用,返回假则能用
|
}
|
}else{
|
qDebug()<<"其他类型:"<<cls;
|
}
|
|
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::deleteAllByName(QString name)
|
{
|
// 数据库表有:封面信息表 all_company_info
|
// 综合信息表 comprehensive_entry_info
|
// 三合一的表 standing_book_info
|
|
QString first_sql = QString("delete from all_company_info where name='%1'").arg(name);
|
qDebug()<<"first_sql:"<<first_sql;
|
|
QString second_sql = QString("delete from comprehensive_entry_info where name='%1'").arg(name);
|
qDebug()<<"second_sql:"<<second_sql;
|
|
QString three_sql = QString("delete from standing_book_info where 责任主体名称='%1'").arg(name);
|
qDebug()<<"three_sql:"<<three_sql;
|
|
|
QSqlQuery query;
|
if(query.exec(first_sql))
|
{
|
qDebug()<<"first_sql run ok";
|
}
|
if(query.exec(second_sql))
|
{
|
qDebug()<<"second_sql run ok";
|
}
|
if(query.exec(three_sql))
|
{
|
qDebug()<<"three_sql run ok";
|
}
|
|
|
|
}
|
void ConverInfo2::addTreeWidgetNode(QVariant upName,QVariant name){
|
// 添加左边树形图相关
|
// 菜单相关 当上级公司为空上级时,自己当自己的上级,并且罗列进去当 本级
|
|
if(upName.isValid()) // 有效
|
{
|
// 判断顶层树节点是否已经存在
|
QTreeWidgetItem *top = nullptr;
|
for(int k=0;k<ui->treeWidget->topLevelItemCount();++k){
|
QTreeWidgetItem *tmp = ui->treeWidget->topLevelItem(k);
|
qDebug()<<k<<tmp->text(0)<<upName.toString();
|
int pos = tmp->text(0).indexOf(upName.toString()+"(汇总)");
|
if(upName.toString()+"(汇总)" == tmp->text(0) || pos != -1){
|
top = tmp;
|
break;
|
}
|
}
|
if(name.isValid()){
|
if(top){ // 存在,则添加到孩子列表中
|
QTreeWidgetItem *top1 = new QTreeWidgetItem(top);
|
top1->setText(0,name.toString());
|
top->setText(0,upName.toString()+"(汇总)下级数:"+QString::number(top->childCount()-1));
|
}else{ // 不存在,则新建一个列表
|
QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
|
top1->setText(0,name.toString()+"(汇总)");
|
QTreeWidgetItem *top2 = new QTreeWidgetItem(top1);
|
top2->setText(0,name.toString()+"(本级)");
|
top1->setText(0,name.toString()+"(汇总)下级数:"+QString::number(top1->childCount()-1));
|
}
|
}
|
|
|
}else{
|
qDebug()<<"没发现上一级,只能自己当"<<name;
|
if(name.isValid()){
|
QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
|
top1->setText(0,name.toString()+"(汇总)");
|
QTreeWidgetItem *top2 = new QTreeWidgetItem(top1);
|
top2->setText(0,name.toString()+"(本级)");
|
top1->setText(0,name.toString()+"(汇总)下级数:"+QString::number(top1->childCount()-1));
|
}
|
|
}
|
}
|
void ConverInfo2::on_pushButton_laodFile_clicked()
|
{
|
QString path = QFileDialog::getOpenFileName(this,"选择表格:单位及内部审计机构基本情况表","./","excel(*基本情况表*.xls)");
|
qDebug()<<"path:"<<path;
|
if(path.size() > 1){
|
readExcelFromPath(path);
|
}
|
}
|
|
void ConverInfo2::showExcelSlot()
|
{
|
readInfo(); // 加载表格
|
}
|
|
void ConverInfo2::on_pushButton_save_to_file_clicked()
|
{
|
QString name = ui->lineEdit_name->text();
|
if(name.size()== 0){
|
QMessageBox::information(this,"单位名称为空,请先选中一家单位","请先选中一家单位");
|
return;
|
}
|
ExportToFile etf(this);
|
ComInfo cif = m_nameAndComInfos[name];
|
etf.saveToExcelFromComInfo(cif);
|
}
|