/************************************************************************************************** 版本所有(C), 2021-12-20, 北京普达迪泰 *************************************************************************************************** 文 件 名:TaskManager.h 版 本 号: 1.00初版 作 者: HYF 生成日期:2021-12-20 最近修改: 功能描述: 测量记录管理 函数列表: 修改历史: 1.日 期 : 2021-12-20 作 者 : HYF 修改内容 : 创建文件 **************************************************************************************************/ #include "pch.h" #include "TaskManager.h" #include "CppSQLite3.h" #include "DBFactory.h" #include "Task.h" // TaskManager // IMPLEMENT_DYNAMIC(TaskManager, CWnd) TaskManager::TaskManager() { } TaskManager::~TaskManager() { } /************************************************************************************************** 函 数 名 :Query 功能描述 :查询 输入参数 :略 输出参数 :无 返 回 值 :CppSQLite3Query **************************************************************************************************/ CppSQLite3Query TaskManager::Query() { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); return pDB->execQuery(_T("SELECT * FROM task WHERE status = 1 ORDER BY task_time DESC;")); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); } } CppSQLite3Query TaskManager::Query(DWORD iTaskId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); char szCmd[256]; sprintf_s(szCmd, "SELECT * FROM task WHERE task_id=%d;", iTaskId); return pDB->execQuery(szCmd); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); } } /************************************************************************************************** 函 数 名 :QueryByRecent 功能描述 :查询最近20笔 输入参数 :无 输出参数 :无 返 回 值 :CppSQLite3Query **************************************************************************************************/ CppSQLite3Query TaskManager::QueryByRecent() { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); return pDB->execQuery(_T("SELECT * FROM task WHERE status = 1 ORDER BY task_time DESC limit 20;")); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); } } /************************************************************************************************** 函 数 名 :IsExist 功能描述 :根据TaskId判断数据是否存在 输入参数 :无 输出参数 :无 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ BOOL TaskManager::IsExist(DWORD pkTaskId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); char szCmd[256]; sprintf_s(szCmd, "SELECT * FROM task WHERE task_id=%d;", pkTaskId); CppSQLite3Query q = pDB->execQuery(szCmd); if (!q.eof()) { q.finalize(); return TRUE; } else { q.finalize(); return FALSE; } } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } } /************************************************************************************************** 函 数 名 :Add 功能描述 :增加 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ DWORD TaskManager::Add(const Task& data) { CString szTaskTime = data.GetTaskTime(); CString szEquipTypeCode = data.GetEquipTypeCode(); CString szEquipCode = data.GetEquipCode(); CString szTaskTitle = data.GetTaskTitle(); int iTaskType = data.GetTaskType(); CString szTaskDesc = data.GetTaskDesc(); try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("INSERT INTO task (task_time, equip_type_code, equip_code, task_title, task_type, task_desc, status) VALUES (%Q, %Q, %Q, %Q, %d, %Q, 0);", szTaskTime, szEquipTypeCode, szEquipCode, szTaskTitle, iTaskType, szTaskDesc); pDB->execDML("begin transaction;"); pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); DWORD taskId = (DWORD)pDB->lastRowId(); bufSQL.clear(); return taskId; } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return -1; } } /************************************************************************************************** 函 数 名 :Update 功能描述 :更新 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ BOOL TaskManager::Update(const Task& data) { DWORD iTaskId = data.GetTaskId(); LPCTSTR szEquipTypeCode = data.GetEquipTypeCode(); LPCTSTR szEquipCode = data.GetEquipCode(); LPCTSTR szTaskTitle = data.GetTaskTitle(); LPCTSTR szTaskDesc = data.GetTaskDesc(); try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("UPDATE task SET equip_type_code = %Q, equip_code=%Q, task_title=%Q, task_desc=%Q WHERE task_id = %d;", szEquipTypeCode, szEquipCode, szTaskTitle, szTaskDesc, iTaskId); pDB->execDML("begin transaction;"); int affected = pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } /************************************************************************************************** 函 数 名 :Update 功能描述 :更新 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ BOOL TaskManager::UpdateStatus(DWORD iTaskId, int iStatus) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("UPDATE task SET status = %d WHERE task_id = %d;", iStatus, iTaskId); pDB->execDML("begin transaction;"); int affected = pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } /************************************************************************************************** 函 数 名 :Delete 功能描述 :删除 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ BOOL TaskManager::Delete(DWORD pkTaskId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("DELETE FROM task WHERE task_id = %d;", pkTaskId); pDB->execDML("begin transaction;"); pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } /************************************************************************************************** 函 数 名 :ClearAll 功能描述 :清除所有设备 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ BOOL TaskManager::ClearAll() { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; pDB->execDML("begin transaction;"); bufSQL.format("DELETE FROM task;");//删除语句 pDB->execDML("commit transaction;"); pDB->execDML(bufSQL); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } /************************************************************************************************** 函 数 名 :Count 功能描述 :根据条件查询记录数目 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ int TaskManager::Count() { int iCount = 0; try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); char szCmd[256]; sprintf_s(szCmd, "SELECT COUNT(*) AS NUM FROM task WHERE status = 1;"); CppSQLite3Query q = pDB->execQuery(szCmd); iCount = q.getIntField("NUM"); q.finalize(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); iCount = 0; } return iCount; }