RunMaterialReplaceRefreshListModel.cpp 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #include "RunMaterialReplaceRefreshListModel.h"
  2. #include "InteractiveData.h"
  3. RunMaterialReplaceRefreshListModel::RunMaterialReplaceRefreshListModel(InteractiveTask *task, QMutex *mutex)
  4. :RunAbstract(task, mutex)
  5. {
  6. }
  7. void RunMaterialReplaceRefreshListModel::run()
  8. {
  9. InteractiveData *pSingletonData = SINGLETON_CREATE(InteractiveData)();
  10. qDebug() << "开始将缓存数据写入model(5)";
  11. // 清理缓存
  12. QMetaObject::invokeMethod(&pSingletonData->m_modelMaterialType, "clear", Qt::QueuedConnection);
  13. QMetaObject::invokeMethod(&pSingletonData->m_modelMaterialInfo, "clear", Qt::QueuedConnection);
  14. // 获取传入参数
  15. QString strRequestTypeId = getRequest().toString();
  16. QReadLocker locker(&pSingletonData->m_dataCacheLock);
  17. int numberAll = 0;
  18. for (int i = 0; i < pSingletonData->m_dataCacheExMaterialInfoId.size(); ++i)
  19. {
  20. QString infoId = pSingletonData->m_dataCacheExMaterialInfoId.at(i);
  21. QString typeId = pSingletonData->m_dataCacheExMaterialInfoTypeId[infoId];
  22. if (strRequestTypeId == MATERIALS_TYPE_ALL || strRequestTypeId == typeId)
  23. {
  24. QVariantMap info;
  25. info["materialsId"] = infoId;
  26. info["materialsName"] = pSingletonData->m_dataCacheExMaterialInfoName[infoId];
  27. info["materialsRfid"] = pSingletonData->m_dataCacheExMaterialInfoRfid[infoId];
  28. info["expirationDate"] = pSingletonData->m_dataCacheExMaterialInfoDate[infoId];
  29. info["status"] = pSingletonData->m_dataCacheExMaterialInfoStat[infoId];
  30. info["materialsTypePicture"] = pSingletonData->m_dataCacheMaterialTypePicture
  31. [pSingletonData->m_dataCacheExMaterialInfoTypeId[infoId]];
  32. QMetaObject::invokeMethod(&pSingletonData->m_modelMaterialInfo, "append", Qt::QueuedConnection,
  33. Q_ARG(QVariantMap, info));
  34. }
  35. numberAll++;
  36. }
  37. {
  38. QVariantMap type;
  39. type["materialsTypeId"] = 0;
  40. type["materialsTypeName"] = "全部";
  41. type["materialsTypeIcon"] = "qrc:/png/allsel.png";
  42. type["materialsTypeError"] = numberAll;
  43. type["materialsTypePicture"] = "qrc:/png/allsel.png";
  44. type["materialsTypeSelected"] = ("0" == strRequestTypeId);
  45. QMetaObject::invokeMethod(&pSingletonData->m_modelMaterialType, "append", Qt::QueuedConnection,
  46. Q_ARG(QVariantMap, type));
  47. }
  48. for (int i = 0; i < pSingletonData->m_dataCacheExMaterialTypeId.size(); ++i)
  49. {
  50. QString typeId = pSingletonData->m_dataCacheExMaterialTypeId.at(i);
  51. QVariantMap type;
  52. type["materialsTypeId"] = typeId;
  53. type["materialsTypeName"] = pSingletonData->m_dataCacheMaterialTypeName[typeId];
  54. type["materialsTypeIcon"] = pSingletonData->m_dataCacheMaterialTypeIcon[typeId];
  55. type["materialsTypeError"] = pSingletonData->m_dataCacheExMaterialTypeExNumber[typeId];
  56. type["materialsTypePicture"] = pSingletonData->m_dataCacheMaterialTypePicture[typeId];
  57. type["materialsTypeSelected"] = (typeId == strRequestTypeId);
  58. QMetaObject::invokeMethod(&pSingletonData->m_modelMaterialType, "append", Qt::QueuedConnection,
  59. Q_ARG(QVariantMap, type));
  60. }
  61. }