#include "pch.h" #include "EquipDataAngleManager.h" #include "CppSQLite3.h" #include "DBFactory.h" #include "EquipDataAngle.h" EquipDataAngleManager::EquipDataAngleManager() { } EquipDataAngleManager::~EquipDataAngleManager() { } /************************************************************************************************** 函 数 名 :Query 功能描述 :查询 输出参数 :略 返 回 值 :CppSQLite3Query **************************************************************************************************/ CppSQLite3Query EquipDataAngleManager::Query(DWORD iTaskId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); char szCmd[256]; sprintf_s(szCmd, "SELECT * FROM equip_data_angle WHERE task_id=%d;", iTaskId); return pDB->execQuery(szCmd); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); } } CppSQLite3Query EquipDataAngleManager::Query(DWORD iTaskId, LPCTSTR szEquipCode) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); char szCmd[256]; sprintf_s(szCmd, "SELECT * FROM equip_data_angle WHERE task_id=%d AND equip_code='%s';", iTaskId, szEquipCode); return pDB->execQuery(szCmd); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); } } CppSQLite3Query EquipDataAngleManager::Query(DWORD iTaskId, LPCTSTR szEquipCode, DWORD iSubItemId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); char szCmd[256]; sprintf_s(szCmd, "SELECT * FROM equip_data_angle WHERE task_id=%d AND equip_code='%s' AND subitem_id='%d';", iTaskId, szEquipCode, iSubItemId); return pDB->execQuery(szCmd); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); } } /************************************************************************************************** 函 数 名 :Add 功能描述 :增加TaskData 输入参数 :点云数据 输出参数 :无 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ BOOL EquipDataAngleManager::Add(const EquipDataAngle& data) { DWORD iTaskId = data.GetTaskId(); CString szEquipCode = data.GetEquipCode(); DWORD iItemId = data.GetItemId(); DWORD iSubitemId = data.GetSubItemId(); CString szLineTitle = data.GetLineTitle(); CString szLineCode = data.GetLineCode(); DOUBLE fLineStartX = data.GetLineStartX(); DOUBLE fLineStartY = data.GetLineStartY(); DOUBLE fLineStartZ = data.GetLineStartZ(); DOUBLE fLineEndX = data.GetLineEndX(); DOUBLE fLineEndY = data.GetLineEndY(); DOUBLE fLineEndZ = data.GetLineEndZ(); DOUBLE fAngleEX = data.GetAngleEX(); DOUBLE fAngleEY = data.GetAngleEY(); DOUBLE fAngleEZ = data.GetAngleEZ(); DOUBLE fAngleAX = data.GetAngleAX(); DOUBLE fAngleAY = data.GetAngleAY(); DOUBLE fAngleAZ = data.GetAngleAZ(); CString szLineDesc = data.GetLineDesc(); try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("INSERT INTO equip_data_angle" " ( task_id, " " equip_code, " " item_id, " " subitem_id, " " line_title, " " line_code, " " line_start_x, " " line_start_y, " " line_start_z, " " line_end_x, " " line_end_y, " " line_end_z, " " angle_e_x, " " angle_e_y, " " angle_e_z, " " angle_a_x, " " angle_a_y, " " angle_a_z, " " line_desc) " " VALUES (%d, %Q, %d, %d, %Q, %Q, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %Q);", iTaskId, szEquipCode, iItemId, iSubitemId, szLineTitle, szLineCode, fLineStartX, fLineStartY, fLineStartZ, fLineEndX, fLineEndY, fLineEndZ, fAngleEX, fAngleEY, fAngleEZ, fAngleAX, fAngleAY, fAngleAZ, szLineDesc); pDB->execDML("begin transaction;"); pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } /************************************************************************************************** 函 数 名 :Update 功能描述 :更新 输入参数 :略 输出参数 :无 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ BOOL EquipDataAngleManager::Update(const EquipDataAngle& data) { DWORD iTaskId = data.GetTaskId(); CString szEquipCode = data.GetEquipCode(); DWORD iSubitemId = data.GetSubItemId(); CString szLineTitle = data.GetLineTitle(); CString szLineCode = data.GetLineCode(); DOUBLE fAngelAX = data.GetAngleAX(); DOUBLE fAngelAY = data.GetAngleAY(); DOUBLE fAngelAZ = data.GetAngleAZ(); DOUBLE fAngelEX = data.GetAngleEX(); DOUBLE fAngelEY = data.GetAngleEY(); DOUBLE fAngelEZ = data.GetAngleEZ(); CString szLineDesc = data.GetLineDesc(); try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("UPDATE equip_data_angle " " SET line_title=%Q, " " line_code=%Q, " " angle_a_x=%.3f, " " angle_a_y=%.3f, " " angle_a_z=%.3f, " " line_desc=%Q " " WHERE task_id=%d AND equip_code=%Q AND subitem_id = %d; ", szLineTitle, szLineCode, fAngelAX, fAngelAY, fAngelAZ, szLineDesc, iTaskId, szEquipCode, iSubitemId); 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 EquipDataAngleManager::Delete(DWORD iTaskId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("DELETE FROM equip_data_angle WHERE task_id=%d;", iTaskId); pDB->execDML("begin transaction;"); pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } BOOL EquipDataAngleManager::Delete(DWORD iTaskId, LPCTSTR szEquipCode) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("DELETE FROM equip_data_angle WHERE task_id=%d AND equip_code=%Q;", iTaskId, szEquipCode); pDB->execDML("begin transaction;"); pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } BOOL EquipDataAngleManager::Delete(DWORD iTaskId, LPCTSTR szEquipCode, DWORD iSubitemId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("DELETE FROM equip_data_angle WHERE task_id=%d AND equip_code=%Q AND subitem_id=%d;", iTaskId, szEquipCode, iSubitemId); 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 EquipDataAngleManager::ClearAll() { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("DELETE FROM equip_data_angle;");//删除语句 pDB->execDML("begin transaction;"); pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } /************************************************************************************************** 函 数 名 :Count 功能描述 :根据条件查询记录数目 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ int EquipDataAngleManager::Count(DWORD iTaskId) { int iCount = 0; try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); char szCmd[256]; sprintf_s(szCmd, "SELECT COUNT(*) AS NUM FROM equip_data_angle WHERE task_id = %d;", iTaskId); CppSQLite3Query q = pDB->execQuery(szCmd); iCount = q.getIntField("NUM"); q.finalize(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); iCount = 0; } return iCount; }