Newer
Older
AutomaticVerification / softwareDirectory / AutoVerScheme / TaskManager.cpp
#include "testdataitem.h"
#include "id/TaskManager.h"
#include "basecommonapi.h"

// 定义并初始化静态成员变量 委托单编号
QMap<QString, int> TaskManager::dailyTaskCounts;
QDate TaskManager::currentDate;
QString TaskManager::KeyDate;

//检定结果保存
QMap<QString, int> TaskManager::saveResultdatanoList;
QString TaskManager::ResultKeyDate;
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("zdrwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0'));

    return taskId;
}
QString TaskManager::getsaveResultdatano()
{

    //获取结果保存ID
    ResultKeyDate = QDate::currentDate().toString("yyyyMMdd");
    //判断是否包含 如包含直接返回结果
    if(!saveResultdatanoList.contains(ResultKeyDate))
    {

        //找寻数据库上次的记录
      QString datano=BaseCommonApi::getNewResultData().data_no;
      if(datano!=""){
            int startIndex = datano.lastIndexOf("j")+1; // 找到 "YYYY" 的起始位置
            int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符
            //截截取
            QString result = datano.mid(startIndex, 8);
            if(result!=ResultKeyDate){
                 saveResultdatanoList[ResultKeyDate] = 1;
            }else
            {
                //获取最后一位数 并加1
                QChar lastChar = datano.at(datano.length() - 1);
                 if (lastChar.isDigit()) {

                      int Count=lastChar.digitValue();
                      saveResultdatanoList[ResultKeyDate] = Count+1;
                  }

            }

        }else{saveResultdatanoList[ResultKeyDate] = 1;};

    }

    QString dateStr =  ResultKeyDate;
    // 生成结果保存编号,这里假设编号格式是 "jdsjYYYYMMDDXXXX",XXXX是顺序号  字段4  10进制 不足时0填充
    QString taskId = QString("zdjdsj%1%2").arg(dateStr).arg(saveResultdatanoList[ResultKeyDate], 4, 10, QChar('0'));
    //返回结果
    return  taskId;
}

bool TaskManager::AddCurrenTaskCount()
{
    // 增加当天任务单数量
    try {
        dailyTaskCounts[KeyDate]++;
      return  true;
    } catch(const std::exception &e) {
        return  false;
    }
}
bool TaskManager::AddResultDataNoCount()
{
    // 增加当天任务单数量
    try {
        saveResultdatanoList[ResultKeyDate]++;
      return  true;
    } catch(const std::exception &e) {
        return  false;
    }
}