240717班级,工业化控制系统,煤矿相关行业,昆仑系统
wangky
2024-10-31 2303163f4c0109057af678ca49428653ee8c6dfd
Merge branch 'master' of ssh://115.28.86.8:29418/~admin/昆仑_1025
7个文件已修改
7个文件已添加
1个文件已删除
305 ■■■■■ 已修改文件
Client/姜可庚/code/2024kunlun_project_permisson/2024kunlun_project_permisson.pro.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/姜可庚/code/2024kunlun_project_permisson/PmsClientSocket.cpp 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/姜可庚/code/2024kunlun_project_permisson/PmsClientSocket.cpp.autosave 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/姜可庚/code/2024kunlun_project_permisson/PmsClientSocket.h 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/姜可庚/code/2024kunlun_project_permisson/permissonwindow.cpp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/宋昊昳/document/系统设置需求分析.docx 补丁 | 查看 | 原始文档 | blame | 历史
Client/宋昊昳/log/日志_宋昊昳_1031.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/李宵增/document/历史查询分析模块需求分析.docx 补丁 | 查看 | 原始文档 | blame | 历史
Client/李宵增/log/历史查询_李宵增_1030.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/王鑫鑫/log/昆仑_1031项目日报.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/申烜/document/注册登录数据库表.docx 补丁 | 查看 | 原始文档 | blame | 历史
Client/申烜/document/注册登录需求分析.docx 补丁 | 查看 | 原始文档 | blame | 历史
Server/李转转/log/log_1031.doc 补丁 | 查看 | 原始文档 | blame | 历史
Server/马渝杭/code/common.h 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Server/马渝杭/log/日志_马渝杭_20241030.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/½ª¿É¸ý/code/2024kunlun_project_permisson/2024kunlun_project_permisson.pro.user
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.5.0, 2024-10-31T13:04:10. -->
<!-- Written by QtCreator 4.5.0, 2024-10-31T15:06:39. -->
<qtcreator>
 <data>
  <variable>EnvironmentId</variable>
