GrpcPrint/PrintC/log/LogDao.h
2024-04-01 18:26:14 +08:00

176 lines
5.2 KiB
C++

#pragma once
#include "../stdafx.h"
#include <vector>
#include <map>
#include "LogBean.h"
#include "Jobbean.h"
#include "LogImage.h"
#include "HistoryAlarm.h"
//#include "../UI/UIBean.h"
#include "../external/SQLiteCpp/SQLiteCpp.h"
#include "PartAddition.h"
#include "AxisLog.h"
#include "ScannerStatus.h"
//#include "../ScannerCtrl/IntelliScanState.h"
#include "ScannerPowerLog.h"
#include "FocusStatus.h"
#include "PartPosBean.h"
using namespace std;
class LogDao
{
public:
LogDao();
~LogDao();
void Init();
void GetLogs(struct tm &begin, struct tm &end);
void AddLog(string prefix, string content);
bool GetCheckJob(string uid, JobBean& bean);
void UpdateJobInvalid(long jid);
void LogJobStart(JobBean* job);
void UpdateJobPauseTime(JobBean* job);
void UpdateJobAfterPrintLayer(JobBean* job);
void GetJobsByTaskId(string taskid, vector<JobBean*>& jobs);
void GetJobsByTime(struct tm& begin, struct tm& end, vector<JobBean*>& jobs);
void GetJobs(struct tm &begin, struct tm &end);
//void GetJobMaximun(JobBean* jobbean);
void LogLayerStatus(LayerStatus& status);
//void GetLayerStatusTable(LogAssist& la, bool isRemote = false);
//void GetLayerStatusByLayer(LogAssist& la, bool isRemote = false);
//void GetLayerStatusByTime(LogAssist& la, bool isRemote = false);
//void GetLayerStatus(LogAssist& la, bool isRemote = false);
//void GetLayerStatusByLevel(LogAssist& la, bool isRemote = false);
void GetAlarms(struct tm &begin, struct tm &end, bool isRemote = false);
void AddHistoryAlarm(string jobname, int type, string code);
//void DeleteImageAfterPrint();
void AddImage(LogImage& image);
void FindImageInfo(bool isRemote = false);
bool FindImage(unsigned int layerindex, unsigned char** image, unsigned long* imagesize, bool isRemote = false);
//void LogImageBeforePrint(int jobid, bool iscontinue);
bool DelJobImage(string str);
void ResetImageDB();
void AddPartAddition(PartAddition& pa);
void UpdatePartAdditionOffset(string jid, int partid, float x, float y, float rotate);
void DeletePartAddition(string jid, int partid);
void FindPartAddition(string jid, vector<PartAddition*>& vec);
void AddAxisLog(AxisLog* axisLog);
void FindAxisLogInfo(bool isRemote = false);
void FindAxisLogData(AxisLog* axisLog, bool isRemote = false);
//void StartExport(string path, LogAssist& assist);
void StopExport();
bool IsExportFinished();
string GetExportInfo() { return m_ExportInfo; }
float GetExportProgress() { return m_ExportProgress; }
void LogScannerStatus(vector<ScannerStatus*>& scannerStatus);
void FindScanState();
void LogFocusStatus(vector<FocusStatus*>& focusStatus);
void FindFocusState();
void SaveScannerPower(ScannerPowerLog* log);
void FindScannerPowerInfo();
void FindScannerPowerData(ScannerPowerLog* spl);
void AddPartPos(string jid, vector<int>& pids);
void FindPartPos(string jid, vector<PartPosBean*>& partPos);
void UpdatePartPos(string jid, int partid, float x, float y, float rotate);
void FindRecordByJob();
bool IsFindingRecord() {
bool rel = true;
EnterCriticalSection(&m_FindRecordCS);
rel = m_IsFindingRecord;
LeaveCriticalSection(&m_FindRecordCS);
return rel;
}
void SetIsFindingRecord(bool bvalue) {
EnterCriticalSection(&m_FindRecordCS);
m_IsFindingRecord = bvalue;
LeaveCriticalSection(&m_FindRecordCS);
}
private:
//static DWORD WINAPI DeleteImageProc(LogDao* _this);
//void DeleteImageRun();
static DWORD WINAPI ExportProc(LogDao* _this);
//void ExportRun();
static DWORD WINAPI FindRecordProc(LogDao* _this);
void FindRecordRun();
public:
CRITICAL_SECTION m_LogCs;
vector<string> m_Logs;
CRITICAL_SECTION m_JobCs;
vector<JobBean*> m_JobBaens;
CRITICAL_SECTION m_StatusCs;
vector<LayerStatus*> m_LayerStatus;
CRITICAL_SECTION m_LogImageCs;
vector<LogImage*> m_LogImages;
vector<HistoryAlarm*> m_Alarms;
CRITICAL_SECTION m_AlarmCs;
CRITICAL_SECTION m_ScannerStatusCS;
vector<ScannerStatus*> m_ScannerStatus;
CRITICAL_SECTION m_FocusStatusCS;
vector<FocusStatus*> m_FocusStatus;
vector<AxisLog*> m_AxisLogs;
CRITICAL_SECTION m_AxisLogCs;
AxisLog* m_ShowAxisLog;
JobBean* m_CurrentShowJob;
vector<ScannerPowerLog*> m_ScannerPower;
ScannerPowerLog* m_ShowScannerPower;
CRITICAL_SECTION m_RemoteJobCs;
vector<JobBean*> m_RemoteJobBaens;
CRITICAL_SECTION m_RemoteStatusCs;
vector<LayerStatus*> m_RemoteLayerStatus;
CRITICAL_SECTION m_RemoteLogImageCs;
vector<LogImage*> m_RemoteLogImages;
vector<HistoryAlarm*> m_RemoteAlarms;
CRITICAL_SECTION m_RemoteAlarmCs;
vector<AxisLog*> m_RemoteAxisLogs;
CRITICAL_SECTION m_RemoteAxisLogCs;
JobBean* m_RemoteCurrentShowJob;
//LogAssist m_LogAssist;
private:
HANDLE m_ImageThread;
bool m_ImageFlag;
SQLite::Database* m_pDB;
std::map<int, SQLite::Database*> m_DBMap;
//SQLite::Database* m_pImgDB;
//std::map<int, SQLite::Database*> m_ImgDBMap;
SQLite::Database* m_LogImageDB;
SQLite::Database* m_ShowImageDB;
CRITICAL_SECTION m_ImgDbCs;
string m_RootPath;
CRITICAL_SECTION m_DbCs;
string m_ImagePath;
HANDLE m_ExportThread;
float m_ExportProgress;
bool m_ExportFlag;
string m_ExportPath;
string m_ExportInfo;
bool m_IsExportData;
bool m_IsExportAxisData;
bool m_IsExportImage;
bool m_IsExportScanData;
CRITICAL_SECTION m_FindRecordCS;
bool m_IsFindingRecord;
};