From 60f147d3302b967cef0f68523877164bd38ed4a6 Mon Sep 17 00:00:00 2001
From: congmu <congmu2024@163.com>
Date: 星期四, 31 十月 2024 15:56:01 +0800
Subject: [PATCH] 提交common.h

---
 common.h |  640 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 640 insertions(+), 0 deletions(-)

diff --git a/common.h b/common.h
new file mode 100644
index 0000000..ef634f6
--- /dev/null
+++ b/common.h
@@ -0,0 +1,640 @@
+#ifndef COMMON_H
+#define COMMON_H
+#include  <string.h>
+#include <vector>
+
+enum TypeInfo{
+
+    //娉ㄥ唽鐧诲綍
+	LOGIN_REQ, // 鐧诲綍璇锋眰
+	LOGIN_RES, // 鐧诲綍鍝嶅簲
+	REGISTER_REQ, //娉ㄥ唽璇锋眰
+	REGISTER_RES, //娉ㄥ唽鍝嶅簲
+	RESET_REQ, //閲嶇疆瀵嗙爜璇锋眰
+	RESET_RES, //閲嶇疆瀵嗙爜鍝嶅簲
+
+    //鍘嗗彶鏌ヨ鍒嗘瀽
+    HISTORY_QUERY_REQ, // 鍘嗗彶鏌ヨ璇锋眰
+    HISTORY_QUERY_RES, // 鍘嗗彶鏌ヨ鍝嶅簲
+
+    //鏉冮檺绠$悊
+    QUERY_PMS_REQ,      // 鎸夊憳宸ョ紪鍙枫�佸悕瀛楁垨鑱屼綅鏌ヨ浜哄憳鏉冮檺淇℃伅璇锋眰
+    UPDATE_PMS_REQ,     // 鎸夎鑹瞚d鏇存柊鏉冮檺淇℃伅璇锋眰
+    QUERY_PMS_RES,      // 鏌ヨ浜哄憳鍜岃鑹蹭俊鎭殑鍝嶅簲缁撴瀯浣�
+    UPDATE_PMS_RES,     // 鏉冮檺鏇存柊缁撴灉鍝嶅簲浣�
+
+    //鍦板浘鏍囨敞
+    MAPMARK_REQ,//鍦板浘鏍囨敞璇锋眰
+	MAPMARK_RES//鍦板浘鏍囨敞鍝嶅簲
+
+    //鐢熶骇璁″垝绠$悊
+    ADDPRODUCTIONPLAN_REQ,//娣诲姞涓�琛屾暟鎹殑璇锋眰缁撴瀯浣�
+	ADDPRODUCTIONPLAN_RES,//娣诲姞涓�琛屾暟鎹殑鍝嶅簲缁撴瀯浣�
+	UPDATEPRODUCTIONPLANQUANTITY_REQ,// 鏇存柊鐢熶骇璁″垝锛堣鍒掔敓浜ч噺锛夌殑璇锋眰缁撴瀯浣�
+	UPDATEPRODUCTIONPLANQUANTITY_RES,// 鏇存柊鐢熶骇璁″垝锛堣鍒掔敓浜ч噺锛夌殑鍝嶅簲缁撴瀯浣�
+	UPDATEPRODUCTIONPLANLOG_REQ,//鏇存柊鐢熶骇璁″垝锛堟棩蹇楋級鐨勮姹傜粨鏋勪綋
+	UPDATEPRODUCTIONPLANLOG_RES,//鏇存柊鐢熶骇璁″垝锛堟棩蹇楋級鐨勫搷搴旂粨鏋勪綋
+	PRODUCTIONPLAN_REQ,// 鏌ヨ鐢熶骇璁″垝淇℃伅鐨勮姹傜粨鏋勪綋
+	PRODUCTIONPLAN_RES,// 鏌ヨ鐢熶骇璁″垝淇℃伅鐨勫搷搴旂粨鏋勪綋
+	FORRECENTFOURTEENPRODUCTIONPLANS_REQ,//鏌ヨ杩戝崄鍥涙潯鐨勮姹傜粨鏋勪綋
+	FORRECENTFOURTEENPRODUCTIONPLANS_RES //鏌ヨ杩戝崄鍥涙潯鐨勫搷搴旂粨鏋勪綋
+
+    //鑷姩鍗囩骇&鐗堟湰绠$悊
+    VERSIONNUM_REQ,  // 鐗堟湰鍙疯姹�
+    VERSIONNUM_RES,   // 鐗堟湰鍙峰搷搴�
+    UPLOAD_FILE_REQ, // 涓婁紶鏂囦欢鐨勮姹�
+    UPLOAD_FILE_RES, // 涓婁紶鏂囦欢鐨勫搷搴�
+    VERSIONINFOENTRY_REQ,       // 鐗堟湰淇℃伅褰曞叆璇锋眰
+    VERSIONINFOENTRY_RES,       //鐗堟湰淇℃伅褰曞叆鍝嶅簲
+    VERSIONUPDATE_REQ, // 鐗堟湰鏇存柊璇锋眰
+    VERSIONUPDATE_RES, // 鐗堟湰鏇存柊鍝嶅簲
+    FILEDOWNLOADS_REQ, // 鐗堟湰鏇存柊鏂囦欢涓嬭浇璇锋眰
+    FILEDOWNLOADS_RES, // 鐗堟湰鏇存柊鏂囦欢涓嬭浇鍝嶅簲
+    DOWNLOADSUCCESSFULLY_RES        // 鏇存柊鏂囦欢涓嬭浇鎴愬姛鐨勫搷搴�
+
+    //鏃ュ織
+    LOGSEARCH_REQ;//鏃ュ織鏌ヨ璇锋眰
+	LOGSEARCH_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 Permission
+	{
+		int admin;
+		int log_search; //鏃ュ織鏌ヨ
+		int history; //鍘嗗彶璁板綍
+		int map_change;//鍦板浘
+		int version_manage; // 鐗堟湰绠$悊
+		int warning; //璀︽姤
+		int device_manage; //璁惧绠$悊
+		int pro_plan;//鐢熶骇璁″垝
+		char role_name[32]; // 瑙掕壊鍚�
+	};
+	
+	//鐧诲綍鍝嶅簲
+	struct LoginRes
+	{
+		Head head;
+		char user_name[32];
+		int status; // 鐧诲綍鐘舵��
+		// 鐧诲綍鎴愬姛鏃讹紝璇ヨ处鍙峰搴旂殑鏉冮檺缁勫悎
+		Permission per;
+		LoginRes()
+		{
+			head.type = LOGIN_RES;
+			head.len = sizeof(LoginRes);
+		};
+	};
+
+	//娉ㄥ唽璇锋眰 
+	struct RegisterReq
+	{
+		Head head;
+		char user_name[32];
+		char password[32];
+		char email[50];
+		int telephone;
+		RegisterReq(){
+			head.type = REGISTER_REQ;
+			head.len = sizeof(RegisterReq);
+		}
+	};
+
+	//娉ㄥ唽鍝嶅簲
+	struct RegisterRes
+	{
+		Head head;
+		char user_name[32];
+		int status; // 娉ㄥ唽鐘舵��
+		//娉ㄥ唽鎴愬姛锛岄粯璁ゆ渶灏忔潈闄愮粍鍚�
+		Permission per;
+		RegisterRes()
+		{
+			head.type = REGISTER_RES;
+			head.len = sizeof(RegisterRes);
+		};
+	};
+
+	//閲嶇疆瀵嗙爜璇锋眰 
+	struct ResetReq
+	{
+		Head head;
+		char email[50];
+		char password[32];
+		ResetReq(){
+			head.type = RESET_REQ;
+			head.len = sizeof(ResetReq);
+		}
+	};
+
+	//閲嶇疆瀵嗙爜鍝嶅簲
+	struct ResetRes
+	{
+		Head head;
+		char user_name[32];
+		int status; // 閲嶇疆瀵嗙爜鐘舵��
+		ResetRes()
+		{
+			head.type = RESET_RES;
+			head.len = sizeof(ResetRes);
+		};
+	};
+
+
+// 鍘嗗彶鏌ヨ璇锋眰缁撴瀯浣�
+struct HistoryQueryReq {
+    Head head;
+    //鏍规嵁鏃堕棿鑼冨洿鏌ヨ
+    char start_time[32];
+    char end_time[32];
+
+    HistoryQueryReq() {
+        // 鍒濆鍖栨暟鎹ご
+        head.type = HISTORY_QUERY_REQ;
+        head.len = sizeof(HistoryQueryReq);
+        // 鍒濆鍖栨煡璇㈡潯浠跺瓧娈�
+        std::memset(start_time, 0, sizeof(start_time));
+        std::memset(end_time, 0, sizeof(end_time));
+    }
+};
+
+
+// 鍘嗗彶鏌ヨ鍝嶅簲缁撴瀯浣�
+struct HistoryQueryRes {
+    Head head;
+
+    char results[1024][32];
+    int result_count;
+
+    HistoryQueryRes() {
+        // 鍒濆鍖栨暟鎹ご
+        head.type = HISTORY_QUERY_RES;
+        head.len = sizeof(HistoryQueryRes);
+        // 鍒濆鍖栫粨鏋滅浉鍏冲瓧娈�
+        result_count = 0;
+        std::memset(results, 0, sizeof(results));
+    }
+};
+
+
+// 鎸夊憳宸ョ紪鍙枫�佸悕瀛楁垨鑱屼綅鏌ヨ浜哄憳鏉冮檺淇℃伅璇锋眰
+typedef struct QueryPmsRequest{
+    Head head;
+    char userNo[32];
+    char name[32];
+    char permissonType[32];
+    QueryPmsRequest(){
+        head.type=QUERY_PMS_REQ;
+        userNo[32] = {0};
+        name[32] = {0};
+        permissonType[32] = {0};
+        head.len = sizeof(QueryPmsRequest);
+    }
+} QueryPmsRequest;
+
+// 鎸夎鑹瞚d鏇存柊鏉冮檺淇℃伅璇锋眰
+typedef struct UpdatePmsRequest{
+    Head head;
+    int roleId;
+    int queryHistory;
+    int loggerSearch;
+    int mapMark;
+    int devManage;
+    int productPlan;
+    UpdatePmsRequest(){
+        head.type=QUERY_PMS_RES;
+        head.len = sizeof(UpdatePmsRequest);
+    }
+} UpdatePmsRequest;
+
+// 鍗曚釜浜哄憳鏉冮檺缁撴瀯浣�
+typedef struct UserAboutPms{
+
+    int queryHistory;
+    int loggerSearch;
+    int mapMark;
+    int devManage;
+    int productPlan;
+    int roleId;
+    char userNo[32];
+    char name[32];
+    char permissonType[32];
+    char startDateTime[32];
+    char endDateTime[32];
+
+} PmsRes;
+
+// 鏌ヨ浜哄憳鍜岃鑹蹭俊鎭殑鍝嶅簲缁撴瀯浣�
+typedef struct UserAboutPmsResponse{
+    Head head;
+    int success; // 1涓烘垚鍔� ,0涓哄け璐�
+    PmsRes pmsList[100];
+    UserAboutPmsResponse(){
+        head.type=QUERY_PMS_RES;
+        head.len = sizeof(UserAboutPmsResponse);
+    }
+} QueryPmsResponse;
+
+// 鏉冮檺鏇存柊缁撴灉鍝嶅簲浣�
+typedef struct UpdatePmsResponse{
+    Head head;
+    int success; // 1涓烘垚鍔� ,0涓哄け璐�
+    UpdatePmsResponse(){
+        head.type = UPDATE_PMS_RES;
+        head.len = sizeof(UpdatePmsResponse);
+    }
+
+} UpdatePmsResponse ;
+
+//鍦板浘鏍囨敞璇锋眰 
+struct MapMarkReq
+{
+	Head head;
+	int marktype;//鎻掑叆銆佸垹闄ゃ��
+	char msg[0];//鏌旀�ф暟缁�
+		LoginReq(){
+		head.type = MAPMARK_REQ;
+		head.len = sizeof(MapMarkReq);
+	}
+};
+	
+//鍦板浘鍝嶅簲锛�
+struct MarkInfo
+{
+	int mark_id;//鏍囨敞鐐筰d
+	string latitude;//绾害
+	string longitude;//缁忓害
+	int device_id;//璁惧ID
+	int device_status;//璁惧鐘舵��
+	string device_name;//璁惧鍚嶇О
+};
+	
+struct MapMarkRes  ////鍦板浘鏍囨敞鍝嶅簲
+{
+	Head head;
+	int marktype;//鎻掑叆杩樻槸鍒犻櫎
+	int status; // 鎿嶄綔鐘舵�乢鎴愬姛/澶辫触
+	MaskInfo info[0];//鏌旀�ф暟缁�
+	MapMarkRes()
+	{
+		head.type = MAPMARK_RES;
+		head.len = sizeof(MapMarkRes);
+	};
+};
+
+
+//娣诲姞涓�琛屾暟鎹殑璇锋眰缁撴瀯浣�
+struct AddProductionPlanReq {
+	Head head;
+	int type;
+	char productionDate[32];
+	int productionQuantity;
+	int plannedProductionQuantity;
+	int predictedProductionQuantity;
+	char logText[256];
+	AddProductionPlanReq() {
+		head.type = ADDPRODUCTIONPLAN_REQ;
+		head.len = sizeof(AddProductionPlanReq);
+	}
+};
+//娣诲姞涓�琛屾暟鎹殑鍝嶅簲缁撴瀯浣�
+struct AddProductionPlanRes {
+	Head head;
+	int type;
+	int status; // 鍙互琛ㄧず娣诲姞鏄惁鎴愬姛锛� 0 琛ㄧず澶辫触锛�1 琛ㄧず鎴愬姛
+	AddProductionPlanRes() {
+		head.type = ADDPRODUCTIONPLAN_RES;
+		head.len = sizeof(AddProductionPlanRes);
+	}
+};
+
+// 鏇存柊鐢熶骇璁″垝锛堣鍒掔敓浜ч噺锛夌殑璇锋眰缁撴瀯浣�
+struct UpdateProductionPlanQuantityReq {
+	Head head;
+	int type;
+	int plannedProductionQuantity;
+	char productionDate[32];
+	UpdateProductionPlanQuantityReq() {
+		head.type = UPDATEPRODUCTIONPLANQUANTITY_REQ;
+		head.len = sizeof(UpdateProductionPlanQuantityReq);
+	}
+};
+// 鏇存柊鐢熶骇璁″垝锛堣鍒掔敓浜ч噺锛夌殑鍝嶅簲缁撴瀯浣�
+struct UpdateProductionPlanQuantityRes {
+	Head head;
+	int type;
+	int status; // 鍙互琛ㄧず鏇存柊鏄惁鎴愬姛锛屼緥濡� 0 琛ㄧず澶辫触锛�1 琛ㄧず鎴愬姛
+	UpdateProductionPlanQuantityRes() {
+		head.type = UPDATEPRODUCTIONPLANQUANTITY_RES;
+		head.len = sizeof(UpdateProductionPlanQuantityRes);
+	}
+};
+
+
+// 鏇存柊鐢熶骇璁″垝锛堟棩蹇楋級鐨勮姹傜粨鏋勪綋
+struct UpdateProductionPlanLogReq {
+	Head head;
+	int type;
+	char logText[256];
+	char productionDate[32];
+	UpdateProductionPlanLogReq() {
+		head.type = UPDATEPRODUCTIONPLANLOG_REQ;
+		head.len = sizeof(UpdateProductionPlanLogReq);
+	}
+};
+// 鏇存柊鐢熶骇璁″垝璇锋眰锛堟棩蹇楋級鐨勫搷搴旂粨鏋勪綋
+struct UpdateProductionPlanLogRes {
+	Head head;
+	int type;
+	int status; // 鍙互琛ㄧず鏇存柊鏄惁鎴愬姛锛屼緥濡� 0 琛ㄧず澶辫触锛�1 琛ㄧず鎴愬姛
+	UpdateProductionPlanLogRes() {
+		head.type = UPDATEPRODUCTIONPLANLOG_RES;
+		head.len = sizeof(UpdateProductionPlanLogRes);
+	}
+};
+
+
+
+// 鏌ヨ鐢熶骇璁″垝淇℃伅璇锋眰
+struct ProductionPlanReq {
+	Head head;
+	int type;
+	int len;
+	char productionDate[32];
+	int productionQuantity;
+	int plannedProductionQuantity;
+	int predictedProductionQuantity;
+	char logText[256];
+	ProductionPlanReq() {
+		head.type = PRODUCTIONPLAN_REQ;
+		head.len = sizeof(ProductionPlanReq);
+	}
+};
+// 鏌ヨ鐢熶骇璁″垝淇℃伅鐨勫搷搴旂粨鏋勪綋
+struct ProductionPlanRes {
+	Head head;
+	int type;
+	int len;
+	int productionQuantity;
+	int plannedProductionQuantity;
+	int predictedProductionQuantity;
+	int roleId;
+	char productionDate[32];
+	char logText[256];
+	ProductionPlanRes() {
+		head.type = PRODUCTIONPLAN_REQ;
+		head.len = sizeof(ProductionPlanRes);
+	}
+};
+
+
+
+//鏌ヨ杩戝崄鍥涙潯鐨勮姹傜粨鏋勪綋
+struct RecentFourteenProductionPlansReq {
+	Head head;
+	int requestType;
+	RecentFourteenProductionPlansReq() {
+		head.type = RECENTFOURTEENPRODUCTIONPLANS_REQ;
+		head.len = sizeof(RecentFourteenProductionPlansReq);
+	}
+};
+//鏌ヨ杩戝崄鍥涙潯鐨勫搷搴旂粨鏋勪綋
+struct RecentFourteenProductionPlansRes {
+	Head head;
+	int responseType;
+	int responseLength;
+	int productionQuantities[14];
+	int plannedProductionQuantities[14];
+	int predictedProductionQuantities[14];
+	int roleIds[14];
+	char productionDates[14][32];
+	char logTexts[14][256];
+	RecentFourteenProductionPlansRes() {
+		head.type = UPDATEPRODUCTIONPLANQUANTITY_REQ;
+		head.len = sizeof(RecentFourteenProductionPlansRes);
+	}
+};
+
+
+
+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[128];
+	char content[0];
+};
+
+struct UploadFileReq        // 涓婁紶鏂囦欢鐨勮姹�
+{
+	Head head;
+	FileInfo fileInfo;
+	UploadFileReq() {
+		head.type = UPLOAD_FILE_REQ;
+		head.len = sizeof(UploadFileReq);
+	}
+};
+
+struct UploadFileRes {      // 涓婁紶鏂囦欢鐨勫搷搴�
+    Head head;
+    bool state = false;
+    char file_name[256];
+    long long file_size;
+    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[16][128];	//鏈嶅姟鍣ㄦ斁鏈�鏂扮増鏈殑璺緞
+    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;
+    bool state = false;
+    VersionInfoEntryRes()
+    {
+        head.type = VERSIONINFOENTRY_RES;
+        head.len = sizeof(VersionInfoEntryRes);
+    }
+};
+
+// 鐗堟湰鏇存柊璇锋眰
+struct VersionUpdateReq {
+    Head head;
+
+    char cur_version_id[64]; // 鐗堟湰鍙�
+    VersionUpdateReq()
+    {
+        head.type = VERSIONUPDATE_REQ;
+        head.len = sizeof(VersionUpdateReq);
+    }
+};
+
+// 鐗堟湰鏇存柊鍝嶅簲
+struct VersionUpdateRes {
+    Head head;
+    bool state = false;
+    char version_id[64]; // 鐗堟湰鍙�
+    char update_date[32]; // 鏇存柊鏃堕棿
+    char version_description[1024]; //鏇存柊鎻忚堪
+
+    VersionUpdateRes()
+    {
+        head.type = VERSIONUPDATE_RES;
+        head.len = sizeof(VersionUpdateRes);
+    }
+};
+
+// 鐗堟湰鏇存柊鏂囦欢涓嬭浇璇锋眰
+struct FileDownloadsReq {
+    Head head;
+    char version_id[64]; // 鐗堟湰鍙�
+    FileDownloadsReq()
+    {
+        head.type = FILEDOWNLOADS_REQ;
+        head.len = sizeof(FileDownloadsReq);
+    }
+};
+
+// 鐗堟湰鏇存柊鏂囦欢涓嬭浇鍝嶅簲
+struct FileDownloadsRes {
+    Head head;
+    char version_id[64]; // 鐗堟湰鍙�
+    char filename[128]; //鏂囦欢鍚�
+    long long filesize; //鏂囦欢澶у皬
+    char c_filepath[128];	//瀹㈡埛绔斁鏈�鏂扮増鏈殑鏈湴璺緞
+    int fileNum; // 鏂囦欢鏁伴噺
+    long long all_fileSize; // 鏂囦欢鎬诲ぇ灏�
+    char content[0];
+    FileDownloadsRes()
+    {
+        head.type = FILEDOWNLOADS_RES;
+        head.len = sizeof(FileDownloadsRes);
+    }
+};
+
+// 鏇存柊鏂囦欢涓嬭浇鎴愬姛鐨勫搷搴�
+struct DownloadSuccessfullyRes{
+    Head head;
+    bool state = false;
+    char file_name[256];
+    long long file_size;
+    DownloadSuccessfullyRes()
+    {
+        head.type = DOWNLOADSUCCESSFULLY_RES;
+        head.len = sizeof(DownloadSuccessfullyRes);
+    }
+};
+
+
+struct LogQueryRequest {
+    Head header;                // 鏁版嵁澶�
+    std::string* keywords;      // 瀛樺偍澶氫釜鍏抽敭瀛楃殑鏌旀�ф暟缁�
+    size_t keywordCount;         // 鍏抽敭瀛楁暟閲�
+    std::string startDate;       // 寮�濮嬫棩鏈� (鏍煎紡: YYYY-MM-DD)
+    std::string endDate;         // 缁撴潫鏃ユ湡 (鏍煎紡: YYYY-MM-DD)
+    int pageNumber;              // 褰撳墠椤电爜
+    int pageSize;                // 姣忛〉鏉$洰鏁�
+
+    // 鏋勯�犲嚱鏁�
+    LogQueryRequest(int type, int len, std::string* keywords, size_t keywordCount, const std::string& startDate, const std::string& endDate, int pageNumber, int pageSize)
+        : header{type, len}, keywords(keywords), keywordCount(keywordCount), startDate(startDate), endDate(endDate), pageNumber(pageNumber), pageSize(pageSize) {}
+
+    // 鏋愭瀯鍑芥暟
+    ~LogQueryRequest() {
+        delete[] keywords; // 閲婃斁鍔ㄦ�佸垎閰嶇殑鍐呭瓨
+    }
+};
+
+//鏃ュ織鏌ヨ鍝嶅簲
+// 瀹氫箟鏃ュ織鏉$洰缁撴瀯浣�
+struct LogEntry {
+    int id;                  // 鏃ュ織鏉$洰 ID
+    string entryTime;       // 涓嬩簳鏃堕棿
+    string name;            // 濮撳悕
+    string exitTime;        // 鍗囦簳鏃堕棿
+    string department;       // 閮ㄩ棬
+    string position;        // 宀椾綅
+    //string workingTime;     // 宸ヤ綔鏃堕棿 鏁版嵁搴撹嚜鍔ㄧ敓鎴�
+
+      // 鏋勯�犲嚱鏁�
+    LogEntry(int id, const string& entryTime, const string& name, 
+              const string& exitTime, const string& department, 
+              const string& position)
+        : id(id), entryTime(entryTime), name(name), 
+          exitTime(exitTime), department(department), position(position) {}
+};
+
+// 瀹氫箟鏃ュ織鏌ヨ鍝嶅簲缁撴瀯浣�
+struct LogQueryResponse {
+    int status;                    // 鍝嶅簲鐘舵�� (濡� 0 琛ㄧず鎴愬姛锛岄潪 0 琛ㄧず澶辫触)
+    string errorMessage;           // 閿欒淇℃伅锛堝鏋滄湁锛�
+    vector<LogEntry> logEntries;   // 鏃ュ織鏉$洰
+
+    // 鏋勯�犲嚱鏁�
+    LogQueryResponse(int status, const string& errorMessage, const vector<LogEntry>& logEntries)
+        : status(status), errorMessage(errorMessage), logEntries(logEntries) {}
+};
+
+
+
+
+#endif // COMMON_H
\ No newline at end of file

--
Gitblit v1.8.0