diff --git a/softwareDirectory/AutoVerScheme/verifywindow.cpp b/softwareDirectory/AutoVerScheme/verifywindow.cpp index 6ba9de5..08208aa 100644 --- a/softwareDirectory/AutoVerScheme/verifywindow.cpp +++ b/softwareDirectory/AutoVerScheme/verifywindow.cpp @@ -18,6 +18,12 @@ for(int i=0;i<2;i++) ui->tableWidget_3->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); ui->tableWidget_3->setSelectionBehavior(QAbstractItemView::SelectRows); + for(int i=1;i<6;i++){ + ui->tableWidgetStd->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); + ui->tableWidgetBiz->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); + } + ui->tableWidgetStd->setColumnWidth(0, 60); + ui->tableWidgetBiz->setColumnWidth(0, 60); getVerifyMethod(); } @@ -95,12 +101,124 @@ QMessageBox::warning(this, "提示", "请选择检定程序!"); }else{ programInfo = BaseCommonApi::getCheckProgramManageById(sId); - initDeviceInfo(); + //initDeviceInfo(); + selectStandInfo(); + selectBizInfo(); ui->stackedWidget->setCurrentIndex(1); } } -void VerifyWindow::initDeviceInfo() +void VerifyWindow::selectStandInfo(){ + ui->tableWidgetStd->clearContents(); + ui->tableWidgetStd->setRowCount(0); + QStringList idList; + int rowCount = 0; + int row=0; + if(programInfo.standard_device_id!="") + { + idList = programInfo.standard_device_id.split(","); + stdIdList.clear(); + stdList.clear(); + for(const QString& id : idList) + { + QList result = BaseCommonApi::getCatDeviceInfor(id); + if(result.length()>0){ + + CatDeviceInfor item = result[0]; + QString sFilterName = ui->lineEdit_7->text(); + QString sFilterModal = ui->lineEdit_8->text(); + QString sFilterNo = ui->lineEdit_11->text(); + bool bAdd=true; + if(sFilterName!=""&&!item.equipment_name.contains(sFilterName)){ + bAdd=false; + } + if(sFilterModal!=""&&!item.model.contains(sFilterModal)){ + bAdd=false; + } + if(sFilterNo!=""&&!item.manufacture_no.contains(sFilterNo)){ + bAdd=false; + } + if(bAdd){ + stdIdList.append(id); + stdList.append(item); + } + result.clear(); + } + } + idList.clear(); + for(const CatDeviceInfor& item : stdList){ + rowCount = ui->tableWidgetStd->rowCount(); + + ui->tableWidgetStd->insertRow(rowCount); + QTableWidgetItem* p_check = new QTableWidgetItem(); + p_check->setCheckState(Qt::Unchecked); //设置首列为 CheckBox 控件 + ui->tableWidgetStd->setItem(row,0,p_check); + ui->tableWidgetStd->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); //设置数据 + ui->tableWidgetStd->setItem(row, 2, new QTableWidgetItem(item.model)); //设置数据 + ui->tableWidgetStd->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); //设置数据 + ui->tableWidgetStd->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetStd->setItem(row, 5, new QTableWidgetItem("")); + row++; + } + } +} + +void VerifyWindow::selectBizInfo(){ + ui->tableWidgetBiz->clearContents(); + ui->tableWidgetBiz->setRowCount(0); + QStringList idList; + int rowCount = 0; + int row=0; + if(programInfo.verification_documents_id!="") + { + idList = programInfo.verification_documents_id.split(","); + bizIdList.clear(); + bizList.clear(); + for(const QString& id : idList) + { + QList result = BaseCommonApi::getCatDeviceInfor(id); + if(result.length()>0){ + + CatDeviceInfor item = result[0]; + QString sFilterName = ui->lineEdit_12->text(); + QString sFilterModal = ui->lineEdit_13->text(); + QString sFilterNo = ui->lineEdit_14->text(); + bool bAdd=true; + if(sFilterName!=""&&!item.equipment_name.contains(sFilterName)){ + bAdd=false; + } + if(sFilterModal!=""&&!item.model.contains(sFilterModal)){ + bAdd=false; + } + if(sFilterNo!=""&&!item.manufacture_no.contains(sFilterNo)){ + bAdd=false; + } + if(bAdd){ + bizIdList.append(id); + bizList.append(item); + } + result.clear(); + } + } + idList.clear(); + for(const CatDeviceInfor& item : bizList){ + rowCount = ui->tableWidgetBiz->rowCount(); + + ui->tableWidgetBiz->insertRow(rowCount); + QTableWidgetItem* p_check = new QTableWidgetItem(); + p_check->setCheckState(Qt::Unchecked); //设置首列为 CheckBox 控件 + ui->tableWidgetBiz->setItem(row,0,p_check); + ui->tableWidgetBiz->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); //设置数据 + ui->tableWidgetBiz->setItem(row, 2, new QTableWidgetItem(item.model)); //设置数据 + ui->tableWidgetBiz->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); //设置数据 + ui->tableWidgetBiz->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetBiz->setItem(row, 5, new QTableWidgetItem("")); + row++; + } + } +} + +void VerifyWindow::initDeviceInfo(QString stdId,QString bizId) { QString strStyle = QString("QLabel{image:url(%1);}").arg(programInfo.img_path); qDebug() << "strStyle:" << strStyle; @@ -112,12 +230,13 @@ int rowCount=0; int row=0; connectList.clear(); - if(programInfo.standard_device_id!="") + if(stdId!="") { - idList = programInfo.standard_device_id.split(","); + idList = stdId.split(","); for(const QString& id : idList) { ConnectInfo info; + info.id = id; info.state="未连接"; info.type = 1; QList result = BaseCommonApi::getCatDeviceInfor(id); @@ -136,13 +255,18 @@ idList.clear(); } - if(programInfo.verification_documents_id!=""){ - idList = programInfo.verification_documents_id.split(","); + if(bizId!=""){ + idList = bizId.split(","); for(const QString& id : idList) { ConnectInfo info; info.state="未连接"; info.type = 0; + info.id = id; + QList result = BaseCommonApi::getCatDeviceInfor(id); + if(result.length()>0){ + info.deviceName = result[0].equipment_name; + } // CheckAndTestedDevice result = BaseCommonApi::getCheckAndTestedDeviceById(id); // info.deviceName = result.equipment_name; @@ -275,39 +399,30 @@ deleteItem(ui->horizontalLayout_14); int idx=0; catDeviceList.clear(); - QString standardId=""; - if(programInfo.standard_device_id!="") - { - QStringList idList = programInfo.standard_device_id.split(","); - for(const QString& id : idList) - { - standardId = id; - QList result = BaseCommonApi::getCatDeviceInfor(id); - if(result.length()>0){ - CatDeviceInfor info = result[0]; - catDeviceList.append(info); - QPushButton *btn_1 = new QPushButton(); - btn_1->setText(info.equipment_name); - btn_1->setStyleSheet("QPushButton{" - "background-color:rgb(240,240,240);" - "color:rgb(51,51,51);" - "}"); - //btn_1->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); - QFont font; - font.setPointSize(12);//字体大小 - font.setBold(true); - btn_1->setFont(font); - btn_1->setCursor(Qt::PointingHandCursor); - connect(btn_1, &QPushButton::clicked, this, [this,info,idx]() { - on_deviceButton_clicked(info,idx); - }); - ui->horizontalLayout_14->addWidget(btn_1); - idx++; - } - result.clear(); - } - idList.clear(); + QString standardId=connectList[0].id; + QList result = BaseCommonApi::getCatDeviceInfor(standardId); + if(result.length()>0){ + CatDeviceInfor info = result[0]; + catDeviceList.append(info); + QPushButton *btn_1 = new QPushButton(); + btn_1->setText(info.equipment_name); + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + //btn_1->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); + QFont font; + font.setPointSize(12);//字体大小 + font.setBold(true); + btn_1->setFont(font); + btn_1->setCursor(Qt::PointingHandCursor); + connect(btn_1, &QPushButton::clicked, this, [this,info,idx]() { + on_deviceButton_clicked(info,idx); + }); + ui->horizontalLayout_14->addWidget(btn_1); + idx++; } + result.clear(); on_deviceButton_clicked(catDeviceList[0],0); ui->horizontalLayout_14->addStretch(); @@ -315,6 +430,7 @@ { headList.clear(); calibrationList.clear(); + veriDataMapList = BaseCommonApi::getStandardCheckItemDataCalibrator(standardId,&veriHeadList); // calibrationList =BaseCommonApi::Search_VerifyTable(standardId,&headList); //tableWidgetItem @@ -500,3 +616,76 @@ ui->lineEdit_10->setText(""); getVerifyMethod(); } + +void VerifyWindow::on_pushButton_14_clicked() +{ + QString sId=""; + for(int i=0;itableWidgetStd->rowCount();i++){ + Qt::CheckState state = ui->tableWidgetStd->item(i,0)->checkState(); + if(state == Qt::Checked){ + sId = stdIdList[i]; + break; + } + } + QString sBizId=""; + for(int i=0;itableWidgetBiz->rowCount();i++){ + Qt::CheckState state = ui->tableWidgetBiz->item(i,0)->checkState(); + if(state == Qt::Checked){ + if(sBizId=="") + sBizId = bizIdList[i]; + else + sBizId =QString("%1,%2").arg(sBizId).arg(bizIdList[i]); + } + } + if(sId==""){ + QMessageBox::warning(this, "提示", "请选择标准设备!"); + } + else if(sBizId==""){ + QMessageBox::warning(this, "提示", "请选择核查件!"); + } + else{ + //programInfo = BaseCommonApi::getCheckProgramManageById(sId); + initDeviceInfo(sId,sBizId); + ui->stackedWidget->setCurrentIndex(2); + } +} + +void VerifyWindow::on_pushButton_16_clicked() +{ + selectStandInfo(); +} + +void VerifyWindow::on_pushButton_17_clicked() +{ + ui->lineEdit_7->setText(""); + ui->lineEdit_8->setText(""); + ui->lineEdit_11->setText(""); + selectStandInfo(); +} + +void VerifyWindow::on_pushButton_18_clicked() +{ + selectBizInfo(); +} + +void VerifyWindow::on_pushButton_19_clicked() +{ + ui->lineEdit_12->setText(""); + ui->lineEdit_13->setText(""); + ui->lineEdit_14->setText(""); + selectBizInfo(); +} + +void VerifyWindow::on_tableWidgetStd_cellChanged(int row, int column) +{ + Qt::CheckState state = ui->tableWidgetStd->item(row,0)->checkState(); + if(state == Qt::Checked) + { + for(int i=0;itableWidgetStd->rowCount();i++){ + if(i!=row) + { + ui->tableWidgetStd->item(i,0)->setCheckState(Qt::Unchecked); + } + } + } +} diff --git a/softwareDirectory/AutoVerScheme/verifywindow.cpp b/softwareDirectory/AutoVerScheme/verifywindow.cpp index 6ba9de5..08208aa 100644 --- a/softwareDirectory/AutoVerScheme/verifywindow.cpp +++ b/softwareDirectory/AutoVerScheme/verifywindow.cpp @@ -18,6 +18,12 @@ for(int i=0;i<2;i++) ui->tableWidget_3->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); ui->tableWidget_3->setSelectionBehavior(QAbstractItemView::SelectRows); + for(int i=1;i<6;i++){ + ui->tableWidgetStd->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); + ui->tableWidgetBiz->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); + } + ui->tableWidgetStd->setColumnWidth(0, 60); + ui->tableWidgetBiz->setColumnWidth(0, 60); getVerifyMethod(); } @@ -95,12 +101,124 @@ QMessageBox::warning(this, "提示", "请选择检定程序!"); }else{ programInfo = BaseCommonApi::getCheckProgramManageById(sId); - initDeviceInfo(); + //initDeviceInfo(); + selectStandInfo(); + selectBizInfo(); ui->stackedWidget->setCurrentIndex(1); } } -void VerifyWindow::initDeviceInfo() +void VerifyWindow::selectStandInfo(){ + ui->tableWidgetStd->clearContents(); + ui->tableWidgetStd->setRowCount(0); + QStringList idList; + int rowCount = 0; + int row=0; + if(programInfo.standard_device_id!="") + { + idList = programInfo.standard_device_id.split(","); + stdIdList.clear(); + stdList.clear(); + for(const QString& id : idList) + { + QList result = BaseCommonApi::getCatDeviceInfor(id); + if(result.length()>0){ + + CatDeviceInfor item = result[0]; + QString sFilterName = ui->lineEdit_7->text(); + QString sFilterModal = ui->lineEdit_8->text(); + QString sFilterNo = ui->lineEdit_11->text(); + bool bAdd=true; + if(sFilterName!=""&&!item.equipment_name.contains(sFilterName)){ + bAdd=false; + } + if(sFilterModal!=""&&!item.model.contains(sFilterModal)){ + bAdd=false; + } + if(sFilterNo!=""&&!item.manufacture_no.contains(sFilterNo)){ + bAdd=false; + } + if(bAdd){ + stdIdList.append(id); + stdList.append(item); + } + result.clear(); + } + } + idList.clear(); + for(const CatDeviceInfor& item : stdList){ + rowCount = ui->tableWidgetStd->rowCount(); + + ui->tableWidgetStd->insertRow(rowCount); + QTableWidgetItem* p_check = new QTableWidgetItem(); + p_check->setCheckState(Qt::Unchecked); //设置首列为 CheckBox 控件 + ui->tableWidgetStd->setItem(row,0,p_check); + ui->tableWidgetStd->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); //设置数据 + ui->tableWidgetStd->setItem(row, 2, new QTableWidgetItem(item.model)); //设置数据 + ui->tableWidgetStd->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); //设置数据 + ui->tableWidgetStd->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetStd->setItem(row, 5, new QTableWidgetItem("")); + row++; + } + } +} + +void VerifyWindow::selectBizInfo(){ + ui->tableWidgetBiz->clearContents(); + ui->tableWidgetBiz->setRowCount(0); + QStringList idList; + int rowCount = 0; + int row=0; + if(programInfo.verification_documents_id!="") + { + idList = programInfo.verification_documents_id.split(","); + bizIdList.clear(); + bizList.clear(); + for(const QString& id : idList) + { + QList result = BaseCommonApi::getCatDeviceInfor(id); + if(result.length()>0){ + + CatDeviceInfor item = result[0]; + QString sFilterName = ui->lineEdit_12->text(); + QString sFilterModal = ui->lineEdit_13->text(); + QString sFilterNo = ui->lineEdit_14->text(); + bool bAdd=true; + if(sFilterName!=""&&!item.equipment_name.contains(sFilterName)){ + bAdd=false; + } + if(sFilterModal!=""&&!item.model.contains(sFilterModal)){ + bAdd=false; + } + if(sFilterNo!=""&&!item.manufacture_no.contains(sFilterNo)){ + bAdd=false; + } + if(bAdd){ + bizIdList.append(id); + bizList.append(item); + } + result.clear(); + } + } + idList.clear(); + for(const CatDeviceInfor& item : bizList){ + rowCount = ui->tableWidgetBiz->rowCount(); + + ui->tableWidgetBiz->insertRow(rowCount); + QTableWidgetItem* p_check = new QTableWidgetItem(); + p_check->setCheckState(Qt::Unchecked); //设置首列为 CheckBox 控件 + ui->tableWidgetBiz->setItem(row,0,p_check); + ui->tableWidgetBiz->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); //设置数据 + ui->tableWidgetBiz->setItem(row, 2, new QTableWidgetItem(item.model)); //设置数据 + ui->tableWidgetBiz->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); //设置数据 + ui->tableWidgetBiz->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetBiz->setItem(row, 5, new QTableWidgetItem("")); + row++; + } + } +} + +void VerifyWindow::initDeviceInfo(QString stdId,QString bizId) { QString strStyle = QString("QLabel{image:url(%1);}").arg(programInfo.img_path); qDebug() << "strStyle:" << strStyle; @@ -112,12 +230,13 @@ int rowCount=0; int row=0; connectList.clear(); - if(programInfo.standard_device_id!="") + if(stdId!="") { - idList = programInfo.standard_device_id.split(","); + idList = stdId.split(","); for(const QString& id : idList) { ConnectInfo info; + info.id = id; info.state="未连接"; info.type = 1; QList result = BaseCommonApi::getCatDeviceInfor(id); @@ -136,13 +255,18 @@ idList.clear(); } - if(programInfo.verification_documents_id!=""){ - idList = programInfo.verification_documents_id.split(","); + if(bizId!=""){ + idList = bizId.split(","); for(const QString& id : idList) { ConnectInfo info; info.state="未连接"; info.type = 0; + info.id = id; + QList result = BaseCommonApi::getCatDeviceInfor(id); + if(result.length()>0){ + info.deviceName = result[0].equipment_name; + } // CheckAndTestedDevice result = BaseCommonApi::getCheckAndTestedDeviceById(id); // info.deviceName = result.equipment_name; @@ -275,39 +399,30 @@ deleteItem(ui->horizontalLayout_14); int idx=0; catDeviceList.clear(); - QString standardId=""; - if(programInfo.standard_device_id!="") - { - QStringList idList = programInfo.standard_device_id.split(","); - for(const QString& id : idList) - { - standardId = id; - QList result = BaseCommonApi::getCatDeviceInfor(id); - if(result.length()>0){ - CatDeviceInfor info = result[0]; - catDeviceList.append(info); - QPushButton *btn_1 = new QPushButton(); - btn_1->setText(info.equipment_name); - btn_1->setStyleSheet("QPushButton{" - "background-color:rgb(240,240,240);" - "color:rgb(51,51,51);" - "}"); - //btn_1->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); - QFont font; - font.setPointSize(12);//字体大小 - font.setBold(true); - btn_1->setFont(font); - btn_1->setCursor(Qt::PointingHandCursor); - connect(btn_1, &QPushButton::clicked, this, [this,info,idx]() { - on_deviceButton_clicked(info,idx); - }); - ui->horizontalLayout_14->addWidget(btn_1); - idx++; - } - result.clear(); - } - idList.clear(); + QString standardId=connectList[0].id; + QList result = BaseCommonApi::getCatDeviceInfor(standardId); + if(result.length()>0){ + CatDeviceInfor info = result[0]; + catDeviceList.append(info); + QPushButton *btn_1 = new QPushButton(); + btn_1->setText(info.equipment_name); + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + //btn_1->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); + QFont font; + font.setPointSize(12);//字体大小 + font.setBold(true); + btn_1->setFont(font); + btn_1->setCursor(Qt::PointingHandCursor); + connect(btn_1, &QPushButton::clicked, this, [this,info,idx]() { + on_deviceButton_clicked(info,idx); + }); + ui->horizontalLayout_14->addWidget(btn_1); + idx++; } + result.clear(); on_deviceButton_clicked(catDeviceList[0],0); ui->horizontalLayout_14->addStretch(); @@ -315,6 +430,7 @@ { headList.clear(); calibrationList.clear(); + veriDataMapList = BaseCommonApi::getStandardCheckItemDataCalibrator(standardId,&veriHeadList); // calibrationList =BaseCommonApi::Search_VerifyTable(standardId,&headList); //tableWidgetItem @@ -500,3 +616,76 @@ ui->lineEdit_10->setText(""); getVerifyMethod(); } + +void VerifyWindow::on_pushButton_14_clicked() +{ + QString sId=""; + for(int i=0;itableWidgetStd->rowCount();i++){ + Qt::CheckState state = ui->tableWidgetStd->item(i,0)->checkState(); + if(state == Qt::Checked){ + sId = stdIdList[i]; + break; + } + } + QString sBizId=""; + for(int i=0;itableWidgetBiz->rowCount();i++){ + Qt::CheckState state = ui->tableWidgetBiz->item(i,0)->checkState(); + if(state == Qt::Checked){ + if(sBizId=="") + sBizId = bizIdList[i]; + else + sBizId =QString("%1,%2").arg(sBizId).arg(bizIdList[i]); + } + } + if(sId==""){ + QMessageBox::warning(this, "提示", "请选择标准设备!"); + } + else if(sBizId==""){ + QMessageBox::warning(this, "提示", "请选择核查件!"); + } + else{ + //programInfo = BaseCommonApi::getCheckProgramManageById(sId); + initDeviceInfo(sId,sBizId); + ui->stackedWidget->setCurrentIndex(2); + } +} + +void VerifyWindow::on_pushButton_16_clicked() +{ + selectStandInfo(); +} + +void VerifyWindow::on_pushButton_17_clicked() +{ + ui->lineEdit_7->setText(""); + ui->lineEdit_8->setText(""); + ui->lineEdit_11->setText(""); + selectStandInfo(); +} + +void VerifyWindow::on_pushButton_18_clicked() +{ + selectBizInfo(); +} + +void VerifyWindow::on_pushButton_19_clicked() +{ + ui->lineEdit_12->setText(""); + ui->lineEdit_13->setText(""); + ui->lineEdit_14->setText(""); + selectBizInfo(); +} + +void VerifyWindow::on_tableWidgetStd_cellChanged(int row, int column) +{ + Qt::CheckState state = ui->tableWidgetStd->item(row,0)->checkState(); + if(state == Qt::Checked) + { + for(int i=0;itableWidgetStd->rowCount();i++){ + if(i!=row) + { + ui->tableWidgetStd->item(i,0)->setCheckState(Qt::Unchecked); + } + } + } +} diff --git a/softwareDirectory/AutoVerScheme/verifywindow.h b/softwareDirectory/AutoVerScheme/verifywindow.h index 4efeff2..e4d823c 100644 --- a/softwareDirectory/AutoVerScheme/verifywindow.h +++ b/softwareDirectory/AutoVerScheme/verifywindow.h @@ -18,11 +18,13 @@ ~VerifyWindow(); private: void getVerifyMethod(); - void initDeviceInfo(); + void initDeviceInfo(QString stdId,QString bizId); void deleteItem(QLayout *layout); void initCheckTable(); InstructionLib* getCmdByCheckName(int idx,QString name); void Delay_MSec(unsigned int msec); + void selectStandInfo(); + void selectBizInfo(); private slots: void showDevice(); void on_editButton_clicked(); @@ -50,6 +52,18 @@ void on_pushButton_11_clicked(); + void on_pushButton_14_clicked(); + + void on_pushButton_16_clicked(); + + void on_pushButton_17_clicked(); + + void on_pushButton_18_clicked(); + + void on_pushButton_19_clicked(); + + void on_tableWidgetStd_cellChanged(int row, int column); + private: Ui::VerifyWindow *ui; QList programList; @@ -61,6 +75,12 @@ QList measureCalList; VisaCommonEngine deviceEngine; VisaCommonEngine standardEngine; + QList stdList; + QList bizList; + QStringList stdIdList; + QStringList bizIdList; + QMap>> veriDataMapList; + QMap> veriHeadList; }; #endif // VERIFYWINDOW_H diff --git a/softwareDirectory/AutoVerScheme/verifywindow.cpp b/softwareDirectory/AutoVerScheme/verifywindow.cpp index 6ba9de5..08208aa 100644 --- a/softwareDirectory/AutoVerScheme/verifywindow.cpp +++ b/softwareDirectory/AutoVerScheme/verifywindow.cpp @@ -18,6 +18,12 @@ for(int i=0;i<2;i++) ui->tableWidget_3->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); ui->tableWidget_3->setSelectionBehavior(QAbstractItemView::SelectRows); + for(int i=1;i<6;i++){ + ui->tableWidgetStd->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); + ui->tableWidgetBiz->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); + } + ui->tableWidgetStd->setColumnWidth(0, 60); + ui->tableWidgetBiz->setColumnWidth(0, 60); getVerifyMethod(); } @@ -95,12 +101,124 @@ QMessageBox::warning(this, "提示", "请选择检定程序!"); }else{ programInfo = BaseCommonApi::getCheckProgramManageById(sId); - initDeviceInfo(); + //initDeviceInfo(); + selectStandInfo(); + selectBizInfo(); ui->stackedWidget->setCurrentIndex(1); } } -void VerifyWindow::initDeviceInfo() +void VerifyWindow::selectStandInfo(){ + ui->tableWidgetStd->clearContents(); + ui->tableWidgetStd->setRowCount(0); + QStringList idList; + int rowCount = 0; + int row=0; + if(programInfo.standard_device_id!="") + { + idList = programInfo.standard_device_id.split(","); + stdIdList.clear(); + stdList.clear(); + for(const QString& id : idList) + { + QList result = BaseCommonApi::getCatDeviceInfor(id); + if(result.length()>0){ + + CatDeviceInfor item = result[0]; + QString sFilterName = ui->lineEdit_7->text(); + QString sFilterModal = ui->lineEdit_8->text(); + QString sFilterNo = ui->lineEdit_11->text(); + bool bAdd=true; + if(sFilterName!=""&&!item.equipment_name.contains(sFilterName)){ + bAdd=false; + } + if(sFilterModal!=""&&!item.model.contains(sFilterModal)){ + bAdd=false; + } + if(sFilterNo!=""&&!item.manufacture_no.contains(sFilterNo)){ + bAdd=false; + } + if(bAdd){ + stdIdList.append(id); + stdList.append(item); + } + result.clear(); + } + } + idList.clear(); + for(const CatDeviceInfor& item : stdList){ + rowCount = ui->tableWidgetStd->rowCount(); + + ui->tableWidgetStd->insertRow(rowCount); + QTableWidgetItem* p_check = new QTableWidgetItem(); + p_check->setCheckState(Qt::Unchecked); //设置首列为 CheckBox 控件 + ui->tableWidgetStd->setItem(row,0,p_check); + ui->tableWidgetStd->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); //设置数据 + ui->tableWidgetStd->setItem(row, 2, new QTableWidgetItem(item.model)); //设置数据 + ui->tableWidgetStd->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); //设置数据 + ui->tableWidgetStd->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetStd->setItem(row, 5, new QTableWidgetItem("")); + row++; + } + } +} + +void VerifyWindow::selectBizInfo(){ + ui->tableWidgetBiz->clearContents(); + ui->tableWidgetBiz->setRowCount(0); + QStringList idList; + int rowCount = 0; + int row=0; + if(programInfo.verification_documents_id!="") + { + idList = programInfo.verification_documents_id.split(","); + bizIdList.clear(); + bizList.clear(); + for(const QString& id : idList) + { + QList result = BaseCommonApi::getCatDeviceInfor(id); + if(result.length()>0){ + + CatDeviceInfor item = result[0]; + QString sFilterName = ui->lineEdit_12->text(); + QString sFilterModal = ui->lineEdit_13->text(); + QString sFilterNo = ui->lineEdit_14->text(); + bool bAdd=true; + if(sFilterName!=""&&!item.equipment_name.contains(sFilterName)){ + bAdd=false; + } + if(sFilterModal!=""&&!item.model.contains(sFilterModal)){ + bAdd=false; + } + if(sFilterNo!=""&&!item.manufacture_no.contains(sFilterNo)){ + bAdd=false; + } + if(bAdd){ + bizIdList.append(id); + bizList.append(item); + } + result.clear(); + } + } + idList.clear(); + for(const CatDeviceInfor& item : bizList){ + rowCount = ui->tableWidgetBiz->rowCount(); + + ui->tableWidgetBiz->insertRow(rowCount); + QTableWidgetItem* p_check = new QTableWidgetItem(); + p_check->setCheckState(Qt::Unchecked); //设置首列为 CheckBox 控件 + ui->tableWidgetBiz->setItem(row,0,p_check); + ui->tableWidgetBiz->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); //设置数据 + ui->tableWidgetBiz->setItem(row, 2, new QTableWidgetItem(item.model)); //设置数据 + ui->tableWidgetBiz->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); //设置数据 + ui->tableWidgetBiz->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetBiz->setItem(row, 5, new QTableWidgetItem("")); + row++; + } + } +} + +void VerifyWindow::initDeviceInfo(QString stdId,QString bizId) { QString strStyle = QString("QLabel{image:url(%1);}").arg(programInfo.img_path); qDebug() << "strStyle:" << strStyle; @@ -112,12 +230,13 @@ int rowCount=0; int row=0; connectList.clear(); - if(programInfo.standard_device_id!="") + if(stdId!="") { - idList = programInfo.standard_device_id.split(","); + idList = stdId.split(","); for(const QString& id : idList) { ConnectInfo info; + info.id = id; info.state="未连接"; info.type = 1; QList result = BaseCommonApi::getCatDeviceInfor(id); @@ -136,13 +255,18 @@ idList.clear(); } - if(programInfo.verification_documents_id!=""){ - idList = programInfo.verification_documents_id.split(","); + if(bizId!=""){ + idList = bizId.split(","); for(const QString& id : idList) { ConnectInfo info; info.state="未连接"; info.type = 0; + info.id = id; + QList result = BaseCommonApi::getCatDeviceInfor(id); + if(result.length()>0){ + info.deviceName = result[0].equipment_name; + } // CheckAndTestedDevice result = BaseCommonApi::getCheckAndTestedDeviceById(id); // info.deviceName = result.equipment_name; @@ -275,39 +399,30 @@ deleteItem(ui->horizontalLayout_14); int idx=0; catDeviceList.clear(); - QString standardId=""; - if(programInfo.standard_device_id!="") - { - QStringList idList = programInfo.standard_device_id.split(","); - for(const QString& id : idList) - { - standardId = id; - QList result = BaseCommonApi::getCatDeviceInfor(id); - if(result.length()>0){ - CatDeviceInfor info = result[0]; - catDeviceList.append(info); - QPushButton *btn_1 = new QPushButton(); - btn_1->setText(info.equipment_name); - btn_1->setStyleSheet("QPushButton{" - "background-color:rgb(240,240,240);" - "color:rgb(51,51,51);" - "}"); - //btn_1->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); - QFont font; - font.setPointSize(12);//字体大小 - font.setBold(true); - btn_1->setFont(font); - btn_1->setCursor(Qt::PointingHandCursor); - connect(btn_1, &QPushButton::clicked, this, [this,info,idx]() { - on_deviceButton_clicked(info,idx); - }); - ui->horizontalLayout_14->addWidget(btn_1); - idx++; - } - result.clear(); - } - idList.clear(); + QString standardId=connectList[0].id; + QList result = BaseCommonApi::getCatDeviceInfor(standardId); + if(result.length()>0){ + CatDeviceInfor info = result[0]; + catDeviceList.append(info); + QPushButton *btn_1 = new QPushButton(); + btn_1->setText(info.equipment_name); + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + //btn_1->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); + QFont font; + font.setPointSize(12);//字体大小 + font.setBold(true); + btn_1->setFont(font); + btn_1->setCursor(Qt::PointingHandCursor); + connect(btn_1, &QPushButton::clicked, this, [this,info,idx]() { + on_deviceButton_clicked(info,idx); + }); + ui->horizontalLayout_14->addWidget(btn_1); + idx++; } + result.clear(); on_deviceButton_clicked(catDeviceList[0],0); ui->horizontalLayout_14->addStretch(); @@ -315,6 +430,7 @@ { headList.clear(); calibrationList.clear(); + veriDataMapList = BaseCommonApi::getStandardCheckItemDataCalibrator(standardId,&veriHeadList); // calibrationList =BaseCommonApi::Search_VerifyTable(standardId,&headList); //tableWidgetItem @@ -500,3 +616,76 @@ ui->lineEdit_10->setText(""); getVerifyMethod(); } + +void VerifyWindow::on_pushButton_14_clicked() +{ + QString sId=""; + for(int i=0;itableWidgetStd->rowCount();i++){ + Qt::CheckState state = ui->tableWidgetStd->item(i,0)->checkState(); + if(state == Qt::Checked){ + sId = stdIdList[i]; + break; + } + } + QString sBizId=""; + for(int i=0;itableWidgetBiz->rowCount();i++){ + Qt::CheckState state = ui->tableWidgetBiz->item(i,0)->checkState(); + if(state == Qt::Checked){ + if(sBizId=="") + sBizId = bizIdList[i]; + else + sBizId =QString("%1,%2").arg(sBizId).arg(bizIdList[i]); + } + } + if(sId==""){ + QMessageBox::warning(this, "提示", "请选择标准设备!"); + } + else if(sBizId==""){ + QMessageBox::warning(this, "提示", "请选择核查件!"); + } + else{ + //programInfo = BaseCommonApi::getCheckProgramManageById(sId); + initDeviceInfo(sId,sBizId); + ui->stackedWidget->setCurrentIndex(2); + } +} + +void VerifyWindow::on_pushButton_16_clicked() +{ + selectStandInfo(); +} + +void VerifyWindow::on_pushButton_17_clicked() +{ + ui->lineEdit_7->setText(""); + ui->lineEdit_8->setText(""); + ui->lineEdit_11->setText(""); + selectStandInfo(); +} + +void VerifyWindow::on_pushButton_18_clicked() +{ + selectBizInfo(); +} + +void VerifyWindow::on_pushButton_19_clicked() +{ + ui->lineEdit_12->setText(""); + ui->lineEdit_13->setText(""); + ui->lineEdit_14->setText(""); + selectBizInfo(); +} + +void VerifyWindow::on_tableWidgetStd_cellChanged(int row, int column) +{ + Qt::CheckState state = ui->tableWidgetStd->item(row,0)->checkState(); + if(state == Qt::Checked) + { + for(int i=0;itableWidgetStd->rowCount();i++){ + if(i!=row) + { + ui->tableWidgetStd->item(i,0)->setCheckState(Qt::Unchecked); + } + } + } +} diff --git a/softwareDirectory/AutoVerScheme/verifywindow.h b/softwareDirectory/AutoVerScheme/verifywindow.h index 4efeff2..e4d823c 100644 --- a/softwareDirectory/AutoVerScheme/verifywindow.h +++ b/softwareDirectory/AutoVerScheme/verifywindow.h @@ -18,11 +18,13 @@ ~VerifyWindow(); private: void getVerifyMethod(); - void initDeviceInfo(); + void initDeviceInfo(QString stdId,QString bizId); void deleteItem(QLayout *layout); void initCheckTable(); InstructionLib* getCmdByCheckName(int idx,QString name); void Delay_MSec(unsigned int msec); + void selectStandInfo(); + void selectBizInfo(); private slots: void showDevice(); void on_editButton_clicked(); @@ -50,6 +52,18 @@ void on_pushButton_11_clicked(); + void on_pushButton_14_clicked(); + + void on_pushButton_16_clicked(); + + void on_pushButton_17_clicked(); + + void on_pushButton_18_clicked(); + + void on_pushButton_19_clicked(); + + void on_tableWidgetStd_cellChanged(int row, int column); + private: Ui::VerifyWindow *ui; QList programList; @@ -61,6 +75,12 @@ QList measureCalList; VisaCommonEngine deviceEngine; VisaCommonEngine standardEngine; + QList stdList; + QList bizList; + QStringList stdIdList; + QStringList bizIdList; + QMap>> veriDataMapList; + QMap> veriHeadList; }; #endif // VERIFYWINDOW_H diff --git a/softwareDirectory/AutoVerScheme/verifywindow.ui b/softwareDirectory/AutoVerScheme/verifywindow.ui index 0f2b44b..464fbf9 100644 --- a/softwareDirectory/AutoVerScheme/verifywindow.ui +++ b/softwareDirectory/AutoVerScheme/verifywindow.ui @@ -16,65 +16,8 @@ background-color: rgb(255, 255, 255); - - - - - border-image: url(:/image/Index/u15.png); - - - - 10 - - - - - - 0 - 0 - - - - - 48 - 48 - - - - image: url(:/image/Index/u1417.svg); - - - - - - - - - - - 1 - 0 - - - - - 18 - 75 - true - - - - color: rgb(255, 255, 255); - - - 自动核查 - - - - - - - + + @@ -135,6 +78,53 @@ + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + 48 + 48 + + + + image: url(:/image/Index/u51.svg); + + + + + + + + + + + 12 + 75 + true + + + + 选择设备 + + + + + + Qt::Horizontal @@ -429,6 +419,454 @@ + + + + + + + + + + + 12 + 75 + true + + + + 选择标准设备: + + + + + + + 12 + + + 10 + + + 10 + + + + + + 12 + + + + 设备名称 + + + + + + + + 12 + + + + 型号规格 + + + + + + + + 12 + + + + 出厂编号 + + + + + + + + 1 + 0 + + + + + 72 + 26 + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); +background-color: rgb(74, 102, 186); +border-radius:5px; + + + 查询 + + + + + + + + 0 + 0 + + + + + 72 + 26 + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); +background-color: rgb(207, 132, 33); +border-radius:5px; + + + 重置 + + + + + + + + + + 选择 + + + + 12 + + + + + + 设备名称 + + + + 12 + + + + + + 型号规格 + + + + 12 + + + + + + 出厂编号 + + + + 12 + + + + + + 生产厂家 + + + + 12 + + + + + + 角色 + + + + 12 + + + + + + + + + + + + + + 12 + 75 + true + + + + 选择核查件: + + + + + + + 12 + + + 10 + + + 10 + + + + + + 12 + + + + 设备名称 + + + + + + + + 12 + + + + 型号规格 + + + + + + + + 12 + + + + 出厂编号 + + + + + + + + 1 + 0 + + + + + 72 + 26 + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); +background-color: rgb(74, 102, 186); +border-radius:5px; + + + 查询 + + + + + + + + 0 + 0 + + + + + 72 + 26 + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); +background-color: rgb(207, 132, 33); +border-radius:5px; + + + 重置 + + + + + + + + + + 选择 + + + + 12 + + + + + + 设备名称 + + + + 12 + + + + + + 型号规格 + + + + 12 + + + + + + 出厂编号 + + + + 12 + + + + + + 生产厂家 + + + + 12 + + + + + + 角色 + + + + 12 + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 120 + 36 + + + + color: rgb(255, 255, 255); +background-color: rgb(55, 83, 123); +border-radius:5px; + + + 加载 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + @@ -1361,6 +1799,63 @@ + + + + border-image: url(:/image/Index/u15.png); + + + + 10 + + + + + + 0 + 0 + + + + + 48 + 48 + + + + image: url(:/image/Index/u1417.svg); + + + + + + + + + + + 1 + 0 + + + + + 18 + 75 + true + + + + color: rgb(255, 255, 255); + + + 自动核查 + + + + + +