| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630 |
- #include "pro.h"
- #include "config.h"
- #include "httpclient.h"
- #include <QAbstractSocket>
- #include <QHostInfo>
- #include <QNetworkInterface>
- #include <QJsonArray>
- #include <QJsonObject>
- #include <QJsonDocument>
- #include <QTimeZone>
- #include <QtCore>
- #include <QNetworkAccessManager>
- #include <QNetworkReply>
- #include <QDir>
- #include "Interactive/InteractiveData.h"
- #include "Interactive/InteractiveConf.h"
- extern config *pconfig;
- pro::pro(QObject *parent) : QThread(parent)
- {
- qApp->installEventFilter(this);
- m_pManager = new QNetworkAccessManager(this);
- timer = new QTimer(this);
- connect(timer, &QTimer::timeout, this, &pro::updateTime);
- }
- void pro::slot_feature_login()
- {
- token = InteractiveHttp::strToken;
- SINGLETON_CREATE(InteractiveData)()->m_token = InteractiveHttp::strToken;
- workstat = proWorkStat::userMaterial;
- }
- void pro::slot_set_thread_stop(void)
- {
- this->threadstatus = false;
- }
- void pro::slot_saveConfig(void)
- {
- pconfig->configWrite();
- }
- void pro::slot_addfinger(bool stat)
- {
- addfingerStat = stat;
- emit signal_fingerWork(stat);
- }
- void pro::slot_fingerWork(bool stat)
- {
- addfingerStat = false;
- emit signal_fingerWork(stat);
- }
- void pro::slot_fingerStat(bool stat, QByteArray img, int size)
- {
- if(stat == true)
- {
- fingerimgbuff = img;
- if(addfingerStat == true)
- {
- workstat = proWorkStat::insertfacelogin;
- emit signal_fingerWork(false);
- }
- else{
- workstat = proWorkStat::fingerLogin;
- }
- }
- }
- void pro::slot_instructionsGet()
- {
- workstat = proWorkStat::materialTypeGet;
- }
- void pro::slot_getMaterialCheckPlan()
- {
- workstat = proWorkStat::getMaterialCheckPlan;
- }
- void pro::slot_getMaterialCheckForm(int planId)
- {
- pconfig->currentPlanId = planId;
- workstat = proWorkStat::getMaterialCheckForm;
- }
- void pro::slot_postSaveForm(QString data)
- {
- m_strPostSaveForm = data;
- workstat = proWorkStat::postSaveForm;
- }
- void pro::slot_postCheckSign(int planId, QString path)
- {
- QJsonObject jsonRoot;
- QString url = pconfig->usernameLogin_url;
- jsonRoot.insert("cabinetCode", pconfig->devUuid);
- jsonRoot.insert("planId", planId);
- jsonRoot.insert("signatureImg", QString(path));
- QJsonDocument jsonDoc(jsonRoot);
- QByteArray jsonData = jsonDoc.toJson(QJsonDocument::Compact);
- m_strPostCheckSign = QString::fromUtf8(jsonData);
- workstat = proWorkStat::postCheckSign;
- }
- void pro::slot_postSubmit()
- {
- workstat = proWorkStat::postSubmit;
- }
- void pro::slot_getMaterialInfoList()
- {
- workstat = proWorkStat::getMaterialInfoList;
- }
- void pro::slot_pdf_click(QByteArray urlPath)
- {
- QUrl url(urlPath);
- QString strPath = url.path();
- QString strFileName = strPath.mid(strPath.lastIndexOf('/') + 1);
- QString strFilePath = strPath.mid(0, strPath.lastIndexOf('/') + 1);
- strFilePath = qApp->applicationDirPath() + "/pdf/" + strFilePath;
- QString strFilePathName = strFilePath + strFileName;
- if (!QFile::exists(strFilePathName))
- {
- if(!QDir().mkpath(strFilePath))
- {
- return;
- }
- QString requestUrl = urlPath;
- QNetworkRequest request(requestUrl);
- request.setAttribute(QNetworkRequest::RedirectPolicyAttribute,
- QNetworkRequest::NoLessSafeRedirectPolicy);
- QNetworkReply *pReply = m_pManager->get(request);
- // 添加超时处理,1ms 超时
- QEventLoop eventLoop;
- connect(pReply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
- QTimer::singleShot(1000, &eventLoop, &QEventLoop::quit);
- eventLoop.exec();
- QByteArray array;
- if(pReply->isFinished()){
- if (pReply->error() == QNetworkReply::NoError) {
- // 正常结束,读取响应数据
- QByteArray result = pReply->readAll();
- QFile file(strFilePathName);
- if (file.open(QIODevice::WriteOnly | QIODevice::Truncate))
- {
- file.write(result);
- file.close();
- }
- pReply->deleteLater();
- }
- }
- pReply->deleteLater();
- }
- emit signal_pdf_relay(strFilePathName);
- }
- void pro::http_response_usernamelogin(QByteArray data)
- {
- QJsonParseError error;
- QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
- if (error.error == QJsonParseError::NoError)
- {
- if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
- {
- QJsonObject rootObj = jsonDoc.object();
- if(rootObj.contains("code"))
- {
- if(rootObj.value("code").toInt() == 200)
- {
- if(rootObj.contains("token"))
- {
- QJsonValue value = rootObj.value("token");
- if(value.type() == QJsonValue::String)
- {
- SINGLETON_CREATE(InteractiveData)()->m_token = value.toString();
- InteractiveHttp::strToken = value.toString();
- token = value.toString();
- QString username = "未知用户";
- if(rootObj.contains("nickName"))
- {
- QJsonValue name = rootObj.value("nickName");
- if(name.type() == QJsonValue::String)
- {
- username = name.toString();
- }
- }
- pconfig->username = username;
- emit signal_login_return_stat(0, "登录成功");
- emit signal_login_return_param(username, 0);
- workstat = proWorkStat::userMaterial;
- }
- else{
- emit signal_login_return_stat(-3, "登录失败");
- }
- }
- }
- else{
- emit signal_login_return_stat(-1, "用户名或者密码错误");
- }
- }
- }
- }
- else{
- emit signal_login_return_stat(-3, "登录失败");
- }
- }
- void pro::http_response_cardlogin(QByteArray data)
- {
- QJsonParseError error;
- QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
- if (error.error == QJsonParseError::NoError)
- {
- if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
- {
- QJsonObject rootObj = jsonDoc.object();
- if(rootObj.contains("code"))
- {
- if(rootObj.value("code").toInt() == 200)
- {
- if(rootObj.contains("token"))
- {
- QJsonValue value = rootObj.value("token");
- if(value.type() == QJsonValue::String)
- {
- SINGLETON_CREATE(InteractiveData)()->m_token = value.toString();
- InteractiveHttp::strToken = value.toString();
- token = value.toString();
- QString username = "未知用户";
- if(rootObj.contains("nickName"))
- {
- QJsonValue name = rootObj.value("nickName");
- if(name.type() == QJsonValue::String)
- {
- username = name.toString();
- }
- }
- if(rootObj.contains("userName"))
- {
- QJsonValue username = rootObj.value("userName");
- if(username.type() == QJsonValue::String)
- {
- pconfig->username = username.toString();
- }
- }
- if(rootObj.contains("userId"))
- {
- QJsonValue userId = rootObj.value("userId");
- if(userId.type() == QJsonValue::String)
- {
- pconfig->userId = userId.toString();
- }
- }
- pconfig->username = username;
- emit signal_login_return_stat(0, "登录成功");
- emit signal_login_return_param(username, 0);
- workstat = proWorkStat::userMaterial;
- }
- else{
- emit signal_login_return_stat(-3, "登录失败");
- }
- }
- }
- else{
- emit signal_login_return_stat(-2, "用户不存在");
- }
- }
- }
- }
- else{
- emit signal_login_return_stat(-3, "登录失败");
- }
- }
- void pro::http_response_fingerLogin(QByteArray data)
- {
- QJsonParseError error;
- QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
- if (error.error == QJsonParseError::NoError)
- {
- if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
- {
- QJsonObject rootObj = jsonDoc.object();
- if(rootObj.contains("code"))
- {
- if(rootObj.value("code").toInt() == 200)
- {
- if(rootObj.contains("token"))
- {
- QJsonValue value = rootObj.value("token");
- if(value.type() == QJsonValue::String)
- {
- SINGLETON_CREATE(InteractiveData)()->m_token = value.toString();
- InteractiveHttp::strToken = value.toString();
- token = value.toString();
- QString username = "未知用户";
- if(rootObj.contains("nickName"))
- {
- QJsonValue name = rootObj.value("nickName");
- if(name.type() == QJsonValue::String)
- {
- username = name.toString();
- }
- }
- pconfig->username = username;
- emit signal_login_return_stat(0, "登录成功");
- emit signal_login_return_param(username, 0);
- workstat = proWorkStat::userMaterial;
- }
- else{
- emit signal_login_return_stat(-3, "登录失败");
- }
- }
- }
- else{
- emit signal_login_return_stat(-2, "用户不存在");
- }
- }
- }
- }
- else{
- emit signal_login_return_stat(-3, "登录失败");
- }
- }
- void pro::http_response_logout(QByteArray data)
- {
- QJsonParseError error;
- QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
- if (error.error == QJsonParseError::NoError)
- {
- if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
- {
- QJsonObject rootObj = jsonDoc.object();
- if(rootObj.contains("code"))
- {
- if(rootObj.value("code").toInt() == 200)
- {
- qDebug() << "用户退出成功";
- }
- }
- }
- }
- }
- void pro::http_response_getMaterial(QByteArray data)
- {
- QJsonParseError error;
- QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
- if (error.error == QJsonParseError::NoError)
- {
- if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
- {
- QJsonObject rootObj = jsonDoc.object();
- if(rootObj.contains("code"))
- {
- if(rootObj.value("code").toInt() == 200)
- {
- if(rootObj.contains("data"))
- {
- QJsonValue data = rootObj.value("data");
- if(data.type() == QJsonValue::Array)
- {
- QJsonArray rfidArray = data.toArray();
- for(int i = 0; i < rfidArray.size(); i++)
- {
- QString rfid = "";
- QString name = "";
- int materialsTypeId = 0;
- QString materialsTypePicture;
- bool take;
- if(rfidArray.at(i).toObject().value("materialsRfid").type() == QJsonValue::String)
- {
- rfid = rfidArray.at(i).toObject().value("materialsRfid").toString();
- }
- else{
- continue;
- }
- if(rfidArray.at(i).toObject().value("materialsName").type() == QJsonValue::String)
- {
- name = rfidArray.at(i).toObject().value("materialsName").toString();
- }
- if(rfidArray.at(i).toObject().value("materialsTypeId").type() == QJsonValue::String)
- {
- materialsTypeId = rfidArray.at(i).toObject().value("materialsTypeId").toString().toInt();
- }
- else if(rfidArray.at(i).toObject().value("materialsTypeId").type() == QJsonValue::Double)
- {
- materialsTypeId = rfidArray.at(i).toObject().value("materialsTypeId").toInt();
- }
- if(rfidArray.at(i).toObject().value("materialsTypePicture").type() == QJsonValue::String)
- {
- materialsTypePicture = rfidArray.at(i).toObject().value("materialsTypePicture").toString();
- }
- }
- }
- }
- }
- }
- }
- }
- }
- void pro::http_response_userMaterial(QByteArray data)
- {
- QJsonParseError error;
- QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
- if (error.error == QJsonParseError::NoError)
- {
- if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
- {
- QJsonObject rootObj = jsonDoc.object();
- if(rootObj.contains("code"))
- {
- if(rootObj.value("code").toInt() == 200)
- {
- if(rootObj.contains("data"))
- {
- QJsonValue data = rootObj.value("data");
- if(data.type() == QJsonValue::Array)
- {
- pconfig->materialTypePngList.clear();
- pconfig->materialTypeCountList.clear();
- pconfig->materialNameList.clear();
- pconfig->materialTypeList.clear();
- pconfig->materialPictureList.clear();
- pconfig->materialLoanUserList.clear();
- pconfig->materialLoanStateList.clear();
- QJsonArray dataArray = data.toArray();
- for(int i = 0; i < dataArray.size(); i++)
- {
- if(dataArray.at(i).toObject().value("materials").type() == QJsonValue::Array)
- {
- QJsonArray materialArray = dataArray.at(i).toObject().value("materials").toArray();
- for(int j = 0; j < materialArray.size(); j++)
- {
- QString rfid = "";
- if(materialArray.at(j).toObject().value("materialsRfid").type() == QJsonValue::String)
- {
- rfid = materialArray.at(j).toObject().value("materialsRfid").toString();
- }
- else{
- continue;
- }
- if (materialArray.at(j).toObject().value("materialsName").type() == QJsonValue::String)
- {
- QString name = materialArray.at(j).toObject().value("materialsName").toString();
- pconfig->materialNameList.insert(rfid, name);
- }
- else{
- pconfig->materialNameList.insert(rfid, "未知物资");
- }
- if (materialArray.at(j).toObject().value("status").type() == QJsonValue::String)
- {
- QString status = materialArray.at(j).toObject().value("status").toString();
- pconfig->materialStatusList.insert(rfid, status);
- }
- else
- {
- pconfig->materialStatusList.insert(rfid, "0");
- }
- if(materialArray.at(j).toObject().value("materialsTypePicture").type() == QJsonValue::String)
- {
- QString materialsTypePicture = materialArray.at(j).toObject().value("materialsTypePicture").toString();
- pconfig->materialPictureList.insert(rfid, materialsTypePicture);
- }
- else{
- pconfig->materialPictureList.insert(rfid, "");
- }
- if(materialArray.at(j).toObject().value("loanState").type() == QJsonValue::String)
- {
- int loanState = materialArray.at(j).toObject().value("loanState").toString().toInt();
- pconfig->materialLoanStateList.insert(rfid, loanState);
- }
- else if(materialArray.at(j).toObject().value("loanState").type() == QJsonValue::Double)
- {
- int loanState = materialArray.at(j).toObject().value("loanState").toInt();
- pconfig->materialLoanStateList.insert(rfid, loanState);
- }
- else{
- pconfig->materialLoanStateList.insert(rfid, -1);
- }
- if (materialArray.at(j).toObject().value("loanUserId").type() == QJsonValue::String)
- {
- QString loanUserId = materialArray.at(j).toObject().value("loanUserId").toString();;
- pconfig->materialLoanUserList.insert(rfid, loanUserId);
- }
- int materialtype = 0;
- QString materialtypename = "";
- QString pngfile = "";
- if(materialArray.at(j).toObject().value("materialsTypeId").type() == QJsonValue::String)
- {
- materialtype = materialArray.at(j).toObject().value("materialsTypeId").toString().toInt();
- }
- else if(materialArray.at(j).toObject().value("materialsTypeId").type() == QJsonValue::Double)
- {
- materialtype = materialArray.at(j).toObject().value("materialsTypeId").toInt();
- }
- if(materialArray.at(j).toObject().value("materialsTypeName").type() == QJsonValue::String)
- {
- materialtypename = materialArray.at(j).toObject().value("materialsTypeName").toString();
- }
- else{
- materialtypename = "未知类型" +QString::number(materialtype);
- }
- pconfig->materialTypeList.insert(rfid, materialtypename);
- if(materialArray.at(j).toObject().value("materialsTypeIcon").type() == QJsonValue::String)
- {
- pngfile = materialArray.at(j).toObject().value("materialsTypeIcon").toString();
- }
- pconfig->materialTypePngList.insert(materialtypename, pngfile);
- // if(pconfig->materialTypeCountList.contains(materialtypename))
- // {
- // pconfig->materialTypeCountList[materialtypename]++;
- // }
- // else{
- // pconfig->materialTypeCountList.insert(materialtypename, 0);
- // }
- }
- QString materialsTypeName = dataArray.at(i).toObject().value("materialsTypeName").toString();
- int number = dataArray.at(i).toObject().value("number").toInt();
- int borrowableNumber = dataArray.at(i).toObject().value("borrowableNumber").toInt();
- if(materialsTypeName != "全部")
- {
- pconfig->materialTypeCountList[materialsTypeName] = number;
- pconfig->materialTypeBorrowableNumberList[materialsTypeName] = borrowableNumber;
- }
- }
- }
- emit signal_updateMaterial();
- emit signal_updateMaterialHand();
- emit signal_updateMaterialAuto();
- }
- }
- }
- }
- }
- }
- }
- void pro::http_response_updateMaterial(QByteArray data)
- {
- QJsonParseError error;
- QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
- if (error.error == QJsonParseError::NoError)
- {
- if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
- {
- QJsonObject rootObj = jsonDoc.object();
- if(rootObj.contains("code"))
- {
- if(rootObj.value("code").toInt() == 200)
- {
- workstat = proWorkStat::userMaterial;
- }
- }
- }
- }
- }
- void pro::http_response_postMaterialReplaceAuto(QByteArray data)
- {
- QJsonParseError error;
- QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
- if (error.error == QJsonParseError::NoError)
- {
- if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
- {
- QJsonObject rootObj = jsonDoc.object();
- if(rootObj.contains("code"))
- {
- if(rootObj.value("code").toInt() == 200)
- {
- workstat = proWorkStat::userMaterial;
- }
- }
- }
- }
- }
- void pro::http_response_insertfingerLogin(QByteArray data)
- {
- QJsonParseError error;
- QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
- if (error.error == QJsonParseError::NoError)
- {
- if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
- {
- QJsonObject rootObj = jsonDoc.object();
- if(rootObj.contains("code"))
- {
- if(rootObj.value("code").toInt() == 200)
- {
- qDebug() << "录入指纹成功";
- emit signal_addFinger_act(true);
- }
- else{
- qDebug() << "录入指纹失败";
- emit signal_addFinger_act(false);
- }
- }
- }
- }
- }
- void pro::http_response_materialTypeGet(QByteArray data)
- {
- emit signal_materialTypeGet(data);
- }
- void pro::http_response_instructionsGet(QByteArray data)
- {
- emit signal_instructionsGet(data);
- }
- void pro::http_response_getMaterialCheckPlan(QByteArray data)
- {
- emit signal_getMaterialCheckPlan(data);
- }
- void pro::http_response_getMaterialCheckForm(QByteArray data)
- {
- emit signal_getMaterialCheckForm(data);
- }
- void pro::http_response_postSaveForm(QByteArray data)
- {
- emit signal_postSaveForm(data);
- }
- void pro::http_response_postCheckSign(QByteArray data)
- {
- emit signal_postCheckSign(data);
- }
- void pro::http_response_postSubmit(QByteArray data)
- {
- emit signal_postSubmit(data);
- }
- void pro::http_response_getMaterialInfoList(QByteArray data)
- {
- emit signal_getMaterialInfoList(data);
- }
- void pro::slot_response_data(quint64 idx, QString url, QByteArray data)
- {
- qDebug() << "url:" << url << "\nresponse=" << QString::fromUtf8(data);
- if(url == pconfig->usernameLogin_url)
- {
- http_response_usernamelogin(data);
- }
- else if(url == pconfig->cardLogin_url)
- {
- http_response_cardlogin(data);
- }
- else if(url == pconfig->logout_url)
- {
- http_response_logout(data);
- }
- else if(url == pconfig->getMaterial_url)
- {
- http_response_getMaterial(data);
- }
- else if(url == pconfig->userMaterial_url)
- {
- http_response_userMaterial(data);
- }
- // 物资取还
- else if(url == pconfig->updateMaterial_url)
- {
- http_response_updateMaterial(data);
- }
- // 物资更换
- else if(url == pconfig->postMaterialReplaceAuto_url)
- {
- http_response_postMaterialReplaceAuto(data);
- }
- else if(url == pconfig->fingerLogin_url)
- {
- http_response_fingerLogin(data);
- }
- else if(url == pconfig->addfinger_url)
- {
- http_response_insertfingerLogin(data);
- }
- else if (url == pconfig->getMaterialTypeList_url)
- {
- http_response_materialTypeGet(data);
- }
- else if (url == pconfig->instructionsGet_url)
- {
- http_response_instructionsGet(data);
- }
- else if (url == pconfig->getMaterialCheckPlan_url)
- {
- http_response_getMaterialCheckPlan(data);
- }
- else if (url == pconfig->getMaterialCheckForm_url)
- {
- http_response_getMaterialCheckForm(data);
- }
- else if (url == pconfig->postSaveForm_url)
- {
- http_response_postSaveForm(data);
- }
- else if (url == pconfig->postCheckSign_url)
- {
- http_response_postCheckSign(data);
- }
- else if (url == pconfig->postSubmit_url)
- {
- http_response_postSubmit(data);
- }
- else if (url == pconfig->getMaterialInfoList_url)
- {
- http_response_getMaterialInfoList(data);
- }
- }
- void pro::slot_login(int type, QString username, QString password)
- {
- if(type == 0)
- {
- login.username = username;
- login.password = password;
- login.type = LOGIN_USERNAME;
- workstat = proWorkStat::usernameLogin;
- }
- else if(type == 1)
- {
- login.cardNo = username;
- login.type = LOGIN_CARD;
- workstat = proWorkStat::cardLogin;
- }
- else if(type == 2)
- {
- emit signal_fingerWork(true);
- }
- }
- void pro::slot_logout(void)
- {
- workstat = proWorkStat::userLogout;
- }
- void pro::http_request_usernamelogin(void)
- {
- QJsonObject jsonRoot;
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->usernameLogin_url;
- jsonRoot.insert("username", login.username);
- jsonRoot.insert("password", login.password);
- QJsonDocument jsonDoc(jsonRoot);
- QByteArray jsonData = jsonDoc.toJson(QJsonDocument::Compact);
- qDebug() << "json=" << QString::fromUtf8(jsonData);
- emit signal_post_request_data(timestampSeconds, url, jsonData, NULL, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_cardlogin(void)
- {
- QJsonObject jsonRoot;
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->cardLogin_url;
- jsonRoot.insert("cardNfc", login.cardNo);
- QJsonDocument jsonDoc(jsonRoot);
- QByteArray jsonData = jsonDoc.toJson(QJsonDocument::Compact);
- qDebug() << "json=" << QString::fromUtf8(jsonData);
- emit signal_post_request_data(timestampSeconds, url, jsonData, NULL, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_userlogout(void)
- {
- QJsonObject jsonRoot;
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->logout_url;
- QJsonDocument jsonDoc(jsonRoot);
- QByteArray jsonData = jsonDoc.toJson(QJsonDocument::Compact);
- qDebug() << "json=" << QString::fromUtf8(jsonData);
- emit signal_post_request_data(timestampSeconds, url, jsonData, NULL, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_fingerLogin(void)
- {
- QJsonObject jsonRoot;
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->fingerLogin_url;
- emit signal_post_request_data(timestampSeconds, url, NULL, fingerimgbuff, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_insertfingerLogin(void)
- {
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->addfinger_url;
- QByteArray data = pconfig->username.toUtf8();
- qDebug() << "data=" << QString::fromUtf8(data);
- emit signal_post_request_data(timestampSeconds, url, data, fingerimgbuff, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_getMaterial(void)
- {
- QJsonObject jsonRoot;
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->getMaterial_url;
- QJsonArray jsonarray;
- for (const QString& str : tidArray) {
- jsonarray.append(str);
- }
- jsonRoot.insert("list", jsonarray);
- QJsonDocument jsonDoc(jsonRoot);
- QByteArray jsonData = jsonDoc.toJson(QJsonDocument::Compact);
- qDebug() << "json=" << QString::fromUtf8(jsonData);
- emit signal_post_request_data(timestampSeconds, url, jsonData, NULL, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_userMaterial(void)
- {
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->userMaterial_url;
- QString getData = "cabinetCode=" + pconfig->devUuid;
- QByteArray jsonData = getData.toUtf8();
- emit signal_get_request_data(timestampSeconds, url, jsonData, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_userMaterial_copy(void)
- {
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->userMaterial_url;
- QString getData = "cabinetCode=" + pconfig->devUuid;
- QByteArray jsonData = getData.toUtf8();
- emit signal_get_request_data(timestampSeconds, url, jsonData, token);
- workstat = proWorkStat::upgradeMaterial;
- }
- void pro::http_request_openCabinet(void)
- {
- QJsonObject jsonRoot;
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->openCabinet_url;
- jsonRoot.insert("cabinetCode", pconfig->devUuid);
- jsonRoot.insert("openType", "0");
- QJsonDocument jsonDoc(jsonRoot);
- QByteArray jsonData = jsonDoc.toJson(QJsonDocument::Compact);
- qDebug() << "json=" << QString::fromUtf8(jsonData);
- emit signal_post_request_data(timestampSeconds, url, jsonData, NULL, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_closeCabinet(void)
- {
- QJsonObject jsonRoot;
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->closeCabinet_url;
- jsonRoot.insert("cabinetCode", pconfig->devUuid);
- QJsonDocument jsonDoc(jsonRoot);
- QByteArray jsonData = jsonDoc.toJson(QJsonDocument::Compact);
- qDebug() << "json=" << QString::fromUtf8(jsonData);
- emit signal_post_request_data(timestampSeconds, url, jsonData, NULL, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_updateMaterial(void)
- {
- QJsonObject jsonRoot;
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->updateMaterial_url;
- QJsonArray jsonarray;
- // 其他柜子
- for (const QString& str : pconfig->backElseMaterialList)
- {
- QJsonObject back;
- back.insert("loanState", "1");
- back.insert("materialsRfid", str);
- back.insert("restitutionToCabinetCode", pconfig->devUuid);
- jsonarray.append(back);
- }
- // 新绑定的
- for (const QString& str : pconfig->bindedMaterialList)
- {
- QJsonObject back;
- back.insert("loanState", "1");
- back.insert("materialsRfid", str);
- back.insert("restitutionToCabinetCode", pconfig->devUuid);
- jsonarray.append(back);
- }
- for (const QString& str : pconfig->backMaterialList)
- {
- QJsonObject back;
- back.insert("loanState", "1");
- back.insert("materialsRfid", str);
- back.insert("restitutionToCabinetCode", pconfig->devUuid);
- jsonarray.append(back);
- }
- // 其他柜子
- for (const QString& str : pconfig->takeElseMaterialList)
- {
- QJsonObject take;
- take.insert("loanState", "0");
- take.insert("materialsRfid", str);
- take.insert("restitutionToCabinetCode", pconfig->devUuid);
- jsonarray.append(take);
- }
- for (const QString& str : pconfig->takeMaterialList)
- {
- QJsonObject take;
- take.insert("loanState", "0");
- take.insert("materialsRfid", str);
- take.insert("restitutionToCabinetCode", pconfig->devUuid);
- jsonarray.append(take);
- }
- jsonRoot.insert("list", jsonarray);
- QJsonDocument jsonDoc(jsonRoot);
- QByteArray jsonData = jsonDoc.toJson(QJsonDocument::Compact);
- qDebug() << "json=" << QString::fromUtf8(jsonData);
- emit signal_post_request_data(timestampSeconds, url, jsonData, NULL, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_replaceMaterial(void)
- {
- QJsonObject jsonRoot;
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->postMaterialReplaceAuto_url;
- // 绑定
- QJsonArray jsonArrAppend;
- for (const QString& str : pconfig->bindedMaterialList)
- {
- jsonArrAppend.append(str);
- }
- // 解绑
- QJsonArray jsonArrRemove;
- for (const QString& str : pconfig->unbindMaterialList)
- {
- jsonArrRemove.append(str);
- }
- jsonRoot.insert("cabinetCode", pconfig->devUuid);
- jsonRoot.insert("bindingMaterialRfidList", jsonArrAppend);
- jsonRoot.insert("unbindMaterialRfidList", jsonArrRemove);
- QJsonDocument jsonDoc(jsonRoot);
- QByteArray jsonData = jsonDoc.toJson(QJsonDocument::Compact);
- qDebug() << "json=" << QString::fromUtf8(jsonData);
- emit signal_post_request_data(timestampSeconds, url, jsonData, NULL, token);
- workstat = proWorkStat::userMaterial_copy;
- }
- void pro::http_request_exceptionHandle()
- {
- }
- void pro::http_request_materialTypeGet()
- {
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->getMaterialTypeList_url;
- QString getData = "cabinetCode=" + pconfig->devUuid;
- QByteArray jsonData = getData.toUtf8();
- emit signal_get_request_data(timestampSeconds, url, jsonData, token);
- workstat = proWorkStat::instructionsGet;
- }
- void pro::http_request_instructionsGet()
- {
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->instructionsGet_url;
- QString getData = "cabinetCode=" + pconfig->devUuid;
- QByteArray jsonData = getData.toUtf8();
- emit signal_get_request_data(timestampSeconds, url, jsonData, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_getMaterialCheckPlan()
- {
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->getMaterialCheckPlan_url;
- QString getData = "cabinetCode=" + pconfig->devUuid;
- QByteArray jsonData = getData.toUtf8();
- emit signal_get_request_data(timestampSeconds, url, jsonData, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_getMaterialCheckForm()
- {
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->getMaterialCheckForm_url;
- QString getData = "cabinetCode=" + pconfig->devUuid;
- getData += "&";
- getData += "planId=" + QString::number(pconfig->currentPlanId);
- QByteArray jsonData = getData.toUtf8();
- emit signal_get_request_data(timestampSeconds, url, jsonData, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_postSaveForm()
- {
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->postSaveForm_url;
- emit signal_post_request_data(timestampSeconds, url, m_strPostSaveForm.toUtf8(), NULL, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_postCheckSign()
- {
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->postCheckSign_url;
- emit signal_post_request_data(timestampSeconds, url, m_strPostCheckSign.toUtf8(), NULL, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_postSubmit()
- {
- QJsonObject jsonRoot;
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->postSubmit_url;
- jsonRoot.insert("cabinetCode", pconfig->devUuid);
- jsonRoot.insert("planId", pconfig->currentPlanId);
- QJsonDocument jsonDoc(jsonRoot);
- QByteArray jsonData = jsonDoc.toJson(QJsonDocument::Compact);
- qDebug() << "json=" << QString::fromUtf8(jsonData);
- emit signal_post_request_data(timestampSeconds, url, jsonData, NULL, token);
- workstat = proWorkStat::sleep;
- }
- void pro::http_request_getMaterialInfoList()
- {
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QString url = pconfig->getMaterialInfoList_url;
- QString getData = "cabinetCode=" + pconfig->devUuid;
- QByteArray jsonData = getData.toUtf8();
- emit signal_get_request_data(timestampSeconds, url, jsonData, token);
- workstat = proWorkStat::sleep;
- }
- void pro::getMaterialElseInfos()
- {
- // 访问http服务
- QString strUrl = "http://" + pconfig->httpHost + pconfig->getMaterial_url;
- QByteArray inData;
- QByteArray outData;
- {
- QJsonObject jsonRoot;
- QDateTime currentDateTime = QDateTime::currentDateTime();
- qint64 timestampSeconds = currentDateTime.toMSecsSinceEpoch();
- QJsonArray jsonarray;
- for (const QString& str : pconfig->elseMaterialList) {
- jsonarray.append(str);
- }
- jsonRoot.insert("list", jsonarray);
- QJsonDocument jsonDoc(jsonRoot);
- inData = jsonDoc.toJson(QJsonDocument::Compact);
- }
- httpClient::postRequest(strUrl, httpClient::sToken, inData, outData);
- pconfig->materialNameListElse.clear();
- pconfig->materialPictureListElse.clear();
- QJsonParseError error;
- QJsonDocument jsonDoc = QJsonDocument::fromJson(outData, &error);
- if (error.error == QJsonParseError::NoError)
- {
- if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
- {
- QJsonObject rootObj = jsonDoc.object();
- if(rootObj.contains("code"))
- {
- if(rootObj.value("code").toInt() == 200)
- {
- if(rootObj.contains("data"))
- {
- QJsonValue data = rootObj.value("data");
- if(data.type() == QJsonValue::Array)
- {
- QJsonArray rfidArray = data.toArray();
- for(int i = 0; i < rfidArray.size(); i++)
- {
- QString rfid = "";
- QString name = "";
- int materialsTypeId = 0;
- QString materialsTypePicture;
- bool take;
- if(rfidArray.at(i).toObject().value("materialsRfid").type() == QJsonValue::String)
- {
- rfid = rfidArray.at(i).toObject().value("materialsRfid").toString();
- }
- else{
- continue;
- }
- if(rfidArray.at(i).toObject().value("materialsName").type() == QJsonValue::String)
- {
- name = rfidArray.at(i).toObject().value("materialsName").toString();
- pconfig->materialNameListElse.insert(rfid, name);
- }
- else{
- pconfig->materialNameListElse.insert(rfid, "未知物资");
- }
- if(rfidArray.at(i).toObject().value("materialsTypePicture").type() == QJsonValue::String)
- {
- QString materialsTypePicture = rfidArray.at(i).toObject().value("materialsTypePicture").toString();
- pconfig->materialPictureListElse.insert(rfid, materialsTypePicture);
- }
- else{
- pconfig->materialPictureListElse.insert(rfid, "");
- }
- }
- }
- }
- }
- }
- }
- }
- }
- void pro::slot_tid_update(quint16 count, QList<QString> tidList)
- {
- // 调用开始读rfid,进入此函数
- tidArray = tidList;
- if(pconfig->materworkstat == 0 || pconfig->materworkstat == 1 || pconfig->materworkstat == 3 || pconfig->materworkstat == 4)
- {
- // 业务逻辑
- if(pconfig->materialStock == false)
- {
- if(tidArray.length() > 0)
- {
- workstat = proWorkStat::getMaterial;
- }
- }
- else{
- pconfig->materialStock = true;
- pconfig->backElseMaterialList.clear();
- pconfig->takeElseMaterialList.clear();
- pconfig->takeMaterialList.clear();
- pconfig->backMaterialList.clear();
- pconfig->bindedMaterialList.clear();
- pconfig->unbindMaterialList.clear();
- // 如果属于本柜子
- for(auto it = pconfig->materialLoanStateList.cbegin(); it != pconfig->materialLoanStateList.cend(); ++it)
- {
- if(tidArray.contains(it.key()))
- {
- if(it.value() == SERVER_MATERIAL_LOANSTATE_OUT)
- {
- pconfig->backMaterialList.append(it.key());
- }
- }
- else{
- if(it.value() == SERVER_MATERIAL_LOANSTATE_IN)
- {
- pconfig->takeMaterialList.append(it.key());
- }
- }
- }
- // 如果不属于本柜子
- QStringList tids = tidArray;
- QStringList keys = pconfig->materialLoanStateList.keys();
- QSet<QString> tidSet(tids.begin(), tids.end());
- QSet<QString> keySet(keys.begin(), keys.end());
- QSet<QString> thisSet = tidSet - keySet;
- // 获取这次不属于本柜子物资列表
- QStringList thisMaterialList(thisSet.begin(), thisSet.end());
- // 获取上次不属于本柜子物资列表
- QStringList lastMaterialList = InteractiveConf::confReadElseMaterials();
- // 这次不属于本柜子物资列表写入
- InteractiveConf::confSaveElseMaterials(thisMaterialList);
- QSet<QString> thisMaterialSet(thisMaterialList.begin(), thisMaterialList.end());
- QSet<QString> laseMaterialSet(lastMaterialList.begin(), lastMaterialList.end());
- QSet<QString> backMaterialSet = thisMaterialSet - laseMaterialSet; // 入柜
- QSet<QString> takeMaterialSet = laseMaterialSet - thisMaterialSet; // 出柜
- pconfig->backElseMaterialList = QStringList(backMaterialSet.begin(), backMaterialSet.end());
- pconfig->takeElseMaterialList = QStringList(takeMaterialSet.begin(), takeMaterialSet.end());
- pconfig->elseMaterialList = pconfig->backElseMaterialList + pconfig->takeElseMaterialList;
- if (!pconfig->elseMaterialList.isEmpty())
- {
- getMaterialElseInfos();
- }
- if (!pconfig->backElseMaterialList.isEmpty())
- {
- // emit signal_backRefresh();
- }
- if (!pconfig->takeElseMaterialList.isEmpty())
- {
- // emit signal_takeRefresh();
- }
- // 调用对应的信号
- // 如果是取还操作
- if (pconfig->materworkstat == 0)
- {
- emit signal_updatetakebackMaterial();
- }
- // 如果是手动更换
- else if (pconfig->materworkstat == 1)
- {
- emit signal_updatetakebackMaterialHand();
- }
- // 如果是异常处理
- else if (pconfig->materworkstat == 3)
- {
- emit signal_updateExceptionHandle();
- }
- else if (pconfig->materworkstat == 4)
- {
- emit signal_updatematerialCheckPlan();
- }
- workstat = proWorkStat::upgradeMaterial;
- }
- }
- // 如果是自动更换
- else if (pconfig->materworkstat == 2)
- {
- if(pconfig->materialStock == false)
- {
- if(tidArray.length() > 0)
- {
- workstat = proWorkStat::getMaterial;
- }
- }
- else{
- pconfig->materialStock = true;
- pconfig->takeMaterialList.clear();
- pconfig->backMaterialList.clear();
- pconfig->backElseMaterialList.clear();
- pconfig->takeElseMaterialList.clear();
- pconfig->bindedMaterialList.clear();
- pconfig->unbindMaterialList.clear();
- // 如果属于本柜子
- for(auto it = pconfig->materialLoanStateList.cbegin(); it != pconfig->materialLoanStateList.cend(); ++it)
- {
- if(tidArray.contains(it.key()))
- {
- // 放入当做归还
- if(it.value() == SERVER_MATERIAL_LOANSTATE_OUT)
- {
- pconfig->backMaterialList.append(it.key());
- }
- }
- else{
- // 拿出当做解绑
- if(it.value() == SERVER_MATERIAL_LOANSTATE_IN)
- {
- // pconfig->takeMaterialList.append(it.key());
- pconfig->unbindMaterialList.append(it.key());
- }
- }
- }
- // 如果不属于本柜子
- QStringList tids = tidArray;
- QStringList keys = pconfig->materialLoanStateList.keys();
- QSet<QString> tidSet(tids.begin(), tids.end());
- QSet<QString> keySet(keys.begin(), keys.end());
- QSet<QString> thisSet = tidSet - keySet;
- // 获取这次不属于本柜子物资列表
- QStringList thisMaterialList(thisSet.begin(), thisSet.end());
- // 获取上次不属于本柜子物资列表
- QStringList lastMaterialList = InteractiveConf::confReadElseMaterials();
- // 这次不属于本柜子物资列表写入
- // InteractiveConf::confSaveElseMaterials(thisMaterialList);
- QSet<QString> thisMaterialSet(thisMaterialList.begin(), thisMaterialList.end());
- QSet<QString> laseMaterialSet(lastMaterialList.begin(), lastMaterialList.end());
- QSet<QString> backMaterialSet = thisMaterialSet - laseMaterialSet; // 入柜 绑定 且归还
- QSet<QString> takeMaterialSet = laseMaterialSet - thisMaterialSet; // 出柜 解除异常
- // 本次要写入配置里的物资
- QSet<QString> writhSet = laseMaterialSet - takeMaterialSet;
- QList<QString> writhList(writhSet.begin(), writhSet.end());
- InteractiveConf::confSaveElseMaterials(writhList);
- pconfig->bindedMaterialList = QStringList(backMaterialSet.begin(), backMaterialSet.end());
- pconfig->takeElseMaterialList = QStringList(takeMaterialSet.begin(), takeMaterialSet.end());
- pconfig->elseMaterialList = pconfig->backElseMaterialList + pconfig->takeElseMaterialList
- + pconfig->bindedMaterialList + pconfig->unbindMaterialList;
- if (!pconfig->elseMaterialList.isEmpty())
- {
- getMaterialElseInfos();
- }
- emit signal_updatetakebackMaterialAuto();
- workstat = proWorkStat::replaceMaterial;
- }
- }
- }
- void pro::slot_lockStat(bool leftStat, bool rightStat)
- {
- if(leftStat == false || rightStat == false)
- {
- pconfig->openDoor = true;
- // 开锁时刷新时间戳
- pconfig->lastLockTimeEpoch = QDateTime::currentSecsSinceEpoch();
- }
- else if(leftStat == true && rightStat == true)
- {
- pconfig->openDoor = false;
- // 关锁时时间戳置为0
- pconfig->lastLockTimeEpoch = 0;
- }
- if (pconfig->materworkstat == 0)
- {
- emit signal_lockStatTakeBack(leftStat, rightStat);
- }
- // 手动更换
- else if (pconfig->materworkstat == 1)
- {
- emit signal_lockStatReplaceHand(leftStat, rightStat);
- }
- // 自动更换
- else if (pconfig->materworkstat == 2)
- {
- emit signal_lockStatReplaceAuto(leftStat, rightStat);
- }
- else if (pconfig->materworkstat == 3)
- {
- emit signal_lockStatException(leftStat, rightStat);
- }
- else if (pconfig->materworkstat == 4)
- {
- emit signal_lockStatCheckPlan(leftStat, rightStat);
- }
- }
- void pro::slot_getMaterial(void)
- {
- workstat = proWorkStat::userMaterial;
- }
- void pro::slot_takebackstat(bool stat)
- {
- if(stat == true)
- {
- workstat = proWorkStat::openCabinet;
- }
- else{
- workstat = proWorkStat::closeCabinet;
- }
- }
- void pro::updateTime(void)
- {
- timer->stop();
- }
- void pro::moveCursorTo(int x, int y)
- {
- QCursor::setPos(x, y);
- }
- void pro::getSelModelNumber(QJSValue callback)
- {
- int loanNumber = 0;
- int exceNumber = 0;
- for (auto it = pconfig->materialLoanStateList.begin(); it != pconfig->materialLoanStateList.end(); ++it)
- {
- if (it.value() == 0 && pconfig->materialLoanUserList.contains(it.key()))
- {
- if (pconfig->materialLoanUserList[it.key()] == pconfig->userId)
- {
- loanNumber++;
- }
- }
- }
- InteractiveData *pSingletonData = SINGLETON_CREATE(InteractiveData)();
- // 进行数据读操作
- QReadLocker locker(&pSingletonData->m_dataCacheLock);
- exceNumber = pSingletonData->m_dataCacheExMaterialInfoId.size();
- int chackPlanStatus = pSingletonData->m_checkPlanStatus;
- int chackNumber = (chackPlanStatus == 0 || chackPlanStatus == 1) ? 1 : 0;
- QString strJson = QString("{\"loanNumber\":%1,\"exceNumber\":%2, \"chackNumber\":%3}").arg(loanNumber).arg(exceNumber).arg(chackNumber);
- if (callback.isCallable())
- {
- QJSValueList args;
- args << strJson;
- callback.call(args);
- }
- }
- void pro::getError(QJSValue callback)
- {
- QStringList rfids = InteractiveConf::confReadElseMaterials();
- if (callback.isCallable())
- {
- QJSValueList args;
- args << !rfids.isEmpty();
- // args << true;
- callback.call(args);
- }
- }
- QString pro::getUuid()
- {
- QUuid uuid = QUuid::createUuid();
- return uuid.toString(QUuid::WithoutBraces);
- }
- bool pro::eventFilter(QObject *obj, QEvent *event)
- {
- if (event->type() == QEvent::MouseButtonPress) {
- QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
- // qDebug() << "Global mouse click at:" << mouseEvent->globalPos();
- // 在这里处理全局鼠标点击
- emit signal_global_mouse_clicked();
- }
- return QObject::eventFilter(obj, event);;
- }
- void pro::run()
- {
- while(this->threadstatus)
- {
- switch(workstat)
- {
- case proWorkStat::usernameLogin:http_request_usernamelogin();break;
- case proWorkStat::cardLogin:http_request_cardlogin();break;
- case proWorkStat::fingerLogin:http_request_fingerLogin();break;
- case proWorkStat::insertfacelogin:http_request_insertfingerLogin();break;
- case proWorkStat::userLogout:http_request_userlogout();break;
- case proWorkStat::getMaterial:http_request_getMaterial();break;
- case proWorkStat::userMaterial:http_request_userMaterial();break;
- case proWorkStat::userMaterial_copy: http_request_userMaterial_copy(); break;
- case proWorkStat::openCabinet:http_request_openCabinet();break;
- case proWorkStat::closeCabinet:http_request_closeCabinet();break;
- case proWorkStat::upgradeMaterial:http_request_updateMaterial();break;
- case proWorkStat::replaceMaterial:http_request_replaceMaterial();break;
- // case proWorkStat::exceptionHandle:http_request_exceptionHandle();break; // 异常处理
- case proWorkStat::materialTypeGet:http_request_materialTypeGet();break;
- case proWorkStat::instructionsGet:http_request_instructionsGet();break;
- case proWorkStat::getMaterialCheckPlan:http_request_getMaterialCheckPlan();break;
- case proWorkStat::getMaterialCheckForm:http_request_getMaterialCheckForm();break;
- case proWorkStat::postSaveForm:http_request_postSaveForm(); break;
- case proWorkStat::postCheckSign:http_request_postCheckSign(); break;
- case proWorkStat::postSubmit:http_request_postSubmit(); break;
- case proWorkStat::getMaterialInfoList:http_request_getMaterialInfoList();
- }
- msleep(20);
- }
- qDebug() << "pro thread exit!";
- }
|