240717班级,工业化控制系统,煤矿相关行业,昆仑系统
jiangkegeng
2024-11-06 4a1a12cae90387018e1653d8d2ec989b7c317851
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include "PmsClientSocket.h"
 
#include <QMessageBox>
 
PmsClientSocket::PmsClientSocket(QWidget * parent):QWidget(parent)
{
    client = new QTcpSocket(this);
    connect(client,SIGNAL(connected()),this,SLOT(connected_Slot()));
    client->connectToHost(targetIp,port);
    if(!client->waitForConnected(3000)){
 
        qDebug()<< "QT网络通信,连接服务端失败!";
        return;
    }
    connectSuccess = true;
    qDebug()<< "QT网络通信成功已连接服务器!";
}
 
void PmsClientSocket::queryAllUserAboutUser()
{
    if(connectSuccess){
        QueryPmsReq req;
        client->write((char *)&req,req.head.len);
        qDebug() << "查询全部权限请求发送成功";
    }
 
}
void PmsClientSocket::queryPmsByParam(PmsParam param)
{
    if(connectSuccess){
        QueryPmsReq req;
        strcpy(req.name,param.getName().toLocal8Bit().data());
        strcpy(req.permissonType,param.getPermissonType().toLocal8Bit().data());
        strcpy(req.userNo,param.getUserNo().toLocal8Bit().data());
        client->write((char *)&req,req.head.len);
        qDebug() << "条件查询权限请求发送成功";
    }
}
 
void PmsClientSocket::updatePmsByParam(PmsPlusParma param)
{
    UpdatePmsReq upReq;
 
    upReq.id = param.getId();
    if(param.getPermissonType().isEmpty()){
        upReq.devManage = param.getDevManage();
        upReq.loggerSearch = param.getLoggerSearch();
        upReq.mapMark = param.getMapMark();
        upReq.productPlan = param.getProductPlan();
        upReq.warningManage = param.getWarninManage();
        upReq.versionManage = param.getVersionManage();
        upReq.admin = param.getAdmin();
        upReq.queryHistory = param.getQueryHistory();
 
        memset(upReq.permissonType,0,32);
    }else {
        strcpy(upReq.permissonType,param.getPermissonType().toLocal8Bit().data());
    }
    client->write((char *)&upReq,upReq.head.len);
    qDebug() << "更新权限请求发送成功";
}
 
void PmsClientSocket::connected_Slot()
{
    connect(client,SIGNAL(readyRead()),this,SLOT(readyRead_Slot()));
}
 
void PmsClientSocket::readyRead_Slot()
{
    QByteArray buf = client->readAll();
    qDebug()<< "client收到了的数据";
    QueryPmsRes * res;
    UpdatePmsRes * upRes;
    Head head = *(Head *)buf.data();
    if(head.type == QUERY_PMS_RES){
        qDebug()<< "查询响应";
          res = (QueryPmsRes *)buf.data();
          if(res->success){
              vector<PmsQueryResult> vecs;
              int pmsLen = (res->head.len-sizeof(QueryPmsRes))/sizeof(PmsRes);
              for(int i =0;i<pmsLen;i++){
                  PmsRes structRes = res->pmsList[i];
                      PmsQueryResult qres;
                      qres.setName(QString::fromLocal8Bit(structRes.name));
                      qres.setUserNo(QString::fromLocal8Bit(structRes.userNo));
                      qres.setId(structRes.id);
                      qres.setLoginTime(string(structRes.loginTime));
                      qres.setRegisterTime(string(structRes.registerTime));
                      qres.setLoggerSearch(structRes.loggerSearch);
                      qres.setMapMark(structRes.mapMark);
                      qres.setDevManage(structRes.devManage);
                      qres.setProductPlan(structRes.productPlan);
                      qres.setQueryHistory(structRes.queryHistory);
                      qres.setPermissonType(QString::fromLocal8Bit(structRes.permissonType));
                      qres.setWarninManage(structRes.warningManage);
                      qres.setVersionManage(structRes.versionManage);
                      qres.setAdmin(structRes.admin);
                      vecs.push_back(qres);
              }
              emit notifyDateChange(vecs);
          }else{
              // 查询失败数据为空清除表格数据
              emit notifyDateChange(vector<PmsQueryResult>());
          }
    }
    if(head.type == UPDATE_PMS_RES){
        upRes = (UpdatePmsRes *)buf.data();
        qDebug()<< "更新响应";
        if(upRes->success){
            QString dlgTitle = "更新结果";
            QString strInfo = "权限信息更新成功";
            QMessageBox::information(this,dlgTitle,strInfo,
                                      QMessageBox::Ok, QMessageBox::NoButton);
        }else{
            QMessageBox::warning(this, "更新结果", "权限信息更新失败");
        }
    }
}