| | |
| | | } |
| | | } |
| | | |
| | | // 任务状态转换成 int 类型 |
| | | int TransferManager::statusToInt(TransferStatus status) { |
| | | return static_cast<int>(status); |
| | | } |
| | | |
| | | // int 类型转换成任务状态 |
| | | TransferStatus TransferManager::intToStatus(int value) { |
| | | switch (value) { |
| | | case 0: return TransferStatus::Ready; |
| | | case 1: return TransferStatus::Running; |
| | | case 2: return TransferStatus::Error; |
| | | case 3: return TransferStatus::Abort; |
| | | case 4: return TransferStatus::Completed; |
| | | default: return TransferStatus::Error; |
| | | } |
| | | } |
| | | |
| | | // 任务状态转换成字符串 |
| | | std::string TransferManager::statusToString(TransferStatus status) { |
| | | switch (status) { |
| | | case TransferStatus::Ready: return "Ready"; |
| | | case TransferStatus::Running: return "Running"; |
| | | case TransferStatus::Error: return "Error"; |
| | | case TransferStatus::Abort: return "Abort"; |
| | | case TransferStatus::Completed: return "Completed"; |
| | | default: return "Unknown"; |
| | | } |
| | | } |
| | | |
| | | // 字符串转换成任务状态 |
| | | TransferStatus TransferManager::stringToStatus(const std::string& str) { |
| | | if (str == "Ready") return TransferStatus::Ready; |
| | | if (str == "Running") return TransferStatus::Running; |
| | | if (str == "Error") return TransferStatus::Error; |
| | | if (str == "Abort") return TransferStatus::Abort; |
| | | if (str == "Completed") return TransferStatus::Completed; |
| | | return TransferStatus::Error; |
| | | } |
| | | |
| | | // 本地编码转为 UTF-8 |
| | | std::string TransferManager::ansiToUtf8(const std::string& ansiStr) { |
| | | // 1. ANSI → UTF-16 |
| | |
| | | } |
| | | |
| | | // 插入测试搬运记录 |
| | | void TransferManager::insertTestTransferRecord() { |
| | | if (nullptr != m_pDB) { |
| | | int nCount = 10000; |
| | | void TransferManager::insertTestTransferRecord(int nCount /*=10000*/) { |
| | | if (nullptr != m_pDB) { |
| | | static const char* STATUS_STR[] = { |
| | | "Unknown", "Ready", "Running", "Picking", "Placing", |
| | | "Restoring", "Error", "Abort", "Completed" |
| | | }; |
| | | |
| | | auto formatTime = [](const std::tm& time) { |
| | | char szTime[64]; |
| | | strftime(szTime, sizeof(szTime), "%Y-%m-%d %H:%M:%S", &time); |
| | | return std::string(szTime); |
| | | }; |
| | | |
| | | std::time_t startTime = std::time(nullptr); |
| | | 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)); |
| | | data.strStatus = STATUS_STR[i % 9]; |
| | | |
| | | std::time_t now = std::time(nullptr) + i * 60; // 每条记录间隔1分钟 |
| | | std::time_t baseTime = startTime + i * 60; |
| | | std::time_t pickTime = baseTime + 60; |
| | | std::time_t placeTime = pickTime + 60; |
| | | std::time_t endTime = placeTime + 60; |
| | | |
| | | 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)); |
| | | localtime_s(&tmCreate, &baseTime); |
| | | localtime_s(&tmPick, &pickTime); |
| | | localtime_s(&tmPlace, &placeTime); |
| | | localtime_s(&tmEnd, &endTime); |
| | | |
| | | 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.strCreateTime = formatTime(tmCreate); |
| | | data.strPickTime = formatTime(tmPick); |
| | | data.strPlaceTime = formatTime(tmPlace); |
| | | data.strEndTime = formatTime(tmEnd); |
| | | data.strDescription = "Mock transfer task " + std::to_string(i); |
| | | |
| | | int nRecordId = 0; |
| | | addTransferRecord(data, nRecordId); |
| | | if (!addTransferRecord(data, nRecordId)) { |
| | | std::cerr << "[Error] 插入第 " << i << " 条记录失败" << std::endl; |
| | | } |
| | | } |
| | | |
| | | std::cout << "[Mock] 成功插入 " << nCount << " 条测试搬运记录。" << std::endl; |