globalinfo.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. #ifndef GLOBALINFO_H
  2. #define GLOBALINFO_H
  3. #include <QObject>
  4. #include "configinfo.h"
  5. #include "struct_/projectinfo.h"
  6. #include <QMap>
  7. #include "handle/projectinfomanger.h"
  8. #include "handle/packinfomanger.h"
  9. #include "handle/printerthreadhandle.h"
  10. #include "handle/serialthreadhandle.h"
  11. #include "handle/remotepackconfig.h"
  12. #include "handle/projectinfomanger.h"
  13. #include "handle/autosyncpackinfo.h"
  14. #include "struct_/modelinfo.h"
  15. class GlobalInfo : public QObject
  16. {
  17. Q_OBJECT
  18. private:
  19. explicit GlobalInfo(QObject *parent = nullptr);
  20. public:
  21. static GlobalInfo * this_();
  22. // 所有配置都从这儿加载和写入,不允许在新建ConfigInfo
  23. inline ConfigInfo * config() {return &_config;}
  24. inline const UserInfo & user() const {return _users;}
  25. inline QMap<QString,QSharedPointer<ProjectInfo>> project() {return _project;}
  26. inline QList<QSharedPointer<ProjectInfo>> serverInfo() {return _serverInfo;}
  27. inline QList<QSharedPointer<ProjectInfo>> cacheInfo() {return _cacheInfo;}
  28. QList<QSharedPointer<ProjectInfo>> searchProject(const QString & batchno , const QString & specs ="");
  29. bool addCacheInfo(QSharedPointer<ProjectInfo> & info);
  30. inline PackInfoManger * packInfoManger() {return packmanger;}
  31. inline ProjectInfoManger * projectInfoManger() {return _projectmanger;}
  32. QString packNum();
  33. double currentWidght;
  34. inline bool isNoLine() {return _isNoLine;}
  35. inline PackInfoManger * packLocalManger(){return packmanger;}
  36. inline QSharedPointer<ProjectInfo> project(const QString & name){return _project.value(name);}
  37. //打包配置
  38. inline const DaBaoConfig & dbConfig() const {return _dbConfig;}
  39. // 等级配置
  40. inline const QList<DengJiConfigItem> & dengJiList() {return _dengJiList;}
  41. //仓库配置
  42. inline const QList<WarehouseConfig> & wareList() {return _wareList;}
  43. //箱单模板
  44. inline const QList<QSharedPointer<BoxModel>> & BoxModelList() {return boxModelList;}
  45. //码单模板
  46. inline const QList<QSharedPointer<PackModel>> & PackModelList() {return packModelList;}
  47. void printerBox(QSharedPointer<BoxInfo> info);
  48. void printerBox1(QSharedPointer<BoxInfo> info);
  49. void printerBoxModel(QSharedPointer<BoxInfo> info,int ModelIndex);
  50. void printerPack(QSharedPointer<PackInfo> info);
  51. void printerPackModel(QSharedPointer<PackInfo> info,int ModelIndex);
  52. void setIslogin(bool login){ islogin = login;}
  53. // 同步调用
  54. void doSync(QDate & tm);
  55. //推出帐号别忘调用
  56. void logOut();
  57. signals:
  58. void dbConfigUpdated();
  59. void dengJiUped();
  60. void doInited();
  61. void selectproject();
  62. void logOuted();
  63. void wareUped();
  64. void boxModelUped();
  65. void packModelUpde();
  66. public slots:
  67. void start(UserInfo & user,bool online);
  68. void selectProject(bool online);
  69. void selectBoxModel();
  70. void selectPackModel();
  71. private slots:
  72. void syncProject(ProjectInfoManger * manger, bool inited);
  73. void configUpdate(const DaBaoConfig & config);
  74. void dengJIConfigUp(const QList<DengJiConfigItem> & dengJis);
  75. void wareConfigUp(const QList<WarehouseConfig> ware);
  76. private:
  77. QMap<QString,QSharedPointer<ProjectInfo>> _project;
  78. QList<QSharedPointer<ProjectInfo>> _serverInfo;
  79. QList<QSharedPointer<ProjectInfo>> _cacheInfo;
  80. friend class ProjectInfoManger;
  81. DaBaoConfig _dbConfig;
  82. QList<DengJiConfigItem> _dengJiList;
  83. QList<WarehouseConfig> _wareList;
  84. QList<QSharedPointer<BoxModel>> boxModelList;
  85. QList<QSharedPointer<PackModel>> packModelList;
  86. void initInfo();
  87. private:
  88. ConfigInfo _config;
  89. QString pack_num;
  90. UserInfo _users;
  91. bool _isNoLine;
  92. bool islogin = false;
  93. private:
  94. PackInfoManger * packmanger;
  95. PrinterThreadHandle * _printer;
  96. SerialThreadHandle * _serial;
  97. RemotePackConfig * _remoteConfig;
  98. ProjectInfoManger * _projectmanger;
  99. AutoSyncPackInfo * _syncPack;
  100. };
  101. #endif // GLOBALINFO_H