packinfomanger.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #ifndef PACKINFOMANGER_H
  2. #define PACKINFOMANGER_H
  3. #include <QObject>
  4. #include <QDir>
  5. #include <QList>
  6. #include <QDate>
  7. #include "struct_/packinfo.h"
  8. #include "struct_/modelinfo.h"
  9. // 管理本地码单(箱单) 的类
  10. // 管理本地批号的类
  11. struct PackSaveInfo
  12. {
  13. QSharedPointer<PackInfo> packInfo;
  14. QString absPath;
  15. inline bool isSync() const{
  16. return !absPath.contains("_sync");
  17. }
  18. };
  19. struct BoxModelSaveInfo
  20. {
  21. QSharedPointer<BoxModel> boxModel;
  22. };
  23. class PackInfoManger : public QObject
  24. {
  25. Q_OBJECT
  26. public:
  27. explicit PackInfoManger(QObject *parent = nullptr);
  28. QList<PackSaveInfo> getPackInfo(const QDate & tm,bool noSync = false);
  29. QList<PackSaveInfo> getPackInfoSync(const QDate & tm);
  30. QDate lastSyncDate();
  31. QList<QSharedPointer<ProjectInfo>> getLocalProjectInfo();
  32. signals:
  33. public slots:
  34. QString savePackInfo(const QSharedPointer<PackInfo> & info);
  35. QString setPackInfoSync(const QString & code, qint64 time = -1,bool autoSync = false);
  36. bool syncLocalProjectInfo(QList<QSharedPointer<ProjectInfo>> & projects);
  37. QList<QSharedPointer<BoxModel>> getBoxModel();
  38. QList<QSharedPointer<PackModel>> getPackModel();
  39. private:
  40. QDir getDir(const QDate & tm,bool create = false);
  41. private:
  42. QDir _dataDir;
  43. };
  44. #endif // PACKINFOMANGER_H