packinfomanger.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. QDate lastSyncDate();
  25. QList<QSharedPointer<ProjectInfo>> getLocalProjectInfo();
  26. signals:
  27. public slots:
  28. QString savePackInfo(const QSharedPointer<PackInfo> & info);
  29. QString setPackInfoSync(const QString & code, qint64 time = -1,bool autoSync = false);
  30. bool syncLocalProjectInfo(QList<QSharedPointer<ProjectInfo>> & projects);
  31. private:
  32. QDir getDir(const QDate & tm,bool create = false);
  33. private:
  34. QDir _dataDir;
  35. };
  36. #endif // PACKINFOMANGER_H