packinfomanger.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. // 管理本地码单(箱单) 的类
  9. // 管理本地批号的类
  10. struct PackSaveInfo
  11. {
  12. QSharedPointer<PackInfo> packInfo;
  13. QString absPath;
  14. inline bool isSync() const{
  15. return !absPath.contains("_sync");
  16. }
  17. };
  18. class PackInfoManger : public QObject
  19. {
  20. Q_OBJECT
  21. public:
  22. explicit PackInfoManger(QObject *parent = nullptr);
  23. QList<PackSaveInfo> getPackInfo(const QDate & tm,bool noSync = false);
  24. QList<PackSaveInfo> getPackInfoSync(const QDate & tm);
  25. QDate lastSyncDate();
  26. QList<QSharedPointer<ProjectInfo>> getLocalProjectInfo();
  27. signals:
  28. public slots:
  29. QString savePackInfo(const QSharedPointer<PackInfo> & info);
  30. QString setPackInfoSync(const QString & code, qint64 time = -1,bool autoSync = false);
  31. bool syncLocalProjectInfo(QList<QSharedPointer<ProjectInfo>> & projects);
  32. private:
  33. QDir getDir(const QDate & tm,bool create = false);
  34. private:
  35. QDir _dataDir;
  36. };
  37. #endif // PACKINFOMANGER_H