pro.h 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. #ifndef PRO_H
  2. #define PRO_H
  3. #include <QObject>
  4. #include <QThread>
  5. #include <QHash>
  6. #include <QTimer>
  7. #include "define.h"
  8. #include "httpclient.h"
  9. #include <QNetworkAccessManager>
  10. #include <QImage>
  11. #include <QCursor>
  12. #include <QTimerEvent>
  13. #include <QSet>
  14. #include <QList>
  15. #include <QString>
  16. #include <QJSValue>
  17. #include <QMouseEvent>
  18. #include "Interactive/InteractiveData.h"
  19. #include "Interactive/InteractiveHttp.h"
  20. enum class proWorkStat {
  21. usernameLogin, // 用户登录
  22. cardLogin,
  23. fingerLogin,
  24. faceLogin,
  25. insertfacelogin,
  26. userLogout,
  27. getMaterial,
  28. userMaterial,
  29. userMaterial_copy,
  30. openCabinet,
  31. closeCabinet,
  32. upgradeMaterial,
  33. replaceMaterial, // 更换物资
  34. // exceptionHandle, // 异常处理
  35. materialTypeGet, // 获取物资类型
  36. instructionsGet, // 获取物资使用说明
  37. getMaterialCheckPlan, // 获取物资检查计划
  38. getMaterialCheckForm, // 获取物资检查列表
  39. postSaveForm, // 保存当前任务表
  40. postCheckSign, // 检查签名
  41. postSubmit, // 提交最终结果
  42. getMaterialInfoList, // 获取物资信息列表
  43. sleep,
  44. };
  45. class pro : public QThread
  46. {
  47. Q_OBJECT
  48. public slots:
  49. void slot_feature_login();
  50. void slot_set_thread_stop(void);
  51. void slot_login(int type, QString username, QString password);
  52. void slot_logout(void);
  53. void slot_response_data(quint64 id, QString url, QByteArray res);
  54. void slot_tid_update(quint16 count, QList<QString> tidList);
  55. void slot_lockStat(bool leftStat, bool rightStat);
  56. void slot_takebackstat(bool stat);
  57. void slot_getMaterial(void);
  58. void slot_saveConfig(void);
  59. void slot_fingerWork(bool stat);
  60. void slot_addfinger(bool stat);
  61. void slot_fingerStat(bool stat, QByteArray img, int size);
  62. void slot_instructionsGet();
  63. void slot_pdf_click(QByteArray urlPath);
  64. void slot_getMaterialCheckPlan();
  65. void slot_getMaterialCheckForm(int planId);
  66. void slot_postSaveForm(QString data);
  67. void slot_postCheckSign(int planId, QString path);
  68. void slot_postSubmit();
  69. void slot_getMaterialInfoList();
  70. public:
  71. explicit pro(QObject *parent = nullptr);
  72. Q_INVOKABLE void moveCursorTo(int x, int y);
  73. // 获取物资待归还数量
  74. Q_INVOKABLE void getSelModelNumber(QJSValue);
  75. // 是否异常
  76. Q_INVOKABLE void getError(QJSValue);
  77. // 获取uuid
  78. Q_INVOKABLE QString getUuid();
  79. protected:
  80. bool eventFilter(QObject *obj, QEvent *event) override;
  81. private:
  82. // QByteArray btyMaterialType; // 物资类型
  83. // QByteArray btyInstructions; // 物资使用说明
  84. QNetworkAccessManager *m_pManager;
  85. private:
  86. bool threadstatus = true;
  87. QList<QString> tidArray;
  88. QTimer *timer;
  89. login_s login;
  90. proWorkStat workstat = proWorkStat::sleep;
  91. QString token;
  92. bool addfingerStat = false;
  93. bool addfingerFinish = false;
  94. QByteArray fingerimgbuff;
  95. // int m_iCurrentPlanId = -1; // 当前计划ID
  96. QString m_strPostSaveForm; // 发送post请求,保存检查表
  97. QString m_strPostCheckSign; // 发送post请求, 检查签名
  98. void http_response_usernamelogin(QByteArray data);
  99. void http_response_cardlogin(QByteArray data);
  100. void http_response_fingerLogin(QByteArray data);
  101. void http_response_insertfingerLogin(QByteArray data);
  102. void http_response_logout(QByteArray data);
  103. void http_response_getMaterial(QByteArray data);
  104. void http_response_userMaterial(QByteArray data);
  105. void http_response_updateMaterial(QByteArray data); // 物资更换
  106. void http_response_postMaterialReplaceAuto(QByteArray data); // 物资取还
  107. void http_response_data(quint64 idx, QString url, QByteArray data);
  108. void http_response_materialTypeGet(QByteArray data); // http返回 物资类型
  109. void http_response_instructionsGet(QByteArray data); // http返回 使用说明
  110. void http_response_getMaterialCheckPlan(QByteArray data); // http返回 物资检查计划
  111. void http_response_getMaterialCheckForm(QByteArray data); // http返回 物资检查列表
  112. void http_response_postSaveForm(QByteArray data);
  113. void http_response_postCheckSign(QByteArray data);
  114. void http_response_postSubmit(QByteArray data);
  115. void http_response_getMaterialInfoList(QByteArray data);
  116. void http_request_usernamelogin(void);
  117. void http_request_cardlogin(void);
  118. void http_request_fingerLogin(void);
  119. void http_request_insertfingerLogin(void);
  120. void http_request_userlogout(void);
  121. void http_request_getMaterial(void);
  122. void http_request_userMaterial(void);
  123. void http_request_userMaterial_copy(void);
  124. void http_request_openCabinet(void);
  125. void http_request_closeCabinet(void);
  126. void http_request_updateMaterial(void);
  127. void http_request_replaceMaterial(void);
  128. void http_request_exceptionHandle(void); // 异常处理
  129. void updateTime(void);
  130. // 2025-06-03 wxh
  131. void http_request_materialTypeGet();
  132. void http_request_instructionsGet();
  133. void http_request_getMaterialCheckPlan();
  134. void http_request_getMaterialCheckForm();
  135. void http_request_postSaveForm();
  136. void http_request_postCheckSign();
  137. void http_request_postSubmit();
  138. void http_request_getMaterialInfoList();
  139. // 获取不属于这个柜子,但是rfid检测到的物资信息
  140. void getMaterialElseInfos();
  141. signals:
  142. void signal_notice_return(win_notice_s notice);
  143. void signal_login_return_stat(int stat, QString str);
  144. void signal_login_return_param(QString name, int auth);
  145. void signal_post_request_data(quint64 id, QString postUrl, QByteArray data, QByteArray file, QString token);
  146. void signal_get_request_data(quint64 id, QString postUrl, QByteArray data, QString token);
  147. void signal_updateMaterial(void);
  148. void signal_updateMaterialHand(void); // 手动更换
  149. void signal_updateMaterialAuto(void); // 自动更换
  150. void signal_updateMaterialException(void); // 异常处理
  151. void signal_updatetakebackMaterial(void);
  152. void signal_updatetakebackMaterialHand(void); // 手动更换
  153. void signal_updatetakebackMaterialAuto(void); // 自动更换
  154. void signal_updateExceptionHandle(void); // 异常处理
  155. void signal_updatematerialCheckPlan(void); // 物资检查计划
  156. // void signal_returnExceptionHandle(bool); // 物资错放异常处理结果
  157. void signal_requestertakebackMaterial(void);
  158. void signal_fingerWork(bool stat);
  159. void signal_addFinger_act(bool stat);
  160. void signal_materialTypeGet(QByteArray data); // 转发至qml, 获取物资类型
  161. void signal_instructionsGet(QByteArray data); // 转发至qml, 获取使用说明
  162. void signal_pdf_relay(QString name); // 转发至qml, pdf下载完成
  163. void signal_getMaterialCheckPlan(QByteArray data); // 转发至qml, 获取物资检查计划
  164. void signal_getMaterialCheckForm(QByteArray data); // 转发至qml, 获取物资检查列表
  165. void signal_postSaveForm(QByteArray data); // 转发至qml, post结果
  166. void signal_postCheckSign(QByteArray data); // 转发至qml, post结果
  167. void signal_postSubmit(QByteArray data); // 转发至qml, post结果
  168. void signal_getMaterialInfoList(QByteArray data); // 转发至qml, 获取物资信息列表
  169. void signal_lockStatTakeBack(bool, bool);
  170. void signal_lockStatReplaceHand(bool, bool);
  171. void signal_lockStatReplaceAuto(bool, bool);
  172. void signal_lockStatException(bool, bool);
  173. void signal_lockStatCheckPlan(bool, bool);
  174. void signal_misplaceRefresh();
  175. void signal_backRefresh();
  176. void signal_takeRefresh();
  177. // 全局鼠标点击
  178. void signal_global_mouse_clicked();
  179. protected:
  180. void run() override;
  181. };
  182. #endif // PRO_H