|
@@ -23,7 +23,7 @@ BlastProjectPage::BlastProjectPage(QWidget *parent)
|
|
pageSize = 10;
|
|
pageSize = 10;
|
|
currentPage = 1;
|
|
currentPage = 1;
|
|
|
|
|
|
- dialog = new ProjectDialog(this);
|
|
|
|
|
|
+ m_dialog = new ProjectDialog(this);
|
|
QJsonArray pcs = backendAPIManager::getHAddresses();
|
|
QJsonArray pcs = backendAPIManager::getHAddresses();
|
|
addressOptions(pcs);
|
|
addressOptions(pcs);
|
|
|
|
|
|
@@ -36,19 +36,20 @@ BlastProjectPage::BlastProjectPage(QWidget *parent)
|
|
}
|
|
}
|
|
initUserAndDialogOptions(allUsers);
|
|
initUserAndDialogOptions(allUsers);
|
|
|
|
|
|
- connect(dialog, &ProjectDialog::createProject, this, &BlastProjectPage::createProject);
|
|
|
|
- connect(dialog, &ProjectDialog::saveProject, this, &BlastProjectPage::updateProject);
|
|
|
|
|
|
+ connect(m_dialog, &ProjectDialog::createProject, this, &BlastProjectPage::createProject);
|
|
|
|
+ connect(m_dialog, &ProjectDialog::saveProject, this, &BlastProjectPage::updateProject);
|
|
|
|
|
|
- RefreshData();
|
|
|
|
|
|
+ refreshData();
|
|
}
|
|
}
|
|
|
|
|
|
-void BlastProjectPage::RefreshData() {
|
|
|
|
|
|
+void BlastProjectPage::refreshData() {
|
|
loadDataFromSource(currentPage, pageSize);
|
|
loadDataFromSource(currentPage, pageSize);
|
|
publishAllPendingBlastProjects();
|
|
publishAllPendingBlastProjects();
|
|
}
|
|
}
|
|
|
|
|
|
void BlastProjectPage::loadDataFromSource(int currentPage, int pageSize) {
|
|
void BlastProjectPage::loadDataFromSource(int currentPage, int pageSize) {
|
|
PaginatedHProjectResult result = dao.getAllHProjects(currentPage, pageSize);
|
|
PaginatedHProjectResult result = dao.getAllHProjects(currentPage, pageSize);
|
|
|
|
+ qDebug() << "loadDataFromSource: currentPage=" << currentPage << ", pageSize=" << pageSize << result.totalCount;
|
|
|
|
|
|
QList<QSharedPointer<HProject>> projectList = result.projects;
|
|
QList<QSharedPointer<HProject>> projectList = result.projects;
|
|
|
|
|
|
@@ -113,7 +114,6 @@ void BlastProjectPage::loadDataFromSource(int currentPage, int pageSize) {
|
|
}
|
|
}
|
|
} else if (QStringList({"safetyInspectorIdentity", "operatorIdentity", "blasterIdentity"})
|
|
} else if (QStringList({"safetyInspectorIdentity", "operatorIdentity", "blasterIdentity"})
|
|
.contains(prop)) {
|
|
.contains(prop)) {
|
|
- qDebug() << "prop" << prop << value.toString().split(",");
|
|
|
|
item = new QStandardItem(getUserNameByIds(value.toString().split(",")));
|
|
item = new QStandardItem(getUserNameByIds(value.toString().split(",")));
|
|
} else {
|
|
} else {
|
|
item = new QStandardItem(value.toString());
|
|
item = new QStandardItem(value.toString());
|
|
@@ -186,30 +186,16 @@ void BlastProjectPage::initUserAndDialogOptions(const QJsonArray &dataArray) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- dialog->initComboBoxBlaster(blasterDeployerArray);
|
|
|
|
- dialog->initComboBoxOperator(operatorArray);
|
|
|
|
- dialog->initComboBoxSafetyInspectors(safeGuardArray);
|
|
|
|
|
|
+ m_dialog->initComboBoxBlaster(blasterDeployerArray);
|
|
|
|
+ m_dialog->initComboBoxOperator(operatorArray);
|
|
|
|
+ m_dialog->initComboBoxSafetyInspectors(safeGuardArray);
|
|
}
|
|
}
|
|
|
|
|
|
void BlastProjectPage::addressOptions(const QJsonArray &dataArrayAddress) {
|
|
void BlastProjectPage::addressOptions(const QJsonArray &dataArrayAddress) {
|
|
- dialog->SetL1AddressOptions(dataArrayAddress);
|
|
|
|
|
|
+ m_dialog->SetL1AddressOptions(dataArrayAddress);
|
|
// dialog->setChildOptions(dataArrayAddress);
|
|
// dialog->setChildOptions(dataArrayAddress);
|
|
}
|
|
}
|
|
|
|
|
|
-void BlastProjectPage::extractNames(const QJsonArray &array, QStringList &names) {
|
|
|
|
- for (const auto &item : array) {
|
|
|
|
- if (item.isObject()) {
|
|
|
|
- QJsonObject obj = item.toObject();
|
|
|
|
- if (obj.contains("name")) {
|
|
|
|
- names.append(obj["name"].toString());
|
|
|
|
- }
|
|
|
|
- if (obj.contains("children") && obj["children"].isArray()) {
|
|
|
|
- extractNames(obj["children"].toArray(), names);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
void BlastProjectPage::parseJsonString(const QJsonDocument &jsonDoc) {
|
|
void BlastProjectPage::parseJsonString(const QJsonDocument &jsonDoc) {
|
|
QJsonObject jsonObj = jsonDoc.object();
|
|
QJsonObject jsonObj = jsonDoc.object();
|
|
QJsonObject dataObj = jsonObj["data"].toObject();
|
|
QJsonObject dataObj = jsonObj["data"].toObject();
|
|
@@ -217,16 +203,15 @@ void BlastProjectPage::parseJsonString(const QJsonDocument &jsonDoc) {
|
|
}
|
|
}
|
|
|
|
|
|
void BlastProjectPage::on_pushButton_clicked() {
|
|
void BlastProjectPage::on_pushButton_clicked() {
|
|
- dialog->setModal(false);
|
|
|
|
- dialog->clearFormData();
|
|
|
|
- dialog->setOperationType(0);
|
|
|
|
- int ref = dialog->exec();
|
|
|
|
|
|
+ m_dialog->setModal(false);
|
|
|
|
+ m_dialog->clearFormData();
|
|
|
|
+ m_dialog->setOperationType(0);
|
|
|
|
+ int ref = m_dialog->exec();
|
|
if (ref == QDialog::Accepted) {};
|
|
if (ref == QDialog::Accepted) {};
|
|
}
|
|
}
|
|
|
|
|
|
void BlastProjectPage::createProject(const QMap<QString, QString> &data) {
|
|
void BlastProjectPage::createProject(const QMap<QString, QString> &data) {
|
|
HProject project;
|
|
HProject project;
|
|
- qDebug() << "xxx: " << data.value("safetyInspectorIdentity");
|
|
|
|
project.setName(data.value("name"));
|
|
project.setName(data.value("name"));
|
|
project.setDetSum(data.value("detNum"));
|
|
project.setDetSum(data.value("detNum"));
|
|
project.setAddressUuid(data.value("addressUuid"));
|
|
project.setAddressUuid(data.value("addressUuid"));
|
|
@@ -243,19 +228,36 @@ void BlastProjectPage::createProject(const QMap<QString, QString> &data) {
|
|
project.setUuid(QUuid::createUuid().toString(QUuid::WithoutBraces).remove(QRegularExpression("-")));
|
|
project.setUuid(QUuid::createUuid().toString(QUuid::WithoutBraces).remove(QRegularExpression("-")));
|
|
project.setCreatedAt(QDateTime::currentDateTime());
|
|
project.setCreatedAt(QDateTime::currentDateTime());
|
|
if (dao.addHProject(project)) {
|
|
if (dao.addHProject(project)) {
|
|
- RefreshData();
|
|
|
|
|
|
+ refreshData();
|
|
publishAllPendingBlastProjects();
|
|
publishAllPendingBlastProjects();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+QJsonArray BlastProjectPage::getUserInfoByIds(const QStringList &userIds) {
|
|
|
|
+ QJsonArray userInfoArray;
|
|
|
|
+ for (const QString &userId : userIds) {
|
|
|
|
+ if (m_userNameById.contains(userId)) {
|
|
|
|
+ QJsonObject userInfo;
|
|
|
|
+ userInfo["name"] = m_userNameById[userId];
|
|
|
|
+ userInfo["identity"] = userId;
|
|
|
|
+ userInfoArray.append(userInfo);
|
|
|
|
+ } else {
|
|
|
|
+ QMessageBox::critical(this, "错误", QString("用户(身份证: %1)不存在").arg(userId));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return userInfoArray;
|
|
|
|
+}
|
|
|
|
+
|
|
void BlastProjectPage::publishAllPendingBlastProjects() {
|
|
void BlastProjectPage::publishAllPendingBlastProjects() {
|
|
QJsonArray jsonArray;
|
|
QJsonArray jsonArray;
|
|
QList<QSharedPointer<HProject>> projectsReg = dao.getAllHProjectsReg();
|
|
QList<QSharedPointer<HProject>> projectsReg = dao.getAllHProjectsReg();
|
|
for (const auto &projectPtr : projectsReg) {
|
|
for (const auto &projectPtr : projectsReg) {
|
|
if (projectPtr) {
|
|
if (projectPtr) {
|
|
- QByteArray projectJson = projectPtr->ProjectToJson(*projectPtr);
|
|
|
|
- QJsonDocument doc = QJsonDocument::fromJson(projectJson);
|
|
|
|
- jsonArray.append(doc.object());
|
|
|
|
|
|
+ QJsonObject projectJson = projectPtr->ProjectToJson(*projectPtr);
|
|
|
|
+ projectJson["underground_blasters"] = getUserInfoByIds(projectPtr->getBlasterIdentity().split(","));
|
|
|
|
+ projectJson["ground_blasters"] = getUserInfoByIds(projectPtr->getOperatorIdentity().split(","));
|
|
|
|
+ projectJson["safety_inspectors"] = getUserInfoByIds(projectPtr->getSafetyInspectorIdentity().split(","));
|
|
|
|
+ jsonArray.append(projectJson);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -266,10 +268,10 @@ void BlastProjectPage::publishAllPendingBlastProjects() {
|
|
};
|
|
};
|
|
|
|
|
|
void BlastProjectPage::updateButtonClicked(const HProject &project) {
|
|
void BlastProjectPage::updateButtonClicked(const HProject &project) {
|
|
- dialog->setModal(false);
|
|
|
|
- dialog->setOperationType(1);
|
|
|
|
- dialog->setFormData(project);
|
|
|
|
- int ref = dialog->exec();
|
|
|
|
|
|
+ m_dialog->setModal(false);
|
|
|
|
+ m_dialog->setOperationType(1);
|
|
|
|
+ m_dialog->setFormData(project);
|
|
|
|
+ int ref = m_dialog->exec();
|
|
if (ref == QDialog::Accepted) {};
|
|
if (ref == QDialog::Accepted) {};
|
|
}
|
|
}
|
|
|
|
|
|
@@ -283,13 +285,13 @@ void BlastProjectPage::updateProject(const QMap<QString, QString> &data) {
|
|
project.setOperatorIdentity(data.value("operatorIdentity"));
|
|
project.setOperatorIdentity(data.value("operatorIdentity"));
|
|
project.setUpdatedAt(QDateTime::currentDateTime());
|
|
project.setUpdatedAt(QDateTime::currentDateTime());
|
|
if (dao.updateHProject(project)) {
|
|
if (dao.updateHProject(project)) {
|
|
- RefreshData();
|
|
|
|
|
|
+ refreshData();
|
|
publishAllPendingBlastProjects();
|
|
publishAllPendingBlastProjects();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
void BlastProjectPage::deleteButtonClicked(const HProject &project) {
|
|
void BlastProjectPage::deleteButtonClicked(const HProject &project) {
|
|
if (dao.deleteHProject(project)) {
|
|
if (dao.deleteHProject(project)) {
|
|
- RefreshData();
|
|
|
|
|
|
+ refreshData();
|
|
publishAllPendingBlastProjects();
|
|
publishAllPendingBlastProjects();
|
|
}
|
|
}
|
|
}
|
|
}
|