LAMPWBDD/DialogSubmitTaskResult.cpp

158 lines
4.7 KiB
C++

#include "DialogSubmitTaskResult.h"
#include "ui_DialogSubmitTaskResult.h"
#include <QFileDialog>
#include <QDebug>
#include <QFile>
#include <QMessageBox>
#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>
#include "TaskOrder.h"
#include <LAMPWBDDManager.h>
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;
*/