#ifndef PRO_H #define PRO_H #include #include #include #include #include "define.h" #include "httpclient.h" #include #include #include #include #include #include #include #include #include #include "Interactive/InteractiveData.h" #include "Interactive/InteractiveHttp.h" enum class proWorkStat { usernameLogin, // 用户登录 cardLogin, fingerLogin, faceLogin, insertfacelogin, userLogout, getMaterial, userMaterial, userMaterial_copy, openCabinet, closeCabinet, upgradeMaterial, replaceMaterial, // 更换物资 // exceptionHandle, // 异常处理 materialTypeGet, // 获取物资类型 instructionsGet, // 获取物资使用说明 getMaterialCheckPlan, // 获取物资检查计划 getMaterialCheckForm, // 获取物资检查列表 postSaveForm, // 保存当前任务表 postCheckSign, // 检查签名 postSubmit, // 提交最终结果 getMaterialInfoList, // 获取物资信息列表 sleep, }; class pro : public QThread { Q_OBJECT public slots: void slot_feature_login(); void slot_set_thread_stop(void); void slot_login(int type, QString username, QString password); void slot_logout(void); void slot_response_data(quint64 id, QString url, QByteArray res); void slot_tid_update(quint16 count, QList tidList); void slot_lockStat(bool leftStat, bool rightStat); void slot_takebackstat(bool stat); void slot_getMaterial(void); void slot_saveConfig(void); void slot_fingerWork(bool stat); void slot_addfinger(bool stat); void slot_fingerStat(bool stat, QByteArray img, int size); void slot_instructionsGet(); void slot_pdf_click(QByteArray urlPath); void slot_getMaterialCheckPlan(); void slot_getMaterialCheckForm(int planId); void slot_postSaveForm(QString data); void slot_postCheckSign(int planId, QString path); void slot_postSubmit(); void slot_getMaterialInfoList(); public: explicit pro(QObject *parent = nullptr); Q_INVOKABLE void moveCursorTo(int x, int y); // 获取物资待归还数量 Q_INVOKABLE void getSelModelNumber(QJSValue); // 是否异常 Q_INVOKABLE void getError(QJSValue); // 获取uuid Q_INVOKABLE QString getUuid(); protected: bool eventFilter(QObject *obj, QEvent *event) override; private: // QByteArray btyMaterialType; // 物资类型 // QByteArray btyInstructions; // 物资使用说明 QNetworkAccessManager *m_pManager; private: bool threadstatus = true; QList tidArray; QTimer *timer; login_s login; proWorkStat workstat = proWorkStat::sleep; QString token; bool addfingerStat = false; bool addfingerFinish = false; QByteArray fingerimgbuff; // int m_iCurrentPlanId = -1; // 当前计划ID QString m_strPostSaveForm; // 发送post请求,保存检查表 QString m_strPostCheckSign; // 发送post请求, 检查签名 void http_response_usernamelogin(QByteArray data); void http_response_cardlogin(QByteArray data); void http_response_fingerLogin(QByteArray data); void http_response_insertfingerLogin(QByteArray data); void http_response_logout(QByteArray data); void http_response_getMaterial(QByteArray data); void http_response_userMaterial(QByteArray data); void http_response_updateMaterial(QByteArray data); // 物资更换 void http_response_postMaterialReplaceAuto(QByteArray data); // 物资取还 void http_response_data(quint64 idx, QString url, QByteArray data); void http_response_materialTypeGet(QByteArray data); // http返回 物资类型 void http_response_instructionsGet(QByteArray data); // http返回 使用说明 void http_response_getMaterialCheckPlan(QByteArray data); // http返回 物资检查计划 void http_response_getMaterialCheckForm(QByteArray data); // http返回 物资检查列表 void http_response_postSaveForm(QByteArray data); void http_response_postCheckSign(QByteArray data); void http_response_postSubmit(QByteArray data); void http_response_getMaterialInfoList(QByteArray data); void http_request_usernamelogin(void); void http_request_cardlogin(void); void http_request_fingerLogin(void); void http_request_insertfingerLogin(void); void http_request_userlogout(void); void http_request_getMaterial(void); void http_request_userMaterial(void); void http_request_userMaterial_copy(void); void http_request_openCabinet(void); void http_request_closeCabinet(void); void http_request_updateMaterial(void); void http_request_replaceMaterial(void); void http_request_exceptionHandle(void); // 异常处理 void updateTime(void); // 2025-06-03 wxh void http_request_materialTypeGet(); void http_request_instructionsGet(); void http_request_getMaterialCheckPlan(); void http_request_getMaterialCheckForm(); void http_request_postSaveForm(); void http_request_postCheckSign(); void http_request_postSubmit(); void http_request_getMaterialInfoList(); // 获取不属于这个柜子,但是rfid检测到的物资信息 void getMaterialElseInfos(); signals: void signal_notice_return(win_notice_s notice); void signal_login_return_stat(int stat, QString str); void signal_login_return_param(QString name, int auth); void signal_post_request_data(quint64 id, QString postUrl, QByteArray data, QByteArray file, QString token); void signal_get_request_data(quint64 id, QString postUrl, QByteArray data, QString token); void signal_updateMaterial(void); void signal_updateMaterialHand(void); // 手动更换 void signal_updateMaterialAuto(void); // 自动更换 void signal_updateMaterialException(void); // 异常处理 void signal_updatetakebackMaterial(void); void signal_updatetakebackMaterialHand(void); // 手动更换 void signal_updatetakebackMaterialAuto(void); // 自动更换 void signal_updateExceptionHandle(void); // 异常处理 void signal_updatematerialCheckPlan(void); // 物资检查计划 // void signal_returnExceptionHandle(bool); // 物资错放异常处理结果 void signal_requestertakebackMaterial(void); void signal_fingerWork(bool stat); void signal_addFinger_act(bool stat); void signal_materialTypeGet(QByteArray data); // 转发至qml, 获取物资类型 void signal_instructionsGet(QByteArray data); // 转发至qml, 获取使用说明 void signal_pdf_relay(QString name); // 转发至qml, pdf下载完成 void signal_getMaterialCheckPlan(QByteArray data); // 转发至qml, 获取物资检查计划 void signal_getMaterialCheckForm(QByteArray data); // 转发至qml, 获取物资检查列表 void signal_postSaveForm(QByteArray data); // 转发至qml, post结果 void signal_postCheckSign(QByteArray data); // 转发至qml, post结果 void signal_postSubmit(QByteArray data); // 转发至qml, post结果 void signal_getMaterialInfoList(QByteArray data); // 转发至qml, 获取物资信息列表 void signal_lockStatTakeBack(bool, bool); void signal_lockStatReplaceHand(bool, bool); void signal_lockStatReplaceAuto(bool, bool); void signal_lockStatException(bool, bool); void signal_lockStatCheckPlan(bool, bool); void signal_misplaceRefresh(); void signal_backRefresh(); void signal_takeRefresh(); // 全局鼠标点击 void signal_global_mouse_clicked(); protected: void run() override; }; #endif // PRO_H