#include "testdataitem.h" #include "id/TaskManager.h" #include "basecommonapi.h" // 定义并初始化静态成员变量 QMap<QString, int> TaskManager::dailyTaskCounts; QDate TaskManager::currentDate; QString TaskManager::KeyDate; QString TaskManager::generateTask(QString Number) { // 初始化当天任务单数量为0 QString TaskNum=Number; currentDate = QDate::currentDate(); KeyDate = currentDate.toString("yyyyMMdd"); if(!dailyTaskCounts.contains(KeyDate)) { int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 if(result!=KeyDate){ dailyTaskCounts[KeyDate] = 1; }else { QChar lastChar = TaskNum.at(TaskNum.length() - 1); if (lastChar.isDigit()) { int Count=lastChar.digitValue(); dailyTaskCounts[KeyDate] = Count+1; } } } QString dateStr = KeyDate; // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); return taskId; } int TaskManager::getTaskCountForToday() { // 返回当天的任务单数量 return dailyTaskCounts.value(KeyDate, 0); } bool TaskManager::AddCurrenTaskCount() { // 增加当天任务单数量 try { dailyTaskCounts[KeyDate]++; return true; } catch(const std::exception &e) { return false; } }