From a7896c8a95b2c5d6d7a2c58070b1355db5e7402b Mon Sep 17 00:00:00 2001 From: zhaohe Date: Thu, 16 May 2024 10:40:36 +0800 Subject: [PATCH] update --- service/data_export_service.cpp | 16 +++++++++++++--- service/disinfection_logs_manager.cpp | 4 ++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/service/data_export_service.cpp b/service/data_export_service.cpp index 5ce8a95..60b862a 100644 --- a/service/data_export_service.cpp +++ b/service/data_export_service.cpp @@ -57,6 +57,8 @@ static string getTime() { if (!x) { \ return err::ksys_copy_file_error; \ } + +#define EXPORT_PATH "/mnt/exportdata/Transmit/" err::error_t DataExportService::exportDisinfectionData(vector files) { lock_guard lock(lock_); @@ -74,11 +76,18 @@ err::error_t DataExportService::exportDisinfectionData(vector files) { IF_ERROR_RETURN(dosystem(fmt::format("mount {} /mnt/exportdata", diskpath))); // 拷贝文件 // IF_ERROR_RETURN(dosystem(fmt::format("cp -rf /app/disinfection_logs /mnt/exportdata/disinfection_logs{}", getTime()))); - IF_ERROR_RETURN(dosystem(fmt::format("mkdir -p /mnt/exportdata/disinfection_logs/"))); + IF_ERROR_RETURN(dosystem(fmt::format("mkdir -p {}", EXPORT_PATH))); for (auto& file : files) { logger->info("copy file: {}", file); - IF_ERROR_RETURN(dosystem(fmt::format("cp -rf /app/disinfection_logs/{} /mnt/exportdata/disinfection_logs/", file))); + // 拷贝文件到TMP目录 + IF_ERROR_RETURN(dosystem(fmt::format("cp -rf /app/disinfection_logs/{}.csv /tmp/{}.csv", file, file))); + // 编码转换 + IF_ERROR_RETURN(dosystem(fmt::format("iconv -f UTF-8 -tgb18030 /tmp/{}.csv -o /tmp/{}.csv.1", file, file))); + // 移动文件 + IF_ERROR_RETURN(dosystem(fmt::format("mv /tmp/{}.csv.1 /tmp/{}.csv", file, file))); + // 拷贝文件到U盘 + IF_ERROR_RETURN(dosystem(fmt::format("cp -rf /tmp/{}.csv {}", file, EXPORT_PATH))); } // 卸载目录 @@ -130,7 +139,8 @@ err::error_t DataExportService::exportAuditData() { // 挂载目录 IF_ERROR_RETURN(dosystem(fmt::format("mount {} /mnt/exportdata", diskpath))); // 拷贝文件 - IF_ERROR_RETURN(dosystem(fmt::format("cp -rf {} /mnt/exportdata", filename))); + IF_ERROR_RETURN(dosystem(fmt::format("mkdir -p /mnt/exportdata/Transmit/"))); + IF_ERROR_RETURN(dosystem(fmt::format("cp -rf {} /mnt/exportdata/Transmit/", filename))); // 卸载目录 IF_ERROR_RETURN(dosystem(fmt::format("umount /mnt/exportdata"))); // 删除目录 diff --git a/service/disinfection_logs_manager.cpp b/service/disinfection_logs_manager.cpp index 9a08f36..166f213 100644 --- a/service/disinfection_logs_manager.cpp +++ b/service/disinfection_logs_manager.cpp @@ -108,6 +108,10 @@ void DisinfectionLogsManager::list_dir_csvfile(string path, vector& sv) sort(files.begin(), files.end(), [](string a, string b) { return a > b; }); + for (auto& file : files) { + sv.push_back(file); + } + return; }