修改数据库,使所有测试项都可以上传图片

This commit is contained in:
luoliangyi 2022-12-29 10:28:09 +08:00
parent 72d18ee6a0
commit 5023121562
2 changed files with 95 additions and 45 deletions

View File

@ -5,7 +5,7 @@
#include "base/HGUtility.h"
#include "HGString.h"
const HGChar* INITTIAL_INSPECTION[] =
const HGChar* INITIAL_INSPECTION[] =
{
"dial_switch",
"rocker_switch",
@ -113,10 +113,9 @@ HGResult HGPdtToolDbUserMgrImpl::Create(const HGChar* host, HGUShort port, const
}
if (0 != CreateFileTable(sql) || 0 != CreateMainTestTable(sql)
|| 0 != CreateInitInspTestTable(sql) || 0 != CreateInitInspDescTable(sql)
|| 0 != CreateImgInspTestTable(sql) || 0 != CreateImgInspDescTable(sql)
|| 0 != CreatePreInspTestTable(sql) || 0 != CreatePreInspDescTable(sql)
|| 0 != CreateInspImageTable(sql))
|| 0 != CreateInitInspTestTable(sql) || 0 != CreateInitInspDescTable(sql) || 0 != CreateInitInspImageTable(sql)
|| 0 != CreateImgInspTestTable(sql) || 0 != CreateImgInspDescTable(sql) || 0 != CreateImgInspImageTable(sql)
|| 0 != CreatePreInspTestTable(sql) || 0 != CreatePreInspDescTable(sql) || 0 != CreatePreInspImageTable(sql))
{
mysql_close(sql);
return HGBASE_ERR_FAIL;
@ -679,12 +678,12 @@ HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
cmd += ", main_test.device_type";
cmd += ", main_test.device_version";
for (int i = 0; i < sizeof(INITTIAL_INSPECTION) / sizeof(const HGChar*); ++i)
for (int i = 0; i < sizeof(INITIAL_INSPECTION) / sizeof(const HGChar*); ++i)
{
cmd += ", initial_inspection_test.";
cmd += INITTIAL_INSPECTION[i];
cmd += INITIAL_INSPECTION[i];
cmd += ", initial_inspection_desc.";
cmd += INITTIAL_INSPECTION[i];
cmd += INITIAL_INSPECTION[i];
}
for (int i = 0; i < sizeof(IMAGE_INSPECTION) / sizeof(const HGChar*); ++i)
{
@ -916,10 +915,16 @@ HGResult HGPdtToolDbUserMgrImpl::OpenDevice(const HGChar* sn, class HGPdtToolDbD
return HGBASE_ERR_FAIL;
}
if (0 != InitMainTestItem(sn) || 0 != InitInspTestItem("initial_inspection_test", sn)
|| 0 != InitInspTestItem("initial_inspection_desc", sn) || 0 != InitInspTestItem("image_inspection_test", sn)
|| 0 != InitInspTestItem("image_inspection_desc", sn) || 0 != InitInspTestItem("pressure_inspection_test", sn)
|| 0 != InitInspTestItem("pressure_inspection_desc", sn) || 0 != InitInspTestItem("inspection_image", sn))
if (0 != InitMainTestItem(sn)
|| 0 != InitInspTestItem("initial_inspection_test", sn)
|| 0 != InitInspTestItem("initial_inspection_desc", sn)
|| 0 != InitInspTestItem("initial_inspection_image", sn)
|| 0 != InitInspTestItem("image_inspection_test", sn)
|| 0 != InitInspTestItem("image_inspection_desc", sn)
|| 0 != InitInspTestItem("image_inspection_image", sn)
|| 0 != InitInspTestItem("pressure_inspection_test", sn)
|| 0 != InitInspTestItem("pressure_inspection_desc", sn)
|| 0 != InitInspTestItem("pressure_inspection_image", sn))
{
mysql_query(m_sql, "rollback;");
return HGBASE_ERR_FAIL;
@ -1095,11 +1100,11 @@ int HGPdtToolDbUserMgrImpl::CreateInitInspTestTable(MYSQL* sql)
assert(NULL != sql);
std::string cmd = "create table if not exists initial_inspection_test (sn varchar(20) not null primary key";
int size = sizeof(INITTIAL_INSPECTION) / sizeof(const HGChar*);
int size = sizeof(INITIAL_INSPECTION) / sizeof(const HGChar*);
for (int i = 0; i < size; ++i)
{
cmd += ", ";
cmd += INITTIAL_INSPECTION[i];
cmd += INITIAL_INSPECTION[i];
cmd += " tinyint unsigned default 0";
}
cmd += ");";
@ -1111,11 +1116,27 @@ int HGPdtToolDbUserMgrImpl::CreateInitInspDescTable(MYSQL* sql)
assert(NULL != sql);
std::string cmd = "create table if not exists initial_inspection_desc (sn varchar(20) not null primary key";
int size = sizeof(INITTIAL_INSPECTION) / sizeof(const HGChar*);
int size = sizeof(INITIAL_INSPECTION) / sizeof(const HGChar*);
for (int i = 0; i < size; ++i)
{
cmd += ", ";
cmd += INITTIAL_INSPECTION[i];
cmd += INITIAL_INSPECTION[i];
cmd += " text";
}
cmd += ");";
return mysql_query(sql, cmd.c_str());
}
int HGPdtToolDbUserMgrImpl::CreateInitInspImageTable(MYSQL* sql)
{
assert(NULL != sql);
std::string cmd = "create table if not exists initial_inspection_image (sn varchar(20) not null primary key";
int size = sizeof(INITIAL_INSPECTION) / sizeof(const HGChar*);
for (int i = 0; i < size; ++i)
{
cmd += ", ";
cmd += INITIAL_INSPECTION[i];
cmd += " text";
}
cmd += ");";
@ -1154,6 +1175,22 @@ int HGPdtToolDbUserMgrImpl::CreateImgInspDescTable(MYSQL* sql)
return mysql_query(sql, cmd.c_str());
}
int HGPdtToolDbUserMgrImpl::CreateImgInspImageTable(MYSQL* sql)
{
assert(NULL != sql);
std::string cmd = "create table if not exists image_inspection_image (sn varchar(20) not null primary key";
int size = sizeof(IMAGE_INSPECTION) / sizeof(const HGChar*);
for (int i = 0; i < size; ++i)
{
cmd += ", ";
cmd += IMAGE_INSPECTION[i];
cmd += " text";
}
cmd += ");";
return mysql_query(sql, cmd.c_str());
}
int HGPdtToolDbUserMgrImpl::CreatePreInspTestTable(MYSQL* sql)
{
assert(NULL != sql);
@ -1186,16 +1223,16 @@ int HGPdtToolDbUserMgrImpl::CreatePreInspDescTable(MYSQL* sql)
return mysql_query(sql, cmd.c_str());
}
int HGPdtToolDbUserMgrImpl::CreateInspImageTable(MYSQL* sql)
int HGPdtToolDbUserMgrImpl::CreatePreInspImageTable(MYSQL* sql)
{
assert(NULL != sql);
std::string cmd = "create table if not exists inspection_image (sn varchar(20) not null primary key";
int size = sizeof(IMAGE_INSPECTION) / sizeof(const HGChar*);
std::string cmd = "create table if not exists pressure_inspection_image (sn varchar(20) not null primary key";
int size = sizeof(PRESSURE_INSPECTION) / sizeof(const HGChar*);
for (int i = 0; i < size; ++i)
{
cmd += ", ";
cmd += IMAGE_INSPECTION[i];
cmd += PRESSURE_INSPECTION[i];
cmd += " text";
}
cmd += ");";
@ -1542,16 +1579,15 @@ HGResult HGPdtToolDbDeviceImpl::DownloadEntryImage(HGUInt entryName, const HGCha
return HGBASE_ERR_INVALIDARG;
}
const HGChar* entryNameStr = NULL;
if (entryName >= HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE && entryName <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION)
entryNameStr = IMAGE_INSPECTION[entryName - HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE];
if (NULL == entryNameStr)
const HGChar* entryNameStr = GetEntryNameStr(entryName);
const HGChar* tableName = GetImageTableName(entryName);
if (NULL == entryNameStr || NULL == tableName)
{
return HGBASE_ERR_INVALIDARG;
}
std::string remotePath;
HGResult res = GetEntryImageRemotePath(entryNameStr, remotePath);
HGResult res = GetEntryImageRemotePath(tableName, entryNameStr, remotePath);
if (HGBASE_ERR_OK != res)
{
return res;
@ -1572,16 +1608,15 @@ HGResult HGPdtToolDbDeviceImpl::CheckEntryImage(HGUInt entryName)
return HGBASE_ERR_FAIL;
}
const HGChar* entryNameStr = NULL;
if (entryName >= HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE && entryName <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION)
entryNameStr = IMAGE_INSPECTION[entryName - HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE];
if (NULL == entryNameStr)
const HGChar* entryNameStr = GetEntryNameStr(entryName);
const HGChar* tableName = GetImageTableName(entryName);
if (NULL == entryNameStr || NULL == tableName)
{
return HGBASE_ERR_INVALIDARG;
}
std::string remotePath;
HGResult res = GetEntryImageRemotePath(entryNameStr, remotePath);
HGResult res = GetEntryImageRemotePath(tableName, entryNameStr, remotePath);
if (HGBASE_ERR_OK != res)
{
return res;
@ -1607,16 +1642,15 @@ HGResult HGPdtToolDbDeviceImpl::UploadEntryImage(HGUInt entryName, const HGChar*
return HGBASE_ERR_INVALIDARG;
}
const HGChar* entryNameStr = NULL;
if (entryName >= HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE && entryName <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION)
entryNameStr = IMAGE_INSPECTION[entryName - HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE];
if (NULL == entryNameStr)
const HGChar* entryNameStr = GetEntryNameStr(entryName);
const HGChar* tableName = GetImageTableName(entryName);
if (NULL == entryNameStr || NULL == tableName)
{
return HGBASE_ERR_INVALIDARG;
}
std::string remotePath;
HGResult res = GetEntryImageRemotePath(entryNameStr, remotePath);
HGResult res = GetEntryImageRemotePath(tableName, entryNameStr, remotePath);
if (HGBASE_ERR_OK != res)
{
return res;
@ -1624,9 +1658,7 @@ HGResult HGPdtToolDbDeviceImpl::UploadEntryImage(HGUInt entryName, const HGChar*
if (remotePath.empty())
{
HGChar uuid[256];
HGBase_GetUuid(uuid, 256);
remotePath = std::string("/upload/") + uuid;
remotePath = std::string("/upload/") + m_sn + "/" + entryNameStr + ".jpg";
}
res = UploadFile(ftpHost, ftpPort, fileName, remotePath.c_str());
@ -1644,7 +1676,7 @@ HGResult HGPdtToolDbDeviceImpl::UploadEntryImage(HGUInt entryName, const HGChar*
return HGBASE_ERR_FAIL;
}
sprintf(sqlCmd, "update inspection_image set %s = '%s' where sn = '%s';",
sprintf(sqlCmd, "update %s set %s = '%s' where sn = '%s';", tableName,
entryNameStr, remotePath.c_str(), m_sn.c_str());
ret = mysql_query(m_userMgr->m_sql, sqlCmd);
if (0 != ret)
@ -1745,7 +1777,7 @@ HGResult HGPdtToolDbDeviceImpl::SetProperty(const HGChar* prop, const HGChar* st
const HGChar* HGPdtToolDbDeviceImpl::GetEntryNameStr(HGUInt entryName)
{
if (entryName >= HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH && entryName <= HGPDTTOOLDB_ENTRYNAME_SCANNING_SENSOR)
return INITTIAL_INSPECTION[entryName - HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH];
return INITIAL_INSPECTION[entryName - HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH];
else if (entryName >= HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE && entryName <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION)
return IMAGE_INSPECTION[entryName - HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE];
else if (entryName >= HGPDTTOOLDB_ENTRYNAME_SINGLE_PAGE_TEST_1 && entryName <= HGPDTTOOLDB_ENTRYNAME_CLEAR_ROLLER_COUNT)
@ -1775,14 +1807,26 @@ const HGChar* HGPdtToolDbDeviceImpl::GetDescTableName(HGUInt entryName)
return NULL;
}
HGResult HGPdtToolDbDeviceImpl::GetEntryImageRemotePath(const HGChar* entryNameStr, std::string& remotePath)
const HGChar* HGPdtToolDbDeviceImpl::GetImageTableName(HGUInt entryName)
{
if (entryName >= HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH && entryName <= HGPDTTOOLDB_ENTRYNAME_SCANNING_SENSOR)
return "initial_inspection_image";
else if (entryName >= HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE && entryName <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION)
return "image_inspection_image";
else if (entryName >= HGPDTTOOLDB_ENTRYNAME_SINGLE_PAGE_TEST_1 && entryName <= HGPDTTOOLDB_ENTRYNAME_CLEAR_ROLLER_COUNT)
return "pressure_inspection_image";
return NULL;
}
HGResult HGPdtToolDbDeviceImpl::GetEntryImageRemotePath(const HGChar* tableName, const HGChar* entryNameStr, std::string& remotePath)
{
assert(NULL != m_userMgr->m_sql);
assert(NULL != entryNameStr);
assert(NULL != tableName && 0 != *tableName);
assert(NULL != entryNameStr && 0 != *entryNameStr);
remotePath.clear();
char sqlCmd[1024] = { 0 };
sprintf(sqlCmd, "select %s from inspection_image where sn = '%s';", entryNameStr, m_sn.c_str());
sprintf(sqlCmd, "select %s from %s where sn = '%s';", entryNameStr, tableName, m_sn.c_str());
int ret = mysql_query(m_userMgr->m_sql, sqlCmd);
if (0 != ret)
{

View File

@ -48,13 +48,18 @@ private:
int CreateFileTable(MYSQL* sql);
int CreateMainTestTable(MYSQL *sql);
// init tables
int CreateInitInspTestTable(MYSQL* sql);
int CreateInitInspDescTable(MYSQL* sql);
int CreateInitInspImageTable(MYSQL* sql);
// image tables
int CreateImgInspTestTable(MYSQL* sql);
int CreateImgInspDescTable(MYSQL* sql);
int CreateImgInspImageTable(MYSQL* sql);
// pre tables
int CreatePreInspTestTable(MYSQL* sql);
int CreatePreInspDescTable(MYSQL* sql);
int CreateInspImageTable(MYSQL* sql);
int CreatePreInspImageTable(MYSQL* sql);
int InitMainTestItem(const HGChar *sn);
int InitInspTestItem(const HGChar* tableName, const HGChar* sn);
@ -96,7 +101,8 @@ private:
const HGChar* GetEntryNameStr(HGUInt entryName);
const HGChar* GetTestTableName(HGUInt entryName);
const HGChar* GetDescTableName(HGUInt entryName);
HGResult GetEntryImageRemotePath(const HGChar *entryNameStr, std::string &remotePath);
const HGChar* GetImageTableName(HGUInt entryName);
HGResult GetEntryImageRemotePath(const HGChar *tableName, const HGChar *entryNameStr, std::string &remotePath);
private:
// FTP