From 452e31fbe5404d2ec8eb4c5b2e02138d837c146c Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期二, 10 六月 2025 14:44:18 +0800
Subject: [PATCH] 1.Panel Data Report数据的获取,
---
SourceCode/Bond/Servo/TransferManager.cpp | 90 ++++++++++++++++++++++++++------------------
1 files changed, 53 insertions(+), 37 deletions(-)
diff --git a/SourceCode/Bond/Servo/TransferManager.cpp b/SourceCode/Bond/Servo/TransferManager.cpp
index bfcf457..6079a79 100644
--- a/SourceCode/Bond/Servo/TransferManager.cpp
+++ b/SourceCode/Bond/Servo/TransferManager.cpp
@@ -135,21 +135,37 @@
// 插入测试搬运记录
void TransferManager::insertTestTransferRecord() {
- TransferData data;
- data.strClassID = "Task-20240529-001";
- data.strStatus = "Running";
- data.strCreateTime = "2024-05-29 10:30:00";
- data.strPickTime = "2024-05-29 10:31:00";
- data.strPlaceTime = "2024-05-29 10:32:00";
- data.strEndTime = "2024-05-29 10:33:00";
- data.strDescription = "搬运动作:从 Port1 取片 → Port2 放片";
+ if (nullptr != m_pDB) {
+ int nCount = 10000;
+ for (int i = 0; i < nCount; ++i) {
+ TransferData data;
+ data.strClassID = "T-" + std::to_string(1000 + i);
+ data.strStatus = statusToString(static_cast<TransferStatus>(i % 5));
- int nRecordId = -1;
- if (TransferManager::getInstance().addTransferRecord(data, nRecordId)) {
- std::cout << "插入成功,记录 ID = " << nRecordId << std::endl;
- }
- else {
- std::cerr << "插入失败!" << std::endl;
+ std::time_t now = std::time(nullptr) + i * 60; // 每条记录间隔1分钟
+
+ std::tm tmCreate = {}, tmPick = {}, tmPlace = {}, tmEnd = {};
+ localtime_s(&tmCreate, &now);
+ localtime_s(&tmPick, &(now += 60));
+ localtime_s(&tmPlace, &(now += 60));
+ localtime_s(&tmEnd, &(now += 60));
+
+ char szTime[64];
+ strftime(szTime, sizeof(szTime), "%Y-%m-%d %H:%M:%S", &tmCreate);
+ data.strCreateTime = szTime;
+ strftime(szTime, sizeof(szTime), "%Y-%m-%d %H:%M:%S", &tmPick);
+ data.strPickTime = szTime;
+ strftime(szTime, sizeof(szTime), "%Y-%m-%d %H:%M:%S", &tmPlace);
+ data.strPlaceTime = szTime;
+ strftime(szTime, sizeof(szTime), "%Y-%m-%d %H:%M:%S", &tmEnd);
+ data.strEndTime = szTime;
+
+ data.strDescription = "Mock transfer task " + std::to_string(i);
+ int nRecordId = 0;
+ addTransferRecord(data, nRecordId);
+ }
+
+ std::cout << "[Mock] 成功插入 " << nCount << " 条测试搬运记录。" << std::endl;
}
}
@@ -221,13 +237,13 @@
TransferData data;
data.nRecordId = std::stoi(row[0]);
- data.strClassID = row[1];
- data.strStatus = row[2];
+ data.strClassID = utf8ToAnsi(row[1]);
+ data.strStatus = utf8ToAnsi(row[2]);
data.strCreateTime = row[3];
data.strPickTime = row[4];
data.strPlaceTime = row[5];
data.strEndTime = row[6];
- data.strDescription = row[7];
+ data.strDescription = utf8ToAnsi(row[7]);
records.push_back(data);
}
@@ -247,13 +263,13 @@
auto results = m_pDB->fetchResults(oss.str());
if (!results.empty() && results[0].size() == 8) {
data.nRecordId = std::stoi(results[0][0]);
- data.strClassID = results[0][1];
- data.strStatus = results[0][2];
+ data.strClassID = utf8ToAnsi(results[0][1]);
+ data.strStatus = utf8ToAnsi(results[0][2]);
data.strCreateTime = results[0][3];
data.strPickTime = results[0][4];
data.strPlaceTime = results[0][5];
data.strEndTime = results[0][6];
- data.strDescription = results[0][7];
+ data.strDescription = utf8ToAnsi(results[0][7]);
}
return data;
}
@@ -278,13 +294,13 @@
if (row.size() != 8) continue;
TransferData data;
data.nRecordId = std::stoi(row[0]);
- data.strClassID = row[1];
- data.strStatus = row[2];
+ data.strClassID = utf8ToAnsi(row[1]);
+ data.strStatus = utf8ToAnsi(row[2]);
data.strCreateTime = row[3];
data.strPickTime = row[4];
data.strPlaceTime = row[5];
data.strEndTime = row[6];
- data.strDescription = row[7];
+ data.strDescription = utf8ToAnsi(row[7]);
records.push_back(data);
}
return records;
@@ -299,7 +315,7 @@
std::ostringstream oss;
oss << "SELECT record_id, class_id, status, create_time, pick_time, place_time, end_time, description "
- << "FROM transfers WHERE status = '" << status << "' "
+ << "FROM transfers WHERE status = '" << ansiToUtf8(status) << "' "
<< "ORDER BY create_time DESC";
auto results = m_pDB->fetchResults(oss.str());
@@ -308,13 +324,13 @@
TransferData data;
data.nRecordId = std::stoi(row[0]);
- data.strClassID = row[1];
- data.strStatus = row[2];
+ data.strClassID = utf8ToAnsi(row[1]);
+ data.strStatus = utf8ToAnsi(row[2]);
data.strCreateTime = row[3];
data.strPickTime = row[4];
data.strPlaceTime = row[5];
data.strEndTime = row[6];
- data.strDescription = row[7];
+ data.strDescription = utf8ToAnsi(row[7]);
records.push_back(data);
}
@@ -348,8 +364,8 @@
// return records;
//}
-// 获取符合条件的记录总数
-int TransferManager::getTotalTransferCount() {
+// 获取记录总数
+int TransferManager::getTotalTransferCountAll() {
if (!m_pDB) {
return 0;
}
@@ -370,7 +386,7 @@
}
// 获取符合条件的记录总数
-int TransferManager::getTotalTransferCount(const TransferData& filter) {
+int TransferManager::getFilteredTransferCount(const TransferData& filter) {
if (!m_pDB) {
return 0;
}
@@ -380,12 +396,12 @@
// 状态筛选(完全匹配)
if (!filter.strStatus.empty()) {
- oss << " AND status = '" << filter.strStatus << "'";
+ oss << " AND status = '" << ansiToUtf8(filter.strStatus) << "'";
}
// 描述关键字模糊匹配
if (!filter.strDescription.empty()) {
- oss << " AND description LIKE '%" << filter.strDescription << "%'";
+ oss << " AND description LIKE '%" << ansiToUtf8(filter.strDescription) << "%'";
}
// 时间范围筛选
@@ -422,10 +438,10 @@
// 条件拼接(与 getTotalTransferCount 保持一致)
if (!filter.strStatus.empty()) {
- oss << " AND status = '" << filter.strStatus << "'";
+ oss << " AND status = '" << ansiToUtf8(filter.strStatus) << "'";
}
if (!filter.strDescription.empty()) {
- oss << " AND description LIKE '%" << filter.strDescription << "%'";
+ oss << " AND description LIKE '%" << ansiToUtf8(filter.strDescription) << "%'";
}
if (!filter.strCreateTime.empty()) {
oss << " AND create_time >= '" << filter.strCreateTime << "'";
@@ -446,13 +462,13 @@
TransferData data;
data.nRecordId = std::stoi(row[0]);
- data.strClassID = row[1];
- data.strStatus = row[2];
+ data.strClassID = utf8ToAnsi(row[1]);
+ data.strStatus = utf8ToAnsi(row[2]);
data.strCreateTime = row[3];
data.strPickTime = row[4];
data.strPlaceTime = row[5];
data.strEndTime = row[6];
- data.strDescription = row[7];
+ data.strDescription = utf8ToAnsi(row[7]);
records.push_back(data);
}
--
Gitblit v1.9.3