Client/½ª¿É¸ý/code/2024kunlun_project_permisson/PmsClientSocket.cpp
@@ -2,7 +2,7 @@
#include <QMessageBox>
PmsClientSocket::PmsClientSocket(QObject * parent):QObject(parent)
PmsClientSocket::PmsClientSocket(QWidget * parent):QWidget(parent)
{
    client = new QTcpSocket(this);
@@ -70,8 +70,8 @@
              vector<PmsQueryResult> vecs;
              for(int i =0;i<100;i++){
                  if(*(int *)&res->pmsList[i]){
                      PmsRes structRes = res->pmsList[i];
                  PmsRes structRes =res->pmsList[i];
                  if(*(int *)&structRes){
                      PmsQueryResult res;
                      res.setName(string(structRes.name));
                      res.setUserNo(string(structRes.userNo));
@@ -100,8 +100,8 @@
        if(res->success){
            QString dlgTitle = "更新结果";
            QString strInfo = "权限信息更新成功";
//            QMessageBox::information(this,dlgTitle,strInfo,
//                                     QMessageBox::Ok, QMessageBox::NoButton);
            QMessageBox::information(this,dlgTitle,strInfo,
                                      QMessageBox::Ok, QMessageBox::NoButton);
        }else{
//            QMessageBox::warning(this, "更新结果", "权限信息更新失败");
        }
Client/½ª¿É¸ý/code/2024kunlun_project_permisson/PmsClientSocket.cpp.autosave
New file
@@ -0,0 +1,109 @@
#include "PmsClientSocket.h"
#include <QMessageBox>
PmsClientSocket::PmsClientSocket(QWidget * parent):QWidget(parent)
{
    client = new QTcpSocket(this);
    client->connectToHost(targetIp,port);
    if(!client->waitForConnected(3000)){
        qDebug()<< "QT网络通信,连接服务端失败!";
        return;
    }
    connectSuccess = true;
    qDebug()<< "QT网络通信成功已连接服务器!";
    connect(client,SIGNAL(connected()),this,SLOT(connected_Slot()));
}
void PmsClientSocket::queryAllUserAboutUser()
{
    if(connectSuccess){
        QueryPmsRequest req;
        client->write((char *)&req,req.head.len);
        qDebug() << "查询全部权限请求发送成功";
    }
}
void PmsClientSocket::queryPmsByParam(PmsParam param)
{
    if(connectSuccess){
        QueryPmsRequest req;
        strcpy(req.name,param.getName().c_str());
        strcpy(req.permissonType,param.getPermissonType().c_str());
        strcpy(req.userNo,param.getUserNo().c_str());
        client->write((char *)&req,req.head.len);
        qDebug() << "条件查询权限请求发送成功";
    }
}
void PmsClientSocket::updatePmsByParam(PmsPlusParma param)
{
    UpdatePmsRequest upReq;
    upReq.devManage = param.getDevManage();
    upReq.loggerSearch = param.getLoggerSearch();
    upReq.mapMark = param.getMapMark();
    upReq.productPlan = param.getProductPlan();
    upReq.roleId = param.getRoleId();
    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();
    QString recvData = QString::fromLocal8Bit(buf);
    qDebug()<< "client收到的数据" << recvData;
    QueryPmsResponse * res;
    UpdatePmsResponse * upRes;
    int type = *(int *)buf.data();
    if(type == QUERY_PMS_REQ){
          res = (QueryPmsResponse *)buf.data();
          if(res->success){
              vector<PmsQueryResult> vecs;
              for(int i =0;i<100;i++){
                  PmsRes structRes =res->pmsList[i];
                  if(*(int *)&structRes){
                      PmsQueryResult res;
                      res.setName(string(structRes.name));
                      res.setUserNo(string(structRes.userNo));
                      res.setRoleId(structRes.roleId);
                      res.setStartDateTime(string(structRes.startDateTime));
                      res.setEndDateTime(string(structRes.endDateTime));
                      res.setLoggerSearch(structRes.loggerSearch);
                      res.setMapMark(structRes.mapMark);
                      res.setDevManage(structRes.devManage);
                      res.setProductPlan(structRes.productPlan);
                      res.setQueryHistory(structRes.queryHistory);
                      res.setPermissonType(string(structRes.permissonType));
                      vecs.push_back(res);
                  }else break;
              }
              if(!vecs.empty()){
                  emit notifyDateChange(vecs);
              }
          }
    }
    if(type == UPDATE_PMS_REQ){
        res = (QueryPmsResponse *)buf.data();
        if(res->success){
            QString dlgTitle = "更新结果";
            QString strInfo = "权限信息更新成功";
            QMessageBox::information(this,dlgTitle,strInfo,
                                      QMessageBox::Ok, QMessageBox::NoButton);
        }else{
            QMessageBox::warning(this, "更新结果", "权限信息更新失败");
        }
    }
}
Client/½ª¿É¸ý/code/2024kunlun_project_permisson/PmsClientSocket.h
@@ -6,6 +6,7 @@
#include <vector>
#include "pmsplusparam.h"
#include <QDebug>
#include <QWidget>
using namespace std;
@@ -30,9 +31,9 @@
    char permissonType[32];
    QueryPmsRequest(){
        head.type=QUERY_PMS_REQ;
        userNo[32] = {0};
        name[32] = {0};
        permissonType[32] = {0};
        memset(userNo,0,32);
        memset(permissonType,0,32);
        memset(name,0,32);
        head.len = sizeof(QueryPmsRequest);
    }
} QueryPmsRequest;
@@ -54,7 +55,6 @@
// å•个人员权限结构体
typedef struct UserAboutPms{
    int queryHistory;
    int loggerSearch;
    int mapMark;
@@ -66,18 +66,16 @@
    char permissonType[32];
    char startDateTime[32];
    char endDateTime[32];
} PmsRes;
// æŸ¥è¯¢äººå‘˜å’Œè§’色信息的响应结构体
typedef struct UserAboutPmsResponse{
    Head head;
    int success; // 1为成功 ,0为失败
    PmsRes  *pmsList;
    PmsRes  pmsList[100];
    UserAboutPmsResponse(){
        head.type=QUERY_PMS_RES;
        pmsList = (PmsRes *)malloc(sizeof(PmsRes)*100);
        pmsList = {0};
        memset(pmsList,0,sizeof(PmsRes));
        head.len = sizeof(UserAboutPmsResponse);
    }
} QueryPmsResponse;
@@ -94,7 +92,7 @@
} UpdatePmsResponse ;
class PmsClientSocket : public QObject
class PmsClientSocket : public QWidget
{
    Q_OBJECT
@@ -106,7 +104,7 @@
    bool connectSuccess= false;
public:
    PmsClientSocket(QObject * parent=0);
    PmsClientSocket(QWidget * parent=0);
    void queryAllUserAboutUser();
    void queryPmsByParam(PmsParam param);
Client/½ª¿É¸ý/code/2024kunlun_project_permisson/permissonwindow.cpp
@@ -11,7 +11,7 @@
    ui(new Ui::PermissonWindow)
{
    ui->setupUi(this);
    clientSocket = new PmsClientSocket;
    clientSocket = new PmsClientSocket(this);
    dia = new PermissonDialog(this,clientSocket);
Client/ËÎ껕i/document/ϵͳÉèÖÃÐèÇó·ÖÎö.docx
Binary files differ
Client/ËÎ껕i/log/ÈÕÖ¾_ËÎ껕i_1031.doc
Binary files differ
Client/ÀîÏüÔö/document/ÀúÊ·²éѯ·ÖÎöÄ£¿éÐèÇó·ÖÎö.docx
Binary files differ
Client/ÀîÏüÔö/log/ÀúÊ·²éѯ_ÀîÏüÔö_1030.doc
Binary files differ
Client/ÍõöÎöÎ/log/À¥ÂØ_1031ÏîÄ¿ÈÕ±¨.doc
Binary files differ
Client/ÉêŸ@/document/×¢²áµÇ¼Êý¾Ý¿â±í.docx
Binary files differ
Client/ÉêŸ@/document/×¢²áµÇ¼ÐèÇó·ÖÎö.docx
Binary files differ
Server/Àîתת/log/log_1031.doc
Binary files differ
Server/ÂíÓ庼/code/common.h
New file
@@ -0,0 +1,164 @@
#ifndef COMMON_H
#define COMMON_H
#include  <string.h>
//私有协议封装
//请求响应结构体有数据头+数据体
//使用枚举来统一各种功能类型】
enum TypeInfo{
    LOGIN_REQ,  //登录请求
    LOGIN_RES,
    VERSIONUPDATA_REQ,  // ç‰ˆæœ¬æ›´æ–°è¯·æ±‚
    VERSIONUPDATA_RES,
    VERSIONNUM_REQ,     //版本号请求
    VERSIONNUM_RES,
    UPLOAD_FILE_REQ,
    UPLOAD_FILE_RES,
    VERSIONINFOENTRY_REQ,    //版本信息条目
    VERSIONINFOENTRY_RES
};
struct Head
{
    int type;   // åŠŸèƒ½ç±»åž‹ï¼Œè§£å†³æ¯ä¸ªåŒ…çš„å…·ä½“ä½œç”¨ï¼ŒåŒºåˆ†ä¸šåŠ¡
    int len;    //封包长度
};
// ç™»å½•业务
// ç™»å½•请求
struct LoginReq
{
    Head head;
    char user_name[32];
    char password[32];
    LoginReq(){
        head.type=LOGIN_REQ;
        head.len=sizeof(LoginReq);
    }
};
//登录权限结构体
struct PermissionInfo
{
    int admin;  //管理员
    int history; //历史查看
    int version_manager;//版本管理
    int log_search; //日志查看
    int flaw_mark ; //缺陷标记
};
//登录响应
struct LoginRes
{
    Head head;
    char user_name[32];
    int state; // ç™»å½•状态
    PermissionInfo per;
    LoginRes(){
        head.type=LOGIN_RES;
        head.len=sizeof(LoginRes);
    }
};
struct VersionUpdataReq //版本更新请求的结构体
{
    Head head;
    VersionUpdataReq(){
        head.type=VERSIONUPDATA_REQ;
        head.len=sizeof(VersionUpdataReq);
    }
};
struct VersionUpdataRes //版本更新响应的结构体
{
    Head head;
    char version_id[64];    // ç‰ˆæœ¬å·
    char update_date[32];   //更新时间
    char file_path[128];   //服务端提供最新版本的本地路径
    VersionUpdataRes(){
        head.type=VERSIONUPDATA_REQ;
        head.len=sizeof(VersionUpdataReq);
    }
};
struct VersionNumReq    //版本号请求
{
    Head head;
    VersionNumReq(){
        head.type=VERSIONNUM_REQ;
        head.len=sizeof(VersionNumReq);
    }
};
struct VersionNumRes
{
    Head head;
    char version_id[64];
    VersionNumRes(){
        head.type=VERSIONNUM_RES;
        head.len=sizeof(VersionNumRes);
    }
};
//文件传输功能
struct FileInfo
{
    char file_name[256];
    long long file_size;
    char s_filepath[32];
    char content[0];    //柔性数组结构体
};
struct UploadFileReq
{
    Head head;
    FileInfo fileInfo;
    UploadFileReq(){
        head.type=UPLOAD_FILE_REQ;
        head.len=sizeof(UploadFileReq);
    }
};
struct UploadFileRes
{
    Head head;
   int status;
   long long file_size;     //总大小
   long long file_cuesize;  //文件已传大小
    UploadFileRes(){
        head.type=UPLOAD_FILE_RES;
        head.len=sizeof(UploadFileRes);
    }
};
//版本信息录入---版本信息条目
struct VersionInfoEntryReq
{
   Head head;
   char version_id[64];
   char version_id_old[64];
   char s_filepath[32];     //服务器放最新版本的路径
   char version_description[256];   //更新描述
   char version_creattime[32];  //更新时间
   char filename[16][128];      //支持多文件上传
   long long filesize[16];      //文件组的大小
   char c_filepath[16][128];    //客户端的安装路径
   int filenum;     //一次版本更新所需文件个数
   VersionInfoEntryReq(){
        head.type=VERSIONINFOENTRY_REQ;
        head.len=sizeof(VersionInfoEntryReq);
    }
};
//响应
struct VersionInfoEntryRes {
    Head head;
    char version_id_old[64]; // ç‰ˆæœ¬å·
    VersionInfoEntryRes()
    {
        head.type = VERSIONINFOENTRY_RES;
        head.len = sizeof(VersionInfoEntryRes);
    }
};
#endif // COMMON_H
Server/ÂíÓ庼/log/ÈÕÖ¾_ÂíÓ庼_20241030.doc
Binary files differ