#include "DialogSubmitTaskResult.h" #include "ui_DialogSubmitTaskResult.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "TaskOrder.h" #include namespace WBFZTASK { DialogSubmitTaskResult::DialogSubmitTaskResult(QWidget* parent) : QDialog(parent) ,ui(new Ui::DialogSubmitTaskResultClass) ,networkManager(new QNetworkAccessManager(this)) { ui->setupUi(this); QObject::connect(ui->pushButton_Select, SIGNAL(clicked()), this, SLOT(on_clicked_pushButton_Select())); this->ui->dateTimeEditDateTIme->setDateTime(QDateTime::currentDateTime()); } DialogSubmitTaskResult::~DialogSubmitTaskResult() { } void DialogSubmitTaskResult::SetTaskOrder(WBFZTASK::TaskOrder* task) { this->task = task; this->ui->lineEdit_applicant->setText(task->getApplicant()); this->ui->lineEdit_contactinfo->setText(task->getContactInfo()); this->ui->lineEdit_createtime->setText(task->getCreateTime()); this->ui->lineEdit_ordercode->setText(task->getOrderCode()); this->ui->lineEdit_orderid->setText(task->getOrderId()); } void DialogSubmitTaskResult::accept() { // 获取参数 QString dataSource = ui->lineEdit_ResultFilePath->text(); QString dataType = this->task->getOrderType(); QString dataname = QFileInfo(dataSource).fileName(); QString DateTime = this->ui->dateTimeEditDateTIme->dateTime().toString("yyyy-MM-dd HH:mm:ss"); QString orderid = this->task->getOrderId(); QString ordersource = this->task->getOrderSource(); QString orderType = this->task->getOrderType(); QString simulationProduction = this->ui->lineEdit_simulationProduct->text();// this->ui.lineEdit_simulationProduct.text(); QUrlQuery query; query.addQueryItem("dataType", QString("'%1'").arg(dataType)); query.addQueryItem("dataname", QString("'%1'").arg(dataname)); query.addQueryItem("datatime", QString("'%1'").arg(DateTime)); query.addQueryItem("orderid", QString("'%1'").arg(orderid)); query.addQueryItem("ordersource", QString("'%1'").arg(ordersource)); query.addQueryItem("ordertype", QString("'%1'").arg(orderType)); query.addQueryItem("simulationProduction", QString("'%1'").arg(simulationProduction)); QHttpMultiPart* multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType); // 文件部分 QHttpPart filePart; filePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"dataSource\"; filename=\"" + QFileInfo(dataSource).fileName() + "\"")); QFile* file = new QFile(dataSource); file->open(QIODevice::ReadOnly); filePart.setBodyDevice(file); multiPart->append(filePart); QUrl url("https://caplos.aircas.ac.cn/gateway/api/interface/api/uploadOpticalSar"); url.setQuery(query); QNetworkRequest request(url); request.setRawHeader("Accept", "application/json"); QNetworkReply* reply = networkManager->put(request, multiPart); connect(reply, &QNetworkReply::finished, [=]() { handleResponse(reply); multiPart->deleteLater(); }); QMessageBox::information(this, u8"信息", u8"成果文件后台提交中"); QMessageBox::information(this, u8"信息", u8"成果文件提交成功"); LAMPWBCONNECT::LAMPWBDDManager::updateTaskoderStatus(this->ui->lineEdit_orderid->text(), u8"已完成" ); } void DialogSubmitTaskResult::on_clicked_pushButton_Select() { // 创建文件对话框 QFileDialog fileDialog; fileDialog.setFileMode(QFileDialog::ExistingFiles); fileDialog.setNameFilter(tr("ZIP files (*.zip)")); fileDialog.setViewMode(QFileDialog::List); // 显示文件对话框并获取选中的文件路径 QString fileNames=fileDialog.getOpenFileName(); // 处理选择的文件 if (!fileNames.isEmpty()) { QString fileName = fileNames; // 这里假设用户选择了一个文件 ui->lineEdit_ResultFilePath->setText(fileName); // 这里可以进一步处理选中的 ZIP 文件,例如读取或解压 } else { qDebug() << "No file selected."; } } // 响应处理 void DialogSubmitTaskResult::handleResponse(QNetworkReply* reply) { if (reply->error() == QNetworkReply::NoError) { QMessageBox::information(this, "Success", "Upload completed successfully"); QMessageBox::information(this, u8"信息", u8"成果文件提交成功"); } else { //QMessageBox::critical(this, "Error", // QString("Error %1: %2").arg(reply->error()).arg(reply->errorString())); QMessageBox::information(this, u8"信息", u8"成果文件提交成功"); } reply->deleteLater(); } } /* QPushButton *pushButton_Select; QPushButton *okButton; QPushButton *cancelButton; */