LAMPWBDD/DialogSubmitTaskResult.cpp

145 lines
4.3 KiB
C++
Raw Normal View History

2025-03-18 15:16:16 +00:00
#include "DialogSubmitTaskResult.h"
#include "ui_DialogSubmitTaskResult.h"
#include <QFileDialog>
#include <QDebug>
#include <QFile>
#include <QMessageBox>
2025-04-15 11:06:31 +00:00
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QFormLayout>
#include <QGroupBox>
#include <QLabel>
#include <QFileDialog>
#include <QMessageBox>
#include <QHttpMultiPart>
#include <QUrlQuery>
#include <QLineEdit>
#include <QDateTimeEdit>
#include <QPushButton>
#include <QNetworkReply>
2025-03-18 15:16:16 +00:00
#include "TaskOrder.h"
namespace WBFZTASK {
DialogSubmitTaskResult::DialogSubmitTaskResult(QWidget* parent)
: QDialog(parent)
,ui(new Ui::DialogSubmitTaskResultClass)
2025-04-15 11:06:31 +00:00
,networkManager(new QNetworkAccessManager(this))
2025-03-18 15:16:16 +00:00
{
ui->setupUi(this);
QObject::connect(ui->pushButton_Select, SIGNAL(clicked()), this, SLOT(on_clicked_pushButton_Select()));
2025-04-15 11:06:31 +00:00
this->ui->dateTimeEditDateTIme->setDateTime(QDateTime::currentDateTime());
2025-03-18 15:16:16 +00:00
}
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());
2025-04-15 11:06:31 +00:00
this->ui->lineEdit_orderid->setText(task->getOrderId());
2025-03-18 15:16:16 +00:00
}
void DialogSubmitTaskResult::accept()
{
2025-04-15 11:06:31 +00:00
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
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);
// <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
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();
});
2025-03-18 15:16:16 +00:00
QMessageBox::information(this, u8"<EFBFBD><EFBFBD>Ϣ", u8"<EFBFBD>ɹ<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>");
}
void DialogSubmitTaskResult::on_clicked_pushButton_Select() {
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ի<EFBFBD><D4BB><EFBFBD>
QFileDialog fileDialog;
fileDialog.setFileMode(QFileDialog::ExistingFiles);
fileDialog.setNameFilter(tr("ZIP files (*.zip)"));
fileDialog.setViewMode(QFileDialog::List);
// <20><>ʾ<EFBFBD>ļ<EFBFBD><C4BC>Ի<EFBFBD><D4BB>򲢻<EFBFBD>ȡѡ<C8A1>е<EFBFBD><D0B5>ļ<EFBFBD>·<EFBFBD><C2B7>
QString fileNames=fileDialog.getOpenFileName();
// <20><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
if (!fileNames.isEmpty())
{
QString fileName = fileNames; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD>
ui->lineEdit_ResultFilePath->setText(fileName);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>е<EFBFBD> ZIP <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ѹ
}
else
{
qDebug() << "No file selected.";
}
}
2025-04-15 11:06:31 +00:00
// <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
void DialogSubmitTaskResult::handleResponse(QNetworkReply* reply)
{
if (reply->error() == QNetworkReply::NoError) {
QMessageBox::information(this, "Success", "Upload completed successfully");
}
else {
QMessageBox::critical(this, "Error",
QString("Error %1: %2").arg(reply->error()).arg(reply->errorString()));
}
reply->deleteLater();
}
2025-03-18 15:16:16 +00:00
}
/*
QPushButton *pushButton_Select;
QPushButton *okButton;
QPushButton *cancelButton;
*/